2007-06-11 Rodrigo Kumpera <kumpera@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
2
3         *verify.c: fixed code formating factored some duplicate code
4         into a new function
5
6         *verify.h: fixed binary incompatibility introduced earlier
7
8         *pedump.c: fixed formating
9
10 2007-06-11  Raja R Harinath  <harinath@gmail.com>
11
12         Fix assertion when disassembling Mono.C5.dll
13         * loader.c (method_from_methodspec): Avoid inflating a method
14         twice with the same context.  If the methodref is inflated, use
15         the declaring method instead.
16
17         * class.c (mono_class_from_generic_parameter): Fix case similar to
18         bug #81830 handled below, but for method containers.
19
20 2007-06-10  Raja R Harinath  <harinath@gmail.com>
21
22         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
23         get_shared_generic_class.  Directly inflate the instance.
24         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
25         (inflate_generic_class): Delete.
26         (get_shared_generic_class): Delete.  Move setting of
27         'cached_class' and 'cached_context' ...
28         * metadata.c (mono_metadata_lookup_generic_class): ... here.
29
30         * metadata.c (mono_metadata_lookup_generic_class): Change
31         signature to take the components of a MonoGenericClass rather than
32         an allocated MonoGenericClass.  Change semantics to be intern-like.
33         * reflection.c (mono_class_bind_generic_parameters): Update to
34         changes.  Make locking region tighter.
35         * class.c (inflate_generic_class): Update to changes.
36         (get_shared_generic_class): Likewise.
37         * metadata-internals.h: Likewise.
38
39         * reflection.c (mono_class_bind_generic_parameters): Take and
40         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
41         (mono_reflection_bind_generic_parameters): Use
42         'mono_class_bind_generic_parameters' rather than duplicate the code.
43         * class.c (mono_bounded_array_class_get): Update to changes.
44         * object-internals.h: Likewise.
45
46         * reflection.c (mono_class_bind_generic_parameters): Only support
47         parameterizing generic type definitions.  Remove support for other
48         open types.
49
50 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
51
52         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
53
54         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
55         in the dynamic case.
56
57 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
58
59         * threads.c: When cleaning up thread, reset the Background bit.
60         Fixes bug #81720.
61
62 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
63
64        * metadata.c: Move variable declarations to top of scope.
65        * verify.c: Move variable declarations to top of scope.
66
67        Code is contributed under MIT/X11 license.
68
69 2007-06-08  Raja R Harinath  <rharinath@novell.com>
70
71         * reflection.c (mono_class_bind_generic_parameters): Replace
72         open-coded loop with mono_metadata_inflate_generic_inst.
73
74         * class.c (get_shared_generic_class): Don't call
75         mono_get_shared_generic_inst.  Use the container's own
76         'class_inst'.
77
78         * metadata.c (mono_metadata_load_generic_params): Move
79         initialization of 'context' field here from ...
80         * class.c (mono_class_create_from_typedef): ... here, and ...
81         * loader.c (mono_get_method_from_token): ... here.
82
83         * class.c (get_shared_generic_class): Rename from
84         mono_get_shared_generic_class and make static.
85         (mono_get_shared_generic_inst): Move to metadata.c.
86         * loader.c (mono_get_shared_generic_method): Likewise.
87         * class-internals.h, metadata-internals.h: Update to changes.
88
89         Fix #81830
90         * class.c (mono_class_from_generic_parameter): Don't assume a
91         generic container owner exists.  Generic containers from monodis
92         don't have any.
93
94 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
95
96         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
97         * verify.h: new typedefs to returns the non-verifiable status
98         * verify.c: initial implementation of generics, stack merging and object compatibility check
99
100 2007-06-06  Mark Probst  <mark.probst@gmail.com>
101
102         * class.c, image.c, class-internals.h (MonoImage): class_cache is
103         a MonoInternalHashTable again (fixed bug in internal hash table
104         code).
105
106 2007-06-06  Mark Probst  <mark.probst@gmail.com>
107
108         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
109         MonoInternalHashTable again (fixed bug in internal hash table
110         code).
111
112 2007-06-06  Mark Probst  <mark.probst@gmail.com>
113
114         * class.c, image.c, class-internals.h, domain.c,
115         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
116         changes.  Have to figure out what makes them break the SWF
117         regression.
118
119 2007-06-04  Mark Probst  <mark.probst@gmail.com>
120
121         * class.c, image.c, class-internals.h (MonoImage): class_cache is
122         a MonoInternalHashTable now.
123
124 2007-06-04  Mark Probst  <mark.probst@gmail.com>
125
126         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
127         MonoInternalHashTable now.
128
129 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
130
131         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
132         invoke_impl code.
133
134         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
135
136         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
137         dependent trampoline.
138
139         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
140
141         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
142
143 2007-05-29  Robert Jordan  <robertj@gmx.net>
144
145         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
146
147 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
148
149         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
150
151 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
152
153        * marshal.c: Fix interface lookup loops for
154        cominterop_get_com_slot_for_method and 
155        cominterop_get_method_interface. Only need to lookup
156        if type is a class, else use interface type method is on.
157
158        Code is contributed under MIT/X11 license.
159
160 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
161
162         * reflection.c: HasSecurity can be present even if no specially 
163         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
164         SecurityAttribute). Fix CAS regression tests on buildbot.
165
166 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
167
168        * appdomain.c: Add configure checks for header files.
169        * image.c: Add configure checks for header files.
170        * file-io.c: Add configure checks for header files.
171        * debug-mono-symfile.c: Add configure checks for header files.
172        * threadpool.c: Add configure checks for header files.
173        * console-io.c: Add configure checks for header files.
174        * profiler.c: Add configure checks for header files.
175        * rawbuffer.c: Add configure checks for header files.
176        * icall.c: Add configure checks for header files.
177        * rand.c: Add configure checks for header files.
178        * socket-io.c: Add configure checks for header files.
179
180        Code is contributed under MIT/X11 license.
181
182 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
183
184         * reflection.c (mono_custom_attrs_from_builders): Remove the 
185         assertion as it breaks the build.
186         
187         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
188
189         * reflection.c (lookup_custom_attr): Make a copy here too.
190
191         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
192         dynamic images.
193
194         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
195         images.
196
197         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
198         info.
199
200 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
201
202         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
203         (load_cattr_value): Ditto.
204
205 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
206
207         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
208
209 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
210
211         * threads.c: In "start_wrapper", set apartment_state to MTA if
212         apartment_state is Unknown and we're running on 2.0 profile or
213         higher.
214         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
215         to main method, then set apartment_state to Unknown on 1.0 profile,
216         and MTA on 2.0 profile.
217
218 2007-05-16  Jb Evain  <jb@nurv.fr>
219
220         * class-internals.h (MonoDefaults): Add an attribute_class and
221           customattribute_data_class.
222         * domain.c (mono_init_internal): Populate them.
223         * reflection.c: Use them to remove duplicates. Make a vew
224         MonoClass variables `static'.
225
226 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
227
228         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
229         step in implementing IMT, so that all isinst checks now can go
230         through the bitmap.
231         This was needed because vtables for TransparentProxy need to look
232         like the vtable of the "target" class, so they need to point to
233         its interface bitmap directly.
234
235         * object.c: inside "mono_class_create_runtime_vtable" and
236         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
237
238 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
239
240         * object-internals.h
241           culture-info.h : added territory field in MonoCulture and
242           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
243         * locales.c : fill territory field above too.
244         * culture-info-table.h : regenerated.
245
246 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
247
248         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
249         Fixes #81599.
250
251 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
252
253         * object.c: Always initialize apartment, even if 
254         there is no custom attributes on entry point.
255         
256         Code is contributed under MIT/X11 license.
257
258 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
259
260         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
261         * metadata.c: If no encoding is set, check for unicode
262         on class.
263         
264         Code is contributed under MIT/X11 license.
265
266 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
267
268         * threads.c: Handle if mono_thread_current returns NULL 
269         
270         Code is contributed under MIT/X11 license.
271
272 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
273
274         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
275         in start_wrapper. Added mono_thread_init_apartment_state and
276         mono_thread_cleanup_apartment_state.
277         * object.c: Initialize thread apartment state on main thread
278         by checking for STAThreadAttribute on entry point.
279         * object-internals.h: Add apartment_state field to MonoThread.
280         * threads-types.h: Add unmanaged definition of 
281         System.Threading.ApartmentState, MonoThreadApartmentState.
282         
283         Code is contributed under MIT/X11 license.
284         
285 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
286
287         * class.c: Fix windows build.
288         * class-internals.h: Fix windows build.
289         
290         Code is contributed under MIT/X11 license.
291
292 2007-05-08  Robert Jordan  <robertj@gmx.net>
293
294         * process.c (CreateProcess_internal):
295         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
296         .CreateNoWindow was specified. Fixes #81496.
297
298 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
299
300         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
301         step in implementing IMT, replaced it with two compact arrays
302         (interfaces_packed and interface_offsets_packed) and a bitmap that
303         is used for isinst checks (interface_bitmap).
304
305         * class.c: (compare_interface_ids): compare function to pass to
306         bsearch when looking for an interface with a given id.
307         (mono_class_interface_offset): reimplemented using bsearch on
308         interfaces_packed, getting the offset from interface_offsets_packed.
309         (print_implemented_interfaces): utility debugging function.
310         (setup_interface_offsets): reworked to initialize interfaces_packed,
311         interface_offsets_packed and interface_bitmap.
312
313         * object.c: replaced all accesses to "MonoClass.interface_offsets"
314         with uses of interfaces_packed and interface_offsets_packed.
315
316 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
317
318         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
319         mono_class_interface_offset prototype to wrap all accesses to
320         "MonoClass.interface_offsets".
321
322         * class.c: Implemented mono_class_interface_offset, and wrapped all
323         accesses to "MonoClass.interface_offsets".
324
325         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
326         "MonoClass.interface_offsets".
327
328 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
329
330         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
331         GetMethodFromHandle overloads (bug #78637).
332
333 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
334
335         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
336         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
337
338 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
339
340         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
341         #81498.
342
343         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
344         gracefully.
345         (mono_custom_attrs_from_index): Ditto.
346
347         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
348         Fixes #81501.
349
350 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
351
352         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
353         is now allocated from a mempool.
354
355 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
356
357         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
358         caller holds threads_lock, leading to deadlocks. Fixes #81476.
359
360 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
361
362         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
363         mono_loader_clear_error () too late. Fixes #81463.
364
365 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
366
367         * culture-info-table.h : regenerated.
368
369 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
370
371         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
372         is missing.
373
374 2007-04-25  Dick Porter  <dick@ximian.com>
375
376         * Makefile.am: Put the mingw enforced-optimisation back into the
377         PLATFORM_WIN32 section.
378
379 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
380
381         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
382         patch.
383
384         * image.c (mono_image_load_module): New API function to load a module reference.
385
386         * image.c (load_modules): Load modules lazily. Fixes #80812.
387
388         * class.c (mono_class_from_typeref): Use mono_image_load_module.
389         
390         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
391
392         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
393         to mono_image_load_module_dynamic.
394
395 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
396
397         * marshal.c: Fix calling convention for CCW on non-windows
398         platforms. STDCALL on windows, CDECL everywhere else to work 
399         with XPCOM and MainWin COM.
400         
401         Code is contributed under MIT/X11 license.
402
403 2007-04-23  Martin Baulig  <martin@ximian.com>
404
405         Fix #80969.
406
407         * loader.c
408         (method_from_memberref): Added `gboolean *used_context' argument.
409         (mono_get_method_from_token): Likewise.
410         (mono_get_method_full): Don't insert the method in the cache when
411         `used_context' is true.
412
413 2007-04-23  Raja R Harinath  <rharinath@novell.com>
414
415         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
416
417         * reflection.c (mono_reflection_bind_generic_parameters): Don't
418         create new MonoTypes for returned types.
419         * class.c (mono_generic_class_get_class): Export mono-internal.
420         * class-internals.h: Update to changes.
421
422 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
423
424         * threadpool.c, threadpool.h, icall-def.h: patch from
425         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
426
427 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
428
429         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
430         
431         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
432
433         * threads.c (mono_thread_get_stack_bounds): New helper function.
434
435         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
436         Correctly compute stack bounds when attaching. Fixes #81394.
437
438 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
439
440         * reflection.c: fix handling of doubles in custom attributes
441         for the arm-fpa format (bug #81368).
442
443 2007-04-18  Raja R Harinath  <rharinath@novell.com>
444
445         * reflection.c (assembly_add_win32_resources): Mildly relax an
446         bounds check to let the end pointer point just past the end of the
447         allocated buffer.  (may fix #81384)
448
449 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
450
451         * culture-info-table.h : regenerated.
452
453 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
454
455         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
456         the thread is aborted early.
457
458 2007-04-05  Dick Porter  <dick@ximian.com>
459
460         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
461         FindFirstFile()/FindNextFile() to find entries.  This lets the
462         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
463         81038.
464
465         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
466         the parameters of
467         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
468
469 2007-04-04  Martin Baulig  <martin@ximian.com>
470
471         * debug-helpers.c
472         (mono_method_desc_full_match): Add support for nested classes.
473
474 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
475
476         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
477
478 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
479
480         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
481         waiting for too many threads.
482
483 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
484
485         * environment.c: Fix return value check on uname so we can get the 
486         executing version on Solaris operating systems.
487
488 2007-03-28  Jb Evain  <jbevain@gmail.com>
489
490         * class.c (mono_type_get_name_recurse): Complete the
491         fix for the creation of assembly qualified names for
492         pointer types. Fixes #81208.
493
494 2007-03-27  Dick Porter  <dick@ximian.com>
495
496         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
497         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
498         changed.
499
500         * threads.c
501         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
502         the value of ReleaseMutex().
503
504 2007-03-27  Dick Porter  <dick@ximian.com>
505
506         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
507         in little-endian order, not network endian, so must be converted
508         to host endian here.  Fixes bug 80593.
509
510 2007-03-22  Jb Evain  <jbevain@gmail.com>
511
512         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
513         qualified names for pointer types. Fixes #81208.
514
515 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
516
517         * marshal.c: Add support for PreserveSigAttribute. 
518         
519         Code is contributed under MIT/X11 license.
520
521 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
522
523         * process.c: Fix endianness issues. Fixes #81126.
524
525         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
526         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
527
528         * image.c (mono_image_lookup_resource): Make this work on big-endian
529         machines.Change API contract so the caller needs to free the return value.
530         
531         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
532         API change.
533         
534 2007-03-14  Martin Baulig  <martin@ximian.com>
535
536         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
537         mono_type_get_desc() as well.
538
539 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
540
541         * icall.c:  Fix environ access in VS.  
542         
543 2007-03-13  Alp Toker  <alp@atoker.com>
544
545         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
546         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
547         #63841.
548
549 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
550
551         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
552         circular references among dynamic methods. Fixes #81091.
553
554         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
555
556 2007-03-09  Martin Baulig  <martin@ximian.com>
557
558         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
559
560 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
561
562         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
563         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
564         
565         Code is contributed under MIT/X11 license.
566         
567 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
568
569         * loader.c: Reapply patch for bug #79424.
570
571 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
572
573         * metadata.c (mono_type_to_unmanaged): Only convert object to
574         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
575
576 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
577
578         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
579         (and incorrectly set) is_reference field from MonoGenericInst.
580
581 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
582
583         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
584         a little earlier.
585
586         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
587
588         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
589
590 2007-03-05  Miguel de Icaza  <miguel@novell.com>
591
592         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
593         FileOptions.1 value to mean "temporary", map that to
594         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
595
596         Fixes 80688
597
598 2007-03-03  Marek Habersack  <mhabersack@novell.com>
599
600         * appdomain.c: implement MS .Net style shadow copying. Copies of
601         the assemblies are made in a subdirectory of the dynamic base
602         directory, the assembly names are preserved.
603         Copy .mdb and .config files along with the assemblies being shadowed.
604
605 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
606
607         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
608         (emit_marshal_handleref): Ditto.
609
610         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
611         on Visual C++. Fixes #80671.
612
613 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
614
615         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
616         for clone operations.
617
618 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
619
620         * marshal.c: Fix warnings.
621
622 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
623
624         * loader.c: allow case-insensitive matching of the dll name
625         in dllmap handling when prefixed with "i:".
626
627 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
628
629         * threads.c: Fix #ifdef for dummy_apc function for VS.
630
631 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
632
633         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
634
635 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
636         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
637         giving precedence to the methods with a fully qualified name
638         (InterfaceName.MethodName) when building the interface sections
639         of the vtable.
640
641 2007-02-16  Dick Porter  <dick@ximian.com>
642
643         * threadpool.c (append_job): Fix fast-path array handling, so it's
644         less likely the array will grow exponentially when the load is
645         heavy.
646
647 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
648
649         * metadata-internals.h, loader.c: fix dllmap lookup order
650         for non-function maps, too, and prepare for fallback code.
651
652 2007-02-12  Robert Jordan  <robertj@gmx.net>
653
654         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
655         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
656         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
657         GlobalFree. Fixes a part of bug #77075.
658
659 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
660
661         * loader.c: implemented typedef parent in field memberref.
662
663 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
664
665         * marshal.c: Fix warnings and remember to call Release on
666         IUnknown of RCW.
667         
668         Code is contributed under MIT/X11 license.
669
670 2007-02-10  Miguel de Icaza  <miguel@novell.com>
671
672         * class-internals.h: Add MonoHandleRef definition, and
673         handleref_class to mono_defaults. 
674
675         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
676         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
677
678         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
679         (do nothing on this stage)
680         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
681         (emit_marshal_handleref): New method, used for argument handling
682         of HandleRefs. 
683
684 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
685
686         * class.c (mono_class_setup_parent): Lazily init com types.
687         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
688         init com types.
689         * object.c (mono_remote_class_vtable): Lazily init com types.
690         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
691         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
692         * domain-internals.h: Expose mono_init_com_types.
693         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
694         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
695         Add support for COM Callable Wrapper marshalling.
696         * marshal.h: Add icall definitions.
697         * gc.c: Handle freeing of CCWs in finalizer code.
698         
699         Code is contributed under MIT/X11 license.
700
701 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
702
703         * reflection.c: changed all the signature encoding code to use
704         a variable-sized buffer.
705
706 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
707
708         * marshal.c: locking fixes: never take the loader lock
709         or other runtime locks when holding the marshal lock
710         (fixes bug#80664).
711
712 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
713
714         * marshal.c: make the delegate function pointer mapping
715         work for the moving GC.
716
717 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
718
719         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
720         for bug #80618.
721
722 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
723
724         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
725         gmodule.
726
727 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
728
729         * threadpool.c: made the code moving-GC safe.
730
731 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
732
733         * assembly.c, boehm-gc.c, class-internals.h, class.c,
734         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
735         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
736         warning cleanup.
737         * reflection.c: warning cleanup, some threading and moving GC fixes.
738
739 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
740
741         * class.c, loader.c: create the needed Set/Get/Address array methods
742         as well as the .ctors in mono_class_init (), fixes bug #80567.
743
744 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
745
746         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
747         we doesn't decrease its alignment. Should fix the sparc build.
748
749 2007-01-24  Dick Porter  <dick@ximian.com>
750
751         * socket-io.c
752         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
753         Create the returned object if we need to ignore an unsupported
754         socket option.  Fixes a segfault reported by Atsushi.
755
756 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
757
758         * class.c, object.c: restrict GC-tracked fields to
759         UIntPtr fields used inside corlib, so we provide better
760         type info to the GC and also allow broken packing as in
761         bug #80580.
762
763 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
764
765         * sgen-gc.c: removed duplicated function.
766
767 2007-01-19  Miguel de Icaza  <miguel@novell.com>
768
769         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
770         value that means that the value is not supported, but that we
771         should not return a failure, but instead report this as a
772         successful operation.
773
774 2007-01-19  Raja R Harinath  <rharinath@novell.com>
775
776         Fix tests/bug79956.2.il
777         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
778         (mono_generic_class_get_class): If the generic definition in an
779         enum, copy over other fields related to it.
780
781 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
782
783         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
784         genericinst enums (bug #79215).
785
786 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
787         * class.c: Fix bug 80307.
788
789 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
790
791         * image.c: if the file table is not present, try to load
792         all the modules, since we don't have info about them
793         having or not metadata (bug #80517).
794         * assembly.c: allow mono_assembly_load_references () to
795         work for netmodules.
796
797 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
798
799         * image.c, metadata-internals.h, object.c: execute module
800         cctors when running on the 2 runtime if present (bug #80487).
801
802 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
803
804         * icall.c: optimized InitializeArray() on bigendian.
805
806 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
807
808         * icall.c: fix for the broken ARM FPA double format.
809
810 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
811
812         * icall.c: handle endian issues for r4 and r8 types, too, in
813         the InitializeArray() icall.
814
815 2007-01-15  Miguel de Icaza  <miguel@novell.com>
816
817         * loader.c (mono_loader_error_prepare_exception): Clear the error
818         once we have extracted the information from it, do this before we
819         call into the JIT's class loading mechanisms.
820
821         * object.c (mono_class_create_runtime_vtable): Do not clear the
822         loader error before calling mono_class_get_exception_for_failure
823         as the loader error is needed inside
824         mono_class_get_exception_for_failure to throw the error (thinko).
825
826         Fixes #80521
827         
828 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
829
830         * reflection.c: align fields rva data so it's faster to load at
831         runtime.
832
833 2007-01-12  Raja R Harinath  <rharinath@novell.com>
834
835         Prepare to simplify GenericMethod handling.
836         * class-internals.h (mono_method_get_context): New accessor function.
837         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
838         rather than directly accessing '->context' field.
839
840         * class-internals.h (_MonoGenericParam.method): Move ...
841         (_MonoGenericContainer): ... here.  Add into union with klass field.
842         * class.c, icall.c, loader.c, metadata.c, reflection.c:
843         Update to changes.
844
845 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
846
847         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
848         the wrapper type enum and reduce relocations.
849
850 2007-01-12  Raja R Harinath  <rharinath@novell.com>
851
852         * reflection.c (inflate_mono_method): Reuse method instantiation
853         from the generic method, if available.
854
855 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
856
857         * marshal.c (emit_marshal_variant): Fix conv_arg
858         type in last commit, based on whether parameter is byref.
859         
860 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
861
862         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
863         marshalling.
864         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
865         MONO_TYPE_OBJECT back for VARIANT support.
866
867 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
868
869         * marshal.c, marshal.h, icall-def.h: Implement 
870         Marshal.ReAllocCoTaskMem.
871
872 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
873
874         * marshal.c: memory retention fixes: use the proper
875         image cache for runtime_invoke method lookups.
876
877 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
878
879         * mempool.c: added code to help debug mempool allocations.
880
881 2007-01-11  Dick Porter  <dick@ximian.com>
882
883         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
884         support (experimenting with faking it with IP_MTU_DISCOVER for
885         systems that don't have IP_DONTFRAGMENT.)
886         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
887         icall.
888
889         * icall-def.h: new System.Net.Sockets.Disconnect icall.
890
891         * socket-io.h: Add new fields to MonoSocketAsyncResult
892         corresponding to the new ones in Socket.cs.
893
894 2007-01-11  Raja R Harinath  <rharinath@novell.com>
895
896         Fix IronPython regression mentioned in #80249
897         * metadata.c (do_mono_metadata_parse_generic_class): Clear
898         'cached_context' field, since it may have been initialized as a
899         side-effect of metadata parsing.
900
901         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
902         (_MonoGenericClass.cached_class): Move here and rename from lone
903         remaining field of ...
904         (_MonoInflatedGenericClass): ... this.  Remove.
905         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
906         to changes.
907
908         Fix mcs/tests/test-128.cs regression.
909         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
910         2007-01-10 change below.
911         [MONO_TYPE_OBJECT]: Recurse into array case.
912
913 2007-01-11  Raja R Harinath  <harinath@gmail.com>
914
915         * class-internals.h (mono_get_inflated_generic_class): Remove.
916         * class.c (mono_get_inflated_generic_class): Remove.
917         (mono_generic_class_get_class): Rename from
918         mono_class_create_generic.
919         (mono_class_from_mono_type) [GENERICINST]: Use it.
920         * reflection.c, metadata.c: Update to changes.  Use
921         'mono_class_from_mono_type'.
922
923 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
924
925         * reflection.c: use passed type when encoding an array element
926         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
927
928 2007-01-09  Robert Jordan  <robertj@gmx.net>
929
930         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
931         result arguments (someDelegate.EndInvoke (unrelatedAres)).
932         Fixes bug #80392.
933
934 2007-01-09  Raja R Harinath  <rharinath@novell.com>
935
936         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
937
938         * object.c (set_value): Avoid aliasing between type->data.klass
939         and type->data.generic_class.
940
941         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
942
943 2007-01-08  Raja R Harinath  <rharinath@novell.com>
944
945         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
946         between type->data.klass and type->data.generic_class.
947
948 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
949
950         * marshal.c: In MS.NET, StringBuilder objects are not copied by
951         value in out parameters.
952
953 2007-01-08  Raja R Harinath  <rharinath@novell.com>
954
955         Simplify invariant for MonoGenericClass::klass field.
956         * class.c (mono_class_create_generic): Verify 'klass' is null.
957         * metadata.c (do_mono_metadata_parse_generic_class): Don't
958         initialize 'klass' field.
959
960 2007-01-05  Raja R Harinath  <rharinath@novell.com>
961
962         Ongoing work to avoid redundant data and simplify invariants.
963         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
964         'generic_class', and change type to a GenericInst.
965         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
966         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
967
968 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
969
970         * class.c : skip io-layer under PLATFORM_WIN32.
971
972 2007-01-03  Tor Lillqvist  <tml@novell.com>
973
974         Fix #80305: In a bundled executable, look in the bundled exe
975         assembly to determine the runtime version. Add the possibility to
976         bundle also the machine.config file.
977         
978         * assembly.c (mono_assembly_open_from_bundle): Make
979         non-static. Allow being called even if we have no bundled
980         assemblies, and return NULL right away in that case.
981
982         * domain-internals.h: Declare mono_assembly_open_from_bundle()
983         here.
984
985         * domain.c (app_config_parse): Take an assembly exe file name as
986         parameter instead of a config file name. Check for a bundled
987         config file for that assembly by calling
988         mono_config_string_for_assembly_file() (see below) before looking
989         for one in the file system.
990         (get_runtimes_from_exe): Corrsponding change to call of
991         app_config_parse().
992         (get_runtimes_from_exe): Check for bundled assembly exe file first
993         by calling mono_assembly_open_from_bundle(). If no bundled
994         assembly exe file is found, call mono_image_open() as before to
995         look it up in the file system.
996
997         * mono-config.c: Add variable bundled_machinec_onfig.
998         (mono_config_string_for_assembly_file): New function.
999         (mono_config_for_assembly): Move code snippet that looks for a
1000         bundled assembly .config file into the above new function. Call
1001         it.
1002         (mono_register_machine_config, mono_get_machine_config): New
1003         functions to set and retrieve
1004
1005         * assembly.h: Declare mono_register_machine_config().
1006
1007         * mono-config.h: Declare mono_get_machine_config() and
1008         mono_config_string_for_assembly_file().
1009
1010         * icall.c: No declaration of environ necessary on Win32. It is
1011         declared (as a macro expanding to a function call) in stdlib.h.
1012         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
1013         New internal mono function. Returns the value of
1014         mono_get_machine_config() as a Mono string.
1015
1016         * icall-def.h: Add get_bundled_machine_config().
1017
1018 2007-01-04  Raja R Harinath  <rharinath@novell.com>
1019
1020         Remove redundant field
1021         * class-internals.h (_MonoGenericContext.container): Remove field.
1022         * loader.c (mono_method_get_signature_full): Don't parse a
1023         "container" for a signature parse when the signature is inflated
1024         immediately.
1025         (method_from_methodspec): Likewise, for a generic_inst.
1026         * class.c, metadata.c, reflection.c: Update to changes.
1027
1028 2006-01-04  Raja R Harinath  <rharinath@novell.com>
1029
1030         * class-internals.h (_MonoGenericClass): Rename 'context' field to
1031         'cached_context', and change semantics -- it starts off NULL, and
1032         is initialized on demand.
1033         * class.c (mono_generic_class_get_context): New accessor to
1034         replace 'context' field accesses.
1035         (mono_class_get_context): New helper.
1036         (*): Update to changes.
1037         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
1038
1039 2007-01-03  Miguel de Icaza  <miguel@novell.com>
1040
1041         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
1042         before the memcpy.   Fixes Marshal2 regression.
1043
1044 2007-01-02  Jb Evain  <jbevain@gmail.com>
1045
1046         * blob.h: add a MONO_TYPE_ENUM definition
1047         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
1048         fix the encoding of arrays of enums in custom attributes.
1049
1050         Fixes #79666.
1051
1052 2007-01-01  Miguel de Icaza  <miguel@novell.com>
1053
1054         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
1055         string is null terminated, but only cut the string short if it
1056         overflows the buffer.   
1057         
1058         (mono_string_to_byvalstr): Also fix this routine.   The code here
1059         was not properly terminating a string (it was only terminated
1060         because of the previous catch-all memset). 
1061
1062         I left the memset, because I do not know if applications expect
1063         the runtime to clear this region. 
1064
1065         Fixes #79944.
1066
1067         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
1068         Clear the error before returning to unmanaged code to prevent the
1069         runtime from being confused later on (fixes  80420).
1070         (ves_icall_type_from_name): Always call mono_loader_clear_error
1071         after parsing a type that could have failed.
1072         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
1073
1074         * loader.c (mono_loader_clear_error): Fix indentation.
1075
1076 2006-12-28  Martin Baulig  <martin@ximian.com>
1077
1078         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
1079
1080 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
1081
1082         * reflection.c: patch from Rolf Bjarne Kvinge to fix
1083         getting a token for an EnumBuilder.
1084
1085 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1086
1087         * reflection.c: be more careful in case resource generation
1088         fails to create the data array.
1089
1090 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
1091
1092         * sgen-gc.c: write barrier for clone and fix unregister handles.
1093
1094 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
1095
1096         * reflection.c: some fixes needed in the generics code for the moving GC.
1097
1098 2006-12-22  Robert Jordan  <robertj@gmx.net>
1099
1100         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
1101         account. Fixes bug #80299.
1102
1103 2006-12-21  Raja R Harinath  <rharinath@novell.com>
1104
1105         Fix WaitHandle usage in delegates.
1106         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
1107         * object.c (mono_wait_handle_new): Use the property set method to
1108         initialize the handle.
1109         (mono_wait_handle_get_handle): New.
1110         * threadpool.c (mono_async_invoke): Use it.
1111         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
1112         Likewise.
1113         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
1114
1115 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
1116
1117         * marshal.c (emit_marshal): Call emit_marshal_variant and
1118         emit_marshal_com_interface when applicable.
1119         (emit_marshal_variant, emit_marshal_com_interface): Add
1120         methods for this case and remove if's from emit_marshal_object.
1121         
1122 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1123
1124         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
1125
1126 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
1127
1128         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
1129         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
1130         and GlobalFree on Windows. Remove FIXME.
1131
1132 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1133
1134         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
1135         implementation for managed objects.
1136
1137 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
1138
1139         * object.c: implemented code to be used for checking
1140         that no reference field overlaps with non-references.
1141
1142 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1143
1144         * threadpool.c: fix queue code to be compatible with the
1145         moving GC.
1146
1147 2006-12-18  Miguel de Icaza  <miguel@novell.com>
1148
1149         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
1150         in structures by throwing ArgumentNullException.
1151
1152         (emit_marshal_safehandle): Also when they are null parameters.
1153
1154         (emit_marshal_safehandle): Add support for ref
1155         SafeHandles parameters
1156
1157 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1158
1159         * profiler.c: updated to use the mono-dl API instead of
1160         gmodule.
1161
1162 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1163
1164         * profiler.c: updated to use the mono-dl dynamic loading
1165         API instead of gmodule.
1166
1167 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
1168
1169         * profiler.c: use readlink, older versions of glib don't have
1170         g_file_read_link ().
1171
1172 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1173
1174         * profiler.c: try to detect the path to mono if libc fails to provide
1175         a useful name (bug #80286).
1176
1177 2006-12-16  Raja R Harinath  <rharinath@novell.com>
1178
1179         Fix #80242
1180         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
1181         instance, use the generic type definition instead.
1182         (ves_icall_Type_GetNestedTypes): Likewise.
1183         * class.c (mono_class_create_generic): Always set the
1184         nested_classes of a generic instance to NULL, even if the generic
1185         type definition has nested types.
1186
1187 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
1188
1189         * marshal.c (mono_string_from_bstr): Revert previous Windows change
1190         and fix on Linux.
1191         
1192 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1193
1194         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
1195         my arguments were in the wrong order.   I also fixed the Windows
1196         version which seems to have had the same issue.
1197
1198         (mono_free_bstr): On Unix, this is g_free.
1199         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
1200         conversions (for the tests in corlib to pass).
1201
1202 2006-12-14  Miguel de Icaza  <miguel@novell.com>
1203
1204         * marshal.c (emit_ptr_to_object_conv): For now, ignore
1205         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
1206         exception if a ref SafeHandle in a struct has changed).
1207         
1208         (emit_struct_conv): Do not perform layout checks for classes
1209         derived from SafeHandle, as those are specially handled. 
1210
1211         (emit_object_to_ptr_conv): Add support for
1212         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
1213
1214         (emit_marshal_safehandle): Implement conversion of return values
1215         of safehandles (MARSHAL_ACTION_CONV_RESULT).
1216         
1217         * threads.c: WaitHandle now is compiled with two different handles
1218         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
1219         for 2.0.
1220         
1221         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
1222         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
1223         these routines to cope with both kinds of fields.
1224
1225 2006-12-12  Miguel de Icaza  <miguel@novell.com>
1226
1227         * metadata.c (mono_type_to_unmanaged): Handle the case where
1228         type->data.klass is a SafeHandle, and in that case, return the
1229         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
1230         MONO_MARSHAL_CONV_SAFEHANDLE. 
1231
1232 2006-12-11  Miguel de Icaza  <miguel@novell.com>
1233
1234         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
1235         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
1236         calling emit_marshal_object.
1237
1238         (emit_marshal_safehandle): Implement marshalling of
1239         SafeHandle parameters (no ref support yet).
1240
1241         (MarshalAction): Document the defines as I implement
1242         them for SafeHandle.
1243
1244         (emit_marshal_object): indentation police.
1245
1246         * class-internals.h: Define MonoSafeHandle.
1247         Add safehandle_class to MonoDefaults type.
1248
1249         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
1250         list of classes to check for fields. 
1251
1252         * domain.c (mono_init_internal): Add SafeHandle to the list of
1253         mono_defaults loaded.
1254
1255 2006-12-15  Raja R Harinath  <rharinath@novell.com>
1256
1257         Fix #80253
1258         * reflection.c (mono_reflection_bind_generic_parameters): If the
1259         generic type definition is a type builder, ensure that it is fully
1260         initialized before instantiating it.  Kill some dead code.
1261
1262 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
1263
1264         * object.c: clear the loader_error () before loading
1265         more metadata stuff (bug #80258).
1266
1267 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
1268
1269         * icall.c, icall-defs.h: type modifiers icalls for
1270         parameters and properties.
1271
1272 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
1273
1274         * object.c, icall.c: fixed warnings.
1275
1276 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1277
1278         * marshal.c: fixed a couple of leaks and coding style in a few places.
1279
1280 2006-12-08  Dick Porter  <dick@ximian.com>
1281
1282         * process.c: Cope with NULL ProcessStartInfo arguments on windows
1283         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
1284         80173.
1285
1286 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1287
1288         * process.c: ProcessStartInfo may have only filename set and
1289         arguments can be NULL.
1290
1291 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1292
1293         * icall.c: fix leak found by Robert Jordan.
1294
1295 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1296
1297         * marshal.c, marshal.h: generate managed method to access an element
1298         of a multi-dimensional array.
1299
1300 2006-11-30  Paolo Molaro (lupus@ximian.com)
1301
1302         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
1303
1304 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1305
1306         * icall.c: back out GetFields () fix until the serialization code is
1307         fixed to not depend on the incorrect behaviour.
1308
1309 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
1310
1311         * profiler.c: provide defaults if none are set.
1312
1313 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
1314
1315         * Makefile.am, attrdefs.h: new public header file with
1316         constants for attributes for use by embedders.
1317
1318 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
1319
1320         * icall.c: GetFields () fix for bug #80064.
1321
1322 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
1323
1324         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
1325         removed long unused icalls.
1326
1327 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
1328   
1329         * marshal.c: 
1330                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
1331                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
1332                 can be generated without a delegate class.
1333                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
1334         
1335         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1336
1337 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1338
1339         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
1340         #80069.
1341
1342 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1343
1344         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
1345         icall-def.h: added icalls needed by System.GC.
1346
1347 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
1348
1349         * loader.c: ensure the class in catch clauses is handled
1350         correctly for generics methods (fixes bug#79980).
1351
1352 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
1353
1354         * monitor.h, monitor.c: added mono_locks_dump () function
1355         to help debug deadlocks involving managed locks.
1356
1357 2006-11-13  Dick Porter  <dick@ximian.com>
1358
1359         * file-io.c (get_file_attributes): If the file is a symlink try
1360         and get the stat data for the target, but also add the
1361         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
1362         the specs for the windows symlink support, but will probably have
1363         to be reworked when I have test data from a vista machine.  Fixes
1364         bug 79887.
1365
1366 2006-11-13  Dick Porter  <dick@ximian.com>
1367
1368         * gc.c (mono_domain_finalize): 
1369         * marshal.c (mono_delegate_begin_invoke): 
1370         * threadpool.c (socket_io_init, mono_thread_pool_init)
1371         (mono_thread_pool_finish): 
1372         * monitor.c (mono_monitor_try_enter_internal): 
1373         * threads.c (mono_thread_resume, mono_thread_init)
1374         (mono_thread_suspend_all_other_threads)
1375         (mono_thread_execute_interruption): 
1376         * appdomain.c (mono_domain_unload): Check for NULL error returns
1377         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
1378         75733.
1379
1380 2006-11-11  Miguel de Icaza  <miguel@novell.com>
1381
1382         * process.c
1383         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
1384         Only close the handle if the value of the handle is not
1385         INVALID_HANDLE_VALUE.  This just makes the process a bit more
1386         robust.
1387
1388         Improvement for #75733, so that we do not run into this problem. 
1389
1390         
1391         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
1392         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
1393         internal variables.  Fixes #79462 
1394         
1395
1396 2006-11-09  Dick Porter  <dick@ximian.com>
1397
1398         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1399         Use poll() not select().  Fixes bug 79397.
1400
1401 2006-11-09  Raja R Harinath  <rharinath@novell.com>
1402
1403         Fix #79872
1404         * assembly.c (mono_assembly_load_from_full): Check that the given
1405         image has an assembly manifest.
1406
1407 2006-11-09  Ankit Jain  <jankit@novell.com>
1408
1409         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
1410         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
1411         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
1412
1413 2006-11-07  Dick Porter  <dick@ximian.com>
1414
1415         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1416         Put the old resolver behaviour back for pre-2.0 profiles.
1417
1418 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1419
1420         * threadpool.c: precise GC and locking fixes.
1421
1422 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
1423
1424         * class.c: don't load types that have an explicit unaligned
1425         managed reference. Provide better info in the TypeLoad exception.
1426         Part of the fix for bug #79744.
1427         * object.c: use the correct check for class type load issues.
1428
1429 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1430
1431         * class.c: enforce alignment of fields with managed references
1432         even when Pack=1 is forced by the user (bug #77788).
1433
1434 2006-11-03  Dick Porter  <dick@ximian.com>
1435
1436         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1437         If the address reverse lookup fails, return it as the hostname
1438         anyway.  Fixes bug 79721.
1439
1440 2006-11-03  Dick Porter  <dick@ximian.com>
1441
1442         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
1443         Fix build on Windows.
1444
1445 2006-11-02  Dick Porter  <dick@ximian.com>
1446
1447         * icall-def.h: 
1448         * object-internals.h: 
1449         * exception.c (mono_get_exception_thread_interrupted): 
1450         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
1451         Fixes bug 74525.
1452
1453         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
1454         Check for pending Thread.Interrupt.
1455
1456 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
1457         * loader.c: Fixed bug 79684.
1458
1459 2006-10-27  Dick Porter  <dick@ximian.com>
1460
1461         * file-io.c (get_file_attributes): Force symlinks to directories
1462         to be returned as a regular file.  Fixes bug 79733.
1463 2006-10-26  Dick Porter  <dick@ximian.com>
1464
1465         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
1466         CreateFile to open a directory then we need to set the
1467         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
1468
1469 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
1470
1471         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1472         friends.
1473
1474 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1475
1476         * sgengc.c: small cleanup of timer code.
1477
1478 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1479
1480         * sgen-gc.c: fix some warnings and start adding support for
1481         complete object removal on domain unload.
1482
1483 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
1484
1485         * assembly.c: build_assembly_name should not consider a version
1486         number without build or revision number invalid. Fixes bug #79715.
1487
1488 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
1489
1490         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1491         call kernel32 function OutputDebugString directly.
1492         
1493         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1494         
1495 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1496
1497         * reflection.c: small cleanup, using a function to insert a MonoString
1498         in the string heap.
1499
1500 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1501
1502         * reflection.c: moving GC fixes.
1503
1504 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1505
1506         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1507         all the objects with finalizers belonging to an unloading appdomain.
1508
1509 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1510
1511         * sgen-gc.c: added ability to allocate even when the nursery is fully
1512         pinned and fixed a couple of bugs.
1513
1514 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1515
1516         * threads.h: Revert the last change for now.
1517
1518         * threads.h (mono_thread_get_pending_exception): Rename this to
1519         mono_thread_get_undeniable_exception ().
1520
1521 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
1522
1523         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1524         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1525         when fname does not refer to valid assembly. This result in a more
1526         meaningful error message.
1527         * exception.c: added mono_get_exception_bad_image_format2 which 
1528         constructs a BadImageFormatException using the ctor taking a custom
1529         message and the file name. Passing in a NULL msg results in a default
1530         message.
1531         * exception.h: define mono_get_exception_bad_image_format2 function.
1532         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
1533         when file name pointed to an invalid IL image. Use 
1534         mono_get_exception_file_not_found2 to construct FileNotFoundException,
1535         as this results in a more meaningful error message.
1536
1537 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1538
1539         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1540         #79465.
1541
1542 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
1543
1544         * metadata.c (mono_type_size): Change the align parameter to guint32 for
1545         consistency with the other _size functions.
1546         (mono_type_stack_size): Ditto.
1547
1548         * class.c object.c icall.c: Fix warnings caused by the above change.
1549
1550         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1551
1552         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1553
1554         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1555
1556 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1557
1558         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1559         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1560         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1561         threadpool.h, threads-types.h: mark more internal functions.
1562
1563 2006-10-11  Dick Porter  <dick@ximian.com>
1564
1565         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1566         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1567         reproduce the bug even before applying the fix.)
1568
1569 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1570
1571         * reflection.c: allow retrieving attributes for arguments in generic
1572         methods (bug #79241).
1573
1574 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1575
1576         * debug-mono-symfile.c: properly check fopen () result (found by
1577         coverity).
1578
1579 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1580
1581         * reflection.c: make error message clearer and fixed two
1582         issuelets found by Coverity.
1583
1584 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1585
1586         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1587
1588 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1589
1590         * object-internals.h, gc-internal.h, profiler-private.h:
1591         mark internal functions.
1592
1593 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1594
1595         * reflection.c: put data in the text section.
1596         * icall.c: recognize more types in type_from_typename ().
1597         * process.c, marshal.c: added some GC FIXMEs.
1598
1599 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1600
1601         * loader.c: check for NULL before initializing.
1602
1603 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1604
1605         * gc.c (finalizer_thread): Use a non-alertable wait here.
1606
1607         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1608         until the correct solution is found.
1609
1610 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1611
1612         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1613         modules with no metadata. Fixes #79596.
1614
1615         * image.c (load_metadata_ptrs): Put back the error message when
1616         the #- heap is encountered since the support is not complete yet.
1617
1618 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1619
1620         * gc.c: do not allow the user to SuppressFinalize () a
1621         delegate because it would leak the trampoline if present.
1622
1623 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1624
1625         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1626         PropertyPtr table.
1627
1628 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1629
1630         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1631
1632         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1633
1634         * row-indexes.h: Add definitions for *Ptr tables.
1635
1636         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1637
1638         * metadata.c (mono_metadata_translate_token_index): New helper function to
1639         translate table indexes used in uncompressed metadata.
1640         (mono_metadata_decode_table_row): Ditto.
1641         (mono_metadata_decode_table_row_col): Ditto.
1642
1643         * metadata.c: Add table schema for *Ptr tables.
1644
1645         * class.c loader.c: Use the new helper function to access the affected metadata
1646         tables.
1647         
1648         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1649         #38532.
1650         
1651 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1652
1653         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1654         sequences which can be unbounded in size. Fixes #79583.
1655
1656 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1657
1658         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1659         static initialization.
1660
1661         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1662
1663         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1664
1665         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1666
1667         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1668         ctor fails, i.e. throw the same exception on subsequent accesses.
1669         
1670 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1671
1672         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1673         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1674         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1675         Handle marshalling of interfaces and VARIANTs contained in structs.
1676         
1677         Code is contributed under MIT/X11 license.
1678         
1679 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1680
1681         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1682         
1683         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1684         mempool.
1685
1686 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1687
1688         * console-io.c: ignore previous SIGINT handler.
1689
1690 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1691
1692         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1693         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1694         #79460, #79461, #79485.
1695
1696         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1697
1698         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1699         #79217.
1700
1701 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1702
1703         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1704         could be generated from it.
1705
1706 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1707
1708         * rand.c: fix read loop to correctly handle EINTR.
1709
1710 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1711
1712         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1713         internal calls are defined to keep methods closer to the declaring
1714         type and allow a significant reduction in runtime relocations and
1715         memory usage.
1716
1717 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1718
1719         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1720         exception message to have FileNotFoundException use the default
1721         assembly load error message. Fixes bug #79426.
1722         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1723
1724 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1725
1726         * threadpool.c: (start_thread_or_queue) use the root domain when
1727         creating the thread instead of the async object one.
1728
1729 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1730
1731         * class.c, object.c, class-internals.h, reflection.c:
1732         for arrays, store element_size inside MonoClass (speedup
1733         for array object creation).
1734
1735 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1736
1737         * icall.c: fixed CodeBase to use the file name and not the module
1738         name (bug #79365).
1739
1740 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1741
1742         * mono-debug.c, mono-debug.h: export find_method as
1743         mono_debug_find_method ().
1744
1745 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1746
1747         * debug-helpers.c, class-internals.h: added a few functions useful
1748         when debugging under gdb.
1749
1750 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1751
1752         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1753         characters that need special handling.
1754
1755 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1756
1757         * mono-config.c: make the os/cpu specification more flexible,
1758         allowing lists and negation.
1759
1760 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1761
1762         * marshal.c: COM Interop fixes. Handle case where method->klass.
1763         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1764         calling convention on non-windows platforms. This is for
1765         compatibility with XPCOM and MainWin COM.
1766         
1767         Code is contributed under MIT/X11 license.
1768         
1769
1770 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1771
1772         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1773         correctly. Fixes #79217.
1774
1775         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1776
1777 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1778
1779         * mono-config.c: allow both an os and cpu attribute for dllmap
1780         and dllentry elemnets to enable a single config file to be used
1781         for multiple architectures.
1782
1783 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1784
1785         * loader.c: MonoLoaderError was cleared too soon on load failure.
1786         Fixes bug #79424.
1787
1788 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1789
1790         * icall.c: use the defining class vtable when accessing a
1791         static field, not a pobblibly derived class.
1792
1793 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1794
1795         * icall.c string-icalls.c: Remove references to unicode.h.
1796
1797         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1798
1799         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1800
1801         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1802         indicating the image where custom marshaller types should be looked up.
1803         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1804         custom marshallers, instead of corlib. Fixes #79425.
1805
1806 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1807
1808         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1809
1810 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1811
1812         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1813         Implement Environment.ProcessorCount.
1814         
1815         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1816         Implement Environment.ProcessorCount.
1817         
1818         * icall.c: 
1819         Add Environment.ProcessorCount icall.
1820         
1821         Patch by Jason McFall.
1822
1823 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1824
1825         * assembly.c: don't append .exe/.dll when the filename already contains
1826         one of those extensions.
1827
1828 2006-09-12  Martin Baulig  <martin@ximian.com>
1829
1830         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1831         to array interfaces.
1832
1833 2006-09-11  Martin Baulig  <martin@ximian.com>
1834
1835         * reflection.c (mono_image_build_metadata): Create the
1836         MethodImpl's after emitting all types and methods, so we don't
1837         need another fixup pass for them.
1838
1839 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1840
1841         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1842         change.
1843
1844 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1845
1846         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1847         unload.
1848
1849 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1850
1851         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1852         args is not set. Fixes #78926.
1853
1854 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1855
1856         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1857
1858         * image.c (load_class_names): Move this to class.c, and rename it to 
1859         'mono_image_init_name_cache'.
1860         (load_modules): Fix a warning.
1861
1862         * class.c icall.c image.c: Initialize image->name_cache lazily.
1863
1864         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1865         on its name using information in the AOT file.
1866
1867         * class.c (mono_class_from_name): Use the new hook function.
1868
1869 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1870
1871         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1872         correctly.
1873
1874         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1875         Fixes #79289.
1876         
1877 2006-09-06  Martin Baulig  <martin@ximian.com>
1878
1879         * icall.c (mono_lookup_internal_call): Small fix.
1880
1881 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1882
1883         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1884         double g_free.
1885
1886 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1887
1888         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1889         when --debug is specified.
1890
1891 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1892
1893         * class.c (setup_generic_array_ifaces): Fix a warning.
1894
1895 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1896
1897         * Temporarily remove the patch to assemly.c that checks the
1898         assembly versions as it breaks our gacutil.
1899
1900 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1901
1902         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1903
1904         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1905         a net 1.0 runtime.
1906
1907         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1908         created using the default ctor. Fixes #79152.
1909         (mono_string_builder_to_utf16): Ditto.
1910
1911 2006-09-01  Martin Baulig  <martin@ximian.com>
1912
1913         Fix handling of the generic array interfaces.
1914
1915         * class-internals.h
1916         (MonoDefaults): Removed `generic_array_class' and added
1917         `generic_ilist' class.
1918
1919         * class.c
1920         (mono_bounded_array_class_get): Add the new generic array interfaces.
1921         (setup_generic_array_ifaces): New static method; create vtable
1922         entries for each method in the generic array interfaces.
1923
1924         * metadata.c
1925         (select_container): Allow "parent-less" generic methods.
1926
1927         * marshal.c
1928         (mono_marshal_get_generic_array_helper): New public method.
1929
1930         * icall.c
1931         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1932         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1933         moved the interncall into System.Array.
1934
1935 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1936
1937         A few more cases of avoiding work on types with ->byref set.
1938         Has the real fix for #79238
1939         * icall.c (is_generic_parameter): New helper.
1940         (ves_icall_Type_GetGenericParameterPosition): Use it.
1941         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1942         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1943         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1944         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1945         reference types.
1946         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1947         reference types.
1948         (ves_icall_Type_get_IsGenericInstance): Likewise.
1949         (ves_icall_Type_get_IsGenericType): Likewise.
1950
1951 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1952
1953         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1954         class if possible.
1955
1956         * mempool.h (mono_mempool_get_allocated): New helper function.
1957
1958         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1959         change.
1960
1961         * mempool.c: Fix warnings and the calculation of stats.
1962
1963         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1964
1965         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1966
1967         * loader.c (mono_get_method_from_token): Update method_count stat.
1968
1969         * class-internals.h (MonoStats): Add some stats.
1970
1971 2006-08-31 Robert Jordan  <robertj@gmx.net>
1972
1973         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1974         with managed variants.
1975         All code is contributed under the MIT/X11 license.
1976         
1977 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1978
1979         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1980         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1981
1982         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1983
1984         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1985         with cycles in classes.
1986
1987         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1988
1989         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1990         missing a [MarshalAs] directive. Fixes #79203.
1991
1992         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1993         klass->marshal_info. Fixes #79217.
1994
1995 2006-08-30  Martin Baulig  <martin@ximian.com>
1996
1997         Committing a patch from Joachim Ante <joe@otee.dk>:
1998         Add support for binary data symbol stores.
1999
2000         * debug-mono-symfile.c
2001         (mono_debug_open_mono_symbol_file): Renamed into
2002         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
2003         arguments.
2004
2005         * mono-debug.c
2006         (mono_debug_open_image): Added `raw_contents' and `size' args.
2007         (mono_debug_init_2_memory): New public function.
2008
2009 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
2010
2011         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
2012
2013 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2014
2015         * appdomain.c: implement support for ShadowCopyFiles.
2016
2017 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
2018
2019         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
2020         when value is NULL (and should remove CID #51).
2021
2022 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2023
2024         * image.c: moved 2 functions to ../utils.
2025
2026 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
2027
2028         * gc.c: cope with the target object of a GC handle being NULL
2029         (bug #78877).
2030
2031 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
2032
2033         * class.c: recursively check parent's explicit implementations
2034         of interface methods (fixes bug #79125).
2035
2036 2006-08-19  Miguel de Icaza  <miguel@novell.com>
2037
2038         * filewatcher.c: Avoid warnings when building, do not redefine
2039         constants that are defined.
2040
2041         Remove warnings.
2042
2043 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2044
2045         * image.c: don't fail when the link points to an absolute path.
2046
2047 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
2048
2049         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
2050         Fix CID #3.
2051
2052 2006-08-17  Miguel de Icaza  <miguel@novell.com>
2053
2054         * image.c (full_path): A new method used to obtain the actual path
2055         of an assembly even in the presence of symbolic links.  
2056
2057         This is necessary for the case where we are running a binary that
2058         has been GACed, but we are using the "published" path name
2059         ($prefix/mono/1.0/blah.exe) which happens to point to the real
2060         file in the GAC.
2061
2062         This was the source of the failure for the `xsp' command with the
2063         recent AppDomain changes, as far as the runtime was concerned,
2064         there were two different assemblies: $prefix/mono/1.0/blah.exe and
2065         $prefix/mono/gac/blah/version/blah.exe.
2066
2067         (do_mono_image_open): use full path
2068
2069 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2070
2071         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
2072
2073 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
2074
2075         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
2076         domain_id is supplied. Fix CID #241 and corlib's unit tests.
2077
2078 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2079
2080         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
2081         small structures. Fixes #78990.
2082
2083 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2084
2085         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
2086
2087         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
2088
2089 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2090
2091         * appdomain.c:
2092         * marshal.c: don't load all the assemblies from a domain into newly
2093         created ones. The new domains might have different rules and load
2094         assemblies from different locations. Fixes bug #76757.
2095
2096         Patch by Lluis. Conflicts resolved by Brian Crowell.
2097
2098 2006-08-16  Alp Toker  <alp@atoker.com>
2099
2100         * socket-io.c: First half of the fix for #79084.
2101         Set sa_size to the length of the content, not that of the struct.
2102         Don't add NULL suffix to the content, this should be done in
2103         managed code if needed.
2104
2105 2006-08-14  Raja R Harinath  <rharinath@novell.com>
2106
2107         Fix part of #79012
2108         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
2109         mono_metadata_parse_type returns NULL.
2110
2111 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
2112
2113         * normalization-tables.h : new file for string normalization data.
2114         * locales.c, locales.h, icall.c :
2115           added load_normalization_resource() for string normalization,
2116           and icall as well.
2117         * Makefile.am : added normalization-tables.h to the sources.
2118
2119 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
2120
2121         * marshal.c: Add more helper functions to reduce code duplication and use them
2122         everywhere.
2123
2124 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
2125
2126         * marshal.c: Fix non-x86 stdcall warnings.
2127         
2128         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
2129         them everywhere.
2130
2131 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
2132
2133         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
2134         type check on multi-dimensional arrays. Fixes #79000.
2135
2136 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
2137
2138         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
2139         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
2140         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
2141         * class-internals.h: add is_com_object to class structure.
2142         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
2143         null checks to COM object marshalling. Fix .ctor call on RCW.
2144         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
2145         
2146         All code is contributed under the MIT/X11 license.
2147
2148 2006-08-09  Dick Porter  <dick@ximian.com>
2149
2150         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
2151         racing mono_monitor_allocator_lock() somewhere, so don't delete
2152         the critical section for now.  Found by running and exiting
2153         monodevelop.
2154
2155 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
2156
2157         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
2158         (ves_icall_System_ComObject_FindInterface): Ditto.
2159         (ves_icall_System_ComObject_CacheInterface): Ditto.
2160
2161         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
2162         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
2163
2164 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2165
2166         * threadpool.c: treat pipes from process asynchronous reads as sockets
2167         when reading from them, so we get select/poll or epoll to wait for
2168         data.
2169
2170 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
2171
2172         * loader.c: Fix a typo (CID #233) in the null check.
2173
2174 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2175
2176         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
2177         Hopefully fixes #78949.
2178         
2179         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
2180         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
2181         bytes. Fixes #78972.
2182
2183 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2184
2185         * filewatcher.c: we need to set errno here.
2186
2187 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2188
2189         * filewatcher.c: let Win32Exception get the error value.
2190
2191 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2192
2193         * filewatcher.c: translate errno into win32 errors for Win32Exception
2194         to know what happened.
2195
2196 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
2197
2198         * threadpool.c: Fix more warnings.
2199
2200         * assembly.c (search_loaded): Fix warnings.
2201
2202         * threadpool.c (mono_thread_pool_finish): Fix warnings.
2203         (mono_async_invoke): Ditto.
2204
2205 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
2206
2207         * object.c (mono_remote_class_vtable): Need to create proxy vtable
2208         entries for __ComObject type in addition to ComImport types.
2209         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
2210         about hash table.
2211         
2212         All code is contributed under the MIT/X11 license.
2213
2214 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2215
2216         * image.c: avoid tentative loading of modulerefs that contain
2217         no metadata (P/Invoke library names).
2218
2219 2006-07-28  Dick Porter  <dick@ximian.com>
2220
2221         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
2222         mono_loader_lock() somewhere, so don't delete the critical section
2223         for now.  Found by running and exiting monodevelop.
2224
2225 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2226
2227         * filewatcher.c: define the inotify syscalls when we're building on
2228         linux and have sys/syscall.h. The build system might not have support
2229         for inotify but the target system might have it.
2230
2231 2006-07-26  Miguel de Icaza  <miguel@novell.com>
2232
2233         * domain.c: Documentation updates.
2234
2235         * loader.c (mono_free_method): Do not release the method
2236         information if we are being profiled, as profilers will use this
2237         information at shut down to present some data to the user.
2238
2239         This is needed so that the profiler does not crash, as the
2240         profiler tends to keep MonoMethods around, and they might become
2241         invalid if we free these.
2242
2243         (mono_get_method_constrained): Return the original CIL stream
2244         method as well, so verification can be performed against it.
2245
2246 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2247
2248         * filewatcher.[ch]: support for inotify file system watcher.
2249         * icall.c: add new internal calls for the inotify file system watcher.
2250
2251 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2252
2253         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
2254         #78888.
2255
2256 2006-07-20  Dick Porter  <dick@ximian.com>
2257
2258         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
2259         warning.
2260
2261 2006-07-20  Dick Porter  <dick@ximian.com>
2262
2263         * threads.c (start_wrapper): Do the thread cleanup while we still
2264         hold a reference to its object.  Fixes bug 78123.
2265
2266 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
2267
2268         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
2269         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
2270           "managed-to-managed".
2271         * icall.c: Redirect string constructors that take sbyte* to
2272           ves_icall_System_String_ctor_RedirectToCreateString.
2273         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
2274           to CreateString () methods with matching signature.
2275         * reflection.c: Use original security informations for
2276           MONO_WRAPPER_MANAGED_TO_MANAGED.
2277         * security-manager.c: Use original security informations for
2278           MONO_WRAPPER_MANAGED_TO_MANAGED.
2279         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
2280           that is a placeholder and only its address should be used.
2281         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
2282           that is a placeholder and only its address should be used.
2283
2284 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
2285
2286         Begin implementing COM Interop.
2287         * appdomain.c: Increment corlib version.
2288         * class.c: Set ComImport classes' parent to __ComObject.
2289         * loader.c: Mark cominterop methods as such.
2290         * domain.c: Add __ComObject class to MonoDefaults structure.
2291         * image.c: Add 2 hashtables to the image for COM Interop related methods
2292         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
2293         using the mempool allocator
2294         
2295         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
2296         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
2297         declaration for mono_metadata_type_dup_mp.
2298         
2299         * debug-helpers.c: Added strings for two additional wrapper types
2300         * object.c: Create proxy objects for ComImport classes
2301         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
2302         and added __ComObject class to MonoDefaults structure.
2303         
2304         * object-internals.h: Finish MonoRealProxy definition, and add definition of
2305         MonoComInteropProxy and MonoComObject.
2306         
2307         * marshal.c: Added support for COM Interop
2308         (signature_cominterop): Converts managed signature to corresponding
2309         unmanaged COM signature.
2310         (cominterop_get_function_pointer): gets unmanaged function pointer via
2311         COM object vtable
2312         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
2313         (cominterop_get_method_interface): returns interface type that method is defined on
2314         (mono_mb_emit_cominterop_call): emits native call to function pointer
2315         gotten from vtable
2316         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
2317         that matches signature of unmanaged function.
2318         (cominterop_get_native_wrapper): wrapper around adjusted method call.
2319         (cominterop_get_invoke): forwards call from proxy to __ComObject
2320         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
2321         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
2322         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
2323         
2324         * marshal.h: Added Marshal icall declarations.
2325         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
2326         so we can access them in finalizer
2327         
2328 2006-07-14  Dick Porter  <dick@ximian.com>
2329
2330         * object.c (mono_type_initialization_cleanup): Fix a race
2331         condition by temporarily commenting out the critical section
2332         deletion.
2333
2334 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
2335
2336         * reflection.c (create_custom_attr): Fix some warnings.
2337         (create_custom_attr_data): Ditto.
2338         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
2339         types. Fixes #78855.
2340
2341 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
2342
2343         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
2344
2345         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
2346
2347 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
2348
2349         * reflection.c (resolve_object): Add support for DynamicMethod.
2350
2351         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
2352         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
2353
2354 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
2355
2356         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
2357         don't leak GPtrArray's pdata has we have no use (nor free) for it.
2358
2359 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
2360
2361         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
2362         Fixes #77888.
2363
2364 2006-06-30  Raja R Harinath  <rharinath@novell.com>
2365
2366         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
2367         slightly: remove a shadow local variable.
2368
2369 2006-06-29  Raja R Harinath  <rharinath@novell.com>
2370
2371         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
2372         definition that introduces the virtual function slot.
2373         Also fix Coverity #105.
2374
2375 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
2376
2377         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
2378         for dynamic assemblies. Fixes #78724.
2379
2380 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
2381
2382         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
2383         Fixes #78722.
2384
2385 2006-06-21  Martin Baulig  <martin@ximian.com>
2386
2387         * reflection.c
2388         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
2389         fixes #76484.
2390
2391 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
2392
2393         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
2394
2395 2006-06-20  Raja R Harinath  <rharinath@novell.com>
2396
2397         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
2398         nor TYPEREFs.
2399         * class.c (mono_class_create_from_typespec): Add 'context' argument.
2400         Inflate result if necessary.
2401         (mono_class_get_full): Remove old version.  Rename from
2402         'mono_class_get' and add 'context' argument.  Pass it to
2403         ..._create_from_typespec.
2404         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
2405         (mono_ldtoken): Revert change below.
2406
2407 2006-06-20  Martin Baulig  <martin@ximian.com>
2408
2409         * class.c (mono_ldtoken): Don't pass the generic context to
2410         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
2411
2412 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
2413
2414         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
2415         and later freeing it. Fixes #78638.
2416
2417 2006-06-15  Miguel de Icaza  <miguel@novell.com>
2418
2419         * icall.c (mono_class_get_throw): Revert over-zealous error
2420         throwing, the caller for mono_class_get_throw will cope with
2421         errors when classes are not properly initialized already.
2422
2423         The code still copes with loader exceptions though.
2424
2425         Fixes the regression in reftype1 and reftype3 from the CAS tests.
2426         
2427 2006-06-14  Miguel de Icaza  <miguel@novell.com>
2428
2429         Fixes the `make run1' version of RuntimeAbort (to be commited,
2430         source is in Bugzilla).
2431         
2432         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
2433         FALSE on class loading failure instead of returning true.
2434
2435         * class.c (mono_class_create_from_typedef): It is possible for
2436         mono_metadata_interfaces_from_typedef_full to fail if a class is
2437         not found, cope with this.
2438         
2439
2440 2006-06-14  Dick Porter  <dick@ximian.com>
2441
2442         * socket-io.c: 
2443         * process.c: Fix a bunch of signed/unsigned warnings from gcc
2444         4.1.1
2445
2446 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
2447
2448         * culture-info-table.h : oops, forgot to make it nsync with r61548.
2449
2450 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2451
2452         * icall.c: Another fix for building mono in Visual Studio.
2453
2454 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2455
2456         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
2457         
2458 2006-06-09  Martin Baulig  <martin@ximian.com>
2459
2460         * debug-mono-symfile.c: Put this back and really fix it this
2461         time. Sorry for all the trouble.
2462
2463 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
2464
2465         * icall.c (mono_class_get_throw): Fix a warning.
2466         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
2467         ReflectionTypeLoadException if needed. Fixes #78606.
2468
2469         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2470         (mono_class_init): Ditto.
2471
2472         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2473         ref_only exceptions.
2474         (mono_loader_clear_error): Make this work even if there is no error.
2475
2476 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
2477
2478         * object-internals.h marshal.c marshal.h icall.c: Implement method 
2479         Marshal.GetComSlotForMethodInfo using internal call.
2480
2481 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
2482
2483         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2484         a function for signalling it.
2485
2486         * class.c (mono_class_from_typeref): Use the new kind of loader error when
2487         a referenced assembly is not found.
2488
2489         * loader.c (mono_loader_error_prepare_exception): Add support for 
2490         LOADER_ERROR_ASSEMBLY. Fix formatting.
2491
2492 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
2493
2494         * domain.c appdomain.c class-internals.h marshal.c: Add support 
2495         for VARIANT marshalling on windows and increment corlib version
2496         since Variant struct was added.
2497
2498 2006-06-03  Miguel de Icaza  <miguel@novell.com>
2499
2500         * debug-mono-symfile.c: Revert Martin's previous patch which broke
2501         stack trace line information:
2502
2503         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2504         (Martin) when looking up B which is between A and C, return A not C.
2505
2506         Bug is #78573.
2507
2508         Thanks to Alexander Olk for tracking this down.
2509
2510 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2511
2512         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2513         
2514         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2515         avoid clobbering its value.
2516         (mono_string_to_lpstr): Fix a warning on windows.
2517
2518 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2519
2520         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2521
2522         * reflection.c loader.c: Removed references to 'dummy' flag.
2523
2524         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2525
2526         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2527         it gets GC tracking.
2528
2529         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2530         GC tracking.
2531         
2532         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2533
2534         * marshal.c threadpool.c: Update callers of mono_async_result_new.
2535
2536         * appdomain.c: Bump corlib version.
2537
2538 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2539
2540         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2541         CEE_STIND_REF when working with object references.
2542
2543 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2544
2545         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2546         Fixes #78539.
2547
2548 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2549
2550         * loader.c (method_from_memberref): Fix argument value for
2551         mono_loader_set_error_method_load (I was passing the MonoClass
2552         instead of the class name char *).
2553
2554 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2555
2556         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2557         CEE_STIND_REF when working with object references.
2558
2559 2006-05-30  Martin Baulig  <martin@ximian.com>
2560
2561         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2562         mono_method_full_name() change and replace the ':' with a '.'
2563         here.
2564
2565 2006-05-30  Martin Baulig  <martin@ximian.com>
2566
2567         * debug-mono-symfile.c
2568         (mono_debug_symfile_lookup_location): Fix the algorithm:
2569         when looking up B which is between A and C, return A not C.
2570
2571 2006-05-29  Martin Baulig  <martin@ximian.com>
2572
2573         * mono-debug.h
2574         (MonoDebugMethodInfo): Make the typedef public.
2575         (MonoDebugSourceLocation): New public struct.
2576
2577         * mono-debug.c
2578         (mono_debug_source_location_from_address): Removed.
2579         (mono_debug_source_location_from_il_offset): Removed.
2580         (mono_debug_il_offset_from_address): Removed.
2581         (mono_debug_address_from_il_offset): Removed.
2582         (mono_debug_lookup_method): New public function.
2583         (mono_debug_lookup_source_location): New public function; replaces
2584         the old mono_debug_source_location_from_*() functions; see the
2585         inline documentation.
2586         (mono_debug_free_source_location): New public function.
2587         (mono_debug_print_stack_frame): New public function; see the
2588         inline documentation.
2589
2590         * debug-mono-symfile.c
2591         (mono_debug_find_source_location): Renamed into
2592         mono_debug_symfile_lookup_location(); only take a
2593         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2594         documentation.
2595         (mono_debug_find_method): Renamed into
2596         mono_debug_symfile_lookup_method().
2597
2598 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2599
2600         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2601         returned by mono_image_open_full ().
2602
2603         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2604         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2605         #78517.
2606
2607         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2608         #78518.
2609
2610 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2611
2612         * class.c (mono_class_from_typeref): handle missing images
2613         earlier, deals with bug #78418.   Refactor code; 
2614
2615         Fix a warning introduced in my previous commit (some stale code
2616         from before I revisited my patch).
2617
2618         * class.c (mono_class_create_from_typedef): On failure, remove the
2619         class from the MonoImage->class_cache as the class is not
2620         initialized;   Fixes the leak pointed out by Paolo.
2621
2622 2006-05-25  Dick Porter  <dick@ximian.com>
2623
2624         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2625         DeleteCriticalSections until I figure out which one may still be
2626         sometimes locked when mono_thread_cleanup is called.
2627
2628 2006-05-24  Dick Porter  <dick@ximian.com>
2629
2630         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2631         of mono_thread_manage and back into its own function, so it can be
2632         called after the finalizer thread has finished.
2633
2634         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2635
2636 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2637
2638         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2639         Fixes #78495.
2640
2641         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2642         with non-blittable elements.
2643         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2644
2645 2006-05-24  Martin Baulig  <martin@ximian.com>
2646
2647         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2648         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2649
2650         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2651         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2652         `mono_debugger_event_handler' to NULL.
2653
2654 2006-05-24  Martin Baulig  <martin@ximian.com>
2655
2656         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2657
2658 2006-05-24  Martin Baulig  <martin@ximian.com>
2659
2660         * mono-debug-debugger.h
2661         (mono_debugger_create_notification_function): Added
2662         `MonoCodeManager *' argument.
2663
2664 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2665
2666         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2667
2668 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2669
2670         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2671         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2672         implementation.
2673
2674 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2675
2676         * icall.c: precise GC support: objects can't be stored in unmanaged
2677         memory anymore, even if they are kept alive by other references: since
2678         they can move the GC needs to be able to always find them.
2679
2680 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2681
2682         * object.c: precise GC support for static fields. Support
2683         for moving GCs: write barriers and pinned allocation for interned
2684         strings.
2685
2686 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2687
2688         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2689         structure.
2690
2691 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2692
2693         * class.c, gc.c: sgen and precise GC updates.
2694
2695 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2696
2697         * marshal.h, marshal.c: added write barrier wrapper and precise type
2698         fixes.
2699
2700 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2701
2702         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2703         support.
2704
2705 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2706
2707         * reflection.c: precise and sgen GC updates.
2708
2709 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2710
2711         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2712
2713 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2714
2715         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2716
2717 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2718
2719         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2720         MONO_TYPE_OBJECT. Fixes #78462.
2721
2722 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2723
2724         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2725         and blittable types.
2726
2727 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2728
2729         * class.c (mono_class_get_exception_for_failure): Implement parts
2730         of a TODO: if the loader error is set (instead of the class
2731         error), we return a Loader exception that can be properly thrown
2732         elsewhere.
2733
2734         This was exposed by some Winforms 2.0 code that I tried to run
2735         (Atsushi pointed me to it).
2736
2737 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2738
2739         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2740         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2741         
2742         * marshal.c (emit_marshal_vtype): Add limited support for 
2743         UnmanagedType.LPStruct. Fixes #78427.
2744
2745         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2746         Applied a patch from kangaroo to fix #77523.
2747
2748 2006-05-17  Martin Baulig  <martin@ximian.com>
2749
2750         * threads.c
2751         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2752         (debugger_thread_created): Removed.
2753         (debugger_thread_exited): Removed.
2754
2755 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2756
2757         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2758
2759         * object-internals.h (MonoReflectionResource): Sync with managed version.
2760
2761 2006-05-12  Wade Berrier <wberrier@novell.com>
2762
2763         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2764
2765 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2766
2767         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2768         functions try to allocate from the image mempool.
2769
2770 2006-05-12  Dick Porter  <dick@ximian.com>
2771
2772         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2773
2774 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2775
2776         * object.c: The FieldGetter and FieldSetter methods require the full
2777         name of the class, not only the name. Fixes bug #78277.
2778
2779 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2780
2781         * loader.c (method_from_memberref): Do not pass the NULL klass to
2782         mono_loader_set_error_() methods.  Pass the non-NULL value
2783         (class). 
2784
2785 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2786
2787         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2788         (mono_assembly_close): Null out assembly->image->references after freeing it.
2789
2790         * image.c (mono_image_close): Free image->references.
2791         
2792         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2793
2794 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2795
2796         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2797         before checking if it's NULL (g_assert).
2798
2799 2006-05-10  Martin Baulig  <martin@ximian.com>
2800
2801         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2802         I thought I already killed that two months ago, but now it somehow reappeared.
2803
2804 2006-05-10  Martin Baulig  <martin@ximian.com>
2805
2806         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2807
2808 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2809
2810         * reflection.c: Allocate memory for dynamically created methods in the image
2811         mempools.
2812
2813 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2814
2815         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2816         don't use the ad pointer before checking if it's NULL (g_assert).
2817
2818 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2819
2820         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2821         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2822
2823         * marshal.c: Allocate all signatures from mempools.
2824
2825         * marshal.c: Allocate some more signatures from mempools.
2826
2827 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2828
2829         * object.c (mono_load_remote_field): The code used to provide a
2830         temporary variable for returning results if the user did not
2831         provide a result pointer.  But our temporary variable was allocted
2832         on the satck.
2833
2834         Fix calling code to always pass a result area.   Coverity ID 103.
2835
2836 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2837
2838         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2839         value, not the old. Fixes #78312.
2840         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2841
2842         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2843         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2844         per-image cache.
2845
2846         * assembly.c (mono_assembly_close): Free image->references.
2847
2848         * assembly.c (mono_assembly_names_equal): Fix a warning.
2849         (mono_assemblies_cleanup): Cleanup more global data.
2850
2851         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2852
2853         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2854         ptr_cache and image->modules.
2855
2856         * image.c (mono_image_init): Allocate array_cache lazily.
2857         
2858 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2859
2860         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2861         behavior was changed recently and has bad side effects.
2862
2863 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2864
2865         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2866         
2867         * assembly.c (mono_assembly_close): Remove a debug printf.
2868
2869         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2870
2871         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2872         to also allow for temporary references between mono_image_open ()/close ().
2873
2874         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2875
2876 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2877
2878         * marshal.c: Fix support for dynamic methods.
2879
2880         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2881
2882         * marshal.c (mono_marshal_cleanup): New cleanup function.
2883
2884         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2885         image mempools.
2886
2887         * class.c (mono_class_init): Fix leaking class->nested_classes.
2888
2889         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2890
2891         * image.c (mono_image_init): Initialize the new cashes.
2892
2893         * image.c (mono_image_close): Destroy the new cashes.
2894
2895         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2896
2897         * mempool.c (mono_mempool_strdup): New helper function.
2898
2899         * class-internals.h: Add prototype for mono_loader_unlock ().
2900
2901         * domain.c (mono_jit_info_table_find): Fix a warning.
2902         (mono_debugger_check_runtime_version): Ditto.
2903
2904         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2905         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2906         functions to these modules.
2907
2908         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2909         metadata modules.
2910         
2911         * marshal.c (mono_free_bstr): Fix a warning.
2912
2913         * assembly.c (mono_assembly_open_full): Fix another small leak.
2914
2915         * object.c: Fix some unload leaks in the remoting code.
2916
2917         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2918         function.
2919
2920         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2921
2922         * reflection.c: Fix some unload leaks in dynamic assemblies.
2923
2924 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2925
2926         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2927         * marshal.h: Add BSTR support on Win32
2928         * icall.c: Add BSTR icalls
2929         * metadata.h: Add BSTR enums
2930
2931 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2932
2933         Work to catch the crash from #76795 and turn it into an
2934         exception.   As I stubbed out pieces of the VisualBasic support,
2935         I found a number of places where the code was failing and I added
2936         checks to those places. 
2937         
2938         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2939         function return a status code.  If we fail to parse the signature
2940         from mono_metadata_parse_generic_inst, return FALSE.
2941
2942         * loader.c (mono_get_method_from_token): If we fail to load the
2943         method (mono_class_get) return NULL.   
2944
2945         * (method_from_memberref): Return NULL if we are unable to parse
2946         the method signature
2947
2948         (mono_loader_error_prepare_exception): Since we now use the
2949         loader_error flag internally to stop processing, and obtaining
2950         exceptions that might be thrown will walk this code path the
2951         proper way of going from a MonoLoaderError into a
2952         MonoException was convoluted.   This new routine encapsulates the
2953         process of turning the error into an exception and *clearing* the
2954         error afterwards.
2955         
2956 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2957
2958         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2959         with missing assemblies), and to cope with:
2960
2961                 * Missing fieldref from a non-existing assembly.
2962                 * Missing methodref from a non-existing assembly.
2963
2964         The first batch of work to address *some* of the issues from 76661.
2965         
2966         * object.c (mono_class_create_runtime_vtable): If we fail to
2967         initialize the class raise the exception here. 
2968
2969         * metadata.c (mono_class_get_overrides_full): If any methods fail
2970         to load return the failure to the caller.
2971
2972         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2973         flagging assemblies that failed to load.   
2974
2975         Do not crash if we are unable to load the assembly.
2976
2977         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2978         assemblies. 
2979
2980         * loader.c (mono_loader_set_error_type_load): Change the
2981         convention to always pass unallocated strings, so we make our own
2982         copies (I know our own code had duplicated strings before, but
2983         this keeps the normal conventions).
2984         (method_from_memberref): Call mono_loader_set_error_method_load
2985         for all possible failures of loading the class. 
2986         Remove assert, turn into a loader error.
2987
2988         (mono_loader_error_to_exception): Move this routine from mini
2989         (mini_loader_error_to_exception) there was no need to have that in
2990         mini. 
2991
2992         * class.c (mono_class_from_typeref): If we were not able to load
2993         the assembly with mono_assembly_load_reference, call the
2994         mono_loader_set_error_type_load to register the problem.
2995
2996         (mono_class_setup_fields): If we fail to load the type from
2997         mono_metadata_parse_type_full, call mono_class_set_failure and
2998         break from the loop.
2999
3000         If class->exception_type is set, we do not layout the fields as
3001         that might crash the runtime, and instead return (from breaking
3002         from the previous loop).
3003
3004         (mono_class_setup_vtable): This now returns a boolean indicating
3005         whether the table was properly setup.   The decision is driven by
3006         mono_class_get_overrides_full which might run into non-existing
3007         methods. 
3008         
3009         (mono_class_init): Returns TRUE on success or FALSE if there was a
3010         problem in loading the type (incorrect assemblies, missing
3011         assemblies, methods, etc).
3012
3013         When we call mono_class_setup_fields we also check for a potential
3014         error inside this call (either a class exception or a general
3015         loader exception).
3016
3017         (mono_class_create_from_typedef): If the parent fails to load
3018         (calling mono_class_get_full) return NULL.
3019         
3020         ** Important **
3021
3022         calls to mono_metadata_parse_type_full should be checked
3023         everywhere and set the mono_class_set_failure
3024         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
3025
3026         The current patch checks the places where my manually constructed
3027         tests show the errors are showing up, but we should do it
3028         everywhere. 
3029
3030         ** Important2 **
3031
3032         mono_class_init return values should be tested everywhere, like
3033         the previous case this is something that we should audit
3034         everywhere and not only on the cases exposed by the tests I
3035         created. 
3036
3037 2006-04-26  Miguel de Icaza  <miguel@novell.com>
3038
3039         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
3040         boolean parameter and instead pass the information on `options'
3041         parameter (FileOptions).
3042
3043         * icall.c: Register the new signature for MonoIO.Open.
3044
3045         * debug-helpers.c (dis_one): Trying to understand how coverity
3046         works.  Fix Run 5, item 78.
3047
3048 2006-04-26  Dick Porter  <dick@ximian.com>
3049
3050         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
3051         dereference.
3052
3053 2006-04-25  Martin Baulig  <martin@ximian.com>
3054
3055         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
3056
3057         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
3058         debugger_thread_created().
3059         (debugger_gc_push_all_stacks): Don't handle the main thread in any
3060         special way.
3061         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
3062         (mono_debugger_finalize_threads): New function; undo the effects
3063         of mono_debugger_init_threads().
3064         (mono_debugger_create_all_threads): Removed.
3065
3066 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
3067
3068         * image.c (mono_image_close): Tidy up trace messages.
3069
3070         * assembly.c (mono_assembly_close): Ditto.
3071
3072         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
3073         no longer references an already freed assembly. Fixes #78168.
3074
3075 2006-04-21  Dick Porter  <dick@ximian.com>
3076
3077         * threads.c (mono_thread_detach): Fix reference counting when
3078         detaching threads.
3079
3080 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
3081
3082         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
3083         #78155.
3084
3085 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
3086
3087         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
3088         (mono_type_to_stind): Ditto.
3089
3090         * marshal.c: Use the new helper functions to simplify code.
3091
3092         * image.c (mono_image_close): Add some code for help debug assembly unloading
3093         problems.
3094
3095         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
3096         image mempool.
3097
3098         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
3099         assembly was already loaded in another appdomain. Fixes #78083.
3100
3101 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
3102
3103         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
3104         referenced assemblies.
3105         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
3106
3107         * domain.c (mono_domain_free): Add a trace message.
3108
3109         * appdomain.c (add_assemblies_to_domain): Ditto.        
3110
3111         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
3112         field.  
3113
3114 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3115
3116         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
3117
3118 2006-04-12  Martin Baulig  <martin@ximian.com>
3119
3120         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
3121         `USE_INCLUDED_LIBGC'.   
3122
3123 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3124
3125         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
3126         the patch contains ../ and a small directory name later. Hopefully fixes
3127         #78035.
3128
3129 2006-04-10  Martin Baulig  <martin@ximian.com>
3130
3131         Clean up the debugger's thread-handling code.
3132
3133         The debugger's thread-handling code has been moved from
3134         ../mini/debug-debugger.c to threads.c.  We now iterate directly
3135         over the `threads' hash, keep track of exiting threads and also
3136         use proper locking.
3137
3138         We can now debug XSP and XSP based applications with the debugger.
3139
3140         * object-internals.h (MonoThread): Added `gpointer end_stack'.
3141
3142         * threads.h
3143         (MonoThreadCallbacks): Removed; this was only used by the debugger.
3144         (mono_install_thread_callbacks): Likewise.      
3145
3146         * threads.c (mono_thread_callbacks): Removed.
3147         (debugger_thread_created, debugger_thread_exited): New static functions.
3148         (start_wrapper): Call debugger_thread_created().
3149         (thread_cleanup): Call debugger_thread_exited().
3150         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
3151         (mono_debugger_init_threads): New public function.
3152         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
3153         iterate directly over the `threads' hash and also use proper locking.
3154
3155         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
3156
3157         * mono-debug-debugger.h
3158         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
3159
3160 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
3161
3162         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
3163         argument type=array. Fixes #78057.
3164
3165 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
3166
3167         * culture-info-table.h : regenerated. Fixed bug #69652.
3168
3169 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
3170
3171         * loader.c metadata.c: Reapply a variant r59116.
3172         
3173         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
3174
3175         * class.c (mono_class_setup_interface_offsets): New internal function.
3176
3177         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
3178         interfaces too. Fixes #77398.
3179
3180         * reflection.c (encode_cattr_value): Add support for 
3181         parameter type=object, argument type=array.
3182         (load_cattr_value): Ditto. Fixes #77916.
3183
3184         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
3185         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
3186
3187         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
3188         a byval char array and CharSet is Ansi.
3189
3190         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
3191
3192 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
3193
3194         * metadata.c: Add some locking comments.
3195         
3196         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
3197         mempool.
3198         (mono_metadata_free_method_signature): Don't free the signature itself.
3199
3200         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
3201
3202         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
3203         reference the same MonoImage.
3204         (mono_assembly_load_from_full): Add an assert.
3205
3206 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
3207
3208         * image.c (mono_image_close): Don't put the image we are about to free into the
3209         loaded_images_guid_hash.
3210
3211         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
3212         to reduce code duplication.
3213
3214         * marshal.c: Register the native functions called by this module as icalls, to
3215         somewhat centralize the creation of MonoMethodSignature's.
3216
3217         * loader.c (mono_method_signature): Add a cache for method signatures.
3218
3219         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
3220         the parameter attributes of a method.
3221         (mono_metadata_parse_method_signature_full): Refactored the computation of
3222         parameter attributes into a separate function. Also avoid one allocation in
3223         most cases.
3224
3225         * assembly.c (mono_assembly_close): Ditto.
3226
3227         * image.c (mono_image_close): Log trace messages with INFO level.
3228
3229         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
3230
3231         * image.c reflection.c: Correct reference counting of image modules.
3232         
3233         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
3234         of this function from the image mempool.
3235         
3236         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
3237         to allow more cached types to be used.
3238
3239         * mono-debug.c (mono_debug_add_method): Appled patch from
3240         David S. Miller  <davem@sunset.davemloft.net>: Access 
3241         minfo->lexical_blocks[] entry elements using read32().
3242
3243 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
3244
3245         * loader.c (mono_free_method): No longer free the method header for non-dynamic
3246         methods as it is allocated from the mempool.
3247
3248         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
3249         image mempool.
3250
3251         * metadata-internals.h: Add comments describing the reference counting scheme
3252         used for MonoImage and MonoAssembly.
3253
3254         * image.c assembly.c reflection.c: Rework reference counting of images and 
3255         assemblies so they are freed when the runtime is shut down. Free some 
3256         additional memory structures when an image is unloaded.
3257         
3258 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
3259
3260         * class.c loader.c reflection.c: Allocate more data structures in
3261         the image mempool.
3262
3263 2006-03-31  Miguel de Icaza  <miguel@novell.com>
3264
3265         * icall.c
3266         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
3267         build on pre glib 2.4 systems.
3268
3269 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
3270
3271         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
3272
3273         * icall.c: Fix some warnings.
3274
3275 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
3276
3277         * culture-info-table.h : regenerated.
3278
3279 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
3280
3281         * threads.c, object-internals.h, verify.c: changed the culture caching
3282         code to use a normal MonoArray for storage so the GC can keep track of
3283         them easily. Fixed bits of the cache logic, too and simplified the
3284         code.
3285
3286 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
3287
3288         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
3289         thread for non-Boehm GCs.
3290
3291 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3292
3293         * domain.c, object.c, domain-internals.h: reduce the amount of memory
3294         needed to keep track of the data for static fields.
3295
3296 2006-03-29  Raja R Harinath  <rharinath@novell.com>
3297
3298         Fix #75172
3299         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
3300         for interface classes.  Use 'num_methods' instead.
3301         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
3302         before using '->vtable_size' field.
3303
3304 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
3305
3306         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
3307         doesn't contain managed pointers, so use a normal hashtable.
3308
3309 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
3310
3311         * reflection.c, class-internals.h, domain.c: fixed handling of types
3312         used as values for objects in custom attributes (bug #77915):
3313
3314 2006-03-24  Martin Baulig  <martin@ximian.com>
3315
3316         * class.c (mono_class_setup_fields): Added support for generic
3317         instances; fixes #77580.
3318
3319 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3320
3321         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
3322
3323 2006-03-24  Dick Porter  <dick@ximian.com>
3324
3325         * file-io.c (get_file_attributes): More stat macro breakage.
3326         Fixes bug 77759.
3327
3328 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
3329
3330         * profiler.c: added the file=filename option in the default profiler
3331         to output the profile data to filename.
3332
3333 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3334
3335         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
3336         bug #77877.
3337
3338 2006-03-22  Martin Baulig  <martin@ximian.com>
3339
3340         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
3341         allocated `MonoClassField *' in `fb->handle'.
3342
3343 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3344
3345         * class.c, image.c, metadata-internals.h: implemented new mechanism to
3346         allocate interface ID to save memory and allow better ID reuse on
3347         appdomain unload. setup_generic_vtable () removal from Martin.
3348
3349 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3350
3351         * object.h, appdomain.c, domain.c, exception.c, icall.c,
3352         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
3353         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
3354         write barriers for reference stores with managed objects accessed with
3355         C structures in the runtime and in embedding programs.
3356
3357 2006-03-20  Raja R Harinath  <rharinath@novell.com>
3358
3359         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
3360         'interface_id' and 'max_interface_id' fields of MonoClasses
3361         representing open generic types.
3362
3363 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
3364
3365         * object.h, object.c, icall.c: added functions to deal with
3366         storing valuetypes that contain references in managed objects.
3367         * reflection.c, string-icalls.c, threads.c, marshal.c: small
3368         fixes and comments around uses of mono_array_addr ().
3369
3370 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
3371
3372         * object.h, icall.c, monitor.c: object.GetHashCode ()
3373         implementation that supports the moving garbage collector.
3374
3375 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
3376
3377         * icall.c, threads-types.h, threads.c: implemented finalizer for
3378         LocalDataStoreSlot.
3379
3380 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
3381
3382         * metadata.c (mono_type_size): Add a fixme.
3383         (mono_type_stack_size): Ditto.
3384
3385         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
3386         'type_forwarders' field.
3387
3388         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
3389         attribute from net 2.0.
3390
3391         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
3392         from class.c.
3393
3394         * class.c (mono_class_setup_fields): Fix a warning.
3395         
3396         * class.c (mono_class_from_name): Add support for assemblyref entries
3397         in the EXPORTEDTYPE table.
3398
3399         * reflection.c: Add support for handling type forwarders under net 2.0.
3400
3401         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
3402         
3403 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
3404
3405         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
3406         overwriting entries in ModuleBuild->types, also clean up the code
3407         a little. Fixes #77774.
3408
3409 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
3410
3411         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
3412         load friend assembly info when present.
3413
3414 2006-03-14  Raja R Harinath  <rharinath@novell.com>
3415
3416         Fix crasher on gtest-158.cs.
3417         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
3418         the return value if the MonoClass we want is yet in an
3419         inconsistent state.
3420         * class.c (mono_class_create_from_typedef): Add an comment
3421         explaining an order dependency between mono_class_setup_parent and
3422         mono_class_setup_mono_type.
3423
3424 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
3425
3426         * class.c: documentation updates and events bug fix.
3427
3428 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3429
3430         * class.c: some cleanup, locking fixes.
3431
3432 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
3433
3434         * class.c: fix the generics code to setup nested
3435         type info to the instantiated type (bug #77770).
3436
3437 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3438
3439         * marshal.c: fixed a few type correctness issues.
3440
3441 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3442
3443         * loader.c: the Set/Get/Addrtess array methods should be public.
3444
3445 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
3446
3447         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
3448         
3449         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
3450         info->wrapper.
3451
3452 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
3453
3454         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
3455
3456         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
3457
3458         * mempool.c (mono_mempool_alloc): Speed this up a bit.
3459         (mono_mempool_alloc0): Ditto.
3460
3461 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3462
3463         * socket-io.c:
3464         (create_object_from_sockaddr): it was allocating 4 extra bytes
3465         for the AF_UNIX data. Fixes bug #77747.
3466
3467 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
3468
3469         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3470
3471 2006-03-09  Dick Porter  <dick@ximian.com>
3472
3473         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3474         Fixes bug 76966 again.
3475
3476 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3477
3478         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3479         names from r57532
3480         * appdomain.c: Bumped corlib version to 48 (due to r57532)
3481
3482 2006-03-07  Martin Baulig  <martin@ximian.com>
3483
3484         * object.c
3485         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3486
3487 2006-03-07  Martin Baulig  <martin@ximian.com>
3488
3489         * class.c
3490         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3491         regression introduced in r56970; see gtest-252.cs.
3492
3493         * loader.c (mono_get_method_constrained): Correctly handle generic
3494         methods; see gtest-253.cs.
3495
3496 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
3497
3498         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3499
3500 2006-03-04  Martin Baulig  <martin@ximian.com>
3501
3502         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3503         compute the parent type at runtime, just like we're already doing
3504         it for interfaces.
3505
3506         * reflection.c
3507         (mono_reflection_bind_generic_parameters): Don't compute the
3508         parent type anymore.
3509
3510         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3511
3512 2006-03-04  Martin Baulig  <martin@ximian.com>
3513
3514         * mono-debug-debugger.h
3515         (mono_debugger_create_notification_function): Allocate memory at
3516         runtime and return a pointer to it.
3517
3518 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
3519
3520         * assembly.c: Fix windows build.
3521         
3522         * assembly.c: Fix build.
3523
3524         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
3525
3526         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3527         
3528 2006-03-03  Dick Porter  <dick@ximian.com>
3529
3530         * process.c
3531         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3532         Check parameters before dereferencing them.  Fixes Aaron's part of
3533         bug 77393.
3534
3535 2006-03-03  Raja R Harinath  <rharinath@novell.com>
3536
3537         Fix performance regression.
3538         * loader.c (find_method_in_class): Add 'from_class' argument.
3539         Rename 'klass' argument to 'in_class'.  The signature is compared
3540         against the method in 'in_class', and the corresponding method is
3541         returned from 'from_class'.
3542         (find_method): Walk both 'in_class' and 'from_class' in parallel.
3543         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3544         type definition and generic instantiation in parallel.
3545         (mono_get_method_constrained): Update to changes.
3546
3547 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3548
3549         * threads.c: make sure the domain is correct, too when doing
3550         mono_thread_attach ().
3551
3552 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3553
3554         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3555         windows. Fixes #77683.
3556
3557 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3558
3559         * object.h, *: introduced specific way to set elements of an array
3560         of references to be used as write barrier. Still need to audit the
3561         uses of mono_array_addr.
3562
3563 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3564
3565         * object-internals.h: New field to cache the assmebly name, patch
3566         from Tambet Ingo (tambet@ximian.com)
3567
3568 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3569
3570         * decimal.h, class-internals.h, metadata-internals.h,
3571         file-io.h: mark a few function declarations as internal, to
3572         reduce the number of PLT entries.
3573
3574 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3575
3576         * file-io.c: fix typo in warning message.
3577
3578 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3579
3580         * loader.c: on unix, lookup the "*A" version of a function
3581         if charset is auto as a second option before failing.
3582
3583 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3584
3585         * class.h (mono_class_inflate_generic_method): Revert to two
3586         argument version.
3587         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3588         (mono_class_inflate_generic_method_full): Add.
3589         * class.c (mono_class_inflate_generic_method_full): Rename from
3590         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3591         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3592         * loader.c, reflection.c: Update to changes.
3593
3594 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3595
3596         * icall.c: const fixes and small improvements.
3597
3598 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3599
3600         * threadpool.c: for asynchronous connect(), enable the same workaround
3601         for BSD 6 as for the Mac. Fixes bug #77637.
3602
3603 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3604
3605         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3606         formatted classes. Fixes #77524.
3607
3608 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3609
3610         * class.c (inflate_generic_type): Add a couple more
3611         micro-optimizations.
3612         (inflate_generic_context): Don't use the 'gmethod' from
3613         'inflate_with'.
3614         (mono_class_inflate_generic_method): If the method has generic
3615         parameters, but the passed-in context doesn't have a 'gmethod',
3616         create one.  Use the possibly simplified generic instantiation
3617         from the declaring class instead of the one passed in.
3618
3619 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3620
3621         Make generic method signature and method header handling lazy.
3622         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3623         (inflate_generic_header): Likewise.
3624         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3625         parameter to avoid inflating types.
3626         (mono_get_inflated_method): Empty out.
3627         * class.h (mono_class_inflate_generic_method): Update to changes.
3628         * loader.c (mono_get_method_from_token): Don't parse signature for
3629         generic methods, nor methods of generic classes.
3630         (mono_method_signature): Rename from 'mono_method_signature'.
3631         Inflate signature on demand.
3632         (mono_method_get_header): Inflate method header on demand.
3633         * reflection.c: Update to changes.
3634
3635 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3636
3637         * metadata.c (mono_metadata_inflate_generic_inst): If the
3638         instantiation is closed, don't bother expanding it in the new
3639         context.
3640         * class.c (inflate_generic_class): If the generic instantiation
3641         doesn't change after inflation, return the argument itself.
3642         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3643         Add bounds checks.
3644         (inflate_generic_context): If neither the generic class nor the
3645         generic method instantiations change, return the original context.
3646         * reflection.c (mono_method_get_object): Do
3647         'mono_get_inflated_method' before accessing the ->klass field.
3648         (inflate_mono_method): Don't create a MonoGenericMethod unless
3649         necessary.
3650         (inflate_method): Don't pass a constructed type as the declaring
3651         type of a methodbuilder.
3652
3653 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3654
3655         * object.c: fix memory overwrite.
3656
3657 2006-02-22  Dick Porter  <dick@ximian.com>
3658
3659         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3660         it doesn't work any more.
3661         (mono_threads_request_thread_dump): Fix unused variable warnings.
3662
3663 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3664
3665         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3666         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3667         the public header file.
3668
3669 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3670
3671         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3672
3673 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3674
3675         * class-internals.h, object.c: reduce the size of MonoVTable
3676         and store the interface_offsets array at negative offsets.
3677
3678 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3679
3680         * metadata.c: tweak table descriptors data structures to reduce
3681         size and runtime relocations.
3682
3683 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3684
3685         * marshal.c: fix some types and opcodes to be type-safe
3686         in marshaling wrappers.
3687
3688 2006-02-21  Ankit Jain  <jankit@novell.com>
3689
3690         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3691
3692 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3693
3694         * metadata.c (get_constraints): Relax debugging checks for monodis.
3695
3696 2006-02-21  Ankit Jain  <jankit@novell.com>
3697
3698         * metadata.c (mono_metadata_load_generic_params): Move the code
3699         checking for ambiguous generic params from here to mono/dis/get.c
3700         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3701
3702 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3703
3704         Fix assertion triggered when compiling nemerle.
3705         * class.c (mono_get_shared_generic_inst): Rename from
3706         get_shared_inst and make non-static.
3707         * loader.c (mono_get_shared_generic_method): New.  Used to create
3708         the MonoGenericContext-equivalent of a MonoGenericContainer.
3709         (mono_get_method_from_token): Initialize the 'context' field of
3710         the created MonoGenericContainer.
3711         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3712         * metadata.c (get_constraints): Add sanity check.
3713         * class-internals.h: Add new internal methods.
3714
3715         * reflection.c (verify_safe_for_managed_space): New sanity check.
3716         Currently checks that owner-less generic parameters aren't allowed
3717         in managed space.
3718         (mono_type_get_object): Use it.
3719         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3720         that are now in mono_type_get_object.
3721         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3722
3723 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3724
3725         * metadata.c (mono_type_create_from_typespec): Rename from
3726         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3727         argument and caching of types in the generic container.
3728         (unwrap_arrays, find_generic_param): Remove.
3729         * metadata-internals.h: Update.
3730         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3731
3732 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3733
3734         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3735
3736         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3737         return values. Fixes #77581.
3738
3739         * class.c (mono_fnptr_class_get): Switch name and name_space.
3740
3741         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3742         classes and add support for [In, Out] attributes.
3743         (mono_marshal_free_asany): Ditto. Fixes #77524.
3744
3745 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3746
3747         * class.c (mono_class_from_generic_parameter): Make more robust to
3748         incomplete MonoGenericContainers from monodis.
3749
3750 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3751
3752         * class-internals.h: added some more exception types.
3753         * class.c, metadata.c: added a few checks to handle missing
3754         types.
3755
3756 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3757
3758         Use owner-less generic-params some more.
3759         * class.c (my_mono_class_from_generic_parameter): Remove.
3760         (mono_class_from_generic_parameter): Handle null image,
3761         param->name and param->owner.
3762         (mono_class_from_mono_type): Update.
3763         (mono_class_create_from_typespec): Remove 'container' parameter.
3764         If that parameter is non-null, the result is always inflated by
3765         'mono_class_get_full' anyway.
3766         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3767         parameter.
3768         (mono_class_get_full): Update.
3769
3770         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3771         instance is not open, don't bother inflating.
3772         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3773         parse metadata for inflated classes.
3774         (_mono_class_get): Change GenericContext* parameter to
3775         GenericContainer*.
3776         (mono_class_create_from_typespec): Likewise.  Simplify, and
3777         implement trivially.  All the cases are handled in
3778         mono_class_from_mono_type.  Don't inflate returned class.
3779         (mono_class_get_full): Delegate GENERICINST optimization to
3780         inflate_generic_type.
3781         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3782
3783 2006-02-16  Dick Porter  <dick@ximian.com>
3784
3785         * socket-io.c (create_object_from_sockaddr): Fix typo.
3786         (create_sockaddr_from_object): Check array lengths before
3787         potentially accessing items off the end.
3788         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3789         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3790         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3791         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3792         length checks to avoid wraparound overflows.
3793         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3794         contents of the array of sockets
3795         (hostent_to_IPHostEntry2)
3796         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3797         Check return value of inet_ntop ().
3798         (addrinfo_to_IPHostEntry): Fix typo
3799
3800 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3801
3802         Type metadata parsing doesn't use generic-instantiation information.
3803         * metadata.c (mono_metadata_parse_array_full): Change
3804         MonoGenericContext* parameter to MonoGenericContainer*.
3805         (mono_metadata_parse_type_full): Likewise.
3806         (mono_type_create_from_typespec_full): Likewise.
3807         (mono_metadata_parse_mh_full): Likewise.
3808         (mono_metadata_parse_generic_inst): Likewise.
3809         (do_mono_metadata_parse_generic_class): Likewise.
3810         (do_mono_metadata_parse_type): Likewise.
3811         * metadata-internals.h: Update to changes.
3812         * class.c (mono_class_find_enum_basetype): Likewise.
3813         (mono_class_setup_fields): Likewise.
3814         (mono_class_create_from_typespec): Likewise.
3815         * loader.c (method_from_methodspec): Likewise.
3816         (mono_get_method_from_token): Likewise.
3817         (mono_method_get_header): Likewise.
3818
3819 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3820
3821         * marshal.c: handle additional GENERICINST case (patch from
3822         Thong Nguyen <tum@veridicus.com>).
3823         Fix a few cases where LDIND_I/STIND_I was used for references.
3824
3825 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3826
3827         * reflection.c (mono_reflection_get_token): Remove unused variable.
3828
3829 2006-02-16  Martin Baulig  <martin@ximian.com>
3830
3831         * reflection.c (mono_reflection_get_token): Add support for fields
3832         in instantiated generic types.
3833
3834         * icall.c
3835         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3836
3837 2006-02-15  Martin Baulig  <martin@ximian.com>
3838
3839         * icall.c
3840         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3841         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3842         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3843         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3844
3845 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3846
3847         * class.c, metadata.c, metadata.h, object.c, icall.c,
3848         marshal.c: changed mono_type_get_underlying_type () to do
3849         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3850         Fixed handling of instantiated generic valuetypes (bug #75479).
3851
3852 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3853
3854         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3855         Delegate to mono_metadata_decode_value, and work on the returned value.
3856
3857         * icall.c (ves_icall_MonoType_GetGenericArguments):
3858         Add consistency check here too.
3859         
3860 2006-02-15  Ankit Jain  <jankit@novell.com>
3861
3862         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3863         char/short etc.
3864
3865 2006-02-15  Ankit Jain  <jankit@novell.com>
3866
3867         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3868         signed values, used only for representing lower bounds of arrays.
3869         (mono_metadata_parse_array_full): Use new
3870         mono_metadata_decode_signed_value to decode lower bounds.
3871
3872 2006-02-14  Martin Baulig  <martin@ximian.com>
3873
3874         * reflection.c
3875         (mono_reflection_get_token): Support "MonoGenericMethod" and
3876         "MonoGenericCMethod" and allow generic instances / methods.
3877
3878 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3879
3880         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3881         to obtain the terminal size using an ioctl.
3882
3883         * object.c (mono_nullable_init): Revert this as nullable reference
3884         types are not valid.
3885         (mono_nullable_box): Ditto.
3886
3887 2006-02-09  Dick Porter  <dick@ximian.com>
3888
3889         * threads.c (mono_thread_detach): Drop a reference to the thread
3890         we're detaching.
3891
3892 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3893
3894         * object.c (mono_nullable_init): Handle nullable reference types.
3895         (mono_nullable_box): Ditto. Fixes #77446.
3896
3897 2006-02-07  Martin Baulig  <martin@ximian.com>
3898
3899         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3900
3901 2006-02-07  Ankit Jain  <jankit@novell.com>
3902
3903         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3904         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3905         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3906         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3907         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3908         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3909
3910 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3911
3912         * class.c (mono_class_create_generic): Set type_token as well.
3913
3914         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3915         compatible with MS.
3916
3917 2006-02-02  Martin Baulig  <martin@ximian.com>
3918
3919         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3920         has never been used so far.
3921
3922 2006-02-02  Martin Baulig  <martin@ximian.com>
3923
3924         * mono-debug-debugger.h: Changed comment at the top of this file;
3925         the header is not installed, but it's safe to #include it from
3926         within the JIT.
3927
3928         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3929         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3930
3931 2006-02-02  Martin Baulig  <martin@ximian.com>
3932
3933         * mono-debug.h
3934         (MonoSymbolTable): Removed the `metadata_info' field.
3935
3936         * mono-debug.c
3937         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3938
3939         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3940         (mono_debugger_add_builtin_types): Removed.
3941         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3942         (mono_debugger_create_notification_function): We now operate on a
3943         pre-allocated area; take a `gpointer' and return `void'.
3944
3945         * mono-debug-debugger.c
3946         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3947         (mono_debugger_add_builtin_types): Removed.
3948
3949 2006-02-02  Martin Baulig  <martin@ximian.com>
3950
3951         * threads.c (mono_debugger_create_all_threads): New public method.
3952
3953 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3954
3955         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3956         breaks on several platforms.
3957
3958 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3959
3960         * assembly.c: the VS.NET build doesn't supply default values for
3961         MONO_ASSEMBLIES and MONO_CFG_DIR.
3962
3963 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3964
3965         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3966         helper function.
3967
3968         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3969
3970         * loader.c (method_from_memberref): Fix a warning.
3971
3972         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3973
3974         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3975         with explicit layout. Fixes #77433.
3976
3977 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3978
3979         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3980         max_interface_id is initialized before using it. Fixes #77398.
3981         (ves_icall_Type_GetInterfaces): Ditto.
3982
3983 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3984
3985         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3986         allocate memory for parameter attributes when parsing memberref
3987         signatures.
3988         * loader.c (mono_loader_set_error_method_load): Don't warn.
3989         (method_from_memberref): Ensure MissingMethodException gets thrown
3990         if method is not found.  Make warning more informative.
3991
3992 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3993
3994         Fix #77397
3995         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3996         return true if is byref.
3997         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3998         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3999         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
4000
4001 2006-01-27  Raja R Harinath  <rharinath@novell.com>
4002
4003         Fix tests/find-method.2.il
4004         * loader.c (find_method, find_method_in_class): Remove is_inflated
4005         argument.  Revert 2006-01-18 change.
4006         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
4007         is generic, search for method in its generic definition.
4008         * class.c (mono_class_setup_vtable_general): Print generic
4009         arguments of generic types in debugging printf.
4010
4011 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
4012
4013         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
4014
4015         * threads.c (mono_threads_request_thread_dump): New helper function.
4016
4017 2006-01-25  Raja R Harinath  <rharinath@novell.com>
4018
4019         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
4020
4021 2006-01-25  Ankit Jain  <jankit@novell.com>
4022
4023         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
4024         move definition to ..
4025         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
4026         
4027 2006-01-25  Ankit Jain  <jankit@novell.com>
4028             Raja R Harinath  <rharinath@novell.com>
4029
4030         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
4031         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
4032         as necessary.
4033
4034 2006-01-25  Martin Baulig  <martin@ximian.com>
4035
4036         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
4037         `MonoDebuggerThread' into debug-debugger.c.
4038
4039 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
4040
4041         * profiler.c: fix printing of data.
4042
4043 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
4044
4045         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
4046           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
4047
4048 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4049
4050         * object.c: fix deadlock related to string interning.
4051
4052 2006-01-23  Martin Baulig  <martin@ximian.com>
4053
4054         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4055
4056         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
4057
4058 2006-01-23  Martin Baulig  <martin@ximian.com>
4059
4060         * mono-debug.h: Moved the prototypes of some functions which are
4061         used by the JIT here from mono-debug-debugger.h.
4062
4063 2006-01-21  Martin Baulig  <martin@ximian.com>
4064
4065         * Makefile.am: Don't install mono-debug-debugger.h.
4066
4067 2006-01-21  Martin Baulig  <martin@ximian.com>
4068
4069         * mono-debug-debugger.h: Enforce the private status of this header
4070         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
4071         Moved some stuff from mono-debugger-jit-wrapper.h here.
4072
4073 2006-01-20  Raja R Harinath  <rharinath@novell.com>
4074
4075         * class.c (mono_class_from_typeref): Add a sanity test to help
4076         catch lack of assembly load/search hooks.
4077
4078 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
4079
4080         * marshal.c (emit_struct_conv): Relax the fields with same offset
4081         check even more. Fixes #77230.
4082
4083 2006-01-18  Martin Baulig  <martin@ximian.com>
4084
4085         * loader.c (find_method_in_class): Added `gboolean is_inflated'
4086         argument; if false, we compare the uninstantiated signatures.
4087         (method_from_memberref): Compare the uninstantiated signatures;
4088         fixes #76417.
4089
4090 2006-01-18  Robert Jordan  <robertj@gmx.net>
4091
4092         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
4093         Clear the weak link. Fixes bug #77170.
4094
4095         * gc.c (mono_gchandle_free):
4096         Reflect *-gc.c changes (tiny optimization).
4097
4098 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
4099
4100         * metadata.c (mono_metadata_signature_dup): Applied patch from
4101         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
4102         Fixes #77288.
4103
4104 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
4105
4106         * marshal.c (emit_struct_conv): Allow fields with the same offset when
4107         marshalling from native to managed code. Fixes #77230.
4108
4109 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4110
4111         * threadpool.c: fix problem (Mac only) when more than one asynchronous
4112         connect. Fixes bug #77020.
4113
4114 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4115
4116         * class.c: fixed id assignement for nested interfaces (bug #77275).
4117         Added also better info for --print-vtable debugging.
4118
4119 2006-01-12  Martin Baulig  <martin@ximian.com>
4120
4121         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
4122         interfaces on-the-fly; fixes #76625.
4123
4124         * class-internals.h
4125         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
4126         don't need that anymore.
4127
4128 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4129
4130         * socket-io.c
4131         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4132         To avoid initing the nested_classes when not needed I turned the
4133         PeerCredData as a toplevel internal class, as it has to be shared
4134         anyways. 
4135
4136         Fixes the CASA issue.
4137
4138 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
4139
4140         * domain.c: Accessors for MonoJitInfo
4141
4142         * profiler-private.h: Add jitinfo to the end jit hook
4143
4144         * profiler.[ch]: Define new hooks, called after jitting which give
4145         the MonoJitInfo that was compiled
4146
4147 2006-01-10  Martin Baulig  <martin@ximian.com>
4148
4149         * class.c (mono_class_setup_events): Add support for generic
4150         classes; fixes #76440.
4151
4152 2006-01-06  Raja R Harinath  <rharinath@novell.com>
4153
4154         Fix #77160.
4155         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
4156         on passed-in method.
4157
4158 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4159
4160         * object.c (mono_runtime_invoke_array): Add Nullable support.
4161
4162         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
4163
4164 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
4165
4166         * file-io.c: Don't consider sockets as directory and avoid an endless
4167         loop. Fix bug #76966.
4168
4169 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4170
4171         * object.c (mono_nullable_init): New helper function.
4172         (mono_nullable_box): Ditto.
4173
4174         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
4175
4176         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
4177
4178         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
4179         
4180 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
4181
4182         * class.c (mono_class_is_assignable_from): Make T assignable to 
4183         Nullable<T>.
4184
4185 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
4186
4187         * appdomain.c: Bump corlib version to 46.
4188         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
4189         serialization purpose) and changed ves_icall_System_Reflection_
4190         Assembly_get_code_base signature to accept a boolean (to escape, or 
4191         not, the assembly code base).
4192
4193 2005-12-23  Dick Porter  <dick@ximian.com>
4194
4195         * icall.c: 
4196         * threads-types.h: 
4197         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
4198         CreateEvent icall now returns "created" boolean parameter.
4199
4200 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
4201
4202         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
4203         #76967.
4204
4205         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
4206         when attr_klass is an interface. Fixes #77045.
4207
4208 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
4209
4210         * marshal.c (emit_struct_conv): Fix previous patch.
4211         
4212         * marshal.c (emit_struct_conv): Add a check for fields with the same
4213         offset.
4214
4215 2005-12-20  Raja R Harinath  <rharinath@novell.com>
4216
4217         Fix regression in Mono.C5.
4218         * class.c (mono_class_create_generic): If 'klass' is an interface
4219         set up the interface offsets.
4220         (mono_class_is_assignable_from): Don't throw away generic arguments.
4221
4222 2005-12-19  Raja R Harinath  <rharinath@novell.com>
4223
4224         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
4225         type parameters.
4226
4227 2005-12-15  Raja R Harinath  <rharinath@novell.com>
4228
4229         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
4230         dead store.
4231         (do_mono_metadata_parse_generic_class): Don't pass the current
4232         generic context when parsing the type being instantiated: it
4233         cannot use it, anyway.
4234
4235         * loader.c (method_from_memberref): Don't inflate a signature if
4236         it doesn't contain any type parameters.
4237
4238 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
4239
4240         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
4241
4242 2005-12-14  Martin Baulig  <martin@ximian.com>
4243
4244         * class.c
4245         (mono_type_get_name_recurse): Don't return null for type
4246         parameters and open generic classes.
4247         (mono_class_setup_methods): Don't exclude generic instances.
4248         (mono_get_unique_iid): Use different IDs for different
4249         instantiations of the same generic type.
4250         (mono_class_setup_vtable): Only use setup_generic_vtable() for
4251         open generic instances; create a normal vtable for closed generic
4252         instances.
4253         (mono_class_setup_vtable_general): We're now also called for
4254         closed generic instances.
4255
4256         * reflection.c
4257         (mono_reflection_bind_generic_parameters): Correctly use
4258         mono_metadata_lookup_generic_inst() everywhere.
4259
4260 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
4261
4262         * object.c (mono_class_create_runtime_vtable): Call 
4263         mono_class_setup_vtable ().
4264
4265         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
4266         function.
4267         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
4268         #76959.
4269
4270         * loader.c (mono_loader_set_error_type_load): Print the type load
4271         warnings to the console so they are more visible to the user.
4272         (mono_loader_set_error_method_load): Ditto.
4273
4274         * reflection.c (ensure_runtime_vtable): Revert the last change as it
4275         is still broken.
4276         
4277         * reflection.c (ensure_runtime_vtable): Fix build.
4278
4279         * reflection.c (ensure_runtime_vtable): Disable an optimization which
4280         doesn't work in all cases.
4281
4282 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
4283
4284         * object.c (mono_array_new_full): Treat a single dimensional array
4285         with 0 lower bounds as an szarray. Fixes #76973.
4286
4287         * reflection.c (custom_attr_visible): Really fix this.
4288
4289 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
4290
4291         * reflection.c (custom_attr_visible): Allow nested public attributes
4292         as well.
4293
4294         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
4295         interface check.
4296
4297 2005-12-12  Raja R Harinath  <harinath@gmail.com>
4298
4299         * class.c (set_generic_param_owner): Delete.
4300         (mono_class_create_from_typedef): Don't set ->owner field of
4301         generic parameters to "param containers" of enclosing classes.
4302         * reflection.c (mono_reflection_initialize_generic_parameter):
4303         Likewise.
4304
4305 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
4306
4307         * reflection.c (custom_attr_visible): Fix build.
4308
4309 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
4310
4311         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
4312         private attributes.
4313         
4314         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
4315         handling of null parameter defaults.
4316
4317 2005-12-09  Raja R Harinath  <rharinath@novell.com>
4318
4319         * class.c (mono_class_from_generic_parameter): Don't set
4320         klass->generic_container.
4321         (my_mono_class_from_generic_parameter): Likewise.
4322
4323 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
4324
4325         * reflection.c (load_public_key): Fix a warning.
4326         (method_encode_code): Fix unaligned accesses.
4327
4328 2005-12-07  Martin Baulig  <martin@ximian.com>
4329
4330         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
4331
4332         * reflection.c
4333         (write_generic_param_entry): Encode our custom attrs.
4334
4335         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
4336
4337 2005-12-07  Martin Baulig  <martin@ximian.com>
4338
4339         * reflection.c (encode_new_constraint): Removed; we don't use the
4340         `NewConstraintAttribute' anymore.
4341
4342 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
4343
4344         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
4345         not fire a TypeResolve event when Assembly.GetType () is called.
4346
4347 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
4348
4349         Beginning of support for nullable types in the runtime. Parts of
4350         this patch are from Martin.
4351
4352         * appdomain.c (MONO_CORLIB_VERSION): Bump
4353
4354         * domain.c (mono_init_internal): get the nullable type
4355
4356         * class.c (mono_class_is_nullable): New method
4357         (mono_class_get_nullable_param): New mehod
4358         (mono_class_create_generic): In types T? set cast_class to T
4359
4360         * class-internals.h (MonoDefaults): new nullable default class
4361         (mono_class_get_nullable_param, mono_class_get_nullable_param):
4362         new methods.
4363
4364 2005-12-05  Raja R Harinath  <rharinath@novell.com>
4365
4366         * metadata.c (select_container): New.  Refactor code to select the
4367         appropriate GenericContainer given the type of generic parameter
4368         we are looking for.
4369         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
4370         not a MonoGenericContext.  Use select_container.  Update parameters.
4371         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
4372         and MONO_TYPE_MVAR.
4373         (unwrap_arrays): Remove duplicate tests.
4374         (find_generic_param): Rename from 'has_same_context'.  Now walks a
4375         generic instantiated class to find any arguments that are generic
4376         parameters.
4377         (mono_type_create_from_typespec_full): Use find_generic_param to
4378         avoid evicting some generic instantiations from the typespec
4379         cache.
4380
4381 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
4382
4383         * reflection.c: fixed writing of doubles on ARM FPA.
4384
4385 2005-12-02  Robert Jordan  <robertj@gmx.net>
4386
4387         * icall.c: Fixed EventInfo.ReflectedType (#76829).
4388
4389 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4390
4391         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
4392         least on SUSE 10 they are not the same (on debian, they are just the
4393         same thing).
4394
4395 2005-12-01  Raja R Harinath  <rharinath@novell.com>
4396
4397         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
4398         DeclaringType for VARs and MVARs.
4399         * class.c (set_generic_param_owner): Fix initialization of owner
4400         fields.
4401
4402 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
4403
4404         * icall.c: fixed Enum.ToObject() to correctly convert the values.
4405
4406 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4407
4408         * threadpool.c: workaround for a bug that shows up on the Mac:
4409         select()+connect() on a blocking socket is not like it should
4410         be, so we proceed to connect() in that case, wasting the I/O
4411         threadpool thread until connect succeedes. Fixes bug #75436.
4412
4413 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4414
4415         * threadpool.c: fix typo when setting file descriptor states.
4416
4417 2005-11-28  Raja R Harinath  <rharinath@novell.com>
4418
4419         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
4420         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4421         create a temporary signature container.
4422         (mono_metadata_parse_generic_param): Update to changes.
4423         (mono_type_create_from_typespec_full): Update to changes.
4424         * loader.c (method_from_memberref): Don't use a
4425         MonoGenericContainer while parsing a memberref signature.
4426         (method_from_methodspec): Remove dead-store of the 'container'
4427         variable.  It's overwritten before use.
4428
4429         * metadata.c (mono_type_create_from_typespec_full): Make debugging
4430         checks tighter.
4431         (mono_metadata_parse_generic_param): Likewise.
4432         * loader.c (find_method_in_class): Does not need a
4433         MonoGenericContainer.  Use 'mono_method_signature' rather than
4434         'mono_method_signature_full'.
4435         (find_method, mono_get_method_constrained, method_from_memberref):
4436         Update to changes.
4437
4438         * metadata.c (mono_type_create_from_typespec_full): Ensure that
4439         owner-less generic-parameters are never evicted from the typespec
4440         cache.
4441
4442         * loader.c (method_from_memberref): Don't use the current context
4443         when parsing signatures.
4444         (method_from_methodspec, mono_get_method_from_token): Update to changes.
4445
4446         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
4447         side-effects in g_assert.
4448         * loader.c (mono_get_method_from_token): Resolve klass earlier so
4449         that we don't potentially lose information.
4450
4451 2005-11-26  Dick Porter  <dick@ximian.com>
4452
4453         * icall.c:
4454         * threads.c: icalls to implement basic (ie, not named)
4455         System.Threading.Semaphore.
4456
4457 2005-11-24  Dick Porter  <dick@ximian.com>
4458
4459         * process.c
4460         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4461         Use GetProcessId() if it's available.
4462
4463 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
4464
4465         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
4466
4467 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4468             Ankit Jain  <jankit@novell.com>
4469
4470         * loader.c (mono_get_method_from_token): Initialize 'method' field
4471         of all generic parameters before parsing the signature.  Remove
4472         code that "fixed"-up MVAR references.
4473
4474 2005-11-23  Ankit Jain  <jankit@novell.com>
4475
4476         * metadata.c (mono_metadata_has_generic_params):
4477         (mono_metadata_load_generic_param_constraints):
4478         (mono_metadata_load_generic_params): Move duplicate code ...
4479         (mono_metadata_get_generic_param_row): ... here. Returns the
4480         first row-id in GenericParam table for a given owner (token).
4481         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4482         prototype.
4483
4484 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4485             Ankit Jain  <jankit@novell.com>
4486
4487         * metadata.c (mono_metadata_class_equal): Pass signature_only when
4488         comparing VARs too.
4489         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
4490         type->data.generic_param only if the type is an MVAR.
4491         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4492         leak owner-less VARs and MVARs into managed space.
4493
4494 2005-11-21  Martin Baulig  <martin@ximian.com>
4495
4496         * class-internals.h
4497         (MonoMethod): Moved the `generic_container' here from
4498         `MonoMethodNormal' since we now also need it for
4499         `MonoMethodPInvoke';
4500         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4501         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4502         an union containing both `MonoMethodNormal' and
4503         `MonoMethodPInvoke'.
4504
4505         * loader.c
4506         (mono_get_method_from_token): Allow implementing generic methods
4507         as interncalls.
4508
4509         * threads.c
4510         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4511         icall.
4512
4513 2005-11-17  Dick Porter  <dick@ximian.com>
4514
4515         * icall.c: 
4516         * process.h: 
4517         * process.c: Split the Process Start_internal icall into
4518         ShellExecuteEx_internal and CreateProcess_internal, which are
4519         called depending on whether UseShellExecute is true.  Fixes bug
4520         76670.
4521
4522         * appdomain.c (MONO_CORLIB_VERSION): Incremented
4523
4524 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
4525
4526         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4527         'msize' parameters, use the information in 'mspec' instead.
4528         (emit_object_to_ptr_conv): Ditto.
4529
4530         * marshal.c (emit_struct_conv): Handle explicit layout structs with
4531         fields out of order. Fixes #76733.
4532
4533 2005-11-17  Ankit Jain  <jankit@novell.com>
4534
4535         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4536
4537 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
4538
4539         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4540           bug #76575.
4541
4542 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4543
4544         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4545         for types with non-auto layout. Fixes #76717.
4546
4547 2005-11-16  Ankit Jain  <jankit@novell.com>
4548
4549         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4550         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4551         if generic_context is null.
4552           (mono_metadata_generic_param_equal): param->owner can be null.
4553           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4554         null.
4555
4556 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4557
4558         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4559         the correct value.
4560
4561 2005-11-15  Martin Baulig  <martin@ximian.com>
4562
4563         * object.c (set_value): Use mono_class_from_mono_type() instead of
4564         the hack for generic instances; fixes #76136.
4565
4566 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4567
4568         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4569         fields.
4570
4571         * image.c (load_metadata_ptrs): Initialize the new fields.
4572
4573         * reflection.c (create_dynamic_mono_image): Ditto.
4574
4575         * reflection.c (build_compressed_metadata): Use the new fields.
4576
4577         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4578         icall.
4579
4580         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4581         icall.
4582         
4583 2005-11-15  Ankit Jain  <jankit@novell.com>
4584             Raja R Harinath  <harinath@gmail.com>
4585
4586         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4587         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4588         new per-generic_container cache if the cached MonoType's context matches
4589         the current context.
4590           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4591         to the expected context.
4592           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4593
4594 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4595
4596         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4597         we changed the signature of an icall.
4598         * icall.c: Modify to mono_double_ParseImpl return true/false 
4599         depending on the success, instead of throwing the exception. This will
4600         help us in Double.TryParse methods.
4601         
4602 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4603
4604         * marshal.c (emit_marshal_object): Throw an exception when
4605         marshalling 'object' instead of crashing. Fixes #76696.
4606
4607 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4608
4609         * class-internals.h: Add prototype for mono_type_get_full_name ().
4610
4611 2005-11-11  Dick Porter  <dick@ximian.com>
4612
4613         * threads.c (mono_thread_manage): Make sure the main thread has
4614         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4615
4616 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4617
4618         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4619         console about the missing type.
4620         (mono_loader_set_error_method_load): Ditto.
4621
4622 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4623
4624         * mono-config.c (mono_get_config_dir): Set the system defaults if
4625         none is specified.
4626
4627         * assembly.c (mono_set_dirs): New API entry point to set the
4628         assembly and the config directory in one call
4629
4630 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4631
4632         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4633         the ftnptr was created from a delegate in a domain other than the
4634         current domain. Fixes #75377.
4635
4636         * exception.h exception.c: Add mono_get_exception_not_supported ().
4637
4638 2005-11-08  Martin Baulig  <martin@ximian.com>
4639
4640         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4641
4642 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4643
4644         * security-manager.h: Added definitions to deal with strongname key 
4645         pairs bigger (and smaller) than 1024 bits.
4646         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4647         adjust wrt the public key length being used.
4648
4649 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4650
4651         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4652           Windows build (r51396-51397).
4653
4654 2005-11-03  Martin Baulig  <martin@ximian.com>
4655
4656         * class.c (mono_class_setup_vtable_general): Also add generic
4657         methods to the vtable; fixes #76581.
4658
4659 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4660
4661         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4662         sure that we lookup GetString method from the System.Text.Encoding
4663         class, not the derived class or we get an empty method.
4664
4665         Fixed class #76612.
4666
4667 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4668
4669         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4670         if it has been previously set (embedders). 
4671
4672         Make mono_set_rootdir available also on Unix.
4673
4674 005-10-24  Robert Jordan  <robertj@gmx.net>
4675
4676         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4677
4678 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4679
4680         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4681         only calls which are made to native code use this flag.
4682
4683         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4684
4685 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4686
4687         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4688         Add support for FieldBuilders.
4689
4690 2005-10-29  Martin Baulig  <martin@ximian.com>
4691
4692         * mono-debug.c
4693         (mono_debug_using_mono_debugger): New public method; returns
4694         whether we're running inside the debugger.
4695
4696 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4697
4698         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4699         for Method/Constructor/FieldBuilders.
4700
4701 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4702
4703         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4704         and fields as well.
4705
4706 2005-10-26  Martin Baulig  <martin@ximian.com>
4707
4708         * mono-debug-debugger.c
4709         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4710
4711 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4712
4713         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4714         integer to isspace.
4715
4716 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4717
4718         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4719         when passing valuetypes byref. Fixes #76502.
4720
4721 2005-10-19  Jackson Harper  <jackson@ximian.com>
4722
4723         * profiler.c: Don't put a . in front of types that are not in a
4724         namespace.
4725
4726 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4727
4728         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4729
4730 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4731
4732         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4733         #76436.
4734         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4735
4736 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4737
4738         * assembly.c metadata-internals.h icall.c: Define an additional
4739         parameter for mono_assembly_name_parse_full, so we can avoid creating
4740         S.R.AssemblyName.Version when no version info wasn't passed.
4741         
4742 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4743
4744         * class.c (mono_type_get_full_name): Reimplement method that was
4745         removed. 
4746
4747         * image.c: Some docs
4748
4749 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4750
4751         * profiler.c (output_newobj_profile): Fix printing of Total memory
4752         on x86.
4753
4754 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4755
4756         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4757
4758 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4759
4760         * threads.c: remove debug output.
4761
4762 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4763
4764         * threads.c (mono_thread_manage): Fix crashes if more than 64
4765         threads need to be aborted. Hopefully fixes #75899.
4766
4767         * assembly.c (mono_stringify_assembly_name): New helper function.
4768
4769         * class.c: Use mono_stringify_assembly_name instead of the similar
4770         static function.
4771
4772         * assembly.h assembly.c: Add support for calling a postload search 
4773         hook if an assembly cannot be loaded.
4774
4775         * appdomain.c: Register new search hooks which call the AssemblyResolve
4776         events in AppDomain. Fixes #75231
4777
4778 2005-10-07  Martin Baulig  <martin@ximian.com>
4779
4780         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4781         methods without debug info.
4782
4783 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4784
4785         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4786         wrappers.
4787
4788 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4789
4790         * file-io.c: now that we return symlinks, use lstat and, when the file
4791         is a symbolic link, stat, to get the file attributes. Also avoid the
4792         conversion to/from utf16/external.
4793
4794 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4795
4796         * class.c (mono_class_layout_fields): Compute klass->has_references
4797         correctly if an embedded valuetype is not yet initialized. Fixes
4798         #76331.
4799
4800 2005-10-04  Martin Baulig  <martin@ximian.com>
4801
4802         * metadata.c
4803         (mono_metadata_load_generic_param_constraints): New public
4804         function; splitted the constraints loading out from
4805         mono_metadata_load_generic_params().
4806
4807         * class.c (mono_class_create_from_typedef): Call
4808         mono_metadata_load_generic_param_constraints() after setting up
4809         the type and creating our parent; fixes #75329.
4810
4811 2005-10-04  Martin Baulig  <martin@ximian.com>
4812
4813         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4814         non-dynamic parent classes.
4815
4816 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4817
4818         * file-io.c : win32 build fix (ETXTBSY seems not found).
4819
4820 2005-10-04  Martin Baulig  <martin@ximian.com>
4821
4822         * reflection.c
4823         (mono_image_get_methodspec_token): Make the cache actually work;
4824         fixes #75974.
4825
4826 2005-10-04  Martin Baulig  <martin@ximian.com>
4827
4828         * class.c (mono_class_name_from_token): Removed the unneccessary
4829         `MonoGenericContext *' argument.
4830
4831 2005-10-04  Martin Baulig  <martin@ximian.com>
4832
4833         * loader.c
4834         (method_from_methodspec): Make the caching work again; fixes the
4835         performance regression from #76262.
4836
4837 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4838
4839         * file-io.c:
4840         * file-io.h:
4841         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4842         GetFileSystemEntries that performs the same work but without going
4843         into io-layer, locking, etc.
4844
4845 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4846
4847         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4848         ThreadState_Stopped as well. Fixes #76047.
4849
4850 2005-09-29  Martin Baulig  <martin@ximian.com>
4851
4852         * class.c
4853         (inflate_generic_context): If the new context has a `gmethod', set
4854         its `container' that that gmethod's `container'.
4855
4856         * metadata.c
4857         (mono_metadata_parse_generic_param): Simplify things;
4858         `generic_container = generic_context->container;' is just fine.
4859
4860         * loader.c (method_from_methodspec): Code cleanups.
4861
4862 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4863
4864         * decimal.c: fix warning (and let gcc generate correct
4865         code on ARM with optimizations).
4866
4867 2005-09-28  Martin Baulig  <martin@ximian.com>
4868
4869         * loader.c
4870         (method_from_memberref): Added `MonoGenericContext *class_context'
4871         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4872         (method_from_methodspec): If we're a memberref, use the enclosing
4873         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4874
4875 2005-09-28  Martin Baulig  <martin@ximian.com>
4876
4877         * object.c (mono_runtime_invoke_array): Added support for
4878         MONO_TYPE_GENERICINST; fixes #75917.
4879
4880 2005-09-27  Martin Baulig  <martin@ximian.com>
4881
4882         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4883         `k->byval_arg.type' to determine the actual type.
4884
4885         * loader.c (method_from_methodspec): Removed some hacks.
4886
4887 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4888
4889         * class-internals.h (mono_field_is_deleted): Do the test for
4890         rtspecialname before we check the actual name of the field. This
4891         prevents us from dereferencing a pointer into the string table,
4892         saving us from accessing a few pages
4893
4894         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4895         macros. This will allow a deadlock debugger to easily be plugged
4896         in.
4897
4898 2005-09-27  Martin Baulig  <martin@ximian.com>
4899
4900         * loader.c (method_from_methodspec): Create a "signature"
4901         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4902
4903 2005-09-27  Martin Baulig  <martin@ximian.com>
4904
4905         * class.c
4906         (inflate_generic_class): Correctly set the new context's
4907         container.
4908
4909         * loader.c
4910         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4911         instead of a `MonoGenericContext *'.
4912         (mono_method_signature_full): Take a `MonoGenericContainer *'
4913         instead of a `MonoGenericContext *'.
4914
4915         * metadata.c
4916         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4917         instead of a `MonoGenericContext *'.
4918         (mono_metadata_parse_method_signature_full): Likewise.
4919
4920 2005-09-26  Martin Baulig  <martin@ximian.com>
4921
4922         * class.c
4923         (mono_class_from_generic_parameter): Set `klass->generic_container'
4924         (mono_class_from_generic_parameter): Likewise.
4925         (mono_bounded_array_class_get): We inherit the generic container
4926         from the element class.
4927
4928         * loader.c
4929         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4930         argument rather than computing it here.
4931         (method_from_memberref): Correctly set the generic context before
4932         parsing the signature.  Fixes #75681.
4933
4934 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4935
4936         * object.c (mono_class_has_special_static_fields): Fix warnings.
4937
4938 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4939
4940         * assembly.c: Add parse_public_key function, to
4941         par the public keys. Also added mono_assembly_name_parse_full,
4942         to define it the parsed key should be freed or not.
4943         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4944         to parse a long format assembly name.
4945         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4946         private, since calling it to preserve the key requires
4947         freeing it manually.
4948         
4949 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4950
4951         * locales.c : removed HAVE_ICU part.
4952
4953 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4954
4955         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4956         field_is_special_static if the klass has no special static fields.
4957
4958         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4959         (MonoCachedClassInfo): Likewise.
4960
4961         * object.c (mono_class_has_special_static_fields): New helper function.
4962
4963 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4964
4965         * class.c (mono_class_create_from_typedef): Don't call 
4966         interfaces_from_typedef_full for enums.
4967         (mono_class_create_from_typedef): Compute the base types of enums directly
4968         without calling mono_class_setup_fields ().
4969         (mono_class_find_enum_basetype): New helper function.
4970
4971         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4972         one place inside the string heap.
4973         
4974 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4975
4976         * class.c: locking fixes, code cleanups, some docs added.
4977         Allocate some data structures in the image mempool.
4978
4979 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4980
4981         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4982         the example code.
4983         
4984 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4985
4986         * class-internals.h, class.c, reflection.c: reduce memory taken by
4987         MonoClass.
4988
4989 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4990
4991         * metadata.c, metadata.h, loader.h: documentation updates, code and
4992         API cleanups.
4993
4994 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4995
4996         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4997         the example code.
4998
4999         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
5000         page faults caused by the runtime while reading metadata.
5001
5002 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5003
5004         * socket-io.c: the field names were changed 3 months ago and no one
5005         realized until bug #76077 got filed!
5006
5007 2005-09-20  Martin Baulig  <martin@ximian.com>
5008
5009         * icall.c (assembly_icalls): Removed some unused debugger icalls.
5010
5011 2005-09-20  Martin Baulig  <martin@ximian.com>
5012
5013         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
5014         write the rank into the class entry.
5015
5016 2005-09-20  Martin Baulig  <martin@ximian.com>
5017
5018         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
5019
5020 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
5021
5022         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5023
5024         * icall.c (custom_attrs_defined_internal): New icall.
5025
5026         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
5027         function.
5028         (mono_custom_attrs_construct_by_type): New helper function.
5029
5030 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
5031
5032         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
5033         terminate the resulting string. Fixes #76123.
5034
5035 2005-09-16  Martin Baulig  <martin@ximian.com>
5036
5037         * mono-debug.c
5038         (mono_debug_add_method): Ignore inflated methods for the moment.
5039
5040 2005-09-14  Martin Baulig  <martin@ximian.com>
5041
5042         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
5043
5044 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
5045
5046         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
5047         return a success/failure indication.
5048         (mono_metadata_interfaces_from_typedef_full): Ditto.
5049         (get_constraints): Ditto.
5050
5051 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
5052
5053         * marshal.c (emit_marshal_array): Fix handling of null arrays.
5054         
5055         * marshal.c (emit_marshal_array): Add support for returning string
5056         arrays from delegates. Fixes #76063.
5057
5058         * marshal.c: Use the emit_ldloc/stloc macros where possible.
5059
5060 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
5061
5062         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
5063         icall.
5064
5065 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
5066
5067         * reflection.c icall.c: Fix after mono_get_exception_type_load
5068         signature change.
5069
5070         * assembly.c (mono_assembly_get_assemblyref): New helper function.
5071         (mono_assembly_load_reference): Use the new helper.
5072
5073         * class-internals.h (MonoLoaderError): New structure containing 
5074         information about type loading errors.
5075
5076         * class-internals.h loader.c: Add APIs to store per-thread loader
5077         error information.
5078
5079         * loader.c class.c: Set the loader error if needed.
5080
5081         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
5082
5083 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
5084
5085         * decimal.c: fixed to handle the broken ARM fp format.
5086
5087 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
5088
5089         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
5090         broken.
5091
5092 2005-09-06  Martin Baulig  <martin@ximian.com>
5093
5094         * domain.c (supported_runtimes): Added v2.0.50727.
5095
5096 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
5097
5098         * culture-info.h: reduce the size of some structures.
5099
5100 2005-09-05  Martin Baulig  <martin@ximian.com>
5101
5102         Reflect latest API changes in the August CTP.
5103
5104         * icall.c
5105         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
5106         ("MonoType.HasGenericArguments"): Removed.
5107         ("MonoMethod.BindGenericParameters"): Renamed to
5108         "MakeGenericMethod".
5109         ("MethodBuilder.BindGenericParameters"): Renamed to
5110         "MakeGenericMethod".    
5111
5112 2005-09-05  Martin Baulig  <martin@ximian.com>
5113
5114         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
5115
5116 2005-09-05  Martin Baulig  <martin@ximian.com>
5117
5118         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5119
5120         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
5121         generic_container is non-NULL.
5122
5123 2005-09-05  Martin Baulig  <martin@ximian.com>
5124
5125         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5126
5127         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
5128
5129 2005-08-29  Michal Moskal  <malekith@nemerle.org>
5130
5131         * reflection.c (encode_locals,
5132         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
5133         for large generic types.
5134
5135 2005-09-05  Martin Baulig  <martin@ximian.com>
5136
5137         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5138
5139         * class.c (mono_dup_array_type): New public method.
5140         (mono_metadata_signature_deep_dup): New public method.
5141         (dup_type): Correctly duplicate array and function types.
5142
5143 2005-09-05  Martin Baulig  <martin@ximian.com>
5144
5145         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5146
5147         * reflection.c (get_default_param_value_blobs): Handle generic types
5148         and generic methods.
5149
5150 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
5151
5152         * class.c: Fixed error reporting (method/class were inversed) for 
5153         inheritance demands.
5154         * security-manager.c|h: Added the AppDomain when calling the managed
5155         System.Security.SecurityManager.InheritanceDemand method.
5156
5157 2005-09-01  Raja R Harinath  <rharinath@novell.com>
5158
5159         * reflection.c (encode_marshal_blob): 'marshaltype' and
5160         'marshaltyperef' are alternate sources for the custom marshaler
5161         name.
5162
5163 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
5164
5165         * class.c: fix creation of array classes with rank == 1
5166         (patch by Ankit Jain <jankit@novell.com>).
5167
5168 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
5169
5170         * object.c: fix check for creating the bound data for arrays vs
5171         szarrays.
5172
5173 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5174
5175         * object.c: configuration file name is now based on the executable name,
5176         not the image name. Fixes bug #75931.
5177
5178 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
5179
5180         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
5181         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
5182
5183 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
5184
5185         * rand.c: Use wincrypt.h instead of WinCrypt.h.
5186
5187 2005-08-24  Ankit Jain  <jankit@novell.com>
5188             Raja R Harinath  <rharinath@novell.com>
5189
5190         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
5191           called by it recursively.
5192           (mono_class_init): Remove special case in pending_init handling, since it's
5193           superseded by the fix to mono_class_from_typeref.
5194
5195 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
5196
5197         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
5198         BROKEN_THREAD_START stuff.
5199
5200 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
5201
5202         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
5203         trampoline.
5204
5205         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
5206         
5207         * object.c (mono_delegate_ctor): Replace the original function address with
5208         a delegate trampoline.
5209
5210 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
5211
5212         * icall.c: add boolean argument to base64_to_byte_array and 
5213         InternalFromBase64String to control whether a whitespace-only string
5214         is allowed (or should casue a FormatException to be thrown). We need
5215         this as the behavior has changed between MS.NET 1.x and 2.0, and we
5216         to match the MS behaviour in both profiles.
5217         * appdomain.c: Bump corlib version.
5218
5219 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5220
5221         This patch implements a big portion of publisher policy
5222         support, used to bind assembly versions and redirect
5223         one assembly from version A to version B.
5224
5225         * assembly.c:
5226         New GSList loaded_assembly_bindings, for storing the cached
5227         assembly bindings.
5228         (assembly_binding_maps_name): New static function for checking if a 
5229         assembly binding information maps an assembly name.
5230         (mono_assembly_binding_info_free): New function for freeing
5231         assembly binding information resources.
5232         (get_publisher_policy_info): New static function for retrieving 
5233         assembly binding information from a MonoImage.
5234         (compare_versions): New static function for comparing an assembly
5235         binding information data and the version of an assembly name.
5236         (check_policy_versions): New static function for checking if an
5237         assembly binding info mapping an assembly name is valid for it.
5238         (mono_assembly_load_publisher_policy): New static function for
5239         loading the 'policy.major.minor.MyAssembly' image for an assembly
5240         with an assembly name 'aname'.
5241         (mono_assembly_bind_version): New static function for updating
5242         assembly redirection.
5243         (mono_assembly_apply_binding): New static function for applying
5244         assembly binding.
5245         (search_binding_loaded): New static function for searching 
5246         loaded assembly binding infos in the cache domain.
5247         (mono_assembly_load_full): Don't apply assembly binding for
5248         reflection only assemblies.
5249
5250         * metadata-internals.h: Add MonoAssemblyBindingInfo,
5251         which contains information about assembly binding. Also
5252         declare signature for mono_config_parse_publisher_policy ()
5253         function, used to retrieve pub policy info.
5254         
5255         * mono-config.c:
5256         (publisher_policy_start): New static function used to parse publisher 
5257         policy config files.
5258         (publisher_policy_parser): New static MonoParseHandler containing 
5259         the functions used when parsing config files.
5260         (mono_config_parse_publisher_policy): New function for parsing
5261         publisher policy files.
5262         
5263 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
5264
5265         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
5266
5267         * marshal.c (mono_delegate_free_ftnptr): Ditto.
5268
5269         * object.c (mono_get_addr_from_ftnptr): New helper function.
5270
5271         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
5272
5273         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5274
5275 2005-08-19  Dick Porter  <dick@ximian.com>
5276
5277         * threads.c, threads.h, appdomain.c, appdomain.h,
5278         profiler-private.h, monitor.c, object.c, object-internals.h,
5279         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
5280         store the thread ID, so it can hold a 64 bit value if needed.
5281
5282 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
5283
5284         * reflection.c (mono_reflection_create_dynamic_method): Store the
5285         handle class into the method references as well so ldtoken works in
5286         dynamic methods.
5287
5288         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
5289         types.
5290
5291 2005-08-19  Ankit Jain <jankit@novell.com>
5292
5293         Fix #75847.
5294         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
5295           here rather than using the method signature of a arbitrary function
5296           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
5297           two arguments.
5298           Hack done with Harinath.
5299
5300 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5301
5302         * threadpool.c: disable printing stack traces when we get a exception
5303         in a threadpool thread. I need to do more testing to figure out which
5304         cases actually print this. Fixes bug #75828.
5305
5306 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5307
5308         * icall.c: there might be ignored whitespace after the last '='. This
5309         fixes length computation and bug #75840.
5310
5311 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
5312
5313         * assembly.c (mono_assembly_load_full): Consider .exe extension as
5314         well. Fixes #75809.
5315
5316         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
5317         #75784.
5318         
5319         * reflection.c (create_custom_attr_data): Ditto.
5320
5321 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
5322
5323         * locales.c, culture-info.h : removed RegionLCIDMap.
5324         * culture-info-tables.h : regenerated.
5325
5326 2005-08-16  Martin Baulig  <martin@ximian.com>
5327
5328         * class.c (mono_type_get_name_recurse): Small fix.
5329
5330 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5331
5332         * locales.c : indentation fixie.
5333
5334 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
5335
5336         * object-internals.h,
5337           locales.h,
5338           locales.c,
5339           culture-info.h,
5340           icall.c : added RegionInfo table support.
5341         * culture-info-table.h : regenerated for region support.
5342
5343 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
5344
5345         * reflection.c (resolve_object): handle all kinds of MonoMethod
5346         including generic ones
5347
5348 2005-08-12  Ankit Jain <jankit@novell.com>
5349
5350         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
5351           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
5352
5353 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
5354
5355         * process.c: Don't close a thread handle when it's NULL. This is a
5356         workaround for bug #75733.
5357
5358 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
5359
5360         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
5361
5362 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
5363
5364         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
5365
5366 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5367
5368         * threadpool.c: if a work item in the thread pool has a callback that
5369         catches a exception, don't propagate it after invoking the callback.
5370         Fixes bug #75336.
5371
5372 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
5373
5374         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
5375
5376         * class-internals.h (MonoCachedClassInfo): Add some new fields.
5377
5378         * class.c (mono_class_init): Load field info lazily in the AOT case.    
5379
5380         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
5381
5382 2005-08-03  Ankit Jain  <jankit@novell.com>
5383
5384         Fix #75683.
5385         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
5386           PInvoke calling convention is 0.
5387
5388 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
5389
5390         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
5391         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
5392
5393 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
5394
5395         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
5396         to handle threads not started by the GC (patch by Michael Meeks
5397         <michael.meeks@novell.com>).
5398
5399 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
5400
5401         * reflection.c: Make buffer used in emitting types larger for some
5402         big generic types (patch by Michal Moskal).
5403
5404 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
5405
5406         * mono-debug.c: Fix some (not all) alignment problems.
5407
5408 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5409
5410         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
5411         Invoke mono_image_load_from_data_full passing the refonly
5412         parameter.
5413
5414         * assembly.c
5415         (mono_assembly_open_from_bundle): Add the refonly argument, 
5416         in order to pass it to other methods it calls to.
5417         (do_mono_assembly_open): Add the refonly argument, in order 
5418         to pass it to other methods it calls to.
5419         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
5420         the refonly parameter to it.
5421
5422         * image.c: Add loaded_images_refonly_hash and
5423         loaded_images_refonly_guid_hash to cache the reflection
5424         only loaded images.
5425         (mono_images_init): Initialize the hash tables used for
5426         caching the reflection only images.
5427         (load_modules): Invoke mono_image_open_full passing the refonly
5428         parameter to load the modules the correct way.
5429         (build_guid_table): Add the refonly argument, to re-build the 
5430         correct hash table.
5431         (do_mono_image_open): Added the refonly argument, in order to
5432         define it for the loaded image.
5433         (mono_image_loaded_full): New function, which receives an
5434         additional parameter to look for the image in the refonly or
5435         non-refonly section.
5436         (mono_image_loaded): Updated, using mono_image_loaded_full.
5437         (mono_image_loaded_by_guid_full): The same case that happens
5438         with mono_image_loaded_full.
5439         (mono_image_loaded_by_guid): Likewise.
5440         (register_image): Use the ref_only variable inside MonoImage
5441         to decide in which hash table store the current image.
5442         (mono_image_open_from_data_full): Rename
5443         mono_image_open_from_data to mono_image_open_from_data_full,
5444         adding the refonly argument, to define the ref_only variable 
5445         inside MonoImage.
5446         (mono_image_open_from_data): Return 
5447         mono_image_open_from_data_full.
5448         (mono_image_open_full): Rename mono_image_open to
5449         mono_image_open_full, receiving the new refonly argument,
5450         to pass it to inner methods.
5451         (mono_pe_file_open): Update this function, to open
5452         a MonoImage as a non-refonly image.
5453         (mono_image_close): Use the refonly variable inside
5454         MonoImage to remove the image from the correct caches.
5455
5456         * image.h: Add the signatures of mono_image_open_full,
5457         mono_image_open_from_data_full, mono_image_loaded_full,
5458         mono_image_loaded_by_guid_full.
5459
5460         * metadata-internals.h: Add the ref_only field to 
5461         MonoImage.
5462         
5463 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5464
5465         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
5466         Fix the last behavior, which used to load the assemblies and
5467         extract MonoReflectionAssemblyName information, instead of
5468         extract it from the metadata tables. Needed for Reflection
5469         Only assemblies.
5470         
5471 2005-07-29  Martin Baulig  <martin@ximian.com>
5472
5473         * mono-debug-debugger.c
5474         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5475         not initialized.
5476
5477         * mono-debug.c
5478         (mono_debug_address_from_il_offset): Check whether we have
5479         debugging support before attempting to take the lock.
5480         (mono_debug_source_location_from_address): Likewise.
5481         (mono_debug_source_location_from_il_offset): Likewise.
5482         (mono_debug_il_offset_from_address): Likewise.
5483         (mono_debug_address_from_il_offset): Likewise.
5484
5485 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
5486
5487         * class.c (mono_class_from_name_case): Add support for dynamic images.
5488         Fixes #75650.
5489
5490         * object.c (mono_class_compute_gc_descriptor): Add a workaround
5491         for #75479.
5492
5493 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5494         
5495         * reflection.c (mono_method_get_object): Fix warning.
5496
5497 2005-07-28  Martin Baulig  <martin@ximian.com>
5498
5499         * mono-debug.c
5500         (mono_debug_add_wrapper): Also write the wrapper type.
5501
5502 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5503
5504         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5505         
5506         * class.c (mono_class_init): Avoid reading nested classes if the AOT
5507         data indicates the class has none.
5508
5509 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
5510
5511         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5512         loader lock with the debugger lock. Prevents deadlocks for beagle.
5513
5514         Beagle can now run on an smp box for a weekend without any
5515         issues. Woohoo!
5516
5517 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
5518
5519         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5520         in a module. Fixes #75629.
5521
5522 2005-07-26  Martin Baulig  <martin@ximian.com>
5523
5524         * mono-debug.c (mono_debug_add_wrapper): New static method.
5525         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5526         interncall or a wrapper.
5527
5528         * mono-debug.h (MonoDebugWrapperData): New public typedef.
5529         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5530         (MONO_DEBUGGER_VERSION): Bump to 51.
5531
5532         * mono-debug-debugger.c
5533         (mono_debugger_add_type): Removed this empty function.
5534         (mono_debugger_add_method): Likewise.
5535
5536 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
5537
5538         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
5539         before accessing method->slot.
5540
5541 2005-07-21  Jb Evain  <jbevain@gmail.com>
5542
5543         * reflection.c (method_encode_clauses/class): Handle filters clauses.
5544         Fixes #75010.
5545
5546 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
5547
5548         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5549         #75587.
5550
5551 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5552
5553         * image.h image.c: Add mono_image_get_guid () API function.
5554
5555 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5556
5557         There were issues when multiple threads tried to load
5558         assemblies. A deadlock was created between assemblies_mutex and
5559         mono_domain_assemblies_lock. This fixes the issue by making the
5560         assembly ref counting be lock free. See bug 75586.
5561         
5562         * image.c (mono_image_close): The add ref function here was using
5563         Interlocked operations while the unref was using a mutex and a
5564         --. I don't think this was ever a bug that would be exposed in a
5565         non-pendantic way (ie, by an embedder doing a ref on one thread
5566         and an unref on another), but for the sake of correctness, this is
5567         now Interlocked.
5568
5569         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5570         (mono_assembly_load_reference): Call mono_assembly_addref rather
5571         than touching the refcount ourselves.
5572         (mono_assembly_close): Use InterlockedDecrement to unref the
5573         assembly. Don't acquire the lock unless it is actually needed.
5574
5575 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5576
5577         * class.c (mono_class_layout_fields): Fix calculation of has_references
5578         for generic types.
5579
5580 2005-07-12  Martin Baulig  <martin@ximian.com>
5581
5582         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5583
5584         * metadata.c
5585         (mono_type_hash): Provide better hashing for generic instances.
5586         (mono_generic_inst_hash): Improve hashing.
5587         (mono_generic_class_hash): Likewise.
5588
5589         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5590         generic instances.
5591
5592 2005-07-12  Martin Baulig  <martin@ximian.com>
5593
5594         * reflection.c (mono_reflection_create_runtime_class): Remove the
5595         hack for generic type definitions and non-`Run' assemblies.
5596         (mono_reflection_bind_generic_parameters): Also use
5597         `klass->wastypebuilder' to check for TypeBuilders.
5598
5599 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5600
5601         * class.c (mono_class_layout_fields): Fix calculation of has_references
5602         for generic types.
5603
5604         * class.c (inflate_generic_class): Fix a leak.
5605         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5606         for generic types.
5607
5608 2005-07-11  Martin Baulig  <martin@ximian.com>
5609
5610         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5611         on error.
5612
5613 2005-07-11  Martin Baulig  <martin@ximian.com>
5614
5615         * loader.c (find_method): Also lookup in
5616         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5617
5618 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5619
5620         * appdomain.c (mono_domain_unload): Don't free the error message
5621         before passing it to mono_get_exception_...
5622
5623         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5624         
5625 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5626
5627         * threads.c: try to better guess an available RT signal (bug #75387).
5628
5629 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5630
5631         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5632         and CACHE_OBJECT.
5633
5634 2005-07-07  Martin Baulig  <martin@ximian.com>
5635
5636         * class.c (mono_type_get_name_full): Return NULL for
5637         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5638         fixes #75408.
5639
5640 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5641
5642         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5643         exit the appdomain as well being aborted.
5644
5645         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5646         change back to the root domain after calling managed code. This enables
5647         appdomains using threadpools to be unloaded.
5648
5649 2005-07-07  Martin Baulig  <martin@ximian.com>
5650
5651         * class-internals.h
5652         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5653         into `MonoDynamicGenericClass' since we only need it for dynamic
5654         types.
5655
5656         * reflection.c (mono_class_bind_generic_parameters): We don't need
5657         to compute the `parent' here.
5658
5659 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5660
5661         * culture-info-table.h : regenerated.
5662
5663 2005-07-06  Martin Baulig  <martin@ximian.com>
5664
5665         * icall.c
5666         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5667
5668         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5669
5670 2005-07-06  Martin Baulig  <martin@ximian.com>
5671
5672         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5673         we're doing a signature-only comparision; fixes #74945.
5674
5675 2005-07-06  Martin Baulig  <martin@ximian.com>
5676
5677         * class-internals.h (MonoGenericClass): Moved some things out into
5678         a new `MonoInflatedGenericClass' type.  
5679         (MonoInflatedGenericClass): New type; the `klass' of a
5680         `MonoGenericClass' is now computed lazyly in
5681         mono_get_inflated_generic_class().      
5682
5683         * class.c (mono_get_inflated_generic_class): New public function.
5684         (mono_class_inflate_generic_method): Removed the unused
5685         `MonoClass *' argument.
5686         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5687         all the methods.
5688         (mono_class_create_generic): Make this static and merge it with
5689         mono_class_create_generic_2(); we're now called automatically from
5690         mono_get_inflated_generic_class().
5691
5692         * loader.c (mono_method_signature): Call
5693         mono_get_inflated_method() here.
5694
5695 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5696
5697         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5698         type of fields with RVA.
5699
5700         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5701         for this pseudo class.
5702         (my_mono_class_from_generic_parameter): Likewise.
5703         (mono_class_init): Allow interfaces to have cctors.
5704
5705 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5706
5707         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5708         lazily for AOT methods.
5709
5710 2005-07-05  Martin Baulig  <martin@ximian.com>
5711
5712         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5713         returns FALSE for a successful match, not TRUE.
5714
5715 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5716
5717         * loader.c (mono_method_get_index): Optimize this a bit.
5718
5719 2005-07-04  Martin Baulig  <martin@ximian.com>
5720
5721         * class.c
5722         (class_compute_field_layout): Move the check for generic type
5723         definitions into mono_class_layout_fields().  Fixes #74684.
5724         (mono_class_from_generic_parameter): Correctly compute
5725         `klass->parent'; fixes #75457.
5726
5727         * reflection.c (register_assembly, register_module): Make sure
5728         `domain->rejobject_hash' is already created.
5729
5730 2005-07-02  Martin Baulig  <martin@ximian.com>
5731
5732         * class-internals.h
5733         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5734         `MonoDynamicGenericClass'.      
5735
5736 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5737
5738         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5739         returned by a field getter is null, since null is a valid value.
5740
5741 2005-07-01  Martin Baulig  <martin@ximian.com>
5742
5743         * reflection.c (mono_reflection_generic_class_initialize): Update
5744         the `dgclass->fields [i].parent' to the correct class.
5745         (mono_image_get_fieldref_token): Use the declaring type, not the
5746         reflected type.
5747
5748 2005-07-01  Martin Baulig  <martin@ximian.com>
5749
5750         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5751
5752 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5753
5754         * threads.c (thread_cleanup): assert that thread != NULL
5755         (wait_for_tids_or_state_change): We were using the wrong variable
5756         when accessing wait->threads. `i' was always out of the bounds of
5757         the array.
5758
5759 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5760
5761         * loader.c: map user32 and kernel32 to libMonoSupportW
5762
5763 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5764
5765         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5766
5767 2005-06-28  Martin Baulig  <martin@ximian.com>
5768
5769         * loader.c (method_from_methodspec): Fix #75334.
5770
5771 2005-06-28  Martin Baulig  <martin@ximian.com>
5772
5773         Fix #74953 - Arrays now implement the generic IList<T> interface
5774         on the 2.0 platform.
5775
5776         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5777
5778         * reflection.c (mono_class_bind_generic_parameters): New public
5779         function; similar to mono_reflection_bind_generic_parameters(),
5780         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5781
5782         * domain.c (mono_init_internal): Try to initialize.
5783         `mono_defaults.generic_array_class' here; this'll only succeed if
5784         we're using the 2.0 corlib.
5785
5786         * icall.c
5787         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5788         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5789         (mono_lookup_internal_call): Added support for nested classes.
5790
5791         * loader.c
5792         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5793         we're an interncall and have generic arguments.
5794
5795         * class.c
5796         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5797         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5798         instance of System.Array.InternalArray<T> for arrays, so they
5799         implement the generic IList<T> interface.
5800
5801 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5802
5803         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5804         (chastamar@yahoo.com). Fixes #75374.    
5805
5806 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5807
5808         * culture-info-table.h: regenerated.
5809
5810 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5811
5812         * icall.c: handle spaces correctly for base64 strings.
5813
5814 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5815
5816         * *.c: Kill some warnings.
5817
5818 2005-06-23  Duncan Mak  <duncan@novell.com>
5819
5820         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5821         that this builds on Solaris 10 (x86).
5822
5823 2005-06-23  Martin Baulig  <martin@ximian.com>
5824
5825         * class.c
5826         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5827         generic type definitions.
5828
5829 2005-06-23  Martin Baulig  <martin@ximian.com>
5830
5831         Fix #75331.
5832
5833         * metadata.c (mono_class_get_overrides): Renamed to
5834         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5835         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5836         pass it to mono_get_method_full().
5837
5838 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5839
5840         * reflection.c (mono_reflection_create_runtime_class): take the
5841         mono_domain_lock in this method. Prevents deadlocks
5842
5843 2005-06-22  Martin Baulig  <martin@ximian.com>
5844
5845         * loader.c (method_from_methodspec): Fix #75330.
5846
5847 2005-06-22  Martin Baulig  <martin@ximian.com>
5848
5849         * reflection.c (type_get_qualified_name): Use
5850         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5851         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5852         argument; use it if we don't have an assembly name.
5853
5854 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5855
5856         * object.c: In mono_message_init, set "copy out" flag for in
5857         parameters with the [Out] flag.
5858
5859 2005-06-21  Martin Baulig  <martin@ximian.com>
5860
5861         * class.c
5862         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5863         and MONO_TYPE_PTR.
5864
5865 2005-06-21  Martin Baulig  <martin@ximian.com>
5866
5867         * class.c (mono_class_init): Don't initialize `class->fields' for
5868         generic instances since they're initialized again in
5869         compute_field_layout(). 
5870         (compute_field_layout): Set the field's `generic_info' here; fix
5871         #75320. 
5872
5873 2005-06-21  Martin Baulig  <martin@ximian.com>
5874
5875         * class-internals.h
5876         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5877
5878         * metadata.c (mono_metadata_generic_method_equal): Also
5879         distinguish the `generic_class'; fixes #75334.
5880
5881 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5882
5883         * domain.c:
5884         * appdomain.c:
5885         * domain-internals.h:
5886         * reflection.c: 'domain_assemblies' field is now protected by its own
5887         lock. Don't call into managed code to run the AssemblyLoad event if we
5888         now there are no registered delegates for it.
5889
5890 2005-06-20  Martin Baulig  <martin@ximian.com>
5891
5892         * class.c (mono_class_is_assignable_from): Use a custom version of
5893         mono_class_has_parent() to make things work for generic instances;
5894         fix #75300.
5895
5896 2005-06-20  Martin Baulig  <martin@ximian.com>
5897
5898         * loader.c (method_from_methodspec): Apply a patch from
5899         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5900
5901 2005-06-20  Martin Baulig  <martin@ximian.com>
5902
5903         * class.c (mono_class_init): Reverted Zoltan's last change; it
5904         breaks generics.
5905
5906 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5907
5908         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5909
5910 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5911
5912         * socket-io.c: fix the index in the socket array for writable/error
5913         sockets. Fixes bug #75306.
5914
5915 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5916
5917         * class.c (mono_class_init): Allow interfaces to have static ctors.
5918
5919 2005-06-17  Martin Baulig  <martin@ximian.com>
5920
5921         * loader.c (method_from_methodspec): Use `context->container' when
5922         parsing the `gmethod->inst'.
5923
5924 2005-06-17  Martin Baulig  <martin@ximian.com>
5925
5926         * class.c (mono_type_get_name_recurse): Don't add the assembly
5927         name for type arguments.
5928
5929 2005-06-15  Martin Baulig  <martin@ximian.com>
5930
5931         * reflection.c (mono_image_get_inflated_method_token): Encode
5932         correct klass; fixes #75260.
5933
5934 2005-06-13 Michal Moskal <malekith@nemerle.org>
5935
5936         * icall.c: Make GetCorrespondingMethod/Constructor take
5937         MonoReflectionMethod method not MonoMethod. Removed
5938         MonoType.GetCorrespondingField, and make
5939         MonoGenericType.GetCorrespondingField take name not
5940         MonoClassField.
5941
5942 2005-06-13  Michal Moskal <malekith@nemerle.org>
5943
5944         * reflection.c (field_encode_signature, encode_locals):
5945          Make sizes of buffers for types larger (for big generic types).
5946          (create_generic_typespec,
5947          mono_reflection_sighelper_get_signature_local,
5948          mono_reflection_sighelper_get_signature_field):
5949          Add asserts for too small buffers.
5950
5951 2005-06-15  Martin Baulig  <martin@ximian.com>
5952
5953         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5954         if our parent is not a dynamic type.
5955
5956 2005-06-15  Martin Baulig  <martin@ximian.com>
5957
5958         * class-internals.h (MonoTypeNameFormat): New enum.
5959
5960         * class.c
5961         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5962         (mono_type_get_full_name): Removed.
5963         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5964         argument instead of the boolean's.
5965
5966         * icall.c (ves_icall_System_MonoType_getFullName):
5967         Added `gboolean assembly_qualified'.    
5968
5969         * reflection.h
5970         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5971
5972         * reflection.c (mono_reflection_parse_type): Parse the new type
5973         name format.
5974
5975 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5976
5977         * icall.c: no need to convert from utf16 to utf8 and then back again
5978         after the call to GetLogicalDrives.
5979
5980 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5981
5982         * icall.c: frombase64. Fix problems exposed by new tests.
5983
5984 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5985
5986         * icall.c: added internal calls for converting char [] and strings in
5987         base64 into byte [].
5988
5989 2005-06-10  Martin Baulig  <martin@ximian.com>
5990
5991         * class.c (mono_class_create_generic_2): Read the nested classes
5992         from the metadata rather than from `gklass->nested_classes' since
5993         `gklass' might not be initialized yet.
5994
5995 2005-06-09  Duncan Mak  <duncan@novell.com>
5996
5997         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5998         all public headers. Fixes #74919.
5999
6000 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
6001
6002         * domain.c: The key for proxy_vtable_hash is now a pointer
6003         array. Added new GHashFunc and GCompareFunc functions for this.
6004
6005         * class.h: The list of interfaces in MonoRemoteClass is known in
6006         advance and can't grow (we create a new MonoRemoteClass if needed),
6007         so now the interface array can be allocated together with
6008         MonoRemoteClass.
6009         
6010         * object.c: Added a new method create_remote_class_key.
6011         Fixed mono_remote_class so it does not depend on
6012         mono_upgrade_remote_class.
6013         Removed extend_interface_array.
6014         Added new method clone_remote_class(), which makes a copy of a remote
6015         class and adds a new interface or class to it.
6016         mono_upgrade_remote_class() now creates a new remote class (or gets
6017         it from the cache) if an vtable upgrade is needed. In this way
6018         we make sure that other objects sharing the same remote class
6019         don't get the new vtable with unwanted interfaces.
6020         
6021         * object-internals.h:
6022         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
6023         
6024         * marshal.c: Track changes in mono_upgrade_remote_class().
6025
6026 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
6027         * icall.c: Add runtime methods for obtaining members of inflated
6028         class, which were created from supplied non-inflated members. It
6029         is used in internal Get{Method,Constructor,Field} methods in
6030         System.Type
6031
6032 2005-06-09  Martin Baulig  <martin@ximian.com>
6033
6034         * reflection.c
6035         (mono_reflection_bind_generic_method_parameters): Fix #75169.
6036
6037 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6038         * reflection.c (mono_image_basic_init): Define
6039         Version in MonoDynamicAssembly. 
6040         
6041 2005-06-08  Martin Baulig  <martin@ximian.com>
6042
6043         Fix #75136.
6044
6045         * loader.c
6046         (mono_method_signature_full): New public method; takes a
6047         `MonoGenericContext *'.
6048         (find_method): Use mono_method_signature_full() and pass the
6049         klass'es context to it.
6050
6051         * class.c (mono_class_is_inflated_method): Use
6052         mono_method_signature_full() and pass the context to it.
6053
6054 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
6055
6056         * object.c: add proper locking in mono_remote_class_vtable(),
6057         fixes possible memory corruption.
6058
6059 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
6060
6061         * marshal.c (mono_remoting_marshal_init): set
6062         initialized after initialization.
6063
6064 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
6065
6066         * locales.c : hush.
6067
6068 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
6069
6070         * object.c (extend_interface_array): fix really silly
6071         memory corrupting / comparison bug.
6072
6073 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6074
6075         * reflection.c: Functions added to support the creation
6076         of CustomAttributeData, which includes Attribute data
6077         used by ReflectionOnly methods.
6078
6079         * reflection.h:  mono_reflection_get_custom_attrs_data and
6080          mono_custom_attrs_data_construct added (functions exposed).
6081
6082          * icall.c: Added mono_reflection_get_custom_attrs_data
6083          as icall.
6084         
6085 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
6086
6087         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
6088         lupus's request.
6089
6090 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
6091
6092         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
6093
6094         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
6095         dynamic DllImportAttribute.
6096
6097         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
6098         dynamic DllImportAttribute.
6099
6100         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
6101         Fixes #75162.
6102
6103 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6104
6105         * threads.c: avoid segfault when an unstarted thread is aborted.
6106
6107 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
6108
6109         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
6110         Returns the name and version of the runtime for reporting.
6111
6112 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6113
6114         * appdomain.c: bump corlib version.
6115         * object-internals.h: new field in MonoReflectionAssembly.
6116
6117 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6118
6119         * object-internals.h: Carlos forgot to add this field.
6120
6121 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6122
6123         * icall.c: Added create_version to create instances
6124         of Version of MonoReflectionAssemblyName. This change helps
6125         the AssemblyName tests to keep running fine.
6126         
6127 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
6128   
6129         * object.c (mono_method_return_message_restore): A somehow less
6130         intrusive fix for #75138.
6131
6132 2005-06-03  Raja R Harinath  <rharinath@novell.com>
6133
6134         * object.c (mono_method_return_message_restore): Fix computation
6135         of expected number of out args.
6136
6137 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6138
6139         * reflection.c (mono_image_get_method_info): Fix the case when the
6140         charset is empty.
6141
6142 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
6143
6144         * object.c: Added missing null check in
6145           mono_method_return_message_restore.
6146
6147 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6148
6149         * reflection.c (mono_image_get_method_info): Handle the case when
6150         dllentry is empty.
6151
6152 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
6153
6154         * object.c: When creating the vtable for a proxy, take into account
6155         all inherited interfaces, not only the ones registered in
6156         iclass->interfaces. This fixs bug #74996.
6157         Also, in mono_method_return_message_restore, verify that the array
6158         of out args has the expected lengh.
6159
6160 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6161
6162         * socket-io.c: update the timeout in Poll when the call is interrupte.
6163
6164 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6165
6166         * socket-io.c: support abort/suspend in Select_internal after last
6167         change.
6168
6169 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6170
6171         * threadpool.c: remove warning.
6172
6173 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6174
6175         * icall.c:
6176         * socket-io.[ch]: Select_internal uses poll() now when available, thus
6177         removing the 1024 limit from select(). Runtime part of the fix for
6178         bug #71203.
6179
6180 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6181
6182         * socket-io.c: when resolving the addresses for the same
6183         host returned by gethostname(), get the local IPs from the interface
6184         list. Loopback addresses are discarded if the are interfaces up with
6185         non-loopback ones. Fixes bug #63265.
6186
6187 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
6188
6189         * appdomain.c, verify.c, object-internals.h, reflection.c:
6190         bumped corlib number to 36, and added new extra_flags field
6191         to ReflectionMethodBuilder and friends.  Fixes #75060.
6192
6193 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
6194
6195         * gc.c: register a new weak link only if the object is non-null
6196         (fixes bug#75047).
6197
6198 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6199
6200         * culture-info.h : short time pattern too.
6201
6202 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6203
6204         * culture-info.h : expand long time pattern string length.
6205
6206 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6207
6208         * culture-info-table.h : update (more French date format; #72788).
6209
6210 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
6211
6212         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
6213         the method is static. Fixes #75029.
6214
6215 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
6216
6217         * reflection.c: Update the table_idx field of method builders after
6218         saving the module, since it can change. This is a workaround for
6219         bug #74914. 
6220
6221 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6222
6223         * culture-info-table.h : update (additional French date format).
6224
6225 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
6226
6227         * icall.c (ves_icall_type_Equals): Revert last change.
6228         
6229         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
6230
6231         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
6232
6233 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
6234
6235         * class-internals.h: Added executioncontext_class field to 
6236         MonoDefaults structure.
6237         * domain.c: Cache System.Threading.ExecutionContext class in 
6238         mono_defaults.
6239         * object.c: Capture the ExecutionContext for asynchroneous calls in
6240          mono_async_result_new.
6241         * object-internals.h: Added execution_context and original_context 
6242         fields to MonoAsyncResult. Added execution_context to MonoThread.
6243         * security-manager.c|.h: Added mono_get_context_capture_method to 
6244         return the capture method (if required by the security manager or by
6245         the framework version used).
6246         * threadpool.c: Apply capture (if present) ExecutionContext in 
6247         mono_async_invoke and revert to original context after it completes.
6248
6249 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
6250
6251         * culture-info-table.h : updated (real hacky solution for zh-CHT).
6252
6253 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
6254
6255         * culture-info-table.h : zh-CHT related workaround.
6256
6257 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6258
6259         * marshal.c (emit_marshal_custom): Add some error checking and call the
6260         methods in the ICustomMarshaler interface. Fixes #74875.
6261         
6262         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
6263         native->managed wrappers.
6264
6265 2005-05-12  Martin Baulig  <martin@ximian.com>
6266
6267         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
6268         here and use the loader lock.
6269
6270         * mono-debug.c: Properly lock when the debugger is not attached.
6271         (mono_debug_init): Release the initial lock if we're not running
6272         in the debugger.
6273
6274 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6275
6276         * marshal.c (emit_marshal_custom): Pass through NULL values without
6277         calling the custom marshalling routines.
6278
6279         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
6280         conversion in structures. Fixes #74882.
6281
6282 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
6283
6284         * culture-info-table.h : zh-* cultures were missing.
6285
6286 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
6287
6288         * threads.c: Added a new event background_change_event which is signaled
6289         when a thread changes its background mode.
6290         Moved here several checks previously done in managed code. The checks
6291         require the thread lock, and using the thread lock in managed code
6292         can result in deadlocks.
6293         Merged Start_internal and Thread_internal into a single method. Now 
6294         Thread_internal does all work of creating and starting a thread.
6295         Added icalls for setting and getting the state of the object. Moved from
6296         managed code to avoid locking there.
6297         Added wait_for_tids_or_state_change() which is called instad of
6298         wait_for_tids when waiting for non-backround threads to end. This method
6299         will return if one of the threads ends or the background_change_event
6300         is signaled.
6301         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
6302         the background mode. This method signals the background_change_event
6303         event.
6304         * icall.c:
6305         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
6306         removed Start_internal.
6307         
6308 2005-05-11  Martin Baulig  <martin@ximian.com>
6309
6310         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
6311         to order of some fields to get proper alignment on 64-bit machines.
6312
6313 2005-05-11  Martin Baulig  <martin@ximian.com>
6314
6315         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
6316         changes as they're broken and completely fuck up the debugger.
6317
6318         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
6319
6320 2005-05-10  Martin Baulig  <martin@ximian.com>
6321
6322         * reflection.c (mono_reflection_generic_class_initialize): Don't
6323         call mono_class_setup_parent() here.
6324
6325 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6326
6327         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
6328         send/receive timeout use an integer in milliseconds. We were using a
6329         struct timeval.
6330
6331 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6332
6333         * locales.c:
6334         (internal_get_cultures): reserve the first slot of the array for the
6335         InvariantCulture, which will be filled in managed code.
6336
6337 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
6338
6339         * reflection.c (mono_image_fill_module_table): Initialize the
6340         GENERATION field as well.
6341
6342 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6343
6344         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
6345         Monitor.Enter on the object.
6346
6347 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
6348
6349         * threads.c: Enable the wait for running threads when exiting.
6350         * icall.c: Suspend all threads before exiting.
6351
6352 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
6353
6354         * assembly.c (mono_assembly_load_reference): Fix warning.
6355
6356 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6357
6358         * threadpool.c: changed the default number of threads per cpu. From now
6359         on, the default will be 20 + (5 * number of cpus) instead of 50.
6360
6361 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
6362
6363         * loader.c (mono_method_get_signature_full): Add locking here.
6364
6365 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
6366
6367         * appdomain.c: Moved methods for parsing and freeing assembly
6368         names to assembly.c.
6369         * assembly.c, domain-internals.h: Created public methods for parsing
6370         assembly names. Fixed mono_assembly_load_with_partial_name:
6371         it now finds the best match, taking into account the version,
6372         token and culture specified in the partial name. Also return
6373         the latest version if no version information is specified.
6374
6375 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
6376
6377         * threadpool.c: replace check for SocketAsyncCall class.
6378
6379 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6380
6381         * threadpool-internals.h:
6382         * Makefile.am: added threadpool-internals.h
6383
6384         * threadpool.c: call mono_unhandled_exception on exceptions not handled
6385         that happen in threadpool threads (tested on MS).
6386         (mono_thread_pool_remove_socket): new function that dispatch any pending
6387         AIO call on a socket that is closing. By now only epoll really needs it,
6388         as select/poll wake up when the socket closes.
6389
6390
6391         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
6392
6393 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
6394
6395         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
6396
6397 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
6398
6399         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
6400
6401 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
6402
6403         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
6404         has an abort request, convert it into a suspend request.
6405
6406 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
6407
6408         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
6409         warning for the usage of `UnmanagedFunctionPointerAttribute' which
6410         is not supported yet.
6411
6412 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6413
6414         * image.c: register assemblies loaded from data (bundles) in the loaded
6415         assemblies hash. Fixes bug #74772.
6416
6417 2005-04-29  Martin Baulig  <martin@ximian.com>
6418
6419         * class.c (mono_type_get_name_recurse): Update to the new naming
6420         schema from the latest .NET 2.x beta2.
6421         (mono_class_setup_vtable_general): If we're a generic instance,
6422         copy the vtable from our generic type definition and inflate all
6423         the methods in it.
6424
6425         * loader.c (find_method): Update to the new naming schema from the
6426         latest .NET 2.x beta2.
6427
6428 2005-04-29  Raja R Harinath  <harinath@gmail.com>
6429
6430         * class.c (mono_class_init): Add a mono_loader_unlock to the
6431         #74734 fix.
6432
6433 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
6434
6435         * icall.c (ves_icall_System_Environment_Exit): Remove the 
6436         suspend_all_other_threads () call for the time being, since it can hang.
6437
6438         * threads.c (mono_thread_manage): Similarly, disable the waiting for
6439         the background threads to exit, since it can also hang.
6440
6441         * class.c (mono_class_init): Applied patch from Ankit Jain 
6442         (radical@gmail.com). Avoid pending init errors when a field refers
6443         to a nested class using a typeref. Fixes #74734.
6444
6445         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
6446         this for dynamic modules.
6447
6448 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6449
6450         * threads.c: don't wait for threads that are in the process of aborting
6451         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
6452         and waiting for background threads to finish. This makes xsp and
6453         mod-mono-server exit without random length delays and/or hangs.
6454
6455 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6456
6457         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
6458
6459 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
6460
6461         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
6462         dynamic types to prevent infinite loops. Fixes #74727.
6463
6464         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
6465         ..._is_assignable_to.
6466
6467 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
6468
6469         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6470
6471 2005-04-25  Martin Baulig  <martin@ximian.com>
6472
6473         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6474
6475         * domain.c
6476         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6477
6478         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6479
6480         * reflection.c (build_compressed_metadata): Set metadata header
6481         version to 2.0.
6482
6483 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
6484
6485         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6486         number into an integral and a decimal part. Fixes #70473.
6487
6488         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6489
6490 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
6491
6492         * culture-info-table.h : reflected the latest locale-builder output.
6493
6494 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6495
6496         * threadpool.c: check for SuspendRequested too when deciding if
6497         mono_thread_interruption_checkpoint should be called.
6498
6499 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6500
6501         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6502         * threads.c: remove interruption_mutex and use Interlocked instead. When
6503         suspending all the threads, wait for all the suspended events at once.
6504         If we're shutting down and get an APC that is going to be queued,
6505         call mono_thread_execute_interruption immediately, as the thread might
6506         be sleeping on a pthread condition or mutex.
6507
6508         * icall.c: call mono_runtime_set_shutting_down before suspending the
6509         threads.
6510
6511         Fixes bug #74693. And now xsp is happier when exiting.
6512
6513 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
6514
6515         * loader.c (mono_stack_walk): Fix #74690.
6516
6517 2005-04-22  Martin Baulig  <martin@ximian.com>
6518
6519         * mono-debug.h (MonoDebugMethodJitInfo): Added
6520         `MonoDebugMethodJitInfo *jit'.
6521
6522         * mono-debug.c (mono_debug_read_method): Cache the
6523         MonoDebugMethodJitInfo in `address->jit'.
6524         (mono_debug_free_method_jit_info): New public method.
6525
6526 2005-04-22  Martin Baulig  <martin@ximian.com>
6527
6528         * class.c (mono_class_is_assignable_from): Disallow
6529         type parameter -> interface.
6530
6531 2005-04-21  Dick Porter  <dick@ximian.com>
6532
6533         * threads.c (mono_thread_create): Turn an assertion into an error.
6534
6535 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
6536
6537         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6538         
6539         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
6540         Fix some gcc 4.0 warnings.
6541
6542 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6543
6544         * file-io.c: fix alt dir separator char on unix systems
6545         and cleanup (fixes bug #71214).
6546
6547 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6548
6549         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6550         a call to a remote domain, since the method may be an
6551         interface method in the client domain. This fixes bug #74192.
6552
6553 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6554
6555         * threadpool.c: recv/send are now performed before going back to managed
6556         code to save one transition.
6557
6558 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6559
6560         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6561
6562         * metadata/threadpool.c: removed hack to workaround the bug above.
6563
6564         Fixes bug #74618.
6565
6566 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6567
6568         * reflection.c reflection.h: Fix handling of parameter defaults in
6569         dynamic methods. Also fixes handling of parameter attributes.
6570         Fixes #74609.
6571
6572         * mono-debug.c (mono_debug_close_image): Fix warning.
6573
6574 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6575
6576         * socket-io.h: replaced old unused field with new 'blocking'.
6577         * threadpool.c: restore socket blocking state on windows(tm).
6578
6579 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6580
6581         * icall.c: don't return the codebase in the AssemblyName[] returned by
6582         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6583         * object-internals.h: Removed FIXME (fields were presents) and fixed
6584         versioncompat declaration.
6585
6586 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6587
6588         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6589         not closed, so don't cleanup when it happens.
6590
6591 2005-04-13  Chris Toshok  <toshok@ximian.com>
6592
6593         * mono-debug-debugger.h: change prototype for
6594         mono_debugger_lookup_type.
6595
6596         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6597         this function, although it should probably be named
6598         mono_debugger_init_type.
6599
6600 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6601
6602         * threadpool.c: fix non-AIO case.
6603
6604 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6605
6606         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6607         the built-in profiler to measure just JIT compilation times.
6608
6609 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6610
6611         * threadpool.c: the epollfd might be closed by another thread at
6612         any time, so ignore EBADF at treat it as a "we're closing" sign.
6613
6614 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6615
6616         * threadpool.c: release the semaphores with a count equals to the number
6617         of working threads in both IO and regular pools. Fixed typo that messed
6618         up the count of IO pool threads. Don't initialize the pipe handles if
6619         we're using epoll.
6620
6621 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6622
6623         * threadpool.c: some systems don't like a NULL when deleting the socket
6624         from epoll.
6625
6626 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6627
6628         * threadpool.c: fix semaphore allocation.
6629
6630 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6631
6632         * threadpool.c: added epoll() based implementation for asynchronous IO
6633         that is used instead of the default poll() when available.
6634         It can be disabled by setting MONO_DISABLE_AIO.
6635
6636 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6637
6638         * threadpool.c: windows needs 'closesocket' and instead of returning
6639         0 when the stream is closed while in select, it returns -1. Fixes bug
6640         #74573.
6641
6642 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6643
6644         * class.c (class_compute_field_layout): Fix the regression caused by
6645         the previous try.
6646
6647 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6648
6649         * threadpool.c: separate pool for socket async. IO.
6650         * threadpool.h: mono_max_worker_threads is not a global any more.
6651
6652 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6653
6654         * class.c (class_compute_field_layout): Fix #74549.
6655
6656 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6657
6658         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6659         use 2 connected sockets instead.
6660
6661 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6662
6663         * mono-config.c: Add new entry point for mkbundle
6664         mono_config_parse_memory. 
6665
6666 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6667
6668         * threadpool.c: removed another unused function.
6669
6670 2005-04-08  Ankit Jain  <radical@corewars.org>
6671
6672         * reflection.c (get_default_param_value_blobs): Add 'types'
6673         parameter to get the types encoded in the constant table.
6674         (mono_param_get_objects): Use the type from the constant table,
6675         not the type of the parameter, when creating default values.
6676         Handle null default values correctly.
6677
6678 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6679
6680         * file-io.c:
6681         * file-io.h:
6682         * threadpool.c:
6683         * threadpool.h:
6684         * icall.c:
6685         * socket-io.c: removed dead code for async IO.
6686
6687 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6688
6689         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6690
6691         * threadpool.c: intercept socket async. calls and pass them to a thread
6692         that is polling and dispatching the job items to the threadpool as
6693         socket become ready. Fixes bugs #71217, #71933.
6694
6695         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6696         between char and short/ushort arrays.
6697
6698         * socket-io.c: remove dead code.
6699
6700 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6701
6702         * locales.c,
6703           icall.c : removed InternalToUpper_Comp() and
6704           InternalToLower_Comp().
6705
6706 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6707
6708         * char-conversions.h : The tables were incorrectly generated. Should
6709           be generated against invariant culture.
6710
6711 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6712
6713         * object.c (mono_runtime_invoke_array): Fix return value when 
6714         passing pre-created valuetype objects to ctors.
6715
6716         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6717         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6718         Fixes #74338.
6719
6720 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6721
6722         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6723         only used with --security and hides the wrong corlib version error.
6724
6725 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6726
6727         * class.c: Changed mono_class_name_from_token so that types
6728         outside of a namespace don't have an initial period.  Improved
6729         the g_warning message used in _mono_class_get when loading
6730         fails.
6731         * assembly.c: In mono_assembly_load_reference, when an assembly
6732         can't be found, "No such file or directory" is misleading and
6733         unhelpful because a few paths were checked for the presence of
6734         the assembly.  When that happens (ENOENT), display a nicer
6735         message indicating the directories that were searched.  In all
6736         cases, the warning is made easier to read for non-hackers.
6737
6738 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6739
6740         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6741         project/solution.
6742         * appdomain.h|domain.c: Removed inline from functions.
6743         * appdomain.c: Reduced warnings when compiling on windows.
6744         * icall.c: Fixed output_debug declaration to gunichar2*.
6745         * mono-config.c: Reduced warnings when compiling on windows.
6746         * rand.c: Added missing "windows.h". Added missing return value.
6747         * rawbuffer.c: Added missing winsock2.h for windows.
6748         * sysmath.h: Added mono-compiler.h header to allow/ease 
6749         compilation with non-GCC compilers.
6750         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6751         Removed cast warnings.
6752
6753         Adapted from the work of J Lothian (for VC6).
6754
6755 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6756
6757         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6758         from default_path.
6759
6760 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6761
6762         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6763         the 2.0 profile.
6764
6765 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6766
6767         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6768         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6769         stuff, and it would probably use $(prefix)/share rather than
6770         $(prefix)/lib.
6771
6772 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6773
6774         * console-io.c: added 2 includes that might be missing.
6775
6776 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6777
6778         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6779         profile.
6780
6781         * reflection.c (create_custom_attr): Allocate the params array using
6782         alloca so it gets GC tracking.
6783
6784 2005-03-23  Chris Toshok  <toshok@ximian.com>
6785
6786         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6787         out some spew.
6788
6789 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6790
6791         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6792         changes to pick up any changes in prefix, etc.
6793
6794 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6795
6796         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6797         
6798         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6799         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6800
6801 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6802
6803         * class-internals.h object-internals.h class.c reflection.c: Extend the
6804         mono_lookup_dynamic_token () function to return the class of the
6805         token as well. 
6806
6807         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6808         well. Fixes #73848.
6809
6810 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6811
6812         * security-manager.c: Skip inheritance checks for intra-corlib
6813         class inheritance and method overrides. This skips a lot of checks
6814         and (anyway) permissions cannot work until corlib is loaded.
6815
6816 2005-03-23  Martin Baulig  <martin@ximian.com>
6817
6818         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6819         MONO_TYPE_GENERICINST.  
6820
6821 2005-03-23  Martin Baulig  <martin@ximian.com>
6822
6823         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6824
6825 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6826
6827         * class.c: added locking comments to some functions.
6828         Cache the interface offsets arrays (saves about 20 KB
6829         of runtime memory in a typical app).
6830         Reduce the time overhead in mono_class_setup_supertypes ().
6831
6832 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6833
6834         * icall.c: speedup and fix leaks in GetMethodsByName and
6835         GetPropertiesByName.
6836
6837 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6838
6839         * reflection.c: some locking fixes.
6840
6841 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6842
6843         * metadata.c: added missing break in case statement.
6844
6845 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6846
6847         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6848         typedbyref return values. Fixes #73941.
6849
6850 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6851
6852         * security-manager.c|h: Added demandunmanaged method and 
6853         suppressunmanagedcodesecurity class to MonoSecurityManager.
6854         Renamed aptc class to allowpartiallytrustedcallers.
6855
6856 2005-03-17  Martin Baulig  <martin@ximian.com>
6857
6858         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6859
6860 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6861
6862         * file-io.c: disabled file async. IO using aio_*. It uses the
6863         threadpool now. Workaround for bug #73718.
6864
6865 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6866
6867         * assembly.h, mono-config.c: added code to deal with bundled configs
6868         for bundled assemblies.
6869
6870 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6871
6872         * *.c, private.h: cleanup, removing old private.h header file.
6873
6874 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6875
6876         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6877         and throw_on_unmappable_char attributes.
6878
6879 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6880
6881         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6882         _ProcessName_internal.
6883
6884 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6885
6886         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6887         #73631.
6888
6889         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6890         are no longer used.
6891
6892 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6893
6894         * object.c (compute_class_bitmap): Add support for generics. Fixes
6895         #73527.
6896
6897 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6898
6899         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6900
6901 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6902
6903         * filewatcher.c: commented out the code for windows watcher, as we don't
6904         use it (we use the managed implementation instead).
6905
6906 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6907
6908         * object-internals.h (MonoThread): Remove 'unused1' field.
6909
6910         * appdomain.c: Bump corlib version.
6911
6912         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6913
6914         * reflection.c (mono_reflection_create_runtime_class): Remove the
6915         AssemblyBuilder.Save optimization since it causes too many problems.
6916
6917 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6918
6919         * exception.c|h: Added mono_get_exception_reflection_type_load to
6920         create a ReflectionTypeLoadException object.
6921         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6922         to return NULL is a InheritanceDemand fails during reflection. Updated
6923         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6924         ReflectionTypeLoadException if an InheritanceDemand fails during 
6925         reflection. Added icall mapping for GetLinkDemandSecurity.
6926         * security-manager.c|h: Added ves_icall_System_Security_
6927         SecurityManager_GetLinkDemandSecurity internal call to return the
6928         class and methods permissions set for a LinkDemand. Removed unused
6929         fields in MonoSecurityManager.
6930
6931 2005-03-10  Martin Baulig  <martin@ximian.com>
6932
6933         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6934         it's a generic instance.
6935
6936 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6937
6938         * reflection.c (mono_get_object_from_blob): Applied patch from
6939         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6940
6941         * class.c (mono_class_is_assignable_from): Another try at fixing 
6942         #73469 without breaking anything.
6943
6944 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6945
6946         * class.c: (mono_class_is_assignable_from): Revert the last changes
6947         since they don't work with generics.
6948         
6949         * class.c (mono_class_is_assignable_from): Fix build bustage.
6950
6951         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6952         the managed IsAssignableFrom method. Fixes #73469.
6953
6954         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6955         function.
6956
6957 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6958
6959         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6960         memory when the remoting callback does not sets the out arguments.
6961         Fixes #73007.
6962
6963         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6964         by mistake.
6965
6966         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6967
6968         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6969
6970         * appdomain.c: Bump corlib version.
6971
6972 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6973
6974         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6975         function.
6976
6977         * threads.c (mono_thread_attach): Detect threads which are not started
6978         by the GC pthread wrappers.
6979
6980 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6981
6982         * icall.c: Added new icall for RNG.
6983         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6984         single handle on Linux to access /dev/urandom and fix #73183.
6985
6986 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6987
6988         * object.c: setting the new vtable in a transparent proxy object must
6989         not change the GC descriptor.
6990
6991 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6992
6993         * object.c: fixed compilation without GCJ support.
6994         * reflection.c: for runtime-created types ensure klass->has_references
6995         is correct (bug #73215).
6996
6997 2005-03-02  Martin Baulig  <martin@ximian.com>
6998
6999         * class.c (mono_class_is_assignable_from): Make this work if
7000         `oklass' is a generic instance; fixes #72831.
7001
7002 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7003
7004         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
7005         with hasthis set.
7006         
7007         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
7008
7009         * marshal.c: Reorganize native->managed marshalling code to also use
7010         the emit_marshal_... functions.
7011
7012 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7013
7014         * object.c: typed allocs have issues with bitmap sizes > 30,
7015         so check for max_set >= 30.
7016
7017 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7018
7019         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
7020         managed code. Fixes #73012.
7021
7022         * metadata.h (MonoMarshalSpec): Add elem_mult field.
7023
7024         * metadata.c reflection.c: Load/Emit elem_mult as well.
7025         
7026         * metadata.h (MonoMarshalSpec): Add comment.
7027
7028         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
7029
7030         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
7031         num_elem to -1 if not given.
7032
7033         * object-internals.h (MonoReflectionMarshal): Add has_size field.
7034
7035         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
7036         given values.
7037
7038 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
7039
7040         * null-gc.c (mono_gc_free_fixed): Was not compilable.
7041
7042 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
7043
7044         * reflection.c (encode_marshal_blob): Encode param_num field as well.
7045
7046         * object-internals.h (MonoReflectionMarshal): Add param_num field.
7047
7048 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7049
7050         * object.c: generalized the reference bitmap creation
7051         and added hooks for the new GC.
7052         * class-internals.c: removed the gc_bitmap field from MonoClass.
7053
7054 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7055
7056         * domain.c: help the compiler to produce better code
7057         in mono_jit_info_table_find ().
7058
7059 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7060
7061         * object.c: make all allocations look typed.
7062
7063 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7064
7065         * socket-io.c: load Mono.Posix if it's not loaded already
7066         (fixes bug#73033).
7067
7068 2005-02-24  Martin Baulig  <martin@ximian.com>
7069
7070         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
7071         * reflection.c (dup_type): Likewise.
7072
7073 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
7074
7075         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
7076         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
7077
7078 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7079
7080         * domain.c, threads.c, object-internals.h: make the critical thread
7081         local vars use the fast access mode (even when we're compiled in
7082         a lib). Provide accessors to be used by the jit during codegen.
7083
7084 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7085
7086         * appdomain.c: Changed hook functios behavior to include
7087         support for the reflection only assemblies. Some icalls were changed
7088         to support the mentioned assemblies too. Signatures of static methods
7089         try_assembly_resolve and real_load now have an additional parameter:
7090         refonly.
7091
7092         * assembly.c: General changes to mono_assembly_ methods to support
7093         reflection only api. Functions mono_assembly_open, mono_assembly_load,
7094         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
7095         suffix, to support an additional gbool parameter to specify whether
7096         the assembli is reflection only or not. Created some new hook functions 
7097         to add support for reflection only assemblies. Signatures of static 
7098         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
7099         have now an additional parameter: refonly.
7100
7101         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
7102         indicating whether the assembly is reflection only or not.
7103
7104         * exception.c: Add mono_get_exception_invalid_operation.
7105
7106         * icall.c: Throw an InvalidOperationException when trying to invoke
7107         a property/method/event, or trying to set/get the value of a field.
7108         Also add an icall to retrieve the ref_only flag to the
7109         MonoReflectionAssembly.
7110
7111 2005-02-23  Chris Toshok  <toshok@ximian.com>
7112
7113         Part of fix for #72827.
7114         * mono-debug.c (mono_debug_add_method): add lexical block data to
7115         the info we write.  Kind of a hack at the moment - we copy the
7116         lexical block info from the MonoDebugMethodInfo to the
7117         MonoDebugMethodJitInfo here, before writing it.
7118         (mono_debug_read_method): read the lexical block info.
7119
7120         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
7121
7122         * debug-mono-symfile.h: add lexical block support.
7123
7124         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
7125         support.
7126
7127 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7128
7129         * loader.c (mono_lookup_pinvoke_call): Fix warning.
7130
7131         * object.c (mono_runtime_free_method): Call mono_free_method () and
7132         put the TODOs there.
7133
7134         * loader.c (mono_free_method): Free up most memory allocated for 
7135         dynamic methods.
7136
7137 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7138
7139         * reflection.c: properly flag a Type argument to a
7140         named custom attr value (bug #72248).
7141
7142 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7143
7144         * reflection.c: reduce code duplication in named custom
7145         attribute encoding.
7146
7147 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
7148
7149         * reflection.c: properly encode custom attrs of type object
7150         (bug #72649).
7151
7152 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7153
7154         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
7155
7156 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
7157
7158         * socket-io.c: load System.dll if it's not loaded already
7159         (bug #72850 and #70477).
7160
7161 2005-02-21  Martin Baulig  <martin@ximian.com>
7162
7163         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7164         generic instances.
7165
7166 2005-02-21  Martin Baulig  <martin@ximian.com>
7167
7168         * reflection.c (mono_image_build_metadata): We also need to
7169         "fixup" the MethodImpl table after we computed the final method
7170         indices.  Call fixup_methodimpl() to do that.
7171         (fixup_methodimpl): New private method.
7172
7173 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7174
7175         * assembly.c: special case mscorlib.dll (bug#72536),
7176         patch from Carlos Alberto Cortez.
7177
7178 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
7179
7180         * threads-types.h threads.c: Fix build bustage.
7181
7182         * threads.c: Use a union for long<->double conversions.
7183
7184         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
7185         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
7186
7187         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
7188         containing the checkpoint call with NOT_TAKEN.
7189         
7190         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
7191         checkpoint before pushing the arguments, so they won't have to be
7192         spilled to stack.
7193
7194 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7195
7196         * domain.c, assembly.c, domain-internals.h: make some data
7197         const and relocation-free.
7198
7199 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
7200
7201         * object.c, appdomain.c, class-internals.h: introduce the
7202         MonoClassRuntimeInfo structure to hold the info needed to
7203         use a class at runtime. Made mono_class_vtable() lock-free
7204         for all the appdomains.
7205
7206 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
7207
7208         * metadata-internals.h, image.c: introduce a per-image mempool to
7209         be used for memory that has the same lifetime as the image.
7210
7211 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
7212
7213         * domain.c: In mono_init_internal(), instead of selecting the first
7214         runtime version supported by an executable, get a list of all
7215         supported versions and select the one for which an mscorlib exists
7216         (since even if the runtime supports a given version, it doesn't mean
7217         that the framework for that version is installed).
7218         Modified get_runtimes_from_exe to support this behavior.
7219         In supported_runtimes, added information about additional system
7220         assembly versions.
7221         
7222         * assembly.c: Added support for more than one system assembly version
7223         per runtime version. Updated the assembly list.
7224         In mono_assembly_remap_version, removed the initial version check,
7225         since we don't know to which version we need to compare until we
7226         get the version set on which the assembly is based.
7227         Moved the code for loading corlib into the new method
7228         mono_assembly_load_corlib(), so it can be used by the initialization
7229         code.
7230         
7231         * domain-internals.h: Updated data structures and added declaration
7232         for mono_assembly_load_corlib.
7233
7234 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7235
7236         * reflection.c (resolve_object): Fix the creation of the signature in 
7237         the SignatureHelper case.
7238
7239         * assembly.c (mono_assembly_remap_version): Fix binary search.
7240         
7241 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
7242  
7243         * class.c: Added inheritance check when a method is overloaded (from a
7244         virtual method or when implementing an interface) and when a class is
7245         inherited. Added functions to set a failure for a class and to 
7246         retreive the exception from a failure.
7247         * class-internals.h: Added fields to MonoClass to keep the exception
7248         information status for inheritance (or other exceptions) to be thrown
7249         later (i.e. not at load time).
7250         * object.c: Throw the inheritance SecurityException when a type is to 
7251         be created with either class or method inheritance violations.
7252         * reflection.c|h: Fix when getting declsec from a class. Removed 
7253         unrequired code for class. Improved sanity in parameter naming.
7254         * security-manager.c|h: Added functions to check for class and method
7255         inheritance.
7256
7257 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7258
7259         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
7260         and has_finalize in dynamic types as well.
7261
7262 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
7263
7264         * culture-info-table.h : fixed currency format for en-GB (and so on).
7265
7266 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
7267
7268         * gc.c: ensure the GC handles never have 0 as a value.
7269
7270 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7271
7272         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
7273         a pointer to a struct to unmanaged code. Fixes #72625.
7274
7275 2005-02-16  Martin Baulig  <martin@ximian.com>
7276
7277         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
7278
7279 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7280
7281         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
7282
7283 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7284
7285         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
7286
7287         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
7288         UnmanagedFunctionPointerAttribute, use it for determining calling convention
7289         etc. Fixes #71471.
7290
7291         * reflection.c (mono_custom_attrs_get_attr): New helper function.
7292
7293         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
7294
7295 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
7296
7297         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
7298         changes to make the current context a field in MonoThread.
7299
7300 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7301
7302         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
7303         the last change.
7304         
7305         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
7306         extracted from mono_marshal_get_native_wrapper.
7307
7308         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
7309         to create wrappers around native functions.
7310
7311         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
7312         delegates for arbitrary function pointers. Fixes #71472.
7313
7314 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7315
7316         * threads.c: cleaned up the code a little.
7317
7318 2005-02-15  Martin Baulig  <martin@ximian.com>
7319
7320         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
7321         the data table.
7322
7323         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
7324         allocate larger chunks if needed.
7325
7326 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7327
7328         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
7329         in by mistake.
7330
7331 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
7332
7333         * domain.c: keep the domains in an array and ensure the domain ids
7334         are kept small, so they can be used as indexes to domain-specific data
7335         with a small memory overhead.
7336
7337 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7338
7339         * icall.c: Handle byref types in Type icalls. Fixes #72544.
7340
7341 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
7342
7343         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
7344
7345 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
7346
7347         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
7348
7349         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
7350         values.
7351
7352         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
7353         
7354 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
7355
7356         * domain-internals.h: add the hashtable here.
7357
7358         * class-internals.h: Remove `info' from MonoMethod
7359
7360         * domain.c: Add a new hashtable, jit_trampoline_hash
7361
7362 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7363
7364         * object.c: don't set the value of static fields
7365         (fixes bug#72494).
7366
7367 2005-02-11  Martin Baulig  <martin@ximian.com>
7368
7369         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
7370         (mono_debug_add_method): Silently ignore the method if it's too big.
7371         (mono_debug_add_type): Likewise.
7372
7373 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
7374
7375         * threads.c, appdomain.c: remove #ifdefs from the code.
7376
7377 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
7378
7379         * metadata-internals.h: Added flags to MonoAssembly to cache the most
7380         common security informations. This allows us to stay in unmanaged code
7381         when doing LinkDemand and it's special cases (except for the first 
7382         time for initialization). The flags a very much used with --security.
7383         * reflection.c|h: Added code to get declarative security attributes 
7384         for LinkDemand and InheritanceDemand. This required to refactor the
7385         existing code for Demand.
7386         * security-manager.c|h: Added new method fields for the special cases
7387         of LinkDemand.
7388
7389 2005-02-10  Martin Baulig  <martin@ximian.com>
7390
7391         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
7392         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
7393
7394 2005-02-10  Martin Baulig  <martin@ximian.com>
7395
7396         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
7397         debugging code; this is almost a complete rewrite.
7398
7399         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
7400
7401 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7402
7403         * domain.c, object.h: expose mono_string_equal () and 
7404         mono_string_hash ().
7405         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
7406         it's implemented in managed code.
7407
7408 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7409
7410         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
7411         lo leak objects between appdomains.
7412
7413 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7414
7415         * assembly.c: old compilers compilation fix from 
7416         robertj@gmx.net (Robert Jordan).
7417
7418 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
7419
7420         * class-internals.h: Little reminder for the future.
7421
7422         * debug-helpers.c: Fix up wrapper_type_names
7423
7424 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7425
7426         * image.c, metadata-internals.h: when loading an image from a file,
7427         mmap all of it and use the same codepaths as when using a
7428         in-memory image: the code is simpler and we use less memory
7429         (both writable and readonly).
7430
7431 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7432
7433         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
7434         API to alloc runtime data structures that need to be tracked by the
7435         GC and contain pointers.
7436         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
7437         make the code more readable and eventually use a different GC.
7438
7439 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
7440
7441         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
7442         for out arguments.
7443         
7444 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
7445
7446         * object.c: In release_type_locks(), don't release the cctor lock
7447         if it has already been released. This fixes a crash in the
7448         thread5 test.
7449
7450 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7451
7452         * gc.c, marshal.c, icall.c: register a delegate for finalization
7453         only when the native function pointer has been allocated for it.
7454
7455 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7456
7457         * object.c: cleaned up some code, allocate objects that are
7458         pointer free with the atomic malloc variant. Allocate memory
7459         for static data from the mempool if it's pointer-free.
7460         Allocate the bounds array at the end of the array data, when needed.
7461         * object-internals.h, object.h: move a private function in a private
7462         header.
7463         * class.c: handle missing case in tracking references in fields.
7464
7465 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7466
7467         * class.c, class-internals.h: keep track if a type has
7468         reference fields in either the instance or static fields.
7469
7470 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
7471
7472         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7473         and renamed to MonoRuntimeInfo. Added fields to store the expected
7474         framework assembly version. Changed mono_get_framework_version and
7475         mono_get_runtime_version for a single mono_get_runtime_info method.
7476         
7477         * assembly.c: Added method to remap system assembly versions to the
7478         current executing runtime version. Removed old mapping code.
7479         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7480         
7481         * icall.c, reflection.c: Track api changes.
7482
7483 2005-02-06  Miguel de Icaza  <miguel@novell.com>
7484
7485         * loader.c (method_from_memberref): Improve error reporting,
7486         produce the class name instead of the typeref/typedef index. 
7487
7488 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
7489
7490         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7491
7492 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7493
7494         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7495         stdcall and charset name mangling.  Reorganize the code and add
7496         some tracing stuff.
7497
7498 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7499
7500         * monodiet.c: More iters!
7501
7502         * marshal.c: Iter usage.
7503
7504         * icall.c: Iter usage.
7505
7506         * object.c: Use iters.
7507
7508         * debug-helpers.c: More iters
7509
7510 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7511
7512         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7513         under win32.
7514
7515 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7516
7517         * mono-debug-debugger.c: use iters
7518
7519         * class.c, class-internals.h: mono_class_setup_events is static
7520         now
7521
7522         * All callers: use iters
7523
7524 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7525
7526         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7527         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7528
7529 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7530
7531         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7532
7533         * marshal.h: Add prototypes for ldfld/stfld_remote.
7534
7535         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7536         this is called during startup.
7537         
7538 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7539
7540         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7541         MonoThreadsSync struct private in monitor.c. Changed the way
7542         MonoThreadsSync is allocated so it's faster and there is no
7543         need to keep track of it with a finalizer and it uses less memory.
7544         This also finally allows us to allocate mono objects as ptrfree when
7545         there are no reference fields.
7546
7547 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7548
7549         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7550         disappearing link to the GC interface and use them to simplify
7551         the gchandles code.
7552
7553 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7554
7555         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7556         stfld_remote which call mono_load/store_field_new. This allows methods
7557         calling ldfld/stfld wrappers to be AOTed.
7558
7559         * console-io.c: Include sys/filio.h under solaris.
7560         
7561         * console-io.c: Include curses.h if needed correctly.
7562
7563 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7564         
7565         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7566         method->klass as well.
7567
7568         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7569
7570         * class.c (mono_class_init): Switch on lazy initialization of 
7571         methods.
7572
7573         * class.c (mono_class_get_finalizer): Handle the case when the 
7574         finalizer is inherited.
7575
7576 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7577
7578         * console-io.c: <curses.h> is needed by term.h on solaris.
7579
7580 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7581
7582         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7583         mono_class_setup_properties where possible. Remove this ftn from
7584         the header file, and make it static.
7585
7586 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7587
7588         * loader.c: Add missing setup_... call.
7589
7590         * class.c: Add missing setup_... calls.
7591
7592         * class.c (mono_class_init): Switch on lazy initialization of 
7593         the generic vtable.
7594         
7595         * class.c (mono_class_init): Fix generics broken by the recent changes.
7596
7597         * monodiet.c (handle_type): Add missing setup_... calls.
7598
7599         * class.c: Back out garbage in previous patch.
7600         
7601         * class.c: Add missing setup_... calls.
7602
7603         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7604         mono_class_setup_methods () if possible.
7605
7606         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7607
7608         * class-internals.h (MonoCachedClassInfo): New structure.
7609
7610         * class.c: Initialize properties and events fields of MonoClass lazily.
7611
7612         * class.c: Add infrastructure for lazily initializing the methods and
7613         vtable fields of MonoClass. Not yet used.
7614
7615         * class.c (mono_class_get_finalizer): New helper function.
7616
7617         * class.c: Add infrastructure for loading some class related data from
7618         an AOT file.
7619
7620         * object.c: Add infrastructure for initializing the vtable from data
7621         in the AOT file.
7622
7623         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7624
7625         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7626         appropriate initialization function before accessing parts of the
7627         MonoClass structure.
7628
7629         * marshal.c: Fix warnings.
7630         
7631         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7632
7633         * mono-debug-debugger.c (get_exception_message): Use 
7634         mono_class_get_method_from_name_flags ().
7635
7636 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7637
7638         * reflection.c, appdomain.c: Replace a few manual searches that
7639         Zoltan missed. (Paolo approved this part of my initial patch).
7640
7641 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7642
7643         * profiler.c: disable recording statistical events at report time.
7644
7645 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7646
7647         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7648         to byteswap arrays of enum values, too (bug #72080).
7649
7650 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7651
7652         * appdomain.c (set_domain_search_path): Allow this to be called if
7653         domain->setup is not yet set.
7654
7655         * loader.c (mono_method_get_index): New helper function.
7656
7657         * loader.c reflection.c: Use mono_method_get_index ().
7658
7659         * class.c (mono_class_get_method_from_name_flags): New helper method.
7660
7661         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7662         this.
7663
7664         * class.c (mono_class_get_cctor): New helper method.
7665
7666         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7667         mono_class_get_method () to look up methods.
7668
7669 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7670
7671         * console-io.c: Fix the build, this should work on Windows.
7672
7673 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7674
7675         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7676         be set to null to keep things valid
7677
7678 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7679
7680         * icall.c: added Console 2.0 icalls.
7681         * Makefile.am: added console-io.[ch]
7682         * console-io.[ch]: internal calls for Console 2.0 API.
7683
7684 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7685
7686         * class.c: make sure we consider all the interfaces
7687         when calculating max_interface_id (bug found by
7688         Jeroen Frijters running ikvm).
7689
7690 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7691
7692         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7693         valuetype fields to null.
7694
7695         * object.c (set_value): Ditto. Fixes #71669.    
7696
7697 2005-01-31  Martin Baulig  <martin@ximian.com>
7698
7699         * metadata.c (mono_metadata_has_generic_params): New public
7700         function; checks whether something is a generic method.
7701
7702 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7703
7704         * appdomain.c: fix infinite recursion when adding assemblies.
7705
7706 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7707
7708         * object.c: Fix small typo to return all items for Environment.
7709         GetCommandLineArgs.
7710
7711 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7712
7713         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7714         reflection.c: more domain and assembly-unload related fixes
7715         and memory leaks plugs.
7716
7717 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7718
7719         * 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.
7720
7721 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7722
7723         * loader.c (mono_method_signature): Make this method lazy
7724         (mono_get_method_from_token): Don't computate the signature here.
7725
7726         Doing this saves quite a bit of memory. I got 90 kb on starting up
7727         monodoc. It should also save some disk reads on startup.
7728
7729         * *: MonoMethod->signature might be NULL now. You *MUST* use
7730         mono_method_signature.
7731
7732 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7733
7734         * object.c (mono_runtime_get_main_args): Return an array from the
7735         current domain here. Fixes #71938.
7736
7737 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7738
7739         * monitor.c: formatting changes to comply with the
7740         mono coding style and remove #ifdefs from the code.
7741
7742 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7743
7744         * metadata.c, private.h: remove some unneeded data
7745         and use a more compact representation for table schemas.
7746
7747 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7748
7749         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7750         to get a better distribution in hash tables.
7751         * *.c: use mono_aligned_addr_hash() where appropriate.
7752         * assembly.c: make var static.
7753
7754 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7755
7756         * domain-internals.h: Put MonoJitInfo on a diet.
7757
7758         * domain.c: Fix a warning.
7759
7760 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7761
7762         * gc.c: rework the gc handles code to reuse handles
7763         when freed.
7764
7765 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7766
7767         * domain.c: fixed long standing bug in mono_string_equal() which
7768         was brought to light with the ldstr changes.
7769
7770 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7771
7772         * reflection.c: Remove warning by adding missing include for marshal.h
7773
7774 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7775
7776         * domain.c, object.c: change the ldstr_table to hold
7777         MonoString* as keys: makes the runtime isinterned lookup
7778         faster and simplifies memory management.
7779
7780 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7781  
7782         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7783         possible to add imperative security checks before calling the icall.
7784         * reflection.c: Return security attributes on the original MonoMethod
7785         (and not the wrapped one). This fix permissions on icalls.
7786
7787 2005-01-25  Dick Porter  <dick@ximian.com>
7788
7789         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7790         the check for mktime() support actually test the mktime() return
7791         value.  "Fixes" bug 71682, though the output is still different to
7792         MS.
7793
7794 2005-01-25  Martin Baulig  <martin@ximian.com>
7795
7796         * class.c (mono_class_is_assignable_from): Make this work for
7797         generic instances.
7798
7799 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7800
7801         * marshal.c (mono_string_utf8_to_builder)
7802         (mono_string_builder_to_utf16): We might not have ownership of the
7803         string. In thise case, we need to create a new buffer.
7804
7805         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7806         be null, in which case, use the default capacity.
7807
7808 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7809
7810         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7811         GC events to the profiler.
7812
7813 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7814
7815         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7816         if you don't want the GC to run.
7817
7818 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7819
7820         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7821         start providing a GC API and keeping different implementations in
7822         their own file.
7823         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7824
7825 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7826
7827         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7828         mmap rather than allocating a huge buffer.
7829         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7830         above.
7831
7832 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7833
7834         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7835         and CheckExecutionRights.
7836         * reflection.c|h: Keep the index of the declarative security to be 
7837         used, instead of the pointer, when AOT compiler is used. Also add 
7838         class initialization when requesting demands.
7839         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7840         CheckExecutionRights. Both properties are now FALSE by default, and
7841         unmodifiable, unless the --security option is used.
7842
7843 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7844
7845         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7846         reflection.c: properly refcount images and assemblies, many leaks fixed.
7847
7848 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7849
7850         * threadpool.c: increase the timeout for threads in the thread pool to
7851         10s.  Fixes bug #67159.
7852
7853 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7854
7855         * class-internals.h: Sun's compiler insists on explicit
7856         signed on bit fields to handle then correctly.
7857
7858 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7859
7860         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7861         Make the size of the array fit only the number of invalid path
7862         chars that we have.
7863
7864         * class.c (_mono_class_get): Improve the error reporting when a
7865         class referenced is not found, to assist debugging. 
7866
7867 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7868
7869         * threads.c: fix off-by-one error.
7870         * domain.c: free data allocated in the domain.
7871
7872 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7873
7874         * reflection.c (mono_method_body_get_object): Fill out exception info
7875         as well.
7876
7877         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7878         structure.
7879         
7880 2005-01-19  Martin Baulig  <martin@ximian.com>
7881
7882         * loader.c (mono_get_method_constrained): Make this work again.
7883
7884 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7885
7886         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7887         guint16 to match the managed side.
7888
7889         * reflection.c (mono_reflection_body_get_object): Fill out local
7890         variables array.
7891
7892         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7893         as well.
7894
7895         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7896         'local_var_sig_token'.
7897
7898 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7899
7900         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7901         System.Drawing.
7902
7903         * reflection.c (mono_method_body_get_object): Handle abstract and
7904         runtime methods.
7905
7906 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7907
7908         * marshal.c, loader.c, class-internals.h, reflection.c:
7909         store the emthod data for a wrapper in an array instead of a list.
7910
7911 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7912
7913         * marshal.c: change the code to allocate memory more
7914         conservatively for method wrappers.
7915
7916 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7917
7918         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7919         fields from MonoClass to the marshal info structure where they belong.
7920
7921 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7922
7923         * class.c, object.c, class-internals.h, marshal.c: rearrange
7924         some fields and tweak some types to lower memory usage.
7925
7926 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7927
7928         * threads.c (signal_thread_state_change): Handle the case when the
7929         target thread is the current thread.
7930
7931         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7932
7933         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7934         emit_ptr_to_object_conv. 
7935
7936         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7937         marshalling. Fixes #71352.
7938
7939 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7940
7941         * metadata.h, blob.h: move table enum to blob.h so it can be included
7942         in any header.
7943         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7944         cut the size of MonoImage/MonoDynamicImage.
7945
7946 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7947
7948         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7949
7950 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7951
7952         * reflection.c, reflection.h, icall.c: add a function to check
7953         if an attribute type is defined for a metadata object.
7954
7955 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7956
7957         * object-internals.h: Added some needed fields from StringBuilder class.
7958         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7959
7960 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7961
7962         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7963         threads before shutting down the runtime.
7964
7965         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7966
7967 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7968
7969         * object-internal.h, threads.c: implement stacksize and 
7970         parameterized thread start functionality (requires
7971         matching corlib). Marked broken code for later removal.
7972
7973 2005-01-12  Martin Baulig  <martin@ximian.com>
7974
7975         * class-internals.h (MonoGenericClass): Moved the `initialized'
7976         flag to MonoDynamicGenericClass, removed `init_pending'.
7977         (MonoGenericInst): Added `is_reference' flag.
7978
7979 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7980
7981         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7982         inside the MSDOS header. Fixes #71201.
7983
7984         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7985         gc thread.
7986         (mono_domain_finalize): Ditto.
7987
7988 2005-01-12  Martin Baulig  <martin@ximian.com>
7989
7990         * class.c (mono_get_shared_generic_class): Use the cache for
7991         non-dynamic generic classes.
7992
7993         * class-internals.h (mono_class_create_generic_2): Removed
7994         function prototype, this function is now static inside class.c.
7995
7996         * class.c (mono_class_create_generic_2): Made this static, only
7997         call it from mono_class_init() and mono_class_setup_parent().
7998         (collect_implemented_interfaces_aux): Call mono_class_init() on
7999         the interfaces we collect.
8000         (mono_class_setup_vtable): Call mono_class_init (class->parent).
8001
8002 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8003
8004         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
8005         it a real thread handle.
8006
8007         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
8008         MonoJitExceptionInfo, since each catch clause needs its own variable.
8009         
8010 2005-01-11  Dick Porter  <dick@ximian.com>
8011
8012         * image.c (mono_pe_file_open): New variant on mono_image_open()
8013         that does not set up the CLI metadata; used for FileVersionInfo so
8014         it can get the data for windows binaries too.
8015         
8016         * process.c (process_read_string_block): Don't read off the end of
8017         the StringTable block.
8018
8019         These both fix bug 70766.
8020
8021 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
8022
8023         * gc.c: set some fields to NULL at GC cleanup time.
8024         * threads.c: if we quit the main thread, call exit ().
8025
8026 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8027
8028         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
8029
8030 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
8031
8032         * threads.h, threads.c, object.c: added accessor and settor for
8033         main_thread. Handle it specially when exiting from it: wait
8034         for other foreground threads to exit.
8035
8036 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
8037
8038         * process.c, verify.c: remove some bloat.
8039
8040 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
8041
8042         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
8043         the calling convention to cdecl under win32.
8044
8045 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
8046
8047         * object.c (mono_object_get_size): New function to get the size of
8048         an object instance.
8049
8050         * profiler.c (simple_allocation): Use above.
8051
8052 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
8053
8054         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
8055         ves_icall_System_AppDomain_getRootDomain (as it's not required to
8056         get an appdomain by it's id and we can't assume the root's id is 0).
8057         * domain-internals.h: Change the function prototype to match.
8058         * icall.c: Change the icall table for AppDomain.
8059
8060 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
8061
8062         * locales.c (string_invariant_compare_char): Only compute
8063         GUnicodeTypes in the case where we need them.  Test for ordinality
8064         first and return if so.
8065
8066         From the commit:
8067
8068                 /*
8069                  * FIXME: here we must use the information from c1type and c2type
8070                  * to find out the proper collation, even on the InvariantCulture, the
8071                  * sorting is not done by computing the unicode values, but their
8072                  * actual sort order.
8073                  */
8074
8075 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8076
8077         * loader.c: for P/Invoke methods, allow the "Internal" shared
8078         library name to refer to the calling process symbol namespace.
8079
8080 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
8081
8082         * Makefile.am: Add the security manager to the build.
8083         * security-manager.c|h: New. Initialization of the security manager.
8084
8085 2005-01-07  Dick Porter  <dick@ximian.com>
8086
8087         * threads.c: 
8088         * monitor.c: Update thread state during Monitor and WaitHandle
8089         waits.  Fixes bug 71031.
8090
8091 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
8092
8093         * reflection.c (property_encode_signature): Correctly handle when the
8094         property has no methods.
8095
8096 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
8097
8098         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
8099         
8100         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
8101         fields from mb, not rmb. Fixes #71017.
8102
8103         * marshal.c (emit_ptr_to_str_conv): Add support for 
8104         ByValTStr -> string conversion. Fixes #71015.
8105
8106         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
8107
8108         * mempool.c (mono_mempool_contains_addr): New helper function.
8109
8110 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8111
8112         * metadata.c (mono_metadata_compute_size): Fix size calculation of
8113         HasSematics encoded fields.
8114         
8115         * metadata.c (mono_type_to_unmanaged): Improve error message for 
8116         invalid string marshalling.
8117
8118         * metadata.c: Fix warnings.
8119         
8120 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8121
8122         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
8123         profiler support.
8124
8125 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8126
8127         * domain.c object.c domain-internals.h: Revert part of r38077 since the
8128         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
8129         tests.
8130
8131 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
8132
8133         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
8134         so methods containing these can be AOTed.
8135
8136 2005-01-03  Martin Baulig  <martin@ximian.com>
8137
8138         * loader.c (find_method): Removed the hack for generic instances.
8139         (method_from_memberref): If our parent is a generic instance, pass
8140         its generic type definition to find_method() and then inflate the
8141         method.
8142         (mono_get_method_constrained): Pass the generic type definition to
8143         find_method() and inflate the method later.
8144
8145         * class-internals.h (MonoStats): Added `generic_class_count'.
8146
8147         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
8148         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
8149
8150         * reflection.c (mono_custom_attrs_from_params): Don't ignore
8151         generic type definitions.
8152
8153 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
8154
8155         * loader.c icall.c: Fix warnings.
8156
8157 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
8158
8159         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
8160         blittable types. Fixes #70864.
8161
8162 2004-12-29  Martin Baulig  <martin@ximian.com>
8163
8164         * icall.c
8165         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
8166
8167         * reflection.c (mono_method_get_object): Create a
8168         "System.Reflection.MonoGenericMethod" for inflated methods; don't
8169         call mono_get_inflated_method().
8170
8171         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
8172
8173 2004-12-27  Martin Baulig  <martin@ximian.com>
8174
8175         * class-internals.h (MonoMethod): Added `is_inflated' flag.
8176         (MonoMethodInflated): Added `inflated' field.
8177
8178         * class.c (mono_class_inflate_generic_method): Don't really
8179         inflate the method here; just set the `is_inflated' flag in the
8180         MonoMethod.
8181         (mono_class_get_inflated_method): Actually inflate the method here
8182         if it's not already inflated; we use the MonoMethodInflated's new
8183         `inflated' field as a cache.
8184
8185 2004-12-26  Martin Baulig  <martin@ximian.com>
8186
8187         * class.c
8188         (inflate_generic_class): Moved some code out of inflate_generic_type().
8189         (mono_class_inflate_generic_method): If we're already inflated,
8190         inflate the context and use the declaring method; ie. make sure
8191         the declaring method of an inflated method is always the generic
8192         method definition.
8193         (mono_class_create_from_typedef): Create
8194         `class->generic_container->context->gclass'.
8195
8196 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
8197
8198         * metadata-internals.h, marshal.c, reflection.c: More
8199         MonoGHashTable->GHashTable.
8200
8201         * domain-internals.h, class.c: Change MonoGHashTable's into
8202         GHashTables for some cases where no gc stuff is used
8203
8204         All users: update apis
8205
8206 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
8207
8208         * metadata.c (builtin_types): Make this `const'. Makes this get
8209         put into the shareable section.
8210         (mono_metadata_init): Casts to make gcc happy.
8211
8212 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
8213
8214         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
8215
8216 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
8217
8218         * icall.c: Added an internal call to retrieve the position and length
8219         of assembly-level declarative security attributes (RequestMinimum, 
8220         RequestOptional and RequestRefuse). This is used by the Assembly class
8221         to re-create the corresponding permission sets.
8222
8223 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
8224
8225         * marshal.c: fix the stelemref wrapper to be type correct
8226         (and faster).
8227
8228 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
8229
8230         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
8231         to do key & 0x7fffffff. Hashtable already does this. It just
8232         results in longer code.
8233
8234 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
8235
8236         * appdomain.c: Bump corlib version.
8237         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
8238         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
8239         * reflection.c|h: Add functions to get declarative security infos
8240         (blob position and length) for assemblies, classes and methods.
8241
8242 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
8243
8244         * reflection.c: sort the constant table (bug #70693).
8245
8246 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
8247
8248         * object-internals.h, threads.c, domain.c: add accessors for
8249         the MonoThread and MonoDomain tls keys.
8250
8251 2004-12-18  Martin Baulig  <martin@ximian.com>
8252
8253         * class.c (inflate_generic_type): If we're inflating a generic
8254         instance, set `ngclass->context->container = context->container';
8255         ie. the container we inflated into.
8256
8257         * metadata.c (mono_metadata_parse_generic_param): Reflect above
8258         inflate_generic_type() changes.
8259
8260 2004-12-17  Martin Baulig  <martin@ximian.com>
8261
8262         * class-internals.h
8263         (MonoGenericClass): Replaced `MonoType *generic_type' with
8264         `MonoClass *generic_class'.  Removed `dynamic_info'; if
8265         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
8266         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
8267
8268 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
8269
8270         * exception.c (mono_exception_from_token): New helper function.
8271
8272 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
8273
8274         * assembly.c (mono_assembly_load_with_partial_name): Call 
8275         mono_assembly_loaded before invoking the preload hooks. Fixes
8276         #70564.
8277
8278         * object-internals.h (MonoThread): Change culture_info and 
8279         ui_culture_info into an array.
8280
8281         * threads.c: Cache culture info objects from more than one appdomain.
8282
8283         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
8284         current UI culture.
8285
8286 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
8287
8288         * threads.h threads.c appdomain.c: Clear the culture_info field of
8289         all threads during unloading if they point to an object in the dying
8290         appdomain.
8291
8292 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
8293
8294         * culture-info.h (TextInfoEntry): New struct
8295         * object-internals.h: sync with managed
8296         * locales.c: fill the `text_info_data' field
8297         * culture-info-tables.h: update
8298
8299 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8300
8301         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
8302         collector.
8303
8304 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
8305
8306         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
8307         (ves_icall_ModuleBuilder_getMethodToken): Ditto
8308
8309 2004-12-12  Martin Baulig  <martin@ximian.com>
8310
8311         * mono-debug-debugger.c (write_type): If we're an enum and the
8312         builtin types have already been initialized, call mono_class_init().
8313
8314 2004-12-11  Martin Baulig  <martin@ximian.com>
8315
8316         * metadata.c (mono_metadata_load_generic_params): Added
8317         `MonoGenericContainer *parent_container' argument; automatically
8318         compute `container->is_method'; pass the correct owner to
8319         get_constraints().      
8320
8321         * reflection.c (compare_genericparam): Sort the GenericParam table
8322         according to increasing owners. 
8323
8324 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
8325
8326         * profiler.c: allow disabling the default profiler.
8327
8328 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
8329
8330         * decimal.c, icall.c: allow disabling System.Decimal support.
8331
8332 2004-12-09  Marek Safar <marek.safar@seznam.cz>
8333
8334         * reflection.c: Add support for null attribute arguments.
8335
8336 2004-12-09  Martin Baulig  <martin@ximian.com>
8337
8338         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
8339         names to get rid of compiler warnings.
8340
8341 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8342
8343         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
8344         mono_marshal_load_type_info (). Fixes #69625.
8345         (mono_marshal_get_ptr_to_struct): Likewise.
8346
8347 2004-12-08  Martin Baulig  <martin@ximian.com>
8348
8349         * mono-debug.h: Bumped version number to 47.
8350
8351         * mono-debug-debugger.c
8352         (mono_debugger_event_handler, mono_debugger_event): Take two
8353         guint64 arguments insteed of a gpointer and a guint32.  
8354
8355 2004-12-08  Martin Baulig  <martin@ximian.com>
8356
8357         * debug-mono-symfile.h
8358         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
8359         `address' to `native_offset'.
8360
8361 2004-12-08  Martin Baulig  <martin@ximian.com>
8362
8363         * class.c (mono_class_create_from_typespec): Only inflate if we
8364         either have `context->gclass' or `context->gmethod'.
8365
8366 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8367
8368         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
8369
8370         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
8371
8372         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
8373
8374         * reflection.c (mono_assembly_get_object): Remove the workaround put
8375         in for the release.
8376         
8377         * appdomain.c: Use the corlib_internal field from MonoAssembly.
8378
8379         * appdomain.c: Bump corlib version.
8380
8381         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
8382         be visible in other appdomains.
8383
8384 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
8385
8386         * threads.c: Interlocked inc and dec for longs were messed up,
8387         use a KISS based impl for this. Fixes 70234
8388
8389 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
8390
8391         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
8392
8393 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
8394
8395         * icall.c: fix to follow policy not to allow struct
8396         arguments in icalls.
8397
8398 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8399
8400         * process.c: make the patch that handles spaces in file paths work
8401         on mono/windows too.
8402
8403 2004-12-06  Martin Baulig  <martin@ximian.com>
8404
8405         * class.c (mono_class_create_generic): Call
8406         mono_class_setup_supertypes() if we're dynamic.
8407         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
8408
8409 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
8410
8411         * object-internals.h: Add new fields to MonoThread.
8412
8413         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8414
8415         * icall.c threads-types.h threads.c: Add new icalls.
8416
8417         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
8418
8419         * object-internals.h (MonoReflectionAssembly): Sync object layout with
8420         managed side.
8421
8422         * appdomain.c: Bump corlib version.
8423
8424         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
8425         internal assemblies. Fixes #69181.
8426
8427 2004-12-05  Martin Baulig  <martin@ximian.com>
8428
8429         * class.c (mono_class_inflate_generic_signature): Make this a
8430         no-op if `context' is NULL or we don't have any type parameters;
8431         also copy `sentinelpos'.        
8432
8433 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
8434
8435         * image.c: Add unbox_wrapper_cache.
8436
8437         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
8438
8439         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
8440         function generator.
8441         
8442         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
8443         Fixes #70173.
8444
8445         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
8446         
8447 2004-12-04  Martin Baulig  <martin@ximian.com>
8448
8449         * loader.c (mono_method_get_signature_full): New public function;
8450         like mono_method_get_signature(), but with an additional
8451         `MonoGenericContext *' argument.
8452
8453         * class.c (mono_class_inflate_generic_signature): Formerly known
8454         as inflate_generic_signature(); make this public.
8455
8456 2004-12-04  Martin Baulig  <martin@ximian.com>
8457
8458         * metadata.c
8459         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
8460         instead of a `MonoGenericContainer *'.  
8461         (mono_metadata_parse_array_full): Likewise.
8462         (mono_metadata_parse_signature_full): Likewise.
8463         (mono_metadata_parse_method_signature_full): Likewise.
8464         (mono_metadata_parse_generic_inst): Likewise.
8465         (mono_metadata_parse_generic_param): Likewise.
8466         (mono_metadata_parse_mh_full): Likewise.
8467         (mono_type_create_from_typespec_full): Likewise.
8468
8469 2004-12-03  Martin Baulig  <martin@ximian.com>
8470
8471         * class-internals.h (MonoGenericContainer): Replaced the
8472         `MonoGenericContext * pointer with a `MonoGenericContext'
8473         structure and made it the first element.
8474
8475 2004-12-03  Martin Baulig  <martin@ximian.com>
8476
8477         * class.c
8478         (inflate_generic_type): Set the `context->container' when creating
8479         a new MonoGenericContext.
8480         (mono_class_inflate_generic_method): Likewise.
8481         (mono_class_create_from_typespec): Just use `context->container'
8482         to get the container.
8483
8484         * loader.c (method_from_methodspec): Set `context->parent' from
8485         `context->container' - and if that's a method container, use its
8486         parent.  Also set the `context->container' when creating a new
8487         MonoGenericContext.
8488         (mono_get_method_from_token): Use just `context->container' to get
8489         the container.
8490
8491         * metadata.c (do_mono_metadata_parse_generic_class): Also set
8492         `gclass->context->container'.
8493
8494         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8495         the `context->container' when creating a new MonoGenericContext.
8496
8497 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
8498
8499         * reflection.c (compare_genericparam): Sort params with identical
8500         owner by their number. Fixes gen-111 on sparc.
8501
8502 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8503
8504         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8505         around the domain changes.
8506
8507         * appdomain.c (mono_domain_unload): Handle the case when the thread
8508         calling Unload is itself being aborted during unloading. Fixes #70022.
8509
8510         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8511
8512         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
8513         checkpoint_func as an icall so it gets a wrapper.
8514         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8515         in the cross-appdomain wrappers too.
8516
8517         * threads.c (mono_thread_has_appdomain_ref): Make this public.
8518
8519         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8520
8521         * reflection.c: Fix some memory leaks.
8522         
8523 2004-12-02  Martin Baulig  <martin@ximian.com>
8524
8525         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8526
8527         * metadata.c (generic_class_cache): New static hashtable.
8528         (mono_metadata_lookup_generic_class): New public method.
8529
8530 2004-12-02  Martin Baulig  <martin@ximian.com>
8531
8532         * class.c (mono_class_create_from_typedef): Call
8533         mono_class_setup_parent() and mono_class_create_mono_type() before
8534         parsing the interfaces.
8535
8536 2004-12-02  Martin Baulig  <martin@ximian.com>
8537
8538         * metadata.c (generic_inst_cache): New static hashtable.
8539         (mono_metadata_lookup_generic_inst): New public function.
8540         (mono_metadata_inflate_generic_inst): New public function.
8541         (mono_metadata_parse_generic_inst): New public function.
8542         (do_mono_metadata_parse_generic_class): Use the new
8543         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8544         since this'll also use the cache.
8545
8546         * reflection.c (mono_reflection_bind_generic_method_parameters):
8547         Use mono_metadata_lookup_generic_inst() to use the new cache.
8548
8549         * class.c (inflate_mono_type): Use
8550         mono_metadata_inflate_generic_inst() to inflate a generic
8551         instance; this'll also use the new cache.
8552
8553         * loader.c (method_from_methodspec): Use
8554         mono_metadata_parse_generic_inst() and
8555         mono_metadata_inflate_generic_inst() rather than parsing it
8556         manually, so we can use the new cache.
8557
8558 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8559
8560         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8561         the wait times out.
8562
8563 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8564
8565         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8566         iter->args based on whether parameters are passed in registers (i.e.
8567         MONO_ARCH_REGPARMS is defined)
8568
8569 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8570
8571         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8572         the exception message. Fixes #70070.
8573         (method_from_methodspec): Fix warnings.
8574
8575 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8576
8577         * process.c: (complete_path) return the path quoted
8578
8579 2004-12-01  Martin Baulig  <martin@ximian.com>
8580
8581         * class-internals.h (MonoGenericInst): New structure.
8582         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8583         `is_open' with `MonoGenericInst *inst'.
8584         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8585         `is_open' with `MonoGenericInst *inst'.
8586
8587 2004-11-30  Martin Baulig  <martin@ximian.com>
8588
8589         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8590
8591         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8592         to `generic_class_cache'.
8593
8594         * metadata.c
8595         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8596         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8597         (mono_generic_inst_is_valuetype): Renamed to
8598         mono_generic_class_is_valuetype().
8599
8600         * class-internals.h
8601         (MonoGenericInst): Renamed to MonoGenericClass.
8602         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8603         (MonoClass): Renamed `generic_inst' to `generic_class'.
8604         (MonoGenericContext): Renamed `ginst' to `gclass'.
8605
8606         * object-internals.h
8607         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8608
8609         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8610         mono_reflection_generic_class_initialize().
8611
8612         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8613         now known as "System.Reflection.MonoGenericClass".
8614         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8615
8616 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8617
8618         * class-internals.h: Added a flag field to MonoClass to cache the
8619         declarative security attributes actions associated with the class.
8620         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8621         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8622         applicable to the JITted method.
8623         * reflection.c|h: Added functions to extract (as flags) which security
8624         actions are available (declaratively) for a method, class or assembly.
8625         * metadata.c|h: Added functions to search the declarative security
8626         table in the metadata.
8627         
8628 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8629
8630         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8631         EXPORTEDTYPES are already in the class name cache, so there is no
8632         need to add extra code here to look at them. Just removes a bit of
8633         cruft.
8634
8635         (ves_icall_System_Environment_get_TickCount): No need for #if
8636         WINDOWS. We already have the code in io-layer.
8637
8638 2004-11-28  Martin Baulig  <martin@ximian.com>
8639
8640         * loader.c
8641         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8642         Fixes gen-112.cs.
8643
8644 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8645
8646         * assembly.c (do_mono_assembly_open): Instead of having a
8647         conditional WITH_BUNDLE, incorporate support for bundles here, by
8648         having a global `bundles' variable holding a pointer to the actual
8649         bundles. 
8650
8651         (mono_register_bundled_assemblies): New API call used by the
8652         bundle code. 
8653
8654         See mkbundle.1 for details.
8655         
8656 2004-11-27  Martin Baulig  <martin@ximian.com>
8657
8658         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8659         the vtable for generic methods.
8660
8661 2004-11-26  Martin Baulig  <martin@ximian.com>
8662
8663         * metadata.c
8664         (mono_metadata_generic_method_hash): New public function.
8665         (mono_metadata_generic_method_equal): Likewise.
8666
8667         * class-internals.h
8668         (MonoGenericContainer): Added `GHashTable *method_hash'.
8669
8670         * reflection.c (ReflectionMethodBuilder): Added
8671         `MonoGenericContainer *generic_container'.
8672         (reflection_methodbuilder_to_mono_method): Don't create a new
8673         MonoGenericContainer each time we're called.
8674         (mono_reflection_bind_generic_method_parameters): Use
8675         `container->method_hash' to cache the results so we don't create a
8676         different method if we're called several times with the same
8677         arguments.
8678
8679         * loader.c (method_from_methodspec): Use the new
8680         `container->method_hash' here, too.
8681
8682 2004-11-26  Martin Baulig  <martin@ximian.com>
8683
8684         * class.c (inflate_generic_signature): Correctly compute
8685         `res->has_type_parameters'.
8686         (mono_class_vtable): Use the `has_type_parameters' flag to
8687         determine whether we're a generic method.
8688
8689         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8690
8691 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8692
8693         * object.c (mono_runtime_run_main): Fix a small memory leak.
8694
8695 2004-11-25  Martin Baulig  <martin@ximian.com>
8696
8697         * class.c (set_generic_param_owner): Fixed the loop.
8698
8699 2004-11-25  Martin Baulig  <martin@ximian.com>
8700
8701         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8702         generic methods.
8703
8704 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8705
8706         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8707         names. Fixes #69787.
8708
8709 2004-11-24  Martin Baulig  <martin@ximian.com>
8710
8711         * class.c (mono_class_create_generic_2): If we don't have a
8712         `ginst->parent', inflate `gklass->parent' to get our parent.
8713
8714 2004-11-24  Martin Baulig  <martin@ximian.com>
8715
8716         * reflection.c (compare_genericparam): Correctly sort the
8717         GenericParam table; fixes #69779.
8718
8719 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8720
8721         * reflection.c: When writing a PE file, don't create a huge
8722         buffer in memory. Just write the arrays we have to the file.
8723         This reduces memory usage.
8724
8725         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8726         globally.
8727
8728 2004-11-17  Martin Baulig  <martin@ximian.com>
8729
8730         * class.c (mono_class_init): Don't setup `class->parent' for
8731         dynamic instances; moved this to mono_class_generic_2().
8732         (mono_class_create_generic): Also set `klass->inited' for dynamic
8733         generic instances.
8734         (mono_class_create_generic_2): Don't do anything for dynamic
8735         generic instances.  Set `klass->parent' here and also call
8736         mono_class_setup_parent() here. 
8737
8738         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8739         `MonoType *parent' argument; set `ginst->parent' before calling
8740         mono_class_create_generic_2(), so we set the correct parent.
8741
8742 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8743
8744         * reflection.c: allow getting attributes from ModuleBuilder
8745         (used by ikvm).
8746
8747 2004-11-17  Martin Baulig  <martin@ximian.com>
8748
8749         * class.c (mono_class_create_from_typedef): If a type parameter is
8750         inherited from an outer class, set its owner to that class.
8751
8752 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8753
8754         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8755           for (int*) written size. This fixes bug #69592.
8756
8757 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8758
8759         * icall.c: Added IsAuthenticodePresnet internal call.
8760         * image.c|h: New function that check a MonoImage for an Authenticode
8761         signature in the certificate PE data directory.
8762         * security.c|h: New internal call to ask the runtime if an 
8763         Authenticode signature seems referenced in the PE header.
8764
8765 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8766
8767         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8768
8769         * reflection.c (mono_image_create_pefile): Free the assembly streams
8770         after writing out the assembly file.
8771
8772         * object.c (mono_runtime_run_main): Fix small memory leak.
8773
8774         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8775         property access modifiers. Fixes #69389.
8776
8777 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8778
8779         * domain.c, object.c, object-internals.h, domain-internals.h,
8780         object.h, marshal.c: keep dynamic code info per domain.
8781
8782 2004-11-15  Martin Baulig  <martin@ximian.com>
8783
8784         * class.c (mono_type_get_name_recurse): Put type arguments in
8785         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8786         see bug #68387.
8787
8788 2004-11-15  Martin Baulig  <martin@ximian.com>
8789
8790         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8791         (mono_class_setup_vtable): When computing `the_cname' for a
8792         generic instance, don't include the namespace since we'd otherwise
8793         add it twice.
8794
8795 2004-11-15  Martin Baulig  <martin@ximian.com>
8796
8797         * class.c (mono_class_create_generic): Changed return type to void.
8798         (mono_class_create_generic_2): New public function; setup
8799         `class->method', `class->field' and `class->interfaces' here
8800         instead of in mono_class_init().
8801
8802         * class.h (mono_class_create_generic): Moved to class-internals.h.
8803
8804 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8805
8806         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8807         rather than writing to memory, write to this file. Right now,
8808         we are just writting into a buffer, and copying that. However
8809         we can avoid the buffer later.
8810
8811         (mono_dynamic_stream_reset): new function
8812
8813         * icall.c, object-internals.h: update for the above.
8814
8815 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8816
8817         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8818         have been using gc'd memory. First it is slower, unlikely
8819         the comment in the source code said, secondly, it increases
8820         our footprint to do it in the gc.
8821
8822         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8823         the method so that it does not have to copy to managed code.
8824
8825 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8826
8827         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8828
8829 2004-11-12  Martin Baulig  <martin@localhost>
8830
8831         * reflection.c (mono_image_create_token): Allow generic method
8832         definitions here, since they may appear in an `.override'; see
8833         gen-98/gen-99 for an example.
8834
8835 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8836
8837         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8838         #69365.
8839
8840         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8841         descriptive.
8842
8843 2004-11-11  Martin Baulig  <martin@ximian.com>
8844
8845         * class.c (mono_class_setup_vtable): In an explicit interface
8846         implementation, the method name now includes the arity.
8847
8848 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8849
8850         * object.c (mono_array_full_copy): Fix warning.
8851
8852 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8853
8854         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8855         mono_class_get_method_from_name() instead.
8856         
8857         * class-internals.h: Added two new types of wrappers. 
8858         Added MonoRemotingTarget enum. Added new trampoline function type, which
8859         takes an additional MonoRemotingTarget value as parameter, so it is
8860         possible to request a trampoline for a specific target.
8861         
8862         * class.c: Added new mono_class_get_method_from_name() method.
8863         
8864         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8865         general remoting sinks and one specific for cross domain calls.
8866         
8867         * debug-helpers.c: Added new wrapper names.
8868         
8869         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8870         of a remote class.
8871         
8872         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8873         
8874         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8875         with several other methods (mono_marshal_get_xappdomain_dispatch,
8876         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8877         and others) can generate a fast remoting wrapper for cross domain calls.
8878         More information can be found in docs/remoting.
8879         Other changes: Removed mono_find_method_by_name, and used
8880         mono_class_get_method_from_name instead.
8881         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8882         is stored in the remoting invoke hashtable.
8883         
8884         * marshal.h: published the new method for getting the xdomain wrapper,
8885         and also added a method for getting the adequate wrapper for a given
8886         method and target.
8887         
8888         * object-internals.h, object.c: Added a couple of methods for capying and
8889         cloning arrays.
8890         Modified mono_install_remoting_trampoline, which takes the new remoting
8891         trampoline that has a remoting target as parameter.
8892         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8893         will return the most suitable vtable for the target.
8894         Added mono_remote_class_vtable, which returns the vtable of a remote class
8895         (which can be the normal remoting vtable or the xdomain vtable).
8896         
8897         * threads.c: the xdomain invoke and dispatch wrappers must also be
8898         protected against interruptions.
8899
8900 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8901
8902         * icall.c: use memmove in BlockCopyInternal when the source and
8903         destination arrays are the same.
8904
8905 2004-11-09  Martin Baulig  <martin@ximian.com>
8906
8907         * class-internals.h (MonoGenericContainer): Removed `method' and
8908         `signature', replaced them with `is_method' and `is_signature'
8909         flags.  Added `context'.
8910
8911         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8912         instead of a `MonoGenericContainer *'.
8913
8914         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8915         for dynamic type parameters.
8916         (mono_metadata_load_generic_params): Setup `container->context'.
8917
8918         * reflection.c (mono_reflection_setup_generic_class): Setup
8919         `tb->generic_container->context'.
8920         (do_mono_reflection_bind_generic_parameters): Use
8921         mono_class_inflate_generic_type() to correctly inflate types,
8922         rather than using our own hack just for MONO_TYPE_VAR.
8923
8924 2004-11-09  Martin Baulig  <martin@ximian.com>
8925
8926         * class.c (mono_class_inflate_generic_method): Small fix; don't
8927         crash here.
8928
8929         * icall.c
8930         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8931         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8932         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8933         (ves_icall_Type_BindGenericParameters): Likewise.
8934         (ves_icall_Type_get_IsGenericInstance): Likewise.
8935         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8936         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8937         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8938         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8939
8940 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8941
8942         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8943         assembly versions and public key tokens. Fixes #69113.
8944
8945 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8946
8947         * metadata.c: fix bug introduced with the type cache changes
8948         on 2004-11-06.
8949
8950 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8951
8952         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8953         the MonoClass pointer instead of the token in exception clauses.
8954         * reflection.c: updates for the above and make the code not depend
8955         on the structure of MonoExceptionClause.
8956
8957 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8958
8959         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8960         Add support for dynamic assemblies. Fixes #69114.
8961
8962         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8963
8964 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8965
8966         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8967         since most only those methods use it. the code member of
8968         MonoMethodPInvoke was dead, so that can be removed too. Also,
8969         remove inline_count (again, not used), and move slot so that it
8970         can share bits with some other flags. This saves 8 bytes in the
8971         structure and gives us about 50 kb back for mcs helloworld.cs
8972
8973         * *.[ch]: Do naming changes for the above.
8974
8975         * loader.c (mono_method_get_header): Lazily init the header
8976         on first access.
8977         (mono_get_method_from_token): don't init the header here
8978         (mono_free_method): the header may never be allocated
8979
8980         Overall, this saves 150 kb of unmanaged allocations
8981         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8982         memory at runtime.
8983         
8984         * loader.c, loader.h (mono_method_get_header): new accessor.
8985
8986         * *.[ch]: use the above method. Prepares us to lazily load
8987         the header.
8988
8989         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8990         three warnings, which are actual bugs (see 69206).
8991
8992         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8993         unused. Saves a cool 4 bytes / method.
8994
8995 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8996
8997         * metadata.c (builtin_types): Add types for System.Object here.
8998         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8999         for a class or valuetype from klass->this_arg or klass->byval_arg.
9000
9001         On mcs for a hello world, this gets us down from 21836 MonoType's
9002         to 14560.
9003
9004         (mono_metadata_free_type): Account for the above change.
9005
9006 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
9007
9008         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
9009         exception instead of asserting if name is null.
9010         (ves_icall_System_AppDomain_GetData): Ditto.
9011
9012 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
9013
9014         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
9015         EnumBuilder.
9016
9017         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
9018         Return NULL when the domain does not have entry_assembly set.
9019
9020         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
9021         Add a 'resource_modules' argument.
9022         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
9023
9024         * reflection.c (mono_reflection_create_runtime_class): Move setting
9025         of wastypebuilder here, so mono_get_type_object () returns a MonoType
9026         for enums too.
9027
9028         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
9029         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
9030         Throw an ArgumentNullException if 'ptr' is null.
9031
9032         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
9033         assemblies here. Fixes #69020.
9034
9035 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
9036
9037         * reflection.c (build_compressed_metadata): Fix the previous patch for
9038         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
9039         the stack.
9040
9041 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
9042
9043         * assembly.c (mono_assembly_names_equal): Allow a match if one of
9044         the cultures is false. Fixes #69090.
9045
9046         * reflection.c (build_compressed_metadata): Fix invalid memory read 
9047         detected by valgrind.
9048         
9049         * reflection.c (mono_reflection_get_type): Avoid triggering a 
9050         TypeResolve multiple times for the same type. Fixes #65577.
9051
9052 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
9053
9054         * marshal.c: Avoid using ldftn to call managed functions. It is
9055         much slower than just a call.
9056
9057         * reflection.c (mono_module_get_object): free the basename we
9058         allocate here from glib.
9059         
9060         * reflection.c (ensure_runtime_vtable): make sure to free
9061         overrides.  Also, we were allocating an array of MonoMethod not an
9062         array of MonoMethod*.
9063
9064         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
9065
9066         * image.c (mono_image_close): free image->guid here.
9067
9068 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
9069
9070         * reflection.c: Fix some spec conformance issues with the PE file
9071         structures so mcs compiled apps run on the Net 2.0 beta.
9072
9073 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
9074
9075         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
9076         Implement this. Fixes #67264.
9077
9078         * debug-helpers.h debug-helpers.c marshal.c: Move 
9079         mono_find_method_by_name to debug-helpers.c.
9080
9081 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
9082
9083         * object.c (mono_release_type_locks): type_initialization_hash is
9084         a GHashTable.
9085
9086         * reflection.c object.c object-internals.h: Fix warnings.
9087
9088         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
9089         without accessors. Fixes #61561.
9090
9091         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
9092         application base from the root domain if not set. Fixes #65641.
9093         (mono_runtime_init): Fix warning.
9094
9095 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9096
9097         * appdomain.c: call mono_thread_pool_init.
9098         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
9099         of worker threads based on the number of CPUs and the environment
9100         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
9101         for non-windows (windows) systems.
9102
9103 2004-10-27  Chris Toshok  <toshok@ximian.com>
9104
9105         * mono-debug-debugger.c (write_class): don't call mono_class_init
9106         here, as even with the check for (!klass->init_pending), we get
9107         into a situation where we're hitting cycles in class
9108         initialization.  Fixes #68816.
9109
9110 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
9111
9112         * image.c: Avoid overwriting values in the loaded_images_hash when an
9113         assembly is loaded multiple times. Fixes #61152.
9114
9115         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
9116         so multiple satellite assemblies for the same name can be loaded.
9117         Fixes #68259.
9118
9119         * mono_domain_assembly_preload: Actually return the loaded assembly, 
9120         not NULL.
9121
9122         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
9123         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
9124
9125         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
9126         pending finalizers are not invoked after the appdomain has been 
9127         unloaded. Fixes #67862.
9128
9129 2004-10-22  Martin Baulig  <martin@ximian.com>
9130
9131         * mono-debug-debugger.c
9132         (mono_debugger_runtime_invoke): Don't box valuetypes.
9133
9134 2004-10-22  Chris Toshok  <toshok@ximian.com>
9135
9136         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
9137         don't hide private methods.
9138
9139 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
9140
9141         * icall.c: Allows the runtime to "share" (when known) the public key
9142         token of an assembly. This avoid the need to recalculate the token 
9143         (from the public key) in managed code.
9144
9145 2004-10-21  Chris Toshok  <toshok@ximian.com>
9146
9147         * debug-helpers.c (append_class_name): argh, revert last patch.
9148         
9149 2004-10-21  Chris Toshok  <toshok@ximian.com>
9150
9151         * debug-helpers.c (append_class_name): use '+' as the delimiter,
9152         not '/', so that it matches what the debugger uses to look up
9153         methods.
9154
9155 2004-10-21  Martin Baulig  <martin@ximian.com>
9156
9157         * mono-debug-debugger.c (mono_debugger_throw_exception): New
9158         public method; this is called each time an exception is thrown and
9159         allows the debugger to use exception catch points.
9160
9161 2004-10-21  Martin Baulig  <martin@ximian.com>
9162
9163         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
9164         the stack pointer and the exception object in some struct and pass
9165         that to the debugger.
9166
9167 2004-10-21  Chris Toshok  <toshok@ximian.com>
9168
9169         * mono-debug-debugger.c (do_write_class): add instance/static
9170         event support.  We don't expose "raise" or "other" yet.
9171         (event_is_static): new method.
9172
9173 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
9174
9175         * mono-debug-debugger.c
9176         (mono_debugger_handle_exception): Remove
9177         bogus return value for fussy compilers.
9178
9179 2004-10-20  Martin Baulig  <martin@ximian.com>
9180
9181         * mono-debug-debugger.c
9182         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
9183         (mono_debugger_handled_exception): Likewise.
9184
9185 2004-10-20  Martin Baulig  <martin@ximian.com>
9186
9187         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9188         MONO_DEBUGGER_EVENT_EXCEPTION.
9189
9190         * mono-debug-debugger.c (mono_debugger_handle_exception): New
9191         public function to send the debugger a notification for an
9192         exception and inform it about a catch/finally clause.
9193
9194 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
9195
9196         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
9197         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
9198         fix 2.95 build. 
9199
9200         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
9201
9202 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
9203
9204         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
9205         marshalled as [In,Out]. Fixes #58325.
9206
9207 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
9208
9209         * reflection.c (mono_method_body_get_object): Implement some fields.
9210
9211 2004-10-12  Martin Baulig  <martin@ximian.com>
9212
9213         * reflection.c (mono_reflection_bind_generic_parameters): Small
9214         fix, correctly retrieve our parent from a generic instance.
9215
9216 2004-10-12  Martin Baulig  <martin@ximian.com>
9217
9218         * metadata.c (mono_metadata_generic_param_equal): We always have
9219         an owner.
9220
9221         * class.c
9222         (mono_class_from_generic_parameter): We need to have an owner.
9223         (my_mono_class_from_generic_parameter): Likewise.
9224
9225         * reflection.c (mono_reflection_setup_generic_class): Renamed to
9226         mono_reflection_create_generic_class() and added a new
9227         mono_reflection_setup_generic_class().  
9228         (mono_reflection_initialize_generic_param): If we're a nested
9229         generic type and inherited from the containing class, set our
9230         owner to the outer class.
9231
9232 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
9233
9234         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
9235
9236         * reflection.c (mono_method_body_get_object): New function to create
9237         a MethodBody object.
9238
9239         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
9240
9241 2004-10-11  Martin Baulig  <martin@ximian.com>
9242
9243         * metadata.c (_mono_metadata_type_equal): Renamed to
9244         do_mono_metadata_type_equal() and made static.
9245
9246 2004-10-11  Martin Baulig  <martin@ximian.com>
9247
9248         * appdomain.c: Bump corlib version number to 28.
9249
9250 2004-10-10  Martin Baulig  <martin@ximian.com>
9251
9252         * class-internals.h
9253         (MonoGenericInst): Added `MonoGenericContainer *container'.
9254         (MonoGenericMethod): Likewise.
9255         (MonoGenericContext): Likewise.
9256         (MonoGenericParam): Added `MonoGenericContainer *owner'.
9257
9258         * metadata.c
9259         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
9260         (do_mono_metadata_parse_generic_inst): Likewise.
9261         (mono_metadata_parse_type_full): New public method.  This is the actual
9262         mono_metadata_parse_type() implementation - with an additional
9263         `MonoGenericContainer *' argument.
9264         (mono_metadata_parse_array_full): Likewise.
9265         (mono_metadata_parse_signature_full): Likewise.
9266         (mono_metadata_parse_method_signature_full): Likewise.
9267         (mono_metadata_parse_mh_full): Likewise.
9268         (mono_type_create_from_typespec): Likewise.
9269         (mono_metadata_interfaces_from_typedef_full): New public method;
9270         this is similar to the other _full() methods, but we take a
9271         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
9272         (mono_metadata_parse_generic_param): Take an additional
9273         `MonoGenericContainer *' argument and lookup the MonoGenericParam
9274         from that container.
9275         (mono_metadata_generic_param_equal): New static method to compare
9276         two type parameters.
9277         (_mono_metadata_type_equal): New static method; takes an
9278         additional `gboolean signature_only' argument - if true, we don't
9279         compare the owners of generic parameters.
9280         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
9281         with a TRUE argument - do a signature-only comparision.
9282
9283         * loader.c: Use the new _full() methods and pass the
9284         MonoGenericContainer to them.
9285
9286         * object-internals.h (MonoReflectionTypeBuilder): Added
9287         `MonoGenericContainer *generic_container' field.
9288         (MonoReflectionMethodBuilder): Likewise.
9289
9290 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
9291
9292         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
9293         case initial images of dynamic assemblies.
9294
9295         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
9296
9297         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
9298
9299         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
9300         length of event->other array.
9301         (typebuilder_setup_events): Ditto.
9302
9303         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
9304         'assembly_by_name' and add an 'assemblies' list.
9305
9306         * assembly.h assembly.c: Add a new search hook for determining whenever
9307         an assembly is already loaded. Use this instead of searching in the
9308         loaded_assemblies list.
9309
9310         * domain.c appdomain.c: Implement the new search hook so loaded 
9311         assemblies are now scoped by appdomain. Fixes #67727.
9312
9313 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
9314
9315         * threads.c (mono_thread_attach): Initialize synch_lock field so
9316         mono_thread_detach works again.
9317
9318         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
9319         'lib' too. Fixes #63130.
9320
9321 2004-10-06  Jackson Harper  <jackson@ximian.com>
9322
9323         * culture-info-tables.h: regenerated.
9324
9325 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
9326
9327         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
9328         implemented by other interfaces in the result. Fixes #65764.
9329         
9330         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9331         Handle unloadable modules without crashing.
9332
9333         * image.c (load_modules): Revert the previous patch since modules must
9334         have a fixed index inside the array.
9335         
9336         * image.c (load_modules): Don't include native modules in the modules
9337         array.
9338
9339 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
9340
9341         * reflection.h: Add param_defaults field.
9342
9343         * reflection.c: Add support for parameter defaults in dynamic methods.
9344         Fixes #64595.
9345
9346         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
9347         an empty string when a type has no namespace. Fixes #64230.
9348
9349 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
9350
9351         * tabledefs.h: Added "internal" security actions to support non-CAS
9352         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
9353         Note: they do not seems to be used anymore in 2.0 (new metadata format)
9354
9355 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
9356
9357         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
9358         constructor of abstract class. Fixes #61689.
9359
9360 2004-10-04  Martin Baulig  <martin@ximian.com>
9361
9362         * class-internals.h (MonoGenericContainer): New type.
9363         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
9364         `MonoGenericContainer *generic_container'.
9365         (MonoClass): Replaced `gen_params' and `num_gen_params' with
9366         `MonoGenericContainer *generic_container'.
9367
9368         * metadata.c (mono_metadata_load_generic_params): Return a
9369         `MonoGenericContainer *' instead of a `MonoGenericParam *';
9370         removed the `num' argument.
9371
9372 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
9373
9374         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
9375         for dynamic images.
9376
9377         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
9378         machine fields.
9379
9380         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
9381
9382         * reflection.c: Save pe_kind and machine values into the generated
9383         image file.
9384
9385         * appdomain.c: Bump corlib version number.
9386
9387         * object-internals.h: Reorganize layout of LocalBuilder.
9388
9389         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
9390         New helper function.
9391
9392         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
9393         created MonoType for dynamic types. Fixes #66180.
9394
9395 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
9396
9397         * threadpool.c: the ares hashtable needs a critical section around it.
9398         this prevents some nasty segfaults
9399
9400 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
9401
9402         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
9403         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
9404         bug 67324).
9405         
9406 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9407
9408         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
9409         
9410 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
9411
9412         * image.c: Always canonicalize image file names, to avoid loading
9413         the same assembly twice when referenced using a relative path.
9414
9415 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9416
9417         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
9418
9419         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
9420
9421         * marshal.c: Fix warnings.
9422
9423 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
9424
9425         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
9426         attempting to marshal the delegate_trampoline as the method_addr.
9427         This patch has a static hashtable of marshalled delegates so that 
9428         we can map delegate_trampoline addresses back to delegates.  This
9429         allows a delegate passed to managed code to be passed back into native
9430         code.  Fixes #67039
9431
9432 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9433
9434         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
9435
9436         * reflection.c (method_encode_code): Align method headers properly.
9437         Fixes #66025.
9438
9439 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9440
9441         * marshal.c: In the runtime invoke wrapper, reset the abort
9442         exception if it is cached. This avoids the automatic rethrowal of 
9443         the exception after the catch of the wrapper. Also check for pending
9444         interruptions before calling the managed method. This is done using
9445         the new method emit_thread_force_interrupt_checkpoint, since the
9446         normal checkpoint method is ignored when running the invoke wrapper.
9447         * object.c: If the abort exception is rethrown, set the abort_exc
9448         field of the thread, so it will be rethrown aftere every catch.
9449         * threadpool.c: Only run an interruption checkpoint if what has been
9450         requested is a stop of the thread (aborts will be ignored).
9451         * threads.c: By default, a thread will now never be interrumped while
9452         running the runtime invoke wrapper (this ensures that runtime_invoke
9453         will always return to the caller if an exception pointer is provided).
9454         There is a new special method mono_thread_force_interruption_checkpoint()
9455         to force an interruption checkpoint even if running a protected
9456         wrapper, which is used by the same runtime invoke wrapper to do a check
9457         at a safe point.
9458
9459 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9460
9461         * object.c, object-internals.h: Implemented mono_release_type_locks,
9462         which releases the cctor locks held by a thread.
9463         * threads.c, threads.h: In thread_cleanup, release cctor locks held
9464         by a thread. Added mono_thread_exit() method to be used to safely stop
9465         a thread.
9466
9467 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9468
9469         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9470         Move null check before dereference.  Avoid indexing beyond the end
9471         of the 'modules' array.
9472
9473 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9474
9475         * metadata-internals.h (MonoImage): Add module_count field.
9476         * image.c (load_modules): Set image->module_count.
9477         (mono_image_load_file_for_image): Use image->module_count.
9478         * reflection.c (mono_image_load_module): Append to image->modules array 
9479         of dynamic assembly.
9480         (mono_module_get_object): Fix loop to actually increment index.
9481         Use image->module_count.
9482         * assembly.c (mono_assembly_load_references): Use image->module_count.
9483         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9484         Likewise.
9485
9486 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9487
9488         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
9489         Avoid assert on generic types.
9490
9491 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
9492
9493         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9494
9495         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9496
9497         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
9498         function to convert a MarshalSpec structure to its managed counterpart.
9499
9500         * reflection.c: Fix warnings.
9501         
9502         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9503         field.
9504
9505         * icall.c (mono_create_icall_signature): Fix build.
9506
9507 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
9508
9509         * icall.c: Add MakePointType icall.
9510
9511         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9512         warnings.
9513
9514 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9515
9516         * threadpool.c: reuse allocated slots in the queue.
9517
9518 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
9519
9520         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9521
9522         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9523
9524         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9525         previous change.
9526
9527         * tabledefs.h: Add constants for pinvoke attributes BestFit and
9528         ThrowOnUnmappableChar.
9529
9530         * icall.c (ves_icall_Type_GetPacking): New icall.
9531
9532 2004-09-24  Martin Baulig  <martin@ximian.com>
9533
9534         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9535
9536 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9537
9538         * appdomain.c:
9539         (mono_domain_set): allow setting a domain that is being unloaded.
9540         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9541         being unloaded.
9542
9543 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9544
9545         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9546         the GetCustomAttributes icall.
9547
9548 2004-09-23  Martin Baulig  <martin@ximian.com>
9549
9550         * object-internals.h (MonoReflectionGenericParam): Replaced
9551         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9552         with `guint32 attrs'.
9553
9554 2004-09-23  Martin Baulig  <martin@ximian.com>
9555
9556         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9557
9558 2004-09-23  Martin Baulig  <martin@ximian.com>
9559
9560         * object-internals.h (GenericParameterAttributes): New enum.
9561
9562 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9563
9564         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9565         
9566         * class.c (init_events): Fill out event->other field.
9567
9568         * class.c: Fix warnings.
9569
9570         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9571
9572 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9573
9574         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9575         walk which doesn't supply the IL offset.
9576
9577 2004-09-22  Martin Baulig  <martin@ximian.com>
9578
9579         * reflection.c (mono_reflection_setup_internal_class): If we're
9580         System.ValueType, System.Object or System.Enum, set
9581         `klass->instance_size' and create the vtable.
9582         (mono_reflection_create_internal_class): If we're an enum type,
9583         get the base class from our current corlib.
9584
9585 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9586
9587         * reflection.h (MonoResolveTokenError): New type.
9588
9589         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9590         icall.
9591
9592         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9593
9594 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9595
9596         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9597         Support also calling constructors, but only for already allocated objects.
9598
9599 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9600
9601         * reflection.c (type_get_qualified_name): If the klass is null
9602         return the typename to avoid a NullRefEx.
9603         (encode_cattr_value): Get the qualified name of the boxed type,
9604         not the underlying enumtype.  Fixes #62984.
9605
9606 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9607
9608         * marshal.c: Fix problems with previous checkin.
9609
9610 2004-09-21    <vargaz@freemail.hu>
9611
9612         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9613         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9614
9615         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9616
9617 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9618
9619         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9620         should only return a type for pointers, arrays, and passbyref types.
9621         Fixes bug #63841.
9622
9623 2004-09-21  Martin Baulig  <martin@ximian.com>
9624
9625         * domain.c (mono_debugger_check_runtime_version): New public
9626         function.
9627
9628         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9629
9630 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9631
9632         * reflection.c: Added missing sort to the declarative security 
9633         attributes table. MS implementation stops seeing the attributes if the
9634         token number regress in the table (as shown by ildasm and permview).
9635
9636 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9637
9638         * object-internals.h (MonoReflectionModule): Add 'token' field.
9639         
9640         * reflection.c (mono_reflection_get_token): Add support for Module
9641         and Assembly.
9642         (mono_module_get_object): Set 'token' field.
9643         (mono_module_file_get_object): Set 'token' field.
9644
9645         * icall.c: Add new Assembly and Module icalls.
9646
9647         * appdomain.c: Bump corlib version.
9648
9649 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9650
9651         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9652         tokens of metadata objects.
9653
9654         * reflection.h reflection.c (mono_reflection_get_token): New function
9655         to obtain the token of a metadata object.
9656
9657         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9658
9659 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9660
9661         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9662         
9663         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9664
9665 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9666
9667         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9668         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9669         AssemblyBuilder to access the permissions set in the class lib.
9670         * reflection.c: Added security attributes encoding step in 
9671         mono_image_build_metadata.
9672         * tabledefs.h: Added new security actions defined in 2.0:
9673         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9674
9675 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9676
9677         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9678         macro parameter.
9679
9680 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9681  
9682         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9683           finalized. There where random SIGSEVs at program termination, when
9684           an object being finalized was trying to do a string comparison and
9685           the current culture was already finalized.
9686  
9687 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9688
9689         * threads.c: call thread_cleanup before finishing the thread if we get
9690         there.
9691
9692 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9693
9694         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9695         assemblies from the parent. Fixes #65665.
9696
9697 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9698
9699         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9700         modifiers.
9701
9702 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9703
9704         * reflection.h: add prototype for mono_get_dbnull_object
9705         * reflection.c: add prototypes for get_default_param_value_blobs 
9706         and mono_get_object_from_blob for fussier compilers
9707
9708 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9709  
9710         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9711         false deadlock checks in class initialization.
9712  
9713 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9714
9715         * image.c (mono_image_addref): Fix comment.
9716
9717         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9718         possible.
9719
9720 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9721
9722         * reflection.c (mono_param_get_objects): Modified to return
9723         ParameterInfo.DefaultValue object.
9724
9725         (get_default_param_value_blobs):
9726         (mono_get_object_from_blob):
9727         (mono_get_dbnull_object): New helper routines. 
9728
9729         * object.c (mono_get_constant_value_from_blob): New helper routine
9730         carved out from get_default_field_value ()
9731
9732         * object-internals.h (mono_get_constant_value_from_blob): Added
9733         function declaration.
9734
9735 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9736
9737         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9738         referenced assemblies. Fixes #62135.
9739
9740         * exception.h exception.c (mono_get_exception_file_not_found2): New
9741         helper function.
9742
9743 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9744
9745         * class.h class.c: Add mono_type_get_underlying_type ().
9746
9747 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9748
9749         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9750         Fix GetTypes() to support dynamically created assemblies.
9751
9752 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9753
9754         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9755         
9756         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9757         previous patch.
9758
9759         * reflection.h reflection.c loader.c: Allow dynamic construction of
9760         pinvoke methods. Fixes #65571.
9761         
9762         * reflection.c (mono_reflection_get_type): Revert previous change since
9763         it causes regressions.
9764
9765 2004-09-08  Martin Baulig  <martin@ximian.com>
9766
9767         * class.c (class_compute_field_layout): Don't call
9768         mono_class_layout_fields() for open generic instances.
9769
9770 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9771         * threads.c appdomain.c: fix typo in GC macro
9772
9773 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9774
9775         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9776         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9777
9778 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9779
9780         * image.c (mono_image_close): Applied patch from 
9781         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9782         assembly is loaded multiple times from data.
9783         
9784         * image.c (mono_image_open): Fix warning.
9785
9786 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9787
9788         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9789         once. Fixes #58334.
9790         
9791         * reflection.c (mono_reflection_create_runtime_class): Initialize
9792         klass->nested_classes. Fixes #61224.
9793
9794 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9795
9796         * threads.c: sched_yield() on exit, to allow threads to quit.
9797
9798 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9799
9800         * object.c (mono_unhandled_exception): Remove leftover debug code.
9801
9802 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9803
9804         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9805
9806 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9807
9808         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9809         
9810         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9811
9812 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9813
9814         * marshal.c (emit_marshal_array): Null terminate string arrays.
9815         
9816         * marshal.c (raise_auto_layout_exception): Fix warning.
9817
9818         * reflection.c (mono_param_get_objects): Initialize the default value
9819         with DBNull.Value, not null. Fixes #62123.
9820
9821 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9822
9823         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9824         throw an exception with a cute explanation.
9825
9826 2004-09-06  Dick Porter  <dick@ximian.com>
9827
9828         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9829         Close the new process's thread handle, as we don't use it.  The
9830         handle stays around forever otherwise.
9831
9832 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9833
9834         * object.c (arith_overflow): Fix warning.
9835
9836         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9837         calling conventions in method refs. Fixes #65352.
9838
9839         * reflection.c: Fix warnings.
9840
9841 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9842
9843         * icall.c: Add a new icall for Array.Clear
9844
9845 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9846
9847         * object.c: When allocating an array, we have to throw
9848         an overflow exception if any of the lengths are < 0.
9849
9850 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9851
9852         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9853         properly. Also move implementation of string array marshalling to 
9854         managed code. Fixes #42316.
9855
9856 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9857
9858         * assembly.c: provide more information when loading an assembly fails.
9859
9860 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9861
9862         * filewatcher.c: don't expect the development fam package to be
9863         installed.
9864
9865 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9866
9867         * marshal.c: Make a copy of the signature cookie since it will be
9868         freed by the caller.
9869         
9870         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9871
9872         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9873
9874         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9875         marshal specs.
9876
9877         * marshal.c: More refactoring.
9878         
9879         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9880         smaller functions.
9881
9882 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9883
9884         * object.c: In mono_message_invoke, fill the output parameter array after
9885           calling the managed method (it was done before the call). This fixes
9886           bug #59299.
9887
9888 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9889
9890         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9891         as well.
9892
9893 2004-09-02  Martin Baulig  <martin@ximian.com>
9894
9895         * class.c (mono_class_instance_size): Don't allow generic type
9896         definitions or open generic instances.
9897         (mono_class_array_element_size): If we're a value type, call
9898         mono_class_instance_size() on the original class.
9899
9900         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9901         handle generic instances.
9902
9903         * mono-debug-debugger.c (write_type): Handle generic instances
9904         like classes.
9905
9906 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9907
9908         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9909         the allocation request fails. Fixes #65089.
9910
9911         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9912         
9913         * object.c (mono_runtime_free_method): New function to free a dynamic
9914         method.
9915
9916         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9917         delegate trampoline.
9918
9919         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9920         with hasthis as dynamic,
9921
9922         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9923
9924         * domain.c (mono_jit_info_table_remove): New function to remove an
9925         entry from the jit info table.
9926
9927         * class-internals.h (MonoMethod): Add 'dynamic' field.
9928
9929         * loader.c: Fix warnings.
9930
9931 2004-09-01  Martin Baulig  <martin@ximian.com>
9932
9933         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9934         instead of mono_debugger_lock() because the latter one is a no-op
9935         unless running in the debugger.
9936
9937 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9938
9939         * class.c (class_compute_field_layout): Classes with auto-layout or
9940         reference fields are not blittable.
9941         
9942 2004-09-01  Dick Porter  <dick@ximian.com>
9943
9944         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9945         mono_image_get_filename() to get the assembly location.
9946
9947         * icall.c:
9948         * metadata.h: Fix compile warnings
9949
9950 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9951
9952         * class.c (class_compute_field_layout): System.Object is blittable.
9953
9954         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9955         as in/out. Fixes #59909.
9956
9957 2004-09-01  Martin Baulig  <martin@ximian.com>
9958
9959         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9960         mono_metadata_generic_inst_is_valuetype() if we're a generic
9961         instance to check whether our underlying type is a reference type.
9962
9963 2004-09-01  Martin Baulig  <martin@ximian.com>
9964
9965         * metadata.c (mono_type_size): If we're a generic instance, call
9966         mono_class_value_size() for value types.
9967
9968 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9969
9970         * marshal.c: Implement more custom marshalling functionality. Fixes
9971         #64915.
9972
9973 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9974
9975         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9976
9977 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9978
9979         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9980
9981         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9982
9983         * icall.c: Fix some warnings.
9984
9985         * threads.c (abort_appdomain_thread): Fix unref errors.
9986         (mono_thread_current): Fix THREAD_DEBUG define.
9987
9988 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9989
9990         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9991
9992         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9993
9994 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9995
9996         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9997         string arrays.
9998
9999 2004-08-28  Martin Baulig  <martin@ximian.com>
10000
10001         * metadata.c
10002         (mono_metadata_generic_inst_is_valuetype): New public function.
10003
10004         * metadata.h (MONO_TYPE_ISSTRUCT): Call
10005         mono_metadata_generic_inst_is_valuetype() if we're a generic
10006         instance to check whether our underlying type is a valuetype.
10007
10008 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
10009
10010         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
10011         #63768.
10012
10013 2004-08-25  Martin Baulig  <martin@ximian.com>
10014
10015         * loader.c (mono_get_method_from_token): Abstract methods can also
10016         be generic and thus have type parameters.
10017
10018         * metadata-internals.h
10019         (MonoDynamicImage): Added `GPtrArray *gen_params'.
10020
10021         * reflection.c (mono_image_get_generic_param_info): Don't create a
10022         metadata row, just add an entry to the `gen_params' array.
10023         (build_compressed_metadata): Sort the `gen_params' array and then
10024         actually create the metadata.
10025
10026 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10027
10028         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
10029
10030 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
10031
10032         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
10033
10034 2004-08-24  Martin Baulig  <martin@ximian.com>
10035
10036         * class.cs (mono_class_is_subclass_of): Like an interface, a
10037         generic instance also derives from System.Object.
10038
10039 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
10040
10041         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
10042         custom modifiers to be in any order. Fixes #61990.
10043
10044 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
10045
10046         * object.c: Register mono_object_new_fast icall.
10047         
10048         * object.c (mono_class_get_allocation_ftn): Return to calling
10049         mono_object_new_fast, since it seems faster to compute the object 
10050         size in unmanaged code than passing it as a parameter.
10051
10052         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
10053
10054         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
10055         this function with Boehm as the oom handler, so we don't have to check
10056         the result of GC_malloc.
10057
10058         * object.c: Remove checks for oom.
10059
10060         * object.h object.c (mono_class_get_allocation_ftn): New function to
10061         return the icall which can be used to allocate an instance of a given
10062         class. 
10063
10064         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
10065
10066         * class-internals.h: Add 'enabled' field.
10067
10068 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
10069
10070         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
10071
10072 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
10073         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
10074         value 0x0010.
10075
10076 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
10077
10078         * appdomain.c: use the Tls function for appdomain too,
10079         at Zoltan's request. Actually return in mono_context_get
10080
10081         * appdomain.c, profiler.c, threads.c: use __thread
10082
10083 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
10084
10085         * appdomain.c threads.c: Call GC_CreateThread on windows.
10086
10087         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
10088         multiple libraries since this don't work on windows.
10089
10090 2004-08-18  Martin Baulig  <martin@ximian.com>
10091
10092         * class-internals.h
10093         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
10094         MonoMethodHeader.
10095
10096         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
10097         MonoMethodNormal since we also need it for abstract and interface
10098         methods.
10099
10100         * reflection.c
10101         (build_compressed_metadata): Sort the GenericParam table.
10102         (mono_image_create_token): Added `gboolean create_methodspec'
10103         argument; this is false when generating a MethodImpl token.
10104         (reflection_methodbuilder_to_mono_method): Abstract and interface
10105         methods may also have generic parameters.
10106
10107 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
10108
10109         * appdomain.c: thread local alloc
10110
10111 2004-08-17  Martin Baulig  <martin@ximian.com>
10112
10113         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
10114
10115         * icall.c
10116         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
10117         argument.
10118
10119         * class.c (mono_type_get_full_name): New public function.
10120         (mono_type_get_name): Don't include the type arguments.
10121
10122 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
10123
10124         * Makefile.am: Build static versions of libmetadata and libmonoruntime
10125         for inclusion into the mono executable.
10126
10127 2004-08-16  Martin Baulig  <martin@ximian.com>
10128
10129         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
10130         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
10131
10132 2004-08-14  Martin Baulig  <martin@ximian.com>
10133
10134         * class.c (dup_type): Also copy the `byref' field.
10135
10136 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
10137
10138         * reflection.c (create_dynamic_mono_image): Revert the last change 
10139         since it breaks bootstrap.
10140
10141 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
10142
10143         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
10144
10145         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
10146         not free them with g_free.
10147
10148 2004-08-11  Martin Baulig  <martin@ximian.com>
10149
10150         * reflection.c (mono_reflection_setup_internal_class): Also call
10151         mono_class_setup_mono_type() if we already have a `tb->type.type'.
10152
10153 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
10154
10155         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
10156         called during default (first) AppDomain creation. Keep track of
10157         Evidence when loading assemblies.
10158
10159 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10160
10161         * opcodes.c, opcodes.h: reduce runtime relocations.
10162
10163 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
10164
10165         * culture-info.h, locales.c: fixes and chages to sue the new
10166         optimized format of the locale data.
10167         * culture-info-tables.h: regenerated.
10168
10169 2004-08-06  Geoff Norton <gnorton@customerdna.com>
10170         
10171         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
10172
10173 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
10174
10175         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
10176         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
10177         * domain-internals.h: icall declaration.
10178         * icall.c: icall registration.
10179         * object-internals.h: New fields in MonoAssembly for CAS.
10180
10181 2004-08-05  Duncan Mak  <duncan@ximian.com>
10182
10183         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
10184         CEE_LDELEM_ANY.
10185
10186 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10187
10188         * reflection.c: fix to deal with object[] arrays in custom ctors
10189         (bug #62550).
10190
10191 2004-08-05  Martin Baulig  <martin@ximian.com>
10192
10193         * class.c (mono_class_array_element_size): Added support for
10194         generic instances and correctly handle "recursive" types.
10195
10196 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
10197
10198         * assembly.c: Fix warnings.
10199
10200 2004-08-04  Martin Baulig  <martin@ximian.com>
10201
10202         * class.c
10203         (mono_type_get_name_recurse): Added `gboolean include_arity'
10204         argument specifying whether or not we should include the generic
10205         arity in the type name.
10206         (_mono_type_get_name): New static function.
10207         (mono_class_setup_vtable): If we're a generic instance, don't
10208         include the generic arity in the names of explicit method
10209         implementations.        
10210
10211 2004-08-03  Martin Baulig  <martin@ximian.com>
10212
10213         * class.c (mono_type_get_name_recurse): Enclose the generic type
10214         arguments in `<', '>'.
10215
10216 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10217
10218         * gc.c: make GC warning messages use the trace API, they are just
10219         noise to most of the users.
10220
10221 2004-08-03  Martin Baulig  <martin@ximian.com>
10222
10223         * debug-mono-symfile.c (read_string): Correctly read the string.
10224
10225 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
10226
10227         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
10228         
10229         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
10230         icalls.
10231         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
10232
10233 2004-07-30  Martin Baulig  <martin@ximian.com>
10234
10235         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
10236         Reflect latest symbol writer changes.   
10237
10238 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10239
10240         * object.c: always create an object if null is passed
10241         to Invoke() where a valuetype is expected.
10242
10243 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
10244
10245         * marshal.c (mono_marshal_init): make managed
10246         signatures match native ones better for 64bits.
10247
10248 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10249
10250         * appdomain.c: hack to build correctly the private bin path on windows.
10251         Fixes bug #61991.
10252
10253 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
10254
10255         * assembly.c: Load mscorlib from the correct framework directory
10256           (mono/<version>/mscorlib.dll).
10257         * appdomain.h: Added prototypes for new functions.
10258         * internals.h: Added some prototypes.
10259         * domain.c: When initializing the runtime, get from the executable and
10260           the configuration files the runtime version that the app supports.
10261           Added support methods for reading app.exe.config. Added list of versions
10262           supported by the JIT. Added two new methods: mono_init_from_assembly,
10263           which initializes the runtime and determines the required version from
10264           the provided exe file, and mono_init_version, which initializes
10265           the runtime using the provided version.
10266         * icall.c: Get machine.config from version-specific directory.
10267         * reflection.c: When generating an image, embed the version number
10268           of the current runtime.
10269
10270 2004-07-28  Dick Porter  <dick@ximian.com>
10271
10272         * socket-io.c
10273         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
10274         returned sockaddr size before creating the remote address object.
10275         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
10276         61608.
10277
10278 2004-07-28  Dick Porter  <dick@ximian.com>
10279
10280         * locales.c (string_invariant_compare_char): Fix invariant char
10281         compares between upper and lower cases.  Fixes bug 61458.
10282
10283 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
10284         
10285         * marshal.c: actually cache stelem.ref wrappers.
10286         
10287 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
10288
10289         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
10290         sections and remove the mono_cli_rva_map () function.
10291
10292 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10293
10294         * debug-mono-symfile.c: fix one more endianess issue, from a patch
10295         by Geoff Norton (<gnorton@customerdna.com>).
10296
10297 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10298
10299         * class.c: fix class loads for pointer types (typeof(int) !=
10300         typeof(int*)).
10301
10302 2004-07-27  Martin Baulig  <martin@ximian.com>
10303
10304         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
10305         reading the debugging information from an external ".mdb" file.
10306
10307 2004-07-24  Martin Baulig  <martin@ximian.com>
10308
10309         * reflection.c (mono_image_get_type_info): Only write a class
10310         layout entry if we actually have a size or a packing size.
10311
10312 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10313
10314         * reflection.c (type_get_fully_qualified_name): 
10315         insert cast to get type checking of ?: with non-gcc compilers
10316
10317 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10318
10319         * rand.c: use g_getenv for both lookups of
10320         MONO_EGD_SOCKET
10321
10322 2004-07-17  Martin Baulig  <martin@ximian.com>
10323
10324         * reflection.c (mono_reflection_bind_generic_method_parameters):
10325         Set `gmethod->reflection_info'.
10326
10327 2004-07-17  Martin Baulig  <martin@ximian.com>
10328
10329         * class.c (mono_class_create_from_typedef): Insert the newly
10330         created class into the hash table before computing the interfaces
10331         since we could be called recursively.
10332
10333 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
10334
10335         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
10336         function to implement stelem.ref in managed code
10337         * class-internals.h, debug-helpers.c: a new wrapper type
10338         for the above.
10339
10340 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10341
10342         * gc.c: allow GC handles to work even when no GC is compiled in.
10343         Fix part of bug #61134 (GetAddrOfPinnedObject).
10344
10345 2004-07-13  Peter Williams  <peter@newton.cx>
10346  
10347         * process.c (complete_path): Make sure we don't attempt to execute
10348         directories.
10349  
10350 2004-07-12  Geoff Norton <gnorton@customerdna.com>
10351
10352         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
10353           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
10354           and will add/subtract the hour if needed
10355
10356 2004-07-12  Martin Baulig  <martin@ximian.com>
10357
10358         * reflection.c (mono_field_get_object): If we have
10359         `field->generic_info', take the attributes from
10360         `field->generic_info->generic_type'.    
10361
10362 2004-07-12  Martin Baulig  <martin@ximian.com>
10363
10364         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
10365         This function must be called before initializing the runtime.
10366         (mono_debug_init_1): New function; call this after initializing
10367         the runtime, but before loading the assembly.  It tells the
10368         debugger to load corlib and the builtin types.
10369
10370         * mono-debug-debugger.c: Did some larger changes in the debugging
10371         code; support recursive class declarations, make sure we actually
10372         add all classes.
10373
10374 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10375
10376         * debug-helpers.c: undo my previous patch and fixed the real issue in
10377         ../mini/exceptions-x86.c
10378
10379 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10380
10381         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
10382         when no HOME env. variable was set and a NullRef was thrown in a .cctor
10383         called from other .cctors.
10384
10385 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
10386
10387         * loader.c: Removed the mono_loader_wine_init hack now that we are
10388         doing a managed version of Windows.Forms.
10389
10390 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
10391
10392         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
10393         threadpool.c, threads.c: remove static data from rootset.
10394
10395 2004-07-09  Dick Porter  <dick@ximian.com>
10396
10397         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
10398         Don't do any more processing if the matched length was 0.  It was
10399         increasing the size of the string before.  Fixes bug 61167.
10400
10401 2004-07-09  Dick Porter  <dick@ximian.com>
10402
10403         * socket-io.h:
10404         * socket-io.c
10405         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10406         Add support for SO_PEERCRED if its available.
10407
10408 2004-07-09  Peter Bartok <pbartok@novell.com>
10409         * loader.c: winelib.exe.so error message is now only displayed if
10410         MONO_DEBUG is set. To help us avoid questions when people are trying
10411         out the new Managed.Windows.Forms.
10412
10413 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
10414
10415         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
10416         for isinst and castclass wrappers.
10417
10418         * class-internals.h icall.c: Move registration and lookup of JIT icalls
10419         to libmetadata from the JIT, so they could be used by the marshalling
10420         code and the interpreter.
10421
10422         * marshal.c: Register marshalling related JIT icalls here instead of
10423         in mini.c. Use CEE_MONO_ICALL instead of the family of 
10424         CEE_MONO_PROC<x> opcodes to call marshalling functions.
10425
10426         * metadata.h: Remove unneeded marshalling conversions.
10427
10428         * opcodes.c: Update for new opcodes.
10429         
10430 2004-07-08  Martin Baulig  <martin@ximian.com>
10431
10432         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
10433         (mono_debug_get_domain_data): Make this function static.
10434
10435 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10436
10437         * gc.c, object.h: add nice GC handle API for embedders.
10438
10439 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
10440
10441         * reflection.c: more changes for the new api
10442
10443         * object.c: When we reflect on a field w/ a constant value, it
10444         will not have a memory location, so we must access metadata. Also,
10445         allow easier reading of strings so that we can read them from
10446         the constant data.
10447
10448         * class.c (mono_class_layout_fields): no need for literal fields here.
10449
10450         * class-internals.h: api changes for const fields
10451
10452         * icall.c (ves_icall_get_enum_info): use new apis for const fields
10453
10454 2004-07-06  Martin Baulig  <martin@ximian.com>
10455
10456         * mono-debug.h: Increment version number to 44.
10457
10458         * mono-debug.c (mono_debug_add_wrapper): The second argument is
10459         now a gpointer, rewrote this whole method.
10460
10461         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
10462         function.  Add information about the wrapper in a new "misc table".
10463
10464         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
10465         for the new misc table.
10466
10467 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
10468
10469         * metadata-internals.h image.c: Add a cache for helper signatures.
10470
10471         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10472
10473 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
10474
10475         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10476         delegates from a delegate. Fixes #61033.
10477         
10478         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10479         marshalling of stringbuilder arrays. Fixes #59900.
10480
10481 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
10482
10483         * icall.c: Add EnumBuilder:setup_enum_type icall.
10484
10485 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
10486
10487         * icall.c: Added a new icall for the property version of
10488         OffsetOfStringData.
10489
10490 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
10491
10492         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10493         it has a constant size across platforms.
10494
10495         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10496         stack trace.
10497
10498 2004-06-29  Martin Baulig  <martin@ximian.com>
10499
10500         * mono-debug.c (mono_debug_add_method): Protect the whole function
10501         in mono_debugger_lock(), not just parts of it.
10502
10503 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10504
10505         * reflection.c: make sure padding bytes in heaps are zeroed.
10506
10507 2004-06-24  David Waite  <mass@akuma.org>
10508
10509         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10510         image.c, loader.c, locales.c, marshal.c, metadata.c,
10511         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10512         string-icalls.c, threads.c: change to C90-style comments from C99 /
10513         C++ -style
10514
10515 2004-06-24  Dick Porter  <dick@ximian.com>
10516
10517         * threads.c
10518         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10519         return createdNew.  Fixes bug 60412.
10520
10521         * threads-types.h: 
10522         * icall.c: Add createdNew parameter to CreateMutex icall
10523
10524 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10525
10526         * reflection.c, object-internals.h: save default value in params.
10527
10528 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10529
10530         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10531         no need to build a new path combining that with the application base.
10532         Fixes bug #60442.
10533
10534 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10535
10536         * reflection.c: fixed minor standard compliance issues.
10537
10538 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10539
10540         * reflection.c: fixed issue with encoding some custom attributes
10541         (arrays in properties and fields, bug #60411).
10542
10543 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10544
10545         * reflection.c: fix start address when copying the public key token.
10546
10547 2004-06-23  Martin Baulig  <martin@ximian.com>
10548
10549         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10550         the `exc' object in a static object to put it into the GC's root set.
10551
10552 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10553
10554         * reflection.c: make mono_reflection_setup_internal_class ()
10555         callable a second time to setup a new parent class.
10556
10557 2004-06-23  Dick Porter  <dick@ximian.com>
10558
10559         * threads.c: Check for WAIT_IO_COMPLETION return values.
10560
10561 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10562
10563         * appdomain.c: Removed the g_free on the public key token. Now copy 
10564         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10565         * assembly.c: Added public key token string value when loading 
10566         assemblies. Fix bug #60439.
10567         * icall.c: Added missing informations (like public key) in 
10568         GetReferencedAssemblies. Fix #60519.
10569         * image.h: Changed definition for public key token from const char*
10570         public_tok_value to guchar public_key_token [17];
10571         * reflection.c: Updated for changes to public key token.
10572
10573 2004-06-22  Lluis Sanchez Gual
10574
10575         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10576         for the field in base classes.
10577
10578 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10579
10580         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10581         mark headers as not supported, they are installed only for use by the
10582         debugger.
10583
10584 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10585
10586         * *.c, *.h: avoid namespace pollution in public headers.
10587
10588 2004-06-21  Martin Baulig  <martin@ximian.com>
10589
10590         * exception.c (mono_get_exception_security): It's in
10591         "System.Security", not in "System".
10592
10593         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10594         the exception classes.
10595
10596 2004-06-21  Martin Baulig  <martin@ximian.com>
10597
10598         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10599         Protect the exception object from being finalized.
10600
10601 2004-06-21  Martin Baulig  <martin@ximian.com>
10602
10603         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10604         public function.
10605
10606 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10607
10608         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10609         if it was not loaded before. Fix parts of #60439.
10610
10611 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10612
10613         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10614         code that was broken since Ben's change: wrappers are now
10615         dependent on the method signature only again.
10616
10617 2004-06-21  Martin Baulig  <martin@ximian.com>
10618
10619         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10620         added interface support.
10621
10622 2004-06-21  Martin Baulig  <martin@ximian.com>
10623
10624         * class.c (mono_vtable_get_static_field_data): New public method.
10625
10626 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10627
10628         * filewatcher.c : Windows build fix to be compliant with API changes.
10629
10630 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10631
10632         * class.h, class.c: more accessors.
10633         * metadata.h, metadata.c: prepare for hiding MonoType and
10634         MonoMethodSignature: people should use the accessors from now on
10635         outside of the tree.
10636
10637 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10638
10639         * *.c, *.h: more API cleanups.
10640
10641 2004-06-18  Jackson Harper  <jackson@ximian.com>
10642
10643         * assembly.c: Trace loading assemblies.
10644         * loader.c: Trace loading native libraries.
10645         * mono-config.c: Trace loading config files.
10646         
10647 2004-06-18  Dick Porter  <dick@ximian.com>
10648
10649         * locales.c: Tell ICU the lengths of strings, it can cope with
10650         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10651
10652 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10653
10654         * image.c: swapped name/filename;
10655
10656 2004-06-18  Martin Baulig  <martin@ximian.com>
10657
10658         * mono-debug-debugger.c (write_class): Write the parent class at
10659         the end of the header.
10660
10661 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10662
10663         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10664
10665 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10666
10667         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10668         (bundle_obj): New conditional define.
10669         (BUILT_SOURCES): Remove.
10670         ($(bundle_srcs)): Make parallel-make safe.
10671         (libmonoruntime_la_LIBADD): Make unconditional.
10672         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10673         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10674
10675 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10676
10677         * culture-info-tables.h: It was inconsistent with the latest
10678           supp info files.
10679
10680 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10681
10682         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10683         be loaded.
10684
10685         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10686         with gcc 2.95.
10687
10688 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10689
10690         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10691         cleaned up public header threads.h.
10692
10693 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10694
10695         * Makefile.am, *.c, *.h: more API cleanups.
10696
10697 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10698
10699         * Makefile.am: removed monosn from compilation.
10700         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10701         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10702         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10703         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10704         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10705         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10706
10707 2004-06-15  Jackson Harper  <jackson@ximian.com>
10708
10709         * assembly.c: Make locales lower case when searching the GAC for
10710         assemblies. gacutil will always make locales lowercase when
10711         installing so this effectively makes them case insensitive.
10712         
10713 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10714
10715         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10716         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10717           parameter which allows to choose whether the wait can be interrupted or 
10718           not. Also added the method mono_monitor_enter(), which locks the monitor
10719           using an infinite wait and without allowing interruption.
10720           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10721           interrupted.
10722         * object.h: Added new fields in MonoThread. suspend_event holds the event
10723           used to susped/resume the thread. synch_lock is the lock object to use for
10724           modifying the thread state.
10725         * threads.c: Use the new synch_lock object for locking, instead of "this",
10726           which can generate deadlocks.
10727           Moved thread state change in Thread.Sleep and Thread.Join from managed
10728           to unmanaged code. This avoids a deadlock when the thread was suspended
10729           just after acquiring the thread lock.
10730           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10731           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10732           which is not fully implemented in the io-layer.
10733         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10734
10735 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10736
10737         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10738         threads-types.h: more API cleanups.
10739
10740 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10741
10742         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10743         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10744         threadpool.c, threads.c: first pass at the exported API cleanup.
10745
10746 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10747
10748         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10749
10750 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10751
10752         * icall.c: added internalGetHome.
10753
10754 2004-06-14  Dick Porter  <dick@ximian.com>
10755
10756         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10757         possible to return successfully when '.' or '..' were the only
10758         entries in a directory, but were skipped.  The MonoIOStat was not
10759         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10760         Fixes bug 59574.
10761
10762 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10763
10764         * reflection.c: make binaries run on .Net 1.1 by default.
10765
10766 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10767
10768         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10769
10770 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10771
10772         * marshal.c: keep track of struct size with explicit layout
10773         (bug #59979).
10774
10775 2004-06-12  Martin Baulig  <martin@ximian.com>
10776
10777         * mono-debug-debugger.c: Comment out a debugging g_message().
10778
10779 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10780
10781         * reflection.c, reflection.h: do not free custom attrs that are cached.
10782         * icall.c: use braces to make code clearer.
10783
10784 2004-06-11  Martin Baulig  <martin@ximian.com>
10785
10786         * class.h (MonoInflatedField): New type.
10787         (MonoClassField): Replaced `MonoType *generic_type' with
10788         `MonoInflatedField *generic_info'.
10789
10790         * icall.c
10791         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10792
10793 2004-06-11  Martin Baulig  <martin@ximian.com>
10794
10795         * reflection.c (mono_image_create_method_token): Correctly encode
10796         varargs methods.
10797
10798 2004-06-11  Martin Baulig  <martin@ximian.com>
10799
10800         * metadata.c (mono_metadata_parse_method_signature): When parsing
10801         a MethodDef which has VarArgs, also set sentinelpos if we don't
10802         have any parameters.
10803
10804 2004-06-11  Martin Baulig  <martin@ximian.com>
10805
10806         * verify.c (mono_method_verify): In CEE_CALL, use
10807         mono_method_get_signature() to get the method's signature, unless
10808         we're a PInvoke method.
10809
10810 2004-06-10  Jackson Harper  <jackson@ximian.com>
10811
10812         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10813         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10814         logical name as the supplied path is just a prefix to the gac not
10815         the direct path to it.
10816         
10817 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10818
10819         * reflection.c: make the token for a created method match
10820         the token of the MethodBuilder it was created from
10821         (IKVM requires this behaviour now).
10822
10823 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10824
10825         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10826         reflection.c, socket-io.c: leak fixes.
10827
10828 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10829
10830         * icall.c: handle sentinel pos in vararg methods in position different
10831         from 0.
10832
10833 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10834
10835         * culture-info-tables.h: freshly generated.
10836
10837 2004-06-09  Martin Baulig  <martin@ximian.com>
10838
10839         * loader.c (mono_get_method_constrained): Call `mono_class_init
10840         (constrained_class)'.   
10841
10842 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10843
10844         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10845         any methods. Fixes #59629.
10846
10847 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10848
10849         * culture-info-tables.h: reflecting locale-builder updates.
10850
10851 2004-06-08  Dick Porter  <dick@ximian.com>
10852
10853         * object.h:
10854         * locales.c: Fixed compile warnings, including a real bug in
10855         CompareInfo_internal_compare.
10856         
10857 2004-06-08  Dick Porter  <dick@ximian.com>
10858
10859         * locales.c
10860         (ves_icall_System_Globalization_CompareInfo_internal_index):
10861         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10862         Double-check the resuls of usearches, because ICU currently
10863         ignores most of the collator settings here.  Fixes bug 59720.
10864         
10865 2004-06-08  Dick Porter  <dick@ximian.com>
10866
10867         * locales.c
10868         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10869         Fix memory leak and segfault-causing typo.  No idea how this one
10870         lasted so long without being noticed.
10871
10872 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10873
10874         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10875         any methods. Fixes #59629.
10876
10877 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10878
10879         * assembly.c:
10880         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10881         own the critical section before). Removed dead code (that's done
10882         in the preload hook).
10883
10884         (mono_assembly_load_with_partial_name): call the preload hook.
10885
10886 2004-06-08  Martin Baulig  <martin@ximian.com>
10887
10888         * metadata.c (mono_metadata_signature_alloc): Default
10889         `sentinelpos' to -1.
10890
10891         * reflection.c (mono_image_get_array_token): Likewise.
10892
10893 2004-06-08  Martin Baulig  <martin@ximian.com>
10894
10895         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10896
10897         * metadata.c (mono_metadata_parse_method_signature): When parsing
10898         a MethodDef which has VarArgs, set sentinelpos.
10899
10900         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10901         `gint16' since we're using -1 for non-varargs methods.
10902
10903         * reflection.c
10904         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10905         (method_encode_signature): Added varargs support.
10906         (method_builder_encode_signature): Likewise.
10907         (mono_image_get_varargs_method_token): New static method.
10908         (mono_image_create_method_token): New public method; this is
10909         called via an icall instead of mono_image_create_token() when
10910         calling a varargs method.       
10911
10912 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10913
10914         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10915
10916 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10917
10918         * culture-info-tables.h : Reflecting the latest locale-builder that
10919           fixed empty array representation ({} to {0}).
10920
10921 2004-06-07  Jackson Harper  <jackson@ximian.com>
10922
10923         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10924         looking up extra gac paths. This allows MONO_GAC_PATH to act
10925         exactly like a prefix.
10926         
10927 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10928
10929         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10930         type name before modifying it. Fixes #59405.
10931
10932 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10933
10934         * culture-info.h: added fields for "all datetime patterns".
10935         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10936           _construct_datetime_format ()): fill xxx_patterns fields.
10937         * object.h: added fields for "all datetime patterns" to
10938           MonoDateTimeFormatInfo.
10939         * culture-info-tables.h: reflecting locale-builder updates.
10940
10941 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10942
10943         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10944         the event has no add and remove methods. Fixes #59629.
10945
10946 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10947
10948         * object.c: Fixed possible integer overflow when allocating large
10949         strings.
10950
10951 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10952
10953         * culture-info-tables.h: reflecting locale-builder updates.
10954
10955 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10956
10957         * culture-info-tables.h: reflecting locale-builder updates.
10958
10959 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10960
10961         * culture-info-tables.h: reflecting locale-builder updates.
10962
10963 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10964
10965         * threads.c: Made Thread.Sleep abortable.
10966
10967 2004-06-02  Martin Baulig  <martin@ximian.com>
10968
10969         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10970
10971         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10972
10973 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10974
10975         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10976
10977 2004-05-30  Jackson Harper  <jackson@ximian.com>
10978
10979         * reflection.c: Do not hardcode assembly versions or public key
10980         tokens anymore. All of this except the corlib section was dead
10981         code anyways.
10982         
10983 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10984
10985         * object.c (mono_runtime_invoke_array): Automatically create boxed
10986         objects for byref valuetypes if needed. Fixes #59300.
10987         
10988         * object.c (mono_method_return_message_restore): Handle 
10989         MONO_TYPE_OBJECT as well.
10990
10991 2004-05-28  Jackson Harper  <jackson@ximian.com>
10992
10993         * reflection.c: The modified type encoding was causing build
10994         problems. Reverted for now.
10995         
10996 2004-05-28  Jackson Harper  <jackson@ximian.com>
10997
10998         * reflection.c/h: Take an assembly ref so that we dont create
10999         fully qualified names when encoding types in the same assembly as
11000         the custom attribute being emitted.
11001         * appdomain.c: Increment version number.
11002         
11003 2004-05-26  Duncan Mak  <duncan@ximian.com>
11004
11005         * icall.c
11006         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11007         Set the full version number (major, minor, build, revision).
11008
11009 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
11010
11011         * marshal.c (emit_struct_conv): increment src/dst after blit
11012         (mono_marshal_get_managed_wrapper,
11013         mono_marshal_get_native_wrapper): make sure we have marshalling
11014         info before marshalling params (info computation affects
11015         blittable)
11016
11017         * class.c (class_compute_field_layout): correctly deal with
11018         blittable
11019         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
11020         value types (as per what windows dows by default)
11021         (mono_class_setup_mono_type): System.ValueType is blittable
11022         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
11023         blittable
11024
11025         * marshal.c (mono_marshal_load_type_info): flag types  as
11026         non-blittable if the native layout doesn't match the managed
11027         layout
11028
11029 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11030
11031         * appdomain.c: don't add stuff in the private search path that is
11032         above the application base. If application base is not set, there's
11033         no private search path.
11034
11035 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
11036
11037         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
11038         byref struct arguments in native->managed marshalling.
11039
11040 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
11041
11042         * marshal.c (mono_marshal_get_runtime_invoke): correctly
11043         cache methods using signature (special case for methods
11044         that are value type or string class)
11045         
11046         * image.c (mono_image_close): clean up allocated GSList's
11047         in runtime_invoke_cache.
11048
11049 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11050
11051         * mono-config.c: set the correct path for mono_cfg_dir on windows when
11052         there's no MONO_CFG_DIR environment variable defined.
11053
11054 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11055
11056         * threads.c: windows version must be >= 0x0500 to include OpenThread.
11057
11058 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
11059
11060         * threadpool.c: Really wait for 500ms after the async call, even if the wait
11061           is interrumped.
11062         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
11063           before waiting for it, and call CloseHandle after the wait to unref it.
11064           This will make sure that handles are not disposed too early.
11065
11066 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11067
11068         * appdomain.c:
11069         * appdomain.h:
11070         * icall.c: removed
11071         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
11072         needed now.
11073
11074         * object.c: se the application_base only for the domain that runs
11075         Main. Fixes bug #59216,
11076
11077 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11078
11079         * appdomain.c:
11080         * object.c: only the domain in which Main is run have
11081         SetupInformation.ConfigurationFile set, so moved a few lines from
11082         appdomain.c to object.c.
11083
11084 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11085
11086         * appdomain.c: we tried to load [name].(dll|exe), but according
11087         to bug #57710, we must also try [culture]/[name].(dll|exe) and
11088         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
11089         There's a test case attached to bug #58922.
11090
11091 2004-05-27  Dick Porter  <dick@ximian.com>
11092
11093         * icall.c:
11094         * file-io.c: Implemented icalls for locking and unlocking regions
11095         in a file.
11096         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
11097         FALSE on error (fixes both compiler warning and real bug.)
11098
11099 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
11100
11101         * culture-info-tables.h: reflecting locale-builder updates.
11102
11103           (Added missing ChangeLog entry for 05/26)
11104
11105 2004-05-27  Jackson Harper  <jackson@ximian.com>
11106
11107         * locales.c: Fix some cut and paste errors.
11108         
11109 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11110
11111         * mono-config.c: set the correct path for config. directory on windows.
11112
11113 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11114
11115         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
11116           on win32.
11117
11118 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11119
11120         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
11121         from pinvoke functions.
11122         
11123         * marshal.c (mono_ftnptr_to_delegate): Implement this.
11124
11125 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11126
11127         * culture-info-tables.h: reflecting locale-builder updates.
11128
11129 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11130
11131         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
11132         #59086.
11133
11134 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
11135
11136         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
11137         * icall.c: Modified icalls for RNG.
11138         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
11139         Windows (CryptoAPI).
11140
11141 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11142
11143         * locales.c: Fix build.
11144
11145 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11146
11147         * culture-info-tables.h: reflecting locale-builder updates.
11148
11149 2004-05-25  Jackson Harper  <jackson@ximian.com>
11150
11151         * locales.c: When creating the current culture use the $LANGs
11152         specific culture. So DateTimeFormat and NumberFormat entries are created.
11153         
11154 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11155
11156         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
11157         a char array as parameter.
11158
11159 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
11160
11161         * image.c: In mono_image_open(), always use an absolute path name to
11162           look for already loaded images.
11163
11164 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
11165
11166         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
11167         missing in the windows build (like older cygwin include files).
11168
11169 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
11170
11171         * icall.c: Fixed check for possible integer overflow in Buffer_
11172         BlockCopy icall. Replaced comments style // by /* */.
11173
11174 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
11175
11176         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
11177         
11178         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
11179         check after MONO_VTADDR. Fixes pinvoke2.exe.
11180
11181         * marshal.h marshal.c metadata.h: Add beginnings of support for
11182         ftnptr -> delegate marshalling.
11183
11184 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
11185
11186         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
11187         * threads.c: Fix warnings.
11188
11189 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
11190
11191         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
11192         * icall.c: Registered icalls for Suspend and Resume.
11193         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
11194           Thread.Abort.
11195         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
11196         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
11197         * process.c: Use WaitForSingleObjectEx.
11198         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
11199           checkpoints.
11200         * threads.c, threads.h: Make use of new Ex wait methods. Improved
11201           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
11202           for Suspend and Resume. Added new mono_thread_stop, used for stoping
11203           background threads. Added basic support for Abort in Windows.
11204           Start new threads using a managed delegate invoke wrapper. This wrapper
11205           has an interruption checkpoint that is needed since an interruption
11206           can be requested before the thread leaves the unmanaged code that starts 
11207           the thread.
11208         * marshal.c: Added interruption checkpoint after every native call, and
11209           also before managed calls for wrappers called from unmanaged code to
11210           go into managed code.
11211         * object.h: Added new field in MonoThread to keep track of interruption
11212           requests.
11213
11214 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
11215
11216         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
11217         calls.
11218
11219 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11220
11221         * appdomain.c:
11222         * assembly.c:
11223         * gc.c:
11224         * locales.c:
11225         * mono-config.c:
11226         * rand.c: getenv -> g_getenv (windows!)
11227
11228         * process.c: complete_path is also used on non-windows platforms.
11229
11230 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11231
11232         * icall.c: new signature for Process_Start.
11233
11234         * process.[ch]: new signature for Process_Start. If we're on windows
11235         and UseShellExecute is false, we have to search for the program by
11236         ourselves if we don't get a full path.
11237
11238 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
11239
11240         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
11241         marshalling and call CleanUpNativeData if needed. Fixes #58646.
11242
11243 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11244
11245         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
11246         Fixes bug #58373.
11247
11248 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11249
11250         * process.c: use double quotes to quote program name and arguments on
11251         windows. Fixes bug #58575.
11252
11253 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11254
11255         * file-io.c: don't return "." and ".." when using windows Find*File.
11256
11257 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
11258
11259         * marshal.c: Don't pass wrappers to message init because method 
11260         addressed used to lookup metadata. part of remoting[2|3] fix.
11261
11262 2004-05-15  Jackson Harper  <jackson@ximian.com>
11263
11264         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
11265         path is essentially the same as MONO_PATH except that it points to
11266         GACs instead of lib directories.
11267         * loader.h: The user gac is gone so we dont need function to
11268         enable/disable it.
11269         * mono-config.c: user gac option is now gone.
11270         
11271 2004-05-15  Jackson Harper  <jackson@ximian.com>
11272
11273         * culture-info.h: Make defines more consistent, add calendar data
11274         to the culture info table.
11275         * culture-info-tables.h: Add basic calendar data. Basically
11276         everyone gets default gregorian until all the data is
11277         updated.
11278         * locales.c: Use the new consistent defines. Set calendar data for
11279         culture info objects.
11280         * object.h: add a field for calendar data to CultureInfo
11281         
11282 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
11283
11284         * image.c: image->runtime_invoke_cache is keyed on signatures now.
11285         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
11286         a signature.
11287         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
11288         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
11289         an extra param that is the pointer of the method to invoke. The IL for
11290         the invoke method is no longer specific to the method, but to the
11291         signature of the method. Thus, we can share the same code for multiple
11292         methods. This reduces the number of methods that have to be compiled.
11293
11294 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
11295
11296         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
11297
11298         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11299
11300         * icall.c: Optimize Buffer.BlockCopy.
11301
11302 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11303
11304         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
11305         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
11306         quote). Changed them to "MMMM yyyy".
11307
11308 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
11309
11310         * rand.c
11311         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
11312
11313 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
11314
11315         * reflection.h: Updated after changes to managed structures.
11316
11317         * appdomain.c: Bump corlib version.
11318
11319 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11320
11321         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
11322         windows.
11323
11324 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11325
11326         * Makefile.am: link to ../os/libmonoos.la on windows.
11327
11328         * assembly.c:
11329                 -If MONO_DEBUG, warn about non-existing directories in
11330                 MONO_PATH.
11331                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
11332                 compile time variable.
11333                 -Removed init_default_path and call mono_set_rootdir from
11334                 libmonoos.a instead (windows only).
11335
11336         * assembly.h: declare mono_assembly_getrootdir().
11337
11338         * domain.c:
11339         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
11340
11341         * loader.c: s/getenv/g_getenv/
11342
11343 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
11344
11345         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
11346
11347         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
11348
11349         * metadata.h: Add new marshalling conversions.
11350
11351         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
11352         function.
11353
11354         * reflection.c (mono_reflection_get_type): Lookup the type in all
11355         modules of a multi-module assembly. Fixes #58291.
11356
11357 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
11358
11359         * threads.c: Before aborting a background, set the StopRequested
11360         state.  This avoids throwing the Abort exception.
11361         In mono_thread_manage, don't continue with the shutdown until all
11362         aborted threads have actually stopped.
11363
11364 2004-05-10  Jackson Harper  <jackson@ximian.com>
11365
11366         * locales.c: Remove the modifier from culture names.
11367         
11368 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11369
11370         * Makefile.am: monosn is not installed any more. It has been deprecated
11371         in favor of sn.
11372
11373 2004-05-07  Jackson Harper  <jackson@ximian.com>
11374
11375         * locales.c
11376         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
11377         Fix array construction, add bailout if the length is 0.
11378
11379 2004-05-07  Dick Porter  <dick@ximian.com>
11380
11381         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
11382         machine doesn't have a DNS entry.  Patch by Urs Muff
11383         (umuff@quark.com), fixes bug 57928.
11384
11385 2004-05-06  Jackson Harper  <jackson@ximian.com>
11386
11387         * reflection.c: Handle null PublicTokens properly. alloc mem for
11388         assembly names culture so we dont crash when freeing it.
11389         
11390 2004-05-06  Jackson Harper  <jackson@ximian.com>
11391
11392         * assembly.c: Check the usergac when loading with partial names.
11393         
11394 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11395
11396         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
11397         does nothing for now (not required for Linux/Windows) but the class
11398         library can call it (and a newer or modified runtime could need it).
11399         * icall.c: Registred icall.
11400
11401 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11402
11403         * loader.c: prints a message on module loading error we set MONO_DEBUG
11404         environment variable.
11405
11406 2004-05-05  Jackson Harper  <jackson@ximian.com>
11407
11408         * appdomain.c: Handle PublicKeyToken=null properly.
11409         
11410 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11411
11412         * environment.c|h: Added icall ves_icall_System_Environment_
11413         GetOSVersionString to get the current OS version as a string.
11414         * icall.c: Registred icall.
11415
11416 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
11417
11418         * object.c: in mono_object_get_virtual_method(), take into account that
11419         non-virtual methods don't have a slot in the vtable. Check needed when
11420         the object is a proxy.
11421
11422 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
11423
11424         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
11425         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
11426
11427         * object.c (mono_class_compute_gc_descriptor): Fix warning.
11428
11429         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
11430         passed when a valuetype is expected.
11431
11432         * object.c (mono_unhandled_exception): Only set the exit code if the
11433         exception happens in the main thread. Fixes thread5.exe.
11434
11435         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
11436         invalid names. Fixes #58047.
11437
11438 2004-05-03  Jackson Harper  <jackson@ximian.com>
11439
11440         * assembly.c: This line was committed accidently and is unneeded.
11441         
11442 2004-05-03  Jackson Harper  <jackson@ximian.com>
11443
11444         * icall.c: Add new icall for Assembly::LoadWithPartialName
11445         * assembly.c/.h: new function that probes the GAC to load partial
11446         assembly names by Paolo Molaro.
11447         
11448 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11449
11450         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
11451         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
11452         (type_get_fully_qualified_name): Added PublicKeyToken when building a
11453         full type name.
11454
11455 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11456
11457         * appdomain.c: fixed check for 'neutral' culture and removed warning.
11458         * reflection.c: fix bug when parsing a full type name and Version is not
11459         the last thing in the string.
11460
11461 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
11462
11463         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
11464         crashes when it is freed.
11465
11466 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11467
11468         * assembly.c: print the compat warning to stderr.
11469
11470 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
11471
11472         * assembly.c (mono_assembly_load_references): Add a compatibility
11473         hack to run old applications that might be still referencing the
11474         3300-based assemblies, only do this for System.xxx.
11475
11476 2004-05-01  Jackson Harper  <jackson@ximian.com>
11477
11478         * appdomain.c: If the culture is neutral we set it to "".
11479         
11480 2004-04-29  Jackson Harper  <jackson@ximian.com>
11481
11482         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11483
11484 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11485  
11486         * string-icalls.c: added low overhead function for copying chars
11487         * icall.c: added needed icall for the above function
11488  
11489 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11490
11491         * icall.c: fix return value of get_global_assembly_cache.  Implemented
11492         Environment.GetLogicalDrives.
11493
11494 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
11495
11496         * rand.c: try and talk to egd or prngd
11497         for random bytes if opening devices fail.
11498
11499 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
11500
11501         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11502         alignment for the type using the native alignment of its members 
11503         instead of using klass->min_align.
11504
11505         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11506
11507 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11508
11509         * file-io.c:
11510         * socket-io.c: added check for sys/aio.h.
11511
11512 2004-04-28  Dick Porter  <dick@ximian.com>
11513
11514         * threads.c: Don't abort a thread thats already aborting, when
11515         terminating everything.
11516
11517 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11518
11519         * icall.c: added 2 new async calls for Socket.
11520
11521         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11522         IO on *nix systems.
11523
11524         * threadpool.c: removed unused variable.
11525
11526 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
11527
11528         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11529
11530 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11531
11532         * locales.c: put back string_invariant_tolower () and
11533         string_invariant_toupper ().
11534
11535 2004-04-26 David Waite <mass@akuma.org>
11536
11537         * file-io.h:
11538         * socket-io.h:
11539         * threads.h:
11540         * unicode.h: remove comma from end of enumeration declarations
11541
11542 2004-04-26 David Waite <mass@akuma.org>
11543
11544         * debug-mono-symfile.h:
11545         * decimal.c:
11546         * mono_debug.h:
11547         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11548
11549
11550 2004-04-26  Jackson Harper  <jackson@ximian.com>
11551
11552         * appdomain.c: Increment version number.
11553         
11554 2004-04-26  Jackson Harper  <jackson@ximian.com>
11555
11556         * appdomain.c: Set assembly references public token value when
11557         PublicKeyToken is specified, not the hash_value. Free public token
11558         values when free assembly name data. Previously the public key
11559         token was hex decoded, however we are using hex encoded public key
11560         tokens, so this is not neccasary.
11561         * assembly.c: Lookup assemblies in the gac if their public token
11562         value is set. Add function to allow enabling user gac
11563         lookups. Specify whether or not the assembly was loaded from the
11564         GAC. Compare full assembly names when checking the cache for
11565         assemblies (Temporarily disabled see comment in code). Remove
11566         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11567         specifies trace-loader they get extra info to stdout on the
11568         loading of assemblies.
11569         * image.h: Add a field for an assembly references public token
11570         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11571         whether an assembly has been loaded from the GAC.
11572         * image.c: Remove a corlib -> mscorlib name mapping.
11573         * loader.h: Add function to enable/disable the user gac.
11574         * mono-config.c: Check if the usergac is enabled in the config
11575         file.
11576         * icall.c: New icall to determine whether or not an assembly has
11577         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11578         * tabldefs.h: Add constant for assemblyref flag that specifies a
11579         full public key is used instead of a public token.
11580         * reflection.c: Remove mscorlib -> corlib mappings. Set
11581         PublicTokenValue instead of hash value. This value is a hex
11582         string so it does not need to be expanded.
11583
11584 2004-04-26  Martin Baulig  <martin@ximian.com>
11585
11586         * mono-debug-debugger.c (mono_debugger_initialize): Set
11587         `mono_debugger_initialized' before calling mono_debug_lock().
11588
11589 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11590
11591         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11592           InternalToUpper/InternalToLower.
11593         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11594           removed invariant culture shortcut.  This is now done in managed code.
11595         * locales.c: (string_invariant_toupper/tolower) removed.
11596
11597 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11598
11599         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11600         Added Poll internal call.
11601
11602         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11603         call for Poll. Select was too heavy for polling a single socket.
11604
11605         * threadpool.[ch]: added mono_threadpool_cleanup.
11606         * threads.c: use it. Don't use Thread_Abort on windows.
11607
11608 2004-04-23  Martin Baulig  <martin@ximian.com>
11609
11610         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11611
11612 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11613
11614         * icall.c: Registred new icalls for key pair protection and added an
11615         icall for Environment.GetFolderPath on Windows.
11616         * security.c|h: Added new icalls for key pair protection.
11617
11618 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11619
11620         * socket-io.c: don't display the non-supported family warning for known
11621         families. Now this is not displayed on windows when checking support
11622         for IPv4/IPv6.
11623
11624 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11625
11626         * class.c: don't display the layout warning for static fields.
11627
11628 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11629
11630         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11631         * locales.c, locales.h: Added new icalls for culture-specific
11632         Char.ToLower and Char.ToUpper.
11633
11634 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11635
11636         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11637         by David Waite.
11638
11639 2004-04-20  Martin Baulig  <martin@ximian.com>
11640
11641         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11642         of the type name before passing it to mono_reflection_type_from_name().
11643
11644 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11645
11646         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11647         encodings here. Fixes #56965.
11648
11649 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11650
11651         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11652         fix test on strstr result not that I can see anything that
11653         relies on the result.
11654
11655 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11656
11657         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11658         Fixes #57081.
11659
11660         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11661
11662         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11663         function to determine which marshalling to use for strings. Fixes
11664         #56965.
11665
11666         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11667
11668         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11669
11670 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11671
11672         * icall.c: #include mono-config.h
11673
11674 2004-04-15  Jackson Harper  <jackson@ximian.com>
11675
11676         * culture-info-tables.h: Fix date formats for en-US culture.
11677         
11678 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11679
11680         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11681         ThreadPool.SetMinThreads.
11682         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11683         ThreadPool.SetMinThreads.
11684
11685 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11686
11687         * mono-config.c: also load the .config file in the directory
11688         where the assembly was found.
11689
11690 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11691
11692         * assembly.c: load per-assembly config files.
11693         * icall.c: decrapified code to get the config dir and moved to
11694         mono-config.c.
11695         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11696         per-assembly config files. When doing a dll map lookup give precedence
11697         to the per-assembly data.
11698
11699 2004-04-14  Martin Baulig  <martin@ximian.com>
11700
11701         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11702         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11703         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11704
11705         * mono-debugger-debugger.c: While the debugger is locked, remember
11706         whether the symbol tables have changes and send one single
11707         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11708
11709 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11710
11711         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11712
11713         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11714         function.
11715
11716         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11717         account when marshalling string arrays. Fixes #56965.
11718
11719 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11720
11721         * icall.c: Add new icalls mapping for security.
11722         * security.c|h: Add internal calls for WindowsIdentity,
11723         WindowsImpersonationContext and WindowsPrincipal.
11724
11725 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11726
11727         * class.c: Added comment to ensure the System.MonoDummy class
11728         is removed when no longer necessary
11729
11730 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11731
11732         * appdomain.c: Pass arguments to the bootstraping exceptions to
11733         minimize JITed methods at boot
11734
11735         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11736         second string to be null.
11737
11738         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11739         Change the protocol to minimize the JIT methods at startup.  Now
11740         it Returns the internal codepage, if the value of "int_code_page"
11741         is 1 at entry, and we can not compute a suitable code page
11742         number, returns the code page as a string.
11743
11744 2004-04-13  Jackson Harper  <jackson@ximian.com>
11745
11746         * culture-info-tables.h: Fix number of decimal digits for all
11747         english locales.
11748
11749 2004-04-13  Jackson Harper  <jackson@ximian.com>
11750
11751         * icall.c: Clairfy out of sync error message. It is not always
11752         your corlib that is out of sync.
11753
11754 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11755
11756         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11757         properties when only the set accessor is overriden. Fixes #55874.
11758
11759 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11760
11761         * assembly.c (mono_assembly_load_references): Make this thread safe.
11762         Fixes #56327.
11763
11764 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11765
11766         * monosn.c: Add missing initialization calls.
11767
11768 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11769
11770         * locales.c:
11771         ves_icall_System_Globalization_CultureInfo_construct_number_format
11772         Fix g_assert so it compiles on fussier compilers re int/ptr
11773         mismatch
11774
11775 2004-04-08  Dick Porter  <dick@ximian.com>
11776
11777         * socket-io.h:
11778         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11779         53992.  Also rearrange the code so that the internal calls return
11780         an error value and exceptions are thrown from managed code.
11781
11782         * icall.c: Add type info to the socket icalls.
11783
11784 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11785
11786         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11787         owes me a beer.
11788
11789 2004-04-07  Martin Baulig  <martin@ximian.com>
11790
11791         * class.c (mono_class_from_generic_parameter): Don't default
11792         `klass->parent' to `mono_defaults.object_type'.
11793
11794 2004-04-07  Martin Baulig  <martin@ximian.com>
11795
11796         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11797         `param->pklass->reflection_info'.       
11798
11799 2004-04-07  Jackson Harper  <jackson@ximian.com>
11800
11801         * culture-info-tables.h: Fix date separator symbol.
11802         
11803 2004-04-07  Martin Baulig  <martin@ximian.com>
11804
11805         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11806         from System.Type to System.MonoType.
11807
11808 2004-04-07  Martin Baulig  <martin@ximian.com>
11809
11810         * reflection.h
11811         (MonoReflectionGenericParam): Added `has_reference_type' and
11812         `has_value_type' fields.
11813
11814         * reflection.c (mono_image_get_generic_param_info): Encode the
11815         correct flags if we have the `class' or `struct' constraint.
11816
11817 2004-04-07  Martin Baulig  <martin@ximian.com>
11818
11819         * reflection.h
11820         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11821
11822 2004-04-07  Jackson Harper  <jackson@ximian.com>
11823
11824         * appdomain.c: Revert extra patches, just wanted to bump the
11825         version number.
11826         
11827 2004-04-07  Jackson Harper  <jackson@ximian.com>
11828
11829         * Makefile.am: Add culture-info private headers.
11830         * icall.c: Add new icalls for contructing locales.
11831         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11832         * locales.h: Declare new culture info construction methods.
11833         * object.h: Add new fields used to avoid the CultureMap to
11834         MonoCultureInfo.
11835         * culture-info.h: Definition of structs used in the culture info
11836         tables.
11837         * culture-info-tables.h: Autogenerated tables that contain culture
11838         info data. This file was generated with the locale-builder tool.
11839         * appdomain.c: Incement corlib version number.
11840         
11841 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11842
11843         * appdomain.c: (mono_runtime_init) move mono_thread_init
11844         to before mono_object_new calls so critical sections
11845         are initialized before use.
11846
11847 2004-04-07  Martin Baulig  <martin@ximian.com>
11848
11849         * icall.c
11850         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11851         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11852         (ves_icall_MonoGenericParam_initialize): Removed.
11853         (monogenericparam_icalls): Removed.
11854         (generictypeparambuilder_icalls): Added new table for
11855         System.Reflection.Emit.GenericTypeParameterBuilder.
11856
11857         * reflection.c
11858         (mono_reflection_define_generic_parameter): Removed.
11859         (mono_reflection_initialize_generic_parameter): This is now called
11860         from GenericTypeParameterBuilder's .ctor.
11861
11862 2004-04-06  Martin Baulig  <martin@ximian.com>
11863
11864         * class.c (mono_class_init): Don't inflate nested classes in a
11865         generic instance.
11866         (mono_type_get_name_recurse): Include the generic arguments for
11867         generic instances and generic type declarations.
11868         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11869         (_mono_class_get_instantiation_name): Removed.
11870         (mono_class_create_generic): Always use `gklass->name' as our name.
11871
11872         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11873
11874         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11875         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11876         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11877         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11878         closed generic methods here.
11879
11880         * reflection.c
11881         (mono_reflection_generic_inst_get_nested_types): Removed.
11882         (inflate_mono_method): Copy the generic parameters from the
11883         MonoMethodHeader into out MonoGenericMethod.
11884
11885 2004-04-06  Martin Baulig  <martin@ximian.com>
11886
11887         * row-indexes.h
11888         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11889
11890         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11891
11892         * reflection.c (build_compressed_metadata): If we have any entries
11893         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11894         set the header version to 1.1.
11895
11896 2004-04-06  Martin Baulig  <martin@ximian.com>
11897
11898         * class.c (mono_class_init): If we're a generic instance,
11899         initialize our nested classes, too.
11900         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11901         suffix. 
11902
11903 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11904
11905         * process.c: quote the argument passed to the shell on windows.
11906
11907 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11908
11909         * threads.c (mono_alloc_special_static_data): Allow this to be
11910         called during startup.
11911
11912 2004-04-02  Martin Baulig  <martin@ximian.com>
11913
11914         * icall.c
11915         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11916
11917 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11918
11919         * icall.c: Fix build.
11920
11921 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11922
11923         * Makefile.am: Added security.c|h.
11924         * icall.c: Added icall for get_UserName;
11925         * security.c: New file for security related icalls. Added function
11926         get_UserName for System.Environment (fix #56144).
11927         * security.h: New. Header file for security.c
11928
11929 2004-04-02  Dick Porter  <dick@ximian.com>
11930
11931         * icall.c: Deleted the icalls that were obsoleted some time ago
11932         by the ICU string code, and which were mixed into the icall
11933         rearranging.  Fixes bug 55969.
11934
11935         * string-icalls.h: 
11936         * string-icalls.c: Deleted the code that those icalls reference.
11937
11938 2004-04-01  Martin Baulig  <martin@ximian.com>
11939
11940         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11941
11942         * class.c (mono_class_from_generic_parameter): Don't set 
11943         TYPE_ATTRIBUTE_INTERFACE.
11944         (my_mono_class_from_generic_parameter): Likewise.
11945
11946 2004-04-01  Martin Baulig  <martin@ximian.com>
11947
11948         * loader.c (find_method): Added an optional `MonoClass *ic'
11949         argument to search in a specific interface.
11950         (mono_get_method_constrained): New public function.
11951
11952 2004-04-01  Martin Baulig  <martin@ximian.com>
11953
11954         * reflection.c (mono_image_get_generic_field_token): Use the
11955         `handleref' cache here.
11956
11957 2004-04-01  Martin Baulig  <martin@ximian.com>
11958
11959         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11960
11961         * reflection.c (create_generic_typespec): Use the `typespec' hash
11962         here, not the `typeref' one.    
11963
11964 2004-04-01  Martin Baulig  <martin@ximian.com>
11965
11966         * class.c (mono_class_inflate_generic_type): Moved the
11967         functionality into a new static inflate_generic_type() which
11968         returns NULL if it didn't do anything.  Only increment the
11969         `mono_stats.inflated_type_count' if we actually inflated
11970         something.
11971         (mono_class_get_full): Check the classes type to see whether we
11972         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11973
11974 2004-04-01  Jackson Harper  <jackson@ximian.com>
11975
11976         * reflection.c: Set culture for assembly references.
11977         
11978 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11979
11980         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11981
11982 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11983
11984         * assembly.c:
11985         (do_mono_assembly_open): the critical section also covers
11986         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11987
11988 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11989
11990         * threads.c:
11991         (mono_manage_threads): abort the background threads when finishing.
11992         Fixes bug #47232.
11993
11994 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11995
11996         * gc.c: only close the done_event handle if there was no timeout.
11997         C-ified comments.
11998
11999 2004-03-30  Martin Baulig  <martin@ximian.com>
12000
12001         * icall.c (icall_entries): It's called "System.Activator", not
12002         "System.Activation".    
12003
12004 2004-03-30  Martin Baulig  <martin@ximian.com>
12005
12006         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
12007         (mono_class_create_from_typespec): Likewise.
12008
12009 2004-03-30  Martin Baulig  <martin@ximian.com>
12010
12011         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
12012         `has_ctor_constraint' and `initialized'.
12013
12014 2004-03-30  Martin Baulig  <martin@ximian.com>
12015
12016         * reflection.c (encode_new_constraint): New static function to add
12017         the constructor constraint attribute to a type parameter.
12018         (encode_constraints): Call encode_new_constraint() if necessary.
12019
12020         * reflection.h
12021         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
12022
12023         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
12024         
12025 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
12026
12027         * reflection.c, icall.c: add support for pinning variables. 
12028
12029 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
12030
12031         * marshal.c (mono_marshal_get_managed_wrapper):
12032         init bool local with zero rather than null.
12033
12034 2004-03-29  Martin Baulig  <martin@ximian.com>
12035
12036         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
12037         the "official" behavior here.
12038         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
12039
12040 2004-03-29  Martin Baulig  <martin@ximian.com>
12041
12042         * icall.c: Reflect latest API changes.
12043
12044 2004-03-29  Martin Baulig  <martin@ximian.com>
12045
12046         * loader.c (mono_get_method_from_token): Also call
12047         mono_metadata_load_generic_params () for abstract and interface
12048         methods; replace the type arguments in the method signature with
12049         the ones which are loaded from the metadata.
12050
12051 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
12052
12053         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
12054         of the lock is not the current thread. MS.NET don't do it, in spite of
12055         what the documentation says. See bug #56157.
12056
12057 2004-03-28  Martin Baulig  <martin@ximian.com>
12058
12059         * class.c (mono_class_init): Don't call init_properties() and
12060         init_events() for generic instances; set `prop->parent' when
12061         inflating properties.
12062
12063         * reflection.c (mono_generic_inst_get_object): Call
12064         `mono_class_init (ginst->klass)'.
12065         (mono_type_get_object): Only create a MonoGenericInst if your
12066         generic type is a TypeBuilder.
12067         (do_mono_reflection_bind_generic_parameters): Only set
12068         `ginst->is_dynamic' if our generic type is a TypeBuilder.
12069
12070 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
12071
12072         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
12073         Fixes #56091.
12074
12075 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12076
12077         * icall.c: added Kill_internal icall.
12078         * process.[ch]: added Kill_internal icall.
12079
12080 2004-03-25  Martin Baulig  <martin@ximian.com>
12081
12082         * class.h (MonoStats): Added `generic_instance_count',
12083         `inflated_method_count', `inflated_type_count' and
12084         `generics_metadata_size'.       
12085
12086 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12087
12088         * reflection.c: no warnings now.
12089
12090 2004-03-25  Martin Baulig  <martin@ximian.com>
12091
12092         * class.c (mono_class_get_full): New public function; does a
12093         mono_class_get(), but also takes a `MonoGenericContext *'.
12094
12095         * loader.c (mono_field_from_memberref): Renamed to
12096         `field_from_memberref', made static and added `MonoGenericContext *'
12097         argument.
12098         (mono_field_from_token): Added `MonoGenericInst *' argument.
12099         (method_from_memberef): Likewise.
12100         (mono_get_method_from_token): Likewise.
12101         (mono_get_method_full): New public function; does a
12102         mono_get_method(), but also takes a `MonoGenericContext *'.
12103
12104         * verify.c (mono_method_verify): Get the method's generic context
12105         and pass it to mono_field_from_token(), mono_get_method_full() and
12106         mono_class_get_full().
12107
12108 2004-03-25  Martin Baulig  <martin@ximian.com>
12109
12110         * class.c (mono_class_inflate_generic_type): Take a
12111         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
12112         `MonoGenericMethod *'.
12113
12114 2004-03-25  Martin Baulig  <martin@ximian.com>
12115
12116         * loader.h (MonoMethodInflated): Store the MonoGenericContext
12117         instead of the MonoGenericMethod here.
12118
12119 2004-03-25  Martin Baulig  <martin@ximian.com>
12120
12121         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
12122         each time we create a new MonoGenericInst, we also create a new
12123         context which points back to us.
12124
12125         * class.c (inflate_method): Use `ginst->context' instead of
12126         creating a new context.
12127
12128         * loader.c (method_from_memberref): Use
12129         `klass->generic_inst->context' instead of creating a new context.
12130
12131 2004-03-25  Martin Baulig  <martin@ximian.com>
12132
12133         * class.h (MonoGenericContext): New struct.
12134         (MonoGenericMethod): Removed `generic_inst'.
12135
12136         * class.c (mono_class_inflate_generic_method): Take a
12137         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
12138
12139 2004-03-25  Martin Baulig  <martin@ximian.com>
12140
12141         * loader.h (MonoMethodInflated): New typedef.
12142
12143         * metadata.h (MonoMethodSignature): Removed `gen_method', make
12144         `generic_param_count' consume just 30 bits, added `is_inflated'
12145         and `has_type_parameters' flags (one bit each).
12146
12147         * class.c (mono_class_inflate_generic_method): Create a
12148         MonoMethodInflated instead of a MonoMethodNormal and set
12149         `is_inflated' in the method signature.
12150
12151         * class.h (MonoGenericMethod): Removed `generic_method'.
12152
12153 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
12154
12155         * image.c: Make sure the name of a MonoImage is always an absolute path.
12156           This fixes bug #54415.
12157
12158 2004-03-24  Martin Baulig  <martin@ximian.com>
12159
12160         * class.c (mono_class_setup_vtable): If we're a generic instance,
12161         use our generic type's vtable size.
12162
12163 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
12164
12165         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
12166         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
12167         problems.
12168
12169 2004-03-23  Martin Baulig  <martin@ximian.com>
12170
12171         * class.h (MonoDynamicGenericInst): Added `int count_events' and
12172         `MonoEvent *events'.
12173
12174         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
12175         (typebuilder_icalls): Added "get_event_info"; calls
12176         mono_reflection_event_builder_get_event_info(). 
12177
12178         * reflection.c (mono_reflection_generic_inst_initialize): Added
12179         `MonoArray *events'.
12180         (mono_reflection_event_builder_get_event_info): New function.
12181
12182 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
12183
12184         * object.h: add mono_type_initialization_init
12185
12186         * object.c (mono_runtime_class_init): 
12187         implement class constructor synchronization rules
12188         to cope with threading issues.  
12189         add mono_type_initialization_init
12190
12191         * appdomain.c (mono_runtime_init): call 
12192         mono_type_initialization_init
12193
12194         * class.h: removing initializing field from MonoVTable
12195
12196 2004-03-23  Martin Baulig  <martin@ximian.com>
12197
12198         * class.c (my_mono_class_from_generic_parameter): Use
12199         `param->name' if it's not NULL. 
12200
12201 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
12202
12203         * class.c: do not insert non-virtual methods in the vtable.
12204         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
12205         that means the method is non-virtual. This never would have
12206         happened before.
12207
12208 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
12209
12210         * profiler.c: Added lock for accessing coverage_hash.
12211
12212 2004-03-22  Martin Baulig  <martin@ximian.com>
12213
12214         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
12215         `method->method->signature->generic_param_count != 0' to make it
12216         work for interface methods.
12217
12218 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12219
12220         * process.c: quote the string passed to the shell using g_shell_quote.
12221
12222 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12223
12224         * threads.c:
12225         (mono_threads_manage): don't remove the finalizer thread and self
12226         from the threads hash table so that mono_thread_manage can be called
12227         more than once.
12228
12229 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12230
12231         * process.c: quote the arguments when UseShellExecute is true. Fixes
12232         bug #55790.
12233
12234 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12235
12236         * threads.c: set mono_thread_detach as a cleanup routine for every
12237         thread. This way it's always executed upon thread termination, either
12238         aborted or finished normally. No more xsp hangs!
12239
12240 2004-03-17  Martin Baulig  <martin@ximian.com>
12241
12242         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
12243         `int count_nested' and a `MonoType **nested'.
12244
12245         * reflection.c (mono_reflection_bind_generic_parameters): Moved
12246         most of the functionality into a new static
12247         do_mono_reflection_bind_generic_parameters() and don't take a
12248         `MonoType *nested_in' argument any more.  Don't compute nested
12249         types here.
12250         (mono_reflection_generic_inst_get_nested_types): New public method
12251         to get nested types.
12252
12253         * class.c (mono_class_create_generic): Set `klass->nested_in' if
12254         we're a nested class.
12255
12256         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
12257         mono_reflection_generic_inst_get_nested_types() to compute the
12258         nested types.
12259
12260 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12261
12262         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
12263         descriptive error message under windows.
12264         
12265 2004-03-17  Martin Baulig  <martin@ximian.com>
12266
12267         * class.c (dup_type): Added `const MonoType *original' argument;
12268         copy the attrs from the original type.
12269
12270 2004-03-17  Martin Baulig  <martin@ximian.com>
12271
12272         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
12273         `m->generic_inst_cache' here.
12274
12275 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12276
12277         * exception.h exception.c: Add stack_overflow_exception.
12278
12279 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12280
12281         * threadpool.c:
12282         (overlapped_callback): call SetEvent *after* invoking the callback.
12283         No need to call CloseHandle.
12284
12285 2004-03-16  Martin Baulig  <martin@ximian.com>
12286
12287         * reflection.c (mono_image_get_fieldref_token): Take a
12288         `MonoReflectionField *' instead of a `MonoClassField *' and a
12289         `MonoClass *'; store the `MonoReflectionField *' in the hash.
12290
12291 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12292
12293         * appdomain.c: don't add the culture to the filename we're looking for
12294         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
12295
12296 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12297
12298         * locales.c: don't ignore symbols when doing case insensitive compares.
12299         Thanks Dick! Fixes bug #54046.
12300
12301         * threads.c: surround 'threads' usage with enter/leave in
12302         mono_thread_manage.
12303
12304 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
12305
12306         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
12307         implicitly marshalled as [Out]. Fixes #55450.
12308
12309         (mono_marshal_get_runtime_invoke): Zero out the result if there is
12310         an exception.
12311
12312 2004-03-16  Martin Baulig  <martin@ximian.com>
12313
12314         * class.c (mono_class_from_generic_parameter): Use the actual
12315         parameter name. 
12316
12317 2004-03-16  Martin Baulig  <martin@ximian.com>
12318
12319         * reflection.c (type_get_signature_size): New static function.
12320         Compues the size of the type in a method signature.
12321         (method_get_signature_size): New static function; calls
12322         type_get_signature_size() to compute the actual size of the
12323         method's signature.
12324         (method_encode_signature): Use method_get_signature_size() to get
12325         the signature's size rather than using `nparams * 10'.
12326
12327 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12328
12329         * file-io.h: define here WapiOverlapped on windows. I don't want the
12330         regular OVERLAPPED one.
12331
12332         * file-io.c:
12333         * threadpool.c: somehow, BindIoCompletionCallback is not found.
12334         Disabling AIO on windows.
12335
12336 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12337
12338         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
12339         bug #55385.
12340
12341 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12342
12343         * appdomain.c: upgraded corlib version.
12344
12345         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
12346         and BeginWrite. Allow opening files for asynchrnous operations.
12347
12348         * file-io.h: new struct that maps FileStreamAsyncResult.
12349         * icall.c: added new icalls.
12350         * process.[ch]: support setting child process environment variables
12351         and use the SHELL or COMSPEC when UseShellExecute is true.
12352
12353         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
12354         callback for async. IO is here and also BindHandle.
12355
12356         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
12357         from here.
12358
12359 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
12360
12361         * reflection.c (create_custom_attr): Allow len == 0.
12362
12363         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
12364         computation on big-endian machines.
12365
12366 2004-03-13  Martin Baulig  <martin@ximian.com>
12367
12368         * class.h (MonoGenericInst): Added `int count_ifaces'.
12369
12370         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
12371         `ginst->count_ifaces' instead `klass->interface_count' since we
12372         may get called before the vtable is created.
12373
12374         * loader.c (mono_method_get_param_names): If we're a generic
12375         instance, return and don't initialize the class.
12376
12377         * reflection.c (mono_reflection_setup_generic_class): Don't call
12378         ensure_runtime_vtable().
12379         (mono_reflection_bind_generic_parameters): Set
12380         `ginst->count_ifaces'.
12381
12382 2004-03-11  Jackson Harper <jackson@ximian.com>
12383
12384         * icall.c:
12385         * unicode.c:
12386         * unicode.h: Remove unused System.Char icalls.
12387         
12388 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
12389
12390         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
12391         code when we P/Invoke the first library in Windows.Forms, instead
12392         of when we first open the assembly.
12393
12394         * assembly.c: Drop the lookup from here.
12395
12396 2004-03-10  Martin Baulig  <martin@ximian.com>
12397
12398         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
12399         class for properties, fields and events.  Finally fixes #54945.
12400
12401 2004-03-10  Martin Baulig  <martin@ximian.com>
12402
12403         * metadata.c (mono_metadata_class_equal): New static function;
12404         checks whether two generic instances or two generic parameters are
12405         equal.
12406         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
12407         compare classes.        
12408
12409 2004-03-10  Martin Baulig  <martin@ximian.com>
12410
12411         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
12412
12413         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
12414         argument and write it into the `reflection_info' field.
12415
12416         * icall.c
12417         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
12418         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
12419
12420 2004-03-09  Jackson Harper  <jackson@ximian.com>
12421
12422         * char-conversions.h: use 8 bits for numeric data its all we need
12423         * icall.c: numeric data is only 8 bits now.
12424
12425 2004-03-09  Martin Baulig  <martin@ximian.com>
12426
12427         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
12428
12429         * class.c (init_properties, init_events): Initialize the new
12430         `parent' field.
12431
12432         * reflection.c (typebuilder_setup_properties): Likewise.
12433         (typebuilder_setup_events): Likewise.
12434
12435         * reflection.h (MonoEventInfo): Replaced `parent with
12436         `declaring_type' and `reflected_type'.
12437
12438         * icall.c (ves_icall_get_property_info): Distinguish between
12439         declaring and reflected type.
12440         (ves_icall_get_event_info): Likewise.
12441
12442 2004-03-09  Martin Baulig  <martin@ximian.com>
12443
12444         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
12445         (ves_icall_Type_GetField): Correctly set field->klass.
12446
12447 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
12448
12449         * loader.h: Fix warning.
12450
12451 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
12452
12453         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
12454         library routine if present.  Notice that it will still continue
12455         executing even if its missing, for those working on the Gtk#
12456         edition of Windows.Forms.
12457
12458         * assembly.c (do_mono_assembly_open): If loading the
12459         System.Windows.Forms call mono_loader_wini_init.
12460
12461 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
12462
12463         * class.h: Added MonoRemoteClass struct.
12464         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
12465         function for MonoStrings.
12466         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
12467         Added internal call for getting the proxy type.
12468         * marshal.c: Get the type of transparent proxies from its remote_class.
12469         Added methods that generate the IL for type checks and casts:
12470         mono_marshal_get_isinst, mono_marshal_get_castclass, 
12471         mono_marshal_get_proxy_cancast.
12472         * marshal.h: Declaration of the previous new methods.
12473         * object.c: Added new moethods for creating and updating MonoRemoteClass
12474         instances: mono_remote_class, mono_upgrade_remote_class, 
12475         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12476         * verify.c: FIx transparent_proxy_fields layout.
12477         * appdomain.c: Bump corlib version.
12478
12479 2004-03-04  Jackson Harper  <jackson@ximian.com>
12480
12481         * icall.c: Add icall to access char conversion tables.
12482         * char-conversions.h: Character conversion tables.
12483         * Makefile.am: Add char-conversions.h private header file.
12484         
12485 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
12486
12487         * appdomain.c (unload_thread_main): Increase unloading timeout to
12488         10 sec as a temporary workaround for Nant problems.
12489
12490 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
12491
12492         * gc.c: Add checks for GC_enable and GC_disable.
12493
12494         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12495         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
12496         (bug #54988).
12497         
12498 2004-02-27  Martin Baulig  <martin@ximian.com>
12499
12500         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12501         `MonoReflectionType *' instead of a `MonoType *'.
12502
12503 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
12504
12505         * gc.c (run_finalize): Avoid finalizing the object representing the
12506         finalizer thread.
12507         (finalizer_thread): Fix warning.
12508
12509 2004-02-25  Martin Baulig  <martin@ximian.com>
12510
12511         * class.c (_mono_class_get_instantiation_name): Added `int offset'
12512         argument for nested types.
12513         (mono_class_create_generic): Added support for nested generictypes.
12514
12515         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12516         `GList *nested'.
12517
12518         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12519
12520         * reflection.c (method_encode_signature): Increase the minimum
12521         value of `size' from 10 to 11.
12522         (mono_reflection_bind_generic_parameters): Take `int type_argc'
12523         and `MonoType **types' arguments instead of the `MonoArray
12524         *types'; added `MonoType *nested_in'.  Recursively instantiate
12525         nested classes. 
12526
12527 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
12528
12529         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
12530         stack_overflow_ex members which are used by exception handling.
12531
12532         * appdomain.c (mono_runtime_init): Initialize the new members.
12533
12534         * gc.c (mono_gc_enable): New helper function.
12535         * gc.c (mono_gc_disable): New helper function.
12536
12537 2004-02-23  Martin Baulig  <martin@ximian.com>
12538
12539         * icall.c: I must have been really stupid - make it actually work
12540         this time ;-)
12541
12542 2004-02-23  Martin Baulig  <martin@ximian.com>
12543
12544         * loader.c (method_from_memberref): Only inflate the method if
12545         it's in another klass.
12546
12547 2004-02-23  Martin Baulig  <martin@ximian.com>
12548
12549         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12550         (mono_class_init): If we're a generic instance and an interface,
12551         compute `class->interface_id'; also create `class->interfaces'
12552         here and inflate them.
12553
12554         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12555         `ginst->is_open'.
12556         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12557
12558         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12559
12560 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12561
12562         * reflection.c (method_encode_code): Improved the error message
12563         generated by the exception.
12564
12565 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12566
12567         * icall.c: Martin did not do what he said in the ChangeLog for
12568         2004-02-18, but put back the changes for properties and events.
12569         Commenting those changes out again and adding comment to bug #54518.
12570         
12571         * process.c: removed warning.
12572
12573 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12574
12575         * marshal.c (emit_struct_conv): Print an error message instead of
12576         asserting when a type does not have the StructLayout attribute.
12577
12578 2004-02-20  Martin Baulig  <martin@ximian.com>
12579
12580         * reflection.c (mono_type_get_object): Also use the cache for
12581         generic instances.
12582         (mono_reflection_bind_generic_parameters): Always compute
12583         `ginst->ifaces'.        
12584
12585 2004-02-20  Martin Baulig  <martin@ximian.com>
12586
12587         * class.h (MonoGenericMethod): Removed `klass'.
12588
12589         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12590         *klass' argument.
12591
12592 2004-02-20  Martin Baulig  <martin@ximian.com>
12593
12594         * reflection.c (method_encode_methodspec): Actually use the
12595         uninflated signature for the memberref.
12596
12597 2004-02-20  Martin Baulig  <martin@ximian.com>
12598
12599         * class.h (MonoGenericMethod): Removed `declaring'.
12600
12601         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12602         is NULL, compute it here.
12603
12604 2004-02-20  Martin Baulig  <martin@ximian.com>
12605
12606         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12607
12608         * metadata.c (mono_metadata_generic_inst_hash): New method.
12609         (mono_metadata_generic_inst_equal): New method.
12610
12611         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12612         `klass->image->generic_inst_cache' cache to avoid creating
12613         duplicate MonoGenericInst's.
12614
12615         * class.c (mono_class_inflate_generic_type): Use the cache.
12616
12617 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12618
12619         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12620
12621 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12622
12623         * icall.c: added Socket.WSAIoctl icall.
12624
12625         * socket-io.[ch]: implemented
12626         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12627
12628 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12629
12630         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12631
12632 2004-02-18  Urs C Muff  <umuff@quark.com>
12633
12634         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12635         this work on PPC and other big-endian architectures.
12636
12637         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12638         fields with an underscore to make sure they're only accessed by
12639         the read32() macro.
12640
12641 2004-02-18  Martin Baulig  <martin@ximian.com>
12642
12643         * icall.c: Put the klass->refclass changes back for methods and
12644         fields, but not for properties and events.  We're currently not
12645         distinguishing between DeclaringType and ReflectedType for
12646         properties and events, that's what caused the regressions.
12647
12648 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12649
12650         * object.c:
12651         (mono_async_result_new): the handle can be NULL.
12652
12653         * threadpool.c: Use an event instead of a semaphore, don't initialize
12654         it until needed. This saves quite a few semaphores from being created
12655         when using the threadpool.
12656
12657 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12658
12659         * object.c (mono_string_is_interned_lookup): Fix interning of long
12660         strings. Fixes #54473.
12661
12662         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12663
12664         * icall.c: Revert the klass->refclass changes since they introduce
12665         regressions (bug #54518).
12666
12667 2004-02-18  Martin Baulig  <martin@ximian.com>
12668
12669         * class.c (mono_class_init): If we're a generic instance and don't
12670         come from a TypeBuilder, inflate our members here.
12671         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12672         (mono_class_create_generic): New public method.
12673         (mono_class_initialize_generic): Removed.
12674         (get_instantiation_name): Renamed to
12675         _mono_class_get_instantiation_name() and made it public.
12676
12677 2004-02-18  Martin Baulig  <martin@ximian.com>
12678
12679         * class.c (mono_class_inflate_generic_type): Clear the new
12680         instance's `nginst->klass' when inflating a generic instance.
12681         (mono_class_is_subclass_of): Added (basic) support for generic
12682         instances.
12683
12684 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12685
12686         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12687         MonoMempool to hold compiled native code.
12688
12689 2004-02-17  Martin Baulig  <martin@ximian.com>
12690
12691         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12692         `properties'.
12693
12694         * reflection.c (mono_reflection_generic_inst_initialize): Added
12695         `MonoArray *properties' argument.
12696
12697         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12698
12699 2004-02-17  Martin Baulig  <martin@ximian.com>
12700
12701         * icall.c (ves_icall_Type_GetFields): Renamed to
12702         ves_icall_Type_GetFields_internal() and added a
12703         `MonoReflectionType *rtype' argument; pass it to
12704         mono_field_get_object() to set the field's "reflected" type.
12705         (ves_icall_Type_GetConstructors): Likewise.
12706         (ves_icall_Type_GetEvents): Likewise.
12707         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12708         argument; pass it to mono_method_get_object() to set the method's
12709         "reflected" type.       
12710
12711 2004-02-17  Martin Baulig  <martin@ximian.com>
12712
12713         * class.h (MonoDynamicGenericInst): New type.
12714         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12715
12716         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12717         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12718         (ves_icall_MonoGenericInst_GetFields): New interncall.
12719
12720         * class.c (mono_class_from_generic): Don't call
12721         mono_class_initialize_generic() if this is a dynamic instance;
12722         ie. it's being created from a TypeBuilder.
12723         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12724         `class->byval_arg.type'.
12725
12726         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12727         to `inflate_method' and made static.
12728         (mono_reflection_inflate_field): Removed.
12729         (mono_reflection_generic_inst_initialize): New public method.
12730
12731         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12732         `ctors' and `fields'; added `initialized'.
12733
12734 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12735
12736         * debug-helpers.c (mono_method_full_name): Fix output for empty
12737         namespaces.
12738
12739 2004-02-12  Martin Baulig  <martin@ximian.com>
12740
12741         * class.h (MonoClassField): Added `MonoType *generic_type'.
12742
12743         * reflection.c (mono_image_get_fieldref_token): Added support for
12744         instantiated generic types.
12745         (field_encode_inflated_field): Removed.
12746         (mono_image_get_inflated_field_token): Removed.
12747         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12748
12749         * reflection.h (MonoReflectionInflatedField): Removed.
12750
12751 2004-02-12  Martin Baulig  <martin@ximian.com>
12752
12753         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12754         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12755
12756         * reflection.c (mono_image_get_methodspec_token): Take a
12757         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12758         (mono_image_create_token): Check whether we have a
12759         `method->signature->gen_method' and call
12760         mono_image_get_methodspec_token() if appropriate.
12761         (inflated_method_get_object): Removed.
12762         (mono_reflection_bind_generic_method_parameters): Return a
12763         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12764         (mono_reflection_inflate_method_or_ctor): Likewise.
12765
12766         * reflection.h (MonoReflectionInflatedMethod): Removed.
12767
12768 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12769
12770         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12771         for custom valuetype marshalling.
12772
12773         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12774
12775 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12776
12777         * icall.c: fixed WSAGetLastError_internal name.
12778
12779 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12780
12781         * threads.c (mono_thread_attach): Allow this to be called multiple
12782         times for a thread.
12783         
12784         * threads.c (build_wait_tids): Do not wait for ourselves.
12785
12786         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12787         appdomain list is empty.
12788
12789         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12790         memory returned by mono_string_builder_to_utf16, since it points into
12791         managed memory. Thanks to Bernie Solomon for noticing this.
12792
12793         * icall.c: Add AppDomainSetup icalls.
12794
12795         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12796
12797         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12798         types.
12799
12800         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12801         custom attributes to the method_aux struct. Also fix array indexes etc.
12802
12803         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12804         
12805 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12806
12807         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12808         (both static and runtime) and reduce startup time.
12809
12810 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12811
12812         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12813         AsAny marshalling conversion instead of crashing.
12814
12815         * marshal.c: Fix warnings.
12816
12817 2004-02-09  Martin Baulig  <martin@ximian.com>
12818
12819         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12820
12821         * reflection.h (MonoReflectionInflatedMethod): Removed the
12822         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12823
12824         * reflection.c (method_encode_methodspec): Removed the `method'
12825         argument; we get it from `gmethod->declaring'.
12826         (inflated_method_get_object): Removed the `declaring' argument.
12827
12828 2004-02-09  Martin Baulig  <martin@ximian.com>
12829
12830         * class.h (MonoGenericMethod): New type.
12831         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12832         `generic_method'.
12833
12834         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12835         a `MonoGenericMethod *gen_method' one.
12836
12837         * class.c (mono_class_inflate_generic_type): Take an additional
12838         `MonoGenericMethod * argument.  This is only non-NULL if we're
12839         inflating types for a generic method.   
12840         (mono_class_inflate_generic_signature): Renamed to
12841         inflate_generic_signature() and made static; take a
12842         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12843         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12844         instead of a `MonoGenericInst *' one.
12845         (mono_class_inflate_generic_method): Likewise.
12846
12847         * reflection.c (encode_generic_method_sig): Take a
12848         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12849         (method_encode_methodspec): Likewise.
12850         (inflated_method_get_object): Likewise. 
12851
12852         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12853         field with a `MonoGenericMethod *gmethod' one.  
12854
12855 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12856
12857         * class.h (mono_class_has_parent): add parens to expansion
12858         so you can ! this.
12859
12860 2004-02-08  Martin Baulig  <martin@ximian.com>
12861
12862         * image.h (MonoImage): Removed `generics_cache'.
12863
12864         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12865         instead of a `MonoType *' argument; removed the `inflate_methods'
12866         argument.  Don't inflate methods here.
12867
12868         * loader.c (find_method): If it's a generic instance, call
12869         mono_class_init() on the `sclass->generic_inst->generic_type'.
12870
12871         * metadata.c (mono_type_size): Make this work on uninitialized
12872         generic instances; call it on the `ginst->generic_type's class.
12873
12874         * reflection.c (mono_reflection_bind_generic_parameters): Call
12875         mono_class_from_generic() to create the `ginst->klass'.
12876
12877 2004-02-08  Martin Baulig  <martin@ximian.com>
12878
12879         * class.h (MonoClass): Changed type of `generic_inst' from
12880         `MonoType *' to `MonoGenericInst *'.
12881
12882 2004-02-08  Martin Baulig  <martin@ximian.com>
12883
12884         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12885         mono_type_get_object(), this is now creating a `MonoGenericInst'
12886         for MONO_TYPE_GENERICINST.
12887         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12888         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12889
12890         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12891         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12892         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12893         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12894         and reflected type.
12895
12896         * reflection.h (MonoReflectionInflatedMethod): Removed
12897         `declaring_type' and `reflected_type'.
12898
12899 2004-02-08  Martin Baulig  <martin@ximian.com>
12900
12901         * class.h (MonoGenericInst): Added `MonoType *parent' and
12902         `MonoType **ifaces'.
12903
12904         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12905         `parent' and `interfaces'.
12906
12907         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12908         `MonoType *' argument and return a `MonoType *'.
12909
12910         * icall.c
12911         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12912         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12913
12914 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12915
12916         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12917         valuetype marshalling.
12918
12919 2004-02-06  Martin Baulig  <martin@ximian.com>
12920
12921         * class.c
12922         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12923         (my_mono_class_from_generic_parameter): Likewise.
12924
12925 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12926
12927         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12928         contents of the symbol files lazily.
12929
12930         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12931
12932         * threads.h threads.c icall.c: New icalls for getting and setting the
12933         threads name.
12934
12935 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12936
12937         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12938         Raise an exception when the domain is not found.
12939
12940 2004-02-03  Martin Baulig  <martin@ximian.com>
12941
12942         * reflection.c (mono_image_get_methodspec_token): Use the
12943         uninflated signature; fixes gen-33.
12944
12945 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12946
12947         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12948         the finalizer code can use thread functionality.
12949
12950         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12951         the finalizer thread.
12952
12953         * threads.c: Make some functions more robust.
12954
12955         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12956
12957         * metadata.h: Add new marshalling conventions.
12958
12959         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12960         stringbuilder marshalling. Fixes #53700.
12961
12962         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12963
12964         * reflection.c (mono_image_get_type_info): Save declarative security
12965         info.
12966
12967         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12968         unmanaged fields as well.
12969
12970         * appdomain.c: Bump corlib version.
12971
12972 2004-02-01  Martin Baulig  <martin@ximian.com>
12973
12974         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12975         method type arguments.  
12976
12977 2004-01-30  Duncan Mak  <duncan@ximian.com>
12978
12979         * marshal.h: Add prototype for
12980         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12981         and
12982         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12983         fix the build.
12984
12985 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12986
12987         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12988         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12989
12990 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12991
12992         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12993         custom marshalling of valuetypes.
12994
12995         * marshal.c: Fix some warnings.
12996
12997 2004-01-29  Martin Baulig  <martin@ximian.com>
12998
12999         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
13000         for generic method parameters.
13001
13002         * reflection.c (method_encode_methodspec): Write the uninflated
13003         signature into the methodspec table.
13004         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
13005         is always the uninflated method.
13006         (reflection_methodbuilder_to_mono_method): Copy the generic
13007         parameters from the MethodBuilder into `header->gen_params'.
13008
13009 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13010
13011         * class.c (mono_class_from_generic_parameter): Fix warning.
13012
13013 2004-01-27  Martin Baulig  <martin@ximian.com>
13014
13015         * class.c (mono_class_from_generic_parameter): Don't create
13016         `klass->methods' here.  
13017
13018 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
13019
13020         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
13021         extension since it does not work with libraries named lib<FOO>.dll.so.
13022
13023 2004-01-25  Martin Baulig  <martin@ximian.com>
13024
13025         * class.c (mono_class_inflate_generic_type): Added support for
13026         MONO_TYPE_GENERICINST.
13027
13028         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
13029         inflate methods on open constructed types.      
13030
13031 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13032
13033         * object.c: fire ProcessExit event in the root AppDomain after running
13034         Main. Fixes bug #53299.
13035
13036 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
13037
13038         * socket-io.c: include the new socket-wrappers.h header.
13039         Use the wrappers instead of the unix socket functions to make the code
13040         more clear.
13041
13042 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
13043
13044         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
13045
13046         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13047         Fixes #22532.
13048
13049 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
13050
13051         * reflection.c (mono_image_create_pefile): Handle the case when the
13052         entry point is not a MethodBuilder.
13053
13054         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13055         field to ReflectionMethod since it is not allways a builder.
13056
13057         * reflection.c (type_get_fully_qualified_name): New helper function to
13058         return the fully qualified name of a type.
13059
13060         * reflection.c (encode_marshal_blob): Always emit the fully qualified
13061         type name for custom marshallers.
13062
13063         * reflection.c (mono_marshal_spec_from_builder): Ditto.
13064
13065         * class.c (mono_class_setup_vtable): If a parent class already 
13066         implements an interface, use the implementing methods from that class.
13067         Fixes #53148.
13068
13069 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13070
13071         * threadpool.c: just return instead of ExitThread to allow for thread
13072         clean up earlier.
13073
13074 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
13075
13076         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
13077         when closing resource modules.
13078
13079         * reflection.c (mono_image_create_pefile): Handle the case when the
13080         entry point is not a MethodBuilder.
13081
13082         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13083         field to ReflectionMethod since it is not allways a builder.
13084
13085 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13086
13087         * marshal.c (mono_marshal_get_managed_wrapper): 
13088         mono_marshal_alloc takes native int so CONV_I
13089         the arg for 64bits.
13090
13091 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
13092
13093         * reflection.c (fixup_cattrs): New function to fixup the methoddef
13094         tokens in the cattr table. Fixes #53108.
13095
13096 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13097
13098         * loader.c: don't trim ".dll" before looking up in the config file.
13099         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
13100
13101 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
13102
13103         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
13104         Return the module which contains the resource as well.
13105         (ves_icall_System_Reflection_Module_Close): New icall.
13106
13107         * appdomain.c: Bump corlib version number.
13108
13109         * image.c (mono_image_addref): New public function.
13110
13111         * assembly.c: Call mono_image_addref.
13112
13113         * reflection.c (mono_module_get_object): Increase reference count of 
13114         the image.
13115
13116         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13117         Fixes #22532.
13118
13119         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
13120         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
13121         proper exceptions on DllImport problems.
13122
13123 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
13124
13125         * class.c, metadata.c: eliminate CSIZE macro.
13126
13127 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
13128
13129         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
13130         * object.h: Added async_callback field in MonoAsyncResult.
13131         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
13132         * verify.c: Added async_callback in MonoAsyncResult layout.
13133
13134 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
13135
13136         * reflection.c (mono_reflection_get_custom_attrs): Add support
13137         for Modules.
13138
13139 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13140
13141         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
13142         marshalling.
13143         (mono_marshal_method_from_wrapper): Add null pointer check.
13144
13145 2004-01-16  Martin Baulig  <martin@ximian.com>
13146
13147         * debug-mono-symfile.h: Set version number to 36 and reflect
13148         latest symbol writer changes.
13149
13150 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13151
13152         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
13153         multi-dimensional arrays.
13154         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
13155         (mono_class_from_mono_type): Use bounded_array_class_get.
13156         
13157         * class.c (mono_bounded_array_class_get): New function which takes
13158         a 'bounded' bool argument to distinguish vectors from one dimensional
13159         arrays.
13160
13161         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
13162         bounded_array_class_get if the array has bounds.
13163
13164         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13165         Search modules loaded using AssemblyBuilder:AddModule as well.
13166
13167 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13168
13169         * appdomain.c: increased corlib version.
13170         * filewatcher.c: removed g_print.
13171         * icall.c:
13172         (get_property_info): only allocate what is actually requested.
13173         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
13174
13175 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13176
13177         * Makefile.am: added filewatcher.[ch]
13178         * filewatcher.[ch]: FileSystemWatcher runtime support.
13179         * icall.c: added new FSW icalls.
13180
13181 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
13182
13183         * string-icalls.c: fix stringbuilder regression as suggested by
13184         Iain McCoy <iain@mccoy.id.au>.
13185
13186 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
13187
13188         * process.c (process_read_stringtable_block): Recognize '007f' as
13189         a language neutral stringtable block.
13190
13191 2004-01-12  Patrik Torstensson
13192
13193         * object.h (MonoStringBuilder) : Changed layout to support our
13194         new stringbuilder class.
13195         * marshal.c: Change marshalling to support the new layout of 
13196         string builder.
13197         * appdomain.c: increased version number because new layout of
13198         string builder.
13199
13200 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
13201
13202         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
13203         assembly name as an string instead of an AssemblyName, since it is
13204         easier to extract info from it.
13205
13206         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
13207         the culture subdirectories too. Fixes #52231.
13208
13209 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13210
13211         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
13212         It takes 2 new parameters with an optional name for the method to look
13213         for and case ignoring info.
13214
13215         * threadpool.c: removed unused variable.
13216
13217 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13218
13219         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
13220         It takes 2 new parameters with an optional name for the property to look
13221         for and case ignoring info.
13222         Fixes bug #52753.
13223
13224 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
13225
13226         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
13227         Fix #52451.
13228
13229 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13230
13231         * appdomain.c:
13232         * assembly.c: escape the uri before passing it to g_filename_from_uri.
13233         Fixes bug #52630.
13234
13235 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
13236
13237         * reflection.c: Add support for more than one unmanaged resource.
13238
13239         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
13240         in field->def_value, as done in all other cases.
13241
13242         * reflection.c (mono_reflection_get_custom_attrs): Add support for
13243         TypeBuilders.
13244
13245         * reflection.c (mono_reflection_create_runtime_class): Remove 
13246         errorneous assignment to klass->element_class, since it is already
13247         done in mono_reflection_setup_internal_class.
13248
13249 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13250
13251         * gc.c: added missing LeaveCriticalSection.
13252         * icall.c: indented a couple of lines.
13253         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
13254         if we call EndInvoke inside a callback. Fixes bug #52601.
13255
13256 2004-01-07  Martin Baulig  <martin@ximian.com>
13257
13258         * mono-debug-debugger.h
13259         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
13260
13261 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
13262
13263         * appdomain.c: Use messages in NotImplementedException.
13264
13265         * exception.c (mono_get_exception_not_implemented): Now this takes
13266         a message argument.
13267
13268         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
13269         exception instead of g_asserting an aborting when something is not
13270         implemented.
13271
13272         Add some inline docs.
13273
13274 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
13275
13276         * reflection.h: Update after changes to object layout.
13277
13278         * reflection.c: Implement saving of unmanaged aka win32 resources.
13279
13280         * appdomain.c: Bump version number.
13281
13282         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
13283         Handle missing domains gracefully.
13284
13285 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
13286
13287         * file-io.c : On Windows, there are much more invalid_path_chars.
13288
13289 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
13290
13291         * class.h, object.c: prepare for GetType () speedup.
13292
13293 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
13294
13295         * profiler.c: workaround for --profile null reference exception on
13296           cygwin. Patch by Patrik Torstensson.
13297
13298 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
13299
13300         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
13301         make work for unaligned access.
13302
13303 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
13304
13305         * class.c: small cleanup (class->fields [i] -> field).
13306         * image.c: check address of metadata is valid.
13307
13308 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
13309
13310         * assembly.h assembly.c (mono_assembly_loaded): New public function to
13311         search the list of loaded assemblies.
13312
13313         * reflection.c (mono_reflection_type_from_name): Use 
13314         mono_assembly_loaded instead of mono_image_loaded.
13315
13316         * reflection.c: Fix warnings.
13317
13318 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
13319
13320         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
13321         is dynamic. This is needed since an assembly can contain both dynamic and
13322         non-dynamic images.
13323
13324         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
13325         assembly->dynamic.
13326
13327         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
13328
13329         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
13330         to store modules loaded using AddModule.
13331
13332         * reflection.c (mono_image_fill_file_table): Generalize this so it works
13333         on Modules.
13334
13335         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
13336
13337         * reflection.c (mono_image_fill_export_table_from_module): New function to
13338         fill out the EXPORTEDTYPES table from a module.
13339
13340         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
13341         into a separate function. Also handle loaded non-dynamic modules.
13342
13343         * reflection.c (mono_image_basic_init): Fix memory allocation.
13344
13345         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13346
13347         * assembly.c (mono_assembly_load_references): Make this public.
13348
13349 2003-12-19  Martin Baulig  <martin@ximian.com>
13350
13351         * class.c (mono_class_initialize_generic): Made this static, take
13352         a `MonoGenericInst *' instead of a `MonoClass *'.
13353         (mono_class_from_generic): Call mono_class_initialize_generic()
13354         unless we're already initialized or being called from
13355         do_mono_metadata_parse_generic_inst().
13356
13357         * class.h (MonoGenericInst): Added `initialized' and
13358         `init_pending' flags.
13359
13360         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
13361         `mono_class_init (gklass)' or mono_class_initialize_generic()
13362         here; set `generic_inst->init_pending' while parsing the
13363         `type_argv'.
13364
13365 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
13366
13367         * locales.c: include string.h for memxxx prototypes
13368
13369 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
13370
13371         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
13372         constructor when accessing literal fields.
13373
13374 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
13375
13376         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13377
13378         * reflection.c (assembly_add_resource_manifest): New function to fill
13379         the MANIFESTRESOURCE table.
13380
13381         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
13382
13383         * reflection.h: Update to changes in class layout.
13384
13385         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
13386         Reenable call to mono_runtime_is_shutting_down ().
13387
13388         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
13389         determine if the runtime is shutting down.
13390
13391 2003-12-16  Jackson Harper <jackson@ximian.com>
13392
13393         * icall.c: comment out call to mono_runtime_is_shutting_down to
13394         fix build.
13395         
13396 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
13397
13398         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
13399         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
13400
13401 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
13402
13403         * reflection.c: move definition of swap_with_size
13404         to before its first call
13405
13406 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
13407
13408         * appdomain.c (mono_runtime_is_shutting_down): New public function.
13409
13410         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
13411         icall.
13412
13413         * object.c: Fix warnings.
13414
13415         * icall.c (ves_icall_Type_Get...): Only consider inherited static
13416         members if FlattenHierarchy is set.
13417
13418         * reflection.c (mono_image_add_decl_security): New function to emit
13419         declarative security.
13420
13421         * reflection.h reflection.c: Add support for declarative security.
13422
13423         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13424         
13425 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
13426
13427         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13428         
13429         * appdomain.c verify.c: Moved corlib version checking into its own
13430         function in appdomain.c since it needs to create vtables etc.
13431
13432 2003-12-13  Patrik Torstensson <p@rxc.se>
13433
13434         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
13435         instead of unwrapped server.
13436
13437 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
13438
13439         * verify.c (check_corlib): Fix field index.
13440
13441 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
13442
13443         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
13444         GetGacPath icall.
13445
13446 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
13447
13448         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
13449         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
13450         cope with sizeof(size_t) != sizeof(guint32).
13451
13452 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13453
13454         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
13455         in case of failure.
13456
13457 2003-12-10  Mark Crichton <crichton@gimp.org>
13458
13459         * icall.c: removed the GetNonZeroBytes.  We now handle this case
13460         in managed code.
13461
13462         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
13463
13464 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
13465
13466         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
13467         marked as deleted.
13468
13469 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
13470
13471         * verify.c (check_corlib): Handle the case when the version field is 
13472         initialized by a static constructor.
13473
13474 2003-12-08  Patrik Torstensson  <p@rxc.se>
13475
13476     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13477
13478 2003-12-08  Martin Baulig  <martin@ximian.com>
13479
13480         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13481         a MonoReflectionGenericParameter, also take the parameter index
13482         and name as arguments.
13483         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13484         (ves_icall_MonoGenericParam_initialize): New interncall.
13485         (ves_icall_Type_make_byref_type): New interncall.
13486
13487         * reflection.h (MonoReflectionGenericParam): Derive from
13488         MonoReflectionType, not just from MonoObject.  Added `refobj' and
13489         `index' fields.
13490
13491         * reflection.c (mono_reflection_define_generic_parameter): Create
13492         and return a new MonoReflectionGenericParam; don't initialize the
13493         constraints here.
13494         (mono_reflection_initialize_generic_parameter): New public method;
13495         initializes the constraints and creates the `param->pklass'.
13496
13497 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
13498
13499         * reflection.h reflection.c: Use the new fields 'num_types', 
13500         'num_fields' and 'num_methods' to track the number of types etc.
13501
13502         * verify.c (check_corlib): Check corlib version number.
13503
13504 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
13505
13506         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13507         function works on all methods.
13508
13509 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
13510
13511         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13512         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13513         the custom_type_info flag of the transparent proxy.
13514         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13515         objects that supports IRemotingTypeInfo.
13516         * object.h: Added custom_type_info field in transparent proxy.
13517
13518 2003-12-06  Martin Baulig  <martin@ximian.com>
13519
13520         * class.c (mono_class_create_from_generic): Removed.
13521         (mono_class_from_generic): Check `ginst->klass' before doing
13522         anything else.  This is important to fully support "recursive"
13523         generic types.
13524
13525         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13526         empty `generic_inst->klass' before doing anything else.
13527
13528 2003-12-06  Dick Porter  <dick@ximian.com>
13529
13530         * verify.c: 
13531         * object.h:
13532         * icall.c:
13533         * locales.c: Use C structs to access class fields.  Don't do a
13534         conversion between MonoString and UChar because both are
13535         platform-endian UTF-16.  Compare now takes startindex and count
13536         parameters.  Add a char overload for IndexOf.  Speed up the
13537         invariant string IndexOf.
13538
13539 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
13540
13541         * Makefile.am (monosn_LDADD): Fix parallel build.
13542
13543 2003-12-04  Martin Baulig  <martin@ximian.com>
13544
13545         * icall.c
13546         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13547         (ves_icall_Type_make_array_type): New interncall.       
13548
13549 2003-12-04  Martin Baulig  <martin@ximian.com>
13550
13551         * locales.c: also change it in the !HAVE_ICU case.
13552
13553 2003-12-04  Dick Porter  <dick@ximian.com>
13554
13555         * icall.c:
13556         * locales.c: construct_compareinfo is now in CompareInfo, not
13557         CultureInfo.
13558
13559 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13560
13561         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13562         image->files array.
13563
13564         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13565         table as well.
13566
13567         * assembly.c (mono_assembly_load_references): Only load references
13568         once.
13569
13570         * class.c (mono_class_from_name): Avoid linear search of the 
13571         EXPORTEDTYPE table.
13572
13573         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13574
13575 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13576
13577         * image.h (MonoImage): Add 'field_cache' field.
13578
13579         * loader.c (mono_field_from_token): Cache field lookups.
13580         
13581         * reflection.c (mono_module_get_object): Fix name property.
13582
13583         * icall.c (ves_icall_get_enum_info): Update after changes to 
13584         mono_metadata_get_constant_index ().
13585
13586         * icall.c: Get rid of get_type_info icall, use a separate icall for
13587         each type property to avoid needless memory allocations. Fixes #51514.
13588
13589         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13590         to avoid needless binary searches.
13591
13592         * class.c (class_compute_field_layout): Move the initialization of
13593         field->def_value to mono_class_vtable ().
13594
13595         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13596         non-corlib types.
13597
13598         * object.c (mono_object_allocate): Make it inline.
13599
13600         * object.c (mono_object_allocate_spec): Make it inline.
13601         
13602 2003-12-02  Dick Porter  <dick@ximian.com>
13603
13604         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13605         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13606
13607 2003-12-01  Dick Porter  <dick@ximian.com>
13608
13609         * threads.c: Fix signature and call in CreateMutex and
13610         CreateEvent.
13611
13612 2003-12-01  Dick Porter  <dick@ximian.com>
13613
13614         * icall.c: 
13615         * locales.c: Implement string compares and searching
13616
13617         * object.h: Add extra Thread field
13618
13619 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13620
13621         * reflection.c (fixup_method): Add support for MonoCMethod.
13622
13623 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13624
13625         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13626
13627         * reflection.c (assembly_name_to_aname): Allow extra characters in
13628         assembly names. Fixes #51468.
13629
13630 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13631
13632         * exception.c (mono_exception_from_name_domain): New helper function.
13633
13634         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13635         exception object in the correct domain.
13636
13637         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13638         formatting + make a copy a the input data.
13639
13640         * loader.c (mono_get_method_from_token): Methods which contain
13641         native code do not have entries in the ImplMap.
13642
13643         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13644         Thanks to Gonzalo for spotting this.
13645         
13646         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13647         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13648
13649         * assembly.h (mono_assembly_load_from): Split the second part of 
13650         assembly loading into a new public function.
13651
13652         * exception.h (mono_get_exception_bad_image_format): New function.
13653
13654 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13655
13656         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13657         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13658         
13659         * icall.c: Add new icall for creating dynamic methods.
13660
13661         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13662
13663         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13664
13665         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13666         create a dynamic method.
13667
13668         * reflection.c (resolve_object): New helper function.
13669
13670         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13671         which manipulate it so they can also work on dynamic methods.
13672
13673         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13674         creating the MonoReflectionMethodAux structure if it is not needed.
13675         
13676         * reflection.h verify.c: Update after changes to object layout.
13677
13678         * reflection.c (method_builder_encode_signature): Fix compilation on
13679         gcc 2.95.x.
13680
13681 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13682
13683         * appdomain.h: Added support for context static fields. Added static_data
13684           field to MonoAppContext and renamed thread_static_fields to a more
13685           generic special_static_fields in MonoAppDomain, since it can now contain
13686           context static fields.
13687         * domain.c: Updated hashtable name.
13688         * object.c: Replaced field_is_thread_static() for a more generic
13689           field_is_special_static() which also checks for context static attribute.
13690           In mono_class_vtable(), added support for static context fields.
13691         * threads.c: Changed methods that manage thread static fields to more
13692           generic methods so they can be reused both for thread and context static
13693           data.
13694         * threads.h: Declared some new methods.
13695
13696 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13697
13698         * reflection.h: Update after changes to the managed types.
13699
13700         * reflection.c (encode_custom_modifiers): New helper function.
13701
13702         * reflection.c (method_encode_signature): Emit custom modifiers.
13703
13704         * reflection.c (field_encode_signature): Emit custom modifiers.
13705
13706 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13707
13708         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13709
13710         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13711         implementation.
13712
13713         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13714         icall.
13715
13716         * object.c (mono_field_get_value_object): New function.
13717
13718         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13719         specific.
13720
13721 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13722
13723         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13724         return a preallocated out-of-memory exception instance.
13725
13726         * object.c (out_of_memory): Use the new function.
13727
13728         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13729         flag is before the custom modifiers. Fixes #49802.
13730
13731 2003-11-16  Martin Baulig  <martin@ximian.com>
13732
13733         * class.c (mono_class_is_open_constructed_type): Implemented the
13734         MONO_TYPE_GENERICINST case.
13735
13736 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13737
13738         * assembly.c (mono_assembly_fill_assembly_name): New function to
13739         fill out the MonoAssemblyName structure.
13740         (mono_assembly_open): Use the new function.
13741
13742         * icall.c (fill_reflection_assembly_name): New helper function.
13743
13744         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13745         new function.
13746
13747         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13748
13749 2003-11-15  Martin Baulig  <martin@ximian.com>
13750
13751         * class.c (mono_class_is_open_constructed_type): New public
13752         function; checks whether a type is an open constructed type,
13753         ie. whether it still contains type parameters.
13754         (mono_class_inflate_generic_type): If we're a type parameter and
13755         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13756         type.
13757
13758         * class.h (MonoGenericInst): Added `guint32 is_open'.
13759
13760         * loader.c (method_from_methodspec): Check whether we're an open
13761         or closed constructed type and set `ginst->is_open'.
13762
13763         * reflection.c (mono_reflection_bind_generic_parameters): Check
13764         whether we're an open or closed constructed type and set
13765         `ginst->is_open'.
13766         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13767         from open constructed types.
13768
13769 2003-11-15  Martin Baulig  <martin@ximian.com>
13770
13771         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13772         a generic instance (instead of a generic type declaration) with
13773         unbound generic parameters, bind them to our actual types.
13774
13775 2003-11-14  Martin Baulig  <martin@ximian.com>
13776
13777         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13778
13779         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13780         an interface type, populate `res->interfaces' with instantiated
13781         versions of all the interfaces we inherit.
13782
13783 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13784
13785         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13786         when MONO_PATH is set but doesn't contain the install dir.
13787
13788 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13789
13790         * icall.c:
13791         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13792         it's also implemented in base classes. Fixes bug #50927.
13793
13794 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13795
13796         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13797         if this method is called from a finalizer. Fixes #50913.
13798
13799 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13800
13801         * threads.c: Implement VolatileRead/VolatileWrite
13802
13803         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13804
13805 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13806
13807         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13808         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13809         2.95.3.
13810
13811         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13812         from Peter Ross (pro@missioncriticalit.com).
13813         
13814 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13815
13816         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13817
13818 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13819
13820         * assembly.c (mono_assembly_load_references): Disable check because it
13821         triggers on older corlibs which lots of people have.
13822
13823 2003-11-12  Jackson Harper  <jackson@ximian.com>
13824
13825         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13826         load corlib.dll if mscorlib.dll is not found.
13827         * assembly.h: Remove corlib name define.
13828         * class.c:
13829         * domain.c:
13830         * image.c: Change corlib name to mscorlib.
13831         
13832 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13833
13834         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13835
13836 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13837
13838         * appdomain.h: Added loader_optimization here to sync with the C#
13839         code, and add disallow_binding_redirects field.
13840
13841 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13842
13843         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13844
13845         * reflection.c (mono_image_build_metadata): Fix crash on modules
13846         with no types.
13847
13848         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13849
13850         * icall.c (ves_icall_get_method_info): Return callingConvention as
13851         well.
13852
13853         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13854         namespaces from the EXPORTEDTYPE table as well.
13855
13856         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13857         from all modules inside the assembly.
13858         
13859 2003-11-11  Martin Baulig  <martin@ximian.com>
13860
13861         * reflection.c (mono_reflection_bind_generic_parameters): Make
13862         this work for interfaces.
13863
13864 2003-11-11  Martin Baulig  <martin@ximian.com>
13865
13866         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13867
13868 2003-11-11  Martin Baulig  <martin@ximian.com>
13869
13870         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13871         "MonoInflatedMethod" and "MonoInflatedCtor".
13872
13873 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13874
13875         * reflection.c (resolution_scope_from_image): Use the assembly table
13876         from the manifest module, since other modules don't have it.
13877
13878         * debug-helpers.c (mono_type_full_name): New helper function.
13879
13880         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13881
13882         * image.c (mono_image_load_file_for_image): New public function which
13883         is a replacement for the load_file_for_image in class.c.
13884
13885         * assembly.c (mono_assembly_load_module): A wrapper for the function
13886         above which does assembly association and reference loading too.
13887
13888         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13889
13890 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13891
13892         * appdomain.c: not all of the attributes for the full assembly name
13893         are required and the order doesn't matter. Fixes bug #50787.
13894
13895 2003-11-10  Dick Porter  <dick@ximian.com>
13896
13897         * locales.c: Use platform-endian UTF16
13898
13899 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13900
13901         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13902         
13903 2003-11-10  Martin Baulig  <martin@ximian.com>
13904
13905         * metadata.c
13906         (mono_metadata_load_generic_params): Make this actually work.
13907
13908         * reflection.c (mono_reflection_bind_generic_parameters): If our
13909         parent is a generic instance, pass all the `types' to it, no
13910         matter whether it has the same number of type parameters or not.
13911
13912 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13913
13914         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13915
13916         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13917         assignment code to this function so it gets called recursively for all
13918         modules.
13919
13920         * image.c (load_modules): Remove the assembly assignment since it is
13921         now done by mono_assembly_load_references.
13922         
13923         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13924         Add 'module' argument.
13925         (mono_module_get_types): New helper function.
13926         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13927
13928 2003-11-08  Martin Baulig  <martin@ximian.com>
13929
13930         * class.c (mono_class_inflate_generic_method): Interface method
13931         don't have a header.
13932
13933         * reflection.c (mono_image_get_methodspec_token): Take an
13934         additional `MonoGenericInst *' argument instead of reading it from
13935         the header; this is necessary to support interfaces.
13936         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13937         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13938         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13939         argument.
13940
13941         * reflection.h (MonoReflectionInflatedMethod): Added
13942         `MonoGenericInst *ginst'.
13943
13944 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13945
13946         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13947
13948 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13949
13950         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13951
13952 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13953
13954         * reflection.c 
13955         (reflection_methodbuilder_from_method_builder):
13956         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13957         initialize a ReflectionMethodBuilder structure.
13958         (mono_image_get_methodbuilder_token):
13959         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13960         tokens which point to types in another module inside the same assembly.
13961
13962         * reflection.c: Use the new helper functions.
13963         
13964         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13965
13966         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13967         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13968
13969         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13970         neccesary.
13971
13972         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13973         current module. Emit the manifest only for the main module.
13974
13975         * reflection.c (mono_image_create_token): Add assertion when a 
13976         memberref needs to be created.
13977
13978         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13979
13980         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13981         larger buffer for the custom attribute blob. Fixes #50637.
13982         
13983 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13984
13985         * threadpool.c: notify listener on async processing handles after
13986         invoking the async callback. Thanks to Zoltan.
13987
13988 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13989
13990         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13991         avoid code duplication.
13992
13993         * reflection.h (MonoDynamicImage): New type which is currently unused,
13994         but will be used through the ref.emit code in place of 
13995         MonoDynamicAssembly.
13996
13997         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13998         object layout.
13999
14000         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
14001         a MonoDynamicImage instead of just a MonoImage.
14002         
14003         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
14004         icalls to ModuleBuilder but keep their semantics, so they will work
14005         with moduleb->assemblyb. This will change later.
14006         
14007 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14008
14009         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14010         object layout.
14011
14012         * reflection.c (mono_image_build_metadata): Avoid creation of a default
14013         main module, since it is now done by the managed code.
14014
14015 2003-11-03  Martin Baulig  <martin@ximian.com>
14016
14017         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
14018         `ginst->klass' here.
14019         (method_encode_methodspec): Don't use the `ginst->generic_method's
14020         klass if it's a generic instance, use `ginst->klass' in this case.
14021
14022 2003-11-03  Martin Baulig  <martin@ximian.com>
14023
14024         * reflection.c (mono_image_get_generic_method_param_info):
14025         Removed, use mono_image_get_generic_param_info() instead.
14026         (mono_image_get_type_info): Write the GenericParam table before
14027         the Method table.  This is neccessary because in the GenericParam
14028         table, type parameters of the class (ie. '!0' etc.) must come
14029         before the ones from its generic methods (ie. '!!0' etc).
14030
14031 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14032
14033         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
14034
14035 2003-11-02  Martin Baulig  <martin@ximian.com>
14036
14037         * reflection.c (create_generic_typespec): Take a
14038         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
14039         the generic parameters from it.
14040
14041 2003-11-02  Martin Baulig  <martin@ximian.com>
14042
14043         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
14044         instead of a `MonoClassField *' since we just need the type.
14045         (create_generic_typespec): New static function.  Creates a
14046         TypeSpec token for a generic type declaration.
14047         (mono_image_get_generic_field_token): New static function.
14048         (mono_image_create_token): If we're a FieldBuilder in a generic
14049         type declaration, call mono_image_get_generic_field_token() to get
14050         the token.
14051
14052 2003-11-02  Martin Baulig  <martin@ximian.com>
14053
14054         * reflection.h
14055         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
14056         `MonoReflectionGenericInst *declaring_type' and
14057         `MonoReflectionGenericInst *reflected_type' fields.
14058
14059         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
14060         `MonoReflectionGenericInst *declaring_type' and a
14061         `MonoReflectionGenericInst *reflected_type' argument instead of a
14062         single `MonoReflectionGenericInst *type' one.  Set
14063         `res->declaring_type' and `res->reflected_type' from them.
14064         (mono_reflection_inflate_field): Likewise.      
14065
14066 2003-11-02  Martin Baulig  <martin@ximian.com>
14067
14068         * class.c (mono_class_setup_vtable): Don't store generic methods
14069         in the vtable.  
14070
14071 2003-11-02  Martin Baulig  <martin@ximian.com>
14072
14073         * reflection.h (MonoReflectionGenericInst): Added
14074         `MonoReflectionType *declaring_type'.
14075
14076         * reflection.c (mono_reflection_bind_generic_parameters): Use
14077         `if (tb->parent)' instead of `klass->parent'.
14078
14079 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
14080
14081         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
14082         with an empty ASSEMBLY table.
14083
14084         * reflection.c (mono_image_build_metadata): Avoid using the same loop
14085         variable in the inner and outer loops.
14086
14087 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
14088
14089         * metadata.h (mono_metadata_make_token): Put parentheses around macro
14090         argument.
14091
14092         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
14093         
14094         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
14095         icalls. Instead, do everything in managed code. This is needed since
14096         it is hard to restore the original domain etc. in unmanaged code in the
14097         presence of undeniable exceptions.
14098
14099         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
14100         New icalls to push and pop appdomain refs.
14101
14102 2003-10-31  Martin Baulig  <martin@ximian.com>
14103
14104         * class.c (inflate_generic_type): Renamed to
14105         mono_class_inflate_generic_type() and made it public.
14106
14107         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
14108         New interncall.
14109
14110         * loader.c (mono_field_from_memberref): Also set the retklass for
14111         typespecs.
14112
14113         * fielder.c (mono_image_get_inflated_field_token): New static
14114         method; creates a metadata token for an inflated field.
14115         (mono_image_create_token, fixup_method): Added support for
14116         "MonoInflatedField".
14117         (fieldbuilder_to_mono_class_field): New static function.
14118         (mono_reflection_inflate_field): New public function.
14119
14120         * reflection.h
14121         (MonoReflectionGenericInst): Added `MonoArray *fields'.
14122         (MonoReflectionInflatedField): New typedef.     
14123
14124 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
14125
14126         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
14127         for Solaris and other platforms without s6_addr16
14128
14129 2003-10-30  Martin Baulig  <martin@ximian.com>
14130
14131         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
14132         argument instead of two.
14133         (mono_class_inflate_generic_signature): Likewise.
14134         (inflate_generic_header): Likewise.
14135         (mono_class_inflate_generic_method): Likewise.  In addition, if
14136         `ginst->klass' is set, it becomes the new `method->klass'.
14137
14138         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
14139         field.
14140
14141         * reflection.c (encode_generic_method_sig): Write a 0xa as the
14142         first byte. [FIXME]
14143         (method_encode_methodspec): If we have generic parameters, create
14144         a MethodSpec instead of a MethodRef.
14145         (fixup_method): Added support for "MonoInflatedMethod" and
14146         "MonoInflatedCtor".
14147         (mono_image_create_token): Added support for "MonoInflatedMethod"
14148         and "MonoInflatedCtor".
14149         (inflated_method_get_object): New static function; returns a
14150         managed "System.Reflection.MonoInflatedMethod" object.
14151         (mono_reflection_bind_generic_method_parameters): Return a
14152         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
14153         (mono_reflection_inflate_method_or_ctor): Likewise.
14154         (mono_image_get_generic_method_param_info): Initialize unused
14155         fields to zero.
14156         (mono_image_get_generic_param_info): Likewise.
14157
14158         * reflection.h (MonoReflectionInflatedMethod): New public
14159         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
14160         "S.R.MonoInflatedCtor" classes.
14161
14162         * loader.c (method_from_memberref): If we're a TypeSpec and it
14163         resolves to a generic instance, inflate the method.
14164
14165 2003-10-28  Dick Porter  <dick@ximian.com>
14166
14167         * object.c (mono_runtime_run_main): Convert command-line arguments
14168         into utf8, falling back to the user's locale encoding to do so.
14169
14170 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
14171
14172         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
14173         at this time.
14174
14175         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
14176
14177         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
14178         up icalls at method definition time. Partially fixes #33569.
14179
14180 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
14181
14182         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
14183         marshalling of arrays. Fixes #50116.
14184
14185         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
14186
14187         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
14188         points to a vtable in the dying appdomain.
14189
14190         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
14191         listeners into unmanaged code inside the lock.
14192
14193         * object.c (mono_class_vtable): Turn off typed allocation in non-root
14194         domains and add some comments.
14195
14196 2003-10-25  Martin Baulig  <martin@ximian.com>
14197
14198         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
14199
14200         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
14201
14202         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
14203         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
14204         currently parsing.  Create the generic class and store it in
14205         `generic_inst->klass' before parsing the type arguments.  This is
14206         required to support "recursive" definitions; see mcs/tests/gen-23.cs
14207         for an example.
14208         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
14209         to support recursive typespec entries.
14210
14211         * class.c (mono_class_setup_parent): If our parent is a generic
14212         instance, we may get called before it has its name set.
14213         (mono_class_from_generic): Splitted into
14214         mono_class_create_from_generic() and mono_class_initialize_generic().
14215
14216 2003-10-25  Martin Baulig  <martin@ximian.com>
14217
14218         * icall.c (ves_icall_Type_BindGenericParameters): Return a
14219         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
14220         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
14221         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
14222
14223         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
14224         (create_typespec): Likewise.
14225         (mono_reflection_bind_generic_parameters): Return a
14226         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
14227         (mono_reflection_inflate_method_or_ctor): New public function.
14228
14229         * reflection.h (MonoReflectionGenericInst): New typedef.        
14230
14231 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
14232
14233         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
14234         inside the domain lock. Fixes #49993.
14235         
14236         * object.c (mono_class_vtable): When typed allocation is used, 
14237         allocate vtables in the GC heap instead of in the mempool, since the
14238         vtables contain GC descriptors which are used by the collector even
14239         after the domain owning the mempool is unloaded.
14240
14241         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
14242
14243         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
14244         reflect what it does. Also invalidate mempools instead of freeing
14245         them if a define is set.
14246
14247         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
14248         of the appdomain.
14249         
14250         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
14251         hold the finalizable objects in this domain.
14252
14253         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
14254         appdomain.
14255
14256         * appdomain.c (mono_domain_set): New function to set the current
14257         appdomain, but only if it is not being unloaded.
14258
14259         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
14260         appdomain which is being unloaded.
14261         
14262         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
14263         unloading of the root appdomain.
14264
14265         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
14266         icall to execute a method in another appdomain. Intended as a 
14267         replacement for InternalSetDomain, which can confuse the code 
14268         generation in the JIT.
14269
14270         * appdomain.c (mono_domain_is_unloading): New function to determine
14271         whenever an appdomain is unloading.
14272
14273         * appdomain.c (mono_domain_unload): New function to correctly unload
14274         an appdomain.
14275
14276         * assembly.c (mono_assembly_load_references): Check that an assembly
14277         does not references itself.
14278
14279         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
14280         domain manually, it asks the finalizer thread to do it, then waits for
14281         the result. Also added a timeout.
14282
14283         * icall.c: Register the new icalls.
14284
14285         * threads.h threads.c: Export the mono_gc_stop_world and 
14286         mono_gc_start_world functions.
14287         
14288         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
14289         function to fill out the mempool with 0x2a.
14290
14291 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
14292
14293         * reflection.h (MonoReflectionMethodAux): New structure to store
14294         information which is rarely used, thus is not in the MonoMethod
14295         structure.
14296
14297         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
14298         store the aux info.
14299
14300         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
14301         and marshalling info into the aux structure.
14302
14303         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
14304         from the aux structure.
14305
14306         * loader.c (mono_method_get_param_names): Retrieve the param names from
14307         the aux structure.
14308         
14309 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
14310
14311         * exception.h exception.c: Add AppDomainUnloadedException && fix 
14312         warning.
14313
14314 2003-10-21  Dick Porter  <dick@ximian.com>
14315
14316         * socket-io.c
14317         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
14318         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
14319
14320 2003-10-21  Martin Baulig  <martin@ximian.com>
14321
14322         * reflection.c (mono_reflection_bind_generic_parameters):
14323         `klass->parent' is NULL for interfaces.
14324
14325 2003-10-21  Martin Baulig  <martin@ximian.com>
14326
14327         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14328
14329 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
14330
14331         * exception.c (mono_exception_from_name_msg): New helper function for
14332         creating exceptions and initializing their message field.
14333
14334         * exception.c: Simplify functions using the new helper.
14335
14336         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
14337         New function.
14338
14339         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
14340         mono_raise_exception, since otherwise gcc doesn't generate the function
14341         epilog for raise_exception, confusing the stack unwinding in the JIT.
14342         Fixes #45043.
14343
14344         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
14345         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
14346         Fixes #49499.
14347
14348 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14349
14350         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
14351         utf8.
14352
14353 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
14354
14355         * icall.c: Removed GetUninitializedObject method because
14356           AllocateUninitializedClassInstance does the same.
14357
14358 2003-10-18  Martin Baulig  <martin@ximian.com>
14359
14360         * class.c (inflate_generic_signature): Renamed to
14361         mono_class_inflate_generic_signature() and made it public.
14362         (my_mono_class_from_generic_parameter): New static function; if we
14363         don't already have the generic parameter's MonoClass, create a
14364         very simple one which is just used internally in the runtime and
14365         not passed back to managed code.
14366
14367         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
14368
14369         * metadata.h (MonoMethodSignature): Moved the
14370         `MonoGenericParam *gen_params' to the MonoMethodHeader.
14371         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
14372
14373         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
14374         ves_icall_MonoMethod_GetGenericArguments(); this is now an
14375         interncall on the MonoMethod class, not on MethodInfo.
14376         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
14377         calling mono_reflection_bind_generic_method_parameters() directly.
14378
14379         * loader.c (mono_method_get_signature): If this is a MethodSpec;
14380         return the already computed `method->signature'.
14381         (method_from_methodspec): New static function to load a method
14382         from a MethodSpec entry.
14383         (mono_get_method_from_token): Call the new method_from_methodspec()
14384         for MethodSpec tokens.  
14385         (mono_get_method_from_token): If we're a generic method, load the
14386         type parameters.
14387
14388         * reflection.c (mono_image_get_memberref_token): Allow
14389         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
14390         table.
14391         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
14392         (mono_image_create_token): First check whether it's a generic
14393         method (so we'd need to create a MethodSpec), then do the other
14394         two alternatives.
14395         (mono_reflection_bind_generic_method_parameters): Return a
14396         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
14397         called directly from the interncall.
14398
14399 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
14400
14401         * reflection.c (load_public_key): Move loading of the public key
14402         into managed code.
14403
14404         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
14405
14406         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
14407         fields.
14408
14409         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
14410         culture, hash_alg and public_key. Fixes #49555.
14411
14412 2003-10-17  Martin Baulig  <martin@ximian.com>
14413
14414         * class.h (MonoGenericInst): Moved this declaration here and added
14415         `MonoMethod *generic_method'.
14416
14417         * icall.c
14418         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
14419         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
14420
14421         * metadata.c (mono_metadata_type_equal): Two types of
14422         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
14423         index; ie. don't compare the address of the `MonoGenericParam'
14424         structure.
14425         (mono_metadata_load_generic_params): Removed the `MonoMethod
14426         *method' argument.
14427
14428         * metadata.h (MonoGenericInst): Moved declaration to class.h.
14429         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
14430
14431         * reflection.c (method_encode_signature): Encode the number of
14432         generic parameters.
14433         (encode_generic_method_sig): New static function.
14434         (method_encode_methodspec): New static function; creates an entry
14435         in the MethodSpec table for a generic method.
14436         (mono_image_get_methodspec_token): New static function.
14437         (mono_image_create_token): Call mono_image_get_methodspec_token()
14438         for generic methods.
14439         (mono_reflection_bind_generic_method_parameters): New public
14440         function.  Instantiates a generic method.
14441
14442 2003-10-16  Martin Baulig  <martin@ximian.com>
14443
14444         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
14445         *gen_params' here from MonoMethodHeader.
14446
14447         * metadata.c (mono_metadata_parse_method_signature): If we have
14448         generic parameters, initialize `method->gen_params' and then set
14449         the correct `type->data.generic_param' in all the parameters.
14450
14451 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
14452
14453         * threads.c (mono_threads_get_default_stacksize): New function to 
14454         return the default stacksize.
14455
14456         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
14457         termination of the finalizer thread, since the previous method had
14458         race conditions. Fixes #49628.
14459
14460         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
14461         as for the other managed threads.
14462
14463 2003-10-16  Martin Baulig  <martin@ximian.com>
14464
14465         * class.c (inflate_generic_signature): Copy `generic_param_count'
14466         and `gen_params'.
14467
14468         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14469         New interncall.
14470
14471         * metadata.c (mono_metadata_parse_method_signature): Actually set
14472         the `method->generic_param_count' here.
14473         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14474
14475 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
14476
14477         * object.h: Add a new field to TypedRef to simplify the implementation
14478         of the REFANY opcodes in the JIT.
14479
14480         * icall.c: Make use of the new field.
14481
14482         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14483         dynamically.
14484
14485 2003-10-15  Martin Baulig  <martin@ximian.com>
14486
14487         * class.c (mono_class_from_gen_param): Renamed to
14488         mono_class_from_generic_parameter() and moved most of the
14489         functionality from mono_reflection_define_generic_parameter()
14490         here; ie. we create a "real" class here.
14491         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14492         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14493         previously been called.
14494
14495         * class.h (MonoGenericParam): Moved the declaration of this struct
14496         here from metadata.h and added `MonoMethod *method'.
14497
14498         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14499         interncall.
14500
14501         * loader.c (mono_get_method_from_token): If we have any generic
14502         parameters, call mono_metadata_load_generic_params() to read them
14503         from the MONO_TABLE_GENERICPAR.
14504
14505         * metadata.c (mono_metadata_load_generic_params): Added
14506         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14507
14508         * metadata.h (MonoMethodSignature): Replaced
14509         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14510         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14511
14512         * reflection.c (mono_reflection_define_generic_parameter): Moved
14513         most of the functionality into the new
14514         mono_class_from_generic_parameter(); set the `method' field if
14515         we're a method parameter.       
14516
14517 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
14518
14519         * marshal.c (emit_struct_conv): if native size is 0
14520         emit no code.
14521
14522 2003-10-14  Martin Baulig  <martin@ximian.com>
14523
14524         * icall.c: The generics API has changed in the spec since it was
14525         added to System.Type; these modifications make it match the spec
14526         again.
14527         (ves_icall_Type_GetGenericParameters): Renamed to
14528         `ves_icall_Type_GetGenericArguments'.
14529         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14530         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14531         `ves_icall_MonoType_get_HasGenericArguments'.
14532         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14533         `ves_icall_MonoType_get_IsGenericParameter'.
14534         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14535         this is no interncall anymore.
14536         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14537         `ves_icall_TypeBuilder_get_IsGenericParameter'.
14538
14539 2003-10-14  Martin Baulig  <martin@ximian.com>
14540
14541         * reflection.c (mono_reflection_bind_generic_parameters): Also
14542         inflate generic methods if we're reading the class from IL.
14543
14544 2003-10-13  Martin Baulig  <martin@ximian.com>
14545
14546         * reflection.c (mono_reflection_define_generic_parameter): This
14547         method isn't called directly from the icall anymore; take a
14548         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14549         method generic parameters.
14550         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14551         (method_builder_encode_signature): Encode generic parameters.
14552         (mono_image_get_method_info): Write generic params to the
14553         MONO_TABLE_GENERICPARAM table.
14554
14555         * reflection.h (MonoReflectionMethodBuilder): Added
14556         `MonoArray *generic_params'.
14557
14558         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14559
14560         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14561         wrapper for mono_reflection_define_generic_parameter().
14562         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14563
14564 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14565
14566         * marshal.h: Add missing function to fix build.
14567
14568         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14569         the SetLastError pinvoke attribute.
14570
14571         * marshal.c (mono_marshal_set_last_error): New helper function called
14572         by the generated code.
14573         
14574         * marshal.c (mono_mb_emit_branch): New helper function.
14575
14576         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14577
14578         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14579         classes as parameters and return values of delegates. Fixes #29256. 
14580
14581 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14582
14583         * locales.c: use gint32 in non HAVE_ICU case
14584
14585 2003-10-11  Martin Baulig  <martin@ximian.com>
14586
14587         * mono-debug.c (mono_debug_add_method): Added a workaround for
14588         bug #48591.
14589
14590 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14591
14592         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14593         delegates passed to native code must use the STDCALL calling 
14594         convention. Fixes #35987.
14595
14596 2003-10-10  Martin Baulig  <martin@ximian.com>
14597
14598         * class.c (inflate_generic_type): If we're inflating for a generic
14599         type instance (and not for a generic method), return
14600         MONO_TYPE_MVAR unchanged.
14601
14602 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14603
14604         * string-icalls.c: Join ignores null strings in the source array.
14605         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14606         * threads.c: GetAvailableTheads is slightly more accurate.
14607
14608 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14609
14610         * threads.h threads.c : add mono_threads_set_default_stacksize
14611         and pass default to CreateThread calls.
14612
14613 2003-10-09  Dick Porter  <dick@ximian.com>
14614
14615         * icall.c:
14616         * locales.h:
14617         * locales.c: Internal calls for constructing CultureInfo and
14618         related objects from libicu (if its available.)
14619
14620 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14623
14624 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14625
14626         * threadpool.c: added an argument to async_invoke_thread that is the
14627         item to process, pass the MonoAsyncResult to the thread start function
14628         when creating a new thread. This way we don't need to acquire any lock
14629         when we're creating a new thread. Readded a semaphore for faster
14630         response times (instead of that Sleep i added).
14631
14632 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14633
14634         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14635         get daylight change dates better on Windows, fix handling
14636         of platforms without tm_gmtoff.
14637
14638 2003-10-06  Martin Baulig  <martin@ximian.com>
14639
14640         * class.c (inflate_generic_method): Renamed to
14641         mono_class_inflate_generic_method() and made public.
14642         (mono_class_init): Don't inflate the generic methods here.
14643         (mono_class_from_generic): Added `gboolean inflate_methods'
14644         argument.  Inflate the methods here.
14645
14646         * loader.c (mono_method_get_param_names): Ignore instances of
14647         generic types for the moment.
14648
14649         * reflection.c (fixup_method): Added support for inflated methods.
14650         (mono_image_create_token): Use mono_image_get_methodref_token()
14651         for inflated methods.
14652         (mono_custom_attrs_from_param): Ignore instances of generic types
14653         for the moment.
14654         (mono_reflection_bind_generic_parameters): New public function.
14655         Moved all the functionality from
14656         ves_icall_Type_BindGenericParameters() here and added support for
14657         dynamic types.
14658         (mono_reflection_define_generic_parameter): Initialize
14659         `klass->methods' here.
14660
14661         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14662         functionality into mono_reflection_define_generic_parameter().
14663         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14664         TypeBuilder, return that TypeBuilder.
14665
14666 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14667
14668         * appdomain.c: removed mono_delegate_semaphore.
14669
14670         * threadpool.c:
14671         (mono_thread_pool_add): moved hash table creation inside and the thread 
14672         creation outside of the critical region.
14673         (mono_thread_pool_finish): removed obsolete code.
14674         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14675         continue or exit the thread depending on the queue.
14676
14677 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14678
14679         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14680         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14681         handle more bool marshalling options
14682
14683 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14684
14685         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14686         arrays of structs. Also add a more descriptive error message when
14687         a structure member is marshalled as LPArray.
14688
14689 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14690
14691         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14692         marshalling arrays of complex types. Fixes #29098. Also remove an
14693         usused and incomplete function.
14694
14695 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14696
14697         * gc.c: report heap_size - free_bytes as total memory allocated
14698         (bug#49362).
14699
14700 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14701
14702         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14703         fix timezone handling problems on Windows.
14704         
14705         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14706         asserts when the year is outside the range handled by ms the functions.
14707
14708         * class.c (setup_interface_offsets): If the class is an interface,
14709         fill out its interface_offsets slot.
14710
14711 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14712
14713         * threadpool.c: mark threadpool threads as background.
14714
14715 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14716
14717         * decimal.c - define DECINLINE to nothing if not using GCC
14718
14719 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14720
14721         * assembly.c: More refcount fixes.
14722
14723 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14724
14725         * string-icalls.c: if we're not trimming, return the same string.
14726         When not splitting, don't create a new string.
14727
14728 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14729
14730         * image.c:
14731         (mono_image_open): increment the ref_count inside the critical section.
14732
14733 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14734
14735         * image.c (mono_image_open): Fix reference counting bug.
14736
14737 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14738
14739         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14740         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14741         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14742         mono_lookup_pinvoke_call throws.        
14743
14744 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14745
14746         * reflection.c (mono_reflection_parse_type): Fix #49114.
14747
14748         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14749         temporary workaround for cygwin header problem.
14750
14751         * object.c (mono_object_isinst): Synchronize this with the code
14752         generated by the JIT for casts.
14753
14754 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14755
14756         * reflection.c (encode_type): Fix #38332.
14757
14758 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14759
14760         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14761         the original method from the wrapper method.
14762
14763 2003-09-25  Martin Baulig  <martin@ximian.com>
14764
14765         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14766         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14767         (ves_icall_Type_get_IsGenericInstance): New interncall.
14768
14769 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14770
14771         * object.c: fix cast warning in big endian code.
14772
14773 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14774
14775         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14776         
14777 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14778
14779         * assembly.c: don't call check_env from mono_assembly_load. It's
14780         already done once in mono_assemblies_init and may cause headaches when
14781         multiple threads are loading assemblies.
14782
14783 2003-09-19  Martin Baulig  <martin@ximian.com>
14784
14785         * reflection.c (mono_reflection_define_generic_parameter): Don't
14786         allocate `klass->methods', set `klass->flags' to
14787         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14788
14789 2003-09-18  Martin Baulig  <martin@ximian.com>
14790
14791         * class.c (mono_class_init): Don't create `class->methods' if it's
14792         already initialized.
14793
14794         * metadata.c (mono_metadata_load_generic_params): Make this
14795         actually work.
14796
14797         * reflection.c (mono_reflection_define_generic_parameter): Set
14798         parent class and interfaces from the constraints.
14799
14800         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14801         to keep this struct in sync with the declaration in TypeBuilder.cs.
14802
14803 2003-09-17  Martin Baulig  <martin@ximian.com>
14804
14805         * metadata.h (MonoType): Replaced the data's `int type_param'
14806         field with `MonoGenericParam *generic_param'.
14807         (MonoGenericParam): Added `MonoClass *klass'.
14808
14809         * class.c (mono_class_from_gen_param): Removed the
14810         `MonoImage *image' and `int type_num' arguments.
14811
14812         * metadata.c (mono_metadata_parse_generic_param): New static
14813         method; creates a MonoGenericParam which just contains the index.
14814         (do_mono_metadata_parse_type): Call
14815         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14816         MONO_TYPE_MVAR.
14817
14818         * reflection.c (mono_image_typedef_or_ref): Generic type
14819         parameters may be in the same assembly, but never use a typedef
14820         for them.
14821         (mono_reflection_define_generic_parameter): We're now creating a
14822         "real" class for the type parameter; it's now safe to call
14823         mono_class_from_mono_type() on the class'es type, it'll do the
14824         right thing.
14825
14826 2003-09-16  Martin Baulig  <martin@ximian.com>
14827
14828         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14829         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14830         the `symfile' data structure must be fully initialized before it
14831         gets added to the table.
14832
14833 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14834
14835         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14836
14837         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14838         class init trampolines.
14839
14840 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14843         to the built-in profiler to turn off time and allocation profiling
14844         respectively.
14845
14846 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14847
14848         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14849         g_direct_equal.
14850
14851         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14852         in human readable form.
14853
14854 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14855
14856         * reflection.c icall.c: Fixed warnings.
14857
14858         * image.c (load_class_names): Use a temporary hash table to hold the
14859         namespaces in order to avoid doing many string comparisons.
14860
14861         * image.h: Fix typo.
14862
14863         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14864         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14865         since the NULL case is short-circuited inside g_hash_table_lookup, 
14866         leading to better performance.  
14867
14868         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14869         obtain the first custom attribute for a given index. Depends on the
14870         CustomAttribute table being sorted by the parent field.
14871
14872         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14873         for better performance.
14874
14875 2003-09-07  Martin Baulig  <martin@ximian.com>
14876
14877         * class.c (mono_class_init): If we're a generic instance, inflate
14878         all our methods instead of loading them from the image.
14879         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14880
14881 2003-09-07  Martin Baulig  <martin@ximian.com>
14882
14883         * mono-debug-debugger.c: Added support for constructors.
14884
14885 2003-09-06  Martin Baulig  <martin@ximian.com>
14886
14887         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14888         New interncall.
14889
14890         * reflection.c (mono_reflection_setup_generic_class): Call
14891         ensure_runtime_vtable() to create the vtable.
14892
14893 2003-09-05  Martin Baulig  <martin@ximian.com>
14894
14895         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14896         MONO_TYPE_MVAR.
14897
14898 2003-09-04  Martin Baulig  <martin@ximian.com>
14899
14900         * reflection.c (mono_reflection_define_generic_parameter): Generic
14901         parameters start with zero.
14902
14903 2003-09-04  Martin Baulig  <martin@ximian.com>
14904
14905         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14906
14907         * reflection.h (MonoReflectionGenericParam): New typedef.
14908         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14909         the generic parameters from the managed TypeBuilder.
14910
14911         * reflection.c (mono_reflection_define_generic_parameter): New function.
14912         (mono_reflection_create_runtime_class): Encode generic parameters.
14913         (mono_reflection_setup_generic_class): New function; this is
14914         called after adding adding all generic params to the TypeBuilder.
14915         (encode_type): Added MONO_TYPE_VAR.
14916
14917 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14918
14919         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14920         here from the JIT.
14921
14922         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14923         load hook.
14924
14925 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14926
14927         * reflection.h reflection.c class.h class.c: Delete duplicate 
14928         definition of mono_type_get_name () from reflection.c and export the
14929         one in class.c.
14930
14931         * class.c: Class loading fixes from Bernie Solomon 
14932         (bernard@ugsolutions.com).
14933
14934         * reflection.c: Endianness fixes from Bernie Solomon 
14935         (bernard@ugsolutions.com).
14936         
14937 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14938
14939         * assembly.h assembly.c: Define a file format version for AOT
14940         libraries.
14941         
14942         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14943
14944         * appdomain.h (MonoJitInfo): New field to determine whenever the
14945         code is domain neutral.
14946         
14947 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14948
14949         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14950
14951 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14952
14953         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14954         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14955         Avoid caching the result since strings must be domain specific. Fixes
14956         #48050.
14957
14958 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14959
14960         * marshal.c (mono_marshal_init): Make this callable multiple times
14961         since it is hard to find a correct place to call it.
14962
14963         * object.c (mono_runtime_class_init): Execute static constructors in
14964         the correct appdomain.
14965
14966         * image.c (build_guid_table): Handle the case when multiple images have
14967         the same GUID.
14968
14969 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14970
14971         * icall.c: added a couple of icalls for System.Web.
14972
14973 2003-08-28  Martin Baulig  <martin@ximian.com>
14974
14975         * icall.c (ves_icall_Type_BindGenericParameters): Use
14976         `klass->generic_inst' instead of `&klass->byval_arg' in the
14977         mono_type_get_object() call.  The returned type must be
14978         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14979
14980 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14981
14982         * NOTES: New file.
14983
14984         * object.c (mono_class_proxy_vtable): Make it thread safe.
14985
14986         * pedump.c: Fix warning.
14987
14988         * object.c appdomain.h: Get rid of metadata_section. 
14989         It is no longer needed and it was causing deadlocks with domain->lock.
14990
14991         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14992
14993 2003-08-26  Martin Baulig  <martin@ximian.com>
14994
14995         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14996
14997 2003-08-26  Martin Baulig  <martin@ximian.com>
14998
14999         * pedump.c (main): Call mono_metadata_init(),
15000         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
15001         and mono_loader_init().
15002
15003 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
15004
15005         * loader.h: Add missing include to fix build.
15006
15007         * image.h: mono_image_load_references is no more.
15008
15009         * assembly.c: Reworked assembly loading to make it really thread safe.
15010         After these changes, the assembly returned by mono_assembly_open is
15011         fully initialized, i.e. all its references assemblies are loaded.
15012
15013         * assembly.c (mono_image_load_references): Renamed to 
15014         mono_assembly_load_references, and made private, since clients no
15015         longer need to call it.
15016
15017         * class.c: Removed calls to mono_assembly_load_references, since it was
15018         a source of deadlocks.
15019
15020         * loader.h loader.c class.h class.c: Protect data structures using a 
15021         new lock, the loader lock.
15022
15023         * class.c (mono_class_setup_vtable): Create temporary hash tables and
15024         GPtrArrays only when needed.
15025
15026         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
15027         into empty structures by mcs. Fixes pinvoke7.cs.
15028         
15029         * domain.c (mono_init): Call a new initialization function.
15030
15031         * appdomain.c (mono_runtime_init): Call the new initializer function
15032         of the marshal module.
15033
15034         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
15035         inserted into empty structures by mcs. Fixes pinvoke7.cs.
15036
15037         * marshal.h marshal.c: Added locks around the wrapper caches to make
15038         this module thread safe.
15039
15040         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
15041         this argument. Fixes pinvoke1.exe.
15042
15043 2003-08-25  Lluis Sanchez <lluis@ximian.com>
15044
15045         * object.h: Added call_type field to MonoMethodMessage and the corresponding
15046         enumeration of values. Removed fields to store remote call output values in
15047         MonoAsyncResult. Not needed any more.
15048         * object.c: Initialize call_type and async_result fields in mono_message_init.
15049         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
15050         dispatching the message.
15051         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
15052         async call to finish. To do it use a message with EndInvoke call type.
15053
15054 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
15055
15056         * loader.h loader.c (mono_method_hash_marhal_info): New function which
15057         determines whenever a method has marshalling info.
15058
15059 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15060
15061         * assembly.c: fix the build on windows.
15062
15063 2003-08-22 Lluis Sanchez <lluis@ximian.com>
15064
15065         * object.cs: Fixed bug #47785.
15066
15067 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
15068
15069         * string-icalls.c (StringReplace): If their are no occurances of
15070         the old string found return a reference to the supplied
15071         string. This saves some memory and matches MS behavoir.
15072         
15073 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15074
15075         * socket-io.c: fixed compilation for systems that define AF_INET6
15076         and don't define SOL_IP/SOL_IPV6.
15077
15078 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
15079
15080         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
15081         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
15082
15083         * rawbuffer.c rawbuffer.h: Make this module thread safe.
15084
15085         * domain.c: Make this module thread safe.
15086
15087         * domain.c (mono_init): Call new initialization function.
15088
15089         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
15090         reference types too. Fixes #38812.
15091
15092         * image.c (mono_image_init): Fixed warnings.
15093
15094         * class.c (mono_class_from_typeref): Handle assembly load failure
15095         correctly.
15096
15097         * appdomain.c (add_assemblies_to_domain): Handle the case when
15098         the references of an assembly are not yet loaded.
15099
15100         * metadata.c image.c assembly.c: Moved initialization of global
15101         variables to a separate function called at startup since lazy 
15102         initialization of these variables is not thread safe.
15103         
15104         * image.c assembly.c: Made this module thread safe by adding locks in 
15105         the appropriate places.
15106
15107         * domain.c (mono_init): Call the new initialization functions of the
15108         three modules.
15109
15110 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
15111
15112         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
15113           make a direct call. It is proxy's work to make the call asynchronous.
15114           mono_delegate_end_invoke(): If the targe is a proxy, just collect
15115           the return values.
15116         * object.cs: mono_method_call_message_new(): read AsyncResult and
15117           state object from parameters list, if this info is requested.
15118         * object.h: Added fields to store remote call output values in
15119           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
15120
15121 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15122
15123         * object.h: add needed fields to MonoThread.
15124         * threads.c, threads.h: allow registering a function to cleanup data
15125         allocated per thread by the JIT.
15126
15127 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15128
15129         * loader.h: portability fix by Bernie Solomon
15130         * <bernard@ugsolutions.com>.
15131
15132 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
15133
15134         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
15135         return a MonoArray. This simplifies the code and also ensures that
15136         the cache allways contains an object reference as a value.
15137
15138         * icall.c (ves_icall_get_parameter_info): Simplified using the new
15139         function.
15140
15141 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15142
15143         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
15144         fixes a problem with byte ordering when getting the address family for
15145         a socket.
15146
15147 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
15148
15149         * .cvsignore: Added monosn.
15150
15151         * reflection.h reflection.c loader.c: Added support for parameter
15152         marshalling to dynamically created types. Fixes #47295.
15153
15154 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
15155
15156         * rand.c: remove useless warnings.
15157
15158 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15159
15160         * class.c: implemented ldtoken for methods and fieldrefs.
15161
15162 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15163
15164         * threadpool.c: when mono_async_invoke was called, no one took care of
15165         monitoring the queue. So if the method invoked took some time and we
15166         got new async invoke requests after 500 ms (the thread created waited
15167         that long in WaitForSingleObject), the new async invoke was not called
15168         until the previous one finished.
15169
15170         This is fixed now. Thanks to Totte for helping with it.
15171
15172 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15173
15174         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
15175
15176 2003-08-11  Martin Baulig  <martin@ximian.com>
15177
15178         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
15179
15180 2003-08-06  Martin Baulig  <martin@ximian.com>
15181
15182         * mono-debug-debugger.c: Added support for static fields,
15183         properties and methods.
15184
15185 2003-08-06  Martin Baulig  <martin@ximian.com>
15186
15187         * mono-debug-debugger.c: Don't store the MonoString's vtable to
15188         make this work for applications with multiple application domains.
15189
15190 2003-08-04  Martin Baulig  <martin@ximian.com>
15191
15192         * mono-debug-debugger.c: Completely reworked the type support; the
15193         most important thing is that we're now just using one single
15194         `MonoType' instance per type.
15195
15196 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
15197
15198         * mono-endian.h, mono-endian.c, icall.c: Added icall
15199         ves_icall_System_Double_AssertEndianity to assert double word endianity
15200         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
15201
15202 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15203
15204         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
15205         support, icalls and fixes.
15206
15207 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
15208
15209         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
15210         classes that are a punctuation character in .NET is not the same a
15211         g_unichar_ispunct.
15212
15213 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15214
15215         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
15216
15217 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
15218
15219         * icall.c: Add new MemCopy internalcall.
15220         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
15221         Simplified code; It is not necessary to handle all the cases here,
15222         as the C# code takes care of it.  Only handle the case of the name
15223         resource embedded into the assembly.
15224
15225         Changed signature to return the data pointer and the size of the
15226         data. 
15227
15228 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
15229
15230         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
15231         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
15232
15233 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15234
15235         * socket-io.c: ignore EINTR error in select.
15236
15237 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15238
15239         * class.h, class.c: removed unused subclasses field in MonoClass.
15240
15241 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15242
15243         * icall.c: improve fix of get_base_definition(). If the parent class
15244           doesn't have the mehod, look at the parent of the parent.
15245         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
15246           to check if a parameter is an in or out parameter
15247           (PARAM_ATTRIBUTE_IN is not set by default).
15248           mono_method_return_message_restore(): Use mono_class_value_size to
15249           get the size of a value type. mono_type_stack_size (parameterType)
15250           does not return the correct value if parameterType is byRef.
15251           mono_load_remote_field(), mono_load_remote_field_new(),
15252           mono_store_remote_field(), mono_store_remote_field_new():
15253           raise exception if the remote call returns an exception.
15254
15255 2003-07-28  Martin Baulig  <martin@ximian.com>
15256
15257         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
15258         method.  This is a wrapper around mono_runtime_invoke() which
15259         boxes the instance object if neccessary.
15260
15261 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15262
15263         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
15264         metadata.h, row-indexes.h, verify.c: first cut of generics support.
15265
15266 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15267
15268         * icall.c: disable mcs bug workaround.
15269
15270 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
15271
15272         * object.c (mono_runtime_class_init): Take the metadata_section
15273         mutex before obtaining the domain mutex.
15274
15275         * appdomain.h: Added definition of metadata_section mutex here. 
15276
15277         * object.c: define metadata_mutex here.
15278
15279 2003-07-24  Ravi Pratap  <ravi@ximian.com>
15280
15281         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
15282         fixed.
15283
15284 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
15285
15286         * reflection.c: Fix bug #46669
15287
15288 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15289
15290         * exception.c:
15291         * exception.h:
15292         * icall.c:
15293         * object.h: fill in the type name for TypeLoadException.
15294
15295 2003-07-23  Ravi Pratap  <ravi@ximian.com>
15296
15297         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
15298         relationship between TypeBuilders while compiling corlib) and bug
15299         45993 (Array types returned from the runtime while compiling
15300         corlib were from the loaded corlib).
15301
15302 2003-07-22  Martin Baulig  <martin@ximian.com>
15303
15304         * mono-debug-debugger.c: Reworked the type support a bit more;
15305         distinguish between types and classes.
15306
15307 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
15308
15309         * icall.c: add IsArrayImpl icall.
15310
15311 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
15312
15313         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
15314         initializing real_size only once. Also fix bug #46602.
15315
15316 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
15317
15318         * object.c: Renamed mono_metadata_section to metadata_section.
15319
15320 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
15321
15322         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
15323           empty array if the type is an array. Fixed.
15324           ves_icall_MonoMethod_get_base_definition: if the base method
15325           is abstract, get the MethodInfo from the list of methods of
15326           the class.
15327         * reflection.c: ParameterInfo.PositionImpl should be zero-based
15328           and it was 1-based. Fixed in mono_param_get_objects.
15329
15330 2003-07-20  Martin Baulig  <martin@ximian.com>
15331
15332         * mono-debug.h: Set version number to 31.
15333         (mono_debug_init): Added `MonoDomain *' argument.
15334
15335         * mono-debug-debugger.c: Reworked the type support; explicitly
15336         tell the debugger about builtin types; pass the `klass' address to
15337         the debugger.
15338
15339 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
15340
15341         * image.c: Allow new metadata tables to be loaded without a
15342         warning. Also update the warning message to give the new constant value.
15343                 
15344 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
15345
15346         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
15347         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
15348         array type representation changes.
15349
15350 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15351
15352         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
15353         on Environment.Exit () call.
15354
15355 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15356
15357         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
15358         requires a matching corlib.
15359
15360 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15361
15362         * Changelog: My editor decided to add a CR to each line. Sorry about that.
15363           Committed again without the CRs.
15364         
15365 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15366
15367         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
15368           getting it from the "this" socket instance. Did not work
15369           if the socket is a subclass of Socket.
15370           Also fixed bug #35371.
15371
15372 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15373
15374         * metadata.c: fixed size for TypedByRef.
15375         * loader.c: when searching for a method, consider the vararg amrker.
15376         * unicode.c, decimal.c: constify some arrays.
15377
15378 2003-07-15  Dick Porter  <dick@ximian.com>
15379
15380         * socket-io.c: Fixed compilation for gcc < 3.2.
15381
15382         Fixed compilation for machines that don't have AF_INET6 (thanks to
15383         Bernie Solomon <bernard@ugsolutions.com> for that part.)
15384
15385         Fixed compile warnings.
15386         
15387         Fixed formatting and line endings.
15388
15389 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
15390
15391         * socket-io.h:
15392         * socket-io.c: Added IPv6 support.
15393
15394 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
15395
15396         * class.c (mono_class_is_assignable_from): New function to implement
15397         the is_assignable_from logic. Used by mono_object_isinst, 
15398         Type::IsAssignableFrom () and the interpreter.
15399
15400         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
15401         Object, even interfaces.
15402         
15403         * object.c (mono_object_isinst): Implement in terms of 
15404         is_assignable_from.
15405
15406         * icall.c (ves_icall_type_is_assignable_from): New icall.
15407
15408 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
15409
15410         * domain.c (foreach_domain): fix compiler warning.
15411
15412 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
15413
15414         * image.c (load_metadata_ptrs): use g_strndup because strndup is
15415         not available on all plattforms
15416
15417 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
15418
15419         * image.h image.c: Store the metadata version string in MonoImage.
15420         * icall.c: New icall to retrieve the image version.
15421         * reflection.c (create_dynamic_image): Fill in the image version field
15422         * reflection.c (build_compressed_metadata): Use the image version
15423         from the image structure.
15424
15425 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15426
15427         * appdomain.c: modified comment.
15428         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
15429         That will be its last iteration when mono_gc_cleanup is called from
15430         mono_runtime_cleanup and before the domain is unloaded.
15431
15432         Fixes bug #45962.
15433
15434 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
15435
15436         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
15437         attributes.
15438
15439 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15440
15441         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
15442         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
15443         Bernie Solomon <bernard@ugsolutions.com>.
15444
15445 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15446
15447         * object.c, object.h: provide mono_object_new_fast() for faster
15448         allocation in some special cases.
15449
15450 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
15451
15452         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
15453         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
15454
15455 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
15456
15457         * threadpool.c: fix leaks.
15458
15459 2003-07-01  Dick Porter  <dick@ximian.com>
15460
15461         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
15462         using MonoGHashTables.  Fixes threadpool bug posted to list.
15463
15464 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15465
15466         * image.h, image.c: added support to load an assembly from a byte array.
15467         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
15468         assembly bundle support.
15469
15470 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
15471
15472         * threadpool.c (mono_thread_pool_add): keep a reference to the
15473         AsyncResult to prevent GC
15474
15475 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15476
15477         * class.c: leak fix.
15478
15479 2003-06-25  Dick Porter  <dick@ximian.com>
15480
15481         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15482         for the async object, the WaitHandle object will close the handle.
15483         Fixes bug 45321.
15484
15485 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15486
15487         * class.c: in mono_array_class_get (), lookup from the hash with the
15488         same type we insert: this works around a bug in
15489         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15490         lluis. The real fix will have to wait for after the release.
15491
15492 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15493
15494         * icall.c: fix memory leak when getting type members.
15495
15496 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15497
15498         * reflection.c: added more pubtoken special cases.
15499
15500 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15501
15502         * class.c: handle field offset correctly when class size
15503         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15504
15505 2003-06-20  Martin Baulig  <martin@ximian.com>
15506
15507         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15508         *image' field.
15509
15510 2003-06-20  Martin Baulig  <martin@ximian.com>
15511
15512         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15513
15514 2003-06-20  Martin Baulig  <martin@ximian.com>
15515
15516         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
15517         just distinguish between variables in registers and variables at
15518         an offset relative to a register.
15519
15520 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15521
15522         * icall.c: #ifdef out latest changes until mcs is fixed.
15523
15524 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15525
15526         * icall.c: return members in metadata order.
15527
15528 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15529
15530         * icall.c: avoid infinite loop in GetTimeZoneData.
15531
15532 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15533
15534         * icall.c: added Marshal.Prelink/All icalls.
15535
15536 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15537
15538         * object.c, object.h: fix warnings and do some overflow checking
15539         when creating arrays.
15540
15541 2003-06-17  Dick Porter  <dick@ximian.com>
15542
15543         * file-io.h:
15544         * file-io.c: File attributes need to be tweaked slightly when
15545         passed from the managed to the w32 world.
15546
15547 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15548         * profiler.h profiler-private.h profiler.c: Rework last patch
15549         based on suggestion by Paolo.
15550         
15551 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15552
15553         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15554         instruction level coverage data collection.
15555         * profiler.h profiler.c (: Added new callback function which can be
15556         used by the profiler to limit which functions should have coverage
15557         instrumentation.
15558         * profiler.c (mono_profiler_load): Call g_module_build_path to
15559         generate the file name of the profiler library.
15560
15561 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15562
15563         * profiler.c, profiler.h, profiler-private.h: added basic block 
15564         coverage profiling API.
15565
15566 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15567
15568         * reflection.c (mono_reflection_create_runtime_class): Add support
15569         for events in dynamically generated code.
15570
15571         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15572         not allocated.
15573
15574 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15575
15576         * icall.c: when getting timezone info, return reasonable values if we
15577         can't get the actual data.
15578
15579 2003-06-14  Dick Porter  <dick@ximian.com>
15580
15581         * threads.c (start_wrapper): Remove the reference to the thread
15582         object in the TLS data, so the thread object can be finalized.
15583         This won't be reached if the thread threw an uncaught exception,
15584         so those thread handles will stay referenced :-( (This is due to
15585         missing support for scanning thread-specific data in the Boehm GC
15586         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15587
15588 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15589
15590         * reflection.c: ensure streams and tables are first allocated with
15591         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15592
15593 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15594
15595         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15596
15597 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15598
15599         * reflection.c (mono_reflection_create_runtime_class): Add support for
15600         properties to dynamically created classes.
15601         * reflection.c: Fix a few places where non-MonoObjects were inserted
15602         into the tokens hashtable.
15603
15604 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15605
15606         * object.c: some support to handle out of memory exceptions.
15607
15608 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15609
15610         * marshal.c (mono_marshal_get_native_wrapper): support reference
15611         return types
15612
15613 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15614
15615         * object.h, object.c: more portability stuff from Bernie Solomon.
15616         Unexport mono_object_allocate(). Added mono_object_unbox ().
15617         Set exitcode when an unhandled exception is thrown.
15618
15619 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15620
15621         * marshal.c (mono_marshal_get_native_wrapper): use custom
15622         marshaler for return types.
15623
15624 2003-06-10  Dick Porter  <dick@ximian.com>
15625
15626         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15627         ip_mreq is available
15628
15629 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15630
15631         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15632         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15633         by Bernie Solomon <bernard@ugsolutions.com>.
15634
15635 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15636
15637         * gc.c (mono_gc_init): Avoid error message on shutdown when
15638         GC_DONT_GC=1 is used.
15639
15640         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15641         New icall to return the GUID of a module.
15642
15643 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15644
15645         * class.c: ensure instance size always includes the parent's size
15646         even whem class size is set explicitly (fixes bug#44294).
15647
15648 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15649
15650         * profiler.h, profiler.c: made the simple profiler thread-safe,
15651         get more accurate timing info. Allow the loading of an
15652         externally-developed profiler module.
15653
15654 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15655
15656         * marshal.c (mono_marshal_get_native_wrapper): improved
15657         class/byref arguments.
15658         (mono_marshal_get_native_wrapper): better string marshaling support.
15659
15660 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15661
15662         * class.c: ensure .pack and .size are handled correctly and
15663         simplified layout of static fields.
15664
15665 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15666
15667         * appdomain.c
15668         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15669
15670         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15671         current directory (fix bug 44008)
15672
15673 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15674
15675         * marshal.c (mono_marshal_get_native_wrapper): started support for
15676         custom marshalers.
15677         (mono_delegate_to_ftnptr): consider marshalling specifications
15678
15679 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15680
15681         * reflection.c, reflection.h: emit custom marshal info.
15682
15683 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15684
15685         * object.c: free the GError.
15686         * icall.c: added CloseEvent_internal.
15687         * threads.[ch]:
15688         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15689         call.
15690
15691 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15692
15693         * loader.c (mono_method_get_signature): Add support for dynamic
15694         assemblies.
15695
15696 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15697
15698         * reflection.c: fixed bug #43905.
15699
15700 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15701
15702         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15703         handling TypedReference and ArgIterator.
15704         * loader.c, loader.h: added function to get signature at call site.
15705
15706 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15707
15708         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15709         data readonly. Buglets and warning fixes. Some MethodSpec support.
15710
15711 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15712
15713         * class.h, class.c, object.c: remove relative numbering support.
15714
15715 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15716
15717         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15718         free the string, until we get a chance to fix Gtk#
15719
15720 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15721
15722         * marshal.c: revert last patch.
15723
15724 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15725
15726         * icall.c: updates for new mono_class_vtable() not calling
15727         the type constructor anymore.
15728
15729 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15730
15731         * object.h, object.c: separate vtable creation from type
15732         initialization. Make running the .cctor thread safe.
15733
15734 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15735
15736         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15737
15738 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15739
15740         * loader.c (mono_get_method): consider calling convention
15741
15742 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15743
15744         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15745         to return the invisible global type for a module.
15746
15747         * reflection.c (mono_image_build_metadata): Emit global fields too.
15748
15749 2003-05-20  Peter Williams  <peterw@ximian.com>
15750
15751         * loader.c (mono_lookup_internal_call): Add a few newlines.
15752
15753 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15754
15755         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15756         literal strings.
15757
15758         * appdomain.c (set_domain_search_path): Recalculate search path when
15759         AppDomainSetup.PrivateBinPath changes.
15760
15761         * object.c (mono_class_compute_gc_descriptor): It turns out some
15762         parts of the class libs (like System.Thread) holds pointers to
15763         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15764         to treat native int a pointer type here.
15765         
15766 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15767
15768         * appdomain.h, domain.c: add hashtable for jump target resolution.
15769
15770 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15771
15772         * reflection.h reflection.c icall.c: Added new icalls 
15773         GetManifestResourceInfoInternal, GetModulesInternal and support
15774         infrastructure.
15775
15776 2003-05-16  Dick Porter  <dick@ximian.com>
15777
15778         * icall.c:
15779         * file-io.h:
15780         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15781
15782 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15783
15784         * object.c: mono_store_remote_field: little fix to previous patch.
15785
15786 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15787
15788         * class.c: add constructors to array classes.
15789         * icall.c: special case array construction for InternalInvoke (),
15790
15791 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15792
15793         * class.h class.c reflection.c object.c: Added support for field
15794         defaults in dynamically generated classes.
15795
15796 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15797
15798         * reflection.c: properly encode charset for ddlimport.
15799
15800 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15801
15802         * threads.c: allow compiling without GC.
15803
15804 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15805
15806         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15807         handling of thread static data.
15808
15809 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15810
15811         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15812
15813 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15814
15815         * class.c (mono_array_class_get): always set the serializable flags
15816         (mono_array_class_get): always set the SEALED attribute for array types
15817
15818 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15819
15820         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15821         attributes (fix for bug 42021).
15822
15823 2003-05-12  Dick Porter  <dick@ximian.com>
15824
15825         * gc.c: Don't run finalizers when the finalizer thread is
15826         finishing up, because the default domain has already been
15827         destroyed.
15828
15829 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15830
15831         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15832         value is null, we should throw an exception.   This is slightly
15833         different than the other conventions used for the constructor.
15834
15835 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15836
15837         * socket-io.c: fixed windows build.
15838
15839 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15840
15841         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15842
15843 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15844
15845         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15846         compilers.
15847
15848 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15849
15850         * class.c (mono_class_layout_fields): Add experimental GC aware
15851         auto layout facility. Requires class library changes to work correctly.
15852
15853         (mono_class_setup_vtable): Avoid overriding explicit interface
15854         method implementations. Fixes iface3.exe test.
15855
15856         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15857         object reference.
15858         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15859         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15860
15861         * metadata.h: Add new type classification macro which determines
15862         whenever the type holds an object reference.
15863
15864 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15865
15866         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15867
15868 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15869
15870         * gc.c (finalizer_thread): Work around a GC bug.
15871
15872 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15873
15874         * marshal.c (emit_struct_conv): allow unions
15875
15876         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15877
15878 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15879
15880         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15881
15882 2003-05-06  Martin Baulig  <martin@ximian.com>
15883
15884         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15885
15886 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15887
15888         * socket-io.c:
15889         (Select_internal): allow NULLs, don't create arrays if not needed.
15890         Coupled with Socket.cs changes.
15891
15892         * threadpool.c:
15893         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15894         register a finalizer for it that will close the semaphore handle. This
15895         fixes the leak and make Lupus' test run with > 4080 loops.
15896
15897 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15898
15899         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15900         Jerome Laban (bug #42287)
15901
15902 2003-05-02  Martin Baulig  <martin@ximian.com>
15903
15904         * debug-mono-symfile.h
15905         (MonoSymbolFile): Moved declaration into mono-debug.h.
15906         (MonoDebugMethodJitInfo): Likewise.
15907         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15908         argument.
15909         (_mono_debug_address_from_il_offset): Take a
15910         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15911
15912         * mono-debug.h
15913         (MonoDebugDomainData): New struct.
15914         (mono_debug_get_domain_data): New function.
15915         (mono_debug_add_method): Take an additional `MonoDomain *'
15916         argument.
15917         (mono_debug_source_location_from_address): Likewise.
15918         (mono_debug_il_offset_from_address): Likewise.
15919         (mono_debug_address_from_il_offset): Likewise.
15920
15921 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15922
15923         * reflection.c: one more check for null type in custom attrs.
15924
15925 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15926
15927         * reflection.c: avoid warning (comparison is always false due to limited
15928         range of data type).
15929
15930 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15931
15932         * icall.c: throw an exception in Type.GetField if the argument 'name'
15933         is NULL.
15934
15935 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15936
15937         * reflection.c: fixed handling of enums in named arguments to custom
15938         attributes (bug #42123).
15939
15940 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15941
15942         * reflection.c: use the right array element type and handle
15943         a null for a Type argument, too.
15944
15945 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15946
15947         * reflection.c: handle arrays as arguments to custom attributes.
15948
15949 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15950
15951         * reflection.c: handle a string value in a custom attr
15952         ctor that takes an object.
15953
15954 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15955
15956         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15957         (fix bug #42063)
15958
15959 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15960
15961         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15962
15963 2003-04-27  Martin Baulig  <martin@ximian.com>
15964
15965         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15966         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15967         MONO_DEBUGGER_EVENT_BREAKPOINT.
15968         (mono_breakpoint_trampoline_code): Removed.
15969         (mono_debugger_event_handler): The last argument is now a
15970         `guint32'.
15971         (mono_debugger_insert_breakpoint_full): Removed the
15972         `use_trampoline' argument.
15973         (mono_debugger_method_has_breakpoint): Likewise.
15974         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15975         mono_debugger_breakpoint_callback(); take the method and
15976         breakpoint number as arguments.
15977
15978 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15979
15980         * metadata.c: fix off by one when loading parameters attributes.
15981
15982 2003-04-24  Martin Baulig  <martin@ximian.com>
15983
15984         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15985
15986 2003-04-24  Martin Baulig  <martin@ximian.com>
15987
15988         * mono-debug-debugger.c: Moved all code which interacts with the
15989         Mono Debugger here.
15990
15991         * debug-mono-symfile.c: This code now just deals with the symbol
15992         file itself, the debugger code is now in mono-debug-debugger.c.
15993
15994 2003-04-23  Martin Baulig  <martin@ximian.com>
15995
15996         * mono-debug.c (mono_debug_source_location_from_il_offset):
15997         New method; like mono_debug_source_location_from_address(), but
15998         takes an IL offset instead of a machine address.
15999
16000 2003-04-23  Martin Baulig  <martin@ximian.com>
16001
16002         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
16003         `line' field; this is now computed by the debugger.
16004
16005 2003-04-23  Martin Baulig  <martin@ximian.com>
16006
16007         * mono-debug.[ch]: New files.  This is the new debugging interface.
16008
16009         * mono-debug-debugger.[ch]: New files.  Moved all code which
16010         interacts with the Mono Debugger here.
16011
16012 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
16013
16014         * domain.c (mono_init): initialize mono_defaults.monitor_class
16015
16016 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
16017
16018         * reflection.c (method_encode_code): Add a spicy exception to help
16019         future compiler authors.
16020
16021 2003-04-21  Martin Baulig  <martin@ximian.com>
16022
16023         * icall.c
16024         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16025         Make this work with relative pathnames; g_filename_to_uri() needs
16026         an absolute filename.
16027
16028 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
16029
16030         * icall.c: Track name changes in Object and ValueType.
16031
16032 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
16033
16034         * metadata.c (mono_type_stack_size): size should be a multiple of
16035         sizeof (gpointer)
16036
16037 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16038
16039         * gc.c:
16040         (internal_domain_finalize): moved into mono_domain_finalize. No need
16041         to create another thread because the finalizers will be run in the
16042         finalizer thread.
16043         
16044         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
16045         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
16046         to be run (MS does this too).
16047
16048 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
16049
16050         * object.c (mono_class_compute_gc_descriptor): Update comment.
16051
16052         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
16053
16054         * image.h: Add synchronized wrapper cache.
16055
16056         * image.c (do_mono_image_open): Initialize cache.
16057
16058         * reflection.c (create_dynamic_mono_image): Initialize cache.
16059
16060 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16061
16062         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
16063         ves_icall_System_Buffer_ByteLengthInternal.
16064
16065 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16066
16067         * reflection.c: setup klass->nested_in earlier. Allow
16068         a dash in the assembly name.
16069
16070 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
16071
16072         * metadata.c (mono_type_to_unmanaged): dont access
16073         type->data.klass for MONO_TYPE_OBJECT
16074         (mono_type_to_unmanaged): consider System.Delegate class
16075
16076 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
16077
16078         * class.c: just setup supertypes in the proper place instead of
16079         initializing the full element class for arrays.
16080
16081 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16082
16083         * class.c: ensure the element class of arrays is initialized.
16084         Setup the supertype info for array classes, too.
16085
16086 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
16087
16088         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
16089
16090 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16091
16092         * Makefile.am: re-added -m option when running cygpath. This way,
16093         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
16094         separator.
16095         * mono-config.c: same codepath for locating mono config file for WIN32
16096         and the rest.
16097         * assembly.c: if mono_assembly_setrootdir is called, don't override
16098         the value set.
16099
16100 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16101
16102         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
16103         MONO_ASSEMBLIES variable.
16104
16105 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
16106
16107         * icall.c: added Assembly::GetNamespaces() icall.
16108
16109 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
16112
16113 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
16114
16115         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
16116         * object.c: fixed bug in the construction of vtable for proxies
16117
16118 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
16119
16120         * object.c (mono_array_new): Mark mono_array_new as an icall.
16121
16122 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16123
16124         * class.c: fixed test for public method when overriding interfaces.
16125         Closes bug #40970.
16126
16127 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16128
16129         * appdomain.h, domain.c: added mono_domain_foreach() to
16130         be able to access the currently loaded appdomains.
16131         * object.c: make string interning work across sppdomains.
16132         Mark some functions for use as icalls.
16133
16134 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
16135
16136         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
16137
16138         * reflection.h reflection.c: Allocate long living data using 
16139         GC_MALLOC_ATOMIC so the collector does not need to scan it.
16140
16141         * reflection.c: Double the allocation size in streams instead of
16142         increasing it, to prevent unneccesary copying on large assemblies.
16143         
16144         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
16145         creation if the assembly does not have the Run flag set.
16146
16147 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
16148
16149         * class.h: avoid the C++ keywords in header files (Jerome Laban
16150         spotted and fixed this).
16151
16152 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16153
16154         * object.c:
16155         (mono_unhandled_exception): fill in the arguments for the
16156         UnhandledException event. Only trigger that event for the default
16157         domain (as MS does).
16158
16159 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
16160
16161         * object.c: Improve typed allocation stuff based on suggestions from
16162         Paolo. Also turn it on if the GC library supports it.
16163
16164 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16165
16166         * object.c object.h class.h: Added experimental typed allocation
16167         facility using the interfaces in gc_gcj.h.
16168
16169         * os/gc_wrapper.h: Added new include files.
16170         
16171 2003-04-03  Martin Baulig  <martin@ximian.com>
16172
16173         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
16174         which is not yet enabled by default.
16175
16176         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
16177         functions.
16178         (mono_gc_lock, mono_gc_unlock): New static functions.
16179
16180         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
16181         functions; stop/start the world for the garbage collector.  This
16182         is using the windows API; we need to complete the SuspendThread()/
16183         ResumeThread() implementation in the io-layer to make this work on Unix.
16184         (mono_gc_push_all_stacks): New public function; tells the garbage
16185         collector about the stack pointers from all managed threads.
16186
16187 2003-04-03  Martin Baulig  <martin@ximian.com>
16188
16189         * object.h (MonoThread): Added `gpointer stack_ptr'.
16190
16191         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
16192
16193 2003-04-03  Martin Baulig  <martin@ximian.com>
16194
16195         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
16196
16197 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16198
16199         * reflection.c (typebuilder_setup_fields): Initialize field.first and
16200         field.last.
16201
16202 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
16203
16204         * loader.c (mono_lookup_internal_call): Report the corlib that is
16205         out of sync.
16206
16207 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
16208
16209         * icall.c (ves_icall_type_GetTypeCode): fixed check for
16210         System.DBNull (it's class not valuetype).
16211
16212 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16213
16214         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
16215         if the array method was already assigned a token (fixes bug#40646).
16216
16217 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
16218
16219         * reflection.c (mono_reflection_get_type): Attempt type resolve even
16220         if no assembly is given.
16221
16222 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
16223
16224         * metadata.h: Added the new tables.
16225
16226         * row-indexes.h: Added definitions for new tables.
16227
16228         * metadata.c: Add schemas for new tables, and add support for
16229         computing the sizes of them.
16230
16231         * class.c: Update for handling the new type cases.
16232
16233 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
16234
16235         * metadata.h (MONO_TYPE_IS_VOID): new macro
16236
16237 2003-03-31  Martin Baulig  <martin@ximian.com>
16238
16239         * threads.h (MonoThreadCallbacks): Added `thread_created'.
16240
16241         * threads.c (mono_thread_new_init): Call `thread_created' in the
16242         mono_thread_callbacks.
16243
16244 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
16245
16246         * loader.h: added marshalbyrefobject_class to mono_defaults
16247         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
16248         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
16249           generation of output parameters.
16250           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
16251         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
16252           contextbound and the target object belongs to the context of the caller.
16253         * object.h: added context and unwrapped_server variables in MonoRealProxy.
16254         * object.c: Implemented support for interfaces and abstract classes
16255           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
16256           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
16257
16258 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
16259
16260         * class.h class.c (mono_class_is_subclass_of): New function.
16261         
16262         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
16263         routines for most common case (calls from ArrayList::ToArray).
16264
16265         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
16266         routine so programs which call Environment::Exit() can be profiled.
16267
16268         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
16269         Added MONO_ARCH_SAVE_REGS.
16270
16271         * icall.c (ves_icall_type_is_subtype_of): Use new function.
16272
16273 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
16274
16275         * blob.h: Add a couple of new MonoType types definitions.
16276
16277         * tabledefs.h: Add a couple of new call convs.
16278
16279 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
16280
16281         * reflection.h (MonoReflectionDynamicAssembly): track changes in
16282         the layout of the class.
16283
16284         * reflection.c (alloc_table): double the size on overflow to avoid
16285         unnecessary copying.
16286
16287         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
16288         avoid filling out metadata tables and blobs. Also set mb->ilgen to
16289         null so it can be garbage collected.
16290         
16291 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
16292
16293         * reflection.c (mono_reflection_get_type): Return the resolved type
16294         only if it is in the assembly we searched.
16295
16296         * reflection.c (ensure_runtime_vtable): Initialize method slots.
16297
16298         * class.c (mono_class_setup_vtable): Set the slot of the overriding
16299         method.
16300
16301 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16302
16303         * appdomain.c:
16304         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
16305         the right one is 'file:///blah', but MS allows it.
16306         * assembly.c:
16307         (mono_assembly_open): allow 'file://blah'
16308
16309         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
16310
16311 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
16312
16313         * socket-io.c: fixes bug #40310.
16314
16315 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
16316
16317         * reflection.c (mono_reflection_parse_type): handle deeply nested
16318         types correctly.
16319
16320         * reflection.c (mono_image_create_token): Use unique token values
16321         since they will be put into a hash table.
16322
16323         * class.c (mono_class_setup_vtable): If a method occurs in more than
16324         one place in the vtable, and it gets overriden, then change the
16325         other occurances too.
16326
16327         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16328         object as return type.
16329
16330 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16331
16332         * icall.c: Deleted "ToString" implementation for double and float
16333         because they are full implemented in managed code.
16334
16335 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16336
16337         * reflection.c, reflection.h: implemented and exported functions
16338         to retrieve info about custom attributes.
16339
16340 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16341
16342         * appdomain.c: moved Uri handling to assembly.c
16343         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
16344         work when using a file Uri in *nix and windows.
16345
16346         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
16347         GetReferencedAssemblies.
16348
16349 2003-03-18  Dick Porter  <dick@ximian.com>
16350
16351         * icall.c: Rename a couple of internal calls
16352
16353         * threads.c: Set the thread state to Stopped when a thread exits.
16354         Fixes bug 39377.
16355
16356 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
16357
16358         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
16359         New icall.
16360
16361         * object.c (mono_class_vtable): fix warning.
16362
16363 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
16364
16365         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
16366
16367         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
16368         memory.
16369         (method_encode_clauses): Create exception info structures in the right
16370         order.
16371         (mono_reflection_setup_internal_class): Initialize supertypes field.
16372
16373         * class.c object.c: Handle interfaces which implement other interfaces 
16374         correctly.
16375
16376         * class.h class.c: Move the supertypes array initialization code into 
16377         a separate function so it can be used for dynamic types too. Also call
16378         it earlier, in mono_class_init(), since it can be used before the
16379         type is initialized.
16380
16381 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16382
16383         * Makefile.am:
16384         * assembly.c:
16385         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
16386
16387         * appdomain.c:
16388         * appdomain.h:
16389         * marshal.c:
16390         * object.c: remove warnings.
16391
16392 2003-03-13  Martin Baulig  <martin@ximian.com>
16393
16394         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
16395         (MonoDebugLexicalBlockEntry): New types.
16396
16397         * debug-mono-symfile.c
16398         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
16399
16400 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16401
16402         * process.c: ret can be any non-zero value accroding to MS doc.
16403
16404 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
16405
16406         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
16407         fixing a warning for a miss-used prototype, would have cause
16408         random memory corruption.
16409
16410 2003-03-07  Martin Baulig  <martin@ximian.com>
16411
16412         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
16413         getting really annoying ....
16414
16415 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
16416
16417         * reflection.c (fixup_method): added support for array methods.
16418
16419 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
16420
16421         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
16422         (pointed out by Michael Adams).
16423
16424 2003-03-04  Dick Porter  <dick@ximian.com>
16425
16426         * icall.c: Temporarily reverted the Double and Single ToString()
16427         change, because it broke nunit.
16428
16429 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
16430
16431         * object.h, threads.h: make include files compatible with C++
16432         (patch by Jerome Laban <jlaban@wanadoo.fr>).
16433
16434 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16435
16436         * icall.c: Erased ToString helper functions for Double and Single.
16437         Now, that implementations ar all in managed code (Double and Single
16438         Formatters).
16439
16440 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
16441
16442         * appdomain.c: Added method for initializing the default context of
16443         a domain. Added internal call for getting the default context.
16444         * appdomain.h: Added context variable in MonoDomain struct.
16445         * domain.c: mono_domain_set also sets the default context of the domain
16446         * icall.c: Mapped internal method InternalGetDefaultContext.
16447         * object.c: mono_object_get_virtual_method returns always a remoting
16448         wrapper if the object is a transparent proxy.
16449         mono_runtime_invoke_array: when creating an object by calling the
16450         constructor, if the created object is a proxy, then the constructor should
16451         be called using the a remoting wrapper.
16452
16453 2003-03-03  Dick Porter  <dick@ximian.com>
16454
16455         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
16456         variable so it compiles on solaris.  Problem spotted by
16457         Christopher Taylor <ct@cs.clemson.edu>
16458
16459 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16460
16461         * appdomain.c:
16462         (get_info_from_assembly_name): don't leak value.
16463
16464         * icall.c:
16465         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
16466         result.
16467
16468 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16469
16470         * assembly.c: export mono_image_load_references ().
16471         * class.c: handle function pointers. mono_class_from_name() now
16472         supports nested type names directly.
16473
16474 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
16475
16476         * reflection.h reflection.c: Encode already created dynamic methods 
16477         and fields correctly as a DEF instead of a REF.
16478
16479         * reflection.c: Get rid of the force_ref argument to 
16480         mono_image_typedef_or_ref since it was wrong in the first place.
16481
16482         * string-icalls.c: add error checking to string constructors according
16483         to the MSDN docs.
16484
16485         * reflection.c: Emit types in the order their TypeBuilders were 
16486         created. Previously, a new table index was assigned to each type before
16487         the tables were emitted. This was wrong because the signature blob
16488         might already refer to a type by its original table index.
16489
16490 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
16491
16492         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16493         change.
16494         
16495 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16496
16497         * Makefile.am: make assemblies dir have \ instead of / on windows.
16498
16499 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
16500
16501         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16502         iterate over the NESTEDCLASS table using a linear search since the
16503         table is not guaranteed to be sorted by the secondary key.
16504
16505         * class.c (mono_class_create_from_typedef): fixed up call to
16506         mono_metadata_nesting_typedef.
16507         
16508 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
16509
16510         * marshal.c (mono_string_to_byvalstr): clear the memory as
16511         suggested by Jerome Laban <jlaban@wanadoo.fr>
16512
16513 2003-02-26  Dick Porter  <dick@ximian.com>
16514
16515         * process.c: Cope with padding in .rsrc blocks
16516
16517 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16518
16519         * metadata.h: reverted the filter_len change, it breaks reflection
16520         
16521 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16522
16523         * metadata.h: added a new field to store the filter_len
16524         
16525
16526 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16527
16528         * reflection.c: handle custom attributes for types and members
16529         created with Reflection.Emit (bug#38422).
16530
16531 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
16532
16533         * reflection.c: define RTSpecialName automatically for constructors for
16534         compatibility with MS.NET.
16535
16536         * reflection.c (mono_reflection_create_runtime_class): initialize
16537         nested_in field of dynamically created classes.
16538
16539 2003-02-22  Martin Baulig  <martin@ximian.com>
16540
16541         * debug-mono-symfile.h: Incremented version number.
16542
16543 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16544
16545         * object.h icall.c process.c: fix warnings.
16546
16547 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16548
16549         * appdomain.h appdomain.c:
16550         (mono_domain_try_type_resolve): split the 
16551         name_or_tb argument into a name and a tb argument.
16552         (mono_domain_has_type_resolve): new function to check whenever the
16553         application has registered a TypeResolve event handler.
16554         
16555         * icall.c reflection.h reflection.c: move the type resolve logic into
16556         mono_reflection_get_type () so it will be invoked when 
16557         Assembly::GetType () is called.
16558
16559         * reflection.c:
16560         (mono_reflection_get_type): renamed to get_type_internal.
16561         (mono_reflection_get_type): fixed type name generation so it works 
16562         for nested types too.
16563         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16564         costly type name generation if there is no resolve event handler.
16565
16566 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16567
16568         * class.c, image.c: load exported types from file references.
16569
16570 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16571
16572         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16573           used to cache the managed methods used to create proxies and make 
16574           remote invocation of methods.
16575         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16576           to be remotely created.
16577         * object.c: Modified the method mono_class_vtable(). It now initializes 
16578           the remote flag of the vtable. Modified mono_object_new_specific(), 
16579           so now it checks the remote flag.
16580         * icall.c: Added a couple of internal methods, one for enabling instance 
16581           creation interception for a type, and one for creating objects bypassing
16582           the remote check.
16583
16584 2003-02-18  Martin Baulig  <martin@ximian.com>
16585
16586         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16587         New interncall to get a method's metadata token.
16588
16589         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16590         New interncall for the debugger.
16591
16592 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16593
16594         * class.c (mono_class_setup_vtable): allocate supertype array
16595
16596 2003-02-18  Martin Baulig  <martin@ximian.com>
16597
16598         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16599
16600 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16601
16602         * reflection.c:
16603         (assembly_name_to_aname): jump over unknown properties (i've found
16604         something like: 'type, assembly, version=xxx, custom=null, public...',
16605         so now will ignore custom=null and still get the rest of the values).
16606
16607 2003-02-17  Dick Porter  <dick@ximian.com>
16608
16609         * threads.c: Have Thread.Start() wait for a semaphore to signal
16610         that the thread has set up all its local data.  This fixes bug
16611         34323, where Abort() raced the new thread's TLS data.
16612
16613         Also removes the handle_store() call from start_wrapper, because
16614         threads are now always created suspended and there is no longer a
16615         race between the parent and child threads to store the info.
16616
16617 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16618
16619         * image.c: explain the #- heap issue in a message, hopefully
16620         avoiding FAQs on mono-list.
16621
16622 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16623
16624         * icall.c:
16625         (GetEntryAssembly): if the domain has not invoked
16626         AppDomain.ExecuteAssembly yet, return the assembly of the default
16627         AppDomain.
16628
16629 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16630
16631         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16632
16633 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16634
16635         * metadata.c, reflection.c: simple speedup to type hash
16636         and equals code.
16637
16638 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16639
16640         * image.c, image.h, class.c, assembly.c: move module loading
16641         to MonoImage. When loading metadata, consider alignemnet from
16642         the start of metadata, not from the metadata address in memory.
16643
16644 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16645
16646         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16647         AssemblyBuilder objects. Factored out custom attribute creation into
16648         a separate function.
16649         (create_custom_attr): new function to create custom attributes.
16650
16651 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16652
16653         * Makefile.am: Got tired of typing the full pathname to pedump.
16654         Until there is another option, am installing this.
16655
16656 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16657
16658         * class.c (class_compute_field_layout): always set field->parent 
16659         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16660
16661 2003-02-11  Dick Porter  <dick@ximian.com>
16662
16663         * threads-types.h:
16664         * monitor.c: Rewrote Monitor, making lock much faster and
16665         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16666         creates them as needed.
16667
16668         * exception.c: Added SynchronizationLockException
16669
16670         * threads.c: Deleted old Monitor implementation.  The new one is
16671         in a new file.
16672
16673 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16674
16675         * class.c: handled TypedReference type code. Set the correct size for
16676         class data. Setup interface_offsets for interface classes, too.
16677
16678 2003-02-09  Martin Baulig  <martin@ximian.com>
16679
16680         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16681
16682 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16683
16684         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16685         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16686         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16687         * verify.c: check for code that runs after the end of the method.
16688
16689 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16690
16691         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16692         "System.Math::Round2".
16693         * sysmath.h: Added Floor, Round and Round2 definitions.
16694         * sysmath.c: Modified certain functions that were not 100% compliant
16695         with MS.NET (math precision) and added the implementation of Floor,
16696         Round and Round2.
16697
16698 2003-02-07  Martin Baulig  <martin@ximian.com>
16699
16700         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16701
16702 2003-02-07  Martin Baulig  <martin@ximian.com>
16703
16704         * debug-mono-symfile.c: Reflected latest symwriter changes.
16705         (mono_debug_create_mono_symbol_file): Removed.
16706         (mono_debug_open_mono_symbol_file): Take an argument which
16707         specifies whether to create a dynamic symbol file.
16708
16709 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16710
16711         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16712
16713 2003-02-05  Martin Baulig  <martin@ximian.com>
16714
16715         * reflection.c (mono_image_build_metadata): Make this public,
16716         protect it against being called multiple times, don't create
16717         resources and don't build the compressed metadata here.
16718         (mono_image_create_pefile): Do this here.
16719
16720         * icall.c
16721         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16722
16723 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16724
16725         * socket-io.c: fixed bug #36322.
16726
16727 2003-02-06  Piers Haken <piersh@friskit.com>
16728
16729         * appdomain.[ch]:
16730         * class.h:
16731         * debug-mono-symfile.c:
16732         * icall.c:
16733         * loader.c:
16734         * mono-config.c:
16735         * monosn.c:
16736         * reflection.c:
16737         * socket-io.c: warning cleanups
16738
16739 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16740
16741         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16742         function. works like remoting invoke, but does a check for the Proxy first.
16743
16744 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16745
16746         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16747
16748 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16749
16750         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16751         array of pointers.
16752         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16753         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16754
16755         * object.c (mono_store_remote_field_new): used by the new jit
16756         instead of mono_store_remote_field
16757         (mono_load_remote_field_new): used by the new jit
16758         instead of mono_load_remote_field
16759
16760 2003-02-05  Patrik Torstensson
16761
16762         * appdomain.c: changed unload to take the domain id instead
16763         of domain
16764         
16765         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16766
16767
16768 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16769
16770         * appdomain.c: don't look for assemblies in ApplicationBase if
16771         PrivateBinPathProbe is set.
16772
16773 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16774
16775         * object.c: make the first argument in main_args contain the absolute
16776         path to the assembly. Fixes bug #37511.
16777
16778 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16779
16780         * icall.c: get correct UTC offset for countries not using daylight
16781         time saving. Fixes bug #30030.
16782
16783 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16784
16785         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16786         and 1 are the family).
16787
16788 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16789
16790         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16791
16792         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16793
16794 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16795
16796         * reflection.c: added support for SignatureHelper tokens, which is
16797         needed by the Calli opcode.
16798
16799         * reflection.h: track changes to SignatureHelper class.
16800
16801         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16802
16803 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16804
16805         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16806
16807 2003-02-03  Patrik Torstensson
16808         * appdomain.[c|h], domain.c : 
16809          - Added support for getting a domain via domain id
16810          - Support for setting and getting domain from System.AppDomain 
16811            (used in cross appdomain channel)
16812          - Added support for get/set for a MonoAppContext on a thread 
16813            (Context class in System.Runtime.Remoting.Contexts),
16814          - Removed hack in Get/SetData and ExecuteAssembly.
16815         
16816         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16817         the managed world to get control when a proxy is created.
16818
16819         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16820         
16821 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16822
16823         * icall.c
16824         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16825         Populate the codebase field as well.
16826
16827 2003-02-02  Martin Baulig  <martin@ximian.com>
16828
16829         * debug-mono-symfile.c
16830         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16831         (mono_debug_symfile_add_method): Allow interncalls.
16832
16833 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16834
16835         * icall.c: throw parse exception if strtod fails or the string is empty.
16836
16837 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16838
16839         * marshal.c: handle object type separately from defined
16840         class types.
16841
16842 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16843
16844         * marshal.c: handle NATIVE_LPSTR for strings when it's
16845         explicitly specified.
16846
16847 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16848
16849         * reflection.c, reflection.h, icall.c: setup the reflection
16850         handle cache for ModuleBuilders and AssemblyBuilders.
16851
16852 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16853
16854         * reflection.c (reflection_methodbuilder_to_mono_method): set
16855         pinvoke flag
16856
16857 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16858
16859         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16860
16861 2003-01-29  Dick Porter  <dick@ximian.com>
16862
16863         * threads.c: No need for the fake_thread kludge now that Thread
16864         doesn't run a class constructor
16865         
16866 2003-01-29  Dick Porter  <dick@ximian.com>
16867
16868         * threads.c: Use g_direct_hash instead of the rather bogus
16869         g_int_hash
16870
16871 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16872
16873         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16874         (fix pinvoke12.exe)
16875         (mono_marshal_get_struct_to_ptr): generate valid IL code
16876         (mono_marshal_get_ptr_to_struct): generate valid IL code
16877         (*): correctly set sig->pinvoke, we need to memdup the signature
16878         to do that
16879
16880 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16881
16882         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16883         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16884
16885 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16886
16887         * profiler.c: provide more callers information.
16888
16889 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16890
16891         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16892
16893         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16894
16895         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16896
16897 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16898
16899         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16900         exception instead of going into an infinite loop on dates which it 
16901         can't yet handle.
16902
16903         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16904         out-of-range exception if needed.
16905
16906         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16907         an implementation for an interface method and to override an inherited
16908         method at the same time. 
16909         Imagine a scenario when a virtual method is used to override a
16910         virtual abstract method in a parent class, and this same method 
16911         provides an implementation for an method inherited from an interface. 
16912         In this case, the interface resolution code will set im->slot, which 
16913         means that the virtual method override pass will skip this method 
16914         which means a pointer to the abstract method inherited from the parent
16915         will remain in the vtable of this non-abstract class.
16916
16917         * class.c: (mono_class_setup_vtable): continue search for a real 
16918         method if only an abstract method is found.     
16919
16920 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16921
16922         * reflection.c: add size to encoding for ByValStr and ByValArray
16923         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16924
16925 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16926
16927         * class.c (mono_class_setup_vtable): pass the override info as an
16928         argument.
16929
16930         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16931         correctly.
16932         
16933         * reflection.c (ensure_runtime_vtable); add support for method 
16934         overrides.
16935         
16936 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16937
16938         * reflection.c (resolution_scope_from_image): Hack to work to work with
16939         dynamic assemblies.
16940
16941         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16942         added a 'force_ref' argument to force this function to allways return 
16943         a TypeRef. This is needed by mono_image_get_memberref_token ().
16944         
16945 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16946
16947         * reflection.c (mono_image_get_type_info): interfaces really don't have
16948         a parent.
16949
16950         * reflection.c (mono_image_basic_init): fill out missing fields of
16951         image structure.
16952
16953         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16954         dynamic assemblies. This is required so dynamic assemblies show up in
16955         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16956         Type::GetType() etc. This is consistent with MS behaviour.
16957
16958         * image.c image.h reflection.c: add newly created classes to the name 
16959         cache so mono_class_get () will find them.      
16960
16961 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16962
16963         First part of changes to get IKVM.NET running under mono.
16964         
16965         * appdomain.h, appdomain.c: added new function 
16966         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16967         This function will call AppDomain::DoTypeResolve to do the actual work.
16968
16969         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16970         moved existing code dealing with dynamic tokens to a new function 
16971         called mono_reflection_lookup_dynamic_token (). This function will 
16972         raise TypeResolve events when appropriate. Since reflection.c is not 
16973         part of libmetadata, a new hook function called 
16974         mono_lookup_dynamic_token() is added to class.c which will call this.
16975
16976         * assembly.h assembly.c: make the invoke_load_hook function public,
16977         so it can be called for dynamic assemblies.
16978
16979         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16980
16981         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16982         type isn't found.
16983
16984         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16985         MonoGHashTable, since it contains pointers to objects which the GC 
16986         needs to track.
16987
16988         * assembly.c (search_loaded): remove unused variable.
16989         
16990 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16991
16992         * object.c: fixed issue exposed by gcc-generated IL programs
16993         that use RVA data for pointers.
16994
16995 2003-01-25  Martin Baulig  <martin@ximian.com>
16996
16997         * threads.c (start_wrapper): Moved the initialization of
16998         `start_func' above the mono_new_thread_init() call to which we
16999         pass it as argument.
17000
17001 2003-01-24  Martin Baulig  <martin@ximian.com>
17002
17003         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
17004         the MonoThread pointer.
17005
17006 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
17007
17008         * icall.c: Rename `PowImpl' to Pow.
17009
17010 2003-01-23  Dick Porter  <dick@ximian.com>
17011
17012         * threads.c (start_wrapper): Create a Thread object if needed, so
17013         the Main() thread can do the class initialisation in a subthread
17014         that has been set up to allow managed code execution.
17015
17016         Pass the thread ID instead of the MonoThread pointer to the thread
17017         start and attach callbacks.  This change is required, because the
17018         jit thread start callback must be called _before_ the Thread
17019         object can be created.
17020         
17021         (mono_thread_init): Removed much object creation code that is no
17022         longer needed.  No managed code is called from here now.
17023
17024         * object.c (mono_runtime_exec_managed_code): Create a subthread
17025         for Main, and call back to the runtime to use it.
17026         Set the exit code when Main exits.
17027
17028         * gc.c: Make sure domain finalisation happens in a subthread.
17029         Re-enable threaded GC, fixing bug 31333 (again).
17030
17031         * environment.c: System.Environment internall calls (so far just
17032         ExitCode is here, the others are still in icall.c)
17033
17034         * appdomain.c (mono_runtime_cleanup): All threads running managed
17035         code should have finished before mono_runtime_cleanup() is
17036         reached, so no need to clean up threads.
17037
17038 2003-01-22  Martin Baulig  <martin@ximian.com>
17039
17040         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
17041         `gpointer func' arguments.      
17042         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
17043         but added `MonoThread *thread' argument.
17044         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
17045
17046         * threads.c (mono_new_thread_init): Added `gpointer func' argument
17047         and pass it to the mono_thread_start_cb callback.
17048         (mono_install_thread_callbacks): New public function to install a
17049         set of callbacks which are set by the debugger.
17050         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
17051
17052 2003-01-22  Martin Baulig  <martin@ximian.com>
17053
17054         * Makefile.am: Install debug-mono-symfile.h.
17055
17056 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
17057
17058         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
17059
17060 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
17061
17062         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
17063         * class.c (mono_ptr_class_get): correctly set access levels of pointers
17064         (mono_array_class_get): correctly set access levels of arrays
17065
17066 2003-01-20      Patrik Torstensson
17067         * image.h (MonoAssemblyName): changed major, minor, build, revision
17068         from signed to unsigned.
17069
17070 2003-01-20  sean kasun <skasun@azstarnet.com>
17071
17072         * reflection.c (load_cattr_value): Now this handles
17073         MONO_TYPE_SZARRAY.  Fixes bug #35629
17074
17075 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
17076
17077         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
17078         integer value
17079
17080 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17081
17082         * decimal.c: fixed bug #26056.
17083
17084 2003-01-17  Martin Baulig  <martin@ximian.com>
17085
17086         * gc.c: Raise an ExecutionEngineException instead of using g_error().
17087
17088 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17089
17090         * exception.[ch]:
17091         (mono_get_exception_type_initialization): new function.
17092
17093         * object.c: throw a TypeInitializationException when an exception is
17094         thrown invoking the class constructor.
17095
17096 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17097
17098         * reflection.c: fixed attribute reading.
17099
17100 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17101
17102         * icall.c:
17103         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
17104         provided, look for the type in the calling assembly and then in
17105         mscorlib; if the assembly name is provided, only try that one.
17106
17107 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
17108
17109         * object.c: register the vtable before there is a chance it's
17110         queried again recursively.
17111
17112 2003-01-13  Duncan Mak  <duncan@ximian.com>
17113
17114         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
17115         gc-internal.h. 
17116         
17117 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
17118
17119         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
17120
17121 2003-01-11  Martin Baulig  <martin@ximian.com>
17122
17123         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
17124         this to 20 for the release.
17125
17126 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
17127
17128         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
17129
17130         * loader.c (mono_method_get_marshal_info): bug fix
17131
17132         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
17133         structures with explicit layout
17134
17135 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17136
17137         * profiler.c: made the output more readable (and sorted). 
17138         Added caller information for the allocation profiler.
17139
17140 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
17141
17142         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
17143
17144 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17145
17146         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
17147         to get value types.
17148         
17149 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
17150
17151         * object.c, profiler.h, profiler.c, profiler-private.h:
17152         Added object allocation profiler.
17153
17154 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
17155
17156         * reflection.h, reflection.c: handle global methods.
17157         Compress blob entries.
17158
17159 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
17160
17161         * marshal.c: fix compilation.
17162
17163 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
17164
17165         * loader.c (mono_method_get_marshal_info): impl.
17166
17167         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
17168
17169 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17170
17171         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
17172         for reference types.
17173
17174 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
17175
17176         * loader.c: fixed off by one error in loaded parameter names.
17177
17178 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
17179
17180         * marshal.c (mono_marshal_get_icall_wrapper): like
17181         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
17182         instead of a MonoMethod.
17183
17184 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17185
17186         * decimal.c: fixed bug #36537.
17187
17188 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
17189
17190         * marshal.c: throw a missing method exception if a
17191         P/Invoke method is not found.
17192
17193 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17194
17195         * icall.c: allow a null this for constructors.
17196
17197 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
17198
17199         * icall.c: raise the proper exceptions if the arguments to the
17200         internal Invoke are incorrect.
17201
17202 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
17203
17204         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
17205
17206 2003-01-03  Martin Baulig  <martin@ximian.com>
17207
17208         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17209
17210 2002-12-31  Martin Baulig  <martin@ximian.com>
17211
17212         * debug-mono-symfile.c: Completely rewrote the type section.
17213         Instead of using individual malloc()ed fields, we use one big
17214         continuous memory area and offsets into this area.
17215         See the comments in the source code for details.
17216
17217 2002-12-30  Martin Baulig  <martin@ximian.com>
17218
17219         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
17220
17221 2002-12-30  Martin Baulig  <martin@ximian.com>
17222
17223         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
17224         line number table in this data blob instead of using an external
17225         pointer.
17226
17227 2002-12-28  Martin Baulig  <martin@ximian.com>
17228
17229         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17230
17231 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
17232
17233         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
17234         as a boxed return type.
17235
17236 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
17237
17238         * appdomain.c
17239         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
17240         g_build_filename to properly get separators on the filename created.
17241
17242         * object.h: Small change, introduce MonoMarshalByRefObject to
17243         track the layout of that structure in the C# universe as we make
17244         changes there.
17245
17246 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
17247
17248         * object.c: removed assert to allow static fields on interfaces.
17249         * loader.c: a TypeSpec may be used for any type, not just arrays.
17250
17251 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17252
17253         * class.c, class.h: added mono_class_array_element_size ().
17254         Ignore static methods in interfaces.
17255
17256 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17257
17258         * threads.c: fixed the build under cygwin.
17259
17260 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
17261
17262         * reflection.c: handle nullref constants. Allocate keys for
17263         reflection handles with the GC.
17264
17265 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17266
17267         * threads.c, threads.h: added mono_thread_get_abort_signal()
17268         to get a suitable signal for thread abort.
17269
17270 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17271
17272         * metadata.c: fix handling of ExportedType table.
17273
17274 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17275
17276         * icall.c: added WriteWindowsDebugString internal call.
17277
17278 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17279
17280         * reflection.h: added fields to match C# implementation.
17281
17282 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17283
17284         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
17285
17286 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
17287
17288         * gc.h, gc-internal.h: Rename header for GC internal calls to
17289         gc-internal.h from gc.h as to not clash with Boehm GC having its
17290         header installed as <gc.h> in outside include paths.
17291         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
17292         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
17293
17294 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17295
17296         * icall.c: assign minor, build and revision in FillName.
17297
17298 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
17299
17300         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
17301         Added support for running code generated by Reflection.Emit.
17302
17303 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17304
17305         * appdomain.c: check for NULL argument in LoadFrom.
17306
17307 2002-12-10  Dick Porter  <dick@ximian.com>
17308
17309         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
17310
17311 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17312
17313         * appdomain.c: fix buglet when building exe file name.  Handle full
17314         assembly name (needed after latest changes to AssemblyName).
17315         * image.c:
17316         (mono_image_close): free some hashtables.
17317
17318 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
17319
17320         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
17321         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
17322         on some systems (redhat 7.3) 
17323
17324 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
17325
17326         * threads.c: delete the critical section of a sync block,
17327         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
17328
17329 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
17330
17331         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
17332
17333 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17334
17335         * appdomain.[ch]: handle the assembly preload event to try loading the
17336         assemblies using the paths we have in the current domain.
17337
17338         * assembly.[ch]: created an assembly preload hook that is called to try
17339         loading the assembly by other means that the ones provided here.
17340
17341         * domain.c: initialize the domain search path.
17342
17343         From now on, assemblies (TODO: except corlib and System) are loaded
17344         according to these rules when using mono_assembly_load ():
17345
17346                 1. It tries to load the assembly from the ApplicationBase
17347                 of the current domain appending .dll and .exe (TODO: have to
17348                 try loading from name/name.dll and name/name.exe).
17349
17350                 2. It tries the search path specified in PrivateBinPath for the
17351                 current domain (if any).
17352
17353                 3. Previous behavior.
17354
17355 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
17356
17357         * icall.c: implemented GetInterfaceMap() related icall.
17358         * domain.c, loader.h: load MethodInfo in mono_defaults.
17359
17360 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17361
17362         * gc.c: disable the finalizer thread for now, untill all the issues
17363         with it are resolved.
17364
17365 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17366
17367         * string-icalls.c: handle embedded nulls in string ctor when the
17368         length is specified.
17369
17370 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17371
17372         * class.c: look for explicit interface implementation in parent
17373         classes, too.
17374
17375 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
17376
17377         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
17378
17379 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
17380
17381         * gc.c: protect handles with a critical section.
17382
17383 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17384
17385         * icall.c:
17386         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
17387         parameters. If no assembly specified, try getting the type from all
17388         the assemblies in the current domain, else, load the assembly and get
17389         the type from it.
17390
17391 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17392
17393         * marshal.c: applied patch from Aleksey Demakov that fixes
17394         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
17395
17396 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17397
17398         * icall.c: fixed get_location.
17399
17400 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
17401
17402         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
17403         declarations to make it work with older gcc. 
17404
17405         * loader.c (mono_get_method): set signature->pinvoke for native calls
17406
17407 2002-11-20  Dick Porter  <dick@ximian.com>
17408
17409         * threads.c (mono_thread_init): Set the main thread's handle
17410
17411 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17412
17413         * gc.c: allow compilation without GC support. Changed to match the
17414         mono coding style.
17415
17416 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17417
17418         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
17419
17420 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
17421
17422         * reflection.c: set a public key token on the core assemblies.
17423
17424 2002-11-18  Dick Porter  <dick@ximian.com>
17425
17426         * threads.c: Split out some thread initialisation so that other
17427         files can set the start callback function.
17428
17429         * gc.c: Run finalisers in a separate thread, to avoid stack
17430         overflow.  Fixes bug 31333.
17431
17432         * appdomain.c: Set up GC finalisation thread.
17433
17434         * reflection.c: 
17435         * object.c: 
17436         * domain.c: Use gc.h macros for GC_malloc
17437         
17438 2002-11-15  Dick Porter  <dick@ximian.com>
17439
17440         * threadpool.c: 
17441         * threads.c:
17442         * appdomain.c: Removed mono_runtime_init_with_attach(),
17443         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
17444         merging the extra parameter with the existing function.  Removed
17445         unneeded code in mono_thread_attach().
17446
17447 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
17448
17449         * image.c (mono_image_loaded_by_guid): a method to get loaded
17450         images by guid. 
17451         (load_metadata_ptrs): we store the guid as string.
17452
17453 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
17454
17455         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
17456
17457         * metadata.c (mono_guid_to_string): imported method form Zoltan
17458         Varga (slightly modified)
17459
17460         * assembly.c (mono_assembly_open): load precompiled code
17461
17462         * loader.h (MonoMethod): we store the method token for use in the
17463         aot compiler. 
17464
17465 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17466
17467         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17468         the hook function called when an assembly is loaded.
17469         
17470         * domain.c: Modified file.
17471         (mono_domain_assembly_load): removed hash table insertion of assemblies.
17472
17473         Fixes bug #33196.
17474
17475 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
17476
17477         * reflection.c: Map PEFileKind to the value expected by the WinNT
17478         image loader. 
17479
17480 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17481
17482         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17483         Read until the buffer is filled completely.
17484
17485 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17486
17487         * icall.c: implemented MonoType.InternalGetEvent ().
17488
17489 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17490
17491         * appdomain.c: implemented InitAppDomainSetup. Delayed
17492         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17493         the entry_assembly.
17494
17495         * assembly.c: base_dir is now an absolute path ending with
17496         G_DIR_SEPARATOR.
17497
17498         * icall.c: modified get_location according to the above changes.
17499
17500         * object.c: init AppDomain.SetupInformation for the default domain after
17501         we have the entry assembly.
17502
17503         * domain.c: when unloading a domain, setup = NULL.
17504
17505 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
17506
17507         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17508
17509 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17510
17511         * object.h, object.c: introduced mono_object_get_virtual_method ()
17512         to lookup the method invoked on an object when a callvirt is done on
17513         a method.
17514         * icall.c: make MethodInfo::Invoke() always do a virtual call.
17515
17516 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17517
17518         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17519         current domain when loaded an assembly and failed to load it.
17520
17521         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17522
17523 2002-10-31  Dick Porter  <dick@ximian.com>
17524
17525         * icall.c: 
17526         * file-io.h: 
17527         * file-io.c: Return the error status in a parameter, as the
17528         GetLastError() value has long since been blown away if we try and
17529         look it up in a subsequent internal call invocation.  Delete the
17530         GetLastError() internal call, because it's useless.
17531
17532 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
17533
17534         * class.[ch]: added cast_class to fix bug 29517
17535
17536 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17537
17538         * marshal.c: create valid IL code in the filter clause:
17539         the new JIT is less forgiving:-)
17540
17541 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17542
17543         * icall.c: removed get_property internal call.
17544
17545 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
17546
17547         * appdomain.h domain.c: Added an ID to appdomains.
17548         
17549         * threads.c threads.h icall.c: Implement icall
17550         Thread:GetDomainID(), and remove unused icall 
17551         CurrentThreadDomain_internal.
17552
17553 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17554
17555         * icall.c: Don't recurse through the base types in GetConstructor.
17556         Fixes bug #32063. 
17557
17558 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17559
17560         * mempool.h, mempool.c: added mono_mempool_empty() and
17561         mono_mempool_stats().
17562
17563 2002-10-23  Dick Porter  <dick@ximian.com>
17564
17565         * file-io.c: 
17566         * file-io.h: 
17567         * icall.c: Added MonoIO.GetFileType internal call
17568
17569 2002-10-17  Dick Porter  <dick@ximian.com>
17570
17571         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17572         delegate semaphore before waiting for all threads to finish,
17573         because new threads can also call async delegates.  Fixes bug
17574         32004.
17575
17576         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17577         of 3 seconds, in case another async job is queued.  (This part is
17578         needed because the bug fix reintroduced the 3s exit lag.)  This
17579         makes the mono_runtime_shutdown flag superfluous.
17580
17581 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17582
17583         * reflection.c: include ehader size in method section headers.
17584         Really check for suplicated modules entries.
17585
17586 2002-10-17  Martin Baulig  <martin@gnome.org>
17587
17588         * debug-mono-symfile.c: Added back support for locals.
17589
17590 2002-10-14  Martin Baulig  <martin@gnome.org>
17591
17592         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17593         MONO_TYPE_VOID.
17594
17595 2002-10-14  Martin Baulig  <martin@gnome.org>
17596
17597         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17598         mono_class_get() instead of looking in the class cache. 
17599
17600 2002-10-13  Martin Baulig  <martin@gnome.org>
17601
17602         * debug-mono-symfile.c: Set version number to 28, include the
17603         signature in method names.
17604
17605 2002-10-13  Martin Baulig  <martin@gnome.org>
17606
17607         * debug-mono-symfile.h: Set version number to 27.
17608
17609 2002-10-11  Martin Baulig  <martin@gnome.org>
17610
17611         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17612
17613 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17614
17615         * metadata.c, metadata.h: added helper function to allocate signatures.
17616
17617 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17618
17619         * icall.c: added internal call to get the location of machine.config.
17620
17621 2002-10-08  Martin Baulig  <martin@gnome.org>
17622
17623         * debug-mono-symfile.c: Ignore classes with a pending init for the
17624         moment.
17625
17626 2002-10-03  Dick Porter  <dick@ximian.com>
17627
17628         * threads.c: Freebsd pthread_t is a pointer
17629
17630 2002-10-03  Dick Porter  <dick@ximian.com>
17631
17632         * socket-io.c: Implemented GetHostName_internal
17633
17634 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17635
17636         * mono-config.c:
17637         (mono_config_parse_file): don't leak the text.
17638
17639 2002-10-02  Martin Baulig  <martin@gnome.org>
17640
17641         * debug-mono-symfile.c: Added support for methods.
17642
17643 2002-10-01  Martin Baulig  <martin@gnome.org>
17644
17645         * debug-mono-symfile.c: Don't emit methods and line numbers for
17646         the dynamic symbol file, just write the type table.  We can easily
17647         have an external helper program which creates a symbol file for an
17648         IL file.        
17649
17650 2002-10-01  Dick Porter  <dick@ximian.com>
17651
17652         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17653         Only add the handle to the cleanup array when we're about to
17654         launch the thread.  Bug 31425 deadlocked when the test was run on
17655         mono under w32.
17656
17657 2002-10-01  Martin Baulig  <martin@gnome.org>
17658
17659         * debug-mono-symfile.c: Added support for properties.
17660
17661 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17662
17663         * reflection.c: unaligned store fix from Mark Crichton
17664         <crichton@gimp.org>.
17665
17666 2002-09-27  Martin Baulig  <martin@gnome.org>
17667
17668         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17669         New interncall.
17670
17671 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17672
17673         * assembly.h, assembly.c: use a sane API to hook into the assembly
17674         loading process instead of a useless special-purpouse hack
17675         (ngen needs a hook, too, for example).
17676
17677 2002-09-27  Dick Porter  <dick@ximian.com>
17678
17679         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17680         io-layer can set up some process handle info.  Not needed on w32,
17681         but doesn't hurt either.
17682
17683         * process.c: Pass the program name in the second parameter to
17684         CreateProcess, so the path is searched.  Include the working
17685         directory. Implemented process name, process enumeration, and some
17686         process detail internal calls.
17687         
17688         * icall.c: Added internal calls for process lookup, and some
17689         process details
17690
17691 2002-09-26  Martin Baulig  <martin@gnome.org>
17692
17693         * assembly.c (mono_install_open_assembly_hook): New global
17694         function to install a function to be invoked each time a new
17695         assembly is loaded.
17696         (mono_assembly_open): Run this callback function if set.
17697
17698         * debug-mono-symfile.c: Put back line numbers for the dynamic
17699         symbol file and also record the .il file as source file.  This
17700         allows us to install the temporary symbol file as `file.dbg' just
17701         like a compiler-generated one.
17702
17703 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17704
17705         * Corrected typo in gc.c (BOHEM vs BOEHM).
17706
17707 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17708
17709         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17710         GetProperties. Also avoid calling g_slist_length in GetProperties and
17711         GetMethods.
17712
17713 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17714
17715         * reflection.c: avoid unaligned stores (bug spotted by
17716         Mark Crichton  <crichton@gimp.org>).
17717
17718 2002-09-25  Martin Baulig  <martin@gnome.org>
17719
17720         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17721         instead of guint64 for addresses and added prologue/epilogue info.
17722
17723 2002-09-25  Martin Baulig  <martin@gnome.org>
17724
17725         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17726         store line number info.  For the dynamic symbol file, we only need
17727         to provide the JIT generated dynamic line number info for the dynamic
17728         symbol file.
17729
17730 2002-09-25  Martin Baulig  <martin@gnome.org>
17731
17732         * debug-mono-symfile.h: Incremented version number.
17733
17734 2002-09-24  Martin Baulig  <martin@gnome.org>
17735
17736         * class.c (mono_debugger_class_init_func): New global function
17737         pointer variable.
17738         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17739         call it.
17740
17741         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17742         function.  This is called via the mono_debugger_class_init_func
17743         hook to add all types to the dynamic type table.
17744         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17745         from its metadata token.
17746
17747         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17748         New interncall for the debugger.
17749
17750 2002-09-24  Nick Drochak <ndrochak@gol.com>
17751
17752         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17753         before using it in case it is null.
17754         
17755 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17756
17757         * metadata.c: allow custom modifiers in local var signatures
17758         (bug spotted by Zoltan Varga).
17759
17760 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17761
17762         * class.c: deal with the <Module> class that may have a NULL vtable.
17763         Eliminate warnings.
17764
17765 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17766
17767         * image.c, image.h: more strong name helpers.
17768         * monosn.c: more work: convert pem keys to cryptoapi format.
17769
17770 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17771
17772         * string-icalls.c: speedup IndexOf.
17773
17774 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17775
17776         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17777
17778 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17779
17780         * icall.c: cleanup: use mono_object_domain ().
17781
17782 2002-09-23  Martin Baulig  <martin@gnome.org>
17783
17784         * debug-mono-symfile.c: Improved type support.
17785
17786 2002-09-22  Martin Baulig  <martin@gnome.org>
17787
17788         * debug-mono-symfile.c: Added support for reference types and strings.
17789
17790 2002-09-22  Martin Baulig  <martin@gnome.org>
17791
17792         * debug-mono-symfile.c: Started to work on the type table.
17793
17794 2002-09-21  Martin Baulig  <martin@gnome.org>
17795
17796         * debug-mono-symfile.c: Largely reworked the symbol table format.
17797         The symbol table is now incrementally updated each time a new
17798         method is added.  We're now also using our own magic and version
17799         so that you don't need to recompile all your classes if the
17800         dynamic table changes.
17801         (mono_debug_update_mono_symbol_file): Removed.
17802         (mono_debug_symfile_add_method): New function to add a method.
17803
17804 2002-09-21  Martin Baulig  <martin@gnome.org>
17805
17806         * icall.c
17807         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17808         New interncall.
17809
17810         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17811         New interncall to get a method from its metadata token.
17812
17813 2002-09-21  Martin Baulig  <martin@gnome.org>
17814
17815         * debug-mono-symfile.c: Create type table.
17816
17817 2002-09-20  Martin Baulig  <martin@gnome.org>
17818
17819         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17820
17821 2002-09-20  Martin Baulig  <martin@gnome.org>
17822
17823         * debug-mono-symfile.c: Provide information about params and locals.
17824
17825 2002-09-20  Martin Baulig  <martin@gnome.org>
17826
17827         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17828         New interncall.
17829
17830         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17831         interncall to get a method from its metadata token.
17832
17833 2002-09-20  Martin Baulig  <martin@gnome.org>
17834
17835         * debug-mono-symfile.c: Added a few checks for method->header
17836         being non-NULL.  This should never happen, but for the moment
17837         let's use a g_warning() rather than a g_assert().
17838
17839 2002-09-19  Mark Crichton  <crichton@gimp.org>
17840
17841         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17842         even if support for it isn't present.  Added an #ifdef to fix this.
17843
17844         * socket-io.c: Added checks back for Solaris support.
17845
17846 2002-09-19  Martin Baulig  <martin@gnome.org>
17847
17848         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17849         changes in the symbol file format.
17850
17851 2002-09-18  Martin Baulig  <martin@gnome.org>
17852
17853         * debug-mono-symfile.c: Set version number to 21.
17854
17855 2002-09-18  Dick Porter  <dick@ximian.com>
17856
17857         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17858         on netbsd.  Fixes bug 30051.
17859
17860 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17861
17862         * reflection.c:
17863         (set_version_from_string): little fix.
17864
17865 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17866
17867         * monosn.c, Makefile.am: added strong name utility.
17868         * reflection.h, reflection.c: implemented delayed signing,
17869         locale, version and hash id assembly attributes.
17870
17871 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17872
17873         * loader.c, metadata.c: load param attributes in signatures.
17874
17875 2002-09-16  Martin Baulig  <martin@gnome.org>
17876
17877         * debug-mono-symfile.c: Added string table with all method names.
17878
17879 2002-09-14  Martin Baulig  <martin@gnome.org>
17880
17881         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17882         fast method lookup.
17883
17884 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17885
17886         * reflection.c: record the public key token of referenced assemblies.
17887
17888 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17889
17890         * image.c, image.h: added functions to get the strong name and the
17891         public key of an assembly.
17892         * pedump.c: use them.
17893
17894 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17895
17896         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17897
17898 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17899
17900         * marshal.c (mono_marshal_get_managed_wrapper): Added
17901         MONO_TYPE_BOOLEAN 
17902
17903 2002-09-11  Martin Baulig  <martin@gnome.org>
17904
17905         * gc.c: Call GC_unregister_disappearing_link() on all links when
17906         finalizing them, this is necessary to aviod a crash in boehm's
17907         finalize handler.
17908
17909 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17910
17911         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17912         nick@chemlab.org.
17913
17914 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17915
17916         * icall.c: implemented MonoType::Module.
17917         * reflection.c, reflection.h: mono_module_get_object () from
17918         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17919
17920 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17921
17922         * icall.c: ignore overridden methods in GetMethods ().
17923         Fix for FieldInfo::SetValue().
17924         * object.c: handle float/double in runtime invoke.
17925
17926 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17927
17928         * object.c: allow a constructor to be called again on an object.
17929
17930 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17931
17932         * class.h, class.c: move field layout code to it's own function and
17933         export it. Get an interface id earlier. Move fields in MonoClass
17934         so they are more cache friendly and align the bitfields.
17935         * loader.c: temporary handle get_param_names() for a runtime method.
17936         * reflection.c, reflection.h: more code to handle runtime creation of
17937         types.
17938
17939 2002-09-09  Martin Baulig  <martin@gnome.org>
17940
17941         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17942         signature with the pinvoke field being set for the actual call.
17943
17944 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17945
17946         * icall.c: removed some unused icalls. Start of map of glib charsets
17947         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17948
17949 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17950
17951         * debug-helpers.c: break infinite loop (found and fixed by
17952         Holger Arnold <harnold@gmx.de>).
17953
17954 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17955
17956         * icall.c: target may be null in create_delegate.
17957
17958 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17959
17960         * marshal.c: handle a boolean return type.
17961
17962 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17963
17964         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17965
17966 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17967
17968         * gc.c: fix weakreferences.
17969
17970 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17971
17972         * icall.c: added icall to get default codepage.
17973
17974 2002-09-03  Dick Porter  <dick@ximian.com>
17975
17976         * threads.h: 
17977         * threads.c: Use MonoThread instead of MonoObject where
17978         apropriate.
17979
17980         Store running thread objects in a hash table, so that we have all
17981         the info to hand when waiting for them to finish
17982         (means we don't need OpenThread() any more, so mingw builds should
17983         be fully functional again.)
17984
17985         * verify.c:
17986         * object.h: Added thread ID to MonoThread
17987
17988 2002-09-03  Martin Baulig  <martin@gnome.org>
17989
17990         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17991
17992 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17993
17994         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17995
17996 2002-09-03  Martin Baulig  <martin@gnome.org>
17997
17998         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17999         argument to store the end address of the disassembled instruction.
18000
18001         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
18002         here from debug-symfile.h.
18003         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
18004         JIT into this struct.
18005         (MonoSymbolFile): Added `char *image_file' field.
18006         (MonoDebugGetMethodFunc): Removed.
18007         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
18008         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
18009         (mono_debug_find_method): New method.
18010
18011         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
18012         create a full symbol file.
18013         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
18014         and static symbol files.
18015         (mono_debug_find_method): The symbol file keeps an internal method hash,
18016         call this to get a MonoDebugMethodInfo from a MonoMethod.
18017
18018         * debug-symfile.[ch]: Removed.
18019
18020 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
18021
18022         * image.c (do_mono_image_open): Remove linker version check.
18023
18024 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
18025
18026         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
18027         wrappers for instance methods.
18028         
18029 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18030
18031         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
18032
18033 2002-08-28  Dick Porter  <dick@ximian.com>
18034
18035         * Makefile.am: Export HOST_CC for w32 builds
18036
18037 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18038
18039         * file-io.c process.c: MonoString are null terminated, no
18040         need for mono_string_to_utf16() anymore.
18041
18042 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
18045
18046 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
18047
18048         * icall.c, reflection.h: speedup System.MonoType.
18049
18050 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18051
18052         * reflection.c: allow null as the value of a string argument in
18053         custom attributes constructors.
18054
18055 2002-08-27  Martin Baulig  <martin@gnome.org>
18056
18057         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
18058         `trampoline_address' field.
18059
18060 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
18061
18062         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
18063         check (fixes bug #29486) 
18064
18065 2002-08-27  Martin Baulig  <martin@gnome.org>
18066
18067         * debug-mono-symfile.c: Changed the file format in a way that allows us
18068         open it read-only and to use a specially malloced area for all the
18069         dynamic data.  We can now also generate a symbol file on-the-fly if we're
18070         debugging IL code and there is no MCS generated symbol file for it.
18071
18072 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18073
18074         * object.c: added a define for a good string and array
18075         creation speedup (not enabled by default because we need to deal with
18076         the synch stuff).
18077
18078 2002-08-26  Martin Baulig  <martin@gnome.org>
18079
18080         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
18081         function to create a dynamic symbol file.  This is used by the
18082         debugger to create a symbol file for IL code on-the-fly.
18083
18084 2002-08-26  Martin Baulig  <martin@gnome.org>
18085
18086         * loader.c (mono_lookup_pinvoke_call): Include the error message
18087         from g_module_error() in the error message.
18088
18089 2002-08-24  Martin Baulig  <martin@gnome.org>
18090
18091         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
18092         function to update the symbol file.  The symbol file is mmap()ed
18093         writable, but private.  This allows us to install the symbol file
18094         together with the assembly.
18095
18096 2002-08-24  Martin Baulig  <martin@gnome.org>
18097
18098         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
18099         but they can read the new symbol file format which mcs is now creating.
18100
18101         * debug-symfile.c (mono_debug_find_source_location): Moved to
18102         debug-mono-symfile.c; this is now operating on the new symbol file.
18103
18104 2002-08-23  Martin Baulig  <martin@gnome.org>
18105
18106         * debug-helpers.c (mono_method_desc_from_method): New function to get
18107         a MonoMethodDesc from a MonoMethod.
18108
18109 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18110
18111         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
18112         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
18113
18114 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18115
18116         * string-icalls.[ch]: make helper methods static.
18117
18118 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18119
18120         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
18121         types to it and to SetValueInternal.
18122
18123         * object.c: Moved handle_enum label to its proper place. This was the
18124         f... bug! ;-)
18125
18126         This time i compiled mcs and gtk-sharp and they both work.
18127
18128 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18129
18130         * icall.c: reverted partially my previous patch until 
18131         object.c:set_value handles enums correcly.
18132
18133 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18134
18135         * icall.c:
18136         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
18137         (ves_icall_System_Environment_get_MachineName): removed warning when
18138         compiling under cygwin.
18139
18140 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18141
18142         * object.c: fixed field_get_value() for reference types.
18143
18144 2002-08-22  Dick Porter  <dick@ximian.com>
18145
18146         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
18147         Don't free a buffer while it's still needed.  Patch from Jonathan
18148         Liger <Jonathan.liger@wanadoo.fr>
18149
18150 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
18151
18152         * icall.c (ves_icall_System_Environment_get_Platform): Add new
18153         internal call.
18154
18155 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
18156
18157         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
18158         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
18159
18160         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
18161         we call unmanaged code which throws exceptions.
18162
18163 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18164
18165         * appdomain.h: added per-domain entry_assembly.
18166         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
18167         arguments.
18168         * icall.c: Assembly::GetEntryAssembly icall.
18169         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
18170         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
18171
18172 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18173
18174         * appdomain.h, gc.c: added mono_domain_finalize ().
18175
18176 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18177
18178         * object.c:
18179         (mono_print_unhandled_exception): changed g_warning by g_printerr
18180         because g_log has a 1024 characters limit (yeah, i got a big stack
18181         trace). Don't print exception name, that should be in ToString 
18182         returned string.
18183
18184 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18185
18186         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
18187         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
18188
18189 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18190
18191         * object.c:
18192         (mono_print_unhandled_exception): after previous commit, i realized
18193         that MS calls ToString on the exception. I changed this function to
18194         do that. This way we get stack_trace for free.
18195
18196 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18197
18198         * object.c:
18199         (mono_print_unhandled_exception): invoke Message property instead of
18200         getting 'message' field from Exception. Don't allocate memory for
18201         'trace' and 'message' if not needed.
18202
18203 2002-08-18  Dick Porter  <dick@ximian.com>
18204
18205         * unicode.c: Fix asserts to match Encoder.cs checks
18206
18207 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18208
18209         * marshal.c: fix unaligned store issue and a few wrong
18210         opcode argument types.
18211
18212 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18213
18214         * icall.c: added GetUninitializedObjectInternal internal call.
18215
18216 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
18217
18218         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
18219         to the right domain.
18220
18221 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
18222
18223         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
18224
18225         * class.c (class_compute_field_layout): set blittable to false for Strings
18226
18227         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
18228
18229 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18230
18231         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
18232         first chunk of code to create types at runtime. Code to
18233         handle ReflectedType/DeclaringType. Make reflection handles
18234         domain specific.
18235
18236 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18237
18238         * class.c: set correct name in arrays.
18239
18240 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
18241
18242         * appdomain.c (mono_domain_transfer_object): make it work with
18243         valuetypes. bug fixes.
18244
18245 2002-08-12  Dick Porter  <dick@ximian.com>
18246
18247         * object.h: Rename some parameters to avoid c++ keywords (Patch
18248         from Joseph Wenninger <kde@jowenn.at>)
18249
18250 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
18251
18252         * icall.c: added icall to implement Assembly.GetFile*.
18253
18254 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18255
18256         * reflection.h, reflection.c: code to embed managed resources.
18257
18258 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18259
18260         * class.c: move all the type size stuff into
18261         class_compute_field_layout().
18262
18263 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18264
18265         * class.c: ensure enums have always the correct instance size.
18266         * unicode.c: remove wrong assert.
18267
18268 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18269
18270         * assembly.c: fix mem corruption issue.
18271         * image.h, image.c: added mono_image_get_resource () to access
18272         managed resources.
18273         * icall.c: implemented Assembly.EntryPoint property and some
18274         Managed Resources related internalcalls.
18275
18276
18277 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18278
18279         * image.c, image.h: impemented mono_image_get_entry_point ().
18280         * appdomain.c: use mono_image_get_entry_point.
18281
18282 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18283
18284         * reflection.c: support the object type argument when loading
18285         custom attributes.
18286
18287 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
18288
18289         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
18290         String as return type.
18291
18292 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
18293
18294         * reflection.c: fix encoding of named args for custom attrs to match
18295         the ms implementation. Read them back when instantiating custom
18296         attributes.
18297
18298 2002-08-02  Radek Doulik  <rodo@ximian.com>
18299
18300         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
18301         by Dietmar as quick fix
18302         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
18303         16 as stack size, used on more places as quick fix before Dietmar
18304         will fix it properly
18305
18306 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18307
18308         * object.h, object.c: added accessors for fields and properties.
18309
18310 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18311
18312         * class.c, class.h: made mono_class_get_field_from_name ()
18313         loop on parent types.
18314         Added mono_class_get_property_from_name ().
18315
18316 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18317
18318         * class.c, class.h: move the code to setup the type vtable in its own
18319         function so that it can be reused also for types created at runtime.
18320         Eliminate the "class" identifier from the header file.
18321         * reflection.c: setup the vtable for enums so that we can create
18322         objects for use in SetConstant ().
18323
18324 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
18325
18326         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
18327         instead of the delegate itself as this pointer (bug #28383)
18328
18329 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
18330
18331         * marshal.c (mono_marshal_get_managed_wrapper): added return type
18332         conversions.
18333
18334 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18335
18336         * loader.c: don't set the pinvoke bit on icalls.
18337
18338 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
18339
18340         * debug-helpers.c (mono_method_full_name): only print a number to
18341         indicate wrapper type (so that the output is more readable in traces).
18342
18343 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
18344
18345         * class.c (mono_class_init): include method override patch from Paolo
18346
18347 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
18348
18349         * icall.c: fixed GetTypeCode().
18350
18351 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
18352
18353         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
18354         use real delegate invoke function to make it work with multicast
18355         delegates (fix bug# 28291).
18356
18357 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18358
18359         * object.c: load constant strings.
18360
18361 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18362
18363         * reflection.c: no magic numbers.
18364         * tabledefs.h: security action enum.
18365
18366 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18367
18368         * assembly.c: fix possible memory corruption.
18369
18370 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18371
18372         * reflection.h, reflection.c: added support for linking resources.
18373         * verify.c: check we have an updated corlib.
18374
18375 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
18376
18377         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
18378         string arrays.
18379         (mono_marshal_string_array): null terminate unmanaged string arrays.
18380         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
18381
18382 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18383
18384         * icall.c: Type.GetType () can now return also types from the
18385         calling assembly.
18386
18387 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18388
18389         * loader.h, loader.c: stack walking support.
18390         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
18391         GetCallingAssembly.
18392
18393 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
18394
18395         * marshal.c: added optimisations for blittable types 
18396
18397         * class.c (mono_array_class_get): do not set blittable attribute on arrays
18398         (mono_class_setup_mono_type): set blittable attribute for single
18399         and double.
18400
18401         * marshal.c (mono_string_utf8_to_builder): impl.
18402         (mono_string_builder_to_utf8): impl.
18403         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
18404
18405 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
18406
18407         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
18408         (mono_marshal_get_managed_wrapper): impl. byref types
18409
18410 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18411
18412         * icall.c:
18413         (search_method): don't display debug message. 
18414
18415 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18416
18417         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
18418
18419 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18420
18421         * appdomain.c: set the missing filename when throwing exception.
18422
18423 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18424
18425         * metadata.c (mono_type_size): code cleanup
18426         (mono_type_stack_size): removed some test code
18427
18428 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
18429
18430         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
18431         mono_get_exception_file_not_found now.
18432
18433         * exception.c (mono_exception_from_name_two_strings): New version
18434         that will call a constructor with two string arguments. 
18435         (mono_get_exception_file_not_found): New helper routine, used to
18436         report file-not-found errors.
18437
18438 2002-07-20  Dick Porter  <dick@ximian.com>
18439
18440         * process.h:
18441         * process.c: Pass file handles to CreateProcess
18442         
18443         * icall.c:
18444         * file-io.h:
18445         * file-io.c: Implemented CreatePipe
18446
18447 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18448
18449         * metadata.c (mono_get_param_info): set alignment for value types
18450
18451 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18452
18453         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
18454         Constify mono_domain_assembly_open().
18455         * loader.c: handle null namespace in icalls.
18456
18457 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18458
18459         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
18460         (emit_str_to_ptr_conv): marshal object as structs
18461
18462         * metadata.c (mono_type_to_unmanaged): marshal object as structs
18463
18464         * marshal.c (mono_marshal_get_runtime_invoke): support value types
18465
18466 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
18467
18468         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18469         (mono_marshal_get_native_wrapper): we an now return value types
18470
18471 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18472
18473         * verify.c: more checks implemented.
18474
18475 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
18476
18477         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18478         (fix bug #27695)
18479         (mono_marshal_get_native_wrapper): allow byref arguments
18480         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18481         impl. PtrToStringXXX methods
18482         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18483         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18484         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18485         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18486         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18487
18488 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18489
18490         * reflection.c: fix buglet in parsing an assembly name.
18491
18492 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18493
18494         * marshal.c (emit_ptr_to_str_conv): first impl.
18495
18496 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18497
18498         * object.c, class.h: cache the vtable in the class as suggested by
18499         vargaz@freemail.hu (Zoltan Varga).
18500
18501 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18502
18503         * class.h, loader.c: added mono_field_from_token().
18504         * verify.c: first cut of type checking code.
18505
18506 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18507
18508         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18509
18510 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
18511
18512         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18513         (fix bug #27782)
18514         (mono_marshal_get_remoting_invoke): impl.
18515         (mono_delegate_begin_invoke): impl.
18516         (mono_mb_emit_save_args): impl.
18517         (mono_delegate_end_invoke): impl.
18518         (mono_marshal_get_delegate_begin_invoke):
18519         (mono_marshal_get_delegate_end_invoke):
18520         (mono_marshal_get_delegate_invoke): generate a special name for
18521         those methods (including the signature) and associate them whith
18522         the delegate class. 
18523
18524 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18525
18526         * reflection.[ch]: 
18527         (mono_reflection_type_from_name): now it has a MonoImage parameter
18528         which is used as the default image to search the type in. If the image
18529         is NULL or getting the type from it fails, it defaults to corlib.
18530
18531         * icall.c: changed 1 call to mono_reflection_type_from_name to match
18532         new parameter.
18533
18534 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18535
18536         * reflection.c: update the parameter table index.
18537
18538 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18539
18540         * domain.c: don't include the mark byte in the string hash.
18541
18542 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18543
18544         * icall.cs: icall for Type.GetTypeCode ().
18545         * verify: a couple of fixes and disabled local initialization checks.
18546
18547 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18548
18549         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18550
18551         * debug-helpers.c (mono_method_full_name): print the type of the
18552         runtime wrapper
18553
18554         * metadata.c (mono_signature_hash): a hash function for signatures
18555         (mono_signature_hash): better hash algorithm
18556
18557         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18558
18559         * debug-helpers.c (mono_method_full_name): this can now generate
18560         method names with signatures
18561
18562         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18563         method dont have this pointers.
18564
18565 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18566
18567         * reflection.c: fixup typebuilder tokens.
18568         * image.c: fix buglet.
18569         * marshal.h: remove whitespace.
18570         * metadata.h, metadata.c: reinstate code that was removed.
18571         * verify.c: handle catch directives and fix another couple of bugs.
18572
18573 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18574
18575         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18576         (mono_marshal_get_native_wrapper): make it comp. with the old code
18577         (mono_marshal_get_native_wrapper): support boolean
18578         (mono_marshal_get_managed_wrapper): support more types
18579
18580 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18581
18582         * class.c (class_compute_field_layout): compute class->blittable attribute.
18583
18584 2002-07-09  Dick Porter  <dick@ximian.com>
18585
18586         * threads.c: Make the thread cleaning up cope with threads that
18587         call ExitThread()
18588
18589 2002-07-08  Radek Doulik  <rodo@ximian.com>
18590
18591         * reflection.c (method_encode_code): use non-translated values to
18592         compute finally_start, this fixes exception handling on ppc, yay!
18593
18594         * decimal.h (struct signscale): fix endianess
18595
18596 2002-07-07  Radek Doulik  <rodo@ximian.com>
18597
18598         * reflection.c: swap box_val and not val
18599
18600 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18601
18602         * reflection.c, reflection.h: handle full assembly info in type name.
18603         Handle Type arguments when loading custom attributes.
18604         * icall.c: updated to use new mono_reflection_type_from_name () method.
18605
18606 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18607
18608         * loader.c:
18609         (method_from_memberref): also print assembly name when method not found.
18610
18611 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18612
18613         * icall.c:
18614         (ves_icall_TypeGetProperties): fixed bug #27473. 
18615
18616 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18617
18618         * reflection.c: display image name and token when cannot find the
18619         .ctor for an attribute.
18620
18621 2002-07-05  Martin Baulig  <martin@gnome.org>
18622
18623         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18624
18625 2002-07-04  Dick Porter  <dick@ximian.com>
18626
18627         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18628         compile on mingw.  This will cause mingw builds to not wait for
18629         subthreads to terminate after the main thread does.  I've lodged a
18630         bug with the mingw developers for them to wrap OpenThread().
18631
18632 2002-07-03  Dick Porter  <dick@ximian.com>
18633
18634         * threads.c: Store thread IDs instead of handles, because
18635         GetCurrentThread() returns a pseudohandle and therefore stores
18636         useless values.  mono_thread_cleanup() continues checking the
18637         array of threads until it is empty, to cope with subthreads
18638         spawning new threads after the main thread has finished.
18639
18640         * profiler.h:
18641         * profiler.c:
18642         * profiler-private.h: Pass the thread ID to thread profiler
18643         functions, instead of a handle
18644
18645 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18646
18647         * verify.c: fixes to make it more usable.
18648         * pedump.c: added --verify code to verify IL code in an assembly.
18649
18650 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18651
18652         * reflection.c: turn errors into warnings to allow compiling corlib.
18653
18654 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18655
18656         * reflection.c: add special cases to compile corlib.
18657
18658 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18659
18660         * reflection.c: handle properties with only a set method.
18661
18662 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18663
18664         * opcodes.h: add enum with opcodes in opval order.
18665
18666 2002-07-01  Dick Porter  <dick@ximian.com>
18667         
18668         * object.h:
18669         * object.c (mono_runtime_run_main): Removed unneeded argument
18670
18671 2002-06-28  Martin Baulig  <martin@gnome.org>
18672
18673         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18674
18675 2002-06-27  Dick Porter  <dick@ximian.com>
18676
18677         * threads.c: Store the handle in both the parent thread and in the
18678         subthread, to minimise the time between starting a new thread and
18679         storing its ID.
18680
18681 2002-06-26  Dick Porter  <dick@ximian.com>
18682
18683         * appdomain.c (mono_runtime_cleanup): Close the socket library
18684         after all the threads have finished, not before
18685
18686 2002-06-26  Martin Baulig  <martin@gnome.org>
18687
18688         * debug-symfile.c (mono_debug_find_source_location): Added
18689         `guint32 *line_number' argument.  If it's not NULL, store the line number
18690         there and return the file name without the line number.
18691
18692 2002-06-25  Dick Porter  <dick@ximian.com>
18693
18694         * icall.c:
18695         * process.h:
18696         * process.c: Process forking and other support functions
18697
18698 2002-06-25  Dick Porter  <dick@ximian.com>
18699
18700         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18701         things dont happen when the image is closed.
18702         (mono_image_lookup_resource): Walk the resource section looking
18703         for a particular entry
18704
18705         * cil-coff.h: PE resource section decoding
18706
18707 2002-06-25  Dick Porter  <dick@ximian.com>
18708         
18709         * assembly.h:
18710         * assembly.c: 
18711         (mono_assembly_foreach): Accessor functions to walk the list of
18712         loaded assemblies
18713         (mono_assembly_set_main):
18714         (mono_assembly_get_main): Process methods need to know which
18715         assembly is the "main" one
18716
18717         * object.c (mono_runtime_run_main): Record the main assembly
18718
18719         * debug-helpers.c: Fix typo
18720
18721 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18722
18723         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18724         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18725
18726 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18727
18728         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18729
18730 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18731
18732         * image.c (do_mono_image_open): Initialize reference count,
18733         otherwise we leak the MonoImage.
18734
18735 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18736
18737         * reflection.c: small tweak to handle self-hosting.
18738
18739 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18740
18741         * reflection.c: fix type name parse code.
18742
18743 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18744
18745         * reflection.c: break out of the loop.
18746         * image.c: special case corlib.
18747
18748 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18749
18750         * reflection.c: add all the custom attrs at the end to ensure the
18751         ctors have been properly initialized when the attributes are defined
18752         in the current assembly.
18753
18754 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18755
18756         * reflection.c: handle correctly multiple-nested types.
18757
18758 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18759
18760         * row-indexes.h: fix typos.
18761         * reflection.c: adjust for typos and fix method_def_or_ref
18762         encoding in MethodImpl table.
18763
18764 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18765
18766         * reflection.c: fix entry point patching (thanks Serge!).
18767
18768 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18769
18770         * verify.c: add check for System.Exception
18771
18772 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18773
18774         * image.c, class.c: minifix for code just c&p'ed.
18775         * reflection.c: warning fix.
18776         * object.h, loader.h, domain.c: load also StringBuilder.
18777
18778 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18779
18780         * marshal.h, marshal.c: some support code to handle complex marshaling.
18781
18782 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18783
18784         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18785         Better signatures with vtable error dump.
18786
18787 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18788
18789         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18790
18791 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18792
18793         * icall.c (ves_icall_Type_GetField): impl.
18794
18795 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18796
18797         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18798         to retrieve a marshal description blob for a field or param.
18799
18800 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18801
18802         * reflection.h, reflection.c: change order of nested type emission
18803         to avoid table corruption. The NestedTypes table is sorted.
18804         * icall.c: change order of GetConstructor results to workaround mcs bug.
18805
18806 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18807
18808         * reflection.h, reflection.c: handle field and param marshal
18809         information.
18810
18811 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18812
18813         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18814
18815 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18816
18817         * reflection.c: fix call convention.
18818
18819 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18820
18821         * reflection.h, reflection.c: mono_image_get_memberref_token()
18822         takes a type instead of a class, now. Added
18823         mono_image_get_array_token() to create tokens for the special
18824         multi-dim array methods.
18825
18826 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18827
18828         * assembly.c: handle modules (no assembly table). Split
18829         loading references in its own function.
18830         * class.c: handle moduleref resolution scope.
18831         * image.c, image.h: cache module name in image.
18832
18833 2002-06-07  Martin Baulig  <martin@gnome.org>
18834
18835         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18836         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18837
18838 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18839
18840         * icall.c: more signature fixes that used uint instead of int.
18841
18842 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18843
18844         * reflection.c: fixed signature of field refs.
18845
18846 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18847
18848         * class.c, reflection.c: handle typerefs of nested types
18849         (both on read and when writing files).
18850
18851 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18852
18853         * icall.c: fix method signatures that tried to workaround the previous
18854         typo, d'oh!
18855
18856 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18857
18858         * debug-helpers.c: fix typo.
18859
18860 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18861
18862         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18863         rewrote the PE/COFF writing code (our programs are understood by the
18864         ms runtime, now).
18865
18866 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18867
18868         * gc.c, gc.h, icall.c: weakreference support.
18869
18870 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18871
18872         * Makefile.am, mono-config.c: use $(sysconfdir).
18873
18874 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18875
18876         * icall.c: changed default precision of Double.ToString() to 15.
18877         Fixed memory leak. Unified with Single.ToString.
18878
18879 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18880
18881         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18882
18883 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18884
18885         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18886         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18887         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18888         and myself.
18889
18890 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18891
18892         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18893
18894 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18895
18896         * reflection.c, socket-io.c: more compilation fixes.
18897
18898 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18899
18900         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18901         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18902         unicode.c: warning and compiler compatibility fixes.
18903
18904 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18905
18906         * class.h, metadata.c: fixed warnings/compilation errors.
18907
18908 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18909
18910         * Makefile.am, mono-config.c, mono-config.h: configuration file
18911         support routines.
18912         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18913         config file. Export methods to insert and lookup mappings.
18914
18915 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18916
18917         * reflection.c: handle types and boxed objects in custom attr
18918         constructors.
18919
18920 2002-05-30  Martin Baulig  <martin@gnome.org>
18921
18922         * debug-symfile.c
18923         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18924
18925 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18926
18927         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18928         to lookup the implmap row for a P/Invoke method.
18929         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18930         P/Invoke method from the runtime on an as needed basis.
18931
18932 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18933
18934         * metadata.c (mono_metadata_parse_signature): impl.
18935
18936 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18937
18938         * class.c: handle .pack directive.
18939
18940 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18941
18942         * object.c: initialize static fields with RVA data.
18943
18944 2002-05-25  Martin Baulig  <martin@gnome.org>
18945
18946         * debug-symfile.c
18947         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18948
18949 2002-05-24  Martin Baulig  <martin@gnome.org>
18950
18951         * debug-symfile.c
18952         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18953         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18954         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18955
18956 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18957
18958         * object.c: special case string ctros in invoke.
18959         * gc.c: silly whitespace changes.
18960
18961 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18962
18963         * threadpool.[ch]: impl. a threadpool that can
18964         be used by mint and mono.
18965
18966 2002-05-22  Martin Baulig  <martin@gnome.org>
18967
18968         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18969         The first argument is now a `MonoReflectionModuleBuilder *', the return
18970         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18971         `methods' field to get the method builder.  The `token' argument is the
18972         unfixed token.
18973
18974         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18975         invalid characters instead of g_assert_not_reached()ing.  This seems
18976         to be the behaviour of mscorlib.
18977
18978 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18979
18980         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18981         Hestilow to fix bug #25104
18982
18983 2002-05-21  Martin Baulig  <martin@gnome.org>
18984
18985         * debug-symfile.c (mono_debug_find_source_location): New function.
18986         Looks up an IL offset in the line number table and returns the source
18987         location as a string.
18988
18989 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18990
18991         * icall.c:
18992         (mono_double_ToStringImpl): changed %f by %g until we have something
18993         better.
18994
18995 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18996
18997         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18998         parameters first in C#.
18999
19000 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19001
19002         * icall.c, reflection.h: added icall to get info about an event.
19003
19004 2002-05-20  Radek Doulik  <rodo@ximian.com>
19005
19006         * object.c (mono_value_box): don't use memcpy for boxing on BIG
19007         endian
19008         (mono_value_box): don't use memcpy for small sizes on
19009         architectures with unaligned access
19010
19011 2002-05-20  Martin Baulig  <martin@gnome.org>
19012
19013         * reflection.c (mono_reflection_setup_internal_class): Don't crash
19014         if `tb->parent == NULL'.
19015         (mono_reflection_create_internal_class): New function.  This is
19016         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
19017         for enum types.
19018
19019         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
19020         New interncall.
19021
19022 2002-05-19  Martin Baulig  <martin@gnome.org>
19023
19024         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
19025         argument to get the length, don't default to the array length.
19026
19027 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
19028
19029         * assembly.c (mono_assembly_setrootdir): New function used to
19030         override the MONO_ASSEMBLIES directory.
19031
19032 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19033
19034         * icall.c: ValueType_GetHashCode() initialize local var.
19035
19036 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19037
19038         * reflection.c: sort custom attributes table.
19039
19040 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19041
19042         * reflection.c: support named args in custom attributes (write support).
19043
19044 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19045
19046         * reflection.c: fix finally position calculation.
19047
19048 2002-05-15  Radek Doulik  <rodo@ximian.com>
19049
19050         * reflection.c: fixed endianess at many places
19051
19052         * icall.c (ves_icall_InitializeArray): comment out debug msg
19053
19054 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
19055
19056         * object.c (mono_unhandled_exception): new function to handle
19057         unhandled exceptions.
19058         (mono_unhandled_exception): call the UnhandledException event.
19059         (mono_runtime_delegate_invoke): impl.
19060
19061 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
19062
19063         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
19064         returns the RVA, not the direct pointer to the data. Handle the case
19065         when the class size is fixed.
19066
19067 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19068
19069         * reflection.c: fix some endianess issues.
19070
19071 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
19072
19073         * object.c (mono_runtime_invoke): is now able to catch exceptions.
19074
19075         * threads.c (mono_thread_init): added a callback which is invoked
19076         at thread start.
19077
19078 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19079         
19080         * icall.c: make GetHashCode return non-negative values.
19081
19082 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19083
19084         * object.c, icall.c, gc.c: revert to address-based hashcode.
19085
19086 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
19087
19088         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
19089
19090 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19091
19092         * icall.c, class.c: special case <Module>.
19093
19094 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
19095
19096         * icall.c: fix bug in GetNow().
19097
19098 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
19099
19100         * object.c (mono_runtime_class_init): make sure that we call all
19101         static class constructors.
19102
19103 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19104
19105         * reflection.c: sort methodsemantics table.
19106
19107 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19108
19109         * reflection.h, reflection.c: honour init locals setting.
19110
19111 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
19112
19113         * icall.c: copied Double ToStringImpl for Single ToStringImpl
19114
19115 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19116
19117         * reflection.c: support ContructorBuilders in attribute blob creation.
19118
19119 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19120
19121         * reflection.c: some changes to build a binary that can be run
19122         directly in windows.
19123
19124 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19125
19126         * loader.c: print a big message when an icall can't be found.
19127
19128 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19129
19130         * string-icalls.c: fix bug 24248.
19131
19132 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19133
19134         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
19135         icall.c, reflection.h: separate assembly loading by pathname and by
19136         assembly name. Use the MONO_PATH env var to search for assemblies.
19137
19138 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19139
19140         * assembly.c, image.h: add some support for assemblies
19141         with multiple modules.
19142         * class.c, class.h: export mono_class_from_typeref().
19143         * loader.c: remove duplicated code and use mono_class_from_typeref(),
19144         instead.
19145
19146 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19147
19148         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
19149         documentation says (the ECMA one is correct).
19150
19151 2002-05-02  Dick Porter  <dick@ximian.com>
19152
19153         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
19154         Don't name the synchronisation mutex.
19155
19156 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
19157
19158         * rand.c
19159         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
19160         Make the prototypes match.
19161         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
19162         Same.
19163
19164         * icall.c
19165         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
19166         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
19167         all systems have tm.tm_zone, so use strftime() with %Z to print
19168         the timezone abreviation into a temp string.
19169
19170         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
19171         rather than mono_array_addr() on a MonoString on Big Endian
19172         machines.
19173
19174 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
19175
19176         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
19177         fix bug 24041
19178
19179 2002-04-30  Dick Porter  <dick@ximian.com>
19180
19181         * socket-io.c: Cope with SOCKET being an integer rather than a
19182         pointer now.
19183
19184         * threads.c: Added Thread_free_internal, to deal with thread
19185         handle cleanup.  Moved calls to handle_store() and handle_remove()
19186         to start_wrapper(), so each can only be called once.  Allocate
19187         synchronisation blocks with GC_malloc(), and use GC finalisation
19188         to close the handles.
19189
19190         * icall.c: added System.Threading.Thread::Thread_free_internal
19191
19192 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19193
19194         * icall.c: support Environment.Exit, CommandLineArgs().
19195
19196 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19197
19198         * object.c, object.h: added mono_runtime_run_main () and
19199         mono_runtime_get_main_args () for use in System.Environment.
19200
19201 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19202
19203         * gc.c: fix thinko, enable actual finalization since the jit is now
19204         fixed.
19205
19206 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19207
19208         * gc.c, object.c: take into account that an object may be offset wrt the address
19209         returned by GC_malloc().
19210
19211 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19212
19213         * image.c: handle files without entries in the assembly table (modules).
19214
19215 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
19216
19217         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
19218         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
19219         allowed to be null when it's System.Object class setup.
19220
19221 2002-04-27  Martin Baulig  <martin@gnome.org>
19222
19223         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
19224         if `tb->parent == NULL' rather than crashing.
19225
19226 2002-04-28  Nick Drochak  <ndrochak@gol.com>
19227
19228         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
19229         calling acos() where asin() should have been called.
19230
19231 2002-04-26  Martin Baulig  <martin@gnome.org>
19232
19233         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
19234         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
19235         there's a subdirectory called `System', but we don't want to read that
19236         subdirectory as an assembly.
19237
19238 2002-04-25  Martin Baulig  <martin@gnome.org>
19239
19240         * debug-symfile.c: Reflect latest MonoString changes.
19241
19242 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19243
19244         * rand.c, rand.h: instance method icalls need to have an explicit
19245         this pointer as first argument in the C implementation.
19246
19247 2002-04-25  Nick Drochak <ndrochak@gol.com>
19248
19249         * icall.c: Fix typo in map for GetNonZeroBytes
19250
19251 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19252
19253         * string-icalls.c : String does now passes unit tests without any 
19254         errors, the following changes has been made:
19255         
19256         Implemented replace methods.
19257         Renaming of methods to (try) follow the standard.
19258         Fixed compare ordinal
19259         Made all memory allocated directly to function instead of via icall function.
19260         Small performance fix in is_in_array function
19261                         
19262  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
19263
19264         c (mono_string_Internal_ctor_charp_int_int):
19265         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
19266         sindex < 0, throw ArgumentOutOfRangeException instead of
19267         ArgumentNullException.
19268
19269         Added new check for length == 0, however
19270         I need to make it return String.Empty from the C code.
19271         
19272         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
19273         that calculate the length for us here.
19274         
19275         (mono_string_Internal_ctor_sbytep_int_int): Replaced
19276         mono_string_new_utf16 with mono_string_new, since value is utf8.
19277
19278 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19279
19280         * object.c: register the object for finalization if needed.
19281         Allocate one more char in the string for the terminating 0 char.
19282
19283 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19284
19285         * class.c, class.h, image.c: check if a type implemenst a destructor.
19286         Use the proper key for array class lookups.
19287         * icall.c: register the icalls in the System.GC class.
19288         * gc.c, gc.h: GC-related functions and icalls.
19289
19290 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19291
19292         * icall.c:
19293         * socket-io.c:
19294         * unicode.c: free some strings gotten from mono_string_to_utf8 and
19295         changed a couple of free () by g_free ().
19296
19297         * decimal.c: one-liner in the comments for decimal2string ().
19298
19299 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19300
19301         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
19302
19303 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19304
19305         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
19306         * object.c (mono_runtime_invoke_array) : handle null in params
19307
19308 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19309
19310         * string-icalls.c: fixed bug in split (one off bug)
19311
19312 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19313
19314         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
19315         * icalls.c: added String::Equals as internal method
19316
19317 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19318
19319         * threads.c: fixed bug in the double interlocked functions
19320
19321 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
19322
19323         * threads.c: implemented all of the new interlocked icalls.
19324         * string-icalls.c: fix a bug in insert.
19325         * icalls.c: added the icalls for interlocked, removed old string functions.
19326         
19327 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19328
19329         * loader.c: fix off-by-one error when reading argument names.
19330
19331 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19332
19333         * profiler.c: win32 counter implementation (untested).
19334         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
19335         (the latter needs testing and more complete impl. from win32 folks).
19336
19337 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
19338
19339         * object.c: mono_array_new_full workaround mono_array_class_get
19340         problem.
19341
19342 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19343
19344         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
19345         * object.h (mono_string_chars): Changed casting type.
19346
19347 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19348
19349         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
19350                            method signatures to use gunichar2 instead of gint16.
19351
19352 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
19353
19354         * object.h, object.c: domain-specific versions of mono_object_new and
19355         mono_array_new.
19356
19357 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
19358
19359         * object.c: changed String layout
19360
19361         * string-icalls.c (mono_string_Internal_ctor_chara): added
19362         internal string constructors.
19363
19364 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
19365
19366         * threads.c: pass 'this' to the thread start routine.
19367
19368 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19369
19370         * string-icalls.c: fix IndexOf and LastIndexOf. Now
19371         InternalCompareStr don't call twice mono_string_cmp_char for the last
19372         character. Improved performance in mono_string_cmp_char.
19373
19374 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19375
19376         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
19377         code into its own library: libmonoruntime.
19378
19379 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
19380
19381         * object.h, object.c: changed array format so that szarrays do not
19382         require a bounds structure.
19383         * icall.c, appdomain.c: support for new szarray format.
19384
19385 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19386
19387         * metadata.c: compare also the retuns type when comparing signatures:
19388         we didn't do this as an optimization since really overloaded methods
19389         must differ also in the arguments, but this doesn't work with
19390         low-level IL code (or when using explicit conversion operators: see
19391         bug#23498 for an example).
19392
19393 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19394
19395         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
19396
19397 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19398
19399         * icall.c: make MonoType::GetElementType its own icall.
19400
19401 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19402
19403         * icall.c: remove MonoMethod_get_Name().
19404         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
19405         object.
19406
19407 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19408
19409         * string-icalls.c: optimized a few methods.
19410
19411 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19412
19413         * icall.c: added all new string internal calls
19414         * string-icalls.c: added, new string internal call implementation.
19415         * object.c: added mono_string_new_size for allocating a string a size
19416
19417 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
19418
19419         * object.c (mono_object_isinst): use the same code as in the
19420         optimized x86 version.
19421
19422 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19423
19424         * profiler.c: TSC-based timer code (faster and more accurate).
19425         Not hooked up in configure, yet (set USE_X86TSC to 1).
19426
19427 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
19428
19429         * profiler.c, profiler.h: track time spent compiling methods.
19430         * threads.c: track thread creation/destruction.
19431
19432 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
19433
19434         * profiler.c, profiler.h, profiler-private.h: profiling interface
19435         and sample implementation. Moved here so that it can be used also by
19436         the jit.
19437
19438 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
19439
19440         * reflection.c, reflection.h: keep types and other handles separate in
19441         the hash tables for referred tokens. Add guid for modules.
19442
19443 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * assembly.c: fix bugs found with valgrind.
19446         * metadata.h, metadata.c: added mono_metadata_guid_heap().
19447
19448 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
19449
19450         * threads: added icall support for getting current domain for
19451                    the thread.
19452  
19453 2002-04-13  Martin Baulig  <martin@gnome.org>
19454
19455         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
19456         (MonoDebugVarInfo): Added `index' field for register based addresses.
19457         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
19458         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
19459         `MonoDebugVarInfo *params' and `guint32 this_offset' with
19460         `MonoDebugVarInfo *this_var'.
19461
19462         * debug-symfile.c (relocate_variable): New static function to write
19463         a location description for a local variable or method parameter.
19464
19465 2002-04-12  Martin Baulig  <martin@gnome.org>
19466
19467         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19468         stack offset and begin/end scope address of a local variable.
19469         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19470         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19471         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19472
19473         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19474         Added new relocation types for start/end scope of a local variable.
19475
19476 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19477
19478         * object.h: add mono_object_domain() macro.
19479         * reflection.c: handle typespecs.
19480         * icall.c: MonoMethod::get_Name() implementation.
19481
19482 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19483
19484         * icall.c: String::GetHashCode() icall implementation.
19485
19486 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19487
19488         * icall.c: String::IndexOfAny icall.
19489         * object.c, object.h: make array->max_length more useful.
19490         Intrduced mono_object_class() and mono_string_length() macros.
19491
19492 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19493
19494         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19495         instead of g_unichar_isdigit.
19496
19497 2002-04-11  Nick Drochak  <ndrochak@gol.com>
19498
19499         * icall.c: Implement a simple Double.ToString().
19500
19501 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19502
19503         * appdomain.h: only io-layer.h is supposed to be included.
19504         * icall.c: explicitly import environ. Fix warning.
19505
19506 2002-04-10  Nick Drochak  <ndrochak@gol.com>
19507
19508         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19509                 return true even if it's not Daylight Savings time.
19510                 Only return false for the case where the function isn't
19511                 implemented for a plaform (read Windows).
19512
19513 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19514
19515         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19516         data with a mutex.
19517
19518 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
19519
19520         * mempool.c (mono_mempool_alloc): only use g_malloc when
19521         absolutely necessary.
19522
19523 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19524
19525         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19526
19527         * class.c (mono_class_vtable): use domain mempool to allocate vtable
19528         (mono_class_proxy_vtable): use domain mempool
19529
19530 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19531
19532         * appdomain.h, appdomain.c: split initialization that requires the
19533         execution engine support into mono_runtime_init().
19534
19535 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19536
19537         * class.c (mono_class_init): don't include vtable inside MonoClass
19538         to save some memory, gather some statistics.
19539         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19540
19541 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19542
19543         * icall.c: internalcall implementation for ValueType.Equals().
19544
19545 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
19546
19547         * object.c (mono_message_init): moved 
19548         (mono_runtime_exec_main): new arch. independent impl.
19549         (mono_runtime_invoke_array): new method - like
19550         mono_runtime_invoke, but you can pass an array of objects.
19551         (mono_remoting_invoke): new arch. independent impl.
19552         (mono_message_invoke): new arch. independent impl.
19553         (mono_runtime_class_init): new arch. independent impl.
19554         (mono_runtime_object_init): new arch. independent impl.
19555
19556 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19557
19558         * metadata.c, object.c, reflection.c: documented the exported
19559         functions.
19560
19561 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * icall.c: simpler code to pass the assembly builder data to corlib.
19564         Implement GetNestedTypes() internalcall.
19565
19566 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19567
19568         * class.c: warn if a type can't be loaded.
19569
19570 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19571
19572         * image.h: typedef MonoImageOpenStatus
19573         * types.h: removed unused file
19574         
19575 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19576
19577         * icall.c: Enum_ToObject accepts enum value arguments.
19578
19579 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19580
19581         * class.c: move initialization of properties, events and nested
19582         classes, so that they happen for interfaces, too.
19583
19584 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19585
19586         * icall.c: cleanup some ugly casts in Array_SetValue*.
19587
19588 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19589
19590         * icall.c: the values array fro enums is of the correct type, now.
19591         Implement (correctly) getFullName instead of assQualifiedName for
19592         MonoType.
19593         * reflection.h, reflection.c: added mono_type_get_name ().
19594
19595 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19596
19597         * assembly.c, image.h: for each MonoImage, record from wich assembly
19598         it was loaded.
19599         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19600         Make Type.Assembly work.
19601
19602 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19603
19604         * debug-symfile.h: use char* instead of gpointer to avoid
19605         unnecessary casts.
19606
19607         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19608
19609         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19610         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19611
19612 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19613
19614         * icall.c (mono_message_init): impl. (code cleanup)
19615         (ves_icall_InternalExecute): impl. FieldGetter
19616
19617         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19618         defined we call all (non-static)methods through the vtable. 
19619
19620 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19621
19622         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19623         finalizer even though the memory is still referenced (and the chunk of
19624         memory is not freed).
19625
19626 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19627
19628         * assembly.c: fix brokeness.
19629
19630 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19631
19632         * class.c: kill some warnings. Check explicit interface method
19633         implementation also without considering the namespace.
19634         Load also literal strings in static class data.
19635
19636 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19637
19638         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19639         (default_assembly_name_resolver): Make the resolver take the
19640         "base" directory where the assembly was originally defined, so we
19641         can load DLLs that are in the same directory as the assembly that
19642         is being referenced.
19643
19644 2002-03-28  Dick Porter  <dick@ximian.com>
19645
19646         * file-io.h: 
19647         * file-io.c:
19648         * socket-io.c: 
19649         * unicode.h: 
19650         * unicode.c: Warning cleanups
19651
19652 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19653
19654         * object.h, reflection.h: use the correct type instead of MonoObject.
19655
19656 2002-03-28  Martin Baulig  <martin@gnome.org>
19657
19658         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19659         (mono_debug_update_symbol_file): Initialize classes if necessary.
19660
19661 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19662
19663         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19664         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19665
19666 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19667
19668         * assembly.h: fix function prototype.
19669         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19670         * mono-endian.h: use const cast.
19671
19672 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19673
19674         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19675
19676 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19677
19678         * loader.c: don't assert when a typeref can't be loaded, give
19679         a chance to the runtime to trow an exception instead.
19680         * loader.h: fix warning.
19681
19682 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19683
19684         * class.c (mono_class_proxy_vtable): added proxy support
19685
19686 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19687
19688         * icall.c: removed last of PAL calls, added System.Environment
19689         * file-io.h, file-io.c: MonoIO implementation
19690         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19691
19692 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19693
19694         * appdomain.c: do not use the byte marker in ldstr table lookup.
19695         * debug-helpers.c: allow two ':' to separate class and method name.
19696         * object.c: allocate arrays bounds with the GC, too.
19697         * verify: add a few more checks.
19698
19699 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19700
19701         * reflection.c: output also literal strings. Allocate parameter data
19702         with GC_malloc() (thanks, Martin, for catching this!).
19703
19704 2002-03-26  Martin Baulig  <martin@gnome.org>
19705
19706         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19707         include the `this' offset in the `param_offsets'.
19708
19709 2002-03-25  Martin Baulig  <martin@gnome.org>
19710
19711         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19712         mono_debug_get_class() function to get the classes. Added new
19713         relocation types for arrays and strings.
19714         (mono_debug_get_class): New static function to search in all
19715         referenced assemblies for a metadata token.
19716
19717         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19718
19719 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19720
19721         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19722         hold gc-allocated objects. Make the string heap a stream like the
19723         others. Removed duplicated code when writing stream info.
19724         Added asserts to catch possible buffer overflows. Set the sorted map
19725         for tables that need sorting. Added some documentation.
19726
19727 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19728
19729         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19730         for interned strings and vtables.
19731
19732 2002-03-24  Martin Baulig  <martin@gnome.org>
19733
19734         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19735         it in the array since it was created with g_slist_prepend().
19736
19737 2002-03-24  Martin Baulig  <martin@gnome.org>
19738
19739         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19740         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19741         (mono_debug_method_from_token): Renamed to
19742         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19743         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19744
19745         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19746         relocation types.
19747
19748         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19749
19750 2002-03-24  Martin Baulig  <martin@gnome.org>
19751
19752         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19753         (mono_debug_method_from_token): New func.
19754
19755         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19756         New interncall, calls mono_debug_local_type_from_signature().
19757         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19758         calls mono_debug_method_from_token().
19759
19760 2002-03-23  Martin Baulig  <martin@gnome.org>
19761
19762         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19763         specifies the number of bytes to be converted, not the array size.
19764         Return the number of chars, not the number of bytes.
19765         (ves_icall_iconv_get_chars): The `byteCount' argument
19766         specifies the number of bytes to be converted, not the array size.
19767
19768 2002-03-23  Martin Baulig  <martin@gnome.org>
19769
19770         * reflection.h (MonoReflectionSigHelper): New type.
19771
19772         * reflection.c (mono_reflection_sighelper_get_signature_local),
19773         (mono_reflection_sighelper_get_signature_local): New functions.
19774
19775         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19776         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19777         interncalls.
19778
19779 2002-03-23  Martin Baulig  <martin@gnome.org>
19780
19781         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19782         is_writeable is set.
19783         (mono_raw_buffer_update): New function to write the modified map
19784         back to disk.
19785
19786         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19787
19788         * debug-symfile.c (mono_debug_update_symbol_file): Call
19789         mono_raw_buffer_update() when done writing.
19790
19791 2002-03-23  Martin Baulig  <martin@gnome.org>
19792
19793         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19794
19795         * debug-symfile.c: Added support for arguments and local variables.
19796
19797 2002-03-23  Dick Porter  <dick@ximian.com>
19798
19799         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19800         protected by ifdefs, hence breaking the w32 build.
19801
19802 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19803
19804         * object.c: implement is_interned() the right way.
19805
19806 2002-03-21  Martin Baulig  <martin@gnome.org>
19807
19808         * debug-symfile.[ch]: New files to handle debugging information
19809         files. There's also support to dynamically update these symbol
19810         files to include machine dependent information.
19811
19812 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19813
19814         * threads.c (mono_thread_create): new function to create thread
19815         from C
19816
19817 2002-03-20  Martin Baulig  <martin@gnome.org>
19818
19819         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19820         method is a constructor.
19821         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19822         points to ves_icall_InternalInvoke().
19823
19824 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19825
19826         * file-io.c: Flush shouldn't throw exceptions.
19827
19828 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19829
19830         * file-io.c: FileStream flush support; FileSetLength now
19831         restores file pointer.
19832
19833 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19834
19835         * class.c: set image for pointer classes.
19836
19837 2002/03/19  Nick Drochak <ndrochak@gol.com>
19838
19839         * sysmath.c: Forgot one.
19840
19841 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19842
19843         * sysmath.c: Avoid redefining existing names.
19844
19845 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19846
19847         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19848         handled by runtime as icall rather than dllimport from libm.so
19849         * file-io.c, file-io.h: fixed handle argument type.
19850
19851 2002-03-18  Dick Porter  <dick@ximian.com>
19852
19853         * reflection.c (mono_image_get_type_info): rename interface to
19854         iface, because of "#define interface struct" on windows.
19855
19856 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19857
19858         * class.c, class.h: rename and export mono_ptr_class_get().
19859         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19860         * reflection.c, reflection.h, icall.c: better/saner type name
19861         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19862         method signatures.
19863
19864 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19865
19866         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19867
19868         * icall.c (ves_icall_InternalInvoke): impl.
19869
19870 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19871
19872         * reflection.c: output the interface map table, too.
19873
19874 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19875
19876         * class.c (class_compute_field_layout): separate computation of 
19877         static field layout
19878
19879 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19880
19881         * icall.c: added System.Buffer support.
19882         * file-io.c: moved file icalls from PAL to FileStream.
19883
19884 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19885
19886         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19887
19888 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19889
19890         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19891
19892 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19893
19894         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19895
19896 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19897
19898         * debug-helpers.{c,h}: moved here from monograph some useful functions
19899         to locate a method by name/signature in a class or image. Included
19900         also a small and flexible IL disassembler.
19901
19902 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19903
19904         * reflection.c: fixup tokens in methods with small header size, too.
19905
19906 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19907
19908         * object.c (mono_string_to_utf8): remove assert(!error), instead
19909         print a warning. 
19910
19911 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19912
19913         * icall.c: update to the new mono_Array_class_get interface.
19914
19915 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19916
19917         * appdomain.c, object.c: Boehm-GC enable.
19918         * icall.c: make get_data_chunk() support split data requests.
19919         Ensure a class is initialized in more cases. Return only the first
19920         property found in GetProperties() or the compiler gets confused. 
19921         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19922         * reflection.h, reflection.c: add fixup mechanism for field and method
19923         tokens. Initialize assembly->typeref in a single place. Output
19924         properties after events. Support custom attributes for events, too.
19925         Typo fix for paramter custom attrs.
19926
19927 2002-03-07  Martin Baulig  <martin@gnome.org>
19928
19929         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19930
19931 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19932
19933         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19934
19935 2002-03-06  Martin Baulig  <martin@gnome.org>
19936
19937         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19938         non-zero lower bounds. See testcases #F10-#F13.
19939
19940 2002-03-05  Martin Baulig  <martin@gnome.org>
19941
19942         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19943
19944         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19945         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19946         here.
19947         (ves_icall_System_Array_SetValue): Likewise.
19948         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19949         as argument and does the actual work. This function is used when copying a
19950         multi-dimensional array.
19951         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19952         now do all the widening conversions of value types.
19953         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19954
19955 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19956
19957         * class.c: remove some magic numbers and use the smbolic names,
19958         instead. Added init_events() to load event info at class init time.
19959         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19960         and mono_metadata_methods_from_event().
19961         * reflection.h, reflection.c: added support for writing out the evnets
19962         related information.
19963
19964 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19965
19966         * reflection.h, icall.c: use a different method (GetInterfaces)
19967         to gather interface info and add isbyref, isprimitive and
19968         ispointer to the ves_icall_get_type_info() return value.
19969
19970 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19971
19972         * class.h: stared adding support for events.
19973         * icall.c: split find_members implementation. Added debug icall to get
19974         the address of an object.
19975         * reflection.c: handle TypeBuilders in mono_type_get_object().
19976
19977 2002-03-01  Martin Baulig  <martin@gnome.org>
19978
19979         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19980         ArgumentOutOfRangeException(), not an ArgumentException().
19981         (ves_icall_System_Array_GetLowerBound): Likewise.
19982         (ves_icall_System_Array_GetValue): Improved argument checking.
19983         (ves_icall_System_Array_SetValue): Improved argument checking.
19984
19985 2002-03-01  Martin Baulig  <martin@gnome.org>
19986
19987         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19988         called with invalid arguments rather than just dying with g_assert().
19989         (ves_icall_System_Array_SetValue): Likewise.
19990         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19991         raise a NotImplementedException instead.
19992         (ves_icall_System_Array_GetLength): Added argument checking.
19993         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19994
19995 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19996
19997         * object.h (mono_assert): new macros mono_assert and
19998         mono_assert_not_reached
19999
20000 2002-02-28  Martin Baulig  <martin@gnome.org>
20001
20002         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
20003         and "System::String::IsInterned" to "System::String::_IsInterned".
20004
20005 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
20006
20007         * icall.c: remove hacks for typebuilder. Added icall to create a
20008         modified type from a tybebuilder.
20009         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
20010         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
20011         to create a backing MonoClass for a TypeBuilder.
20012
20013 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20014
20015         * class.c, class.h: more refactoring of class init.
20016         Export mono_class_setup_mono_type() and mono_class_setup_parent().
20017
20018 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
20019
20020         * marshal.c, marshal.h: start of marshaling interface.
20021
20022 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20023
20024         * icall.c: fix order in assembly qualified name icall.
20025
20026 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20027
20028         * class.c: do not free str, since we store it in the hash table.
20029         * reflection.h: add label field to MonoILExceptionInfo.
20030         * reflection.c: handle references to more than one assembly. Handle
20031         case when there isn't a module created in the assembly.
20032
20033 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20034
20035         * class.c: Fix typo. Start refactoring of class init code.
20036
20037 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20038
20039         * appdomain.c: exit with 1 on error.
20040         * class.c: we already have the name in MonoClassField.
20041         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
20042         MonoStreamHeader instead of an offset of image->raw_metadata.
20043
20044 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
20045
20046         * appdomain.c (mono_init): Be even more descriptive about the error.
20047
20048 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
20049
20050         * appdomain.c: give the user an informative message when corlib can't
20051         be loaded.
20052
20053 2002-02-26  Martin Baulig  <martin@gnome.org>
20054
20055         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20056         New icall to get the time zone data.
20057
20058 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20059
20060         * reflection.c: set virtual and raw size of section correctly.
20061         * threads.c: transfer domain information to newly created threads.
20062
20063 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20064
20065         * class.c: when instancing a class in a domain, load the default
20066         vaules for static fields from the constant table. Fix System.Enum to
20067         not be an enum.
20068         * icall.c: implement Object::GetType() internalcall. Implemented
20069         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
20070         Fixed checking of binding flags in find_members().
20071         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
20072         * reflection.c: handle enumerations when writing to the constant
20073         table. Use a different object cache for types.
20074
20075
20076 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
20077
20078         * object.c (mono_object_isinst): fix for arrays
20079
20080         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
20081
20082 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20083
20084         * object.c: don't use mprotect ()  and fix intern pool hash table
20085         lookup for big endian systems.
20086
20087 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20088
20089         * icall.c: change type_is_subtype_of () signature.
20090
20091 2002-02-21  Mark Crichton  <crichton@gimp.org>
20092
20093         * rand.c, rand.h: Added random number generator for
20094         System.Security.Cryptography classes.
20095
20096         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
20097
20098         * icall.c: Added System.Security.Cryptography calls.
20099
20100 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20101
20102         * class.c, icall.c, metadata.c: better support for pointer types.
20103         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
20104         * reflection.c: Add support for getting custom attrs for properties
20105         and simplify some code.
20106
20107 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20108
20109         * icall.c: change getToken () and add custom attribute GetBlob()helper
20110         method.
20111         * reflection.h: add custom attrs array to the reflection builder structures.
20112         * reflection.c: encode and emit custom attributes for all the relevant
20113         reflection objects. Cache fieldref and methodref tokens. Change
20114         mono_image_create_token() interface to take a MonoDynamicAssembly.
20115         More complete custom attributes decoder. Load custom attributes for
20116         Assembly, Field, Method and Constructor objects, too. Make the
20117         returned array an Attribute[] one, not object[]. Added
20118         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
20119         custom attribute constructor.
20120
20121 2002-02-20  Dick Porter  <dick@ximian.com>
20122
20123         * icall.c:
20124         * rawbuffer.c:
20125         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
20126         problem code out for now).
20127
20128 2002-02-19  Radek Doulik  <rodo@ximian.com>
20129
20130         * object.c (mono_ldstr): use hash table to avoid multiple swapping
20131
20132 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
20133
20134         * icall.c: register the GetCustomAttributes method.
20135         * object.c, object.h: add mono_string_new_len ().
20136         * reflection.h, reflection.c: added mono_runtime_invoke(),
20137         mono_install_runtime_invoke(). Added
20138         mono_reflection_get_custom_attrs () to load custom attributes and
20139         create the attribute objects.
20140
20141 2002-02-19  Dick Porter  <dick@ximian.com>
20142         * threads-dummy-types.c:
20143         * threads-dummy-types.h:
20144         * threads-dummy.c:
20145         * threads-dummy.h:
20146         * threads-pthread-types.c:
20147         * threads-pthread-types.h:
20148         * threads-pthread.c:
20149         * threads-pthread.h:  Deleted obsolete files
20150
20151 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
20152
20153         * class.c (mono_class_vtable): runtime init the class when we
20154         allocate static class data.
20155
20156         * icall.c (ves_icall_System_Array_SetValue): check for null values.
20157
20158         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
20159         and String - but we will need generic marshalling support in the
20160         future. 
20161         (mono_init): set the domain name in a ms compatible way
20162
20163         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
20164         String[].
20165
20166 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
20167
20168         * object.c (mono_array_clone): use alloca() instead of g_malloc  
20169         for sizes
20170
20171         * appdomain.c (mono_domain_unload): impl.
20172
20173 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20174
20175         * appdomain.c, object.c: fix intern pool implementation.
20176         * class.c: fix alignment code.
20177
20178 2002-02-16  Radek Doulik  <rodo@ximian.com>
20179
20180         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
20181         and s2 > s1, just copy lower bytes to be compatible with little
20182         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
20183         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
20184
20185         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
20186         force big_endian to be 1 for big endian machines 
20187         (ves_icall_iconv_new_decoder): ditto
20188
20189 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
20190
20191         * socket-io.c (convert_sockopt_level_and_name): If the system
20192         doesn't define SOL_IP or SOL_TCP, get them by hand using
20193         getprotobyname() and caching the values (because this could be a
20194         slow operation).
20195         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
20196         Use the appropriate struct when the system does support it. Ie,
20197         not all systems have struct ip_mreqn so use struct ip_mreq when
20198         appropriate.
20199
20200 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
20201
20202         * reflection.c: handle finally clauses.
20203
20204 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
20205
20206         * socket-io.c: use g_snprintf() instead of snprintf.
20207
20208 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20209
20210         * reflection.c (mono_param_get_objects): Cast second argument to
20211         mono_method_get_param_names to a const char** to silence the
20212         compiler warning.
20213
20214         * appdomain.c (mono_domain_assembly_open): Put parens around the
20215         truth statement in the for-loop.
20216
20217         * unicode.c (iconv_convert): Got rid of a compiler warning about
20218         int i being unused when the system has a new iconv.
20219         (iconv_get_length): Same.
20220
20221         * image.c (load_class_names): Cast the second argument to
20222         g_hash_table_insert() to char* to hush compiler warnings about the
20223         arg being a const.
20224         (mono_image_open): Same here.
20225
20226         * socket-io.c: Don't conditionally include sys/filio.h or
20227         sys/sockio.h here anymore since we now get them from
20228         io-layer/io-layer.h
20229         (inet_pton): If the system doesn't support inet_aton, implement
20230         using inet_addr and also #define INADDR_NONE if it isn't defined
20231         by the system.
20232
20233 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20234
20235         * metadata.c, metadata.h: added function to get packing and size info
20236         of a typedef.
20237         * reflection.h, reflection.c: handle field RVA data. Save info about
20238         the table layout if needed. Assign typedef indexes to all the types
20239         before dumping the info about them to avoid forward reference problems.
20240
20241 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
20242
20243         * socket-io.c (convert_sockopt_level_and_name): ifdef
20244         SO_ACCEPTCONN because it is not defined on my system (old debian)
20245
20246 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20247
20248         * opcode.c: use stddef.h to get NULL.
20249
20250 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20251
20252         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
20253         for FIONBIO, FIONREAD and SIOCATMARK.
20254         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
20255         define INADDR_NONE and besides, inet_addr() is deprecated and
20256         should not be used. Use inet_pton() instead - it also has the
20257         added bonus that it can easily handle IPv6 addresses as well.
20258         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
20259
20260 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20261
20262         * decimal.c: remove _MSC_VER conditional.
20263
20264 2002-02-13  Dick Porter  <dick@ximian.com>
20265
20266         * socket-io.c: 
20267         * icall.c: Internal calls for Blocking, Select, Shutdown,
20268         GetSocketOption and SetSocketOption
20269
20270 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20271
20272         * assembly.cs: better resolver: use it instead of some kludgy
20273         code.
20274
20275 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
20276
20277         * reflection.c: the best way to speed-up the compiler is to avoid
20278         infinite loops.
20279
20280 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
20281
20282         * class.c (mono_class_vtable): changed the object layout
20283         (obj->vtable->class). 
20284         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
20285
20286 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20287
20288         * assembly.c: look for assemblies in the assembly dir, too.
20289
20290 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20291
20292         * class.c: fix thinko in mono_class_from_type().
20293
20294 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20295
20296         * exception.h, exception.c: added TypeLoadException.
20297         * object.h, object.c: added mono_array_clone ().
20298         * icall.c: handle throwOnError in AssemblyGetType().
20299         Added Array.Clone().
20300         * opcode.h, opcode.c: use a single value for the opcode val.
20301         Compile fix for non-gcc compilers.
20302
20303 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
20304
20305         * opcodes.c, opcodes.h: export interesting info about opcodes.
20306
20307 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
20308
20309         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
20310         icalls. 
20311
20312         * class.c (class_compute_field_layout): set element_class for enums
20313         (mono_class_create_from_typedef): set element_class for normal classes
20314
20315         * icall.c (ves_icall_System_Enum_get_value): impl.
20316
20317         * class.c (mono_class_create_from_typedef): do not set valuetype
20318         flag for System.ValueType and System.Enum
20319
20320 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
20321
20322         * unicode.c (iconv_convert): fix big endian problem.
20323
20324 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20325
20326         * class.c: add asserts if we are ever going to scribble over memory.
20327         * socket-io.c: not all systems have AF_IRDA defined.
20328
20329 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
20330
20331         * class.c (class_compute_field_layout): do not consider static
20332         fields to compute alignment
20333
20334 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
20335
20336         * appdomain.c (mono_appdomain_get): impl.
20337         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
20338
20339 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20340
20341         * icall.c: ignore "file://" prefix when loading an assembly.
20342
20343 2002-01-23  Dick Porter  <dick@ximian.com>
20344
20345         * socket-io.c:
20346         * icall.c:
20347         * Makefile.am: Added socket support
20348
20349 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20350
20351         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
20352         code back.  This should return the assemblies that are loaded by
20353         the runtime on behalf of an application domain. 
20354
20355         The current implementation is still broken, it just returns every
20356         assembly loaded, but until we get real applications domain this
20357         will do.
20358
20359 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
20360
20361         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
20362         AppDomain object.
20363
20364 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20365
20366         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
20367         the mono_class_from_name lookup.
20368         (ves_icall_get_parameter_info): ditto.
20369         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
20370         method.
20371         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
20372
20373 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20374
20375         * class.c: load also nested classes on class init.
20376         System.ValueType instance methods gets passed boxed
20377         values, unless methods in derived classed that get a pointer to the
20378         data.
20379         * icall.c: use better name parsing code in GetType().
20380         * image.c, image.h: add mono_image_loaded ().
20381         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
20382         * reflection.c, reflection.h: added mono_reflection_parse_type().
20383
20384 2002-01-22  Veronica De Santis <veron78@interfree.it>
20385
20386         * icall.c : Added mapping of internal calls for Manual and Auto reset events
20387         * threads.c : Added the implementation of internal calls for events
20388         * threads.h : Added prototypes of internal calls for events
20389         
20390 2002-01-21  Radek Doulik  <rodo@ximian.com>
20391
20392         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
20393
20394 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
20395
20396         * class.c (mono_class_init): set min_align to 1 (instead of 0)
20397         (mono_class_value_size): use min_align
20398
20399 2002-01-20  Dick Porter  <dick@ximian.com>
20400
20401         * threads.h:
20402         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
20403         so it compiles on w32.
20404
20405 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
20406
20407         * metadata.c (mono_type_stack_size): impl.
20408
20409         * class.c (mono_class_get_field): impl. memberref token
20410
20411 2002-01-16 Veronica De Santis <veron78@@interfree.it>
20412
20413         * icall.h : Added the internal calls mapping for CreateMutex_internal
20414                     and ReleaseMutex_internal.
20415         * threads.h : Added the prototype of mutexes internal calls.
20416         * threads.c : Added the implementations of mutexes internal calls.
20417
20418 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20419
20420         * metaparse.h: removed unused file.
20421         * reflection.c, reflection.h: added stream_data_align () function 
20422         to align data in streams and keep stream aligned. Add support for
20423         exception support in method headers.
20424
20425 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
20426
20427         * unicode.c: make iconv_convert () return the number of bytess written
20428         in the output buffer.
20429
20430 2002-01-15  Dick Porter  <dick@ximian.com>
20431         * threads.c: Make the runtime's idea of infinite timeouts coincide
20432         with the class library's
20433
20434         Fix a particularly egregious bug in mono_thread_cleanup(). That
20435         code was so utterly bogus it must have been written on a Monday.
20436
20437 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20438
20439         * reflection.h: add subtypes field to TypeBuilder.
20440         * reflection.c: encode constants for literal fields.
20441         Handle subtypes. Fix user string token (and add a zero byte)
20442         at the end.
20443         
20444 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
20445
20446         * class.c (mono_class_init): bug fix: assign slot numbers for
20447         abstract methods.
20448
20449 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20450
20451         * reflection.c: don't try to output a code RVA for abstract methods.
20452         Small fixes for method header format. Output parameter info to the
20453         ParamDef table. Save method overriding info to MethodImpl table.
20454         Fix property support. Allow typedef.extends to be a type in the
20455         building assembly.
20456         * verify.c: fix off-by-one error.
20457
20458 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
20459
20460         * class.c: fix mono_class_from_mono_type () for szarray types.
20461         Remove unused cache check in mono_class_from_type_spec().
20462         * icall.c: *type_from_name () functions handle simple arrays and byref.
20463         * reflection.c: handle byref and szarray types. Handle methods without
20464         body (gets P/Invoke compilation working). Handle types and fields in
20465         get_token ().
20466         * reflection.h: add rank to MonoTypeInfo.
20467
20468 2002-01-10  Dick Porter  <dick@ximian.com>
20469
20470         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20471         internal calls
20472
20473 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20474
20475         * icall.c: initialize class in type_from_handle ().
20476         Loop also in parent classes for get_method ().
20477         * reflection.c: properly encode class and valuetype types.
20478         Start on encoding TypeBuilder types. Handle fieldrefs.
20479         Use correct length when registering a user string.
20480         Handle ConstructorBuilder and MonoMethod in get_token ().
20481         Make mono_type_get_object () aware of cached types.
20482         * object.c: back out change to mono_string_new ().
20483
20484 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20485         * object.c: mono_string_new should return a NULL when the string 
20486         passed in is NULL -- not try to deference it.
20487         
20488 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20489
20490         * icall.c: hack to make IsSubType work for TypeBuilders.
20491         * reflection.c: emit constructors before methods.
20492         Retrieve param names in mono_param_get_objects().
20493
20494 2002/01/05  Nick Drochak  <ndrochak@gol.com>
20495
20496         * Makefile.am: fix list of headers and sources so automake 1.5
20497         doesn't complain. Removed \# at end of list.
20498
20499 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20500
20501         * reflection.c: get token for a method ref. Set return type of
20502         constructor to void.
20503         * loader.c: debug message.
20504         * class.c: typo fix.
20505
20506 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20507
20508         * icall.c: fix array init with rank > 1. FindMembers
20509         loops in parent class as well.
20510         * image.c: do not insert nested types in name cache.
20511         * reflection.c: warning fix.
20512         * reflection.h: add override method (for interface impl).
20513
20514 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20515
20516         * metadata.c: fix customattr decoding.
20517
20518 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
20519
20520         * rawbuffer.cs: Added native Win32 implementation, avoids using
20521         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20522
20523 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20524
20525         * class.c: make the low-level routines handle the cache.
20526
20527 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20528
20529         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20530
20531 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20532
20533         * class.c: fix mono_array_element_size() for objects.
20534         * class.h, class.c: add properties to MonoClass and load them
20535         at init time.
20536         * icall.c: check with isinst() when assigning a value to an array
20537         instead of requiring the classes to match exactly.
20538         Implemented icall for System.Type::GetType().
20539         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20540         enums. Handle bindingflags when looking for methods and fields.
20541         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20542         and mono_metadata_methods_from_property().
20543         * reflection.h, reflection.c: added structures for propreties,
20544         parameters and enums. Implemented mono_property_get_object() and
20545         mono_param_get_objects().
20546
20547 2001-12-18  Dick Porter  <dick@ximian.com>
20548
20549         * file-io.c: Use mono_string_to_utf16() instead of
20550         mono_string_chars()
20551
20552         * object.c: Added mono_string_to_utf16(), which copies the non
20553         NULL-terminated MonoString into a new double-null-terminated
20554         buffer.
20555
20556 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20557
20558         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20559
20560 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20561
20562         * file-io.c: raise exceptions if handle is invalid.
20563
20564 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20565
20566         * assembly.c: yet another check for mscorlib.
20567         * class.c, class.h: load nesting info for classes.
20568         * icall.c: many new functions to support the Reflection classes.
20569         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20570         * reflection.h, reflection.c: mono_image_create_token(),
20571         mono_assembly_get_object(), mono_type_get_object(),
20572         mono_method_get_object(), mono_field_get_object(): methods to return
20573         objects that parallel the C representation of assemblies, types,
20574         methods, fields.
20575
20576 2001-12-11  Dick Porter  <dick@ximian.com>
20577
20578         * icall.c:
20579         * file-io.c: Internal calls for file IO.
20580
20581 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20582
20583         * tabledefs.h: missing FileAttributes.
20584         * verify.h, verify.c: use is_valid_string () to simplify and check for
20585         valid strings more correctly. Fix warnings and speeling.
20586         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20587         Check code: branches, maxstack, method calls.
20588
20589 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20590
20591         * object.c (mono_object_allocate): removed static, so that the jit
20592         can allocate value types.
20593
20594         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20595
20596 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20597
20598         * class.c: init enum types right away and register the
20599         token->MonoClass map in mono_class_create_from_typedef ().
20600         * verify.h, verify.c: first cut of the verifier.
20601         * pedump.c: add --verify switch to verify metadata tables.
20602         * tabledefs.h: add some missing enums.
20603
20604 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20605
20606         * class.c (mono_install_runtime_class_init): impl.
20607         (mono_class_init): renamed mono_class_metadata_init to
20608         mono_class_init, also removed the metadata_inited flag
20609
20610         * object.c (mono_object_isinst): use faster algorithm
20611
20612 2001-11-30  Radek Doulik  <rodo@ximian.com>
20613
20614         * mono-endian.h: reverted last change
20615         added function prototypes
20616
20617         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20618         add mono-endian.c back
20619
20620         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20621         for unaligned access, I've mistaked it with endianess. I am
20622         sorry.
20623         (mono_read16): fix reverted endianess
20624         (mono_read64): ditto
20625         (mono_read32): ditto
20626
20627 2001-11-30  Dick Porter  <dick@ximian.com>
20628
20629         * exception.c: Implement mono_exception_from_name()
20630
20631 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20632
20633         * metadata.h, metadata.c: remove params_size and locals_size and their
20634         calculation from the metadata code: they are only usefult to the
20635         interp.
20636
20637 2001-11-29  Radek Doulik  <rodo@ximian.com>
20638
20639         * object.c (mono_ldstr): swap bytes here, it's probably not the
20640         best place, but works for me now, I'll redo it once I know mono
20641         better, also note that I add PROT_WRITE and don't reset back, also
20642         note that it's only affects big endians, so x86 should be OK
20643
20644         * mono-endian.h (read16): use just glib macros for both endians
20645
20646         * mono-endian.c: removed as glib macros are used in in
20647         mono-endian.h so we don't need to care about endianess for read
20648         macros as glib does that for us already
20649
20650 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20651
20652         * class.h, class.h: take minimum alignment into consideration so
20653         that the fields of a class remain aligned also when in an array.
20654
20655 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20656
20657         * loader.h, loader.c: add mono_method_get_param_names().
20658         * class.c: 0-init class fields.
20659
20660 2001-11-26  Dick Porter  <dick@ximian.com>
20661
20662         * icall.c:
20663         * threads-types.h:
20664         * threads.c: New file that handles System.Threading on all platforms
20665
20666         * object.c: 
20667         * object.h: Remove the synchronisation struct from MonoObject,
20668         replace it with a pointer that gets initialised on demand
20669
20670         * Makefile.am: Replace all the system-specific threading code with
20671         a single file that uses the new wrapper library
20672
20673 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20674
20675         * class.c, class.h: add mono_install_trampoline() so that the runtime
20676         can register a function to create a trampoline: removes the ugly
20677         requirement that a runtime needed to export arch_create_jit_trampoline.
20678         * object.h, object.c: added mono_install_handler() so that the runtime
20679         can install an handler for exceptions generated in C code (with
20680         mono_raise_exception()). Added C struct for System.Delegate.
20681         * pedump.c: removed arch_create_jit_trampoline.
20682         * reflection.c: some cleanups to allow registering user strings and
20683         later getting a token for methodrefs and fieldrefs before the assembly
20684         is built.
20685         * row-indexes.h: updates and fixes from the new ECMA specs.
20686
20687 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20688
20689         * class.h, class.c: add enum_basetype field to MonoClass.
20690         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20691         to get index in the constant table reated to a field, param or
20692         property.
20693         * reflection.h, reflection.c: handle constructors. Set public-key and
20694         version number of the built assembly to 0.
20695         * row-indexes.h: update from new ECMA spec.
20696
20697 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20698
20699         * class.h, class.c: add a max_interface_id to MonoClass.
20700         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20701         since it's used to do that. Added mono_type_type_from_obj().
20702         Make GetType() return NULL instead of segfaulting if the type was not
20703         found. Handle simple arrays in assQualifiedName.
20704         * object.h: add a struct to represent an Exception.
20705         * reflection.c: output call convention in method signature.
20706         Add code to support P/Invoke methods and fixed offsets for fields.
20707
20708 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20709
20710         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20711         the value.
20712         * icall.c: use mono_array_addr instead of array->vector: fixes the
20713         reflection image writing.
20714         * reflection.c: init call convention byte to 0 in method signature.
20715         Encode the property signature. Don't output property-related methods
20716         twice. Really process the properties for a type (don't cast a field to
20717         a property, my mom always told me that).
20718         Fix 64 bit issues in pointer alignment in a different and more
20719         readable way.
20720
20721 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20722
20723         * loader.h: Removed type class from MonoDefaults, added monotype
20724
20725         * loader.c: Loaded MonoType, removed loading of Type
20726
20727         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20728         and fills in System.Type._impl with a RuntimeTypeHandle rather
20729         than the actual MonoClass *
20730
20731         (ves_icall_type_from_handle): change from type_class to
20732         monotype_class
20733
20734         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20735         implemented
20736
20737         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20738         implemented
20739
20740         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20741
20742         (ves_icall_System_Reflection_Assembly_GetType): implemented
20743
20744         (ves_icall_System_MonoType_assQualifiedName): implemented
20745
20746         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20747
20748 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20749
20750         * assembly.c (mono_assembly_open): Implement a cache for the
20751         assemblies. 
20752
20753         (mono_assembly_close): only destroy the assembly when the last
20754         reference is gone.
20755         
20756 2001-11-09  Dick Porter  <dick@ximian.com>
20757
20758         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20759
20760 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20761
20762         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20763
20764 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20765
20766         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20767         from Martin Weindel.
20768         * object.h: add mono_string_chars ().
20769
20770 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20771
20772         * reflection.c (build_compressed_metadata): Eliminates warnings
20773         and uses 64-bit clean code.
20774
20775         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20776         (mono_type_equal): Change signature to eliminate warnings.
20777
20778 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20779
20780         * icall.c, loader.c: remove the internalcall array constructors.
20781         Changes to match the new MonoArray structure.
20782         * object.h, object.c: an array object doesn't allocate an extra
20783         vector. Add mono_array_new_full () to create jagged arrays easily.
20784
20785 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20786
20787         * metadata.h, metadata.c: add mono_metadata_field_info () to
20788         retreive all the info about a field from vairous tables.
20789         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20790         * class.h, class.c: augment MonoClassField with more info.
20791         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20792         policy and load a field's RVA if needed.
20793
20794 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20795
20796         * class.c (mono_class_metadata_init): create a trampoline for all
20797         virtual functions instead of actually compiling them.
20798
20799 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20800
20801         * class.h, class.c: include name in MonoClassField.
20802         * class.c: fix fundamental type of System.Object and System.String.
20803         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20804         tokens in ldtoken.
20805         * icall.c: remove internalcalls for the Reflection stuff that is now
20806         done in C# code.
20807         * loader.c: mono_field_from_memberref () implementation.
20808         * mono-endian.c: thinko (s/struct/union/g).
20809         * object.c, object.h: make the mono_string_* prototypes actually use
20810         MonoString instead of MonoObject.
20811         * reflection.c, reflection.h: updates for changes in the reflection
20812         code in corlib: we use C structures that map to the actual C# classes.
20813         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20814         fat method header if needed and use the info from the ILGenerator for
20815         methods. Handle fields in types. Misc fixes.
20816
20817 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20818
20819         * class.c (mono_class_metadata_init): bug fix: always allocate
20820         space for static class data
20821
20822 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20823
20824         * class.c (mono_compute_relative_numbering): use relative
20825         numbering to support fast runtime type checks.
20826
20827 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20828
20829         * class.c (mono_class_create_from_typeref): added debugging output
20830         to print class name when MonoDummy is returned instead of real class
20831
20832 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20833
20834         * class.c (mono_class_metadata_init): interface offset table now
20835         contains pointers into the vtable - this is more efficient for the jit
20836
20837 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20838
20839         * class.c (mono_class_metadata_init): use a temporary vtable (the
20840         old algorithm only worked for the interpreter, but not for the jit)
20841
20842 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20843
20844         * loader.c (method_from_memberref): use mono_class_get to get the
20845         class of an array instead of using System.Array directly.
20846         (mono_get_method): also add MEMBERREF methods to the method cache
20847         which usefull for arrays.
20848
20849 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20850
20851         * pedump.c (arch_compile_method): added to compute vtable entry
20852
20853         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20854         number of interfaces.
20855         
20856         * class.h: merged MonoArrayClass into MonoClass
20857
20858         * class.c (mono_class_create_from_typedef): compute the vtable size and
20859         allocate space to include the vtable inside MonoClass
20860         (mono_class_metadata_init): initialize the vtable
20861
20862 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20863
20864         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20865         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20866         * image.c: endian fixes by Laurent Rioux.
20867         * object.h, object.c: rename MonoStringObject to MonoString and
20868         MonoArrayObject to MonoArray. Change some function names to conform to
20869         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20870         guint16* as first argument, so don't use char*.
20871         Provide macros to do the interesting things on arrays in a portable way.
20872         * threads-pthread.c: updates for the API changes and #include <sched.h>
20873         (required for sched_yield()).
20874         * icall.c: updates for the API changes above.
20875         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20876         platforms that need them.
20877
20878 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20879
20880         * class.c: set the correct type for all the fundamental
20881         type when loading the class.
20882
20883 2001-10-05  Dick Porter  <dick@ximian.com>
20884
20885         * threads-pthread.c (pthread_mutex_timedlock): Simple
20886         compatibility version for C libraries that lack this call.
20887
20888 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20889
20890         * class.c: MonoTypes stored in MonoClass are stored as
20891         fundamental MonoTypes when the class represents a
20892         fundamental type (System.Int32, ...).
20893         The TypeHandle return by ldtoken is a MonoType*.
20894         * icall.c: ves_icall_get_data_chunk () write out all the
20895         PE/COFF stuff. Implement ves_icall_define_method (),
20896         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20897         * image.c: properly skip unknown streams.
20898         * loader.h, loader.c: add type_class to mono_defaults.
20899         * metadata.c, metadata.h: export compute_size () as
20900         mono_metadata_compute_size () with a better interface.
20901         Typo and C&P fixes.
20902         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20903         * reflection.c, reflection.h: many cleanups, fixes, output method
20904         signatures and headers, typedef and typeref info, compress the metadata
20905         tables, output all the heap streams, cli header etc.
20906         * row-indexes.h: typo fixes.
20907
20908 2001-10-04  Dick Porter  <dick@ximian.com>
20909
20910         * object.h: Add a synchronisation mutex struct to MonoObject
20911
20912         * object.c (mono_new_object): Initialise the object
20913         synchronisation mutexes
20914
20915         * icall.c: System.Threading.Monitor internal calls
20916         
20917         * threads-pthread.h:
20918         * threads-pthread.c: System.Threading.Monitor internal calls
20919
20920         * threads-types.h: New file, includes the system-specific thread
20921         structures
20922         
20923         * threads-pthread-types.h:
20924         * threads-pthread-types.c: New files, handle pthread-specific
20925         synchronisation types
20926
20927         * threads-dummy-types.h: 
20928         * threads-dummy-types.c: New files of dummy support for
20929         thread-specific types
20930
20931         * metadata.c:
20932         * image.c:
20933         * pedump.c: include mono-endian.h not endian.h
20934         
20935         * Makefile.am: More threads files.
20936         Name mono-endian.h not endian.h
20937
20938 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20939
20940         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20941         stuff and implement a few more bits.
20942         * icall.c: a field needs to be dereferenced twice. Do not use the same
20943         name for two variables in the same scope.
20944         * image.c, image.h: cleanups.
20945
20946 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20947
20948         * class.c (mono_class_metadata_init): bug fix: compute the right size
20949
20950 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20951
20952         * icall.c: implemented some of the Reflection internalcalls.
20953         * image.c, image.h: start writing out the PE/COFF image.
20954         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20955         that does the reverse than decode_blob_size ().
20956         * object.c: use mono_metadata_encode_value (). Move here
20957         temporary implementation of mono_string_to_utf8 ().
20958         * rawbuffer.c: make malloc_map static.
20959
20960 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20961
20962         * metadata.c: fix type comparison for arrays.
20963         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20964         Added a couple of new classes to monodefaults.
20965         * icall.c: added a couple of Reflection-related internalcalls.
20966         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20967         Added a byval_arg MonoType to MonoClass.
20968
20969 2001-09-28  Dick Porter  <dick@ximian.com>
20970
20971         * icall.c:
20972         * threads-pthread.h: 
20973         * threads-pthread.c: Implemented internal calls for
20974         LocalDataStoreSlot operations.  Applied mutexes around all shared
20975         data.  Reworked the thread creation and Start() operations to
20976         avoid a race condition.
20977         
20978         * threads-dummy.h:
20979         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20980
20981 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20982
20983         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20984
20985 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20986
20987         * class.c, loader.c: warn and return NULL instead of erroring out.
20988         * icall.c: added System.AppDomain::getCurDomain().
20989         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20990
20991 2001-09-25  Dick Porter  <dick@ximian.com>
20992
20993         * threads-pthread.h:
20994         * threads-pthread.c: Implemented timed thread joining and added
20995         System.Threading.Thread::Join_internal internal call
20996
20997         * icall.c: Added System.Threading.Thread::Join_internal internal call
20998
20999         * threads-dummy.h:
21000         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
21001
21002 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
21003
21004         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
21005         mono_string_intern () to implement the semantics of the ldstr opcode
21006         and the interning of System.Strings.
21007         * icall.c: provide hooks to make String::IsIntern and String::Intern
21008         internalcalls.
21009
21010 2001-09-23  Dick Porter  <dick@ximian.com>
21011
21012         * threads-dummy.c: 
21013         * threads-dummy.h: New files of dummy threading routines
21014
21015         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
21016         support code based on system specifics
21017
21018         Rename PTHREAD_LIBS to THREAD_LIBS
21019         
21020 2001-09-23  Dick Porter  <dick@ximian.com>
21021
21022         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
21023         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
21024         internal calls.
21025         (mono_thread_init): Set up a Thread object instance to return when
21026         the main thread calls Thread.CurrentThread
21027         (mono_thread_cleanup): Wait for all subthreads to exit
21028
21029         * icall.c: New internal calls for System.Threading.Thread::Sleep
21030         (including Schedule) and CurrentThread
21031
21032         * threads.h: New file, to insulate thread-specific stuff from the
21033         rest of the code
21034
21035 2001-09-21  Dick Porter  <dick@ximian.com>
21036
21037         * threads-pthread.h: 
21038         * threads-pthread.c: New file, for handling pthreads-style
21039         threading support.  Start() now starts a new thread and executes
21040         the ThreadStart delegate instance.
21041
21042         * icall.c: Added the internalcall for
21043         System.Threading.Thread::Start_internal
21044
21045         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
21046
21047 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
21048
21049         * loader.c: work around the different signatures for delegates
21050         constructors csc generates in compiled code vs the ones compiled in mscorlib.
21051
21052 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21053
21054         * class.h, class.c: add mono_class_get_field_from_name ().
21055         * *: Fix C comments and other ANSI C issues.
21056
21057 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
21058
21059         * endian.h, assembly.c: fix some endianness issues.
21060
21061 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
21062
21063         * loader.h, load.c: add delegate_class to mono_defaults.
21064         Handle runtime provided methods in mono_get_method ().
21065
21066 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
21067
21068         * loader.c (mono_get_method): use pinvoke for internal call
21069
21070         * icall.c: use pinvoke for internal call
21071
21072         * loader.c (method_from_memberref): set the method name
21073
21074 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
21075
21076         * metadata.c: help the compiler generate better code for
21077         mono_class_from_mono_type ().
21078
21079 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
21080
21081         * class.c (mono_class_metadata_init): delayed computing of the
21082         class size to mono_class_metadata_init ()
21083
21084 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
21085
21086         * class.c, class.h: add an interfaces member to MonoClass.
21087         * image.c, image.h: add assembly_name field to MonoImage
21088         from the assembly table.
21089         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
21090
21091 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21092
21093         * class.c: Handle Array in mono_class_from_mono_type ().
21094         * metadata.c, pedump.c: some endian fixes.
21095
21096 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21097
21098         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
21099         * metadata.c: fix small problem introduced with the latest commit.
21100
21101 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
21102
21103         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
21104         We don't need a MonoMetadata pointer anymore to compare signatures in
21105         mono_metadata_signature_equal (), update callers.
21106         Reduced memory usage an number of allocations for MonoMethodHeader and
21107         MonoMethodSignature.
21108
21109 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
21110
21111         * metadata.c: added compare for szarray.
21112
21113 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
21114
21115         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
21116         and add a couple more types to it and mono_defaults. Give an hint on
21117         classes that need implementing in our corlib and are referenced
21118         in mscorlib.
21119
21120 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
21121
21122         * class.h, class.c: keep track if a class is also an Enum.
21123         * loader.c: Implement a couple more types for use in libffi
21124         marshalling. Gives better diagnostics when failing to dlopen
21125         a library. Set method->klass for P/Invoke methods, too.
21126
21127 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
21128
21129         * class.c, class.h: add a MonoType this_arg to MonoClass that
21130         represents a pointer to an object of the class' type that
21131         can be used by the interpreter and later the type cache.
21132         Add best guess alignment info for valuetype objects.
21133
21134 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
21135
21136         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
21137         into MonoType: one less level of indirection and allocation and
21138         simplifies quite a bit of code. Added cache for MonoTypes that are
21139         used frequently, so that we don't need to allocate them all the time.
21140
21141 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
21142
21143         * class.c (mono_class_create_from_typedef): System.Enum is also a
21144         value type, although it does not derive from System.ValueType
21145         (maybe a bug in the ms compiler?)
21146
21147         * metadata.c (mono_type_size): return the right size for value types
21148
21149         * loader.c (mono_get_method): only initialize method header if not abstract
21150
21151         * class.c (mono_class_from_mono_type): use mono_default values. 
21152
21153 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
21154
21155         * *: use MonoClass pointers instead of <type_tokens>
21156         
21157         * class.h: new flag: metadata_inited.
21158
21159         * class.c (mono_class_metadata_init): impl.
21160         (mono_class_instance_size): impl.
21161         (mono_class_data_size): impl.
21162
21163 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21164
21165         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
21166         MonoClass now has the name and name_space fields. 
21167         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
21168         mono_get_method () takes and optional MonoClass as argument.
21169         Removed mono_typedef_from_name() and added mono_class_token_from_name()
21170         instead that takes advantage of a map from class names to typedef
21171         tokens in MonoImage.
21172
21173 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
21174
21175         * metadata.c: zero is not a valid alignment boundary.
21176         Merge MONO_TYPE_VOID in default decoding code.
21177
21178 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
21179
21180         * image.h: merged MonoMetadata into MonoImage
21181
21182         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
21183         identify the type of elements.
21184
21185 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
21186
21187         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
21188         * cil-coff.h: split MonoMSDOSHeader and add size info.
21189         * image.c: add some consistency checks.
21190         * metadata.c: fix row size computation: one programmer
21191         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
21192         add explanation for the locator routine.
21193         Fix decoding of size in method header.
21194         
21195 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
21196
21197         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
21198         (g_concat_dir_and_file): Bring g_concat_dir_and_file
21199         function from gnome-libs.  This uses the right path separator
21200         based on the OS, and also works around a bug in some systems where
21201         a double slash is not allowed. 
21202         (default_assembly_name_resolver): Use g_concat_dir_and_file
21203         (mono_assembly_open): ditto.
21204
21205 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
21206
21207         * metadata.c (mono_metadata_signature_equal): impl.
21208
21209         * *: void is now a realy MonoType (instead of using NULL)
21210         
21211         * metadata.c (do_mono_metadata_parse_type): use
21212         mono_metadata_parse_type to parse void value.
21213
21214 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
21215
21216         * metadata.c, metadata.h: in the signature and method header store
21217         only the space required for holding the loca vars and incoming arguments.
21218
21219 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
21220
21221         * metadata.c (do_mono_metadata_parse_type): treat void like any
21222         other type (instead of assigning NULL);
21223
21224 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
21225
21226         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
21227
21228 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
21229
21230         * image.c (do_mono_image_open): added a cache for arrays.
21231
21232 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21233
21234         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
21235         decode a single column from a row in a metadata table and changes
21236         to take advantage of it in the typedef locator (gives a nice speed up).
21237         Store offset info for function params.
21238
21239 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
21240
21241         * image.h (MONO_IMAGE_IS_CORLIB): removed 
21242
21243 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
21244
21245         * assembly.c: how could mono_assembly_close () had ever worked?
21246         * metadata.c, metadata.h: provide offset info for local vars.
21247         Implement mono_type_size () to take care of alignment as well
21248         as size (it was mono_field_type_size in cli/class.c before).
21249
21250 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
21251
21252         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
21253
21254         * assembly.h (CORLIB_NAME): set to corlib.dll
21255
21256         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
21257
21258 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21259
21260         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
21261         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
21262         tokentype.h: massive namespace cleanup.
21263
21264 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21265
21266         * metadata.h, metadata.c: decode exception clauses when parsing method header.
21267
21268 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
21269
21270         * metadata.c (mono_metadata_free_type): added check for type !=
21271         NULL (void) before calling mono_metadata_free_type()
21272
21273 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
21274
21275         * metadata.h, row_indexes.h: added header with enumerations to use
21276         to index in the columns from tables in metadata and to decode coded
21277         tokens: we should start using this instead of embedding magic numbers
21278         all over the code.
21279
21280 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
21281
21282         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
21283         Move metadata_t info from cli_image_info_t to MonoImage, where
21284         it's easily accessible. Changed all the uses accordingly.
21285         Added the method and class caches to MonoImage.
21286         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
21287         and mono_metadata_decode_value () signature to be more consistent
21288         with the other parse functions (and simplify code). Taken advantage
21289         of zero-length array allocation with GCC. Removed reduntant (and
21290         wrong) MonoFieldType struct and use MonoParam instead. Changed
21291         mono_metadata_parse_field_type () to use common code for parsing.
21292         Added mono_metadata_typedef_from_field () and
21293         mono_metadata_typedef_from_method () to lookup a typedef index from a
21294         field or method token.
21295         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
21296
21297 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
21298
21299         * metadata.c (mono_metadata_parse_field_type): Implement. 
21300         (do_mono_metadata_parse_type): Split engine from
21301         mono_metadata_parse_type, so that we can create smaller structures
21302         for things that just have one pointer to the MonoType (look at
21303         the MonoFieldType)
21304
21305 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
21306
21307         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
21308         as Jan Gray found out, it is incorrect. 
21309
21310 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
21311
21312         * assembly.c: Implement asssembly loading.  This loads an image
21313         and loads all the referenced assemblies.  Come to think of it, we
21314         could always do lazy loading of the assemblies. 
21315
21316         * image.c (mono_image_open): Keep loaded images in a hashtable.
21317
21318         * image.h (MonoImage): Add reference count.
21319
21320 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
21321
21322         * assembly.c (mono_assembly_open): Keep track of the file name in
21323         case the assembly has no ASSEMBLY table.
21324
21325         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
21326         from get.c here.
21327
21328 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
21329
21330         * metadata.c, metadata.h: decode local vars in method header
21331         parse function. Change callers accordingly.
21332
21333 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
21334
21335         * metadata.h, cil-coff.h: protect against multiple inclusion.
21336         Added some new structures to hold information decoded from metadata:
21337         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
21338         and relevant decoding/free functions.
21339         * metadata.c: implement decoding functions. Add warning for out of bounds
21340         index in mono_metadata_locate(). Implement mono_get_method () to retreive
21341         all the info about a method signature and invocation. Remove check on
21342         uninitialized local var in parse_mh() and fix memory leak.
21343
21344 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
21345
21346         * metadata.h: More macros.
21347
21348         * tokentype.h: New file.
21349
21350 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
21351
21352         * assembly.c: added a consistency check and initialize
21353         some structures with g_new0().
21354         * metadata.c: fixed a couple more bugs in table size computation
21355         and add other checks for out-of bound access to metadata.
21356
21357 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
21358
21359         * metatada.c: fix bugs computing table sizes. Spew a
21360         warning when index in string heap is out of bounds.
21361
21362 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
21363
21364         * metadata.h: Add a couple of macros to manipulate tokens. 
21365
21366 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21367
21368         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
21369         cli_section_tables).
21370
21371 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
21372
21373         * metadata.c (mono_metadata_user_string): New function, provides
21374         access to the UserString heap. 
21375
21376 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
21377
21378         * metadata.c: Add inline documentation.
21379
21380 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
21381
21382         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
21383         files. 
21384
21385 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
21386
21387         * typeattr.h: New file, TypeAttribute flags. 
21388
21389 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
21390
21391         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
21392         mono_assembly_ensure_section): Section loading code.
21393         (load_section_tables): Load the sections.
21394
21395         * mono/metadata/metadata.c (mono_metadata_locate_token,
21396         mono_metadata_locate): Functions to locate the information
21397         definition given a token or a table and an index.
21398         (mono_metadata_compute_table_bases): New.
21399         (compute_size): New function to compute the sizes of the various
21400         tables.
21401
21402         * mono/metadata/metadata.h: Finish listing the different index
21403         types. 
21404
21405         * mono/metadata/pedump.c: Improve to dump new information.
21406
21407 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
21408
21409         * mono/metadata/metadata.c: Entered all the tables matching
21410         Beta2. 
21411
21412         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
21413
21414
21415