* class-internals.h (_MonoGenericParam.method): Move ...
[mono.git] / mono / metadata / ChangeLog
1 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2
3         * class-internals.h (_MonoGenericParam.method): Move ...
4         (_MonoGenericContainer): ... here.  Add into union with klass field.
5         * class.c, icall.c, loader.c, metadata.c, reflection.c:
6         Update to changes.
7
8 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
9
10         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
11         the wrapper type enum and reduce relocations.
12
13 2007-01-12  Raja R Harinath  <rharinath@novell.com>
14
15         * reflection.c (inflate_mono_method): Reuse method instantiation
16         from the generic method, if available.
17
18 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
19
20         * marshal.c (emit_marshal_variant): Fix conv_arg
21         type in last commit, based on whether parameter is byref.
22         
23 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
24
25         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
26         marshalling.
27         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
28         MONO_TYPE_OBJECT back for VARIANT support.
29
30 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
31
32         * marshal.c, marshal.h, icall-def.h: Implement 
33         Marshal.ReAllocCoTaskMem.
34
35 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
36
37         * marshal.c: memory retention fixes: use the proper
38         image cache for runtime_invoke method lookups.
39
40 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
41
42         * mempool.c: added code to help debug mempool allocations.
43
44 2007-01-11  Dick Porter  <dick@ximian.com>
45
46         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
47         support (experimenting with faking it with IP_MTU_DISCOVER for
48         systems that don't have IP_DONTFRAGMENT.)
49         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
50         icall.
51
52         * icall-def.h: new System.Net.Sockets.Disconnect icall.
53
54         * socket-io.h: Add new fields to MonoSocketAsyncResult
55         corresponding to the new ones in Socket.cs.
56
57 2007-01-11  Raja R Harinath  <rharinath@novell.com>
58
59         Fix IronPython regression mentioned in #80249
60         * metadata.c (do_mono_metadata_parse_generic_class): Clear
61         'cached_context' field, since it may have been initialized as a
62         side-effect of metadata parsing.
63
64         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
65         (_MonoGenericClass.cached_class): Move here and rename from lone
66         remaining field of ...
67         (_MonoInflatedGenericClass): ... this.  Remove.
68         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
69         to changes.
70
71         Fix mcs/tests/test-128.cs regression.
72         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
73         2007-01-10 change below.
74         [MONO_TYPE_OBJECT]: Recurse into array case.
75
76 2007-01-11  Raja R Harinath  <harinath@gmail.com>
77
78         * class-internals.h (mono_get_inflated_generic_class): Remove.
79         * class.c (mono_get_inflated_generic_class): Remove.
80         (mono_generic_class_get_class): Rename from
81         mono_class_create_generic.
82         (mono_class_from_mono_type) [GENERICINST]: Use it.
83         * reflection.c, metadata.c: Update to changes.  Use
84         'mono_class_from_mono_type'.
85
86 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
87
88         * reflection.c: use passed type when encoding an array element
89         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
90
91 2007-01-09  Robert Jordan  <robertj@gmx.net>
92
93         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
94         result arguments (someDelegate.EndInvoke (unrelatedAres)).
95         Fixes bug #80392.
96
97 2007-01-09  Raja R Harinath  <rharinath@novell.com>
98
99         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
100
101         * object.c (set_value): Avoid aliasing between type->data.klass
102         and type->data.generic_class.
103
104         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
105
106 2007-01-08  Raja R Harinath  <rharinath@novell.com>
107
108         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
109         between type->data.klass and type->data.generic_class.
110
111 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
112
113         * marshal.c: In MS.NET, StringBuilder objects are not copied by
114         value in out parameters.
115
116 2007-01-08  Raja R Harinath  <rharinath@novell.com>
117
118         Simplify invariant for MonoGenericClass::klass field.
119         * class.c (mono_class_create_generic): Verify 'klass' is null.
120         * metadata.c (do_mono_metadata_parse_generic_class): Don't
121         initialize 'klass' field.
122
123 2007-01-05  Raja R Harinath  <rharinath@novell.com>
124
125         Ongoing work to avoid redundant data and simplify invariants.
126         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
127         'generic_class', and change type to a GenericInst.
128         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
129         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
130
131 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
132
133         * class.c : skip io-layer under PLATFORM_WIN32.
134
135 2007-01-03  Tor Lillqvist  <tml@novell.com>
136
137         Fix #80305: In a bundled executable, look in the bundled exe
138         assembly to determine the runtime version. Add the possibility to
139         bundle also the machine.config file.
140         
141         * assembly.c (mono_assembly_open_from_bundle): Make
142         non-static. Allow being called even if we have no bundled
143         assemblies, and return NULL right away in that case.
144
145         * domain-internals.h: Declare mono_assembly_open_from_bundle()
146         here.
147
148         * domain.c (app_config_parse): Take an assembly exe file name as
149         parameter instead of a config file name. Check for a bundled
150         config file for that assembly by calling
151         mono_config_string_for_assembly_file() (see below) before looking
152         for one in the file system.
153         (get_runtimes_from_exe): Corrsponding change to call of
154         app_config_parse().
155         (get_runtimes_from_exe): Check for bundled assembly exe file first
156         by calling mono_assembly_open_from_bundle(). If no bundled
157         assembly exe file is found, call mono_image_open() as before to
158         look it up in the file system.
159
160         * mono-config.c: Add variable bundled_machinec_onfig.
161         (mono_config_string_for_assembly_file): New function.
162         (mono_config_for_assembly): Move code snippet that looks for a
163         bundled assembly .config file into the above new function. Call
164         it.
165         (mono_register_machine_config, mono_get_machine_config): New
166         functions to set and retrieve
167
168         * assembly.h: Declare mono_register_machine_config().
169
170         * mono-config.h: Declare mono_get_machine_config() and
171         mono_config_string_for_assembly_file().
172
173         * icall.c: No declaration of environ necessary on Win32. It is
174         declared (as a macro expanding to a function call) in stdlib.h.
175         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
176         New internal mono function. Returns the value of
177         mono_get_machine_config() as a Mono string.
178
179         * icall-def.h: Add get_bundled_machine_config().
180
181 2007-01-04  Raja R Harinath  <rharinath@novell.com>
182
183         Remove redundant field
184         * class-internals.h (_MonoGenericContext.container): Remove field.
185         * loader.c (mono_method_get_signature_full): Don't parse a
186         "container" for a signature parse when the signature is inflated
187         immediately.
188         (method_from_methodspec): Likewise, for a generic_inst.
189         * class.c, metadata.c, reflection.c: Update to changes.
190
191 2006-01-04  Raja R Harinath  <rharinath@novell.com>
192
193         * class-internals.h (_MonoGenericClass): Rename 'context' field to
194         'cached_context', and change semantics -- it starts off NULL, and
195         is initialized on demand.
196         * class.c (mono_generic_class_get_context): New accessor to
197         replace 'context' field accesses.
198         (mono_class_get_context): New helper.
199         (*): Update to changes.
200         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
201
202 2007-01-03  Miguel de Icaza  <miguel@novell.com>
203
204         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
205         before the memcpy.   Fixes Marshal2 regression.
206
207 2007-01-02  Jb Evain  <jbevain@gmail.com>
208
209         * blob.h: add a MONO_TYPE_ENUM definition
210         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
211         fix the encoding of arrays of enums in custom attributes.
212
213         Fixes #79666.
214
215 2007-01-01  Miguel de Icaza  <miguel@novell.com>
216
217         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
218         string is null terminated, but only cut the string short if it
219         overflows the buffer.   
220         
221         (mono_string_to_byvalstr): Also fix this routine.   The code here
222         was not properly terminating a string (it was only terminated
223         because of the previous catch-all memset). 
224
225         I left the memset, because I do not know if applications expect
226         the runtime to clear this region. 
227
228         Fixes #79944.
229
230         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
231         Clear the error before returning to unmanaged code to prevent the
232         runtime from being confused later on (fixes  80420).
233         (ves_icall_type_from_name): Always call mono_loader_clear_error
234         after parsing a type that could have failed.
235         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
236
237         * loader.c (mono_loader_clear_error): Fix indentation.
238
239 2006-12-28  Martin Baulig  <martin@ximian.com>
240
241         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
242
243 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
244
245         * reflection.c: patch from Rolf Bjarne Kvinge to fix
246         getting a token for an EnumBuilder.
247
248 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
249
250         * reflection.c: be more careful in case resource generation
251         fails to create the data array.
252
253 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
254
255         * sgen-gc.c: write barrier for clone and fix unregister handles.
256
257 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
258
259         * reflection.c: some fixes needed in the generics code for the moving GC.
260
261 2006-12-22  Robert Jordan  <robertj@gmx.net>
262
263         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
264         account. Fixes bug #80299.
265
266 2006-12-21  Raja R Harinath  <rharinath@novell.com>
267
268         Fix WaitHandle usage in delegates.
269         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
270         * object.c (mono_wait_handle_new): Use the property set method to
271         initialize the handle.
272         (mono_wait_handle_get_handle): New.
273         * threadpool.c (mono_async_invoke): Use it.
274         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
275         Likewise.
276         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
277
278 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
279
280         * marshal.c (emit_marshal): Call emit_marshal_variant and
281         emit_marshal_com_interface when applicable.
282         (emit_marshal_variant, emit_marshal_com_interface): Add
283         methods for this case and remove if's from emit_marshal_object.
284         
285 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
286
287         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
288
289 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
290
291         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
292         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
293         and GlobalFree on Windows. Remove FIXME.
294
295 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
296
297         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
298         implementation for managed objects.
299
300 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
301
302         * object.c: implemented code to be used for checking
303         that no reference field overlaps with non-references.
304
305 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
306
307         * threadpool.c: fix queue code to be compatible with the
308         moving GC.
309
310 2006-12-18  Miguel de Icaza  <miguel@novell.com>
311
312         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
313         in structures by throwing ArgumentNullException.
314
315         (emit_marshal_safehandle): Also when they are null parameters.
316
317         (emit_marshal_safehandle): Add support for ref
318         SafeHandles parameters
319
320 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
321
322         * profiler.c: updated to use the mono-dl API instead of
323         gmodule.
324
325 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
326
327         * profiler.c: updated to use the mono-dl dynamic loading
328         API instead of gmodule.
329
330 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
331
332         * profiler.c: use readlink, older versions of glib don't have
333         g_file_read_link ().
334
335 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
336
337         * profiler.c: try to detect the path to mono if libc fails to provide
338         a useful name (bug #80286).
339
340 2006-12-16  Raja R Harinath  <rharinath@novell.com>
341
342         Fix #80242
343         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
344         instance, use the generic type definition instead.
345         (ves_icall_Type_GetNestedTypes): Likewise.
346         * class.c (mono_class_create_generic): Always set the
347         nested_classes of a generic instance to NULL, even if the generic
348         type definition has nested types.
349
350 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
351
352         * marshal.c (mono_string_from_bstr): Revert previous Windows change
353         and fix on Linux.
354         
355 2006-12-15  Miguel de Icaza  <miguel@novell.com>
356
357         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
358         my arguments were in the wrong order.   I also fixed the Windows
359         version which seems to have had the same issue.
360
361         (mono_free_bstr): On Unix, this is g_free.
362         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
363         conversions (for the tests in corlib to pass).
364
365 2006-12-14  Miguel de Icaza  <miguel@novell.com>
366
367         * marshal.c (emit_ptr_to_object_conv): For now, ignore
368         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
369         exception if a ref SafeHandle in a struct has changed).
370         
371         (emit_struct_conv): Do not perform layout checks for classes
372         derived from SafeHandle, as those are specially handled. 
373
374         (emit_object_to_ptr_conv): Add support for
375         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
376
377         (emit_marshal_safehandle): Implement conversion of return values
378         of safehandles (MARSHAL_ACTION_CONV_RESULT).
379         
380         * threads.c: WaitHandle now is compiled with two different handles
381         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
382         for 2.0.
383         
384         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
385         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
386         these routines to cope with both kinds of fields.
387
388 2006-12-12  Miguel de Icaza  <miguel@novell.com>
389
390         * metadata.c (mono_type_to_unmanaged): Handle the case where
391         type->data.klass is a SafeHandle, and in that case, return the
392         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
393         MONO_MARSHAL_CONV_SAFEHANDLE. 
394
395 2006-12-11  Miguel de Icaza  <miguel@novell.com>
396
397         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
398         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
399         calling emit_marshal_object.
400
401         (emit_marshal_safehandle): Implement marshalling of
402         SafeHandle parameters (no ref support yet).
403
404         (MarshalAction): Document the defines as I implement
405         them for SafeHandle.
406
407         (emit_marshal_object): indentation police.
408
409         * class-internals.h: Define MonoSafeHandle.
410         Add safehandle_class to MonoDefaults type.
411
412         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
413         list of classes to check for fields. 
414
415         * domain.c (mono_init_internal): Add SafeHandle to the list of
416         mono_defaults loaded.
417
418 2006-12-15  Raja R Harinath  <rharinath@novell.com>
419
420         Fix #80253
421         * reflection.c (mono_reflection_bind_generic_parameters): If the
422         generic type definition is a type builder, ensure that it is fully
423         initialized before instantiating it.  Kill some dead code.
424
425 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
426
427         * object.c: clear the loader_error () before loading
428         more metadata stuff (bug #80258).
429
430 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
431
432         * icall.c, icall-defs.h: type modifiers icalls for
433         parameters and properties.
434
435 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
436
437         * object.c, icall.c: fixed warnings.
438
439 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
440
441         * marshal.c: fixed a couple of leaks and coding style in a few places.
442
443 2006-12-08  Dick Porter  <dick@ximian.com>
444
445         * process.c: Cope with NULL ProcessStartInfo arguments on windows
446         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
447         80173.
448
449 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
450
451         * process.c: ProcessStartInfo may have only filename set and
452         arguments can be NULL.
453
454 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
455
456         * icall.c: fix leak found by Robert Jordan.
457
458 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
459
460         * marshal.c, marshal.h: generate managed method to access an element
461         of a multi-dimensional array.
462
463 2006-11-30  Paolo Molaro (lupus@ximian.com)
464
465         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
466
467 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
468
469         * icall.c: back out GetFields () fix until the serialization code is
470         fixed to not depend on the incorrect behaviour.
471
472 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
473
474         * profiler.c: provide defaults if none are set.
475
476 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
477
478         * Makefile.am, attrdefs.h: new public header file with
479         constants for attributes for use by embedders.
480
481 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
482
483         * icall.c: GetFields () fix for bug #80064.
484
485 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
486
487         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
488         removed long unused icalls.
489
490 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
491   
492         * marshal.c: 
493                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
494                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
495                 can be generated without a delegate class.
496                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
497         
498         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
499
500 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
501
502         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
503         #80069.
504
505 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
506
507         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
508         icall-def.h: added icalls needed by System.GC.
509
510 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
511
512         * loader.c: ensure the class in catch clauses is handled
513         correctly for generics methods (fixes bug#79980).
514
515 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
516
517         * monitor.h, monitor.c: added mono_locks_dump () function
518         to help debug deadlocks involving managed locks.
519
520 2006-11-13  Dick Porter  <dick@ximian.com>
521
522         * file-io.c (get_file_attributes): If the file is a symlink try
523         and get the stat data for the target, but also add the
524         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
525         the specs for the windows symlink support, but will probably have
526         to be reworked when I have test data from a vista machine.  Fixes
527         bug 79887.
528
529 2006-11-13  Dick Porter  <dick@ximian.com>
530
531         * gc.c (mono_domain_finalize): 
532         * marshal.c (mono_delegate_begin_invoke): 
533         * threadpool.c (socket_io_init, mono_thread_pool_init)
534         (mono_thread_pool_finish): 
535         * monitor.c (mono_monitor_try_enter_internal): 
536         * threads.c (mono_thread_resume, mono_thread_init)
537         (mono_thread_suspend_all_other_threads)
538         (mono_thread_execute_interruption): 
539         * appdomain.c (mono_domain_unload): Check for NULL error returns
540         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
541         75733.
542
543 2006-11-11  Miguel de Icaza  <miguel@novell.com>
544
545         * process.c
546         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
547         Only close the handle if the value of the handle is not
548         INVALID_HANDLE_VALUE.  This just makes the process a bit more
549         robust.
550
551         Improvement for #75733, so that we do not run into this problem. 
552
553         
554         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
555         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
556         internal variables.  Fixes #79462 
557         
558
559 2006-11-09  Dick Porter  <dick@ximian.com>
560
561         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
562         Use poll() not select().  Fixes bug 79397.
563
564 2006-11-09  Raja R Harinath  <rharinath@novell.com>
565
566         Fix #79872
567         * assembly.c (mono_assembly_load_from_full): Check that the given
568         image has an assembly manifest.
569
570 2006-11-09  Ankit Jain  <jankit@novell.com>
571
572         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
573         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
574         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
575
576 2006-11-07  Dick Porter  <dick@ximian.com>
577
578         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
579         Put the old resolver behaviour back for pre-2.0 profiles.
580
581 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
582
583         * threadpool.c: precise GC and locking fixes.
584
585 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
586
587         * class.c: don't load types that have an explicit unaligned
588         managed reference. Provide better info in the TypeLoad exception.
589         Part of the fix for bug #79744.
590         * object.c: use the correct check for class type load issues.
591
592 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
593
594         * class.c: enforce alignment of fields with managed references
595         even when Pack=1 is forced by the user (bug #77788).
596
597 2006-11-03  Dick Porter  <dick@ximian.com>
598
599         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
600         If the address reverse lookup fails, return it as the hostname
601         anyway.  Fixes bug 79721.
602
603 2006-11-03  Dick Porter  <dick@ximian.com>
604
605         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
606         Fix build on Windows.
607
608 2006-11-02  Dick Porter  <dick@ximian.com>
609
610         * icall-def.h: 
611         * object-internals.h: 
612         * exception.c (mono_get_exception_thread_interrupted): 
613         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
614         Fixes bug 74525.
615
616         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
617         Check for pending Thread.Interrupt.
618
619 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
620         * loader.c: Fixed bug 79684.
621
622 2006-10-27  Dick Porter  <dick@ximian.com>
623
624         * file-io.c (get_file_attributes): Force symlinks to directories
625         to be returned as a regular file.  Fixes bug 79733.
626 2006-10-26  Dick Porter  <dick@ximian.com>
627
628         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
629         CreateFile to open a directory then we need to set the
630         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
631
632 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
633
634         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
635         friends.
636
637 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
638
639         * sgengc.c: small cleanup of timer code.
640
641 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
642
643         * sgen-gc.c: fix some warnings and start adding support for
644         complete object removal on domain unload.
645
646 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
647
648         * assembly.c: build_assembly_name should not consider a version
649         number without build or revision number invalid. Fixes bug #79715.
650
651 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
652
653         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
654         call kernel32 function OutputDebugString directly.
655         
656         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
657         
658 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
659
660         * reflection.c: small cleanup, using a function to insert a MonoString
661         in the string heap.
662
663 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
664
665         * reflection.c: moving GC fixes.
666
667 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
668
669         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
670         all the objects with finalizers belonging to an unloading appdomain.
671
672 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
673
674         * sgen-gc.c: added ability to allocate even when the nursery is fully
675         pinned and fixed a couple of bugs.
676
677 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
678
679         * threads.h: Revert the last change for now.
680
681         * threads.h (mono_thread_get_pending_exception): Rename this to
682         mono_thread_get_undeniable_exception ().
683
684 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
685
686         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
687         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
688         when fname does not refer to valid assembly. This result in a more
689         meaningful error message.
690         * exception.c: added mono_get_exception_bad_image_format2 which 
691         constructs a BadImageFormatException using the ctor taking a custom
692         message and the file name. Passing in a NULL msg results in a default
693         message.
694         * exception.h: define mono_get_exception_bad_image_format2 function.
695         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
696         when file name pointed to an invalid IL image. Use 
697         mono_get_exception_file_not_found2 to construct FileNotFoundException,
698         as this results in a more meaningful error message.
699
700 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
701
702         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
703         #79465.
704
705 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
706
707         * metadata.c (mono_type_size): Change the align parameter to guint32 for
708         consistency with the other _size functions.
709         (mono_type_stack_size): Ditto.
710
711         * class.c object.c icall.c: Fix warnings caused by the above change.
712
713         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
714
715         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
716
717         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
718
719 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
720
721         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
722         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
723         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
724         threadpool.h, threads-types.h: mark more internal functions.
725
726 2006-10-11  Dick Porter  <dick@ximian.com>
727
728         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
729         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
730         reproduce the bug even before applying the fix.)
731
732 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
733
734         * reflection.c: allow retrieving attributes for arguments in generic
735         methods (bug #79241).
736
737 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
738
739         * debug-mono-symfile.c: properly check fopen () result (found by
740         coverity).
741
742 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
743
744         * reflection.c: make error message clearer and fixed two
745         issuelets found by Coverity.
746
747 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
748
749         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
750
751 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
752
753         * object-internals.h, gc-internal.h, profiler-private.h:
754         mark internal functions.
755
756 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
757
758         * reflection.c: put data in the text section.
759         * icall.c: recognize more types in type_from_typename ().
760         * process.c, marshal.c: added some GC FIXMEs.
761
762 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
763
764         * loader.c: check for NULL before initializing.
765
766 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
767
768         * gc.c (finalizer_thread): Use a non-alertable wait here.
769
770         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
771         until the correct solution is found.
772
773 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
774
775         * reflection.c (mono_module_get_object): Avoid an assert when operating on
776         modules with no metadata. Fixes #79596.
777
778         * image.c (load_metadata_ptrs): Put back the error message when
779         the #- heap is encountered since the support is not complete yet.
780
781 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
782
783         * gc.c: do not allow the user to SuppressFinalize () a
784         delegate because it would leak the trampoline if present.
785
786 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
787
788         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
789         PropertyPtr table.
790
791 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
792
793         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
794
795         * metadata.c (mono_metadata_get_param_attrs): Ditto.
796
797         * row-indexes.h: Add definitions for *Ptr tables.
798
799         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
800
801         * metadata.c (mono_metadata_translate_token_index): New helper function to
802         translate table indexes used in uncompressed metadata.
803         (mono_metadata_decode_table_row): Ditto.
804         (mono_metadata_decode_table_row_col): Ditto.
805
806         * metadata.c: Add table schema for *Ptr tables.
807
808         * class.c loader.c: Use the new helper function to access the affected metadata
809         tables.
810         
811         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
812         #38532.
813         
814 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
815
816         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
817         sequences which can be unbounded in size. Fixes #79583.
818
819 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
820
821         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
822         static initialization.
823
824         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
825
826         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
827
828         * domain.c (mono_domain_free): Free up type_init_exception_hash.
829
830         * object.c (mono_runtime_class_init): Implement correct semantics when a static
831         ctor fails, i.e. throw the same exception on subsequent accesses.
832         
833 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
834
835         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
836         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
837         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
838         Handle marshalling of interfaces and VARIANTs contained in structs.
839         
840         Code is contributed under MIT/X11 license.
841         
842 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
843
844         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
845         
846         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
847         mempool.
848
849 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
850
851         * console-io.c: ignore previous SIGINT handler.
852
853 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
854
855         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
856         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
857         #79460, #79461, #79485.
858
859         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
860
861         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
862         #79217.
863
864 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
865
866         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
867         could be generated from it.
868
869 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
870
871         * rand.c: fix read loop to correctly handle EINTR.
872
873 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
874
875         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
876         internal calls are defined to keep methods closer to the declaring
877         type and allow a significant reduction in runtime relocations and
878         memory usage.
879
880 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
881
882         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
883         exception message to have FileNotFoundException use the default
884         assembly load error message. Fixes bug #79426.
885         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
886
887 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
888
889         * threadpool.c: (start_thread_or_queue) use the root domain when
890         creating the thread instead of the async object one.
891
892 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
893
894         * class.c, object.c, class-internals.h, reflection.c:
895         for arrays, store element_size inside MonoClass (speedup
896         for array object creation).
897
898 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
899
900         * icall.c: fixed CodeBase to use the file name and not the module
901         name (bug #79365).
902
903 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
904
905         * mono-debug.c, mono-debug.h: export find_method as
906         mono_debug_find_method ().
907
908 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
909
910         * debug-helpers.c, class-internals.h: added a few functions useful
911         when debugging under gdb.
912
913 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
914
915         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
916         characters that need special handling.
917
918 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
919
920         * mono-config.c: make the os/cpu specification more flexible,
921         allowing lists and negation.
922
923 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
924
925         * marshal.c: COM Interop fixes. Handle case where method->klass.
926         is interface. Handle BSTR/MonoString when null. Use CDECL as 
927         calling convention on non-windows platforms. This is for
928         compatibility with XPCOM and MainWin COM.
929         
930         Code is contributed under MIT/X11 license.
931         
932
933 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
934
935         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
936         correctly. Fixes #79217.
937
938         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
939
940 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
941
942         * mono-config.c: allow both an os and cpu attribute for dllmap
943         and dllentry elemnets to enable a single config file to be used
944         for multiple architectures.
945
946 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
947
948         * loader.c: MonoLoaderError was cleared too soon on load failure.
949         Fixes bug #79424.
950
951 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
952
953         * icall.c: use the defining class vtable when accessing a
954         static field, not a pobblibly derived class.
955
956 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
957
958         * icall.c string-icalls.c: Remove references to unicode.h.
959
960         * unicode.h unicode.c Makefile.am: Remove these unused source files.
961
962         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
963
964         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
965         indicating the image where custom marshaller types should be looked up.
966         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
967         custom marshallers, instead of corlib. Fixes #79425.
968
969 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
970
971         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
972
973 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
974
975         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
976         Implement Environment.ProcessorCount.
977         
978         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
979         Implement Environment.ProcessorCount.
980         
981         * icall.c: 
982         Add Environment.ProcessorCount icall.
983         
984         Patch by Jason McFall.
985
986 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
987
988         * assembly.c: don't append .exe/.dll when the filename already contains
989         one of those extensions.
990
991 2006-09-12  Martin Baulig  <martin@ximian.com>
992
993         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
994         to array interfaces.
995
996 2006-09-11  Martin Baulig  <martin@ximian.com>
997
998         * reflection.c (mono_image_build_metadata): Create the
999         MethodImpl's after emitting all types and methods, so we don't
1000         need another fixup pass for them.
1001
1002 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1003
1004         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1005         change.
1006
1007 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1008
1009         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1010         unload.
1011
1012 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1013
1014         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1015         args is not set. Fixes #78926.
1016
1017 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1018
1019         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1020
1021         * image.c (load_class_names): Move this to class.c, and rename it to 
1022         'mono_image_init_name_cache'.
1023         (load_modules): Fix a warning.
1024
1025         * class.c icall.c image.c: Initialize image->name_cache lazily.
1026
1027         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1028         on its name using information in the AOT file.
1029
1030         * class.c (mono_class_from_name): Use the new hook function.
1031
1032 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1033
1034         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1035         correctly.
1036
1037         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1038         Fixes #79289.
1039         
1040 2006-09-06  Martin Baulig  <martin@ximian.com>
1041
1042         * icall.c (mono_lookup_internal_call): Small fix.
1043
1044 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1045
1046         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1047         double g_free.
1048
1049 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1050
1051         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1052         when --debug is specified.
1053
1054 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1055
1056         * class.c (setup_generic_array_ifaces): Fix a warning.
1057
1058 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1059
1060         * Temporarily remove the patch to assemly.c that checks the
1061         assembly versions as it breaks our gacutil.
1062
1063 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1064
1065         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1066
1067         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1068         a net 1.0 runtime.
1069
1070         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1071         created using the default ctor. Fixes #79152.
1072         (mono_string_builder_to_utf16): Ditto.
1073
1074 2006-09-01  Martin Baulig  <martin@ximian.com>
1075
1076         Fix handling of the generic array interfaces.
1077
1078         * class-internals.h
1079         (MonoDefaults): Removed `generic_array_class' and added
1080         `generic_ilist' class.
1081
1082         * class.c
1083         (mono_bounded_array_class_get): Add the new generic array interfaces.
1084         (setup_generic_array_ifaces): New static method; create vtable
1085         entries for each method in the generic array interfaces.
1086
1087         * metadata.c
1088         (select_container): Allow "parent-less" generic methods.
1089
1090         * marshal.c
1091         (mono_marshal_get_generic_array_helper): New public method.
1092
1093         * icall.c
1094         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1095         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1096         moved the interncall into System.Array.
1097
1098 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1099
1100         A few more cases of avoiding work on types with ->byref set.
1101         Has the real fix for #79238
1102         * icall.c (is_generic_parameter): New helper.
1103         (ves_icall_Type_GetGenericParameterPosition): Use it.
1104         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1105         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1106         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1107         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1108         reference types.
1109         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1110         reference types.
1111         (ves_icall_Type_get_IsGenericInstance): Likewise.
1112         (ves_icall_Type_get_IsGenericType): Likewise.
1113
1114 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1115
1116         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1117         class if possible.
1118
1119         * mempool.h (mono_mempool_get_allocated): New helper function.
1120
1121         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1122         change.
1123
1124         * mempool.c: Fix warnings and the calculation of stats.
1125
1126         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1127
1128         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1129
1130         * loader.c (mono_get_method_from_token): Update method_count stat.
1131
1132         * class-internals.h (MonoStats): Add some stats.
1133
1134 2006-08-31 Robert Jordan  <robertj@gmx.net>
1135
1136         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1137         with managed variants.
1138         All code is contributed under the MIT/X11 license.
1139         
1140 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1141
1142         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1143         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1144
1145         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1146
1147         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1148         with cycles in classes.
1149
1150         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1151
1152         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1153         missing a [MarshalAs] directive. Fixes #79203.
1154
1155         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1156         klass->marshal_info. Fixes #79217.
1157
1158 2006-08-30  Martin Baulig  <martin@ximian.com>
1159
1160         Committing a patch from Joachim Ante <joe@otee.dk>:
1161         Add support for binary data symbol stores.
1162
1163         * debug-mono-symfile.c
1164         (mono_debug_open_mono_symbol_file): Renamed into
1165         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1166         arguments.
1167
1168         * mono-debug.c
1169         (mono_debug_open_image): Added `raw_contents' and `size' args.
1170         (mono_debug_init_2_memory): New public function.
1171
1172 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1173
1174         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1175
1176 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1177
1178         * appdomain.c: implement support for ShadowCopyFiles.
1179
1180 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1181
1182         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1183         when value is NULL (and should remove CID #51).
1184
1185 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1186
1187         * image.c: moved 2 functions to ../utils.
1188
1189 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1190
1191         * gc.c: cope with the target object of a GC handle being NULL
1192         (bug #78877).
1193
1194 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1195
1196         * class.c: recursively check parent's explicit implementations
1197         of interface methods (fixes bug #79125).
1198
1199 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1200
1201         * filewatcher.c: Avoid warnings when building, do not redefine
1202         constants that are defined.
1203
1204         Remove warnings.
1205
1206 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1207
1208         * image.c: don't fail when the link points to an absolute path.
1209
1210 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1211
1212         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1213         Fix CID #3.
1214
1215 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1216
1217         * image.c (full_path): A new method used to obtain the actual path
1218         of an assembly even in the presence of symbolic links.  
1219
1220         This is necessary for the case where we are running a binary that
1221         has been GACed, but we are using the "published" path name
1222         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1223         file in the GAC.
1224
1225         This was the source of the failure for the `xsp' command with the
1226         recent AppDomain changes, as far as the runtime was concerned,
1227         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1228         $prefix/mono/gac/blah/version/blah.exe.
1229
1230         (do_mono_image_open): use full path
1231
1232 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1233
1234         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1235
1236 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1237
1238         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1239         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1240
1241 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1242
1243         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1244         small structures. Fixes #78990.
1245
1246 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1247
1248         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1249
1250         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1251
1252 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1253
1254         * appdomain.c:
1255         * marshal.c: don't load all the assemblies from a domain into newly
1256         created ones. The new domains might have different rules and load
1257         assemblies from different locations. Fixes bug #76757.
1258
1259         Patch by Lluis. Conflicts resolved by Brian Crowell.
1260
1261 2006-08-16  Alp Toker  <alp@atoker.com>
1262
1263         * socket-io.c: First half of the fix for #79084.
1264         Set sa_size to the length of the content, not that of the struct.
1265         Don't add NULL suffix to the content, this should be done in
1266         managed code if needed.
1267
1268 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1269
1270         Fix part of #79012
1271         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1272         mono_metadata_parse_type returns NULL.
1273
1274 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1275
1276         * normalization-tables.h : new file for string normalization data.
1277         * locales.c, locales.h, icall.c :
1278           added load_normalization_resource() for string normalization,
1279           and icall as well.
1280         * Makefile.am : added normalization-tables.h to the sources.
1281
1282 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1283
1284         * marshal.c: Add more helper functions to reduce code duplication and use them
1285         everywhere.
1286
1287 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1288
1289         * marshal.c: Fix non-x86 stdcall warnings.
1290         
1291         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1292         them everywhere.
1293
1294 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1295
1296         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1297         type check on multi-dimensional arrays. Fixes #79000.
1298
1299 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1300
1301         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1302         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1303         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1304         * class-internals.h: add is_com_object to class structure.
1305         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1306         null checks to COM object marshalling. Fix .ctor call on RCW.
1307         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1308         
1309         All code is contributed under the MIT/X11 license.
1310
1311 2006-08-09  Dick Porter  <dick@ximian.com>
1312
1313         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1314         racing mono_monitor_allocator_lock() somewhere, so don't delete
1315         the critical section for now.  Found by running and exiting
1316         monodevelop.
1317
1318 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1319
1320         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1321         (ves_icall_System_ComObject_FindInterface): Ditto.
1322         (ves_icall_System_ComObject_CacheInterface): Ditto.
1323
1324         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1325         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1326
1327 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1328
1329         * threadpool.c: treat pipes from process asynchronous reads as sockets
1330         when reading from them, so we get select/poll or epoll to wait for
1331         data.
1332
1333 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1334
1335         * loader.c: Fix a typo (CID #233) in the null check.
1336
1337 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1338
1339         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1340         Hopefully fixes #78949.
1341         
1342         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1343         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1344         bytes. Fixes #78972.
1345
1346 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1347
1348         * filewatcher.c: we need to set errno here.
1349
1350 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1351
1352         * filewatcher.c: let Win32Exception get the error value.
1353
1354 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1355
1356         * filewatcher.c: translate errno into win32 errors for Win32Exception
1357         to know what happened.
1358
1359 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1360
1361         * threadpool.c: Fix more warnings.
1362
1363         * assembly.c (search_loaded): Fix warnings.
1364
1365         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1366         (mono_async_invoke): Ditto.
1367
1368 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1369
1370         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1371         entries for __ComObject type in addition to ComImport types.
1372         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1373         about hash table.
1374         
1375         All code is contributed under the MIT/X11 license.
1376
1377 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1378
1379         * image.c: avoid tentative loading of modulerefs that contain
1380         no metadata (P/Invoke library names).
1381
1382 2006-07-28  Dick Porter  <dick@ximian.com>
1383
1384         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1385         mono_loader_lock() somewhere, so don't delete the critical section
1386         for now.  Found by running and exiting monodevelop.
1387
1388 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1389
1390         * filewatcher.c: define the inotify syscalls when we're building on
1391         linux and have sys/syscall.h. The build system might not have support
1392         for inotify but the target system might have it.
1393
1394 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1395
1396         * domain.c: Documentation updates.
1397
1398         * loader.c (mono_free_method): Do not release the method
1399         information if we are being profiled, as profilers will use this
1400         information at shut down to present some data to the user.
1401
1402         This is needed so that the profiler does not crash, as the
1403         profiler tends to keep MonoMethods around, and they might become
1404         invalid if we free these.
1405
1406         (mono_get_method_constrained): Return the original CIL stream
1407         method as well, so verification can be performed against it.
1408
1409 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1410
1411         * filewatcher.[ch]: support for inotify file system watcher.
1412         * icall.c: add new internal calls for the inotify file system watcher.
1413
1414 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1415
1416         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1417         #78888.
1418
1419 2006-07-20  Dick Porter  <dick@ximian.com>
1420
1421         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1422         warning.
1423
1424 2006-07-20  Dick Porter  <dick@ximian.com>
1425
1426         * threads.c (start_wrapper): Do the thread cleanup while we still
1427         hold a reference to its object.  Fixes bug 78123.
1428
1429 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1430
1431         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1432         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1433           "managed-to-managed".
1434         * icall.c: Redirect string constructors that take sbyte* to
1435           ves_icall_System_String_ctor_RedirectToCreateString.
1436         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1437           to CreateString () methods with matching signature.
1438         * reflection.c: Use original security informations for
1439           MONO_WRAPPER_MANAGED_TO_MANAGED.
1440         * security-manager.c: Use original security informations for
1441           MONO_WRAPPER_MANAGED_TO_MANAGED.
1442         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1443           that is a placeholder and only its address should be used.
1444         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1445           that is a placeholder and only its address should be used.
1446
1447 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1448
1449         Begin implementing COM Interop.
1450         * appdomain.c: Increment corlib version.
1451         * class.c: Set ComImport classes' parent to __ComObject.
1452         * loader.c: Mark cominterop methods as such.
1453         * domain.c: Add __ComObject class to MonoDefaults structure.
1454         * image.c: Add 2 hashtables to the image for COM Interop related methods
1455         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1456         using the mempool allocator
1457         
1458         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1459         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1460         declaration for mono_metadata_type_dup_mp.
1461         
1462         * debug-helpers.c: Added strings for two additional wrapper types
1463         * object.c: Create proxy objects for ComImport classes
1464         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1465         and added __ComObject class to MonoDefaults structure.
1466         
1467         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1468         MonoComInteropProxy and MonoComObject.
1469         
1470         * marshal.c: Added support for COM Interop
1471         (signature_cominterop): Converts managed signature to corresponding
1472         unmanaged COM signature.
1473         (cominterop_get_function_pointer): gets unmanaged function pointer via
1474         COM object vtable
1475         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1476         (cominterop_get_method_interface): returns interface type that method is defined on
1477         (mono_mb_emit_cominterop_call): emits native call to function pointer
1478         gotten from vtable
1479         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1480         that matches signature of unmanaged function.
1481         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1482         (cominterop_get_invoke): forwards call from proxy to __ComObject
1483         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1484         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1485         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1486         
1487         * marshal.h: Added Marshal icall declarations.
1488         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1489         so we can access them in finalizer
1490         
1491 2006-07-14  Dick Porter  <dick@ximian.com>
1492
1493         * object.c (mono_type_initialization_cleanup): Fix a race
1494         condition by temporarily commenting out the critical section
1495         deletion.
1496
1497 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1498
1499         * reflection.c (create_custom_attr): Fix some warnings.
1500         (create_custom_attr_data): Ditto.
1501         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1502         types. Fixes #78855.
1503
1504 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1505
1506         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1507
1508         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1509
1510 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1511
1512         * reflection.c (resolve_object): Add support for DynamicMethod.
1513
1514         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1515         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1516
1517 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1518
1519         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1520         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1521
1522 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1523
1524         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1525         Fixes #77888.
1526
1527 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1528
1529         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1530         slightly: remove a shadow local variable.
1531
1532 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1533
1534         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1535         definition that introduces the virtual function slot.
1536         Also fix Coverity #105.
1537
1538 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1539
1540         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1541         for dynamic assemblies. Fixes #78724.
1542
1543 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1544
1545         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1546         Fixes #78722.
1547
1548 2006-06-21  Martin Baulig  <martin@ximian.com>
1549
1550         * reflection.c
1551         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1552         fixes #76484.
1553
1554 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1555
1556         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1557
1558 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1559
1560         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1561         nor TYPEREFs.
1562         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1563         Inflate result if necessary.
1564         (mono_class_get_full): Remove old version.  Rename from
1565         'mono_class_get' and add 'context' argument.  Pass it to
1566         ..._create_from_typespec.
1567         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1568         (mono_ldtoken): Revert change below.
1569
1570 2006-06-20  Martin Baulig  <martin@ximian.com>
1571
1572         * class.c (mono_ldtoken): Don't pass the generic context to
1573         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1574
1575 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1576
1577         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1578         and later freeing it. Fixes #78638.
1579
1580 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1581
1582         * icall.c (mono_class_get_throw): Revert over-zealous error
1583         throwing, the caller for mono_class_get_throw will cope with
1584         errors when classes are not properly initialized already.
1585
1586         The code still copes with loader exceptions though.
1587
1588         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1589         
1590 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1591
1592         Fixes the `make run1' version of RuntimeAbort (to be commited,
1593         source is in Bugzilla).
1594         
1595         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1596         FALSE on class loading failure instead of returning true.
1597
1598         * class.c (mono_class_create_from_typedef): It is possible for
1599         mono_metadata_interfaces_from_typedef_full to fail if a class is
1600         not found, cope with this.
1601         
1602
1603 2006-06-14  Dick Porter  <dick@ximian.com>
1604
1605         * socket-io.c: 
1606         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1607         4.1.1
1608
1609 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1610
1611         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1612
1613 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1614
1615         * icall.c: Another fix for building mono in Visual Studio.
1616
1617 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1618
1619         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1620         
1621 2006-06-09  Martin Baulig  <martin@ximian.com>
1622
1623         * debug-mono-symfile.c: Put this back and really fix it this
1624         time. Sorry for all the trouble.
1625
1626 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1627
1628         * icall.c (mono_class_get_throw): Fix a warning.
1629         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1630         ReflectionTypeLoadException if needed. Fixes #78606.
1631
1632         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1633         (mono_class_init): Ditto.
1634
1635         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1636         ref_only exceptions.
1637         (mono_loader_clear_error): Make this work even if there is no error.
1638
1639 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1640
1641         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1642         Marshal.GetComSlotForMethodInfo using internal call.
1643
1644 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1645
1646         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1647         a function for signalling it.
1648
1649         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1650         a referenced assembly is not found.
1651
1652         * loader.c (mono_loader_error_prepare_exception): Add support for 
1653         LOADER_ERROR_ASSEMBLY. Fix formatting.
1654
1655 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1656
1657         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1658         for VARIANT marshalling on windows and increment corlib version
1659         since Variant struct was added.
1660
1661 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1662
1663         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1664         stack trace line information:
1665
1666         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1667         (Martin) when looking up B which is between A and C, return A not C.
1668
1669         Bug is #78573.
1670
1671         Thanks to Alexander Olk for tracking this down.
1672
1673 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1674
1675         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1676         
1677         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1678         avoid clobbering its value.
1679         (mono_string_to_lpstr): Fix a warning on windows.
1680
1681 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1682
1683         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1684
1685         * reflection.c loader.c: Removed references to 'dummy' flag.
1686
1687         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1688
1689         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1690         it gets GC tracking.
1691
1692         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1693         GC tracking.
1694         
1695         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1696
1697         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1698
1699         * appdomain.c: Bump corlib version.
1700
1701 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1702
1703         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1704         CEE_STIND_REF when working with object references.
1705
1706 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1707
1708         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1709         Fixes #78539.
1710
1711 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1712
1713         * loader.c (method_from_memberref): Fix argument value for
1714         mono_loader_set_error_method_load (I was passing the MonoClass
1715         instead of the class name char *).
1716
1717 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1718
1719         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1720         CEE_STIND_REF when working with object references.
1721
1722 2006-05-30  Martin Baulig  <martin@ximian.com>
1723
1724         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1725         mono_method_full_name() change and replace the ':' with a '.'
1726         here.
1727
1728 2006-05-30  Martin Baulig  <martin@ximian.com>
1729
1730         * debug-mono-symfile.c
1731         (mono_debug_symfile_lookup_location): Fix the algorithm:
1732         when looking up B which is between A and C, return A not C.
1733
1734 2006-05-29  Martin Baulig  <martin@ximian.com>
1735
1736         * mono-debug.h
1737         (MonoDebugMethodInfo): Make the typedef public.
1738         (MonoDebugSourceLocation): New public struct.
1739
1740         * mono-debug.c
1741         (mono_debug_source_location_from_address): Removed.
1742         (mono_debug_source_location_from_il_offset): Removed.
1743         (mono_debug_il_offset_from_address): Removed.
1744         (mono_debug_address_from_il_offset): Removed.
1745         (mono_debug_lookup_method): New public function.
1746         (mono_debug_lookup_source_location): New public function; replaces
1747         the old mono_debug_source_location_from_*() functions; see the
1748         inline documentation.
1749         (mono_debug_free_source_location): New public function.
1750         (mono_debug_print_stack_frame): New public function; see the
1751         inline documentation.
1752
1753         * debug-mono-symfile.c
1754         (mono_debug_find_source_location): Renamed into
1755         mono_debug_symfile_lookup_location(); only take a
1756         `MonoDebugMethodInfo *' and an `offset' argument; added inline
1757         documentation.
1758         (mono_debug_find_method): Renamed into
1759         mono_debug_symfile_lookup_method().
1760
1761 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
1762
1763         * assembly.c (mono_assembly_open_full): Dont overwrite the status
1764         returned by mono_image_open_full ().
1765
1766         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
1767         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
1768         #78517.
1769
1770         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
1771         #78518.
1772
1773 2006-05-27  Miguel de Icaza  <miguel@novell.com>
1774
1775         * class.c (mono_class_from_typeref): handle missing images
1776         earlier, deals with bug #78418.   Refactor code; 
1777
1778         Fix a warning introduced in my previous commit (some stale code
1779         from before I revisited my patch).
1780
1781         * class.c (mono_class_create_from_typedef): On failure, remove the
1782         class from the MonoImage->class_cache as the class is not
1783         initialized;   Fixes the leak pointed out by Paolo.
1784
1785 2006-05-25  Dick Porter  <dick@ximian.com>
1786
1787         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
1788         DeleteCriticalSections until I figure out which one may still be
1789         sometimes locked when mono_thread_cleanup is called.
1790
1791 2006-05-24  Dick Porter  <dick@ximian.com>
1792
1793         * threads.c (mono_thread_cleanup): Move the threading cleanup out
1794         of mono_thread_manage and back into its own function, so it can be
1795         called after the finalizer thread has finished.
1796
1797         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
1798
1799 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
1800
1801         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
1802         Fixes #78495.
1803
1804         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
1805         with non-blittable elements.
1806         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
1807
1808 2006-05-24  Martin Baulig  <martin@ximian.com>
1809
1810         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1811         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
1812
1813         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
1814         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
1815         `mono_debugger_event_handler' to NULL.
1816
1817 2006-05-24  Martin Baulig  <martin@ximian.com>
1818
1819         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
1820
1821 2006-05-24  Martin Baulig  <martin@ximian.com>
1822
1823         * mono-debug-debugger.h
1824         (mono_debugger_create_notification_function): Added
1825         `MonoCodeManager *' argument.
1826
1827 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
1828
1829         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
1830
1831 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
1832
1833         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
1834         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
1835         implementation.
1836
1837 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
1838
1839         * icall.c: precise GC support: objects can't be stored in unmanaged
1840         memory anymore, even if they are kept alive by other references: since
1841         they can move the GC needs to be able to always find them.
1842
1843 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1844
1845         * object.c: precise GC support for static fields. Support
1846         for moving GCs: write barriers and pinned allocation for interned
1847         strings.
1848
1849 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1850
1851         * domain.c, domain-internals.h: precise GC support for the MonoDomain
1852         structure.
1853
1854 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1855
1856         * class.c, gc.c: sgen and precise GC updates.
1857
1858 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
1859
1860         * marshal.h, marshal.c: added write barrier wrapper and precise type
1861         fixes.
1862
1863 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
1864
1865         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
1866         support.
1867
1868 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
1869
1870         * reflection.c: precise and sgen GC updates.
1871
1872 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
1873
1874         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
1875
1876 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
1877
1878         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
1879
1880 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
1881
1882         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
1883         MONO_TYPE_OBJECT. Fixes #78462.
1884
1885 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
1886
1887         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
1888         and blittable types.
1889
1890 2006-05-17  Miguel de Icaza  <miguel@novell.com>
1891
1892         * class.c (mono_class_get_exception_for_failure): Implement parts
1893         of a TODO: if the loader error is set (instead of the class
1894         error), we return a Loader exception that can be properly thrown
1895         elsewhere.
1896
1897         This was exposed by some Winforms 2.0 code that I tried to run
1898         (Atsushi pointed me to it).
1899
1900 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
1901
1902         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
1903         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
1904         
1905         * marshal.c (emit_marshal_vtype): Add limited support for 
1906         UnmanagedType.LPStruct. Fixes #78427.
1907
1908         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
1909         Applied a patch from kangaroo to fix #77523.
1910
1911 2006-05-17  Martin Baulig  <martin@ximian.com>
1912
1913         * threads.c
1914         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
1915         (debugger_thread_created): Removed.
1916         (debugger_thread_exited): Removed.
1917
1918 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
1919
1920         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1921
1922         * object-internals.h (MonoReflectionResource): Sync with managed version.
1923
1924 2006-05-12  Wade Berrier <wberrier@novell.com>
1925
1926         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
1927
1928 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
1929
1930         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
1931         functions try to allocate from the image mempool.
1932
1933 2006-05-12  Dick Porter  <dick@ximian.com>
1934
1935         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
1936
1937 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
1938
1939         * object.c: The FieldGetter and FieldSetter methods require the full
1940         name of the class, not only the name. Fixes bug #78277.
1941
1942 2006-05-11  Miguel de Icaza  <miguel@novell.com>
1943
1944         * loader.c (method_from_memberref): Do not pass the NULL klass to
1945         mono_loader_set_error_() methods.  Pass the non-NULL value
1946         (class). 
1947
1948 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
1949
1950         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
1951         (mono_assembly_close): Null out assembly->image->references after freeing it.
1952
1953         * image.c (mono_image_close): Free image->references.
1954         
1955         * reflection.c (mono_image_basic_init): Fix a small memory leak.
1956
1957 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1958
1959         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
1960         before checking if it's NULL (g_assert).
1961
1962 2006-05-10  Martin Baulig  <martin@ximian.com>
1963
1964         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
1965         I thought I already killed that two months ago, but now it somehow reappeared.
1966
1967 2006-05-10  Martin Baulig  <martin@ximian.com>
1968
1969         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
1970
1971 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
1972
1973         * reflection.c: Allocate memory for dynamically created methods in the image
1974         mempools.
1975
1976 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1977
1978         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
1979         don't use the ad pointer before checking if it's NULL (g_assert).
1980
1981 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
1982
1983         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
1984         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
1985
1986         * marshal.c: Allocate all signatures from mempools.
1987
1988         * marshal.c: Allocate some more signatures from mempools.
1989
1990 2006-05-09  Miguel de Icaza  <miguel@novell.com>
1991
1992         * object.c (mono_load_remote_field): The code used to provide a
1993         temporary variable for returning results if the user did not
1994         provide a result pointer.  But our temporary variable was allocted
1995         on the satck.
1996
1997         Fix calling code to always pass a result area.   Coverity ID 103.
1998
1999 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2000
2001         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2002         value, not the old. Fixes #78312.
2003         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2004
2005         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2006         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2007         per-image cache.
2008
2009         * assembly.c (mono_assembly_close): Free image->references.
2010
2011         * assembly.c (mono_assembly_names_equal): Fix a warning.
2012         (mono_assemblies_cleanup): Cleanup more global data.
2013
2014         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2015
2016         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2017         ptr_cache and image->modules.
2018
2019         * image.c (mono_image_init): Allocate array_cache lazily.
2020         
2021 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2022
2023         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2024         behavior was changed recently and has bad side effects.
2025
2026 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2027
2028         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2029         
2030         * assembly.c (mono_assembly_close): Remove a debug printf.
2031
2032         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2033
2034         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2035         to also allow for temporary references between mono_image_open ()/close ().
2036
2037         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2038
2039 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2040
2041         * marshal.c: Fix support for dynamic methods.
2042
2043         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2044
2045         * marshal.c (mono_marshal_cleanup): New cleanup function.
2046
2047         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2048         image mempools.
2049
2050         * class.c (mono_class_init): Fix leaking class->nested_classes.
2051
2052         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2053
2054         * image.c (mono_image_init): Initialize the new cashes.
2055
2056         * image.c (mono_image_close): Destroy the new cashes.
2057
2058         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2059
2060         * mempool.c (mono_mempool_strdup): New helper function.
2061
2062         * class-internals.h: Add prototype for mono_loader_unlock ().
2063
2064         * domain.c (mono_jit_info_table_find): Fix a warning.
2065         (mono_debugger_check_runtime_version): Ditto.
2066
2067         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2068         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2069         functions to these modules.
2070
2071         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2072         metadata modules.
2073         
2074         * marshal.c (mono_free_bstr): Fix a warning.
2075
2076         * assembly.c (mono_assembly_open_full): Fix another small leak.
2077
2078         * object.c: Fix some unload leaks in the remoting code.
2079
2080         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2081         function.
2082
2083         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2084
2085         * reflection.c: Fix some unload leaks in dynamic assemblies.
2086
2087 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2088
2089         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2090         * marshal.h: Add BSTR support on Win32
2091         * icall.c: Add BSTR icalls
2092         * metadata.h: Add BSTR enums
2093
2094 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2095
2096         Work to catch the crash from #76795 and turn it into an
2097         exception.   As I stubbed out pieces of the VisualBasic support,
2098         I found a number of places where the code was failing and I added
2099         checks to those places. 
2100         
2101         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2102         function return a status code.  If we fail to parse the signature
2103         from mono_metadata_parse_generic_inst, return FALSE.
2104
2105         * loader.c (mono_get_method_from_token): If we fail to load the
2106         method (mono_class_get) return NULL.   
2107
2108         * (method_from_memberref): Return NULL if we are unable to parse
2109         the method signature
2110
2111         (mono_loader_error_prepare_exception): Since we now use the
2112         loader_error flag internally to stop processing, and obtaining
2113         exceptions that might be thrown will walk this code path the
2114         proper way of going from a MonoLoaderError into a
2115         MonoException was convoluted.   This new routine encapsulates the
2116         process of turning the error into an exception and *clearing* the
2117         error afterwards.
2118         
2119 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2120
2121         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2122         with missing assemblies), and to cope with:
2123
2124                 * Missing fieldref from a non-existing assembly.
2125                 * Missing methodref from a non-existing assembly.
2126
2127         The first batch of work to address *some* of the issues from 76661.
2128         
2129         * object.c (mono_class_create_runtime_vtable): If we fail to
2130         initialize the class raise the exception here. 
2131
2132         * metadata.c (mono_class_get_overrides_full): If any methods fail
2133         to load return the failure to the caller.
2134
2135         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2136         flagging assemblies that failed to load.   
2137
2138         Do not crash if we are unable to load the assembly.
2139
2140         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2141         assemblies. 
2142
2143         * loader.c (mono_loader_set_error_type_load): Change the
2144         convention to always pass unallocated strings, so we make our own
2145         copies (I know our own code had duplicated strings before, but
2146         this keeps the normal conventions).
2147         (method_from_memberref): Call mono_loader_set_error_method_load
2148         for all possible failures of loading the class. 
2149         Remove assert, turn into a loader error.
2150
2151         (mono_loader_error_to_exception): Move this routine from mini
2152         (mini_loader_error_to_exception) there was no need to have that in
2153         mini. 
2154
2155         * class.c (mono_class_from_typeref): If we were not able to load
2156         the assembly with mono_assembly_load_reference, call the
2157         mono_loader_set_error_type_load to register the problem.
2158
2159         (mono_class_setup_fields): If we fail to load the type from
2160         mono_metadata_parse_type_full, call mono_class_set_failure and
2161         break from the loop.
2162
2163         If class->exception_type is set, we do not layout the fields as
2164         that might crash the runtime, and instead return (from breaking
2165         from the previous loop).
2166
2167         (mono_class_setup_vtable): This now returns a boolean indicating
2168         whether the table was properly setup.   The decision is driven by
2169         mono_class_get_overrides_full which might run into non-existing
2170         methods. 
2171         
2172         (mono_class_init): Returns TRUE on success or FALSE if there was a
2173         problem in loading the type (incorrect assemblies, missing
2174         assemblies, methods, etc).
2175
2176         When we call mono_class_setup_fields we also check for a potential
2177         error inside this call (either a class exception or a general
2178         loader exception).
2179
2180         (mono_class_create_from_typedef): If the parent fails to load
2181         (calling mono_class_get_full) return NULL.
2182         
2183         ** Important **
2184
2185         calls to mono_metadata_parse_type_full should be checked
2186         everywhere and set the mono_class_set_failure
2187         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2188
2189         The current patch checks the places where my manually constructed
2190         tests show the errors are showing up, but we should do it
2191         everywhere. 
2192
2193         ** Important2 **
2194
2195         mono_class_init return values should be tested everywhere, like
2196         the previous case this is something that we should audit
2197         everywhere and not only on the cases exposed by the tests I
2198         created. 
2199
2200 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2201
2202         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2203         boolean parameter and instead pass the information on `options'
2204         parameter (FileOptions).
2205
2206         * icall.c: Register the new signature for MonoIO.Open.
2207
2208         * debug-helpers.c (dis_one): Trying to understand how coverity
2209         works.  Fix Run 5, item 78.
2210
2211 2006-04-26  Dick Porter  <dick@ximian.com>
2212
2213         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2214         dereference.
2215
2216 2006-04-25  Martin Baulig  <martin@ximian.com>
2217
2218         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2219
2220         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2221         debugger_thread_created().
2222         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2223         special way.
2224         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2225         (mono_debugger_finalize_threads): New function; undo the effects
2226         of mono_debugger_init_threads().
2227         (mono_debugger_create_all_threads): Removed.
2228
2229 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2230
2231         * image.c (mono_image_close): Tidy up trace messages.
2232
2233         * assembly.c (mono_assembly_close): Ditto.
2234
2235         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2236         no longer references an already freed assembly. Fixes #78168.
2237
2238 2006-04-21  Dick Porter  <dick@ximian.com>
2239
2240         * threads.c (mono_thread_detach): Fix reference counting when
2241         detaching threads.
2242
2243 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2244
2245         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2246         #78155.
2247
2248 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2249
2250         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2251         (mono_type_to_stind): Ditto.
2252
2253         * marshal.c: Use the new helper functions to simplify code.
2254
2255         * image.c (mono_image_close): Add some code for help debug assembly unloading
2256         problems.
2257
2258         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2259         image mempool.
2260
2261         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2262         assembly was already loaded in another appdomain. Fixes #78083.
2263
2264 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2265
2266         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2267         referenced assemblies.
2268         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2269
2270         * domain.c (mono_domain_free): Add a trace message.
2271
2272         * appdomain.c (add_assemblies_to_domain): Ditto.        
2273
2274         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2275         field.  
2276
2277 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2278
2279         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2280
2281 2006-04-12  Martin Baulig  <martin@ximian.com>
2282
2283         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2284         `USE_INCLUDED_LIBGC'.   
2285
2286 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2287
2288         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2289         the patch contains ../ and a small directory name later. Hopefully fixes
2290         #78035.
2291
2292 2006-04-10  Martin Baulig  <martin@ximian.com>
2293
2294         Clean up the debugger's thread-handling code.
2295
2296         The debugger's thread-handling code has been moved from
2297         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2298         over the `threads' hash, keep track of exiting threads and also
2299         use proper locking.
2300
2301         We can now debug XSP and XSP based applications with the debugger.
2302
2303         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2304
2305         * threads.h
2306         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2307         (mono_install_thread_callbacks): Likewise.      
2308
2309         * threads.c (mono_thread_callbacks): Removed.
2310         (debugger_thread_created, debugger_thread_exited): New static functions.
2311         (start_wrapper): Call debugger_thread_created().
2312         (thread_cleanup): Call debugger_thread_exited().
2313         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2314         (mono_debugger_init_threads): New public function.
2315         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2316         iterate directly over the `threads' hash and also use proper locking.
2317
2318         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2319
2320         * mono-debug-debugger.h
2321         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2322
2323 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2324
2325         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2326         argument type=array. Fixes #78057.
2327
2328 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2329
2330         * culture-info-table.h : regenerated. Fixed bug #69652.
2331
2332 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2333
2334         * loader.c metadata.c: Reapply a variant r59116.
2335         
2336         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2337
2338         * class.c (mono_class_setup_interface_offsets): New internal function.
2339
2340         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2341         interfaces too. Fixes #77398.
2342
2343         * reflection.c (encode_cattr_value): Add support for 
2344         parameter type=object, argument type=array.
2345         (load_cattr_value): Ditto. Fixes #77916.
2346
2347         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2348         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2349
2350         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2351         a byval char array and CharSet is Ansi.
2352
2353         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2354
2355 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2356
2357         * metadata.c: Add some locking comments.
2358         
2359         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2360         mempool.
2361         (mono_metadata_free_method_signature): Don't free the signature itself.
2362
2363         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2364
2365         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2366         reference the same MonoImage.
2367         (mono_assembly_load_from_full): Add an assert.
2368
2369 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2370
2371         * image.c (mono_image_close): Don't put the image we are about to free into the
2372         loaded_images_guid_hash.
2373
2374         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2375         to reduce code duplication.
2376
2377         * marshal.c: Register the native functions called by this module as icalls, to
2378         somewhat centralize the creation of MonoMethodSignature's.
2379
2380         * loader.c (mono_method_signature): Add a cache for method signatures.
2381
2382         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2383         the parameter attributes of a method.
2384         (mono_metadata_parse_method_signature_full): Refactored the computation of
2385         parameter attributes into a separate function. Also avoid one allocation in
2386         most cases.
2387
2388         * assembly.c (mono_assembly_close): Ditto.
2389
2390         * image.c (mono_image_close): Log trace messages with INFO level.
2391
2392         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2393
2394         * image.c reflection.c: Correct reference counting of image modules.
2395         
2396         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2397         of this function from the image mempool.
2398         
2399         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2400         to allow more cached types to be used.
2401
2402         * mono-debug.c (mono_debug_add_method): Appled patch from
2403         David S. Miller  <davem@sunset.davemloft.net>: Access 
2404         minfo->lexical_blocks[] entry elements using read32().
2405
2406 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2407
2408         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2409         methods as it is allocated from the mempool.
2410
2411         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2412         image mempool.
2413
2414         * metadata-internals.h: Add comments describing the reference counting scheme
2415         used for MonoImage and MonoAssembly.
2416
2417         * image.c assembly.c reflection.c: Rework reference counting of images and 
2418         assemblies so they are freed when the runtime is shut down. Free some 
2419         additional memory structures when an image is unloaded.
2420         
2421 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2422
2423         * class.c loader.c reflection.c: Allocate more data structures in
2424         the image mempool.
2425
2426 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2427
2428         * icall.c
2429         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2430         build on pre glib 2.4 systems.
2431
2432 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2433
2434         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2435
2436         * icall.c: Fix some warnings.
2437
2438 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2439
2440         * culture-info-table.h : regenerated.
2441
2442 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2443
2444         * threads.c, object-internals.h, verify.c: changed the culture caching
2445         code to use a normal MonoArray for storage so the GC can keep track of
2446         them easily. Fixed bits of the cache logic, too and simplified the
2447         code.
2448
2449 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2450
2451         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2452         thread for non-Boehm GCs.
2453
2454 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2455
2456         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2457         needed to keep track of the data for static fields.
2458
2459 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2460
2461         Fix #75172
2462         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2463         for interface classes.  Use 'num_methods' instead.
2464         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2465         before using '->vtable_size' field.
2466
2467 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2468
2469         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2470         doesn't contain managed pointers, so use a normal hashtable.
2471
2472 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2473
2474         * reflection.c, class-internals.h, domain.c: fixed handling of types
2475         used as values for objects in custom attributes (bug #77915):
2476
2477 2006-03-24  Martin Baulig  <martin@ximian.com>
2478
2479         * class.c (mono_class_setup_fields): Added support for generic
2480         instances; fixes #77580.
2481
2482 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2483
2484         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2485
2486 2006-03-24  Dick Porter  <dick@ximian.com>
2487
2488         * file-io.c (get_file_attributes): More stat macro breakage.
2489         Fixes bug 77759.
2490
2491 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2492
2493         * profiler.c: added the file=filename option in the default profiler
2494         to output the profile data to filename.
2495
2496 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2497
2498         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2499         bug #77877.
2500
2501 2006-03-22  Martin Baulig  <martin@ximian.com>
2502
2503         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2504         allocated `MonoClassField *' in `fb->handle'.
2505
2506 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2507
2508         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2509         allocate interface ID to save memory and allow better ID reuse on
2510         appdomain unload. setup_generic_vtable () removal from Martin.
2511
2512 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2513
2514         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2515         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2516         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2517         write barriers for reference stores with managed objects accessed with
2518         C structures in the runtime and in embedding programs.
2519
2520 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2521
2522         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2523         'interface_id' and 'max_interface_id' fields of MonoClasses
2524         representing open generic types.
2525
2526 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2527
2528         * object.h, object.c, icall.c: added functions to deal with
2529         storing valuetypes that contain references in managed objects.
2530         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2531         fixes and comments around uses of mono_array_addr ().
2532
2533 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2534
2535         * object.h, icall.c, monitor.c: object.GetHashCode ()
2536         implementation that supports the moving garbage collector.
2537
2538 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2539
2540         * icall.c, threads-types.h, threads.c: implemented finalizer for
2541         LocalDataStoreSlot.
2542
2543 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2544
2545         * metadata.c (mono_type_size): Add a fixme.
2546         (mono_type_stack_size): Ditto.
2547
2548         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2549         'type_forwarders' field.
2550
2551         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2552         attribute from net 2.0.
2553
2554         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2555         from class.c.
2556
2557         * class.c (mono_class_setup_fields): Fix a warning.
2558         
2559         * class.c (mono_class_from_name): Add support for assemblyref entries
2560         in the EXPORTEDTYPE table.
2561
2562         * reflection.c: Add support for handling type forwarders under net 2.0.
2563
2564         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2565         
2566 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2567
2568         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2569         overwriting entries in ModuleBuild->types, also clean up the code
2570         a little. Fixes #77774.
2571
2572 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2573
2574         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2575         load friend assembly info when present.
2576
2577 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2578
2579         Fix crasher on gtest-158.cs.
2580         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2581         the return value if the MonoClass we want is yet in an
2582         inconsistent state.
2583         * class.c (mono_class_create_from_typedef): Add an comment
2584         explaining an order dependency between mono_class_setup_parent and
2585         mono_class_setup_mono_type.
2586
2587 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2588
2589         * class.c: documentation updates and events bug fix.
2590
2591 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2592
2593         * class.c: some cleanup, locking fixes.
2594
2595 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2596
2597         * class.c: fix the generics code to setup nested
2598         type info to the instantiated type (bug #77770).
2599
2600 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2601
2602         * marshal.c: fixed a few type correctness issues.
2603
2604 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2605
2606         * loader.c: the Set/Get/Addrtess array methods should be public.
2607
2608 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2609
2610         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2611         
2612         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2613         info->wrapper.
2614
2615 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2616
2617         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2618
2619         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2620
2621         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2622         (mono_mempool_alloc0): Ditto.
2623
2624 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2625
2626         * socket-io.c:
2627         (create_object_from_sockaddr): it was allocating 4 extra bytes
2628         for the AF_UNIX data. Fixes bug #77747.
2629
2630 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2631
2632         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2633
2634 2006-03-09  Dick Porter  <dick@ximian.com>
2635
2636         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2637         Fixes bug 76966 again.
2638
2639 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2640
2641         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2642         names from r57532
2643         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2644
2645 2006-03-07  Martin Baulig  <martin@ximian.com>
2646
2647         * object.c
2648         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2649
2650 2006-03-07  Martin Baulig  <martin@ximian.com>
2651
2652         * class.c
2653         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2654         regression introduced in r56970; see gtest-252.cs.
2655
2656         * loader.c (mono_get_method_constrained): Correctly handle generic
2657         methods; see gtest-253.cs.
2658
2659 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2660
2661         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2662
2663 2006-03-04  Martin Baulig  <martin@ximian.com>
2664
2665         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2666         compute the parent type at runtime, just like we're already doing
2667         it for interfaces.
2668
2669         * reflection.c
2670         (mono_reflection_bind_generic_parameters): Don't compute the
2671         parent type anymore.
2672
2673         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2674
2675 2006-03-04  Martin Baulig  <martin@ximian.com>
2676
2677         * mono-debug-debugger.h
2678         (mono_debugger_create_notification_function): Allocate memory at
2679         runtime and return a pointer to it.
2680
2681 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2682
2683         * assembly.c: Fix windows build.
2684         
2685         * assembly.c: Fix build.
2686
2687         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2688
2689         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2690         
2691 2006-03-03  Dick Porter  <dick@ximian.com>
2692
2693         * process.c
2694         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2695         Check parameters before dereferencing them.  Fixes Aaron's part of
2696         bug 77393.
2697
2698 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2699
2700         Fix performance regression.
2701         * loader.c (find_method_in_class): Add 'from_class' argument.
2702         Rename 'klass' argument to 'in_class'.  The signature is compared
2703         against the method in 'in_class', and the corresponding method is
2704         returned from 'from_class'.
2705         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2706         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2707         type definition and generic instantiation in parallel.
2708         (mono_get_method_constrained): Update to changes.
2709
2710 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2711
2712         * threads.c: make sure the domain is correct, too when doing
2713         mono_thread_attach ().
2714
2715 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2716
2717         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2718         windows. Fixes #77683.
2719
2720 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2721
2722         * object.h, *: introduced specific way to set elements of an array
2723         of references to be used as write barrier. Still need to audit the
2724         uses of mono_array_addr.
2725
2726 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2727
2728         * object-internals.h: New field to cache the assmebly name, patch
2729         from Tambet Ingo (tambet@ximian.com)
2730
2731 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2732
2733         * decimal.h, class-internals.h, metadata-internals.h,
2734         file-io.h: mark a few function declarations as internal, to
2735         reduce the number of PLT entries.
2736
2737 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2738
2739         * file-io.c: fix typo in warning message.
2740
2741 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2742
2743         * loader.c: on unix, lookup the "*A" version of a function
2744         if charset is auto as a second option before failing.
2745
2746 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2747
2748         * class.h (mono_class_inflate_generic_method): Revert to two
2749         argument version.
2750         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2751         (mono_class_inflate_generic_method_full): Add.
2752         * class.c (mono_class_inflate_generic_method_full): Rename from
2753         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
2754         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
2755         * loader.c, reflection.c: Update to changes.
2756
2757 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2758
2759         * icall.c: const fixes and small improvements.
2760
2761 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2762
2763         * threadpool.c: for asynchronous connect(), enable the same workaround
2764         for BSD 6 as for the Mac. Fixes bug #77637.
2765
2766 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
2767
2768         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
2769         formatted classes. Fixes #77524.
2770
2771 2006-02-24  Raja R Harinath  <rharinath@novell.com>
2772
2773         * class.c (inflate_generic_type): Add a couple more
2774         micro-optimizations.
2775         (inflate_generic_context): Don't use the 'gmethod' from
2776         'inflate_with'.
2777         (mono_class_inflate_generic_method): If the method has generic
2778         parameters, but the passed-in context doesn't have a 'gmethod',
2779         create one.  Use the possibly simplified generic instantiation
2780         from the declaring class instead of the one passed in.
2781
2782 2006-02-24  Raja R Harinath  <harinath@gmail.com>
2783
2784         Make generic method signature and method header handling lazy.
2785         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
2786         (inflate_generic_header): Likewise.
2787         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
2788         parameter to avoid inflating types.
2789         (mono_get_inflated_method): Empty out.
2790         * class.h (mono_class_inflate_generic_method): Update to changes.
2791         * loader.c (mono_get_method_from_token): Don't parse signature for
2792         generic methods, nor methods of generic classes.
2793         (mono_method_signature): Rename from 'mono_method_signature'.
2794         Inflate signature on demand.
2795         (mono_method_get_header): Inflate method header on demand.
2796         * reflection.c: Update to changes.
2797
2798 2006-02-23  Raja R Harinath  <rharinath@novell.com>
2799
2800         * metadata.c (mono_metadata_inflate_generic_inst): If the
2801         instantiation is closed, don't bother expanding it in the new
2802         context.
2803         * class.c (inflate_generic_class): If the generic instantiation
2804         doesn't change after inflation, return the argument itself.
2805         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
2806         Add bounds checks.
2807         (inflate_generic_context): If neither the generic class nor the
2808         generic method instantiations change, return the original context.
2809         * reflection.c (mono_method_get_object): Do
2810         'mono_get_inflated_method' before accessing the ->klass field.
2811         (inflate_mono_method): Don't create a MonoGenericMethod unless
2812         necessary.
2813         (inflate_method): Don't pass a constructed type as the declaring
2814         type of a methodbuilder.
2815
2816 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
2817
2818         * object.c: fix memory overwrite.
2819
2820 2006-02-22  Dick Porter  <dick@ximian.com>
2821
2822         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
2823         it doesn't work any more.
2824         (mono_threads_request_thread_dump): Fix unused variable warnings.
2825
2826 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2827
2828         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
2829         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
2830         the public header file.
2831
2832 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
2833
2834         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
2835
2836 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
2837
2838         * class-internals.h, object.c: reduce the size of MonoVTable
2839         and store the interface_offsets array at negative offsets.
2840
2841 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
2842
2843         * metadata.c: tweak table descriptors data structures to reduce
2844         size and runtime relocations.
2845
2846 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2847
2848         * marshal.c: fix some types and opcodes to be type-safe
2849         in marshaling wrappers.
2850
2851 2006-02-21  Ankit Jain  <jankit@novell.com>
2852
2853         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
2854
2855 2006-02-21  Raja R Harinath  <rharinath@novell.com>
2856
2857         * metadata.c (get_constraints): Relax debugging checks for monodis.
2858
2859 2006-02-21  Ankit Jain  <jankit@novell.com>
2860
2861         * metadata.c (mono_metadata_load_generic_params): Move the code
2862         checking for ambiguous generic params from here to mono/dis/get.c
2863         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
2864
2865 2006-02-21  Raja R Harinath  <harinath@gmail.com>
2866
2867         Fix assertion triggered when compiling nemerle.
2868         * class.c (mono_get_shared_generic_inst): Rename from
2869         get_shared_inst and make non-static.
2870         * loader.c (mono_get_shared_generic_method): New.  Used to create
2871         the MonoGenericContext-equivalent of a MonoGenericContainer.
2872         (mono_get_method_from_token): Initialize the 'context' field of
2873         the created MonoGenericContainer.
2874         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
2875         * metadata.c (get_constraints): Add sanity check.
2876         * class-internals.h: Add new internal methods.
2877
2878         * reflection.c (verify_safe_for_managed_space): New sanity check.
2879         Currently checks that owner-less generic parameters aren't allowed
2880         in managed space.
2881         (mono_type_get_object): Use it.
2882         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
2883         that are now in mono_type_get_object.
2884         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
2885
2886 2006-02-19  Raja R Harinath  <harinath@gmail.com>
2887
2888         * metadata.c (mono_type_create_from_typespec): Rename from
2889         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
2890         argument and caching of types in the generic container.
2891         (unwrap_arrays, find_generic_param): Remove.
2892         * metadata-internals.h: Update.
2893         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
2894
2895 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
2896
2897         * class.c (mono_class_get_exception_for_failure): Fix a warning.
2898
2899         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
2900         return values. Fixes #77581.
2901
2902         * class.c (mono_fnptr_class_get): Switch name and name_space.
2903
2904         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
2905         classes and add support for [In, Out] attributes.
2906         (mono_marshal_free_asany): Ditto. Fixes #77524.
2907
2908 2006-02-18  Raja R Harinath  <harinath@gmail.com>
2909
2910         * class.c (mono_class_from_generic_parameter): Make more robust to
2911         incomplete MonoGenericContainers from monodis.
2912
2913 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2914
2915         * class-internals.h: added some more exception types.
2916         * class.c, metadata.c: added a few checks to handle missing
2917         types.
2918
2919 2006-02-17  Raja R Harinath  <rharinath@novell.com>
2920
2921         Use owner-less generic-params some more.
2922         * class.c (my_mono_class_from_generic_parameter): Remove.
2923         (mono_class_from_generic_parameter): Handle null image,
2924         param->name and param->owner.
2925         (mono_class_from_mono_type): Update.
2926         (mono_class_create_from_typespec): Remove 'container' parameter.
2927         If that parameter is non-null, the result is always inflated by
2928         'mono_class_get_full' anyway.
2929         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
2930         parameter.
2931         (mono_class_get_full): Update.
2932
2933         * class.c (inflate_generic_type) [GENERICINST]: If the generic
2934         instance is not open, don't bother inflating.
2935         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
2936         parse metadata for inflated classes.
2937         (_mono_class_get): Change GenericContext* parameter to
2938         GenericContainer*.
2939         (mono_class_create_from_typespec): Likewise.  Simplify, and
2940         implement trivially.  All the cases are handled in
2941         mono_class_from_mono_type.  Don't inflate returned class.
2942         (mono_class_get_full): Delegate GENERICINST optimization to
2943         inflate_generic_type.
2944         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
2945
2946 2006-02-16  Dick Porter  <dick@ximian.com>
2947
2948         * socket-io.c (create_object_from_sockaddr): Fix typo.
2949         (create_sockaddr_from_object): Check array lengths before
2950         potentially accessing items off the end.
2951         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
2952         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
2953         (ves_icall_System_Net_Sockets_Socket_Send_internal)
2954         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
2955         length checks to avoid wraparound overflows.
2956         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
2957         contents of the array of sockets
2958         (hostent_to_IPHostEntry2)
2959         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
2960         Check return value of inet_ntop ().
2961         (addrinfo_to_IPHostEntry): Fix typo
2962
2963 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2964
2965         Type metadata parsing doesn't use generic-instantiation information.
2966         * metadata.c (mono_metadata_parse_array_full): Change
2967         MonoGenericContext* parameter to MonoGenericContainer*.
2968         (mono_metadata_parse_type_full): Likewise.
2969         (mono_type_create_from_typespec_full): Likewise.
2970         (mono_metadata_parse_mh_full): Likewise.
2971         (mono_metadata_parse_generic_inst): Likewise.
2972         (do_mono_metadata_parse_generic_class): Likewise.
2973         (do_mono_metadata_parse_type): Likewise.
2974         * metadata-internals.h: Update to changes.
2975         * class.c (mono_class_find_enum_basetype): Likewise.
2976         (mono_class_setup_fields): Likewise.
2977         (mono_class_create_from_typespec): Likewise.
2978         * loader.c (method_from_methodspec): Likewise.
2979         (mono_get_method_from_token): Likewise.
2980         (mono_method_get_header): Likewise.
2981
2982 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2983
2984         * marshal.c: handle additional GENERICINST case (patch from
2985         Thong Nguyen <tum@veridicus.com>).
2986         Fix a few cases where LDIND_I/STIND_I was used for references.
2987
2988 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2989
2990         * reflection.c (mono_reflection_get_token): Remove unused variable.
2991
2992 2006-02-16  Martin Baulig  <martin@ximian.com>
2993
2994         * reflection.c (mono_reflection_get_token): Add support for fields
2995         in instantiated generic types.
2996
2997         * icall.c
2998         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
2999
3000 2006-02-15  Martin Baulig  <martin@ximian.com>
3001
3002         * icall.c
3003         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3004         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3005         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3006         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3007
3008 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3009
3010         * class.c, metadata.c, metadata.h, object.c, icall.c,
3011         marshal.c: changed mono_type_get_underlying_type () to do
3012         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3013         Fixed handling of instantiated generic valuetypes (bug #75479).
3014
3015 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3016
3017         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3018         Delegate to mono_metadata_decode_value, and work on the returned value.
3019
3020         * icall.c (ves_icall_MonoType_GetGenericArguments):
3021         Add consistency check here too.
3022         
3023 2006-02-15  Ankit Jain  <jankit@novell.com>
3024
3025         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3026         char/short etc.
3027
3028 2006-02-15  Ankit Jain  <jankit@novell.com>
3029
3030         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3031         signed values, used only for representing lower bounds of arrays.
3032         (mono_metadata_parse_array_full): Use new
3033         mono_metadata_decode_signed_value to decode lower bounds.
3034
3035 2006-02-14  Martin Baulig  <martin@ximian.com>
3036
3037         * reflection.c
3038         (mono_reflection_get_token): Support "MonoGenericMethod" and
3039         "MonoGenericCMethod" and allow generic instances / methods.
3040
3041 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3042
3043         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3044         to obtain the terminal size using an ioctl.
3045
3046         * object.c (mono_nullable_init): Revert this as nullable reference
3047         types are not valid.
3048         (mono_nullable_box): Ditto.
3049
3050 2006-02-09  Dick Porter  <dick@ximian.com>
3051
3052         * threads.c (mono_thread_detach): Drop a reference to the thread
3053         we're detaching.
3054
3055 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3056
3057         * object.c (mono_nullable_init): Handle nullable reference types.
3058         (mono_nullable_box): Ditto. Fixes #77446.
3059
3060 2006-02-07  Martin Baulig  <martin@ximian.com>
3061
3062         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3063
3064 2006-02-07  Ankit Jain  <jankit@novell.com>
3065
3066         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3067         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3068         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3069         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3070         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3071         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3072
3073 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3074
3075         * class.c (mono_class_create_generic): Set type_token as well.
3076
3077         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3078         compatible with MS.
3079
3080 2006-02-02  Martin Baulig  <martin@ximian.com>
3081
3082         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3083         has never been used so far.
3084
3085 2006-02-02  Martin Baulig  <martin@ximian.com>
3086
3087         * mono-debug-debugger.h: Changed comment at the top of this file;
3088         the header is not installed, but it's safe to #include it from
3089         within the JIT.
3090
3091         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3092         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3093
3094 2006-02-02  Martin Baulig  <martin@ximian.com>
3095
3096         * mono-debug.h
3097         (MonoSymbolTable): Removed the `metadata_info' field.
3098
3099         * mono-debug.c
3100         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3101
3102         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3103         (mono_debugger_add_builtin_types): Removed.
3104         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3105         (mono_debugger_create_notification_function): We now operate on a
3106         pre-allocated area; take a `gpointer' and return `void'.
3107
3108         * mono-debug-debugger.c
3109         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3110         (mono_debugger_add_builtin_types): Removed.
3111
3112 2006-02-02  Martin Baulig  <martin@ximian.com>
3113
3114         * threads.c (mono_debugger_create_all_threads): New public method.
3115
3116 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3117
3118         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3119         breaks on several platforms.
3120
3121 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3122
3123         * assembly.c: the VS.NET build doesn't supply default values for
3124         MONO_ASSEMBLIES and MONO_CFG_DIR.
3125
3126 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3127
3128         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3129         helper function.
3130
3131         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3132
3133         * loader.c (method_from_memberref): Fix a warning.
3134
3135         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3136
3137         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3138         with explicit layout. Fixes #77433.
3139
3140 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3141
3142         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3143         max_interface_id is initialized before using it. Fixes #77398.
3144         (ves_icall_Type_GetInterfaces): Ditto.
3145
3146 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3147
3148         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3149         allocate memory for parameter attributes when parsing memberref
3150         signatures.
3151         * loader.c (mono_loader_set_error_method_load): Don't warn.
3152         (method_from_memberref): Ensure MissingMethodException gets thrown
3153         if method is not found.  Make warning more informative.
3154
3155 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3156
3157         Fix #77397
3158         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3159         return true if is byref.
3160         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3161         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3162         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3163
3164 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3165
3166         Fix tests/find-method.2.il
3167         * loader.c (find_method, find_method_in_class): Remove is_inflated
3168         argument.  Revert 2006-01-18 change.
3169         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3170         is generic, search for method in its generic definition.
3171         * class.c (mono_class_setup_vtable_general): Print generic
3172         arguments of generic types in debugging printf.
3173
3174 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3175
3176         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3177
3178         * threads.c (mono_threads_request_thread_dump): New helper function.
3179
3180 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3181
3182         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3183
3184 2006-01-25  Ankit Jain  <jankit@novell.com>
3185
3186         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3187         move definition to ..
3188         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3189         
3190 2006-01-25  Ankit Jain  <jankit@novell.com>
3191             Raja R Harinath  <rharinath@novell.com>
3192
3193         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3194         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3195         as necessary.
3196
3197 2006-01-25  Martin Baulig  <martin@ximian.com>
3198
3199         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3200         `MonoDebuggerThread' into debug-debugger.c.
3201
3202 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3203
3204         * profiler.c: fix printing of data.
3205
3206 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3207
3208         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3209           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3210
3211 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3212
3213         * object.c: fix deadlock related to string interning.
3214
3215 2006-01-23  Martin Baulig  <martin@ximian.com>
3216
3217         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3218
3219         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3220
3221 2006-01-23  Martin Baulig  <martin@ximian.com>
3222
3223         * mono-debug.h: Moved the prototypes of some functions which are
3224         used by the JIT here from mono-debug-debugger.h.
3225
3226 2006-01-21  Martin Baulig  <martin@ximian.com>
3227
3228         * Makefile.am: Don't install mono-debug-debugger.h.
3229
3230 2006-01-21  Martin Baulig  <martin@ximian.com>
3231
3232         * mono-debug-debugger.h: Enforce the private status of this header
3233         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3234         Moved some stuff from mono-debugger-jit-wrapper.h here.
3235
3236 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3237
3238         * class.c (mono_class_from_typeref): Add a sanity test to help
3239         catch lack of assembly load/search hooks.
3240
3241 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3242
3243         * marshal.c (emit_struct_conv): Relax the fields with same offset
3244         check even more. Fixes #77230.
3245
3246 2006-01-18  Martin Baulig  <martin@ximian.com>
3247
3248         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3249         argument; if false, we compare the uninstantiated signatures.
3250         (method_from_memberref): Compare the uninstantiated signatures;
3251         fixes #76417.
3252
3253 2006-01-18  Robert Jordan  <robertj@gmx.net>
3254
3255         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3256         Clear the weak link. Fixes bug #77170.
3257
3258         * gc.c (mono_gchandle_free):
3259         Reflect *-gc.c changes (tiny optimization).
3260
3261 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3262
3263         * metadata.c (mono_metadata_signature_dup): Applied patch from
3264         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3265         Fixes #77288.
3266
3267 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3268
3269         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3270         marshalling from native to managed code. Fixes #77230.
3271
3272 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3273
3274         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3275         connect. Fixes bug #77020.
3276
3277 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3278
3279         * class.c: fixed id assignement for nested interfaces (bug #77275).
3280         Added also better info for --print-vtable debugging.
3281
3282 2006-01-12  Martin Baulig  <martin@ximian.com>
3283
3284         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3285         interfaces on-the-fly; fixes #76625.
3286
3287         * class-internals.h
3288         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3289         don't need that anymore.
3290
3291 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3292
3293         * socket-io.c
3294         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3295         To avoid initing the nested_classes when not needed I turned the
3296         PeerCredData as a toplevel internal class, as it has to be shared
3297         anyways. 
3298
3299         Fixes the CASA issue.
3300
3301 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3302
3303         * domain.c: Accessors for MonoJitInfo
3304
3305         * profiler-private.h: Add jitinfo to the end jit hook
3306
3307         * profiler.[ch]: Define new hooks, called after jitting which give
3308         the MonoJitInfo that was compiled
3309
3310 2006-01-10  Martin Baulig  <martin@ximian.com>
3311
3312         * class.c (mono_class_setup_events): Add support for generic
3313         classes; fixes #76440.
3314
3315 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3316
3317         Fix #77160.
3318         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3319         on passed-in method.
3320
3321 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3322
3323         * object.c (mono_runtime_invoke_array): Add Nullable support.
3324
3325         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3326
3327 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3328
3329         * file-io.c: Don't consider sockets as directory and avoid an endless
3330         loop. Fix bug #76966.
3331
3332 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3333
3334         * object.c (mono_nullable_init): New helper function.
3335         (mono_nullable_box): Ditto.
3336
3337         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3338
3339         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3340
3341         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3342         
3343 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3344
3345         * class.c (mono_class_is_assignable_from): Make T assignable to 
3346         Nullable<T>.
3347
3348 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3349
3350         * appdomain.c: Bump corlib version to 46.
3351         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3352         serialization purpose) and changed ves_icall_System_Reflection_
3353         Assembly_get_code_base signature to accept a boolean (to escape, or 
3354         not, the assembly code base).
3355
3356 2005-12-23  Dick Porter  <dick@ximian.com>
3357
3358         * icall.c: 
3359         * threads-types.h: 
3360         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3361         CreateEvent icall now returns "created" boolean parameter.
3362
3363 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3364
3365         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3366         #76967.
3367
3368         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3369         when attr_klass is an interface. Fixes #77045.
3370
3371 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3372
3373         * marshal.c (emit_struct_conv): Fix previous patch.
3374         
3375         * marshal.c (emit_struct_conv): Add a check for fields with the same
3376         offset.
3377
3378 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3379
3380         Fix regression in Mono.C5.
3381         * class.c (mono_class_create_generic): If 'klass' is an interface
3382         set up the interface offsets.
3383         (mono_class_is_assignable_from): Don't throw away generic arguments.
3384
3385 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3386
3387         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3388         type parameters.
3389
3390 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3391
3392         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3393         dead store.
3394         (do_mono_metadata_parse_generic_class): Don't pass the current
3395         generic context when parsing the type being instantiated: it
3396         cannot use it, anyway.
3397
3398         * loader.c (method_from_memberref): Don't inflate a signature if
3399         it doesn't contain any type parameters.
3400
3401 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3402
3403         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3404
3405 2005-12-14  Martin Baulig  <martin@ximian.com>
3406
3407         * class.c
3408         (mono_type_get_name_recurse): Don't return null for type
3409         parameters and open generic classes.
3410         (mono_class_setup_methods): Don't exclude generic instances.
3411         (mono_get_unique_iid): Use different IDs for different
3412         instantiations of the same generic type.
3413         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3414         open generic instances; create a normal vtable for closed generic
3415         instances.
3416         (mono_class_setup_vtable_general): We're now also called for
3417         closed generic instances.
3418
3419         * reflection.c
3420         (mono_reflection_bind_generic_parameters): Correctly use
3421         mono_metadata_lookup_generic_inst() everywhere.
3422
3423 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3424
3425         * object.c (mono_class_create_runtime_vtable): Call 
3426         mono_class_setup_vtable ().
3427
3428         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3429         function.
3430         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3431         #76959.
3432
3433         * loader.c (mono_loader_set_error_type_load): Print the type load
3434         warnings to the console so they are more visible to the user.
3435         (mono_loader_set_error_method_load): Ditto.
3436
3437         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3438         is still broken.
3439         
3440         * reflection.c (ensure_runtime_vtable): Fix build.
3441
3442         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3443         doesn't work in all cases.
3444
3445 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3446
3447         * object.c (mono_array_new_full): Treat a single dimensional array
3448         with 0 lower bounds as an szarray. Fixes #76973.
3449
3450         * reflection.c (custom_attr_visible): Really fix this.
3451
3452 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3453
3454         * reflection.c (custom_attr_visible): Allow nested public attributes
3455         as well.
3456
3457         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3458         interface check.
3459
3460 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3461
3462         * class.c (set_generic_param_owner): Delete.
3463         (mono_class_create_from_typedef): Don't set ->owner field of
3464         generic parameters to "param containers" of enclosing classes.
3465         * reflection.c (mono_reflection_initialize_generic_parameter):
3466         Likewise.
3467
3468 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3469
3470         * reflection.c (custom_attr_visible): Fix build.
3471
3472 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3473
3474         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3475         private attributes.
3476         
3477         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3478         handling of null parameter defaults.
3479
3480 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3481
3482         * class.c (mono_class_from_generic_parameter): Don't set
3483         klass->generic_container.
3484         (my_mono_class_from_generic_parameter): Likewise.
3485
3486 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3487
3488         * reflection.c (load_public_key): Fix a warning.
3489         (method_encode_code): Fix unaligned accesses.
3490
3491 2005-12-07  Martin Baulig  <martin@ximian.com>
3492
3493         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3494
3495         * reflection.c
3496         (write_generic_param_entry): Encode our custom attrs.
3497
3498         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3499
3500 2005-12-07  Martin Baulig  <martin@ximian.com>
3501
3502         * reflection.c (encode_new_constraint): Removed; we don't use the
3503         `NewConstraintAttribute' anymore.
3504
3505 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3506
3507         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3508         not fire a TypeResolve event when Assembly.GetType () is called.
3509
3510 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3511
3512         Beginning of support for nullable types in the runtime. Parts of
3513         this patch are from Martin.
3514
3515         * appdomain.c (MONO_CORLIB_VERSION): Bump
3516
3517         * domain.c (mono_init_internal): get the nullable type
3518
3519         * class.c (mono_class_is_nullable): New method
3520         (mono_class_get_nullable_param): New mehod
3521         (mono_class_create_generic): In types T? set cast_class to T
3522
3523         * class-internals.h (MonoDefaults): new nullable default class
3524         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3525         new methods.
3526
3527 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3528
3529         * metadata.c (select_container): New.  Refactor code to select the
3530         appropriate GenericContainer given the type of generic parameter
3531         we are looking for.
3532         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3533         not a MonoGenericContext.  Use select_container.  Update parameters.
3534         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3535         and MONO_TYPE_MVAR.
3536         (unwrap_arrays): Remove duplicate tests.
3537         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3538         generic instantiated class to find any arguments that are generic
3539         parameters.
3540         (mono_type_create_from_typespec_full): Use find_generic_param to
3541         avoid evicting some generic instantiations from the typespec
3542         cache.
3543
3544 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3545
3546         * reflection.c: fixed writing of doubles on ARM FPA.
3547
3548 2005-12-02  Robert Jordan  <robertj@gmx.net>
3549
3550         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3551
3552 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3553
3554         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3555         least on SUSE 10 they are not the same (on debian, they are just the
3556         same thing).
3557
3558 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3559
3560         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3561         DeclaringType for VARs and MVARs.
3562         * class.c (set_generic_param_owner): Fix initialization of owner
3563         fields.
3564
3565 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3566
3567         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3568
3569 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3570
3571         * threadpool.c: workaround for a bug that shows up on the Mac:
3572         select()+connect() on a blocking socket is not like it should
3573         be, so we proceed to connect() in that case, wasting the I/O
3574         threadpool thread until connect succeedes. Fixes bug #75436.
3575
3576 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3577
3578         * threadpool.c: fix typo when setting file descriptor states.
3579
3580 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3581
3582         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3583         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3584         create a temporary signature container.
3585         (mono_metadata_parse_generic_param): Update to changes.
3586         (mono_type_create_from_typespec_full): Update to changes.
3587         * loader.c (method_from_memberref): Don't use a
3588         MonoGenericContainer while parsing a memberref signature.
3589         (method_from_methodspec): Remove dead-store of the 'container'
3590         variable.  It's overwritten before use.
3591
3592         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3593         checks tighter.
3594         (mono_metadata_parse_generic_param): Likewise.
3595         * loader.c (find_method_in_class): Does not need a
3596         MonoGenericContainer.  Use 'mono_method_signature' rather than
3597         'mono_method_signature_full'.
3598         (find_method, mono_get_method_constrained, method_from_memberref):
3599         Update to changes.
3600
3601         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3602         owner-less generic-parameters are never evicted from the typespec
3603         cache.
3604
3605         * loader.c (method_from_memberref): Don't use the current context
3606         when parsing signatures.
3607         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3608
3609         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3610         side-effects in g_assert.
3611         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3612         that we don't potentially lose information.
3613
3614 2005-11-26  Dick Porter  <dick@ximian.com>
3615
3616         * icall.c:
3617         * threads.c: icalls to implement basic (ie, not named)
3618         System.Threading.Semaphore.
3619
3620 2005-11-24  Dick Porter  <dick@ximian.com>
3621
3622         * process.c
3623         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3624         Use GetProcessId() if it's available.
3625
3626 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3627
3628         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3629
3630 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3631             Ankit Jain  <jankit@novell.com>
3632
3633         * loader.c (mono_get_method_from_token): Initialize 'method' field
3634         of all generic parameters before parsing the signature.  Remove
3635         code that "fixed"-up MVAR references.
3636
3637 2005-11-23  Ankit Jain  <jankit@novell.com>
3638
3639         * metadata.c (mono_metadata_has_generic_params):
3640         (mono_metadata_load_generic_param_constraints):
3641         (mono_metadata_load_generic_params): Move duplicate code ...
3642         (mono_metadata_get_generic_param_row): ... here. Returns the
3643         first row-id in GenericParam table for a given owner (token).
3644         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3645         prototype.
3646
3647 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3648             Ankit Jain  <jankit@novell.com>
3649
3650         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3651         comparing VARs too.
3652         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3653         type->data.generic_param only if the type is an MVAR.
3654         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3655         leak owner-less VARs and MVARs into managed space.
3656
3657 2005-11-21  Martin Baulig  <martin@ximian.com>
3658
3659         * class-internals.h
3660         (MonoMethod): Moved the `generic_container' here from
3661         `MonoMethodNormal' since we now also need it for
3662         `MonoMethodPInvoke';
3663         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3664         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3665         an union containing both `MonoMethodNormal' and
3666         `MonoMethodPInvoke'.
3667
3668         * loader.c
3669         (mono_get_method_from_token): Allow implementing generic methods
3670         as interncalls.
3671
3672         * threads.c
3673         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3674         icall.
3675
3676 2005-11-17  Dick Porter  <dick@ximian.com>
3677
3678         * icall.c: 
3679         * process.h: 
3680         * process.c: Split the Process Start_internal icall into
3681         ShellExecuteEx_internal and CreateProcess_internal, which are
3682         called depending on whether UseShellExecute is true.  Fixes bug
3683         76670.
3684
3685         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3686
3687 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3688
3689         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3690         'msize' parameters, use the information in 'mspec' instead.
3691         (emit_object_to_ptr_conv): Ditto.
3692
3693         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3694         fields out of order. Fixes #76733.
3695
3696 2005-11-17  Ankit Jain  <jankit@novell.com>
3697
3698         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3699
3700 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3701
3702         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3703           bug #76575.
3704
3705 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3706
3707         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3708         for types with non-auto layout. Fixes #76717.
3709
3710 2005-11-16  Ankit Jain  <jankit@novell.com>
3711
3712         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3713         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3714         if generic_context is null.
3715           (mono_metadata_generic_param_equal): param->owner can be null.
3716           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3717         null.
3718
3719 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3720
3721         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3722         the correct value.
3723
3724 2005-11-15  Martin Baulig  <martin@ximian.com>
3725
3726         * object.c (set_value): Use mono_class_from_mono_type() instead of
3727         the hack for generic instances; fixes #76136.
3728
3729 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3730
3731         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3732         fields.
3733
3734         * image.c (load_metadata_ptrs): Initialize the new fields.
3735
3736         * reflection.c (create_dynamic_mono_image): Ditto.
3737
3738         * reflection.c (build_compressed_metadata): Use the new fields.
3739
3740         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3741         icall.
3742
3743         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3744         icall.
3745         
3746 2005-11-15  Ankit Jain  <jankit@novell.com>
3747             Raja R Harinath  <harinath@gmail.com>
3748
3749         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3750         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3751         new per-generic_container cache if the cached MonoType's context matches
3752         the current context.
3753           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
3754         to the expected context.
3755           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
3756
3757 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3758
3759         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
3760         we changed the signature of an icall.
3761         * icall.c: Modify to mono_double_ParseImpl return true/false 
3762         depending on the success, instead of throwing the exception. This will
3763         help us in Double.TryParse methods.
3764         
3765 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
3766
3767         * marshal.c (emit_marshal_object): Throw an exception when
3768         marshalling 'object' instead of crashing. Fixes #76696.
3769
3770 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3771
3772         * class-internals.h: Add prototype for mono_type_get_full_name ().
3773
3774 2005-11-11  Dick Porter  <dick@ximian.com>
3775
3776         * threads.c (mono_thread_manage): Make sure the main thread has
3777         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
3778
3779 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3780
3781         * loader.c (mono_loader_set_error_type_load): Log a warning to the
3782         console about the missing type.
3783         (mono_loader_set_error_method_load): Ditto.
3784
3785 2005-11-09  Miguel de Icaza  <miguel@novell.com>
3786
3787         * mono-config.c (mono_get_config_dir): Set the system defaults if
3788         none is specified.
3789
3790         * assembly.c (mono_set_dirs): New API entry point to set the
3791         assembly and the config directory in one call
3792
3793 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
3794
3795         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
3796         the ftnptr was created from a delegate in a domain other than the
3797         current domain. Fixes #75377.
3798
3799         * exception.h exception.c: Add mono_get_exception_not_supported ().
3800
3801 2005-11-08  Martin Baulig  <martin@ximian.com>
3802
3803         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
3804
3805 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
3806
3807         * security-manager.h: Added definitions to deal with strongname key 
3808         pairs bigger (and smaller) than 1024 bits.
3809         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
3810         adjust wrt the public key length being used.
3811
3812 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
3813
3814         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
3815           Windows build (r51396-51397).
3816
3817 2005-11-03  Martin Baulig  <martin@ximian.com>
3818
3819         * class.c (mono_class_setup_vtable_general): Also add generic
3820         methods to the vtable; fixes #76581.
3821
3822 2005-11-01  Miguel de Icaza  <miguel@novell.com>
3823
3824         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
3825         sure that we lookup GetString method from the System.Text.Encoding
3826         class, not the derived class or we get an empty method.
3827
3828         Fixed class #76612.
3829
3830 2005-10-25  Miguel de Icaza  <miguel@novell.com>
3831
3832         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
3833         if it has been previously set (embedders). 
3834
3835         Make mono_set_rootdir available also on Unix.
3836
3837 005-10-24  Robert Jordan  <robertj@gmx.net>
3838
3839         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
3840
3841 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
3842
3843         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
3844         only calls which are made to native code use this flag.
3845
3846         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
3847
3848 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
3849
3850         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
3851         Add support for FieldBuilders.
3852
3853 2005-10-29  Martin Baulig  <martin@ximian.com>
3854
3855         * mono-debug.c
3856         (mono_debug_using_mono_debugger): New public method; returns
3857         whether we're running inside the debugger.
3858
3859 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
3860
3861         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
3862         for Method/Constructor/FieldBuilders.
3863
3864 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
3865
3866         * reflection.c (module_add_cattrs): Save custom attributes for global methods
3867         and fields as well.
3868
3869 2005-10-26  Martin Baulig  <martin@ximian.com>
3870
3871         * mono-debug-debugger.c
3872         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
3873
3874 2005-10-24  Raja R Harinath  <harinath@gmail.com>
3875
3876         * icall.c (base64_to_byte_array): Don't pass an out-of-range
3877         integer to isspace.
3878
3879 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
3880
3881         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
3882         when passing valuetypes byref. Fixes #76502.
3883
3884 2005-10-19  Jackson Harper  <jackson@ximian.com>
3885
3886         * profiler.c: Don't put a . in front of types that are not in a
3887         namespace.
3888
3889 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
3890
3891         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
3892
3893 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
3894
3895         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
3896         #76436.
3897         (mono_marshal_get_ldflda_wrapper): Fix a warning.
3898
3899 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3900
3901         * assembly.c metadata-internals.h icall.c: Define an additional
3902         parameter for mono_assembly_name_parse_full, so we can avoid creating
3903         S.R.AssemblyName.Version when no version info wasn't passed.
3904         
3905 2005-10-09  Miguel de Icaza  <miguel@novell.com>
3906
3907         * class.c (mono_type_get_full_name): Reimplement method that was
3908         removed. 
3909
3910         * image.c: Some docs
3911
3912 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
3913
3914         * profiler.c (output_newobj_profile): Fix printing of Total memory
3915         on x86.
3916
3917 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3918
3919         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
3920
3921 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
3922
3923         * threads.c: remove debug output.
3924
3925 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3926
3927         * threads.c (mono_thread_manage): Fix crashes if more than 64
3928         threads need to be aborted. Hopefully fixes #75899.
3929
3930         * assembly.c (mono_stringify_assembly_name): New helper function.
3931
3932         * class.c: Use mono_stringify_assembly_name instead of the similar
3933         static function.
3934
3935         * assembly.h assembly.c: Add support for calling a postload search 
3936         hook if an assembly cannot be loaded.
3937
3938         * appdomain.c: Register new search hooks which call the AssemblyResolve
3939         events in AppDomain. Fixes #75231
3940
3941 2005-10-07  Martin Baulig  <martin@ximian.com>
3942
3943         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
3944         methods without debug info.
3945
3946 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
3947
3948         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
3949         wrappers.
3950
3951 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3952
3953         * file-io.c: now that we return symlinks, use lstat and, when the file
3954         is a symbolic link, stat, to get the file attributes. Also avoid the
3955         conversion to/from utf16/external.
3956
3957 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
3958
3959         * class.c (mono_class_layout_fields): Compute klass->has_references
3960         correctly if an embedded valuetype is not yet initialized. Fixes
3961         #76331.
3962
3963 2005-10-04  Martin Baulig  <martin@ximian.com>
3964
3965         * metadata.c
3966         (mono_metadata_load_generic_param_constraints): New public
3967         function; splitted the constraints loading out from
3968         mono_metadata_load_generic_params().
3969
3970         * class.c (mono_class_create_from_typedef): Call
3971         mono_metadata_load_generic_param_constraints() after setting up
3972         the type and creating our parent; fixes #75329.
3973
3974 2005-10-04  Martin Baulig  <martin@ximian.com>
3975
3976         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
3977         non-dynamic parent classes.
3978
3979 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3980
3981         * file-io.c : win32 build fix (ETXTBSY seems not found).
3982
3983 2005-10-04  Martin Baulig  <martin@ximian.com>
3984
3985         * reflection.c
3986         (mono_image_get_methodspec_token): Make the cache actually work;
3987         fixes #75974.
3988
3989 2005-10-04  Martin Baulig  <martin@ximian.com>
3990
3991         * class.c (mono_class_name_from_token): Removed the unneccessary
3992         `MonoGenericContext *' argument.
3993
3994 2005-10-04  Martin Baulig  <martin@ximian.com>
3995
3996         * loader.c
3997         (method_from_methodspec): Make the caching work again; fixes the
3998         performance regression from #76262.
3999
4000 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4001
4002         * file-io.c:
4003         * file-io.h:
4004         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4005         GetFileSystemEntries that performs the same work but without going
4006         into io-layer, locking, etc.
4007
4008 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4009
4010         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4011         ThreadState_Stopped as well. Fixes #76047.
4012
4013 2005-09-29  Martin Baulig  <martin@ximian.com>
4014
4015         * class.c
4016         (inflate_generic_context): If the new context has a `gmethod', set
4017         its `container' that that gmethod's `container'.
4018
4019         * metadata.c
4020         (mono_metadata_parse_generic_param): Simplify things;
4021         `generic_container = generic_context->container;' is just fine.
4022
4023         * loader.c (method_from_methodspec): Code cleanups.
4024
4025 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4026
4027         * decimal.c: fix warning (and let gcc generate correct
4028         code on ARM with optimizations).
4029
4030 2005-09-28  Martin Baulig  <martin@ximian.com>
4031
4032         * loader.c
4033         (method_from_memberref): Added `MonoGenericContext *class_context'
4034         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4035         (method_from_methodspec): If we're a memberref, use the enclosing
4036         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4037
4038 2005-09-28  Martin Baulig  <martin@ximian.com>
4039
4040         * object.c (mono_runtime_invoke_array): Added support for
4041         MONO_TYPE_GENERICINST; fixes #75917.
4042
4043 2005-09-27  Martin Baulig  <martin@ximian.com>
4044
4045         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4046         `k->byval_arg.type' to determine the actual type.
4047
4048         * loader.c (method_from_methodspec): Removed some hacks.
4049
4050 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4051
4052         * class-internals.h (mono_field_is_deleted): Do the test for
4053         rtspecialname before we check the actual name of the field. This
4054         prevents us from dereferencing a pointer into the string table,
4055         saving us from accessing a few pages
4056
4057         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4058         macros. This will allow a deadlock debugger to easily be plugged
4059         in.
4060
4061 2005-09-27  Martin Baulig  <martin@ximian.com>
4062
4063         * loader.c (method_from_methodspec): Create a "signature"
4064         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4065
4066 2005-09-27  Martin Baulig  <martin@ximian.com>
4067
4068         * class.c
4069         (inflate_generic_class): Correctly set the new context's
4070         container.
4071
4072         * loader.c
4073         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4074         instead of a `MonoGenericContext *'.
4075         (mono_method_signature_full): Take a `MonoGenericContainer *'
4076         instead of a `MonoGenericContext *'.
4077
4078         * metadata.c
4079         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4080         instead of a `MonoGenericContext *'.
4081         (mono_metadata_parse_method_signature_full): Likewise.
4082
4083 2005-09-26  Martin Baulig  <martin@ximian.com>
4084
4085         * class.c
4086         (mono_class_from_generic_parameter): Set `klass->generic_container'
4087         (mono_class_from_generic_parameter): Likewise.
4088         (mono_bounded_array_class_get): We inherit the generic container
4089         from the element class.
4090
4091         * loader.c
4092         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4093         argument rather than computing it here.
4094         (method_from_memberref): Correctly set the generic context before
4095         parsing the signature.  Fixes #75681.
4096
4097 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4098
4099         * object.c (mono_class_has_special_static_fields): Fix warnings.
4100
4101 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4102
4103         * assembly.c: Add parse_public_key function, to
4104         par the public keys. Also added mono_assembly_name_parse_full,
4105         to define it the parsed key should be freed or not.
4106         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4107         to parse a long format assembly name.
4108         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4109         private, since calling it to preserve the key requires
4110         freeing it manually.
4111         
4112 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4113
4114         * locales.c : removed HAVE_ICU part.
4115
4116 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4117
4118         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4119         field_is_special_static if the klass has no special static fields.
4120
4121         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4122         (MonoCachedClassInfo): Likewise.
4123
4124         * object.c (mono_class_has_special_static_fields): New helper function.
4125
4126 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4127
4128         * class.c (mono_class_create_from_typedef): Don't call 
4129         interfaces_from_typedef_full for enums.
4130         (mono_class_create_from_typedef): Compute the base types of enums directly
4131         without calling mono_class_setup_fields ().
4132         (mono_class_find_enum_basetype): New helper function.
4133
4134         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4135         one place inside the string heap.
4136         
4137 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4138
4139         * class.c: locking fixes, code cleanups, some docs added.
4140         Allocate some data structures in the image mempool.
4141
4142 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4143
4144         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4145         the example code.
4146         
4147 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4148
4149         * class-internals.h, class.c, reflection.c: reduce memory taken by
4150         MonoClass.
4151
4152 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4153
4154         * metadata.c, metadata.h, loader.h: documentation updates, code and
4155         API cleanups.
4156
4157 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4158
4159         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4160         the example code.
4161
4162         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4163         page faults caused by the runtime while reading metadata.
4164
4165 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4166
4167         * socket-io.c: the field names were changed 3 months ago and no one
4168         realized until bug #76077 got filed!
4169
4170 2005-09-20  Martin Baulig  <martin@ximian.com>
4171
4172         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4173
4174 2005-09-20  Martin Baulig  <martin@ximian.com>
4175
4176         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4177         write the rank into the class entry.
4178
4179 2005-09-20  Martin Baulig  <martin@ximian.com>
4180
4181         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4182
4183 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4184
4185         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4186
4187         * icall.c (custom_attrs_defined_internal): New icall.
4188
4189         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4190         function.
4191         (mono_custom_attrs_construct_by_type): New helper function.
4192
4193 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4194
4195         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4196         terminate the resulting string. Fixes #76123.
4197
4198 2005-09-16  Martin Baulig  <martin@ximian.com>
4199
4200         * mono-debug.c
4201         (mono_debug_add_method): Ignore inflated methods for the moment.
4202
4203 2005-09-14  Martin Baulig  <martin@ximian.com>
4204
4205         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4206
4207 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4208
4209         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4210         return a success/failure indication.
4211         (mono_metadata_interfaces_from_typedef_full): Ditto.
4212         (get_constraints): Ditto.
4213
4214 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4215
4216         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4217         
4218         * marshal.c (emit_marshal_array): Add support for returning string
4219         arrays from delegates. Fixes #76063.
4220
4221         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4222
4223 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4224
4225         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4226         icall.
4227
4228 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * reflection.c icall.c: Fix after mono_get_exception_type_load
4231         signature change.
4232
4233         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4234         (mono_assembly_load_reference): Use the new helper.
4235
4236         * class-internals.h (MonoLoaderError): New structure containing 
4237         information about type loading errors.
4238
4239         * class-internals.h loader.c: Add APIs to store per-thread loader
4240         error information.
4241
4242         * loader.c class.c: Set the loader error if needed.
4243
4244         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4245
4246 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4247
4248         * decimal.c: fixed to handle the broken ARM fp format.
4249
4250 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4251
4252         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4253         broken.
4254
4255 2005-09-06  Martin Baulig  <martin@ximian.com>
4256
4257         * domain.c (supported_runtimes): Added v2.0.50727.
4258
4259 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4260
4261         * culture-info.h: reduce the size of some structures.
4262
4263 2005-09-05  Martin Baulig  <martin@ximian.com>
4264
4265         Reflect latest API changes in the August CTP.
4266
4267         * icall.c
4268         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4269         ("MonoType.HasGenericArguments"): Removed.
4270         ("MonoMethod.BindGenericParameters"): Renamed to
4271         "MakeGenericMethod".
4272         ("MethodBuilder.BindGenericParameters"): Renamed to
4273         "MakeGenericMethod".    
4274
4275 2005-09-05  Martin Baulig  <martin@ximian.com>
4276
4277         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4278
4279 2005-09-05  Martin Baulig  <martin@ximian.com>
4280
4281         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4282
4283         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4284         generic_container is non-NULL.
4285
4286 2005-09-05  Martin Baulig  <martin@ximian.com>
4287
4288         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4289
4290         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4291
4292 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4293
4294         * reflection.c (encode_locals,
4295         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4296         for large generic types.
4297
4298 2005-09-05  Martin Baulig  <martin@ximian.com>
4299
4300         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4301
4302         * class.c (mono_dup_array_type): New public method.
4303         (mono_metadata_signature_deep_dup): New public method.
4304         (dup_type): Correctly duplicate array and function types.
4305
4306 2005-09-05  Martin Baulig  <martin@ximian.com>
4307
4308         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4309
4310         * reflection.c (get_default_param_value_blobs): Handle generic types
4311         and generic methods.
4312
4313 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4314
4315         * class.c: Fixed error reporting (method/class were inversed) for 
4316         inheritance demands.
4317         * security-manager.c|h: Added the AppDomain when calling the managed
4318         System.Security.SecurityManager.InheritanceDemand method.
4319
4320 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4321
4322         * reflection.c (encode_marshal_blob): 'marshaltype' and
4323         'marshaltyperef' are alternate sources for the custom marshaler
4324         name.
4325
4326 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4327
4328         * class.c: fix creation of array classes with rank == 1
4329         (patch by Ankit Jain <jankit@novell.com>).
4330
4331 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4332
4333         * object.c: fix check for creating the bound data for arrays vs
4334         szarrays.
4335
4336 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4337
4338         * object.c: configuration file name is now based on the executable name,
4339         not the image name. Fixes bug #75931.
4340
4341 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4342
4343         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4344         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4345
4346 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4347
4348         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4349
4350 2005-08-24  Ankit Jain  <jankit@novell.com>
4351             Raja R Harinath  <rharinath@novell.com>
4352
4353         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4354           called by it recursively.
4355           (mono_class_init): Remove special case in pending_init handling, since it's
4356           superseded by the fix to mono_class_from_typeref.
4357
4358 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4359
4360         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4361         BROKEN_THREAD_START stuff.
4362
4363 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4364
4365         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4366         trampoline.
4367
4368         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4369         
4370         * object.c (mono_delegate_ctor): Replace the original function address with
4371         a delegate trampoline.
4372
4373 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4374
4375         * icall.c: add boolean argument to base64_to_byte_array and 
4376         InternalFromBase64String to control whether a whitespace-only string
4377         is allowed (or should casue a FormatException to be thrown). We need
4378         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4379         to match the MS behaviour in both profiles.
4380         * appdomain.c: Bump corlib version.
4381
4382 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4383
4384         This patch implements a big portion of publisher policy
4385         support, used to bind assembly versions and redirect
4386         one assembly from version A to version B.
4387
4388         * assembly.c:
4389         New GSList loaded_assembly_bindings, for storing the cached
4390         assembly bindings.
4391         (assembly_binding_maps_name): New static function for checking if a 
4392         assembly binding information maps an assembly name.
4393         (mono_assembly_binding_info_free): New function for freeing
4394         assembly binding information resources.
4395         (get_publisher_policy_info): New static function for retrieving 
4396         assembly binding information from a MonoImage.
4397         (compare_versions): New static function for comparing an assembly
4398         binding information data and the version of an assembly name.
4399         (check_policy_versions): New static function for checking if an
4400         assembly binding info mapping an assembly name is valid for it.
4401         (mono_assembly_load_publisher_policy): New static function for
4402         loading the 'policy.major.minor.MyAssembly' image for an assembly
4403         with an assembly name 'aname'.
4404         (mono_assembly_bind_version): New static function for updating
4405         assembly redirection.
4406         (mono_assembly_apply_binding): New static function for applying
4407         assembly binding.
4408         (search_binding_loaded): New static function for searching 
4409         loaded assembly binding infos in the cache domain.
4410         (mono_assembly_load_full): Don't apply assembly binding for
4411         reflection only assemblies.
4412
4413         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4414         which contains information about assembly binding. Also
4415         declare signature for mono_config_parse_publisher_policy ()
4416         function, used to retrieve pub policy info.
4417         
4418         * mono-config.c:
4419         (publisher_policy_start): New static function used to parse publisher 
4420         policy config files.
4421         (publisher_policy_parser): New static MonoParseHandler containing 
4422         the functions used when parsing config files.
4423         (mono_config_parse_publisher_policy): New function for parsing
4424         publisher policy files.
4425         
4426 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4427
4428         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4429
4430         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4431
4432         * object.c (mono_get_addr_from_ftnptr): New helper function.
4433
4434         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4435
4436         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4437
4438 2005-08-19  Dick Porter  <dick@ximian.com>
4439
4440         * threads.c, threads.h, appdomain.c, appdomain.h,
4441         profiler-private.h, monitor.c, object.c, object-internals.h,
4442         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4443         store the thread ID, so it can hold a 64 bit value if needed.
4444
4445 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4446
4447         * reflection.c (mono_reflection_create_dynamic_method): Store the
4448         handle class into the method references as well so ldtoken works in
4449         dynamic methods.
4450
4451         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4452         types.
4453
4454 2005-08-19  Ankit Jain <jankit@novell.com>
4455
4456         Fix #75847.
4457         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4458           here rather than using the method signature of a arbitrary function
4459           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4460           two arguments.
4461           Hack done with Harinath.
4462
4463 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4464
4465         * threadpool.c: disable printing stack traces when we get a exception
4466         in a threadpool thread. I need to do more testing to figure out which
4467         cases actually print this. Fixes bug #75828.
4468
4469 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4470
4471         * icall.c: there might be ignored whitespace after the last '='. This
4472         fixes length computation and bug #75840.
4473
4474 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4475
4476         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4477         well. Fixes #75809.
4478
4479         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4480         #75784.
4481         
4482         * reflection.c (create_custom_attr_data): Ditto.
4483
4484 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4485
4486         * locales.c, culture-info.h : removed RegionLCIDMap.
4487         * culture-info-tables.h : regenerated.
4488
4489 2005-08-16  Martin Baulig  <martin@ximian.com>
4490
4491         * class.c (mono_type_get_name_recurse): Small fix.
4492
4493 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4494
4495         * locales.c : indentation fixie.
4496
4497 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4498
4499         * object-internals.h,
4500           locales.h,
4501           locales.c,
4502           culture-info.h,
4503           icall.c : added RegionInfo table support.
4504         * culture-info-table.h : regenerated for region support.
4505
4506 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4507
4508         * reflection.c (resolve_object): handle all kinds of MonoMethod
4509         including generic ones
4510
4511 2005-08-12  Ankit Jain <jankit@novell.com>
4512
4513         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4514           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4515
4516 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4517
4518         * process.c: Don't close a thread handle when it's NULL. This is a
4519         workaround for bug #75733.
4520
4521 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4522
4523         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4524
4525 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4526
4527         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4528
4529 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4530
4531         * threadpool.c: if a work item in the thread pool has a callback that
4532         catches a exception, don't propagate it after invoking the callback.
4533         Fixes bug #75336.
4534
4535 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4536
4537         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4538
4539         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4540
4541         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4542
4543         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4544
4545 2005-08-03  Ankit Jain  <jankit@novell.com>
4546
4547         Fix #75683.
4548         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4549           PInvoke calling convention is 0.
4550
4551 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4552
4553         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4554         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4555
4556 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4557
4558         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4559         to handle threads not started by the GC (patch by Michael Meeks
4560         <michael.meeks@novell.com>).
4561
4562 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4563
4564         * reflection.c: Make buffer used in emitting types larger for some
4565         big generic types (patch by Michal Moskal).
4566
4567 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4568
4569         * mono-debug.c: Fix some (not all) alignment problems.
4570
4571 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4572
4573         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4574         Invoke mono_image_load_from_data_full passing the refonly
4575         parameter.
4576
4577         * assembly.c
4578         (mono_assembly_open_from_bundle): Add the refonly argument, 
4579         in order to pass it to other methods it calls to.
4580         (do_mono_assembly_open): Add the refonly argument, in order 
4581         to pass it to other methods it calls to.
4582         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4583         the refonly parameter to it.
4584
4585         * image.c: Add loaded_images_refonly_hash and
4586         loaded_images_refonly_guid_hash to cache the reflection
4587         only loaded images.
4588         (mono_images_init): Initialize the hash tables used for
4589         caching the reflection only images.
4590         (load_modules): Invoke mono_image_open_full passing the refonly
4591         parameter to load the modules the correct way.
4592         (build_guid_table): Add the refonly argument, to re-build the 
4593         correct hash table.
4594         (do_mono_image_open): Added the refonly argument, in order to
4595         define it for the loaded image.
4596         (mono_image_loaded_full): New function, which receives an
4597         additional parameter to look for the image in the refonly or
4598         non-refonly section.
4599         (mono_image_loaded): Updated, using mono_image_loaded_full.
4600         (mono_image_loaded_by_guid_full): The same case that happens
4601         with mono_image_loaded_full.
4602         (mono_image_loaded_by_guid): Likewise.
4603         (register_image): Use the ref_only variable inside MonoImage
4604         to decide in which hash table store the current image.
4605         (mono_image_open_from_data_full): Rename
4606         mono_image_open_from_data to mono_image_open_from_data_full,
4607         adding the refonly argument, to define the ref_only variable 
4608         inside MonoImage.
4609         (mono_image_open_from_data): Return 
4610         mono_image_open_from_data_full.
4611         (mono_image_open_full): Rename mono_image_open to
4612         mono_image_open_full, receiving the new refonly argument,
4613         to pass it to inner methods.
4614         (mono_pe_file_open): Update this function, to open
4615         a MonoImage as a non-refonly image.
4616         (mono_image_close): Use the refonly variable inside
4617         MonoImage to remove the image from the correct caches.
4618
4619         * image.h: Add the signatures of mono_image_open_full,
4620         mono_image_open_from_data_full, mono_image_loaded_full,
4621         mono_image_loaded_by_guid_full.
4622
4623         * metadata-internals.h: Add the ref_only field to 
4624         MonoImage.
4625         
4626 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4627
4628         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4629         Fix the last behavior, which used to load the assemblies and
4630         extract MonoReflectionAssemblyName information, instead of
4631         extract it from the metadata tables. Needed for Reflection
4632         Only assemblies.
4633         
4634 2005-07-29  Martin Baulig  <martin@ximian.com>
4635
4636         * mono-debug-debugger.c
4637         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4638         not initialized.
4639
4640         * mono-debug.c
4641         (mono_debug_address_from_il_offset): Check whether we have
4642         debugging support before attempting to take the lock.
4643         (mono_debug_source_location_from_address): Likewise.
4644         (mono_debug_source_location_from_il_offset): Likewise.
4645         (mono_debug_il_offset_from_address): Likewise.
4646         (mono_debug_address_from_il_offset): Likewise.
4647
4648 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4649
4650         * class.c (mono_class_from_name_case): Add support for dynamic images.
4651         Fixes #75650.
4652
4653         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4654         for #75479.
4655
4656 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4657         
4658         * reflection.c (mono_method_get_object): Fix warning.
4659
4660 2005-07-28  Martin Baulig  <martin@ximian.com>
4661
4662         * mono-debug.c
4663         (mono_debug_add_wrapper): Also write the wrapper type.
4664
4665 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4666
4667         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4668         
4669         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4670         data indicates the class has none.
4671
4672 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4673
4674         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4675         loader lock with the debugger lock. Prevents deadlocks for beagle.
4676
4677         Beagle can now run on an smp box for a weekend without any
4678         issues. Woohoo!
4679
4680 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4681
4682         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4683         in a module. Fixes #75629.
4684
4685 2005-07-26  Martin Baulig  <martin@ximian.com>
4686
4687         * mono-debug.c (mono_debug_add_wrapper): New static method.
4688         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4689         interncall or a wrapper.
4690
4691         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4692         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4693         (MONO_DEBUGGER_VERSION): Bump to 51.
4694
4695         * mono-debug-debugger.c
4696         (mono_debugger_add_type): Removed this empty function.
4697         (mono_debugger_add_method): Likewise.
4698
4699 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4700
4701         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4702         before accessing method->slot.
4703
4704 2005-07-21  Jb Evain  <jbevain@gmail.com>
4705
4706         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4707         Fixes #75010.
4708
4709 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4710
4711         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4712         #75587.
4713
4714 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4715
4716         * image.h image.c: Add mono_image_get_guid () API function.
4717
4718 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4719
4720         There were issues when multiple threads tried to load
4721         assemblies. A deadlock was created between assemblies_mutex and
4722         mono_domain_assemblies_lock. This fixes the issue by making the
4723         assembly ref counting be lock free. See bug 75586.
4724         
4725         * image.c (mono_image_close): The add ref function here was using
4726         Interlocked operations while the unref was using a mutex and a
4727         --. I don't think this was ever a bug that would be exposed in a
4728         non-pendantic way (ie, by an embedder doing a ref on one thread
4729         and an unref on another), but for the sake of correctness, this is
4730         now Interlocked.
4731
4732         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4733         (mono_assembly_load_reference): Call mono_assembly_addref rather
4734         than touching the refcount ourselves.
4735         (mono_assembly_close): Use InterlockedDecrement to unref the
4736         assembly. Don't acquire the lock unless it is actually needed.
4737
4738 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4739
4740         * class.c (mono_class_layout_fields): Fix calculation of has_references
4741         for generic types.
4742
4743 2005-07-12  Martin Baulig  <martin@ximian.com>
4744
4745         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4746
4747         * metadata.c
4748         (mono_type_hash): Provide better hashing for generic instances.
4749         (mono_generic_inst_hash): Improve hashing.
4750         (mono_generic_class_hash): Likewise.
4751
4752         * reflection.c (mymono_metadata_type_hash): Improve hashing for
4753         generic instances.
4754
4755 2005-07-12  Martin Baulig  <martin@ximian.com>
4756
4757         * reflection.c (mono_reflection_create_runtime_class): Remove the
4758         hack for generic type definitions and non-`Run' assemblies.
4759         (mono_reflection_bind_generic_parameters): Also use
4760         `klass->wastypebuilder' to check for TypeBuilders.
4761
4762 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4763
4764         * class.c (mono_class_layout_fields): Fix calculation of has_references
4765         for generic types.
4766
4767         * class.c (inflate_generic_class): Fix a leak.
4768         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
4769         for generic types.
4770
4771 2005-07-11  Martin Baulig  <martin@ximian.com>
4772
4773         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
4774         on error.
4775
4776 2005-07-11  Martin Baulig  <martin@ximian.com>
4777
4778         * loader.c (find_method): Also lookup in
4779         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
4780
4781 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4782
4783         * appdomain.c (mono_domain_unload): Don't free the error message
4784         before passing it to mono_get_exception_...
4785
4786         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
4787         
4788 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
4789
4790         * threads.c: try to better guess an available RT signal (bug #75387).
4791
4792 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4793
4794         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
4795         and CACHE_OBJECT.
4796
4797 2005-07-07  Martin Baulig  <martin@ximian.com>
4798
4799         * class.c (mono_type_get_name_full): Return NULL for
4800         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
4801         fixes #75408.
4802
4803 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4804
4805         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
4806         exit the appdomain as well being aborted.
4807
4808         * threadpool.c: Create all threadpool threads inside the root appdomain, and
4809         change back to the root domain after calling managed code. This enables
4810         appdomains using threadpools to be unloaded.
4811
4812 2005-07-07  Martin Baulig  <martin@ximian.com>
4813
4814         * class-internals.h
4815         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
4816         into `MonoDynamicGenericClass' since we only need it for dynamic
4817         types.
4818
4819         * reflection.c (mono_class_bind_generic_parameters): We don't need
4820         to compute the `parent' here.
4821
4822 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
4823
4824         * culture-info-table.h : regenerated.
4825
4826 2005-07-06  Martin Baulig  <martin@ximian.com>
4827
4828         * icall.c
4829         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
4830
4831         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
4832
4833 2005-07-06  Martin Baulig  <martin@ximian.com>
4834
4835         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
4836         we're doing a signature-only comparision; fixes #74945.
4837
4838 2005-07-06  Martin Baulig  <martin@ximian.com>
4839
4840         * class-internals.h (MonoGenericClass): Moved some things out into
4841         a new `MonoInflatedGenericClass' type.  
4842         (MonoInflatedGenericClass): New type; the `klass' of a
4843         `MonoGenericClass' is now computed lazyly in
4844         mono_get_inflated_generic_class().      
4845
4846         * class.c (mono_get_inflated_generic_class): New public function.
4847         (mono_class_inflate_generic_method): Removed the unused
4848         `MonoClass *' argument.
4849         (setup_generic_vtable): Don't call mono_get_inflated_method() on
4850         all the methods.
4851         (mono_class_create_generic): Make this static and merge it with
4852         mono_class_create_generic_2(); we're now called automatically from
4853         mono_get_inflated_generic_class().
4854
4855         * loader.c (mono_method_signature): Call
4856         mono_get_inflated_method() here.
4857
4858 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
4859
4860         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
4861         type of fields with RVA.
4862
4863         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
4864         for this pseudo class.
4865         (my_mono_class_from_generic_parameter): Likewise.
4866         (mono_class_init): Allow interfaces to have cctors.
4867
4868 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4869
4870         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
4871         lazily for AOT methods.
4872
4873 2005-07-05  Martin Baulig  <martin@ximian.com>
4874
4875         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
4876         returns FALSE for a successful match, not TRUE.
4877
4878 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4879
4880         * loader.c (mono_method_get_index): Optimize this a bit.
4881
4882 2005-07-04  Martin Baulig  <martin@ximian.com>
4883
4884         * class.c
4885         (class_compute_field_layout): Move the check for generic type
4886         definitions into mono_class_layout_fields().  Fixes #74684.
4887         (mono_class_from_generic_parameter): Correctly compute
4888         `klass->parent'; fixes #75457.
4889
4890         * reflection.c (register_assembly, register_module): Make sure
4891         `domain->rejobject_hash' is already created.
4892
4893 2005-07-02  Martin Baulig  <martin@ximian.com>
4894
4895         * class-internals.h
4896         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
4897         `MonoDynamicGenericClass'.      
4898
4899 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
4900
4901         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
4902         returned by a field getter is null, since null is a valid value.
4903
4904 2005-07-01  Martin Baulig  <martin@ximian.com>
4905
4906         * reflection.c (mono_reflection_generic_class_initialize): Update
4907         the `dgclass->fields [i].parent' to the correct class.
4908         (mono_image_get_fieldref_token): Use the declaring type, not the
4909         reflected type.
4910
4911 2005-07-01  Martin Baulig  <martin@ximian.com>
4912
4913         * loader.c (find_method): Also look in the interfaces; fixes #75429.
4914
4915 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
4916
4917         * threads.c (thread_cleanup): assert that thread != NULL
4918         (wait_for_tids_or_state_change): We were using the wrong variable
4919         when accessing wait->threads. `i' was always out of the bounds of
4920         the array.
4921
4922 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4923
4924         * loader.c: map user32 and kernel32 to libMonoSupportW
4925
4926 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
4927
4928         * appdomain.c (unload_thread_main): Mark this as WINAPI.
4929
4930 2005-06-28  Martin Baulig  <martin@ximian.com>
4931
4932         * loader.c (method_from_methodspec): Fix #75334.
4933
4934 2005-06-28  Martin Baulig  <martin@ximian.com>
4935
4936         Fix #74953 - Arrays now implement the generic IList<T> interface
4937         on the 2.0 platform.
4938
4939         * class-internals.h (MonoDefaults): Added `generic_array_class'.
4940
4941         * reflection.c (mono_class_bind_generic_parameters): New public
4942         function; similar to mono_reflection_bind_generic_parameters(),
4943         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
4944
4945         * domain.c (mono_init_internal): Try to initialize.
4946         `mono_defaults.generic_array_class' here; this'll only succeed if
4947         we're using the 2.0 corlib.
4948
4949         * icall.c
4950         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
4951         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
4952         (mono_lookup_internal_call): Added support for nested classes.
4953
4954         * loader.c
4955         (mono_get_method_from_token): Set `result->signature->pinvoke' if
4956         we're an interncall and have generic arguments.
4957
4958         * class.c
4959         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
4960         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
4961         instance of System.Array.InternalArray<T> for arrays, so they
4962         implement the generic IList<T> interface.
4963
4964 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
4965
4966         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
4967         (chastamar@yahoo.com). Fixes #75374.    
4968
4969 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
4970
4971         * culture-info-table.h: regenerated.
4972
4973 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4974
4975         * icall.c: handle spaces correctly for base64 strings.
4976
4977 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
4978
4979         * *.c: Kill some warnings.
4980
4981 2005-06-23  Duncan Mak  <duncan@novell.com>
4982
4983         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
4984         that this builds on Solaris 10 (x86).
4985
4986 2005-06-23  Martin Baulig  <martin@ximian.com>
4987
4988         * class.c
4989         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
4990         generic type definitions.
4991
4992 2005-06-23  Martin Baulig  <martin@ximian.com>
4993
4994         Fix #75331.
4995
4996         * metadata.c (mono_class_get_overrides): Renamed to
4997         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
4998         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
4999         pass it to mono_get_method_full().
5000
5001 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5002
5003         * reflection.c (mono_reflection_create_runtime_class): take the
5004         mono_domain_lock in this method. Prevents deadlocks
5005
5006 2005-06-22  Martin Baulig  <martin@ximian.com>
5007
5008         * loader.c (method_from_methodspec): Fix #75330.
5009
5010 2005-06-22  Martin Baulig  <martin@ximian.com>
5011
5012         * reflection.c (type_get_qualified_name): Use
5013         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5014         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5015         argument; use it if we don't have an assembly name.
5016
5017 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5018
5019         * object.c: In mono_message_init, set "copy out" flag for in
5020         parameters with the [Out] flag.
5021
5022 2005-06-21  Martin Baulig  <martin@ximian.com>
5023
5024         * class.c
5025         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5026         and MONO_TYPE_PTR.
5027
5028 2005-06-21  Martin Baulig  <martin@ximian.com>
5029
5030         * class.c (mono_class_init): Don't initialize `class->fields' for
5031         generic instances since they're initialized again in
5032         compute_field_layout(). 
5033         (compute_field_layout): Set the field's `generic_info' here; fix
5034         #75320. 
5035
5036 2005-06-21  Martin Baulig  <martin@ximian.com>
5037
5038         * class-internals.h
5039         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5040
5041         * metadata.c (mono_metadata_generic_method_equal): Also
5042         distinguish the `generic_class'; fixes #75334.
5043
5044 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5045
5046         * domain.c:
5047         * appdomain.c:
5048         * domain-internals.h:
5049         * reflection.c: 'domain_assemblies' field is now protected by its own
5050         lock. Don't call into managed code to run the AssemblyLoad event if we
5051         now there are no registered delegates for it.
5052
5053 2005-06-20  Martin Baulig  <martin@ximian.com>
5054
5055         * class.c (mono_class_is_assignable_from): Use a custom version of
5056         mono_class_has_parent() to make things work for generic instances;
5057         fix #75300.
5058
5059 2005-06-20  Martin Baulig  <martin@ximian.com>
5060
5061         * loader.c (method_from_methodspec): Apply a patch from
5062         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5063
5064 2005-06-20  Martin Baulig  <martin@ximian.com>
5065
5066         * class.c (mono_class_init): Reverted Zoltan's last change; it
5067         breaks generics.
5068
5069 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5070
5071         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5072
5073 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5074
5075         * socket-io.c: fix the index in the socket array for writable/error
5076         sockets. Fixes bug #75306.
5077
5078 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5079
5080         * class.c (mono_class_init): Allow interfaces to have static ctors.
5081
5082 2005-06-17  Martin Baulig  <martin@ximian.com>
5083
5084         * loader.c (method_from_methodspec): Use `context->container' when
5085         parsing the `gmethod->inst'.
5086
5087 2005-06-17  Martin Baulig  <martin@ximian.com>
5088
5089         * class.c (mono_type_get_name_recurse): Don't add the assembly
5090         name for type arguments.
5091
5092 2005-06-15  Martin Baulig  <martin@ximian.com>
5093
5094         * reflection.c (mono_image_get_inflated_method_token): Encode
5095         correct klass; fixes #75260.
5096
5097 2005-06-13 Michal Moskal <malekith@nemerle.org>
5098
5099         * icall.c: Make GetCorrespondingMethod/Constructor take
5100         MonoReflectionMethod method not MonoMethod. Removed
5101         MonoType.GetCorrespondingField, and make
5102         MonoGenericType.GetCorrespondingField take name not
5103         MonoClassField.
5104
5105 2005-06-13  Michal Moskal <malekith@nemerle.org>
5106
5107         * reflection.c (field_encode_signature, encode_locals):
5108          Make sizes of buffers for types larger (for big generic types).
5109          (create_generic_typespec,
5110          mono_reflection_sighelper_get_signature_local,
5111          mono_reflection_sighelper_get_signature_field):
5112          Add asserts for too small buffers.
5113
5114 2005-06-15  Martin Baulig  <martin@ximian.com>
5115
5116         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5117         if our parent is not a dynamic type.
5118
5119 2005-06-15  Martin Baulig  <martin@ximian.com>
5120
5121         * class-internals.h (MonoTypeNameFormat): New enum.
5122
5123         * class.c
5124         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5125         (mono_type_get_full_name): Removed.
5126         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5127         argument instead of the boolean's.
5128
5129         * icall.c (ves_icall_System_MonoType_getFullName):
5130         Added `gboolean assembly_qualified'.    
5131
5132         * reflection.h
5133         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5134
5135         * reflection.c (mono_reflection_parse_type): Parse the new type
5136         name format.
5137
5138 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5139
5140         * icall.c: no need to convert from utf16 to utf8 and then back again
5141         after the call to GetLogicalDrives.
5142
5143 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5144
5145         * icall.c: frombase64. Fix problems exposed by new tests.
5146
5147 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5148
5149         * icall.c: added internal calls for converting char [] and strings in
5150         base64 into byte [].
5151
5152 2005-06-10  Martin Baulig  <martin@ximian.com>
5153
5154         * class.c (mono_class_create_generic_2): Read the nested classes
5155         from the metadata rather than from `gklass->nested_classes' since
5156         `gklass' might not be initialized yet.
5157
5158 2005-06-09  Duncan Mak  <duncan@novell.com>
5159
5160         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5161         all public headers. Fixes #74919.
5162
5163 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5164
5165         * domain.c: The key for proxy_vtable_hash is now a pointer
5166         array. Added new GHashFunc and GCompareFunc functions for this.
5167
5168         * class.h: The list of interfaces in MonoRemoteClass is known in
5169         advance and can't grow (we create a new MonoRemoteClass if needed),
5170         so now the interface array can be allocated together with
5171         MonoRemoteClass.
5172         
5173         * object.c: Added a new method create_remote_class_key.
5174         Fixed mono_remote_class so it does not depend on
5175         mono_upgrade_remote_class.
5176         Removed extend_interface_array.
5177         Added new method clone_remote_class(), which makes a copy of a remote
5178         class and adds a new interface or class to it.
5179         mono_upgrade_remote_class() now creates a new remote class (or gets
5180         it from the cache) if an vtable upgrade is needed. In this way
5181         we make sure that other objects sharing the same remote class
5182         don't get the new vtable with unwanted interfaces.
5183         
5184         * object-internals.h:
5185         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5186         
5187         * marshal.c: Track changes in mono_upgrade_remote_class().
5188
5189 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5190         * icall.c: Add runtime methods for obtaining members of inflated
5191         class, which were created from supplied non-inflated members. It
5192         is used in internal Get{Method,Constructor,Field} methods in
5193         System.Type
5194
5195 2005-06-09  Martin Baulig  <martin@ximian.com>
5196
5197         * reflection.c
5198         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5199
5200 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5201         * reflection.c (mono_image_basic_init): Define
5202         Version in MonoDynamicAssembly. 
5203         
5204 2005-06-08  Martin Baulig  <martin@ximian.com>
5205
5206         Fix #75136.
5207
5208         * loader.c
5209         (mono_method_signature_full): New public method; takes a
5210         `MonoGenericContext *'.
5211         (find_method): Use mono_method_signature_full() and pass the
5212         klass'es context to it.
5213
5214         * class.c (mono_class_is_inflated_method): Use
5215         mono_method_signature_full() and pass the context to it.
5216
5217 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5218
5219         * object.c: add proper locking in mono_remote_class_vtable(),
5220         fixes possible memory corruption.
5221
5222 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5223
5224         * marshal.c (mono_remoting_marshal_init): set
5225         initialized after initialization.
5226
5227 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5228
5229         * locales.c : hush.
5230
5231 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5232
5233         * object.c (extend_interface_array): fix really silly
5234         memory corrupting / comparison bug.
5235
5236 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5237
5238         * reflection.c: Functions added to support the creation
5239         of CustomAttributeData, which includes Attribute data
5240         used by ReflectionOnly methods.
5241
5242         * reflection.h:  mono_reflection_get_custom_attrs_data and
5243          mono_custom_attrs_data_construct added (functions exposed).
5244
5245          * icall.c: Added mono_reflection_get_custom_attrs_data
5246          as icall.
5247         
5248 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5249
5250         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5251         lupus's request.
5252
5253 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5254
5255         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5256
5257         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5258         dynamic DllImportAttribute.
5259
5260         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5261         dynamic DllImportAttribute.
5262
5263         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5264         Fixes #75162.
5265
5266 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5267
5268         * threads.c: avoid segfault when an unstarted thread is aborted.
5269
5270 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5271
5272         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5273         Returns the name and version of the runtime for reporting.
5274
5275 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5276
5277         * appdomain.c: bump corlib version.
5278         * object-internals.h: new field in MonoReflectionAssembly.
5279
5280 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5281
5282         * object-internals.h: Carlos forgot to add this field.
5283
5284 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5285
5286         * icall.c: Added create_version to create instances
5287         of Version of MonoReflectionAssemblyName. This change helps
5288         the AssemblyName tests to keep running fine.
5289         
5290 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5291   
5292         * object.c (mono_method_return_message_restore): A somehow less
5293         intrusive fix for #75138.
5294
5295 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5296
5297         * object.c (mono_method_return_message_restore): Fix computation
5298         of expected number of out args.
5299
5300 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5301
5302         * reflection.c (mono_image_get_method_info): Fix the case when the
5303         charset is empty.
5304
5305 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5306
5307         * object.c: Added missing null check in
5308           mono_method_return_message_restore.
5309
5310 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5311
5312         * reflection.c (mono_image_get_method_info): Handle the case when
5313         dllentry is empty.
5314
5315 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5316
5317         * object.c: When creating the vtable for a proxy, take into account
5318         all inherited interfaces, not only the ones registered in
5319         iclass->interfaces. This fixs bug #74996.
5320         Also, in mono_method_return_message_restore, verify that the array
5321         of out args has the expected lengh.
5322
5323 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5324
5325         * socket-io.c: update the timeout in Poll when the call is interrupte.
5326
5327 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5328
5329         * socket-io.c: support abort/suspend in Select_internal after last
5330         change.
5331
5332 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5333
5334         * threadpool.c: remove warning.
5335
5336 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5337
5338         * icall.c:
5339         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5340         removing the 1024 limit from select(). Runtime part of the fix for
5341         bug #71203.
5342
5343 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5344
5345         * socket-io.c: when resolving the addresses for the same
5346         host returned by gethostname(), get the local IPs from the interface
5347         list. Loopback addresses are discarded if the are interfaces up with
5348         non-loopback ones. Fixes bug #63265.
5349
5350 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5351
5352         * appdomain.c, verify.c, object-internals.h, reflection.c:
5353         bumped corlib number to 36, and added new extra_flags field
5354         to ReflectionMethodBuilder and friends.  Fixes #75060.
5355
5356 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5357
5358         * gc.c: register a new weak link only if the object is non-null
5359         (fixes bug#75047).
5360
5361 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5362
5363         * culture-info.h : short time pattern too.
5364
5365 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5366
5367         * culture-info.h : expand long time pattern string length.
5368
5369 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5370
5371         * culture-info-table.h : update (more French date format; #72788).
5372
5373 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5374
5375         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5376         the method is static. Fixes #75029.
5377
5378 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5379
5380         * reflection.c: Update the table_idx field of method builders after
5381         saving the module, since it can change. This is a workaround for
5382         bug #74914. 
5383
5384 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5385
5386         * culture-info-table.h : update (additional French date format).
5387
5388 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5389
5390         * icall.c (ves_icall_type_Equals): Revert last change.
5391         
5392         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5393
5394         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5395
5396 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5397
5398         * class-internals.h: Added executioncontext_class field to 
5399         MonoDefaults structure.
5400         * domain.c: Cache System.Threading.ExecutionContext class in 
5401         mono_defaults.
5402         * object.c: Capture the ExecutionContext for asynchroneous calls in
5403          mono_async_result_new.
5404         * object-internals.h: Added execution_context and original_context 
5405         fields to MonoAsyncResult. Added execution_context to MonoThread.
5406         * security-manager.c|.h: Added mono_get_context_capture_method to 
5407         return the capture method (if required by the security manager or by
5408         the framework version used).
5409         * threadpool.c: Apply capture (if present) ExecutionContext in 
5410         mono_async_invoke and revert to original context after it completes.
5411
5412 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5413
5414         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5415
5416 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5417
5418         * culture-info-table.h : zh-CHT related workaround.
5419
5420 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5421
5422         * marshal.c (emit_marshal_custom): Add some error checking and call the
5423         methods in the ICustomMarshaler interface. Fixes #74875.
5424         
5425         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5426         native->managed wrappers.
5427
5428 2005-05-12  Martin Baulig  <martin@ximian.com>
5429
5430         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5431         here and use the loader lock.
5432
5433         * mono-debug.c: Properly lock when the debugger is not attached.
5434         (mono_debug_init): Release the initial lock if we're not running
5435         in the debugger.
5436
5437 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5438
5439         * marshal.c (emit_marshal_custom): Pass through NULL values without
5440         calling the custom marshalling routines.
5441
5442         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5443         conversion in structures. Fixes #74882.
5444
5445 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5446
5447         * culture-info-table.h : zh-* cultures were missing.
5448
5449 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5450
5451         * threads.c: Added a new event background_change_event which is signaled
5452         when a thread changes its background mode.
5453         Moved here several checks previously done in managed code. The checks
5454         require the thread lock, and using the thread lock in managed code
5455         can result in deadlocks.
5456         Merged Start_internal and Thread_internal into a single method. Now 
5457         Thread_internal does all work of creating and starting a thread.
5458         Added icalls for setting and getting the state of the object. Moved from
5459         managed code to avoid locking there.
5460         Added wait_for_tids_or_state_change() which is called instad of
5461         wait_for_tids when waiting for non-backround threads to end. This method
5462         will return if one of the threads ends or the background_change_event
5463         is signaled.
5464         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5465         the background mode. This method signals the background_change_event
5466         event.
5467         * icall.c:
5468         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5469         removed Start_internal.
5470         
5471 2005-05-11  Martin Baulig  <martin@ximian.com>
5472
5473         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5474         to order of some fields to get proper alignment on 64-bit machines.
5475
5476 2005-05-11  Martin Baulig  <martin@ximian.com>
5477
5478         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5479         changes as they're broken and completely fuck up the debugger.
5480
5481         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5482
5483 2005-05-10  Martin Baulig  <martin@ximian.com>
5484
5485         * reflection.c (mono_reflection_generic_class_initialize): Don't
5486         call mono_class_setup_parent() here.
5487
5488 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5489
5490         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5491         send/receive timeout use an integer in milliseconds. We were using a
5492         struct timeval.
5493
5494 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5495
5496         * locales.c:
5497         (internal_get_cultures): reserve the first slot of the array for the
5498         InvariantCulture, which will be filled in managed code.
5499
5500 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5501
5502         * reflection.c (mono_image_fill_module_table): Initialize the
5503         GENERATION field as well.
5504
5505 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5506
5507         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5508         Monitor.Enter on the object.
5509
5510 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5511
5512         * threads.c: Enable the wait for running threads when exiting.
5513         * icall.c: Suspend all threads before exiting.
5514
5515 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5516
5517         * assembly.c (mono_assembly_load_reference): Fix warning.
5518
5519 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5520
5521         * threadpool.c: changed the default number of threads per cpu. From now
5522         on, the default will be 20 + (5 * number of cpus) instead of 50.
5523
5524 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5525
5526         * loader.c (mono_method_get_signature_full): Add locking here.
5527
5528 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5529
5530         * appdomain.c: Moved methods for parsing and freeing assembly
5531         names to assembly.c.
5532         * assembly.c, domain-internals.h: Created public methods for parsing
5533         assembly names. Fixed mono_assembly_load_with_partial_name:
5534         it now finds the best match, taking into account the version,
5535         token and culture specified in the partial name. Also return
5536         the latest version if no version information is specified.
5537
5538 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5539
5540         * threadpool.c: replace check for SocketAsyncCall class.
5541
5542 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5543
5544         * threadpool-internals.h:
5545         * Makefile.am: added threadpool-internals.h
5546
5547         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5548         that happen in threadpool threads (tested on MS).
5549         (mono_thread_pool_remove_socket): new function that dispatch any pending
5550         AIO call on a socket that is closing. By now only epoll really needs it,
5551         as select/poll wake up when the socket closes.
5552
5553
5554         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5555
5556 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5557
5558         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5559
5560 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5561
5562         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5563
5564 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5565
5566         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5567         has an abort request, convert it into a suspend request.
5568
5569 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5570
5571         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5572         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5573         is not supported yet.
5574
5575 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5576
5577         * image.c: register assemblies loaded from data (bundles) in the loaded
5578         assemblies hash. Fixes bug #74772.
5579
5580 2005-04-29  Martin Baulig  <martin@ximian.com>
5581
5582         * class.c (mono_type_get_name_recurse): Update to the new naming
5583         schema from the latest .NET 2.x beta2.
5584         (mono_class_setup_vtable_general): If we're a generic instance,
5585         copy the vtable from our generic type definition and inflate all
5586         the methods in it.
5587
5588         * loader.c (find_method): Update to the new naming schema from the
5589         latest .NET 2.x beta2.
5590
5591 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5592
5593         * class.c (mono_class_init): Add a mono_loader_unlock to the
5594         #74734 fix.
5595
5596 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5597
5598         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5599         suspend_all_other_threads () call for the time being, since it can hang.
5600
5601         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5602         the background threads to exit, since it can also hang.
5603
5604         * class.c (mono_class_init): Applied patch from Ankit Jain 
5605         (radical@gmail.com). Avoid pending init errors when a field refers
5606         to a nested class using a typeref. Fixes #74734.
5607
5608         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5609         this for dynamic modules.
5610
5611 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5612
5613         * threads.c: don't wait for threads that are in the process of aborting
5614         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5615         and waiting for background threads to finish. This makes xsp and
5616         mod-mono-server exit without random length delays and/or hangs.
5617
5618 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5619
5620         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5621
5622 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5623
5624         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5625         dynamic types to prevent infinite loops. Fixes #74727.
5626
5627         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5628         ..._is_assignable_to.
5629
5630 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5631
5632         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5633
5634 2005-04-25  Martin Baulig  <martin@ximian.com>
5635
5636         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5637
5638         * domain.c
5639         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5640
5641         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5642
5643         * reflection.c (build_compressed_metadata): Set metadata header
5644         version to 2.0.
5645
5646 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5647
5648         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5649         number into an integral and a decimal part. Fixes #70473.
5650
5651         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5652
5653 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5654
5655         * culture-info-table.h : reflected the latest locale-builder output.
5656
5657 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5658
5659         * threadpool.c: check for SuspendRequested too when deciding if
5660         mono_thread_interruption_checkpoint should be called.
5661
5662 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5663
5664         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5665         * threads.c: remove interruption_mutex and use Interlocked instead. When
5666         suspending all the threads, wait for all the suspended events at once.
5667         If we're shutting down and get an APC that is going to be queued,
5668         call mono_thread_execute_interruption immediately, as the thread might
5669         be sleeping on a pthread condition or mutex.
5670
5671         * icall.c: call mono_runtime_set_shutting_down before suspending the
5672         threads.
5673
5674         Fixes bug #74693. And now xsp is happier when exiting.
5675
5676 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5677
5678         * loader.c (mono_stack_walk): Fix #74690.
5679
5680 2005-04-22  Martin Baulig  <martin@ximian.com>
5681
5682         * mono-debug.h (MonoDebugMethodJitInfo): Added
5683         `MonoDebugMethodJitInfo *jit'.
5684
5685         * mono-debug.c (mono_debug_read_method): Cache the
5686         MonoDebugMethodJitInfo in `address->jit'.
5687         (mono_debug_free_method_jit_info): New public method.
5688
5689 2005-04-22  Martin Baulig  <martin@ximian.com>
5690
5691         * class.c (mono_class_is_assignable_from): Disallow
5692         type parameter -> interface.
5693
5694 2005-04-21  Dick Porter  <dick@ximian.com>
5695
5696         * threads.c (mono_thread_create): Turn an assertion into an error.
5697
5698 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5699
5700         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5701         
5702         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5703         Fix some gcc 4.0 warnings.
5704
5705 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5706
5707         * file-io.c: fix alt dir separator char on unix systems
5708         and cleanup (fixes bug #71214).
5709
5710 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5711
5712         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5713         a call to a remote domain, since the method may be an
5714         interface method in the client domain. This fixes bug #74192.
5715
5716 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5717
5718         * threadpool.c: recv/send are now performed before going back to managed
5719         code to save one transition.
5720
5721 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5722
5723         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5724
5725         * metadata/threadpool.c: removed hack to workaround the bug above.
5726
5727         Fixes bug #74618.
5728
5729 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5730
5731         * reflection.c reflection.h: Fix handling of parameter defaults in
5732         dynamic methods. Also fixes handling of parameter attributes.
5733         Fixes #74609.
5734
5735         * mono-debug.c (mono_debug_close_image): Fix warning.
5736
5737 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5738
5739         * socket-io.h: replaced old unused field with new 'blocking'.
5740         * threadpool.c: restore socket blocking state on windows(tm).
5741
5742 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5743
5744         * icall.c: don't return the codebase in the AssemblyName[] returned by
5745         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5746         * object-internals.h: Removed FIXME (fields were presents) and fixed
5747         versioncompat declaration.
5748
5749 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5750
5751         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
5752         not closed, so don't cleanup when it happens.
5753
5754 2005-04-13  Chris Toshok  <toshok@ximian.com>
5755
5756         * mono-debug-debugger.h: change prototype for
5757         mono_debugger_lookup_type.
5758
5759         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
5760         this function, although it should probably be named
5761         mono_debugger_init_type.
5762
5763 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5764
5765         * threadpool.c: fix non-AIO case.
5766
5767 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
5768
5769         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
5770         the built-in profiler to measure just JIT compilation times.
5771
5772 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5773
5774         * threadpool.c: the epollfd might be closed by another thread at
5775         any time, so ignore EBADF at treat it as a "we're closing" sign.
5776
5777 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5778
5779         * threadpool.c: release the semaphores with a count equals to the number
5780         of working threads in both IO and regular pools. Fixed typo that messed
5781         up the count of IO pool threads. Don't initialize the pipe handles if
5782         we're using epoll.
5783
5784 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5785
5786         * threadpool.c: some systems don't like a NULL when deleting the socket
5787         from epoll.
5788
5789 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5790
5791         * threadpool.c: fix semaphore allocation.
5792
5793 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5794
5795         * threadpool.c: added epoll() based implementation for asynchronous IO
5796         that is used instead of the default poll() when available.
5797         It can be disabled by setting MONO_DISABLE_AIO.
5798
5799 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5800
5801         * threadpool.c: windows needs 'closesocket' and instead of returning
5802         0 when the stream is closed while in select, it returns -1. Fixes bug
5803         #74573.
5804
5805 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
5806
5807         * class.c (class_compute_field_layout): Fix the regression caused by
5808         the previous try.
5809
5810 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5811
5812         * threadpool.c: separate pool for socket async. IO.
5813         * threadpool.h: mono_max_worker_threads is not a global any more.
5814
5815 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
5816
5817         * class.c (class_compute_field_layout): Fix #74549.
5818
5819 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5820
5821         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
5822         use 2 connected sockets instead.
5823
5824 2005-04-08  Miguel de Icaza  <miguel@novell.com>
5825
5826         * mono-config.c: Add new entry point for mkbundle
5827         mono_config_parse_memory. 
5828
5829 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5830
5831         * threadpool.c: removed another unused function.
5832
5833 2005-04-08  Ankit Jain  <radical@corewars.org>
5834
5835         * reflection.c (get_default_param_value_blobs): Add 'types'
5836         parameter to get the types encoded in the constant table.
5837         (mono_param_get_objects): Use the type from the constant table,
5838         not the type of the parameter, when creating default values.
5839         Handle null default values correctly.
5840
5841 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5842
5843         * file-io.c:
5844         * file-io.h:
5845         * threadpool.c:
5846         * threadpool.h:
5847         * icall.c:
5848         * socket-io.c: removed dead code for async IO.
5849
5850 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5851
5852         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
5853
5854         * threadpool.c: intercept socket async. calls and pass them to a thread
5855         that is polling and dispatching the job items to the threadpool as
5856         socket become ready. Fixes bugs #71217, #71933.
5857
5858         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
5859         between char and short/ushort arrays.
5860
5861         * socket-io.c: remove dead code.
5862
5863 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5864
5865         * locales.c,
5866           icall.c : removed InternalToUpper_Comp() and
5867           InternalToLower_Comp().
5868
5869 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5870
5871         * char-conversions.h : The tables were incorrectly generated. Should
5872           be generated against invariant culture.
5873
5874 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
5875
5876         * object.c (mono_runtime_invoke_array): Fix return value when 
5877         passing pre-created valuetype objects to ctors.
5878
5879         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
5880         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
5881         Fixes #74338.
5882
5883 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
5884
5885         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
5886         only used with --security and hides the wrong corlib version error.
5887
5888 2005-03-30  Joshua Tauberer  <tauberer@for.net>
5889
5890         * class.c: Changed mono_class_name_from_token so that types
5891         outside of a namespace don't have an initial period.  Improved
5892         the g_warning message used in _mono_class_get when loading
5893         fails.
5894         * assembly.c: In mono_assembly_load_reference, when an assembly
5895         can't be found, "No such file or directory" is misleading and
5896         unhelpful because a few paths were checked for the presence of
5897         the assembly.  When that happens (ENOENT), display a nicer
5898         message indicating the directories that were searched.  In all
5899         cases, the warning is made easier to read for non-hackers.
5900
5901 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
5902
5903         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
5904         project/solution.
5905         * appdomain.h|domain.c: Removed inline from functions.
5906         * appdomain.c: Reduced warnings when compiling on windows.
5907         * icall.c: Fixed output_debug declaration to gunichar2*.
5908         * mono-config.c: Reduced warnings when compiling on windows.
5909         * rand.c: Added missing "windows.h". Added missing return value.
5910         * rawbuffer.c: Added missing winsock2.h for windows.
5911         * sysmath.h: Added mono-compiler.h header to allow/ease 
5912         compilation with non-GCC compilers.
5913         * threads.c: Fixed declarations to compile with VS.NET C compiler.
5914         Removed cast warnings.
5915
5916         Adapted from the work of J Lothian (for VC6).
5917
5918 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
5919
5920         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
5921         from default_path.
5922
5923 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
5924
5925         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
5926         the 2.0 profile.
5927
5928 2005-03-27  Raja R Harinath  <harinath@gmail.com>
5929
5930         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
5931         has to be in $(exec_prefix).  $(prefix) is for arch-independent
5932         stuff, and it would probably use $(prefix)/share rather than
5933         $(prefix)/lib.
5934
5935 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5936
5937         * console-io.c: added 2 includes that might be missing.
5938
5939 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
5940
5941         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
5942         profile.
5943
5944         * reflection.c (create_custom_attr): Allocate the params array using
5945         alloca so it gets GC tracking.
5946
5947 2005-03-23  Chris Toshok  <toshok@ximian.com>
5948
5949         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
5950         out some spew.
5951
5952 2005-03-24  Raja R Harinath  <rharinath@novell.com>
5953
5954         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
5955         changes to pick up any changes in prefix, etc.
5956
5957 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5958
5959         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
5960         
5961         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
5962         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
5963
5964 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5965
5966         * class-internals.h object-internals.h class.c reflection.c: Extend the
5967         mono_lookup_dynamic_token () function to return the class of the
5968         token as well. 
5969
5970         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
5971         well. Fixes #73848.
5972
5973 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
5974
5975         * security-manager.c: Skip inheritance checks for intra-corlib
5976         class inheritance and method overrides. This skips a lot of checks
5977         and (anyway) permissions cannot work until corlib is loaded.
5978
5979 2005-03-23  Martin Baulig  <martin@ximian.com>
5980
5981         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
5982         MONO_TYPE_GENERICINST.  
5983
5984 2005-03-23  Martin Baulig  <martin@ximian.com>
5985
5986         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
5987
5988 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5989
5990         * class.c: added locking comments to some functions.
5991         Cache the interface offsets arrays (saves about 20 KB
5992         of runtime memory in a typical app).
5993         Reduce the time overhead in mono_class_setup_supertypes ().
5994
5995 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
5996
5997         * icall.c: speedup and fix leaks in GetMethodsByName and
5998         GetPropertiesByName.
5999
6000 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6001
6002         * reflection.c: some locking fixes.
6003
6004 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6005
6006         * metadata.c: added missing break in case statement.
6007
6008 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6009
6010         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6011         typedbyref return values. Fixes #73941.
6012
6013 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6014
6015         * security-manager.c|h: Added demandunmanaged method and 
6016         suppressunmanagedcodesecurity class to MonoSecurityManager.
6017         Renamed aptc class to allowpartiallytrustedcallers.
6018
6019 2005-03-17  Martin Baulig  <martin@ximian.com>
6020
6021         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6022
6023 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6024
6025         * file-io.c: disabled file async. IO using aio_*. It uses the
6026         threadpool now. Workaround for bug #73718.
6027
6028 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6029
6030         * assembly.h, mono-config.c: added code to deal with bundled configs
6031         for bundled assemblies.
6032
6033 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6034
6035         * *.c, private.h: cleanup, removing old private.h header file.
6036
6037 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6038
6039         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6040         and throw_on_unmappable_char attributes.
6041
6042 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6043
6044         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6045         _ProcessName_internal.
6046
6047 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6048
6049         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6050         #73631.
6051
6052         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6053         are no longer used.
6054
6055 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6056
6057         * object.c (compute_class_bitmap): Add support for generics. Fixes
6058         #73527.
6059
6060 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6061
6062         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6063
6064 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6065
6066         * filewatcher.c: commented out the code for windows watcher, as we don't
6067         use it (we use the managed implementation instead).
6068
6069 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6070
6071         * object-internals.h (MonoThread): Remove 'unused1' field.
6072
6073         * appdomain.c: Bump corlib version.
6074
6075         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6076
6077         * reflection.c (mono_reflection_create_runtime_class): Remove the
6078         AssemblyBuilder.Save optimization since it causes too many problems.
6079
6080 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6081
6082         * exception.c|h: Added mono_get_exception_reflection_type_load to
6083         create a ReflectionTypeLoadException object.
6084         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6085         to return NULL is a InheritanceDemand fails during reflection. Updated
6086         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6087         ReflectionTypeLoadException if an InheritanceDemand fails during 
6088         reflection. Added icall mapping for GetLinkDemandSecurity.
6089         * security-manager.c|h: Added ves_icall_System_Security_
6090         SecurityManager_GetLinkDemandSecurity internal call to return the
6091         class and methods permissions set for a LinkDemand. Removed unused
6092         fields in MonoSecurityManager.
6093
6094 2005-03-10  Martin Baulig  <martin@ximian.com>
6095
6096         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6097         it's a generic instance.
6098
6099 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6100
6101         * reflection.c (mono_get_object_from_blob): Applied patch from
6102         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6103
6104         * class.c (mono_class_is_assignable_from): Another try at fixing 
6105         #73469 without breaking anything.
6106
6107 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * class.c: (mono_class_is_assignable_from): Revert the last changes
6110         since they don't work with generics.
6111         
6112         * class.c (mono_class_is_assignable_from): Fix build bustage.
6113
6114         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6115         the managed IsAssignableFrom method. Fixes #73469.
6116
6117         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6118         function.
6119
6120 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6121
6122         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6123         memory when the remoting callback does not sets the out arguments.
6124         Fixes #73007.
6125
6126         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6127         by mistake.
6128
6129         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6130
6131         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6132
6133         * appdomain.c: Bump corlib version.
6134
6135 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6136
6137         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6138         function.
6139
6140         * threads.c (mono_thread_attach): Detect threads which are not started
6141         by the GC pthread wrappers.
6142
6143 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6144
6145         * icall.c: Added new icall for RNG.
6146         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6147         single handle on Linux to access /dev/urandom and fix #73183.
6148
6149 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6150
6151         * object.c: setting the new vtable in a transparent proxy object must
6152         not change the GC descriptor.
6153
6154 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6155
6156         * object.c: fixed compilation without GCJ support.
6157         * reflection.c: for runtime-created types ensure klass->has_references
6158         is correct (bug #73215).
6159
6160 2005-03-02  Martin Baulig  <martin@ximian.com>
6161
6162         * class.c (mono_class_is_assignable_from): Make this work if
6163         `oklass' is a generic instance; fixes #72831.
6164
6165 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6166
6167         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6168         with hasthis set.
6169         
6170         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6171
6172         * marshal.c: Reorganize native->managed marshalling code to also use
6173         the emit_marshal_... functions.
6174
6175 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6176
6177         * object.c: typed allocs have issues with bitmap sizes > 30,
6178         so check for max_set >= 30.
6179
6180 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6181
6182         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6183         managed code. Fixes #73012.
6184
6185         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6186
6187         * metadata.c reflection.c: Load/Emit elem_mult as well.
6188         
6189         * metadata.h (MonoMarshalSpec): Add comment.
6190
6191         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6192
6193         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6194         num_elem to -1 if not given.
6195
6196         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6197
6198         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6199         given values.
6200
6201 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6202
6203         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6204
6205 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6206
6207         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6208
6209         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6210
6211 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6212
6213         * object.c: generalized the reference bitmap creation
6214         and added hooks for the new GC.
6215         * class-internals.c: removed the gc_bitmap field from MonoClass.
6216
6217 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6218
6219         * domain.c: help the compiler to produce better code
6220         in mono_jit_info_table_find ().
6221
6222 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6223
6224         * object.c: make all allocations look typed.
6225
6226 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6227
6228         * socket-io.c: load Mono.Posix if it's not loaded already
6229         (fixes bug#73033).
6230
6231 2005-02-24  Martin Baulig  <martin@ximian.com>
6232
6233         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6234         * reflection.c (dup_type): Likewise.
6235
6236 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6237
6238         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6239         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6240
6241 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6242
6243         * domain.c, threads.c, object-internals.h: make the critical thread
6244         local vars use the fast access mode (even when we're compiled in
6245         a lib). Provide accessors to be used by the jit during codegen.
6246
6247 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6248
6249         * appdomain.c: Changed hook functios behavior to include
6250         support for the reflection only assemblies. Some icalls were changed
6251         to support the mentioned assemblies too. Signatures of static methods
6252         try_assembly_resolve and real_load now have an additional parameter:
6253         refonly.
6254
6255         * assembly.c: General changes to mono_assembly_ methods to support
6256         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6257         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6258         suffix, to support an additional gbool parameter to specify whether
6259         the assembli is reflection only or not. Created some new hook functions 
6260         to add support for reflection only assemblies. Signatures of static 
6261         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6262         have now an additional parameter: refonly.
6263
6264         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6265         indicating whether the assembly is reflection only or not.
6266
6267         * exception.c: Add mono_get_exception_invalid_operation.
6268
6269         * icall.c: Throw an InvalidOperationException when trying to invoke
6270         a property/method/event, or trying to set/get the value of a field.
6271         Also add an icall to retrieve the ref_only flag to the
6272         MonoReflectionAssembly.
6273
6274 2005-02-23  Chris Toshok  <toshok@ximian.com>
6275
6276         Part of fix for #72827.
6277         * mono-debug.c (mono_debug_add_method): add lexical block data to
6278         the info we write.  Kind of a hack at the moment - we copy the
6279         lexical block info from the MonoDebugMethodInfo to the
6280         MonoDebugMethodJitInfo here, before writing it.
6281         (mono_debug_read_method): read the lexical block info.
6282
6283         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6284
6285         * debug-mono-symfile.h: add lexical block support.
6286
6287         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6288         support.
6289
6290 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6291
6292         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6293
6294         * object.c (mono_runtime_free_method): Call mono_free_method () and
6295         put the TODOs there.
6296
6297         * loader.c (mono_free_method): Free up most memory allocated for 
6298         dynamic methods.
6299
6300 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6301
6302         * reflection.c: properly flag a Type argument to a
6303         named custom attr value (bug #72248).
6304
6305 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6306
6307         * reflection.c: reduce code duplication in named custom
6308         attribute encoding.
6309
6310 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6311
6312         * reflection.c: properly encode custom attrs of type object
6313         (bug #72649).
6314
6315 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6316
6317         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6318
6319 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6320
6321         * socket-io.c: load System.dll if it's not loaded already
6322         (bug #72850 and #70477).
6323
6324 2005-02-21  Martin Baulig  <martin@ximian.com>
6325
6326         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6327         generic instances.
6328
6329 2005-02-21  Martin Baulig  <martin@ximian.com>
6330
6331         * reflection.c (mono_image_build_metadata): We also need to
6332         "fixup" the MethodImpl table after we computed the final method
6333         indices.  Call fixup_methodimpl() to do that.
6334         (fixup_methodimpl): New private method.
6335
6336 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6337
6338         * assembly.c: special case mscorlib.dll (bug#72536),
6339         patch from Carlos Alberto Cortez.
6340
6341 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6342
6343         * threads-types.h threads.c: Fix build bustage.
6344
6345         * threads.c: Use a union for long<->double conversions.
6346
6347         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6348         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6349
6350         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6351         containing the checkpoint call with NOT_TAKEN.
6352         
6353         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6354         checkpoint before pushing the arguments, so they won't have to be
6355         spilled to stack.
6356
6357 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6358
6359         * domain.c, assembly.c, domain-internals.h: make some data
6360         const and relocation-free.
6361
6362 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6363
6364         * object.c, appdomain.c, class-internals.h: introduce the
6365         MonoClassRuntimeInfo structure to hold the info needed to
6366         use a class at runtime. Made mono_class_vtable() lock-free
6367         for all the appdomains.
6368
6369 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6370
6371         * metadata-internals.h, image.c: introduce a per-image mempool to
6372         be used for memory that has the same lifetime as the image.
6373
6374 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6375
6376         * domain.c: In mono_init_internal(), instead of selecting the first
6377         runtime version supported by an executable, get a list of all
6378         supported versions and select the one for which an mscorlib exists
6379         (since even if the runtime supports a given version, it doesn't mean
6380         that the framework for that version is installed).
6381         Modified get_runtimes_from_exe to support this behavior.
6382         In supported_runtimes, added information about additional system
6383         assembly versions.
6384         
6385         * assembly.c: Added support for more than one system assembly version
6386         per runtime version. Updated the assembly list.
6387         In mono_assembly_remap_version, removed the initial version check,
6388         since we don't know to which version we need to compare until we
6389         get the version set on which the assembly is based.
6390         Moved the code for loading corlib into the new method
6391         mono_assembly_load_corlib(), so it can be used by the initialization
6392         code.
6393         
6394         * domain-internals.h: Updated data structures and added declaration
6395         for mono_assembly_load_corlib.
6396
6397 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6398
6399         * reflection.c (resolve_object): Fix the creation of the signature in 
6400         the SignatureHelper case.
6401
6402         * assembly.c (mono_assembly_remap_version): Fix binary search.
6403         
6404 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6405  
6406         * class.c: Added inheritance check when a method is overloaded (from a
6407         virtual method or when implementing an interface) and when a class is
6408         inherited. Added functions to set a failure for a class and to 
6409         retreive the exception from a failure.
6410         * class-internals.h: Added fields to MonoClass to keep the exception
6411         information status for inheritance (or other exceptions) to be thrown
6412         later (i.e. not at load time).
6413         * object.c: Throw the inheritance SecurityException when a type is to 
6414         be created with either class or method inheritance violations.
6415         * reflection.c|h: Fix when getting declsec from a class. Removed 
6416         unrequired code for class. Improved sanity in parameter naming.
6417         * security-manager.c|h: Added functions to check for class and method
6418         inheritance.
6419
6420 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6421
6422         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6423         and has_finalize in dynamic types as well.
6424
6425 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6426
6427         * culture-info-table.h : fixed currency format for en-GB (and so on).
6428
6429 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6430
6431         * gc.c: ensure the GC handles never have 0 as a value.
6432
6433 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6434
6435         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6436         a pointer to a struct to unmanaged code. Fixes #72625.
6437
6438 2005-02-16  Martin Baulig  <martin@ximian.com>
6439
6440         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6441
6442 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6443
6444         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6445
6446 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6447
6448         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6449
6450         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6451         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6452         etc. Fixes #71471.
6453
6454         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6455
6456         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6457
6458 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6459
6460         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6461         changes to make the current context a field in MonoThread.
6462
6463 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6464
6465         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6466         the last change.
6467         
6468         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6469         extracted from mono_marshal_get_native_wrapper.
6470
6471         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6472         to create wrappers around native functions.
6473
6474         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6475         delegates for arbitrary function pointers. Fixes #71472.
6476
6477 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6478
6479         * threads.c: cleaned up the code a little.
6480
6481 2005-02-15  Martin Baulig  <martin@ximian.com>
6482
6483         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6484         the data table.
6485
6486         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6487         allocate larger chunks if needed.
6488
6489 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6490
6491         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6492         in by mistake.
6493
6494 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6495
6496         * domain.c: keep the domains in an array and ensure the domain ids
6497         are kept small, so they can be used as indexes to domain-specific data
6498         with a small memory overhead.
6499
6500 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6501
6502         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6503
6504 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6505
6506         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6507
6508 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6509
6510         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6511
6512         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6513         values.
6514
6515         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6516         
6517 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6518
6519         * domain-internals.h: add the hashtable here.
6520
6521         * class-internals.h: Remove `info' from MonoMethod
6522
6523         * domain.c: Add a new hashtable, jit_trampoline_hash
6524
6525 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6526
6527         * object.c: don't set the value of static fields
6528         (fixes bug#72494).
6529
6530 2005-02-11  Martin Baulig  <martin@ximian.com>
6531
6532         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6533         (mono_debug_add_method): Silently ignore the method if it's too big.
6534         (mono_debug_add_type): Likewise.
6535
6536 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6537
6538         * threads.c, appdomain.c: remove #ifdefs from the code.
6539
6540 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6541
6542         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6543         common security informations. This allows us to stay in unmanaged code
6544         when doing LinkDemand and it's special cases (except for the first 
6545         time for initialization). The flags a very much used with --security.
6546         * reflection.c|h: Added code to get declarative security attributes 
6547         for LinkDemand and InheritanceDemand. This required to refactor the
6548         existing code for Demand.
6549         * security-manager.c|h: Added new method fields for the special cases
6550         of LinkDemand.
6551
6552 2005-02-10  Martin Baulig  <martin@ximian.com>
6553
6554         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6555         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6556
6557 2005-02-10  Martin Baulig  <martin@ximian.com>
6558
6559         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6560         debugging code; this is almost a complete rewrite.
6561
6562         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6563
6564 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6565
6566         * domain.c, object.h: expose mono_string_equal () and 
6567         mono_string_hash ().
6568         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6569         it's implemented in managed code.
6570
6571 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6572
6573         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6574         lo leak objects between appdomains.
6575
6576 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6577
6578         * assembly.c: old compilers compilation fix from 
6579         robertj@gmx.net (Robert Jordan).
6580
6581 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6582
6583         * class-internals.h: Little reminder for the future.
6584
6585         * debug-helpers.c: Fix up wrapper_type_names
6586
6587 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6588
6589         * image.c, metadata-internals.h: when loading an image from a file,
6590         mmap all of it and use the same codepaths as when using a
6591         in-memory image: the code is simpler and we use less memory
6592         (both writable and readonly).
6593
6594 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6595
6596         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6597         API to alloc runtime data structures that need to be tracked by the
6598         GC and contain pointers.
6599         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6600         make the code more readable and eventually use a different GC.
6601
6602 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6603
6604         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6605         for out arguments.
6606         
6607 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6608
6609         * object.c: In release_type_locks(), don't release the cctor lock
6610         if it has already been released. This fixes a crash in the
6611         thread5 test.
6612
6613 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6614
6615         * gc.c, marshal.c, icall.c: register a delegate for finalization
6616         only when the native function pointer has been allocated for it.
6617
6618 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6619
6620         * object.c: cleaned up some code, allocate objects that are
6621         pointer free with the atomic malloc variant. Allocate memory
6622         for static data from the mempool if it's pointer-free.
6623         Allocate the bounds array at the end of the array data, when needed.
6624         * object-internals.h, object.h: move a private function in a private
6625         header.
6626         * class.c: handle missing case in tracking references in fields.
6627
6628 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6629
6630         * class.c, class-internals.h: keep track if a type has
6631         reference fields in either the instance or static fields.
6632
6633 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6634
6635         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6636         and renamed to MonoRuntimeInfo. Added fields to store the expected
6637         framework assembly version. Changed mono_get_framework_version and
6638         mono_get_runtime_version for a single mono_get_runtime_info method.
6639         
6640         * assembly.c: Added method to remap system assembly versions to the
6641         current executing runtime version. Removed old mapping code.
6642         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6643         
6644         * icall.c, reflection.c: Track api changes.
6645
6646 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6647
6648         * loader.c (method_from_memberref): Improve error reporting,
6649         produce the class name instead of the typeref/typedef index. 
6650
6651 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6652
6653         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6654
6655 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6656
6657         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6658         stdcall and charset name mangling.  Reorganize the code and add
6659         some tracing stuff.
6660
6661 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6662
6663         * monodiet.c: More iters!
6664
6665         * marshal.c: Iter usage.
6666
6667         * icall.c: Iter usage.
6668
6669         * object.c: Use iters.
6670
6671         * debug-helpers.c: More iters
6672
6673 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6674
6675         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6676         under win32.
6677
6678 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6679
6680         * mono-debug-debugger.c: use iters
6681
6682         * class.c, class-internals.h: mono_class_setup_events is static
6683         now
6684
6685         * All callers: use iters
6686
6687 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6688
6689         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6690         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6691
6692 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6693
6694         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6695
6696         * marshal.h: Add prototypes for ldfld/stfld_remote.
6697
6698         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6699         this is called during startup.
6700         
6701 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6702
6703         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6704         MonoThreadsSync struct private in monitor.c. Changed the way
6705         MonoThreadsSync is allocated so it's faster and there is no
6706         need to keep track of it with a finalizer and it uses less memory.
6707         This also finally allows us to allocate mono objects as ptrfree when
6708         there are no reference fields.
6709
6710 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6711
6712         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6713         disappearing link to the GC interface and use them to simplify
6714         the gchandles code.
6715
6716 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6719         stfld_remote which call mono_load/store_field_new. This allows methods
6720         calling ldfld/stfld wrappers to be AOTed.
6721
6722         * console-io.c: Include sys/filio.h under solaris.
6723         
6724         * console-io.c: Include curses.h if needed correctly.
6725
6726 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6727         
6728         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6729         method->klass as well.
6730
6731         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6732
6733         * class.c (mono_class_init): Switch on lazy initialization of 
6734         methods.
6735
6736         * class.c (mono_class_get_finalizer): Handle the case when the 
6737         finalizer is inherited.
6738
6739 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6740
6741         * console-io.c: <curses.h> is needed by term.h on solaris.
6742
6743 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6744
6745         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6746         mono_class_setup_properties where possible. Remove this ftn from
6747         the header file, and make it static.
6748
6749 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6750
6751         * loader.c: Add missing setup_... call.
6752
6753         * class.c: Add missing setup_... calls.
6754
6755         * class.c (mono_class_init): Switch on lazy initialization of 
6756         the generic vtable.
6757         
6758         * class.c (mono_class_init): Fix generics broken by the recent changes.
6759
6760         * monodiet.c (handle_type): Add missing setup_... calls.
6761
6762         * class.c: Back out garbage in previous patch.
6763         
6764         * class.c: Add missing setup_... calls.
6765
6766         * class.c (mono_class_get_method_from_name_flags): Avoid calling
6767         mono_class_setup_methods () if possible.
6768
6769         * class-internals.h (MonoClass): Add 'has_cctor' flag.
6770
6771         * class-internals.h (MonoCachedClassInfo): New structure.
6772
6773         * class.c: Initialize properties and events fields of MonoClass lazily.
6774
6775         * class.c: Add infrastructure for lazily initializing the methods and
6776         vtable fields of MonoClass. Not yet used.
6777
6778         * class.c (mono_class_get_finalizer): New helper function.
6779
6780         * class.c: Add infrastructure for loading some class related data from
6781         an AOT file.
6782
6783         * object.c: Add infrastructure for initializing the vtable from data
6784         in the AOT file.
6785
6786         * gc.c (run_finalize): Use mono_class_get_finalizer ().
6787
6788         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
6789         appropriate initialization function before accessing parts of the
6790         MonoClass structure.
6791
6792         * marshal.c: Fix warnings.
6793         
6794         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
6795
6796         * mono-debug-debugger.c (get_exception_message): Use 
6797         mono_class_get_method_from_name_flags ().
6798
6799 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
6800
6801         * reflection.c, appdomain.c: Replace a few manual searches that
6802         Zoltan missed. (Paolo approved this part of my initial patch).
6803
6804 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
6805
6806         * profiler.c: disable recording statistical events at report time.
6807
6808 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6809
6810         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
6811         to byteswap arrays of enum values, too (bug #72080).
6812
6813 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
6814
6815         * appdomain.c (set_domain_search_path): Allow this to be called if
6816         domain->setup is not yet set.
6817
6818         * loader.c (mono_method_get_index): New helper function.
6819
6820         * loader.c reflection.c: Use mono_method_get_index ().
6821
6822         * class.c (mono_class_get_method_from_name_flags): New helper method.
6823
6824         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
6825         this.
6826
6827         * class.c (mono_class_get_cctor): New helper method.
6828
6829         * string-icalls.c object.c class.c marshal.c reflection.c: Use
6830         mono_class_get_method () to look up methods.
6831
6832 2005-02-01  Miguel de Icaza  <miguel@novell.com>
6833
6834         * console-io.c: Fix the build, this should work on Windows.
6835
6836 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
6837
6838         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
6839         be set to null to keep things valid
6840
6841 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6842
6843         * icall.c: added Console 2.0 icalls.
6844         * Makefile.am: added console-io.[ch]
6845         * console-io.[ch]: internal calls for Console 2.0 API.
6846
6847 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6848
6849         * class.c: make sure we consider all the interfaces
6850         when calculating max_interface_id (bug found by
6851         Jeroen Frijters running ikvm).
6852
6853 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
6854
6855         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
6856         valuetype fields to null.
6857
6858         * object.c (set_value): Ditto. Fixes #71669.    
6859
6860 2005-01-31  Martin Baulig  <martin@ximian.com>
6861
6862         * metadata.c (mono_metadata_has_generic_params): New public
6863         function; checks whether something is a generic method.
6864
6865 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
6866
6867         * appdomain.c: fix infinite recursion when adding assemblies.
6868
6869 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
6870
6871         * object.c: Fix small typo to return all items for Environment.
6872         GetCommandLineArgs.
6873
6874 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6875
6876         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
6877         reflection.c: more domain and assembly-unload related fixes
6878         and memory leaks plugs.
6879
6880 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
6881
6882         * 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.
6883
6884 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
6885
6886         * loader.c (mono_method_signature): Make this method lazy
6887         (mono_get_method_from_token): Don't computate the signature here.
6888
6889         Doing this saves quite a bit of memory. I got 90 kb on starting up
6890         monodoc. It should also save some disk reads on startup.
6891
6892         * *: MonoMethod->signature might be NULL now. You *MUST* use
6893         mono_method_signature.
6894
6895 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
6896
6897         * object.c (mono_runtime_get_main_args): Return an array from the
6898         current domain here. Fixes #71938.
6899
6900 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
6901
6902         * monitor.c: formatting changes to comply with the
6903         mono coding style and remove #ifdefs from the code.
6904
6905 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6906
6907         * metadata.c, private.h: remove some unneeded data
6908         and use a more compact representation for table schemas.
6909
6910 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
6911
6912         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
6913         to get a better distribution in hash tables.
6914         * *.c: use mono_aligned_addr_hash() where appropriate.
6915         * assembly.c: make var static.
6916
6917 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
6918
6919         * domain-internals.h: Put MonoJitInfo on a diet.
6920
6921         * domain.c: Fix a warning.
6922
6923 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6924
6925         * gc.c: rework the gc handles code to reuse handles
6926         when freed.
6927
6928 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6929
6930         * domain.c: fixed long standing bug in mono_string_equal() which
6931         was brought to light with the ldstr changes.
6932
6933 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
6934
6935         * reflection.c: Remove warning by adding missing include for marshal.h
6936
6937 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6938
6939         * domain.c, object.c: change the ldstr_table to hold
6940         MonoString* as keys: makes the runtime isinterned lookup
6941         faster and simplifies memory management.
6942
6943 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
6944  
6945         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
6946         possible to add imperative security checks before calling the icall.
6947         * reflection.c: Return security attributes on the original MonoMethod
6948         (and not the wrapped one). This fix permissions on icalls.
6949
6950 2005-01-25  Dick Porter  <dick@ximian.com>
6951
6952         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
6953         the check for mktime() support actually test the mktime() return
6954         value.  "Fixes" bug 71682, though the output is still different to
6955         MS.
6956
6957 2005-01-25  Martin Baulig  <martin@ximian.com>
6958
6959         * class.c (mono_class_is_assignable_from): Make this work for
6960         generic instances.
6961
6962 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
6963
6964         * marshal.c (mono_string_utf8_to_builder)
6965         (mono_string_builder_to_utf16): We might not have ownership of the
6966         string. In thise case, we need to create a new buffer.
6967
6968         * object-internals.h (mono_stringbuilder_capacity): sb->str might
6969         be null, in which case, use the default capacity.
6970
6971 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6972
6973         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
6974         GC events to the profiler.
6975
6976 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6977
6978         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
6979         if you don't want the GC to run.
6980
6981 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
6982
6983         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
6984         start providing a GC API and keeping different implementations in
6985         their own file.
6986         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
6987
6988 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
6989
6990         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
6991         mmap rather than allocating a huge buffer.
6992         (mono_debug_close_mono_symbol_file): Free the buffer allocated
6993         above.
6994
6995 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
6996
6997         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
6998         and CheckExecutionRights.
6999         * reflection.c|h: Keep the index of the declarative security to be 
7000         used, instead of the pointer, when AOT compiler is used. Also add 
7001         class initialization when requesting demands.
7002         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7003         CheckExecutionRights. Both properties are now FALSE by default, and
7004         unmodifiable, unless the --security option is used.
7005
7006 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7007
7008         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7009         reflection.c: properly refcount images and assemblies, many leaks fixed.
7010
7011 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7012
7013         * threadpool.c: increase the timeout for threads in the thread pool to
7014         10s.  Fixes bug #67159.
7015
7016 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7017
7018         * class-internals.h: Sun's compiler insists on explicit
7019         signed on bit fields to handle then correctly.
7020
7021 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7022
7023         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7024         Make the size of the array fit only the number of invalid path
7025         chars that we have.
7026
7027         * class.c (_mono_class_get): Improve the error reporting when a
7028         class referenced is not found, to assist debugging. 
7029
7030 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7031
7032         * threads.c: fix off-by-one error.
7033         * domain.c: free data allocated in the domain.
7034
7035 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7036
7037         * reflection.c (mono_method_body_get_object): Fill out exception info
7038         as well.
7039
7040         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7041         structure.
7042         
7043 2005-01-19  Martin Baulig  <martin@ximian.com>
7044
7045         * loader.c (mono_get_method_constrained): Make this work again.
7046
7047 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7048
7049         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7050         guint16 to match the managed side.
7051
7052         * reflection.c (mono_reflection_body_get_object): Fill out local
7053         variables array.
7054
7055         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7056         as well.
7057
7058         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7059         'local_var_sig_token'.
7060
7061 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7064         System.Drawing.
7065
7066         * reflection.c (mono_method_body_get_object): Handle abstract and
7067         runtime methods.
7068
7069 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7070
7071         * marshal.c, loader.c, class-internals.h, reflection.c:
7072         store the emthod data for a wrapper in an array instead of a list.
7073
7074 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7075
7076         * marshal.c: change the code to allocate memory more
7077         conservatively for method wrappers.
7078
7079 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7080
7081         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7082         fields from MonoClass to the marshal info structure where they belong.
7083
7084 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7085
7086         * class.c, object.c, class-internals.h, marshal.c: rearrange
7087         some fields and tweak some types to lower memory usage.
7088
7089 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * threads.c (signal_thread_state_change): Handle the case when the
7092         target thread is the current thread.
7093
7094         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7095
7096         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7097         emit_ptr_to_object_conv. 
7098
7099         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7100         marshalling. Fixes #71352.
7101
7102 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7103
7104         * metadata.h, blob.h: move table enum to blob.h so it can be included
7105         in any header.
7106         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7107         cut the size of MonoImage/MonoDynamicImage.
7108
7109 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7110
7111         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7112
7113 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7114
7115         * reflection.c, reflection.h, icall.c: add a function to check
7116         if an attribute type is defined for a metadata object.
7117
7118 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7119
7120         * object-internals.h: Added some needed fields from StringBuilder class.
7121         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7122
7123 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7124
7125         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7126         threads before shutting down the runtime.
7127
7128         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7129
7130 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7131
7132         * object-internal.h, threads.c: implement stacksize and 
7133         parameterized thread start functionality (requires
7134         matching corlib). Marked broken code for later removal.
7135
7136 2005-01-12  Martin Baulig  <martin@ximian.com>
7137
7138         * class-internals.h (MonoGenericClass): Moved the `initialized'
7139         flag to MonoDynamicGenericClass, removed `init_pending'.
7140         (MonoGenericInst): Added `is_reference' flag.
7141
7142 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7143
7144         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7145         inside the MSDOS header. Fixes #71201.
7146
7147         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7148         gc thread.
7149         (mono_domain_finalize): Ditto.
7150
7151 2005-01-12  Martin Baulig  <martin@ximian.com>
7152
7153         * class.c (mono_get_shared_generic_class): Use the cache for
7154         non-dynamic generic classes.
7155
7156         * class-internals.h (mono_class_create_generic_2): Removed
7157         function prototype, this function is now static inside class.c.
7158
7159         * class.c (mono_class_create_generic_2): Made this static, only
7160         call it from mono_class_init() and mono_class_setup_parent().
7161         (collect_implemented_interfaces_aux): Call mono_class_init() on
7162         the interfaces we collect.
7163         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7164
7165 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7166
7167         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7168         it a real thread handle.
7169
7170         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7171         MonoJitExceptionInfo, since each catch clause needs its own variable.
7172         
7173 2005-01-11  Dick Porter  <dick@ximian.com>
7174
7175         * image.c (mono_pe_file_open): New variant on mono_image_open()
7176         that does not set up the CLI metadata; used for FileVersionInfo so
7177         it can get the data for windows binaries too.
7178         
7179         * process.c (process_read_string_block): Don't read off the end of
7180         the StringTable block.
7181
7182         These both fix bug 70766.
7183
7184 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7185
7186         * gc.c: set some fields to NULL at GC cleanup time.
7187         * threads.c: if we quit the main thread, call exit ().
7188
7189 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7190
7191         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7192
7193 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7194
7195         * threads.h, threads.c, object.c: added accessor and settor for
7196         main_thread. Handle it specially when exiting from it: wait
7197         for other foreground threads to exit.
7198
7199 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7200
7201         * process.c, verify.c: remove some bloat.
7202
7203 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7204
7205         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7206         the calling convention to cdecl under win32.
7207
7208 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7209
7210         * object.c (mono_object_get_size): New function to get the size of
7211         an object instance.
7212
7213         * profiler.c (simple_allocation): Use above.
7214
7215 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7216
7217         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7218         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7219         get an appdomain by it's id and we can't assume the root's id is 0).
7220         * domain-internals.h: Change the function prototype to match.
7221         * icall.c: Change the icall table for AppDomain.
7222
7223 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7224
7225         * locales.c (string_invariant_compare_char): Only compute
7226         GUnicodeTypes in the case where we need them.  Test for ordinality
7227         first and return if so.
7228
7229         From the commit:
7230
7231                 /*
7232                  * FIXME: here we must use the information from c1type and c2type
7233                  * to find out the proper collation, even on the InvariantCulture, the
7234                  * sorting is not done by computing the unicode values, but their
7235                  * actual sort order.
7236                  */
7237
7238 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7239
7240         * loader.c: for P/Invoke methods, allow the "Internal" shared
7241         library name to refer to the calling process symbol namespace.
7242
7243 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7244
7245         * Makefile.am: Add the security manager to the build.
7246         * security-manager.c|h: New. Initialization of the security manager.
7247
7248 2005-01-07  Dick Porter  <dick@ximian.com>
7249
7250         * threads.c: 
7251         * monitor.c: Update thread state during Monitor and WaitHandle
7252         waits.  Fixes bug 71031.
7253
7254 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7255
7256         * reflection.c (property_encode_signature): Correctly handle when the
7257         property has no methods.
7258
7259 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7260
7261         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7262         
7263         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7264         fields from mb, not rmb. Fixes #71017.
7265
7266         * marshal.c (emit_ptr_to_str_conv): Add support for 
7267         ByValTStr -> string conversion. Fixes #71015.
7268
7269         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7270
7271         * mempool.c (mono_mempool_contains_addr): New helper function.
7272
7273 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7274
7275         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7276         HasSematics encoded fields.
7277         
7278         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7279         invalid string marshalling.
7280
7281         * metadata.c: Fix warnings.
7282         
7283 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7284
7285         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7286         profiler support.
7287
7288 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7289
7290         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7291         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7292         tests.
7293
7294 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7295
7296         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7297         so methods containing these can be AOTed.
7298
7299 2005-01-03  Martin Baulig  <martin@ximian.com>
7300
7301         * loader.c (find_method): Removed the hack for generic instances.
7302         (method_from_memberref): If our parent is a generic instance, pass
7303         its generic type definition to find_method() and then inflate the
7304         method.
7305         (mono_get_method_constrained): Pass the generic type definition to
7306         find_method() and inflate the method later.
7307
7308         * class-internals.h (MonoStats): Added `generic_class_count'.
7309
7310         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7311         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7312
7313         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7314         generic type definitions.
7315
7316 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7317
7318         * loader.c icall.c: Fix warnings.
7319
7320 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7321
7322         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7323         blittable types. Fixes #70864.
7324
7325 2004-12-29  Martin Baulig  <martin@ximian.com>
7326
7327         * icall.c
7328         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7329
7330         * reflection.c (mono_method_get_object): Create a
7331         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7332         call mono_get_inflated_method().
7333
7334         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7335
7336 2004-12-27  Martin Baulig  <martin@ximian.com>
7337
7338         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7339         (MonoMethodInflated): Added `inflated' field.
7340
7341         * class.c (mono_class_inflate_generic_method): Don't really
7342         inflate the method here; just set the `is_inflated' flag in the
7343         MonoMethod.
7344         (mono_class_get_inflated_method): Actually inflate the method here
7345         if it's not already inflated; we use the MonoMethodInflated's new
7346         `inflated' field as a cache.
7347
7348 2004-12-26  Martin Baulig  <martin@ximian.com>
7349
7350         * class.c
7351         (inflate_generic_class): Moved some code out of inflate_generic_type().
7352         (mono_class_inflate_generic_method): If we're already inflated,
7353         inflate the context and use the declaring method; ie. make sure
7354         the declaring method of an inflated method is always the generic
7355         method definition.
7356         (mono_class_create_from_typedef): Create
7357         `class->generic_container->context->gclass'.
7358
7359 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7360
7361         * metadata-internals.h, marshal.c, reflection.c: More
7362         MonoGHashTable->GHashTable.
7363
7364         * domain-internals.h, class.c: Change MonoGHashTable's into
7365         GHashTables for some cases where no gc stuff is used
7366
7367         All users: update apis
7368
7369 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7370
7371         * metadata.c (builtin_types): Make this `const'. Makes this get
7372         put into the shareable section.
7373         (mono_metadata_init): Casts to make gcc happy.
7374
7375 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7376
7377         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7378
7379 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7380
7381         * icall.c: Added an internal call to retrieve the position and length
7382         of assembly-level declarative security attributes (RequestMinimum, 
7383         RequestOptional and RequestRefuse). This is used by the Assembly class
7384         to re-create the corresponding permission sets.
7385
7386 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7387
7388         * marshal.c: fix the stelemref wrapper to be type correct
7389         (and faster).
7390
7391 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7392
7393         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7394         to do key & 0x7fffffff. Hashtable already does this. It just
7395         results in longer code.
7396
7397 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7398
7399         * appdomain.c: Bump corlib version.
7400         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7401         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7402         * reflection.c|h: Add functions to get declarative security infos
7403         (blob position and length) for assemblies, classes and methods.
7404
7405 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7406
7407         * reflection.c: sort the constant table (bug #70693).
7408
7409 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7410
7411         * object-internals.h, threads.c, domain.c: add accessors for
7412         the MonoThread and MonoDomain tls keys.
7413
7414 2004-12-18  Martin Baulig  <martin@ximian.com>
7415
7416         * class.c (inflate_generic_type): If we're inflating a generic
7417         instance, set `ngclass->context->container = context->container';
7418         ie. the container we inflated into.
7419
7420         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7421         inflate_generic_type() changes.
7422
7423 2004-12-17  Martin Baulig  <martin@ximian.com>
7424
7425         * class-internals.h
7426         (MonoGenericClass): Replaced `MonoType *generic_type' with
7427         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7428         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7429         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7430
7431 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7432
7433         * exception.c (mono_exception_from_token): New helper function.
7434
7435 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7436
7437         * assembly.c (mono_assembly_load_with_partial_name): Call 
7438         mono_assembly_loaded before invoking the preload hooks. Fixes
7439         #70564.
7440
7441         * object-internals.h (MonoThread): Change culture_info and 
7442         ui_culture_info into an array.
7443
7444         * threads.c: Cache culture info objects from more than one appdomain.
7445
7446         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7447         current UI culture.
7448
7449 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7450
7451         * threads.h threads.c appdomain.c: Clear the culture_info field of
7452         all threads during unloading if they point to an object in the dying
7453         appdomain.
7454
7455 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7456
7457         * culture-info.h (TextInfoEntry): New struct
7458         * object-internals.h: sync with managed
7459         * locales.c: fill the `text_info_data' field
7460         * culture-info-tables.h: update
7461
7462 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7463
7464         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7465         collector.
7466
7467 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7468
7469         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7470         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7471
7472 2004-12-12  Martin Baulig  <martin@ximian.com>
7473
7474         * mono-debug-debugger.c (write_type): If we're an enum and the
7475         builtin types have already been initialized, call mono_class_init().
7476
7477 2004-12-11  Martin Baulig  <martin@ximian.com>
7478
7479         * metadata.c (mono_metadata_load_generic_params): Added
7480         `MonoGenericContainer *parent_container' argument; automatically
7481         compute `container->is_method'; pass the correct owner to
7482         get_constraints().      
7483
7484         * reflection.c (compare_genericparam): Sort the GenericParam table
7485         according to increasing owners. 
7486
7487 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7488
7489         * profiler.c: allow disabling the default profiler.
7490
7491 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7492
7493         * decimal.c, icall.c: allow disabling System.Decimal support.
7494
7495 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7496
7497         * reflection.c: Add support for null attribute arguments.
7498
7499 2004-12-09  Martin Baulig  <martin@ximian.com>
7500
7501         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7502         names to get rid of compiler warnings.
7503
7504 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7505
7506         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7507         mono_marshal_load_type_info (). Fixes #69625.
7508         (mono_marshal_get_ptr_to_struct): Likewise.
7509
7510 2004-12-08  Martin Baulig  <martin@ximian.com>
7511
7512         * mono-debug.h: Bumped version number to 47.
7513
7514         * mono-debug-debugger.c
7515         (mono_debugger_event_handler, mono_debugger_event): Take two
7516         guint64 arguments insteed of a gpointer and a guint32.  
7517
7518 2004-12-08  Martin Baulig  <martin@ximian.com>
7519
7520         * debug-mono-symfile.h
7521         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7522         `address' to `native_offset'.
7523
7524 2004-12-08  Martin Baulig  <martin@ximian.com>
7525
7526         * class.c (mono_class_create_from_typespec): Only inflate if we
7527         either have `context->gclass' or `context->gmethod'.
7528
7529 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7530
7531         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7532
7533         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7534
7535         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7536
7537         * reflection.c (mono_assembly_get_object): Remove the workaround put
7538         in for the release.
7539         
7540         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7541
7542         * appdomain.c: Bump corlib version.
7543
7544         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7545         be visible in other appdomains.
7546
7547 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7548
7549         * threads.c: Interlocked inc and dec for longs were messed up,
7550         use a KISS based impl for this. Fixes 70234
7551
7552 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7553
7554         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7555
7556 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7557
7558         * icall.c: fix to follow policy not to allow struct
7559         arguments in icalls.
7560
7561 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7562
7563         * process.c: make the patch that handles spaces in file paths work
7564         on mono/windows too.
7565
7566 2004-12-06  Martin Baulig  <martin@ximian.com>
7567
7568         * class.c (mono_class_create_generic): Call
7569         mono_class_setup_supertypes() if we're dynamic.
7570         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7571
7572 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7573
7574         * object-internals.h: Add new fields to MonoThread.
7575
7576         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7577
7578         * icall.c threads-types.h threads.c: Add new icalls.
7579
7580         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7581
7582         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7583         managed side.
7584
7585         * appdomain.c: Bump corlib version.
7586
7587         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7588         internal assemblies. Fixes #69181.
7589
7590 2004-12-05  Martin Baulig  <martin@ximian.com>
7591
7592         * class.c (mono_class_inflate_generic_signature): Make this a
7593         no-op if `context' is NULL or we don't have any type parameters;
7594         also copy `sentinelpos'.        
7595
7596 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7597
7598         * image.c: Add unbox_wrapper_cache.
7599
7600         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7601
7602         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7603         function generator.
7604         
7605         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7606         Fixes #70173.
7607
7608         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7609         
7610 2004-12-04  Martin Baulig  <martin@ximian.com>
7611
7612         * loader.c (mono_method_get_signature_full): New public function;
7613         like mono_method_get_signature(), but with an additional
7614         `MonoGenericContext *' argument.
7615
7616         * class.c (mono_class_inflate_generic_signature): Formerly known
7617         as inflate_generic_signature(); make this public.
7618
7619 2004-12-04  Martin Baulig  <martin@ximian.com>
7620
7621         * metadata.c
7622         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7623         instead of a `MonoGenericContainer *'.  
7624         (mono_metadata_parse_array_full): Likewise.
7625         (mono_metadata_parse_signature_full): Likewise.
7626         (mono_metadata_parse_method_signature_full): Likewise.
7627         (mono_metadata_parse_generic_inst): Likewise.
7628         (mono_metadata_parse_generic_param): Likewise.
7629         (mono_metadata_parse_mh_full): Likewise.
7630         (mono_type_create_from_typespec_full): Likewise.
7631
7632 2004-12-03  Martin Baulig  <martin@ximian.com>
7633
7634         * class-internals.h (MonoGenericContainer): Replaced the
7635         `MonoGenericContext * pointer with a `MonoGenericContext'
7636         structure and made it the first element.
7637
7638 2004-12-03  Martin Baulig  <martin@ximian.com>
7639
7640         * class.c
7641         (inflate_generic_type): Set the `context->container' when creating
7642         a new MonoGenericContext.
7643         (mono_class_inflate_generic_method): Likewise.
7644         (mono_class_create_from_typespec): Just use `context->container'
7645         to get the container.
7646
7647         * loader.c (method_from_methodspec): Set `context->parent' from
7648         `context->container' - and if that's a method container, use its
7649         parent.  Also set the `context->container' when creating a new
7650         MonoGenericContext.
7651         (mono_get_method_from_token): Use just `context->container' to get
7652         the container.
7653
7654         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7655         `gclass->context->container'.
7656
7657         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7658         the `context->container' when creating a new MonoGenericContext.
7659
7660 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7661
7662         * reflection.c (compare_genericparam): Sort params with identical
7663         owner by their number. Fixes gen-111 on sparc.
7664
7665 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7666
7667         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7668         around the domain changes.
7669
7670         * appdomain.c (mono_domain_unload): Handle the case when the thread
7671         calling Unload is itself being aborted during unloading. Fixes #70022.
7672
7673         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7674
7675         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7676         checkpoint_func as an icall so it gets a wrapper.
7677         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7678         in the cross-appdomain wrappers too.
7679
7680         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7681
7682         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7683
7684         * reflection.c: Fix some memory leaks.
7685         
7686 2004-12-02  Martin Baulig  <martin@ximian.com>
7687
7688         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7689
7690         * metadata.c (generic_class_cache): New static hashtable.
7691         (mono_metadata_lookup_generic_class): New public method.
7692
7693 2004-12-02  Martin Baulig  <martin@ximian.com>
7694
7695         * class.c (mono_class_create_from_typedef): Call
7696         mono_class_setup_parent() and mono_class_create_mono_type() before
7697         parsing the interfaces.
7698
7699 2004-12-02  Martin Baulig  <martin@ximian.com>
7700
7701         * metadata.c (generic_inst_cache): New static hashtable.
7702         (mono_metadata_lookup_generic_inst): New public function.
7703         (mono_metadata_inflate_generic_inst): New public function.
7704         (mono_metadata_parse_generic_inst): New public function.
7705         (do_mono_metadata_parse_generic_class): Use the new
7706         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7707         since this'll also use the cache.
7708
7709         * reflection.c (mono_reflection_bind_generic_method_parameters):
7710         Use mono_metadata_lookup_generic_inst() to use the new cache.
7711
7712         * class.c (inflate_mono_type): Use
7713         mono_metadata_inflate_generic_inst() to inflate a generic
7714         instance; this'll also use the new cache.
7715
7716         * loader.c (method_from_methodspec): Use
7717         mono_metadata_parse_generic_inst() and
7718         mono_metadata_inflate_generic_inst() rather than parsing it
7719         manually, so we can use the new cache.
7720
7721 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7722
7723         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7724         the wait times out.
7725
7726 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7727
7728         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7729         iter->args based on whether parameters are passed in registers (i.e.
7730         MONO_ARCH_REGPARMS is defined)
7731
7732 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7733
7734         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7735         the exception message. Fixes #70070.
7736         (method_from_methodspec): Fix warnings.
7737
7738 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7739
7740         * process.c: (complete_path) return the path quoted
7741
7742 2004-12-01  Martin Baulig  <martin@ximian.com>
7743
7744         * class-internals.h (MonoGenericInst): New structure.
7745         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7746         `is_open' with `MonoGenericInst *inst'.
7747         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7748         `is_open' with `MonoGenericInst *inst'.
7749
7750 2004-11-30  Martin Baulig  <martin@ximian.com>
7751
7752         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
7753
7754         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
7755         to `generic_class_cache'.
7756
7757         * metadata.c
7758         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
7759         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
7760         (mono_generic_inst_is_valuetype): Renamed to
7761         mono_generic_class_is_valuetype().
7762
7763         * class-internals.h
7764         (MonoGenericInst): Renamed to MonoGenericClass.
7765         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
7766         (MonoClass): Renamed `generic_inst' to `generic_class'.
7767         (MonoGenericContext): Renamed `ginst' to `gclass'.
7768
7769         * object-internals.h
7770         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
7771
7772         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
7773         mono_reflection_generic_class_initialize().
7774
7775         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
7776         now known as "System.Reflection.MonoGenericClass".
7777         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
7778
7779 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
7780
7781         * class-internals.h: Added a flag field to MonoClass to cache the
7782         declarative security attributes actions associated with the class.
7783         * domain-internals.h: Added booleans to MonoJitInfo to cache the
7784         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
7785         applicable to the JITted method.
7786         * reflection.c|h: Added functions to extract (as flags) which security
7787         actions are available (declaratively) for a method, class or assembly.
7788         * metadata.c|h: Added functions to search the declarative security
7789         table in the metadata.
7790         
7791 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
7792
7793         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
7794         EXPORTEDTYPES are already in the class name cache, so there is no
7795         need to add extra code here to look at them. Just removes a bit of
7796         cruft.
7797
7798         (ves_icall_System_Environment_get_TickCount): No need for #if
7799         WINDOWS. We already have the code in io-layer.
7800
7801 2004-11-28  Martin Baulig  <martin@ximian.com>
7802
7803         * loader.c
7804         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
7805         Fixes gen-112.cs.
7806
7807 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
7808
7809         * assembly.c (do_mono_assembly_open): Instead of having a
7810         conditional WITH_BUNDLE, incorporate support for bundles here, by
7811         having a global `bundles' variable holding a pointer to the actual
7812         bundles. 
7813
7814         (mono_register_bundled_assemblies): New API call used by the
7815         bundle code. 
7816
7817         See mkbundle.1 for details.
7818         
7819 2004-11-27  Martin Baulig  <martin@ximian.com>
7820
7821         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
7822         the vtable for generic methods.
7823
7824 2004-11-26  Martin Baulig  <martin@ximian.com>
7825
7826         * metadata.c
7827         (mono_metadata_generic_method_hash): New public function.
7828         (mono_metadata_generic_method_equal): Likewise.
7829
7830         * class-internals.h
7831         (MonoGenericContainer): Added `GHashTable *method_hash'.
7832
7833         * reflection.c (ReflectionMethodBuilder): Added
7834         `MonoGenericContainer *generic_container'.
7835         (reflection_methodbuilder_to_mono_method): Don't create a new
7836         MonoGenericContainer each time we're called.
7837         (mono_reflection_bind_generic_method_parameters): Use
7838         `container->method_hash' to cache the results so we don't create a
7839         different method if we're called several times with the same
7840         arguments.
7841
7842         * loader.c (method_from_methodspec): Use the new
7843         `container->method_hash' here, too.
7844
7845 2004-11-26  Martin Baulig  <martin@ximian.com>
7846
7847         * class.c (inflate_generic_signature): Correctly compute
7848         `res->has_type_parameters'.
7849         (mono_class_vtable): Use the `has_type_parameters' flag to
7850         determine whether we're a generic method.
7851
7852         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
7853
7854 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
7855
7856         * object.c (mono_runtime_run_main): Fix a small memory leak.
7857
7858 2004-11-25  Martin Baulig  <martin@ximian.com>
7859
7860         * class.c (set_generic_param_owner): Fixed the loop.
7861
7862 2004-11-25  Martin Baulig  <martin@ximian.com>
7863
7864         * object.c (mono_class_vtable): Don't create any JIT wrappers for
7865         generic methods.
7866
7867 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
7868
7869         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
7870         names. Fixes #69787.
7871
7872 2004-11-24  Martin Baulig  <martin@ximian.com>
7873
7874         * class.c (mono_class_create_generic_2): If we don't have a
7875         `ginst->parent', inflate `gklass->parent' to get our parent.
7876
7877 2004-11-24  Martin Baulig  <martin@ximian.com>
7878
7879         * reflection.c (compare_genericparam): Correctly sort the
7880         GenericParam table; fixes #69779.
7881
7882 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
7883
7884         * reflection.c: When writing a PE file, don't create a huge
7885         buffer in memory. Just write the arrays we have to the file.
7886         This reduces memory usage.
7887
7888         * metadata-internals.h: MonoDynamicStream pefile is no longer used
7889         globally.
7890
7891 2004-11-17  Martin Baulig  <martin@ximian.com>
7892
7893         * class.c (mono_class_init): Don't setup `class->parent' for
7894         dynamic instances; moved this to mono_class_generic_2().
7895         (mono_class_create_generic): Also set `klass->inited' for dynamic
7896         generic instances.
7897         (mono_class_create_generic_2): Don't do anything for dynamic
7898         generic instances.  Set `klass->parent' here and also call
7899         mono_class_setup_parent() here. 
7900
7901         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
7902         `MonoType *parent' argument; set `ginst->parent' before calling
7903         mono_class_create_generic_2(), so we set the correct parent.
7904
7905 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
7906
7907         * reflection.c: allow getting attributes from ModuleBuilder
7908         (used by ikvm).
7909
7910 2004-11-17  Martin Baulig  <martin@ximian.com>
7911
7912         * class.c (mono_class_create_from_typedef): If a type parameter is
7913         inherited from an outer class, set its owner to that class.
7914
7915 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
7916
7917         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
7918           for (int*) written size. This fixes bug #69592.
7919
7920 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
7921
7922         * icall.c: Added IsAuthenticodePresnet internal call.
7923         * image.c|h: New function that check a MonoImage for an Authenticode
7924         signature in the certificate PE data directory.
7925         * security.c|h: New internal call to ask the runtime if an 
7926         Authenticode signature seems referenced in the PE header.
7927
7928 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
7929
7930         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
7931
7932         * reflection.c (mono_image_create_pefile): Free the assembly streams
7933         after writing out the assembly file.
7934
7935         * object.c (mono_runtime_run_main): Fix small memory leak.
7936
7937         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
7938         property access modifiers. Fixes #69389.
7939
7940 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
7941
7942         * domain.c, object.c, object-internals.h, domain-internals.h,
7943         object.h, marshal.c: keep dynamic code info per domain.
7944
7945 2004-11-15  Martin Baulig  <martin@ximian.com>
7946
7947         * class.c (mono_type_get_name_recurse): Put type arguments in
7948         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
7949         see bug #68387.
7950
7951 2004-11-15  Martin Baulig  <martin@ximian.com>
7952
7953         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
7954         (mono_class_setup_vtable): When computing `the_cname' for a
7955         generic instance, don't include the namespace since we'd otherwise
7956         add it twice.
7957
7958 2004-11-15  Martin Baulig  <martin@ximian.com>
7959
7960         * class.c (mono_class_create_generic): Changed return type to void.
7961         (mono_class_create_generic_2): New public function; setup
7962         `class->method', `class->field' and `class->interfaces' here
7963         instead of in mono_class_init().
7964
7965         * class.h (mono_class_create_generic): Moved to class-internals.h.
7966
7967 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
7968
7969         * reflection.c (mono_image_create_pefile): take a file HANDLE.
7970         rather than writing to memory, write to this file. Right now,
7971         we are just writting into a buffer, and copying that. However
7972         we can avoid the buffer later.
7973
7974         (mono_dynamic_stream_reset): new function
7975
7976         * icall.c, object-internals.h: update for the above.
7977
7978 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
7979
7980         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
7981         have been using gc'd memory. First it is slower, unlikely
7982         the comment in the source code said, secondly, it increases
7983         our footprint to do it in the gc.
7984
7985         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
7986         the method so that it does not have to copy to managed code.
7987
7988 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
7989
7990         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
7991
7992 2004-11-12  Martin Baulig  <martin@localhost>
7993
7994         * reflection.c (mono_image_create_token): Allow generic method
7995         definitions here, since they may appear in an `.override'; see
7996         gen-98/gen-99 for an example.
7997
7998 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
7999
8000         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8001         #69365.
8002
8003         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8004         descriptive.
8005
8006 2004-11-11  Martin Baulig  <martin@ximian.com>
8007
8008         * class.c (mono_class_setup_vtable): In an explicit interface
8009         implementation, the method name now includes the arity.
8010
8011 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8012
8013         * object.c (mono_array_full_copy): Fix warning.
8014
8015 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8016
8017         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8018         mono_class_get_method_from_name() instead.
8019         
8020         * class-internals.h: Added two new types of wrappers. 
8021         Added MonoRemotingTarget enum. Added new trampoline function type, which
8022         takes an additional MonoRemotingTarget value as parameter, so it is
8023         possible to request a trampoline for a specific target.
8024         
8025         * class.c: Added new mono_class_get_method_from_name() method.
8026         
8027         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8028         general remoting sinks and one specific for cross domain calls.
8029         
8030         * debug-helpers.c: Added new wrapper names.
8031         
8032         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8033         of a remote class.
8034         
8035         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8036         
8037         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8038         with several other methods (mono_marshal_get_xappdomain_dispatch,
8039         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8040         and others) can generate a fast remoting wrapper for cross domain calls.
8041         More information can be found in docs/remoting.
8042         Other changes: Removed mono_find_method_by_name, and used
8043         mono_class_get_method_from_name instead.
8044         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8045         is stored in the remoting invoke hashtable.
8046         
8047         * marshal.h: published the new method for getting the xdomain wrapper,
8048         and also added a method for getting the adequate wrapper for a given
8049         method and target.
8050         
8051         * object-internals.h, object.c: Added a couple of methods for capying and
8052         cloning arrays.
8053         Modified mono_install_remoting_trampoline, which takes the new remoting
8054         trampoline that has a remoting target as parameter.
8055         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8056         will return the most suitable vtable for the target.
8057         Added mono_remote_class_vtable, which returns the vtable of a remote class
8058         (which can be the normal remoting vtable or the xdomain vtable).
8059         
8060         * threads.c: the xdomain invoke and dispatch wrappers must also be
8061         protected against interruptions.
8062
8063 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8064
8065         * icall.c: use memmove in BlockCopyInternal when the source and
8066         destination arrays are the same.
8067
8068 2004-11-09  Martin Baulig  <martin@ximian.com>
8069
8070         * class-internals.h (MonoGenericContainer): Removed `method' and
8071         `signature', replaced them with `is_method' and `is_signature'
8072         flags.  Added `context'.
8073
8074         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8075         instead of a `MonoGenericContainer *'.
8076
8077         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8078         for dynamic type parameters.
8079         (mono_metadata_load_generic_params): Setup `container->context'.
8080
8081         * reflection.c (mono_reflection_setup_generic_class): Setup
8082         `tb->generic_container->context'.
8083         (do_mono_reflection_bind_generic_parameters): Use
8084         mono_class_inflate_generic_type() to correctly inflate types,
8085         rather than using our own hack just for MONO_TYPE_VAR.
8086
8087 2004-11-09  Martin Baulig  <martin@ximian.com>
8088
8089         * class.c (mono_class_inflate_generic_method): Small fix; don't
8090         crash here.
8091
8092         * icall.c
8093         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8094         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8095         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8096         (ves_icall_Type_BindGenericParameters): Likewise.
8097         (ves_icall_Type_get_IsGenericInstance): Likewise.
8098         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8099         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8100         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8101         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8102
8103 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8104
8105         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8106         assembly versions and public key tokens. Fixes #69113.
8107
8108 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8109
8110         * metadata.c: fix bug introduced with the type cache changes
8111         on 2004-11-06.
8112
8113 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8114
8115         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8116         the MonoClass pointer instead of the token in exception clauses.
8117         * reflection.c: updates for the above and make the code not depend
8118         on the structure of MonoExceptionClause.
8119
8120 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8121
8122         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8123         Add support for dynamic assemblies. Fixes #69114.
8124
8125         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8126
8127 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8128
8129         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8130         since most only those methods use it. the code member of
8131         MonoMethodPInvoke was dead, so that can be removed too. Also,
8132         remove inline_count (again, not used), and move slot so that it
8133         can share bits with some other flags. This saves 8 bytes in the
8134         structure and gives us about 50 kb back for mcs helloworld.cs
8135
8136         * *.[ch]: Do naming changes for the above.
8137
8138         * loader.c (mono_method_get_header): Lazily init the header
8139         on first access.
8140         (mono_get_method_from_token): don't init the header here
8141         (mono_free_method): the header may never be allocated
8142
8143         Overall, this saves 150 kb of unmanaged allocations
8144         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8145         memory at runtime.
8146         
8147         * loader.c, loader.h (mono_method_get_header): new accessor.
8148
8149         * *.[ch]: use the above method. Prepares us to lazily load
8150         the header.
8151
8152         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8153         three warnings, which are actual bugs (see 69206).
8154
8155         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8156         unused. Saves a cool 4 bytes / method.
8157
8158 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8159
8160         * metadata.c (builtin_types): Add types for System.Object here.
8161         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8162         for a class or valuetype from klass->this_arg or klass->byval_arg.
8163
8164         On mcs for a hello world, this gets us down from 21836 MonoType's
8165         to 14560.
8166
8167         (mono_metadata_free_type): Account for the above change.
8168
8169 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8170
8171         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8172         exception instead of asserting if name is null.
8173         (ves_icall_System_AppDomain_GetData): Ditto.
8174
8175 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8176
8177         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8178         EnumBuilder.
8179
8180         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8181         Return NULL when the domain does not have entry_assembly set.
8182
8183         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8184         Add a 'resource_modules' argument.
8185         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8186
8187         * reflection.c (mono_reflection_create_runtime_class): Move setting
8188         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8189         for enums too.
8190
8191         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8192         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8193         Throw an ArgumentNullException if 'ptr' is null.
8194
8195         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8196         assemblies here. Fixes #69020.
8197
8198 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8199
8200         * reflection.c (build_compressed_metadata): Fix the previous patch for
8201         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8202         the stack.
8203
8204 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8205
8206         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8207         the cultures is false. Fixes #69090.
8208
8209         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8210         detected by valgrind.
8211         
8212         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8213         TypeResolve multiple times for the same type. Fixes #65577.
8214
8215 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8216
8217         * marshal.c: Avoid using ldftn to call managed functions. It is
8218         much slower than just a call.
8219
8220         * reflection.c (mono_module_get_object): free the basename we
8221         allocate here from glib.
8222         
8223         * reflection.c (ensure_runtime_vtable): make sure to free
8224         overrides.  Also, we were allocating an array of MonoMethod not an
8225         array of MonoMethod*.
8226
8227         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8228
8229         * image.c (mono_image_close): free image->guid here.
8230
8231 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8232
8233         * reflection.c: Fix some spec conformance issues with the PE file
8234         structures so mcs compiled apps run on the Net 2.0 beta.
8235
8236 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8237
8238         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8239         Implement this. Fixes #67264.
8240
8241         * debug-helpers.h debug-helpers.c marshal.c: Move 
8242         mono_find_method_by_name to debug-helpers.c.
8243
8244 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8245
8246         * object.c (mono_release_type_locks): type_initialization_hash is
8247         a GHashTable.
8248
8249         * reflection.c object.c object-internals.h: Fix warnings.
8250
8251         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8252         without accessors. Fixes #61561.
8253
8254         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8255         application base from the root domain if not set. Fixes #65641.
8256         (mono_runtime_init): Fix warning.
8257
8258 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8259
8260         * appdomain.c: call mono_thread_pool_init.
8261         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8262         of worker threads based on the number of CPUs and the environment
8263         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8264         for non-windows (windows) systems.
8265
8266 2004-10-27  Chris Toshok  <toshok@ximian.com>
8267
8268         * mono-debug-debugger.c (write_class): don't call mono_class_init
8269         here, as even with the check for (!klass->init_pending), we get
8270         into a situation where we're hitting cycles in class
8271         initialization.  Fixes #68816.
8272
8273 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8274
8275         * image.c: Avoid overwriting values in the loaded_images_hash when an
8276         assembly is loaded multiple times. Fixes #61152.
8277
8278         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8279         so multiple satellite assemblies for the same name can be loaded.
8280         Fixes #68259.
8281
8282         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8283         not NULL.
8284
8285         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8286         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8287
8288         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8289         pending finalizers are not invoked after the appdomain has been 
8290         unloaded. Fixes #67862.
8291
8292 2004-10-22  Martin Baulig  <martin@ximian.com>
8293
8294         * mono-debug-debugger.c
8295         (mono_debugger_runtime_invoke): Don't box valuetypes.
8296
8297 2004-10-22  Chris Toshok  <toshok@ximian.com>
8298
8299         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8300         don't hide private methods.
8301
8302 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8303
8304         * icall.c: Allows the runtime to "share" (when known) the public key
8305         token of an assembly. This avoid the need to recalculate the token 
8306         (from the public key) in managed code.
8307
8308 2004-10-21  Chris Toshok  <toshok@ximian.com>
8309
8310         * debug-helpers.c (append_class_name): argh, revert last patch.
8311         
8312 2004-10-21  Chris Toshok  <toshok@ximian.com>
8313
8314         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8315         not '/', so that it matches what the debugger uses to look up
8316         methods.
8317
8318 2004-10-21  Martin Baulig  <martin@ximian.com>
8319
8320         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8321         public method; this is called each time an exception is thrown and
8322         allows the debugger to use exception catch points.
8323
8324 2004-10-21  Martin Baulig  <martin@ximian.com>
8325
8326         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8327         the stack pointer and the exception object in some struct and pass
8328         that to the debugger.
8329
8330 2004-10-21  Chris Toshok  <toshok@ximian.com>
8331
8332         * mono-debug-debugger.c (do_write_class): add instance/static
8333         event support.  We don't expose "raise" or "other" yet.
8334         (event_is_static): new method.
8335
8336 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8337
8338         * mono-debug-debugger.c
8339         (mono_debugger_handle_exception): Remove
8340         bogus return value for fussy compilers.
8341
8342 2004-10-20  Martin Baulig  <martin@ximian.com>
8343
8344         * mono-debug-debugger.c
8345         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8346         (mono_debugger_handled_exception): Likewise.
8347
8348 2004-10-20  Martin Baulig  <martin@ximian.com>
8349
8350         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8351         MONO_DEBUGGER_EVENT_EXCEPTION.
8352
8353         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8354         public function to send the debugger a notification for an
8355         exception and inform it about a catch/finally clause.
8356
8357 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8358
8359         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8360         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8361         fix 2.95 build. 
8362
8363         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8364
8365 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8366
8367         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8368         marshalled as [In,Out]. Fixes #58325.
8369
8370 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8371
8372         * reflection.c (mono_method_body_get_object): Implement some fields.
8373
8374 2004-10-12  Martin Baulig  <martin@ximian.com>
8375
8376         * reflection.c (mono_reflection_bind_generic_parameters): Small
8377         fix, correctly retrieve our parent from a generic instance.
8378
8379 2004-10-12  Martin Baulig  <martin@ximian.com>
8380
8381         * metadata.c (mono_metadata_generic_param_equal): We always have
8382         an owner.
8383
8384         * class.c
8385         (mono_class_from_generic_parameter): We need to have an owner.
8386         (my_mono_class_from_generic_parameter): Likewise.
8387
8388         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8389         mono_reflection_create_generic_class() and added a new
8390         mono_reflection_setup_generic_class().  
8391         (mono_reflection_initialize_generic_param): If we're a nested
8392         generic type and inherited from the containing class, set our
8393         owner to the outer class.
8394
8395 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8396
8397         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8398
8399         * reflection.c (mono_method_body_get_object): New function to create
8400         a MethodBody object.
8401
8402         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8403
8404 2004-10-11  Martin Baulig  <martin@ximian.com>
8405
8406         * metadata.c (_mono_metadata_type_equal): Renamed to
8407         do_mono_metadata_type_equal() and made static.
8408
8409 2004-10-11  Martin Baulig  <martin@ximian.com>
8410
8411         * appdomain.c: Bump corlib version number to 28.
8412
8413 2004-10-10  Martin Baulig  <martin@ximian.com>
8414
8415         * class-internals.h
8416         (MonoGenericInst): Added `MonoGenericContainer *container'.
8417         (MonoGenericMethod): Likewise.
8418         (MonoGenericContext): Likewise.
8419         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8420
8421         * metadata.c
8422         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8423         (do_mono_metadata_parse_generic_inst): Likewise.
8424         (mono_metadata_parse_type_full): New public method.  This is the actual
8425         mono_metadata_parse_type() implementation - with an additional
8426         `MonoGenericContainer *' argument.
8427         (mono_metadata_parse_array_full): Likewise.
8428         (mono_metadata_parse_signature_full): Likewise.
8429         (mono_metadata_parse_method_signature_full): Likewise.
8430         (mono_metadata_parse_mh_full): Likewise.
8431         (mono_type_create_from_typespec): Likewise.
8432         (mono_metadata_interfaces_from_typedef_full): New public method;
8433         this is similar to the other _full() methods, but we take a
8434         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8435         (mono_metadata_parse_generic_param): Take an additional
8436         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8437         from that container.
8438         (mono_metadata_generic_param_equal): New static method to compare
8439         two type parameters.
8440         (_mono_metadata_type_equal): New static method; takes an
8441         additional `gboolean signature_only' argument - if true, we don't
8442         compare the owners of generic parameters.
8443         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8444         with a TRUE argument - do a signature-only comparision.
8445
8446         * loader.c: Use the new _full() methods and pass the
8447         MonoGenericContainer to them.
8448
8449         * object-internals.h (MonoReflectionTypeBuilder): Added
8450         `MonoGenericContainer *generic_container' field.
8451         (MonoReflectionMethodBuilder): Likewise.
8452
8453 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8454
8455         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8456         case initial images of dynamic assemblies.
8457
8458         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8459
8460         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8461
8462         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8463         length of event->other array.
8464         (typebuilder_setup_events): Ditto.
8465
8466         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8467         'assembly_by_name' and add an 'assemblies' list.
8468
8469         * assembly.h assembly.c: Add a new search hook for determining whenever
8470         an assembly is already loaded. Use this instead of searching in the
8471         loaded_assemblies list.
8472
8473         * domain.c appdomain.c: Implement the new search hook so loaded 
8474         assemblies are now scoped by appdomain. Fixes #67727.
8475
8476 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8477
8478         * threads.c (mono_thread_attach): Initialize synch_lock field so
8479         mono_thread_detach works again.
8480
8481         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8482         'lib' too. Fixes #63130.
8483
8484 2004-10-06  Jackson Harper  <jackson@ximian.com>
8485
8486         * culture-info-tables.h: regenerated.
8487
8488 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8489
8490         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8491         implemented by other interfaces in the result. Fixes #65764.
8492         
8493         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8494         Handle unloadable modules without crashing.
8495
8496         * image.c (load_modules): Revert the previous patch since modules must
8497         have a fixed index inside the array.
8498         
8499         * image.c (load_modules): Don't include native modules in the modules
8500         array.
8501
8502 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8503
8504         * reflection.h: Add param_defaults field.
8505
8506         * reflection.c: Add support for parameter defaults in dynamic methods.
8507         Fixes #64595.
8508
8509         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8510         an empty string when a type has no namespace. Fixes #64230.
8511
8512 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8513
8514         * tabledefs.h: Added "internal" security actions to support non-CAS
8515         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8516         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8517
8518 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8519
8520         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8521         constructor of abstract class. Fixes #61689.
8522
8523 2004-10-04  Martin Baulig  <martin@ximian.com>
8524
8525         * class-internals.h (MonoGenericContainer): New type.
8526         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8527         `MonoGenericContainer *generic_container'.
8528         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8529         `MonoGenericContainer *generic_container'.
8530
8531         * metadata.c (mono_metadata_load_generic_params): Return a
8532         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8533         removed the `num' argument.
8534
8535 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8536
8537         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8538         for dynamic images.
8539
8540         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8541         machine fields.
8542
8543         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8544
8545         * reflection.c: Save pe_kind and machine values into the generated
8546         image file.
8547
8548         * appdomain.c: Bump corlib version number.
8549
8550         * object-internals.h: Reorganize layout of LocalBuilder.
8551
8552         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8553         New helper function.
8554
8555         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8556         created MonoType for dynamic types. Fixes #66180.
8557
8558 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8559
8560         * threadpool.c: the ares hashtable needs a critical section around it.
8561         this prevents some nasty segfaults
8562
8563 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8564
8565         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8566         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8567         bug 67324).
8568         
8569 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8570
8571         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8572         
8573 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8574
8575         * image.c: Always canonicalize image file names, to avoid loading
8576         the same assembly twice when referenced using a relative path.
8577
8578 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8579
8580         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8581
8582         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8583
8584         * marshal.c: Fix warnings.
8585
8586 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8587
8588         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8589         attempting to marshal the delegate_trampoline as the method_addr.
8590         This patch has a static hashtable of marshalled delegates so that 
8591         we can map delegate_trampoline addresses back to delegates.  This
8592         allows a delegate passed to managed code to be passed back into native
8593         code.  Fixes #67039
8594
8595 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8596
8597         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8598
8599         * reflection.c (method_encode_code): Align method headers properly.
8600         Fixes #66025.
8601
8602 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8603
8604         * marshal.c: In the runtime invoke wrapper, reset the abort
8605         exception if it is cached. This avoids the automatic rethrowal of 
8606         the exception after the catch of the wrapper. Also check for pending
8607         interruptions before calling the managed method. This is done using
8608         the new method emit_thread_force_interrupt_checkpoint, since the
8609         normal checkpoint method is ignored when running the invoke wrapper.
8610         * object.c: If the abort exception is rethrown, set the abort_exc
8611         field of the thread, so it will be rethrown aftere every catch.
8612         * threadpool.c: Only run an interruption checkpoint if what has been
8613         requested is a stop of the thread (aborts will be ignored).
8614         * threads.c: By default, a thread will now never be interrumped while
8615         running the runtime invoke wrapper (this ensures that runtime_invoke
8616         will always return to the caller if an exception pointer is provided).
8617         There is a new special method mono_thread_force_interruption_checkpoint()
8618         to force an interruption checkpoint even if running a protected
8619         wrapper, which is used by the same runtime invoke wrapper to do a check
8620         at a safe point.
8621
8622 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8623
8624         * object.c, object-internals.h: Implemented mono_release_type_locks,
8625         which releases the cctor locks held by a thread.
8626         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8627         by a thread. Added mono_thread_exit() method to be used to safely stop
8628         a thread.
8629
8630 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8631
8632         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8633         Move null check before dereference.  Avoid indexing beyond the end
8634         of the 'modules' array.
8635
8636 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8637
8638         * metadata-internals.h (MonoImage): Add module_count field.
8639         * image.c (load_modules): Set image->module_count.
8640         (mono_image_load_file_for_image): Use image->module_count.
8641         * reflection.c (mono_image_load_module): Append to image->modules array 
8642         of dynamic assembly.
8643         (mono_module_get_object): Fix loop to actually increment index.
8644         Use image->module_count.
8645         * assembly.c (mono_assembly_load_references): Use image->module_count.
8646         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8647         Likewise.
8648
8649 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8650
8651         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8652         Avoid assert on generic types.
8653
8654 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8655
8656         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8657
8658         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8659
8660         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8661         function to convert a MarshalSpec structure to its managed counterpart.
8662
8663         * reflection.c: Fix warnings.
8664         
8665         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8666         field.
8667
8668         * icall.c (mono_create_icall_signature): Fix build.
8669
8670 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8671
8672         * icall.c: Add MakePointType icall.
8673
8674         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8675         warnings.
8676
8677 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8678
8679         * threadpool.c: reuse allocated slots in the queue.
8680
8681 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8682
8683         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8684
8685         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8686
8687         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8688         previous change.
8689
8690         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8691         ThrowOnUnmappableChar.
8692
8693         * icall.c (ves_icall_Type_GetPacking): New icall.
8694
8695 2004-09-24  Martin Baulig  <martin@ximian.com>
8696
8697         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8698
8699 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8700
8701         * appdomain.c:
8702         (mono_domain_set): allow setting a domain that is being unloaded.
8703         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8704         being unloaded.
8705
8706 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8707
8708         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8709         the GetCustomAttributes icall.
8710
8711 2004-09-23  Martin Baulig  <martin@ximian.com>
8712
8713         * object-internals.h (MonoReflectionGenericParam): Replaced
8714         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8715         with `guint32 attrs'.
8716
8717 2004-09-23  Martin Baulig  <martin@ximian.com>
8718
8719         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8720
8721 2004-09-23  Martin Baulig  <martin@ximian.com>
8722
8723         * object-internals.h (GenericParameterAttributes): New enum.
8724
8725 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8726
8727         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8728         
8729         * class.c (init_events): Fill out event->other field.
8730
8731         * class.c: Fix warnings.
8732
8733         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8734
8735 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8736
8737         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8738         walk which doesn't supply the IL offset.
8739
8740 2004-09-22  Martin Baulig  <martin@ximian.com>
8741
8742         * reflection.c (mono_reflection_setup_internal_class): If we're
8743         System.ValueType, System.Object or System.Enum, set
8744         `klass->instance_size' and create the vtable.
8745         (mono_reflection_create_internal_class): If we're an enum type,
8746         get the base class from our current corlib.
8747
8748 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8749
8750         * reflection.h (MonoResolveTokenError): New type.
8751
8752         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
8753         icall.
8754
8755         * icall.c: Add an 'error' argument to the ResolveToken icalls.
8756
8757 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
8758
8759         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
8760         Support also calling constructors, but only for already allocated objects.
8761
8762 2004-09-17  Geoff Norton <gnorton@customerdna.com>
8763
8764         * reflection.c (type_get_qualified_name): If the klass is null
8765         return the typename to avoid a NullRefEx.
8766         (encode_cattr_value): Get the qualified name of the boxed type,
8767         not the underlying enumtype.  Fixes #62984.
8768
8769 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
8770
8771         * marshal.c: Fix problems with previous checkin.
8772
8773 2004-09-21    <vargaz@freemail.hu>
8774
8775         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
8776         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
8777
8778         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
8779
8780 2004-09-21  Geoff Norton <gnorton@customerdna.com>
8781
8782         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
8783         should only return a type for pointers, arrays, and passbyref types.
8784         Fixes bug #63841.
8785
8786 2004-09-21  Martin Baulig  <martin@ximian.com>
8787
8788         * domain.c (mono_debugger_check_runtime_version): New public
8789         function.
8790
8791         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
8792
8793 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
8794
8795         * reflection.c: Added missing sort to the declarative security 
8796         attributes table. MS implementation stops seeing the attributes if the
8797         token number regress in the table (as shown by ildasm and permview).
8798
8799 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
8800
8801         * object-internals.h (MonoReflectionModule): Add 'token' field.
8802         
8803         * reflection.c (mono_reflection_get_token): Add support for Module
8804         and Assembly.
8805         (mono_module_get_object): Set 'token' field.
8806         (mono_module_file_get_object): Set 'token' field.
8807
8808         * icall.c: Add new Assembly and Module icalls.
8809
8810         * appdomain.c: Bump corlib version.
8811
8812 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
8813
8814         * loader.h loader.c class.h class.c: Add helper functions for obtaining
8815         tokens of metadata objects.
8816
8817         * reflection.h reflection.c (mono_reflection_get_token): New function
8818         to obtain the token of a metadata object.
8819
8820         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
8821
8822 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
8823
8824         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
8825         
8826         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
8827
8828 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
8829
8830         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
8831         * object-internals.h: Added 3 MonoArray* members to MonoReflection
8832         AssemblyBuilder to access the permissions set in the class lib.
8833         * reflection.c: Added security attributes encoding step in 
8834         mono_image_build_metadata.
8835         * tabledefs.h: Added new security actions defined in 2.0:
8836         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
8837
8838 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
8839
8840         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
8841         macro parameter.
8842
8843 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
8844  
8845         * locales.c: nullify the ICU_collator member of CompareInfo when it is
8846           finalized. There where random SIGSEVs at program termination, when
8847           an object being finalized was trying to do a string comparison and
8848           the current culture was already finalized.
8849  
8850 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8851
8852         * threads.c: call thread_cleanup before finishing the thread if we get
8853         there.
8854
8855 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
8856
8857         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
8858         assemblies from the parent. Fixes #65665.
8859
8860 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
8861
8862         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
8863         modifiers.
8864
8865 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
8866
8867         * reflection.h: add prototype for mono_get_dbnull_object
8868         * reflection.c: add prototypes for get_default_param_value_blobs 
8869         and mono_get_object_from_blob for fussier compilers
8870
8871 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
8872  
8873         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
8874         false deadlock checks in class initialization.
8875  
8876 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
8877
8878         * image.c (mono_image_addref): Fix comment.
8879
8880         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
8881         possible.
8882
8883 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
8884
8885         * reflection.c (mono_param_get_objects): Modified to return
8886         ParameterInfo.DefaultValue object.
8887
8888         (get_default_param_value_blobs):
8889         (mono_get_object_from_blob):
8890         (mono_get_dbnull_object): New helper routines. 
8891
8892         * object.c (mono_get_constant_value_from_blob): New helper routine
8893         carved out from get_default_field_value ()
8894
8895         * object-internals.h (mono_get_constant_value_from_blob): Added
8896         function declaration.
8897
8898 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
8899
8900         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
8901         referenced assemblies. Fixes #62135.
8902
8903         * exception.h exception.c (mono_get_exception_file_not_found2): New
8904         helper function.
8905
8906 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
8907
8908         * class.h class.c: Add mono_type_get_underlying_type ().
8909
8910 2004-09-09  Geoff Norton <gnorton@customerndna.com>
8911
8912         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
8913         Fix GetTypes() to support dynamically created assemblies.
8914
8915 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
8916
8917         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
8918         
8919         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
8920         previous patch.
8921
8922         * reflection.h reflection.c loader.c: Allow dynamic construction of
8923         pinvoke methods. Fixes #65571.
8924         
8925         * reflection.c (mono_reflection_get_type): Revert previous change since
8926         it causes regressions.
8927
8928 2004-09-08  Martin Baulig  <martin@ximian.com>
8929
8930         * class.c (class_compute_field_layout): Don't call
8931         mono_class_layout_fields() for open generic instances.
8932
8933 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
8934         * threads.c appdomain.c: fix typo in GC macro
8935
8936 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8937
8938         * threads.c: don't call mono_thread_detach() in start_wrapper(),
8939         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
8940
8941 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
8942
8943         * image.c (mono_image_close): Applied patch from 
8944         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
8945         assembly is loaded multiple times from data.
8946         
8947         * image.c (mono_image_open): Fix warning.
8948
8949 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8950
8951         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
8952         once. Fixes #58334.
8953         
8954         * reflection.c (mono_reflection_create_runtime_class): Initialize
8955         klass->nested_classes. Fixes #61224.
8956
8957 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8958
8959         * threads.c: sched_yield() on exit, to allow threads to quit.
8960
8961 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8962
8963         * object.c (mono_unhandled_exception): Remove leftover debug code.
8964
8965 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
8966
8967         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
8968
8969 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8970
8971         * marshal.c (emit_marshal_array): Really null terminate string arrays.
8972         
8973         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
8974
8975 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8976
8977         * marshal.c (emit_marshal_array): Null terminate string arrays.
8978         
8979         * marshal.c (raise_auto_layout_exception): Fix warning.
8980
8981         * reflection.c (mono_param_get_objects): Initialize the default value
8982         with DBNull.Value, not null. Fixes #62123.
8983
8984 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
8985
8986         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
8987         throw an exception with a cute explanation.
8988
8989 2004-09-06  Dick Porter  <dick@ximian.com>
8990
8991         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
8992         Close the new process's thread handle, as we don't use it.  The
8993         handle stays around forever otherwise.
8994
8995 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8996
8997         * object.c (arith_overflow): Fix warning.
8998
8999         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9000         calling conventions in method refs. Fixes #65352.
9001
9002         * reflection.c: Fix warnings.
9003
9004 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9005
9006         * icall.c: Add a new icall for Array.Clear
9007
9008 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9009
9010         * object.c: When allocating an array, we have to throw
9011         an overflow exception if any of the lengths are < 0.
9012
9013 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9014
9015         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9016         properly. Also move implementation of string array marshalling to 
9017         managed code. Fixes #42316.
9018
9019 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9020
9021         * assembly.c: provide more information when loading an assembly fails.
9022
9023 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9024
9025         * filewatcher.c: don't expect the development fam package to be
9026         installed.
9027
9028 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9029
9030         * marshal.c: Make a copy of the signature cookie since it will be
9031         freed by the caller.
9032         
9033         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9034
9035         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9036
9037         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9038         marshal specs.
9039
9040         * marshal.c: More refactoring.
9041         
9042         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9043         smaller functions.
9044
9045 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9046
9047         * object.c: In mono_message_invoke, fill the output parameter array after
9048           calling the managed method (it was done before the call). This fixes
9049           bug #59299.
9050
9051 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9052
9053         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9054         as well.
9055
9056 2004-09-02  Martin Baulig  <martin@ximian.com>
9057
9058         * class.c (mono_class_instance_size): Don't allow generic type
9059         definitions or open generic instances.
9060         (mono_class_array_element_size): If we're a value type, call
9061         mono_class_instance_size() on the original class.
9062
9063         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9064         handle generic instances.
9065
9066         * mono-debug-debugger.c (write_type): Handle generic instances
9067         like classes.
9068
9069 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9070
9071         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9072         the allocation request fails. Fixes #65089.
9073
9074         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9075         
9076         * object.c (mono_runtime_free_method): New function to free a dynamic
9077         method.
9078
9079         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9080         delegate trampoline.
9081
9082         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9083         with hasthis as dynamic,
9084
9085         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9086
9087         * domain.c (mono_jit_info_table_remove): New function to remove an
9088         entry from the jit info table.
9089
9090         * class-internals.h (MonoMethod): Add 'dynamic' field.
9091
9092         * loader.c: Fix warnings.
9093
9094 2004-09-01  Martin Baulig  <martin@ximian.com>
9095
9096         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9097         instead of mono_debugger_lock() because the latter one is a no-op
9098         unless running in the debugger.
9099
9100 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9101
9102         * class.c (class_compute_field_layout): Classes with auto-layout or
9103         reference fields are not blittable.
9104         
9105 2004-09-01  Dick Porter  <dick@ximian.com>
9106
9107         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9108         mono_image_get_filename() to get the assembly location.
9109
9110         * icall.c:
9111         * metadata.h: Fix compile warnings
9112
9113 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9114
9115         * class.c (class_compute_field_layout): System.Object is blittable.
9116
9117         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9118         as in/out. Fixes #59909.
9119
9120 2004-09-01  Martin Baulig  <martin@ximian.com>
9121
9122         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9123         mono_metadata_generic_inst_is_valuetype() if we're a generic
9124         instance to check whether our underlying type is a reference type.
9125
9126 2004-09-01  Martin Baulig  <martin@ximian.com>
9127
9128         * metadata.c (mono_type_size): If we're a generic instance, call
9129         mono_class_value_size() for value types.
9130
9131 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9132
9133         * marshal.c: Implement more custom marshalling functionality. Fixes
9134         #64915.
9135
9136 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9137
9138         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9139
9140 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9141
9142         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9143
9144         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9145
9146         * icall.c: Fix some warnings.
9147
9148         * threads.c (abort_appdomain_thread): Fix unref errors.
9149         (mono_thread_current): Fix THREAD_DEBUG define.
9150
9151 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9152
9153         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9154
9155         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9156
9157 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9158
9159         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9160         string arrays.
9161
9162 2004-08-28  Martin Baulig  <martin@ximian.com>
9163
9164         * metadata.c
9165         (mono_metadata_generic_inst_is_valuetype): New public function.
9166
9167         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9168         mono_metadata_generic_inst_is_valuetype() if we're a generic
9169         instance to check whether our underlying type is a valuetype.
9170
9171 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9172
9173         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9174         #63768.
9175
9176 2004-08-25  Martin Baulig  <martin@ximian.com>
9177
9178         * loader.c (mono_get_method_from_token): Abstract methods can also
9179         be generic and thus have type parameters.
9180
9181         * metadata-internals.h
9182         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9183
9184         * reflection.c (mono_image_get_generic_param_info): Don't create a
9185         metadata row, just add an entry to the `gen_params' array.
9186         (build_compressed_metadata): Sort the `gen_params' array and then
9187         actually create the metadata.
9188
9189 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9190
9191         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9192
9193 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9194
9195         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9196
9197 2004-08-24  Martin Baulig  <martin@ximian.com>
9198
9199         * class.cs (mono_class_is_subclass_of): Like an interface, a
9200         generic instance also derives from System.Object.
9201
9202 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9203
9204         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9205         custom modifiers to be in any order. Fixes #61990.
9206
9207 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9208
9209         * object.c: Register mono_object_new_fast icall.
9210         
9211         * object.c (mono_class_get_allocation_ftn): Return to calling
9212         mono_object_new_fast, since it seems faster to compute the object 
9213         size in unmanaged code than passing it as a parameter.
9214
9215         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9216
9217         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9218         this function with Boehm as the oom handler, so we don't have to check
9219         the result of GC_malloc.
9220
9221         * object.c: Remove checks for oom.
9222
9223         * object.h object.c (mono_class_get_allocation_ftn): New function to
9224         return the icall which can be used to allocate an instance of a given
9225         class. 
9226
9227         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9228
9229         * class-internals.h: Add 'enabled' field.
9230
9231 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9232
9233         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9234
9235 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9236         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9237         value 0x0010.
9238
9239 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9240
9241         * appdomain.c: use the Tls function for appdomain too,
9242         at Zoltan's request. Actually return in mono_context_get
9243
9244         * appdomain.c, profiler.c, threads.c: use __thread
9245
9246 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9247
9248         * appdomain.c threads.c: Call GC_CreateThread on windows.
9249
9250         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9251         multiple libraries since this don't work on windows.
9252
9253 2004-08-18  Martin Baulig  <martin@ximian.com>
9254
9255         * class-internals.h
9256         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9257         MonoMethodHeader.
9258
9259         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9260         MonoMethodNormal since we also need it for abstract and interface
9261         methods.
9262
9263         * reflection.c
9264         (build_compressed_metadata): Sort the GenericParam table.
9265         (mono_image_create_token): Added `gboolean create_methodspec'
9266         argument; this is false when generating a MethodImpl token.
9267         (reflection_methodbuilder_to_mono_method): Abstract and interface
9268         methods may also have generic parameters.
9269
9270 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9271
9272         * appdomain.c: thread local alloc
9273
9274 2004-08-17  Martin Baulig  <martin@ximian.com>
9275
9276         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9277
9278         * icall.c
9279         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9280         argument.
9281
9282         * class.c (mono_type_get_full_name): New public function.
9283         (mono_type_get_name): Don't include the type arguments.
9284
9285 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9286
9287         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9288         for inclusion into the mono executable.
9289
9290 2004-08-16  Martin Baulig  <martin@ximian.com>
9291
9292         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9293         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9294
9295 2004-08-14  Martin Baulig  <martin@ximian.com>
9296
9297         * class.c (dup_type): Also copy the `byref' field.
9298
9299 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9300
9301         * reflection.c (create_dynamic_mono_image): Revert the last change 
9302         since it breaks bootstrap.
9303
9304 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9305
9306         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9307
9308         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9309         not free them with g_free.
9310
9311 2004-08-11  Martin Baulig  <martin@ximian.com>
9312
9313         * reflection.c (mono_reflection_setup_internal_class): Also call
9314         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9315
9316 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9317
9318         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9319         called during default (first) AppDomain creation. Keep track of
9320         Evidence when loading assemblies.
9321
9322 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9323
9324         * opcodes.c, opcodes.h: reduce runtime relocations.
9325
9326 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9327
9328         * culture-info.h, locales.c: fixes and chages to sue the new
9329         optimized format of the locale data.
9330         * culture-info-tables.h: regenerated.
9331
9332 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9333         
9334         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9335
9336 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9337
9338         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9339         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9340         * domain-internals.h: icall declaration.
9341         * icall.c: icall registration.
9342         * object-internals.h: New fields in MonoAssembly for CAS.
9343
9344 2004-08-05  Duncan Mak  <duncan@ximian.com>
9345
9346         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9347         CEE_LDELEM_ANY.
9348
9349 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9350
9351         * reflection.c: fix to deal with object[] arrays in custom ctors
9352         (bug #62550).
9353
9354 2004-08-05  Martin Baulig  <martin@ximian.com>
9355
9356         * class.c (mono_class_array_element_size): Added support for
9357         generic instances and correctly handle "recursive" types.
9358
9359 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9360
9361         * assembly.c: Fix warnings.
9362
9363 2004-08-04  Martin Baulig  <martin@ximian.com>
9364
9365         * class.c
9366         (mono_type_get_name_recurse): Added `gboolean include_arity'
9367         argument specifying whether or not we should include the generic
9368         arity in the type name.
9369         (_mono_type_get_name): New static function.
9370         (mono_class_setup_vtable): If we're a generic instance, don't
9371         include the generic arity in the names of explicit method
9372         implementations.        
9373
9374 2004-08-03  Martin Baulig  <martin@ximian.com>
9375
9376         * class.c (mono_type_get_name_recurse): Enclose the generic type
9377         arguments in `<', '>'.
9378
9379 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9380
9381         * gc.c: make GC warning messages use the trace API, they are just
9382         noise to most of the users.
9383
9384 2004-08-03  Martin Baulig  <martin@ximian.com>
9385
9386         * debug-mono-symfile.c (read_string): Correctly read the string.
9387
9388 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9389
9390         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9391         
9392         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9393         icalls.
9394         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9395
9396 2004-07-30  Martin Baulig  <martin@ximian.com>
9397
9398         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9399         Reflect latest symbol writer changes.   
9400
9401 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9402
9403         * object.c: always create an object if null is passed
9404         to Invoke() where a valuetype is expected.
9405
9406 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9407
9408         * marshal.c (mono_marshal_init): make managed
9409         signatures match native ones better for 64bits.
9410
9411 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9412
9413         * appdomain.c: hack to build correctly the private bin path on windows.
9414         Fixes bug #61991.
9415
9416 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9417
9418         * assembly.c: Load mscorlib from the correct framework directory
9419           (mono/<version>/mscorlib.dll).
9420         * appdomain.h: Added prototypes for new functions.
9421         * internals.h: Added some prototypes.
9422         * domain.c: When initializing the runtime, get from the executable and
9423           the configuration files the runtime version that the app supports.
9424           Added support methods for reading app.exe.config. Added list of versions
9425           supported by the JIT. Added two new methods: mono_init_from_assembly,
9426           which initializes the runtime and determines the required version from
9427           the provided exe file, and mono_init_version, which initializes
9428           the runtime using the provided version.
9429         * icall.c: Get machine.config from version-specific directory.
9430         * reflection.c: When generating an image, embed the version number
9431           of the current runtime.
9432
9433 2004-07-28  Dick Porter  <dick@ximian.com>
9434
9435         * socket-io.c
9436         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9437         returned sockaddr size before creating the remote address object.
9438         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9439         61608.
9440
9441 2004-07-28  Dick Porter  <dick@ximian.com>
9442
9443         * locales.c (string_invariant_compare_char): Fix invariant char
9444         compares between upper and lower cases.  Fixes bug 61458.
9445
9446 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9447         
9448         * marshal.c: actually cache stelem.ref wrappers.
9449         
9450 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9451
9452         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9453         sections and remove the mono_cli_rva_map () function.
9454
9455 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9456
9457         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9458         by Geoff Norton (<gnorton@customerdna.com>).
9459
9460 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9461
9462         * class.c: fix class loads for pointer types (typeof(int) !=
9463         typeof(int*)).
9464
9465 2004-07-27  Martin Baulig  <martin@ximian.com>
9466
9467         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9468         reading the debugging information from an external ".mdb" file.
9469
9470 2004-07-24  Martin Baulig  <martin@ximian.com>
9471
9472         * reflection.c (mono_image_get_type_info): Only write a class
9473         layout entry if we actually have a size or a packing size.
9474
9475 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9476
9477         * reflection.c (type_get_fully_qualified_name): 
9478         insert cast to get type checking of ?: with non-gcc compilers
9479
9480 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9481
9482         * rand.c: use g_getenv for both lookups of
9483         MONO_EGD_SOCKET
9484
9485 2004-07-17  Martin Baulig  <martin@ximian.com>
9486
9487         * reflection.c (mono_reflection_bind_generic_method_parameters):
9488         Set `gmethod->reflection_info'.
9489
9490 2004-07-17  Martin Baulig  <martin@ximian.com>
9491
9492         * class.c (mono_class_create_from_typedef): Insert the newly
9493         created class into the hash table before computing the interfaces
9494         since we could be called recursively.
9495
9496 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9497
9498         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9499         function to implement stelem.ref in managed code
9500         * class-internals.h, debug-helpers.c: a new wrapper type
9501         for the above.
9502
9503 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9504
9505         * gc.c: allow GC handles to work even when no GC is compiled in.
9506         Fix part of bug #61134 (GetAddrOfPinnedObject).
9507
9508 2004-07-13  Peter Williams  <peter@newton.cx>
9509  
9510         * process.c (complete_path): Make sure we don't attempt to execute
9511         directories.
9512  
9513 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9514
9515         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9516           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9517           and will add/subtract the hour if needed
9518
9519 2004-07-12  Martin Baulig  <martin@ximian.com>
9520
9521         * reflection.c (mono_field_get_object): If we have
9522         `field->generic_info', take the attributes from
9523         `field->generic_info->generic_type'.    
9524
9525 2004-07-12  Martin Baulig  <martin@ximian.com>
9526
9527         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9528         This function must be called before initializing the runtime.
9529         (mono_debug_init_1): New function; call this after initializing
9530         the runtime, but before loading the assembly.  It tells the
9531         debugger to load corlib and the builtin types.
9532
9533         * mono-debug-debugger.c: Did some larger changes in the debugging
9534         code; support recursive class declarations, make sure we actually
9535         add all classes.
9536
9537 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9538
9539         * debug-helpers.c: undo my previous patch and fixed the real issue in
9540         ../mini/exceptions-x86.c
9541
9542 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9543
9544         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9545         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9546         called from other .cctors.
9547
9548 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9549
9550         * loader.c: Removed the mono_loader_wine_init hack now that we are
9551         doing a managed version of Windows.Forms.
9552
9553 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9554
9555         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9556         threadpool.c, threads.c: remove static data from rootset.
9557
9558 2004-07-09  Dick Porter  <dick@ximian.com>
9559
9560         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9561         Don't do any more processing if the matched length was 0.  It was
9562         increasing the size of the string before.  Fixes bug 61167.
9563
9564 2004-07-09  Dick Porter  <dick@ximian.com>
9565
9566         * socket-io.h:
9567         * socket-io.c
9568         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9569         Add support for SO_PEERCRED if its available.
9570
9571 2004-07-09  Peter Bartok <pbartok@novell.com>
9572         * loader.c: winelib.exe.so error message is now only displayed if
9573         MONO_DEBUG is set. To help us avoid questions when people are trying
9574         out the new Managed.Windows.Forms.
9575
9576 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9577
9578         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9579         for isinst and castclass wrappers.
9580
9581         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9582         to libmetadata from the JIT, so they could be used by the marshalling
9583         code and the interpreter.
9584
9585         * marshal.c: Register marshalling related JIT icalls here instead of
9586         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9587         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9588
9589         * metadata.h: Remove unneeded marshalling conversions.
9590
9591         * opcodes.c: Update for new opcodes.
9592         
9593 2004-07-08  Martin Baulig  <martin@ximian.com>
9594
9595         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9596         (mono_debug_get_domain_data): Make this function static.
9597
9598 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9599
9600         * gc.c, object.h: add nice GC handle API for embedders.
9601
9602 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9603
9604         * reflection.c: more changes for the new api
9605
9606         * object.c: When we reflect on a field w/ a constant value, it
9607         will not have a memory location, so we must access metadata. Also,
9608         allow easier reading of strings so that we can read them from
9609         the constant data.
9610
9611         * class.c (mono_class_layout_fields): no need for literal fields here.
9612
9613         * class-internals.h: api changes for const fields
9614
9615         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9616
9617 2004-07-06  Martin Baulig  <martin@ximian.com>
9618
9619         * mono-debug.h: Increment version number to 44.
9620
9621         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9622         now a gpointer, rewrote this whole method.
9623
9624         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9625         function.  Add information about the wrapper in a new "misc table".
9626
9627         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9628         for the new misc table.
9629
9630 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9631
9632         * metadata-internals.h image.c: Add a cache for helper signatures.
9633
9634         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9635
9636 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9637
9638         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9639         delegates from a delegate. Fixes #61033.
9640         
9641         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9642         marshalling of stringbuilder arrays. Fixes #59900.
9643
9644 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9645
9646         * icall.c: Add EnumBuilder:setup_enum_type icall.
9647
9648 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9649
9650         * icall.c: Added a new icall for the property version of
9651         OffsetOfStringData.
9652
9653 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9654
9655         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9656         it has a constant size across platforms.
9657
9658         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9659         stack trace.
9660
9661 2004-06-29  Martin Baulig  <martin@ximian.com>
9662
9663         * mono-debug.c (mono_debug_add_method): Protect the whole function
9664         in mono_debugger_lock(), not just parts of it.
9665
9666 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9667
9668         * reflection.c: make sure padding bytes in heaps are zeroed.
9669
9670 2004-06-24  David Waite  <mass@akuma.org>
9671
9672         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9673         image.c, loader.c, locales.c, marshal.c, metadata.c,
9674         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9675         string-icalls.c, threads.c: change to C90-style comments from C99 /
9676         C++ -style
9677
9678 2004-06-24  Dick Porter  <dick@ximian.com>
9679
9680         * threads.c
9681         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9682         return createdNew.  Fixes bug 60412.
9683
9684         * threads-types.h: 
9685         * icall.c: Add createdNew parameter to CreateMutex icall
9686
9687 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9688
9689         * reflection.c, object-internals.h: save default value in params.
9690
9691 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9692
9693         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9694         no need to build a new path combining that with the application base.
9695         Fixes bug #60442.
9696
9697 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9698
9699         * reflection.c: fixed minor standard compliance issues.
9700
9701 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9702
9703         * reflection.c: fixed issue with encoding some custom attributes
9704         (arrays in properties and fields, bug #60411).
9705
9706 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9707
9708         * reflection.c: fix start address when copying the public key token.
9709
9710 2004-06-23  Martin Baulig  <martin@ximian.com>
9711
9712         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9713         the `exc' object in a static object to put it into the GC's root set.
9714
9715 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9716
9717         * reflection.c: make mono_reflection_setup_internal_class ()
9718         callable a second time to setup a new parent class.
9719
9720 2004-06-23  Dick Porter  <dick@ximian.com>
9721
9722         * threads.c: Check for WAIT_IO_COMPLETION return values.
9723
9724 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9725
9726         * appdomain.c: Removed the g_free on the public key token. Now copy 
9727         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9728         * assembly.c: Added public key token string value when loading 
9729         assemblies. Fix bug #60439.
9730         * icall.c: Added missing informations (like public key) in 
9731         GetReferencedAssemblies. Fix #60519.
9732         * image.h: Changed definition for public key token from const char*
9733         public_tok_value to guchar public_key_token [17];
9734         * reflection.c: Updated for changes to public key token.
9735
9736 2004-06-22  Lluis Sanchez Gual
9737
9738         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9739         for the field in base classes.
9740
9741 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9742
9743         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9744         mark headers as not supported, they are installed only for use by the
9745         debugger.
9746
9747 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9748
9749         * *.c, *.h: avoid namespace pollution in public headers.
9750
9751 2004-06-21  Martin Baulig  <martin@ximian.com>
9752
9753         * exception.c (mono_get_exception_security): It's in
9754         "System.Security", not in "System".
9755
9756         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
9757         the exception classes.
9758
9759 2004-06-21  Martin Baulig  <martin@ximian.com>
9760
9761         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
9762         Protect the exception object from being finalized.
9763
9764 2004-06-21  Martin Baulig  <martin@ximian.com>
9765
9766         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
9767         public function.
9768
9769 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
9770
9771         * reflection.c: Load the assembly in mono_reflection_type_from_name,
9772         if it was not loaded before. Fix parts of #60439.
9773
9774 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
9775
9776         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
9777         code that was broken since Ben's change: wrappers are now
9778         dependent on the method signature only again.
9779
9780 2004-06-21  Martin Baulig  <martin@ximian.com>
9781
9782         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
9783         added interface support.
9784
9785 2004-06-21  Martin Baulig  <martin@ximian.com>
9786
9787         * class.c (mono_vtable_get_static_field_data): New public method.
9788
9789 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
9790
9791         * filewatcher.c : Windows build fix to be compliant with API changes.
9792
9793 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9794
9795         * class.h, class.c: more accessors.
9796         * metadata.h, metadata.c: prepare for hiding MonoType and
9797         MonoMethodSignature: people should use the accessors from now on
9798         outside of the tree.
9799
9800 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9801
9802         * *.c, *.h: more API cleanups.
9803
9804 2004-06-18  Jackson Harper  <jackson@ximian.com>
9805
9806         * assembly.c: Trace loading assemblies.
9807         * loader.c: Trace loading native libraries.
9808         * mono-config.c: Trace loading config files.
9809         
9810 2004-06-18  Dick Porter  <dick@ximian.com>
9811
9812         * locales.c: Tell ICU the lengths of strings, it can cope with
9813         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
9814
9815 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
9816
9817         * image.c: swapped name/filename;
9818
9819 2004-06-18  Martin Baulig  <martin@ximian.com>
9820
9821         * mono-debug-debugger.c (write_class): Write the parent class at
9822         the end of the header.
9823
9824 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9825
9826         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
9827
9828 2004-06-17  Raja R Harinath  <rharinath@novell.com>
9829
9830         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
9831         (bundle_obj): New conditional define.
9832         (BUILT_SOURCES): Remove.
9833         ($(bundle_srcs)): Make parallel-make safe.
9834         (libmonoruntime_la_LIBADD): Make unconditional.
9835         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
9836         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
9837
9838 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
9839
9840         * culture-info-tables.h: It was inconsistent with the latest
9841           supp info files.
9842
9843 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
9844
9845         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
9846         be loaded.
9847
9848         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
9849         with gcc 2.95.
9850
9851 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9852
9853         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
9854         cleaned up public header threads.h.
9855
9856 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9857
9858         * Makefile.am, *.c, *.h: more API cleanups.
9859
9860 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
9861
9862         * Makefile.am: removed monosn from compilation.
9863         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
9864         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
9865         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
9866         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
9867         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
9868         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
9869
9870 2004-06-15  Jackson Harper  <jackson@ximian.com>
9871
9872         * assembly.c: Make locales lower case when searching the GAC for
9873         assemblies. gacutil will always make locales lowercase when
9874         installing so this effectively makes them case insensitive.
9875         
9876 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
9877
9878         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
9879         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
9880           parameter which allows to choose whether the wait can be interrupted or 
9881           not. Also added the method mono_monitor_enter(), which locks the monitor
9882           using an infinite wait and without allowing interruption.
9883           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
9884           interrupted.
9885         * object.h: Added new fields in MonoThread. suspend_event holds the event
9886           used to susped/resume the thread. synch_lock is the lock object to use for
9887           modifying the thread state.
9888         * threads.c: Use the new synch_lock object for locking, instead of "this",
9889           which can generate deadlocks.
9890           Moved thread state change in Thread.Sleep and Thread.Join from managed
9891           to unmanaged code. This avoids a deadlock when the thread was suspended
9892           just after acquiring the thread lock.
9893           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
9894           Implemented Thread.Suspend using an event instead of ThreadSuspend,
9895           which is not fully implemented in the io-layer.
9896         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
9897
9898 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
9899
9900         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
9901         threads-types.h: more API cleanups.
9902
9903 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9904
9905         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
9906         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
9907         threadpool.c, threads.c: first pass at the exported API cleanup.
9908
9909 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
9910
9911         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
9912
9913 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9914
9915         * icall.c: added internalGetHome.
9916
9917 2004-06-14  Dick Porter  <dick@ximian.com>
9918
9919         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
9920         possible to return successfully when '.' or '..' were the only
9921         entries in a directory, but were skipped.  The MonoIOStat was not
9922         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
9923         Fixes bug 59574.
9924
9925 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9926
9927         * reflection.c: make binaries run on .Net 1.1 by default.
9928
9929 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9930
9931         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
9932
9933 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
9934
9935         * marshal.c: keep track of struct size with explicit layout
9936         (bug #59979).
9937
9938 2004-06-12  Martin Baulig  <martin@ximian.com>
9939
9940         * mono-debug-debugger.c: Comment out a debugging g_message().
9941
9942 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9943
9944         * reflection.c, reflection.h: do not free custom attrs that are cached.
9945         * icall.c: use braces to make code clearer.
9946
9947 2004-06-11  Martin Baulig  <martin@ximian.com>
9948
9949         * class.h (MonoInflatedField): New type.
9950         (MonoClassField): Replaced `MonoType *generic_type' with
9951         `MonoInflatedField *generic_info'.
9952
9953         * icall.c
9954         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
9955
9956 2004-06-11  Martin Baulig  <martin@ximian.com>
9957
9958         * reflection.c (mono_image_create_method_token): Correctly encode
9959         varargs methods.
9960
9961 2004-06-11  Martin Baulig  <martin@ximian.com>
9962
9963         * metadata.c (mono_metadata_parse_method_signature): When parsing
9964         a MethodDef which has VarArgs, also set sentinelpos if we don't
9965         have any parameters.
9966
9967 2004-06-11  Martin Baulig  <martin@ximian.com>
9968
9969         * verify.c (mono_method_verify): In CEE_CALL, use
9970         mono_method_get_signature() to get the method's signature, unless
9971         we're a PInvoke method.
9972
9973 2004-06-10  Jackson Harper  <jackson@ximian.com>
9974
9975         * assembly.c: Use <path>/lib/mono/gac for the extra paths
9976         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
9977         logical name as the supplied path is just a prefix to the gac not
9978         the direct path to it.
9979         
9980 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
9981
9982         * reflection.c: make the token for a created method match
9983         the token of the MethodBuilder it was created from
9984         (IKVM requires this behaviour now).
9985
9986 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
9987
9988         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
9989         reflection.c, socket-io.c: leak fixes.
9990
9991 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
9992
9993         * icall.c: handle sentinel pos in vararg methods in position different
9994         from 0.
9995
9996 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9997
9998         * culture-info-tables.h: freshly generated.
9999
10000 2004-06-09  Martin Baulig  <martin@ximian.com>
10001
10002         * loader.c (mono_get_method_constrained): Call `mono_class_init
10003         (constrained_class)'.   
10004
10005 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10006
10007         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10008         any methods. Fixes #59629.
10009
10010 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10011
10012         * culture-info-tables.h: reflecting locale-builder updates.
10013
10014 2004-06-08  Dick Porter  <dick@ximian.com>
10015
10016         * object.h:
10017         * locales.c: Fixed compile warnings, including a real bug in
10018         CompareInfo_internal_compare.
10019         
10020 2004-06-08  Dick Porter  <dick@ximian.com>
10021
10022         * locales.c
10023         (ves_icall_System_Globalization_CompareInfo_internal_index):
10024         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10025         Double-check the resuls of usearches, because ICU currently
10026         ignores most of the collator settings here.  Fixes bug 59720.
10027         
10028 2004-06-08  Dick Porter  <dick@ximian.com>
10029
10030         * locales.c
10031         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10032         Fix memory leak and segfault-causing typo.  No idea how this one
10033         lasted so long without being noticed.
10034
10035 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10036
10037         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10038         any methods. Fixes #59629.
10039
10040 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10041
10042         * assembly.c:
10043         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10044         own the critical section before). Removed dead code (that's done
10045         in the preload hook).
10046
10047         (mono_assembly_load_with_partial_name): call the preload hook.
10048
10049 2004-06-08  Martin Baulig  <martin@ximian.com>
10050
10051         * metadata.c (mono_metadata_signature_alloc): Default
10052         `sentinelpos' to -1.
10053
10054         * reflection.c (mono_image_get_array_token): Likewise.
10055
10056 2004-06-08  Martin Baulig  <martin@ximian.com>
10057
10058         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10059
10060         * metadata.c (mono_metadata_parse_method_signature): When parsing
10061         a MethodDef which has VarArgs, set sentinelpos.
10062
10063         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10064         `gint16' since we're using -1 for non-varargs methods.
10065
10066         * reflection.c
10067         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10068         (method_encode_signature): Added varargs support.
10069         (method_builder_encode_signature): Likewise.
10070         (mono_image_get_varargs_method_token): New static method.
10071         (mono_image_create_method_token): New public method; this is
10072         called via an icall instead of mono_image_create_token() when
10073         calling a varargs method.       
10074
10075 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10076
10077         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10078
10079 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10080
10081         * culture-info-tables.h : Reflecting the latest locale-builder that
10082           fixed empty array representation ({} to {0}).
10083
10084 2004-06-07  Jackson Harper  <jackson@ximian.com>
10085
10086         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10087         looking up extra gac paths. This allows MONO_GAC_PATH to act
10088         exactly like a prefix.
10089         
10090 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10091
10092         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10093         type name before modifying it. Fixes #59405.
10094
10095 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10096
10097         * culture-info.h: added fields for "all datetime patterns".
10098         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10099           _construct_datetime_format ()): fill xxx_patterns fields.
10100         * object.h: added fields for "all datetime patterns" to
10101           MonoDateTimeFormatInfo.
10102         * culture-info-tables.h: reflecting locale-builder updates.
10103
10104 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10105
10106         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10107         the event has no add and remove methods. Fixes #59629.
10108
10109 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10110
10111         * object.c: Fixed possible integer overflow when allocating large
10112         strings.
10113
10114 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10115
10116         * culture-info-tables.h: reflecting locale-builder updates.
10117
10118 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10119
10120         * culture-info-tables.h: reflecting locale-builder updates.
10121
10122 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10123
10124         * culture-info-tables.h: reflecting locale-builder updates.
10125
10126 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10127
10128         * threads.c: Made Thread.Sleep abortable.
10129
10130 2004-06-02  Martin Baulig  <martin@ximian.com>
10131
10132         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10133
10134         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10135
10136 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10137
10138         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10139
10140 2004-05-30  Jackson Harper  <jackson@ximian.com>
10141
10142         * reflection.c: Do not hardcode assembly versions or public key
10143         tokens anymore. All of this except the corlib section was dead
10144         code anyways.
10145         
10146 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10147
10148         * object.c (mono_runtime_invoke_array): Automatically create boxed
10149         objects for byref valuetypes if needed. Fixes #59300.
10150         
10151         * object.c (mono_method_return_message_restore): Handle 
10152         MONO_TYPE_OBJECT as well.
10153
10154 2004-05-28  Jackson Harper  <jackson@ximian.com>
10155
10156         * reflection.c: The modified type encoding was causing build
10157         problems. Reverted for now.
10158         
10159 2004-05-28  Jackson Harper  <jackson@ximian.com>
10160
10161         * reflection.c/h: Take an assembly ref so that we dont create
10162         fully qualified names when encoding types in the same assembly as
10163         the custom attribute being emitted.
10164         * appdomain.c: Increment version number.
10165         
10166 2004-05-26  Duncan Mak  <duncan@ximian.com>
10167
10168         * icall.c
10169         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10170         Set the full version number (major, minor, build, revision).
10171
10172 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10173
10174         * marshal.c (emit_struct_conv): increment src/dst after blit
10175         (mono_marshal_get_managed_wrapper,
10176         mono_marshal_get_native_wrapper): make sure we have marshalling
10177         info before marshalling params (info computation affects
10178         blittable)
10179
10180         * class.c (class_compute_field_layout): correctly deal with
10181         blittable
10182         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10183         value types (as per what windows dows by default)
10184         (mono_class_setup_mono_type): System.ValueType is blittable
10185         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10186         blittable
10187
10188         * marshal.c (mono_marshal_load_type_info): flag types  as
10189         non-blittable if the native layout doesn't match the managed
10190         layout
10191
10192 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10193
10194         * appdomain.c: don't add stuff in the private search path that is
10195         above the application base. If application base is not set, there's
10196         no private search path.
10197
10198 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10199
10200         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10201         byref struct arguments in native->managed marshalling.
10202
10203 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10204
10205         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10206         cache methods using signature (special case for methods
10207         that are value type or string class)
10208         
10209         * image.c (mono_image_close): clean up allocated GSList's
10210         in runtime_invoke_cache.
10211
10212 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10213
10214         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10215         there's no MONO_CFG_DIR environment variable defined.
10216
10217 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10218
10219         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10220
10221 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10222
10223         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10224           is interrumped.
10225         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10226           before waiting for it, and call CloseHandle after the wait to unref it.
10227           This will make sure that handles are not disposed too early.
10228
10229 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10230
10231         * appdomain.c:
10232         * appdomain.h:
10233         * icall.c: removed
10234         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10235         needed now.
10236
10237         * object.c: se the application_base only for the domain that runs
10238         Main. Fixes bug #59216,
10239
10240 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10241
10242         * appdomain.c:
10243         * object.c: only the domain in which Main is run have
10244         SetupInformation.ConfigurationFile set, so moved a few lines from
10245         appdomain.c to object.c.
10246
10247 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10248
10249         * appdomain.c: we tried to load [name].(dll|exe), but according
10250         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10251         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10252         There's a test case attached to bug #58922.
10253
10254 2004-05-27  Dick Porter  <dick@ximian.com>
10255
10256         * icall.c:
10257         * file-io.c: Implemented icalls for locking and unlocking regions
10258         in a file.
10259         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10260         FALSE on error (fixes both compiler warning and real bug.)
10261
10262 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10263
10264         * culture-info-tables.h: reflecting locale-builder updates.
10265
10266           (Added missing ChangeLog entry for 05/26)
10267
10268 2004-05-27  Jackson Harper  <jackson@ximian.com>
10269
10270         * locales.c: Fix some cut and paste errors.
10271         
10272 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10273
10274         * mono-config.c: set the correct path for config. directory on windows.
10275
10276 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10277
10278         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10279           on win32.
10280
10281 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10282
10283         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10284         from pinvoke functions.
10285         
10286         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10287
10288 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10289
10290         * culture-info-tables.h: reflecting locale-builder updates.
10291
10292 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10293
10294         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10295         #59086.
10296
10297 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10298
10299         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10300         * icall.c: Modified icalls for RNG.
10301         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10302         Windows (CryptoAPI).
10303
10304 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10305
10306         * locales.c: Fix build.
10307
10308 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10309
10310         * culture-info-tables.h: reflecting locale-builder updates.
10311
10312 2004-05-25  Jackson Harper  <jackson@ximian.com>
10313
10314         * locales.c: When creating the current culture use the $LANGs
10315         specific culture. So DateTimeFormat and NumberFormat entries are created.
10316         
10317 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10318
10319         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10320         a char array as parameter.
10321
10322 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10323
10324         * image.c: In mono_image_open(), always use an absolute path name to
10325           look for already loaded images.
10326
10327 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10328
10329         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10330         missing in the windows build (like older cygwin include files).
10331
10332 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10333
10334         * icall.c: Fixed check for possible integer overflow in Buffer_
10335         BlockCopy icall. Replaced comments style // by /* */.
10336
10337 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10338
10339         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10340         
10341         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10342         check after MONO_VTADDR. Fixes pinvoke2.exe.
10343
10344         * marshal.h marshal.c metadata.h: Add beginnings of support for
10345         ftnptr -> delegate marshalling.
10346
10347 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10348
10349         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10350         * threads.c: Fix warnings.
10351
10352 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10353
10354         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10355         * icall.c: Registered icalls for Suspend and Resume.
10356         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10357           Thread.Abort.
10358         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10359         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10360         * process.c: Use WaitForSingleObjectEx.
10361         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10362           checkpoints.
10363         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10364           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10365           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10366           background threads. Added basic support for Abort in Windows.
10367           Start new threads using a managed delegate invoke wrapper. This wrapper
10368           has an interruption checkpoint that is needed since an interruption
10369           can be requested before the thread leaves the unmanaged code that starts 
10370           the thread.
10371         * marshal.c: Added interruption checkpoint after every native call, and
10372           also before managed calls for wrappers called from unmanaged code to
10373           go into managed code.
10374         * object.h: Added new field in MonoThread to keep track of interruption
10375           requests.
10376
10377 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10378
10379         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10380         calls.
10381
10382 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10383
10384         * appdomain.c:
10385         * assembly.c:
10386         * gc.c:
10387         * locales.c:
10388         * mono-config.c:
10389         * rand.c: getenv -> g_getenv (windows!)
10390
10391         * process.c: complete_path is also used on non-windows platforms.
10392
10393 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10394
10395         * icall.c: new signature for Process_Start.
10396
10397         * process.[ch]: new signature for Process_Start. If we're on windows
10398         and UseShellExecute is false, we have to search for the program by
10399         ourselves if we don't get a full path.
10400
10401 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10402
10403         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10404         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10405
10406 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10407
10408         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10409         Fixes bug #58373.
10410
10411 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10412
10413         * process.c: use double quotes to quote program name and arguments on
10414         windows. Fixes bug #58575.
10415
10416 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10417
10418         * file-io.c: don't return "." and ".." when using windows Find*File.
10419
10420 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10421
10422         * marshal.c: Don't pass wrappers to message init because method 
10423         addressed used to lookup metadata. part of remoting[2|3] fix.
10424
10425 2004-05-15  Jackson Harper  <jackson@ximian.com>
10426
10427         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10428         path is essentially the same as MONO_PATH except that it points to
10429         GACs instead of lib directories.
10430         * loader.h: The user gac is gone so we dont need function to
10431         enable/disable it.
10432         * mono-config.c: user gac option is now gone.
10433         
10434 2004-05-15  Jackson Harper  <jackson@ximian.com>
10435
10436         * culture-info.h: Make defines more consistent, add calendar data
10437         to the culture info table.
10438         * culture-info-tables.h: Add basic calendar data. Basically
10439         everyone gets default gregorian until all the data is
10440         updated.
10441         * locales.c: Use the new consistent defines. Set calendar data for
10442         culture info objects.
10443         * object.h: add a field for calendar data to CultureInfo
10444         
10445 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10446
10447         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10448         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10449         a signature.
10450         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10451         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10452         an extra param that is the pointer of the method to invoke. The IL for
10453         the invoke method is no longer specific to the method, but to the
10454         signature of the method. Thus, we can share the same code for multiple
10455         methods. This reduces the number of methods that have to be compiled.
10456
10457 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10458
10459         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10460
10461         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10462
10463         * icall.c: Optimize Buffer.BlockCopy.
10464
10465 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10466
10467         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10468         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10469         quote). Changed them to "MMMM yyyy".
10470
10471 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10472
10473         * rand.c
10474         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10475
10476 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10477
10478         * reflection.h: Updated after changes to managed structures.
10479
10480         * appdomain.c: Bump corlib version.
10481
10482 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10483
10484         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10485         windows.
10486
10487 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10488
10489         * Makefile.am: link to ../os/libmonoos.la on windows.
10490
10491         * assembly.c:
10492                 -If MONO_DEBUG, warn about non-existing directories in
10493                 MONO_PATH.
10494                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10495                 compile time variable.
10496                 -Removed init_default_path and call mono_set_rootdir from
10497                 libmonoos.a instead (windows only).
10498
10499         * assembly.h: declare mono_assembly_getrootdir().
10500
10501         * domain.c:
10502         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10503
10504         * loader.c: s/getenv/g_getenv/
10505
10506 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10507
10508         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10509
10510         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10511
10512         * metadata.h: Add new marshalling conversions.
10513
10514         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10515         function.
10516
10517         * reflection.c (mono_reflection_get_type): Lookup the type in all
10518         modules of a multi-module assembly. Fixes #58291.
10519
10520 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10521
10522         * threads.c: Before aborting a background, set the StopRequested
10523         state.  This avoids throwing the Abort exception.
10524         In mono_thread_manage, don't continue with the shutdown until all
10525         aborted threads have actually stopped.
10526
10527 2004-05-10  Jackson Harper  <jackson@ximian.com>
10528
10529         * locales.c: Remove the modifier from culture names.
10530         
10531 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10532
10533         * Makefile.am: monosn is not installed any more. It has been deprecated
10534         in favor of sn.
10535
10536 2004-05-07  Jackson Harper  <jackson@ximian.com>
10537
10538         * locales.c
10539         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10540         Fix array construction, add bailout if the length is 0.
10541
10542 2004-05-07  Dick Porter  <dick@ximian.com>
10543
10544         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10545         machine doesn't have a DNS entry.  Patch by Urs Muff
10546         (umuff@quark.com), fixes bug 57928.
10547
10548 2004-05-06  Jackson Harper  <jackson@ximian.com>
10549
10550         * reflection.c: Handle null PublicTokens properly. alloc mem for
10551         assembly names culture so we dont crash when freeing it.
10552         
10553 2004-05-06  Jackson Harper  <jackson@ximian.com>
10554
10555         * assembly.c: Check the usergac when loading with partial names.
10556         
10557 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10558
10559         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10560         does nothing for now (not required for Linux/Windows) but the class
10561         library can call it (and a newer or modified runtime could need it).
10562         * icall.c: Registred icall.
10563
10564 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10565
10566         * loader.c: prints a message on module loading error we set MONO_DEBUG
10567         environment variable.
10568
10569 2004-05-05  Jackson Harper  <jackson@ximian.com>
10570
10571         * appdomain.c: Handle PublicKeyToken=null properly.
10572         
10573 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10574
10575         * environment.c|h: Added icall ves_icall_System_Environment_
10576         GetOSVersionString to get the current OS version as a string.
10577         * icall.c: Registred icall.
10578
10579 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10580
10581         * object.c: in mono_object_get_virtual_method(), take into account that
10582         non-virtual methods don't have a slot in the vtable. Check needed when
10583         the object is a proxy.
10584
10585 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10586
10587         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10588         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10589
10590         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10591
10592         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10593         passed when a valuetype is expected.
10594
10595         * object.c (mono_unhandled_exception): Only set the exit code if the
10596         exception happens in the main thread. Fixes thread5.exe.
10597
10598         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10599         invalid names. Fixes #58047.
10600
10601 2004-05-03  Jackson Harper  <jackson@ximian.com>
10602
10603         * assembly.c: This line was committed accidently and is unneeded.
10604         
10605 2004-05-03  Jackson Harper  <jackson@ximian.com>
10606
10607         * icall.c: Add new icall for Assembly::LoadWithPartialName
10608         * assembly.c/.h: new function that probes the GAC to load partial
10609         assembly names by Paolo Molaro.
10610         
10611 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10612
10613         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10614         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10615         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10616         full type name.
10617
10618 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10619
10620         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10621         * reflection.c: fix bug when parsing a full type name and Version is not
10622         the last thing in the string.
10623
10624 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10625
10626         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10627         crashes when it is freed.
10628
10629 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10630
10631         * assembly.c: print the compat warning to stderr.
10632
10633 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10634
10635         * assembly.c (mono_assembly_load_references): Add a compatibility
10636         hack to run old applications that might be still referencing the
10637         3300-based assemblies, only do this for System.xxx.
10638
10639 2004-05-01  Jackson Harper  <jackson@ximian.com>
10640
10641         * appdomain.c: If the culture is neutral we set it to "".
10642         
10643 2004-04-29  Jackson Harper  <jackson@ximian.com>
10644
10645         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10646
10647 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10648  
10649         * string-icalls.c: added low overhead function for copying chars
10650         * icall.c: added needed icall for the above function
10651  
10652 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10653
10654         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10655         Environment.GetLogicalDrives.
10656
10657 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10658
10659         * rand.c: try and talk to egd or prngd
10660         for random bytes if opening devices fail.
10661
10662 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10663
10664         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10665         alignment for the type using the native alignment of its members 
10666         instead of using klass->min_align.
10667
10668         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10669
10670 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10671
10672         * file-io.c:
10673         * socket-io.c: added check for sys/aio.h.
10674
10675 2004-04-28  Dick Porter  <dick@ximian.com>
10676
10677         * threads.c: Don't abort a thread thats already aborting, when
10678         terminating everything.
10679
10680 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10681
10682         * icall.c: added 2 new async calls for Socket.
10683
10684         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10685         IO on *nix systems.
10686
10687         * threadpool.c: removed unused variable.
10688
10689 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10690
10691         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10692
10693 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10694
10695         * locales.c: put back string_invariant_tolower () and
10696         string_invariant_toupper ().
10697
10698 2004-04-26 David Waite <mass@akuma.org>
10699
10700         * file-io.h:
10701         * socket-io.h:
10702         * threads.h:
10703         * unicode.h: remove comma from end of enumeration declarations
10704
10705 2004-04-26 David Waite <mass@akuma.org>
10706
10707         * debug-mono-symfile.h:
10708         * decimal.c:
10709         * mono_debug.h:
10710         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10711
10712
10713 2004-04-26  Jackson Harper  <jackson@ximian.com>
10714
10715         * appdomain.c: Increment version number.
10716         
10717 2004-04-26  Jackson Harper  <jackson@ximian.com>
10718
10719         * appdomain.c: Set assembly references public token value when
10720         PublicKeyToken is specified, not the hash_value. Free public token
10721         values when free assembly name data. Previously the public key
10722         token was hex decoded, however we are using hex encoded public key
10723         tokens, so this is not neccasary.
10724         * assembly.c: Lookup assemblies in the gac if their public token
10725         value is set. Add function to allow enabling user gac
10726         lookups. Specify whether or not the assembly was loaded from the
10727         GAC. Compare full assembly names when checking the cache for
10728         assemblies (Temporarily disabled see comment in code). Remove
10729         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10730         specifies trace-loader they get extra info to stdout on the
10731         loading of assemblies.
10732         * image.h: Add a field for an assembly references public token
10733         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10734         whether an assembly has been loaded from the GAC.
10735         * image.c: Remove a corlib -> mscorlib name mapping.
10736         * loader.h: Add function to enable/disable the user gac.
10737         * mono-config.c: Check if the usergac is enabled in the config
10738         file.
10739         * icall.c: New icall to determine whether or not an assembly has
10740         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10741         * tabldefs.h: Add constant for assemblyref flag that specifies a
10742         full public key is used instead of a public token.
10743         * reflection.c: Remove mscorlib -> corlib mappings. Set
10744         PublicTokenValue instead of hash value. This value is a hex
10745         string so it does not need to be expanded.
10746
10747 2004-04-26  Martin Baulig  <martin@ximian.com>
10748
10749         * mono-debug-debugger.c (mono_debugger_initialize): Set
10750         `mono_debugger_initialized' before calling mono_debug_lock().
10751
10752 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
10753
10754         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
10755           InternalToUpper/InternalToLower.
10756         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
10757           removed invariant culture shortcut.  This is now done in managed code.
10758         * locales.c: (string_invariant_toupper/tolower) removed.
10759
10760 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10761
10762         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
10763         Added Poll internal call.
10764
10765         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
10766         call for Poll. Select was too heavy for polling a single socket.
10767
10768         * threadpool.[ch]: added mono_threadpool_cleanup.
10769         * threads.c: use it. Don't use Thread_Abort on windows.
10770
10771 2004-04-23  Martin Baulig  <martin@ximian.com>
10772
10773         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
10774
10775 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
10776
10777         * icall.c: Registred new icalls for key pair protection and added an
10778         icall for Environment.GetFolderPath on Windows.
10779         * security.c|h: Added new icalls for key pair protection.
10780
10781 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10782
10783         * socket-io.c: don't display the non-supported family warning for known
10784         families. Now this is not displayed on windows when checking support
10785         for IPv4/IPv6.
10786
10787 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10788
10789         * class.c: don't display the layout warning for static fields.
10790
10791 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
10792
10793         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
10794         * locales.c, locales.h: Added new icalls for culture-specific
10795         Char.ToLower and Char.ToUpper.
10796
10797 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10798
10799         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
10800         by David Waite.
10801
10802 2004-04-20  Martin Baulig  <martin@ximian.com>
10803
10804         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
10805         of the type name before passing it to mono_reflection_type_from_name().
10806
10807 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
10808
10809         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
10810         encodings here. Fixes #56965.
10811
10812 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
10813
10814         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10815         fix test on strstr result not that I can see anything that
10816         relies on the result.
10817
10818 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
10819
10820         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
10821         Fixes #57081.
10822
10823         * marshal.c (mono_marshal_get_string_encoding): New helper function.
10824
10825         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
10826         function to determine which marshalling to use for strings. Fixes
10827         #56965.
10828
10829         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
10830
10831         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
10832
10833 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
10834
10835         * icall.c: #include mono-config.h
10836
10837 2004-04-15  Jackson Harper  <jackson@ximian.com>
10838
10839         * culture-info-tables.h: Fix date formats for en-US culture.
10840         
10841 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
10842
10843         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
10844         ThreadPool.SetMinThreads.
10845         * threadpool.c: Implemented ThreadPool.GetMinThreads and
10846         ThreadPool.SetMinThreads.
10847
10848 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10849
10850         * mono-config.c: also load the .config file in the directory
10851         where the assembly was found.
10852
10853 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
10854
10855         * assembly.c: load per-assembly config files.
10856         * icall.c: decrapified code to get the config dir and moved to
10857         mono-config.c.
10858         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
10859         per-assembly config files. When doing a dll map lookup give precedence
10860         to the per-assembly data.
10861
10862 2004-04-14  Martin Baulig  <martin@ximian.com>
10863
10864         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
10865         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
10866         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
10867
10868         * mono-debugger-debugger.c: While the debugger is locked, remember
10869         whether the symbol tables have changes and send one single
10870         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
10871
10872 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
10873
10874         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
10875
10876         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
10877         function.
10878
10879         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
10880         account when marshalling string arrays. Fixes #56965.
10881
10882 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
10883
10884         * icall.c: Add new icalls mapping for security.
10885         * security.c|h: Add internal calls for WindowsIdentity,
10886         WindowsImpersonationContext and WindowsPrincipal.
10887
10888 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
10889
10890         * class.c: Added comment to ensure the System.MonoDummy class
10891         is removed when no longer necessary
10892
10893 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
10894
10895         * appdomain.c: Pass arguments to the bootstraping exceptions to
10896         minimize JITed methods at boot
10897
10898         * metadata.c (mono_exception_from_name_two_strings): Allow for the
10899         second string to be null.
10900
10901         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10902         Change the protocol to minimize the JIT methods at startup.  Now
10903         it Returns the internal codepage, if the value of "int_code_page"
10904         is 1 at entry, and we can not compute a suitable code page
10905         number, returns the code page as a string.
10906
10907 2004-04-13  Jackson Harper  <jackson@ximian.com>
10908
10909         * culture-info-tables.h: Fix number of decimal digits for all
10910         english locales.
10911
10912 2004-04-13  Jackson Harper  <jackson@ximian.com>
10913
10914         * icall.c: Clairfy out of sync error message. It is not always
10915         your corlib that is out of sync.
10916
10917 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
10918
10919         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
10920         properties when only the set accessor is overriden. Fixes #55874.
10921
10922 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
10923
10924         * assembly.c (mono_assembly_load_references): Make this thread safe.
10925         Fixes #56327.
10926
10927 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
10928
10929         * monosn.c: Add missing initialization calls.
10930
10931 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
10932
10933         * locales.c:
10934         ves_icall_System_Globalization_CultureInfo_construct_number_format
10935         Fix g_assert so it compiles on fussier compilers re int/ptr
10936         mismatch
10937
10938 2004-04-08  Dick Porter  <dick@ximian.com>
10939
10940         * socket-io.h:
10941         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
10942         53992.  Also rearrange the code so that the internal calls return
10943         an error value and exceptions are thrown from managed code.
10944
10945         * icall.c: Add type info to the socket icalls.
10946
10947 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10948
10949         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
10950         owes me a beer.
10951
10952 2004-04-07  Martin Baulig  <martin@ximian.com>
10953
10954         * class.c (mono_class_from_generic_parameter): Don't default
10955         `klass->parent' to `mono_defaults.object_type'.
10956
10957 2004-04-07  Martin Baulig  <martin@ximian.com>
10958
10959         * reflection.c (mono_reflection_initialize_generic_parameter): Set
10960         `param->pklass->reflection_info'.       
10961
10962 2004-04-07  Jackson Harper  <jackson@ximian.com>
10963
10964         * culture-info-tables.h: Fix date separator symbol.
10965         
10966 2004-04-07  Martin Baulig  <martin@ximian.com>
10967
10968         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
10969         from System.Type to System.MonoType.
10970
10971 2004-04-07  Martin Baulig  <martin@ximian.com>
10972
10973         * reflection.h
10974         (MonoReflectionGenericParam): Added `has_reference_type' and
10975         `has_value_type' fields.
10976
10977         * reflection.c (mono_image_get_generic_param_info): Encode the
10978         correct flags if we have the `class' or `struct' constraint.
10979
10980 2004-04-07  Martin Baulig  <martin@ximian.com>
10981
10982         * reflection.h
10983         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
10984
10985 2004-04-07  Jackson Harper  <jackson@ximian.com>
10986
10987         * appdomain.c: Revert extra patches, just wanted to bump the
10988         version number.
10989         
10990 2004-04-07  Jackson Harper  <jackson@ximian.com>
10991
10992         * Makefile.am: Add culture-info private headers.
10993         * icall.c: Add new icalls for contructing locales.
10994         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
10995         * locales.h: Declare new culture info construction methods.
10996         * object.h: Add new fields used to avoid the CultureMap to
10997         MonoCultureInfo.
10998         * culture-info.h: Definition of structs used in the culture info
10999         tables.
11000         * culture-info-tables.h: Autogenerated tables that contain culture
11001         info data. This file was generated with the locale-builder tool.
11002         * appdomain.c: Incement corlib version number.
11003         
11004 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11005
11006         * appdomain.c: (mono_runtime_init) move mono_thread_init
11007         to before mono_object_new calls so critical sections
11008         are initialized before use.
11009
11010 2004-04-07  Martin Baulig  <martin@ximian.com>
11011
11012         * icall.c
11013         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11014         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11015         (ves_icall_MonoGenericParam_initialize): Removed.
11016         (monogenericparam_icalls): Removed.
11017         (generictypeparambuilder_icalls): Added new table for
11018         System.Reflection.Emit.GenericTypeParameterBuilder.
11019
11020         * reflection.c
11021         (mono_reflection_define_generic_parameter): Removed.
11022         (mono_reflection_initialize_generic_parameter): This is now called
11023         from GenericTypeParameterBuilder's .ctor.
11024
11025 2004-04-06  Martin Baulig  <martin@ximian.com>
11026
11027         * class.c (mono_class_init): Don't inflate nested classes in a
11028         generic instance.
11029         (mono_type_get_name_recurse): Include the generic arguments for
11030         generic instances and generic type declarations.
11031         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11032         (_mono_class_get_instantiation_name): Removed.
11033         (mono_class_create_generic): Always use `gklass->name' as our name.
11034
11035         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11036
11037         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11038         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11039         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11040         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11041         closed generic methods here.
11042
11043         * reflection.c
11044         (mono_reflection_generic_inst_get_nested_types): Removed.
11045         (inflate_mono_method): Copy the generic parameters from the
11046         MonoMethodHeader into out MonoGenericMethod.
11047
11048 2004-04-06  Martin Baulig  <martin@ximian.com>
11049
11050         * row-indexes.h
11051         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11052
11053         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11054
11055         * reflection.c (build_compressed_metadata): If we have any entries
11056         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11057         set the header version to 1.1.
11058
11059 2004-04-06  Martin Baulig  <martin@ximian.com>
11060
11061         * class.c (mono_class_init): If we're a generic instance,
11062         initialize our nested classes, too.
11063         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11064         suffix. 
11065
11066 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11067
11068         * process.c: quote the argument passed to the shell on windows.
11069
11070 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11071
11072         * threads.c (mono_alloc_special_static_data): Allow this to be
11073         called during startup.
11074
11075 2004-04-02  Martin Baulig  <martin@ximian.com>
11076
11077         * icall.c
11078         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11079
11080 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11081
11082         * icall.c: Fix build.
11083
11084 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11085
11086         * Makefile.am: Added security.c|h.
11087         * icall.c: Added icall for get_UserName;
11088         * security.c: New file for security related icalls. Added function
11089         get_UserName for System.Environment (fix #56144).
11090         * security.h: New. Header file for security.c
11091
11092 2004-04-02  Dick Porter  <dick@ximian.com>
11093
11094         * icall.c: Deleted the icalls that were obsoleted some time ago
11095         by the ICU string code, and which were mixed into the icall
11096         rearranging.  Fixes bug 55969.
11097
11098         * string-icalls.h: 
11099         * string-icalls.c: Deleted the code that those icalls reference.
11100
11101 2004-04-01  Martin Baulig  <martin@ximian.com>
11102
11103         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11104
11105         * class.c (mono_class_from_generic_parameter): Don't set 
11106         TYPE_ATTRIBUTE_INTERFACE.
11107         (my_mono_class_from_generic_parameter): Likewise.
11108
11109 2004-04-01  Martin Baulig  <martin@ximian.com>
11110
11111         * loader.c (find_method): Added an optional `MonoClass *ic'
11112         argument to search in a specific interface.
11113         (mono_get_method_constrained): New public function.
11114
11115 2004-04-01  Martin Baulig  <martin@ximian.com>
11116
11117         * reflection.c (mono_image_get_generic_field_token): Use the
11118         `handleref' cache here.
11119
11120 2004-04-01  Martin Baulig  <martin@ximian.com>
11121
11122         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11123
11124         * reflection.c (create_generic_typespec): Use the `typespec' hash
11125         here, not the `typeref' one.    
11126
11127 2004-04-01  Martin Baulig  <martin@ximian.com>
11128
11129         * class.c (mono_class_inflate_generic_type): Moved the
11130         functionality into a new static inflate_generic_type() which
11131         returns NULL if it didn't do anything.  Only increment the
11132         `mono_stats.inflated_type_count' if we actually inflated
11133         something.
11134         (mono_class_get_full): Check the classes type to see whether we
11135         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11136
11137 2004-04-01  Jackson Harper  <jackson@ximian.com>
11138
11139         * reflection.c: Set culture for assembly references.
11140         
11141 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11142
11143         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11144
11145 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11146
11147         * assembly.c:
11148         (do_mono_assembly_open): the critical section also covers
11149         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11150
11151 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11152
11153         * threads.c:
11154         (mono_manage_threads): abort the background threads when finishing.
11155         Fixes bug #47232.
11156
11157 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11158
11159         * gc.c: only close the done_event handle if there was no timeout.
11160         C-ified comments.
11161
11162 2004-03-30  Martin Baulig  <martin@ximian.com>
11163
11164         * icall.c (icall_entries): It's called "System.Activator", not
11165         "System.Activation".    
11166
11167 2004-03-30  Martin Baulig  <martin@ximian.com>
11168
11169         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11170         (mono_class_create_from_typespec): Likewise.
11171
11172 2004-03-30  Martin Baulig  <martin@ximian.com>
11173
11174         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11175         `has_ctor_constraint' and `initialized'.
11176
11177 2004-03-30  Martin Baulig  <martin@ximian.com>
11178
11179         * reflection.c (encode_new_constraint): New static function to add
11180         the constructor constraint attribute to a type parameter.
11181         (encode_constraints): Call encode_new_constraint() if necessary.
11182
11183         * reflection.h
11184         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11185
11186         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11187         
11188 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11189
11190         * reflection.c, icall.c: add support for pinning variables. 
11191
11192 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11193
11194         * marshal.c (mono_marshal_get_managed_wrapper):
11195         init bool local with zero rather than null.
11196
11197 2004-03-29  Martin Baulig  <martin@ximian.com>
11198
11199         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11200         the "official" behavior here.
11201         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11202
11203 2004-03-29  Martin Baulig  <martin@ximian.com>
11204
11205         * icall.c: Reflect latest API changes.
11206
11207 2004-03-29  Martin Baulig  <martin@ximian.com>
11208
11209         * loader.c (mono_get_method_from_token): Also call
11210         mono_metadata_load_generic_params () for abstract and interface
11211         methods; replace the type arguments in the method signature with
11212         the ones which are loaded from the metadata.
11213
11214 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11215
11216         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11217         of the lock is not the current thread. MS.NET don't do it, in spite of
11218         what the documentation says. See bug #56157.
11219
11220 2004-03-28  Martin Baulig  <martin@ximian.com>
11221
11222         * class.c (mono_class_init): Don't call init_properties() and
11223         init_events() for generic instances; set `prop->parent' when
11224         inflating properties.
11225
11226         * reflection.c (mono_generic_inst_get_object): Call
11227         `mono_class_init (ginst->klass)'.
11228         (mono_type_get_object): Only create a MonoGenericInst if your
11229         generic type is a TypeBuilder.
11230         (do_mono_reflection_bind_generic_parameters): Only set
11231         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11232
11233 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11234
11235         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11236         Fixes #56091.
11237
11238 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11239
11240         * icall.c: added Kill_internal icall.
11241         * process.[ch]: added Kill_internal icall.
11242
11243 2004-03-25  Martin Baulig  <martin@ximian.com>
11244
11245         * class.h (MonoStats): Added `generic_instance_count',
11246         `inflated_method_count', `inflated_type_count' and
11247         `generics_metadata_size'.       
11248
11249 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11250
11251         * reflection.c: no warnings now.
11252
11253 2004-03-25  Martin Baulig  <martin@ximian.com>
11254
11255         * class.c (mono_class_get_full): New public function; does a
11256         mono_class_get(), but also takes a `MonoGenericContext *'.
11257
11258         * loader.c (mono_field_from_memberref): Renamed to
11259         `field_from_memberref', made static and added `MonoGenericContext *'
11260         argument.
11261         (mono_field_from_token): Added `MonoGenericInst *' argument.
11262         (method_from_memberef): Likewise.
11263         (mono_get_method_from_token): Likewise.
11264         (mono_get_method_full): New public function; does a
11265         mono_get_method(), but also takes a `MonoGenericContext *'.
11266
11267         * verify.c (mono_method_verify): Get the method's generic context
11268         and pass it to mono_field_from_token(), mono_get_method_full() and
11269         mono_class_get_full().
11270
11271 2004-03-25  Martin Baulig  <martin@ximian.com>
11272
11273         * class.c (mono_class_inflate_generic_type): Take a
11274         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11275         `MonoGenericMethod *'.
11276
11277 2004-03-25  Martin Baulig  <martin@ximian.com>
11278
11279         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11280         instead of the MonoGenericMethod here.
11281
11282 2004-03-25  Martin Baulig  <martin@ximian.com>
11283
11284         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11285         each time we create a new MonoGenericInst, we also create a new
11286         context which points back to us.
11287
11288         * class.c (inflate_method): Use `ginst->context' instead of
11289         creating a new context.
11290
11291         * loader.c (method_from_memberref): Use
11292         `klass->generic_inst->context' instead of creating a new context.
11293
11294 2004-03-25  Martin Baulig  <martin@ximian.com>
11295
11296         * class.h (MonoGenericContext): New struct.
11297         (MonoGenericMethod): Removed `generic_inst'.
11298
11299         * class.c (mono_class_inflate_generic_method): Take a
11300         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11301
11302 2004-03-25  Martin Baulig  <martin@ximian.com>
11303
11304         * loader.h (MonoMethodInflated): New typedef.
11305
11306         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11307         `generic_param_count' consume just 30 bits, added `is_inflated'
11308         and `has_type_parameters' flags (one bit each).
11309
11310         * class.c (mono_class_inflate_generic_method): Create a
11311         MonoMethodInflated instead of a MonoMethodNormal and set
11312         `is_inflated' in the method signature.
11313
11314         * class.h (MonoGenericMethod): Removed `generic_method'.
11315
11316 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11317
11318         * image.c: Make sure the name of a MonoImage is always an absolute path.
11319           This fixes bug #54415.
11320
11321 2004-03-24  Martin Baulig  <martin@ximian.com>
11322
11323         * class.c (mono_class_setup_vtable): If we're a generic instance,
11324         use our generic type's vtable size.
11325
11326 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11327
11328         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11329         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11330         problems.
11331
11332 2004-03-23  Martin Baulig  <martin@ximian.com>
11333
11334         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11335         `MonoEvent *events'.
11336
11337         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11338         (typebuilder_icalls): Added "get_event_info"; calls
11339         mono_reflection_event_builder_get_event_info(). 
11340
11341         * reflection.c (mono_reflection_generic_inst_initialize): Added
11342         `MonoArray *events'.
11343         (mono_reflection_event_builder_get_event_info): New function.
11344
11345 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11346
11347         * object.h: add mono_type_initialization_init
11348
11349         * object.c (mono_runtime_class_init): 
11350         implement class constructor synchronization rules
11351         to cope with threading issues.  
11352         add mono_type_initialization_init
11353
11354         * appdomain.c (mono_runtime_init): call 
11355         mono_type_initialization_init
11356
11357         * class.h: removing initializing field from MonoVTable
11358
11359 2004-03-23  Martin Baulig  <martin@ximian.com>
11360
11361         * class.c (my_mono_class_from_generic_parameter): Use
11362         `param->name' if it's not NULL. 
11363
11364 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11365
11366         * class.c: do not insert non-virtual methods in the vtable.
11367         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11368         that means the method is non-virtual. This never would have
11369         happened before.
11370
11371 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11372
11373         * profiler.c: Added lock for accessing coverage_hash.
11374
11375 2004-03-22  Martin Baulig  <martin@ximian.com>
11376
11377         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11378         `method->method->signature->generic_param_count != 0' to make it
11379         work for interface methods.
11380
11381 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11382
11383         * process.c: quote the string passed to the shell using g_shell_quote.
11384
11385 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11386
11387         * threads.c:
11388         (mono_threads_manage): don't remove the finalizer thread and self
11389         from the threads hash table so that mono_thread_manage can be called
11390         more than once.
11391
11392 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11393
11394         * process.c: quote the arguments when UseShellExecute is true. Fixes
11395         bug #55790.
11396
11397 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11398
11399         * threads.c: set mono_thread_detach as a cleanup routine for every
11400         thread. This way it's always executed upon thread termination, either
11401         aborted or finished normally. No more xsp hangs!
11402
11403 2004-03-17  Martin Baulig  <martin@ximian.com>
11404
11405         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11406         `int count_nested' and a `MonoType **nested'.
11407
11408         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11409         most of the functionality into a new static
11410         do_mono_reflection_bind_generic_parameters() and don't take a
11411         `MonoType *nested_in' argument any more.  Don't compute nested
11412         types here.
11413         (mono_reflection_generic_inst_get_nested_types): New public method
11414         to get nested types.
11415
11416         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11417         we're a nested class.
11418
11419         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11420         mono_reflection_generic_inst_get_nested_types() to compute the
11421         nested types.
11422
11423 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11424
11425         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11426         descriptive error message under windows.
11427         
11428 2004-03-17  Martin Baulig  <martin@ximian.com>
11429
11430         * class.c (dup_type): Added `const MonoType *original' argument;
11431         copy the attrs from the original type.
11432
11433 2004-03-17  Martin Baulig  <martin@ximian.com>
11434
11435         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11436         `m->generic_inst_cache' here.
11437
11438 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11439
11440         * exception.h exception.c: Add stack_overflow_exception.
11441
11442 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11443
11444         * threadpool.c:
11445         (overlapped_callback): call SetEvent *after* invoking the callback.
11446         No need to call CloseHandle.
11447
11448 2004-03-16  Martin Baulig  <martin@ximian.com>
11449
11450         * reflection.c (mono_image_get_fieldref_token): Take a
11451         `MonoReflectionField *' instead of a `MonoClassField *' and a
11452         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11453
11454 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11455
11456         * appdomain.c: don't add the culture to the filename we're looking for
11457         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11458
11459 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11460
11461         * locales.c: don't ignore symbols when doing case insensitive compares.
11462         Thanks Dick! Fixes bug #54046.
11463
11464         * threads.c: surround 'threads' usage with enter/leave in
11465         mono_thread_manage.
11466
11467 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11468
11469         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11470         implicitly marshalled as [Out]. Fixes #55450.
11471
11472         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11473         an exception.
11474
11475 2004-03-16  Martin Baulig  <martin@ximian.com>
11476
11477         * class.c (mono_class_from_generic_parameter): Use the actual
11478         parameter name. 
11479
11480 2004-03-16  Martin Baulig  <martin@ximian.com>
11481
11482         * reflection.c (type_get_signature_size): New static function.
11483         Compues the size of the type in a method signature.
11484         (method_get_signature_size): New static function; calls
11485         type_get_signature_size() to compute the actual size of the
11486         method's signature.
11487         (method_encode_signature): Use method_get_signature_size() to get
11488         the signature's size rather than using `nparams * 10'.
11489
11490 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11491
11492         * file-io.h: define here WapiOverlapped on windows. I don't want the
11493         regular OVERLAPPED one.
11494
11495         * file-io.c:
11496         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11497         Disabling AIO on windows.
11498
11499 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11500
11501         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11502         bug #55385.
11503
11504 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11505
11506         * appdomain.c: upgraded corlib version.
11507
11508         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11509         and BeginWrite. Allow opening files for asynchrnous operations.
11510
11511         * file-io.h: new struct that maps FileStreamAsyncResult.
11512         * icall.c: added new icalls.
11513         * process.[ch]: support setting child process environment variables
11514         and use the SHELL or COMSPEC when UseShellExecute is true.
11515
11516         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11517         callback for async. IO is here and also BindHandle.
11518
11519         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11520         from here.
11521
11522 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11523
11524         * reflection.c (create_custom_attr): Allow len == 0.
11525
11526         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11527         computation on big-endian machines.
11528
11529 2004-03-13  Martin Baulig  <martin@ximian.com>
11530
11531         * class.h (MonoGenericInst): Added `int count_ifaces'.
11532
11533         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11534         `ginst->count_ifaces' instead `klass->interface_count' since we
11535         may get called before the vtable is created.
11536
11537         * loader.c (mono_method_get_param_names): If we're a generic
11538         instance, return and don't initialize the class.
11539
11540         * reflection.c (mono_reflection_setup_generic_class): Don't call
11541         ensure_runtime_vtable().
11542         (mono_reflection_bind_generic_parameters): Set
11543         `ginst->count_ifaces'.
11544
11545 2004-03-11  Jackson Harper <jackson@ximian.com>
11546
11547         * icall.c:
11548         * unicode.c:
11549         * unicode.h: Remove unused System.Char icalls.
11550         
11551 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11552
11553         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11554         code when we P/Invoke the first library in Windows.Forms, instead
11555         of when we first open the assembly.
11556
11557         * assembly.c: Drop the lookup from here.
11558
11559 2004-03-10  Martin Baulig  <martin@ximian.com>
11560
11561         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11562         class for properties, fields and events.  Finally fixes #54945.
11563
11564 2004-03-10  Martin Baulig  <martin@ximian.com>
11565
11566         * metadata.c (mono_metadata_class_equal): New static function;
11567         checks whether two generic instances or two generic parameters are
11568         equal.
11569         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11570         compare classes.        
11571
11572 2004-03-10  Martin Baulig  <martin@ximian.com>
11573
11574         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11575
11576         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11577         argument and write it into the `reflection_info' field.
11578
11579         * icall.c
11580         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11581         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11582
11583 2004-03-09  Jackson Harper  <jackson@ximian.com>
11584
11585         * char-conversions.h: use 8 bits for numeric data its all we need
11586         * icall.c: numeric data is only 8 bits now.
11587
11588 2004-03-09  Martin Baulig  <martin@ximian.com>
11589
11590         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11591
11592         * class.c (init_properties, init_events): Initialize the new
11593         `parent' field.
11594
11595         * reflection.c (typebuilder_setup_properties): Likewise.
11596         (typebuilder_setup_events): Likewise.
11597
11598         * reflection.h (MonoEventInfo): Replaced `parent with
11599         `declaring_type' and `reflected_type'.
11600
11601         * icall.c (ves_icall_get_property_info): Distinguish between
11602         declaring and reflected type.
11603         (ves_icall_get_event_info): Likewise.
11604
11605 2004-03-09  Martin Baulig  <martin@ximian.com>
11606
11607         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11608         (ves_icall_Type_GetField): Correctly set field->klass.
11609
11610 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11611
11612         * loader.h: Fix warning.
11613
11614 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11615
11616         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11617         library routine if present.  Notice that it will still continue
11618         executing even if its missing, for those working on the Gtk#
11619         edition of Windows.Forms.
11620
11621         * assembly.c (do_mono_assembly_open): If loading the
11622         System.Windows.Forms call mono_loader_wini_init.
11623
11624 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11625
11626         * class.h: Added MonoRemoteClass struct.
11627         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11628         function for MonoStrings.
11629         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11630         Added internal call for getting the proxy type.
11631         * marshal.c: Get the type of transparent proxies from its remote_class.
11632         Added methods that generate the IL for type checks and casts:
11633         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11634         mono_marshal_get_proxy_cancast.
11635         * marshal.h: Declaration of the previous new methods.
11636         * object.c: Added new moethods for creating and updating MonoRemoteClass
11637         instances: mono_remote_class, mono_upgrade_remote_class, 
11638         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11639         * verify.c: FIx transparent_proxy_fields layout.
11640         * appdomain.c: Bump corlib version.
11641
11642 2004-03-04  Jackson Harper  <jackson@ximian.com>
11643
11644         * icall.c: Add icall to access char conversion tables.
11645         * char-conversions.h: Character conversion tables.
11646         * Makefile.am: Add char-conversions.h private header file.
11647         
11648 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11649
11650         * appdomain.c (unload_thread_main): Increase unloading timeout to
11651         10 sec as a temporary workaround for Nant problems.
11652
11653 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11654
11655         * gc.c: Add checks for GC_enable and GC_disable.
11656
11657         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11658         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11659         (bug #54988).
11660         
11661 2004-02-27  Martin Baulig  <martin@ximian.com>
11662
11663         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11664         `MonoReflectionType *' instead of a `MonoType *'.
11665
11666 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11667
11668         * gc.c (run_finalize): Avoid finalizing the object representing the
11669         finalizer thread.
11670         (finalizer_thread): Fix warning.
11671
11672 2004-02-25  Martin Baulig  <martin@ximian.com>
11673
11674         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11675         argument for nested types.
11676         (mono_class_create_generic): Added support for nested generictypes.
11677
11678         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11679         `GList *nested'.
11680
11681         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11682
11683         * reflection.c (method_encode_signature): Increase the minimum
11684         value of `size' from 10 to 11.
11685         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11686         and `MonoType **types' arguments instead of the `MonoArray
11687         *types'; added `MonoType *nested_in'.  Recursively instantiate
11688         nested classes. 
11689
11690 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11691
11692         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11693         stack_overflow_ex members which are used by exception handling.
11694
11695         * appdomain.c (mono_runtime_init): Initialize the new members.
11696
11697         * gc.c (mono_gc_enable): New helper function.
11698         * gc.c (mono_gc_disable): New helper function.
11699
11700 2004-02-23  Martin Baulig  <martin@ximian.com>
11701
11702         * icall.c: I must have been really stupid - make it actually work
11703         this time ;-)
11704
11705 2004-02-23  Martin Baulig  <martin@ximian.com>
11706
11707         * loader.c (method_from_memberref): Only inflate the method if
11708         it's in another klass.
11709
11710 2004-02-23  Martin Baulig  <martin@ximian.com>
11711
11712         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11713         (mono_class_init): If we're a generic instance and an interface,
11714         compute `class->interface_id'; also create `class->interfaces'
11715         here and inflate them.
11716
11717         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11718         `ginst->is_open'.
11719         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11720
11721         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11722
11723 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11724
11725         * reflection.c (method_encode_code): Improved the error message
11726         generated by the exception.
11727
11728 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11729
11730         * icall.c: Martin did not do what he said in the ChangeLog for
11731         2004-02-18, but put back the changes for properties and events.
11732         Commenting those changes out again and adding comment to bug #54518.
11733         
11734         * process.c: removed warning.
11735
11736 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11737
11738         * marshal.c (emit_struct_conv): Print an error message instead of
11739         asserting when a type does not have the StructLayout attribute.
11740
11741 2004-02-20  Martin Baulig  <martin@ximian.com>
11742
11743         * reflection.c (mono_type_get_object): Also use the cache for
11744         generic instances.
11745         (mono_reflection_bind_generic_parameters): Always compute
11746         `ginst->ifaces'.        
11747
11748 2004-02-20  Martin Baulig  <martin@ximian.com>
11749
11750         * class.h (MonoGenericMethod): Removed `klass'.
11751
11752         * class.c (mono_class_inflate_generic_method): Added `MonoClass
11753         *klass' argument.
11754
11755 2004-02-20  Martin Baulig  <martin@ximian.com>
11756
11757         * reflection.c (method_encode_methodspec): Actually use the
11758         uninflated signature for the memberref.
11759
11760 2004-02-20  Martin Baulig  <martin@ximian.com>
11761
11762         * class.h (MonoGenericMethod): Removed `declaring'.
11763
11764         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
11765         is NULL, compute it here.
11766
11767 2004-02-20  Martin Baulig  <martin@ximian.com>
11768
11769         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
11770
11771         * metadata.c (mono_metadata_generic_inst_hash): New method.
11772         (mono_metadata_generic_inst_equal): New method.
11773
11774         * reflection.c (mono_reflection_bind_generic_parameters): Use the
11775         `klass->image->generic_inst_cache' cache to avoid creating
11776         duplicate MonoGenericInst's.
11777
11778         * class.c (mono_class_inflate_generic_type): Use the cache.
11779
11780 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11781
11782         * object.c: fixed gc descriptor calculation for embedded valuetypes.
11783
11784 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11785
11786         * icall.c: added Socket.WSAIoctl icall.
11787
11788         * socket-io.[ch]: implemented
11789         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
11790
11791 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
11792
11793         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
11794
11795 2004-02-18  Urs C Muff  <umuff@quark.com>
11796
11797         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
11798         this work on PPC and other big-endian architectures.
11799
11800         * debug-mono-symfile.h: Prepended the names of all the `guint32'
11801         fields with an underscore to make sure they're only accessed by
11802         the read32() macro.
11803
11804 2004-02-18  Martin Baulig  <martin@ximian.com>
11805
11806         * icall.c: Put the klass->refclass changes back for methods and
11807         fields, but not for properties and events.  We're currently not
11808         distinguishing between DeclaringType and ReflectedType for
11809         properties and events, that's what caused the regressions.
11810
11811 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11812
11813         * object.c:
11814         (mono_async_result_new): the handle can be NULL.
11815
11816         * threadpool.c: Use an event instead of a semaphore, don't initialize
11817         it until needed. This saves quite a few semaphores from being created
11818         when using the threadpool.
11819
11820 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
11821
11822         * object.c (mono_string_is_interned_lookup): Fix interning of long
11823         strings. Fixes #54473.
11824
11825         * domain.c (ldstr_equal): Optimize if the two strings are equal.
11826
11827         * icall.c: Revert the klass->refclass changes since they introduce
11828         regressions (bug #54518).
11829
11830 2004-02-18  Martin Baulig  <martin@ximian.com>
11831
11832         * class.c (mono_class_init): If we're a generic instance and don't
11833         come from a TypeBuilder, inflate our members here.
11834         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
11835         (mono_class_create_generic): New public method.
11836         (mono_class_initialize_generic): Removed.
11837         (get_instantiation_name): Renamed to
11838         _mono_class_get_instantiation_name() and made it public.
11839
11840 2004-02-18  Martin Baulig  <martin@ximian.com>
11841
11842         * class.c (mono_class_inflate_generic_type): Clear the new
11843         instance's `nginst->klass' when inflating a generic instance.
11844         (mono_class_is_subclass_of): Added (basic) support for generic
11845         instances.
11846
11847 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
11848
11849         * appdomain.h, domain.c: use a MonoCodeManager instead of a
11850         MonoMempool to hold compiled native code.
11851
11852 2004-02-17  Martin Baulig  <martin@ximian.com>
11853
11854         * class.h (MonoDynamicGenericInst): Added `count_properties' and
11855         `properties'.
11856
11857         * reflection.c (mono_reflection_generic_inst_initialize): Added
11858         `MonoArray *properties' argument.
11859
11860         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
11861
11862 2004-02-17  Martin Baulig  <martin@ximian.com>
11863
11864         * icall.c (ves_icall_Type_GetFields): Renamed to
11865         ves_icall_Type_GetFields_internal() and added a
11866         `MonoReflectionType *rtype' argument; pass it to
11867         mono_field_get_object() to set the field's "reflected" type.
11868         (ves_icall_Type_GetConstructors): Likewise.
11869         (ves_icall_Type_GetEvents): Likewise.
11870         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
11871         argument; pass it to mono_method_get_object() to set the method's
11872         "reflected" type.       
11873
11874 2004-02-17  Martin Baulig  <martin@ximian.com>
11875
11876         * class.h (MonoDynamicGenericInst): New type.
11877         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
11878
11879         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
11880         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
11881         (ves_icall_MonoGenericInst_GetFields): New interncall.
11882
11883         * class.c (mono_class_from_generic): Don't call
11884         mono_class_initialize_generic() if this is a dynamic instance;
11885         ie. it's being created from a TypeBuilder.
11886         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
11887         `class->byval_arg.type'.
11888
11889         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
11890         to `inflate_method' and made static.
11891         (mono_reflection_inflate_field): Removed.
11892         (mono_reflection_generic_inst_initialize): New public method.
11893
11894         * reflection.h (MonoReflectionGenericInst): Removed `methods',
11895         `ctors' and `fields'; added `initialized'.
11896
11897 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
11898
11899         * debug-helpers.c (mono_method_full_name): Fix output for empty
11900         namespaces.
11901
11902 2004-02-12  Martin Baulig  <martin@ximian.com>
11903
11904         * class.h (MonoClassField): Added `MonoType *generic_type'.
11905
11906         * reflection.c (mono_image_get_fieldref_token): Added support for
11907         instantiated generic types.
11908         (field_encode_inflated_field): Removed.
11909         (mono_image_get_inflated_field_token): Removed.
11910         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
11911
11912         * reflection.h (MonoReflectionInflatedField): Removed.
11913
11914 2004-02-12  Martin Baulig  <martin@ximian.com>
11915
11916         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
11917         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
11918
11919         * reflection.c (mono_image_get_methodspec_token): Take a
11920         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
11921         (mono_image_create_token): Check whether we have a
11922         `method->signature->gen_method' and call
11923         mono_image_get_methodspec_token() if appropriate.
11924         (inflated_method_get_object): Removed.
11925         (mono_reflection_bind_generic_method_parameters): Return a
11926         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
11927         (mono_reflection_inflate_method_or_ctor): Likewise.
11928
11929         * reflection.h (MonoReflectionInflatedMethod): Removed.
11930
11931 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
11932
11933         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
11934         for custom valuetype marshalling.
11935
11936         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
11937
11938 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11939
11940         * icall.c: fixed WSAGetLastError_internal name.
11941
11942 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
11943
11944         * threads.c (mono_thread_attach): Allow this to be called multiple
11945         times for a thread.
11946         
11947         * threads.c (build_wait_tids): Do not wait for ourselves.
11948
11949         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
11950         appdomain list is empty.
11951
11952         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
11953         memory returned by mono_string_builder_to_utf16, since it points into
11954         managed memory. Thanks to Bernie Solomon for noticing this.
11955
11956         * icall.c: Add AppDomainSetup icalls.
11957
11958         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
11959
11960         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
11961         types.
11962
11963         * reflection.c (reflection_methodbuilder_to_mono_method): Save
11964         custom attributes to the method_aux struct. Also fix array indexes etc.
11965
11966         * loader.c (mono_method_get_param_names): Make dynamic case work again.
11967         
11968 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
11969
11970         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
11971         (both static and runtime) and reduce startup time.
11972
11973 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
11974
11975         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
11976         AsAny marshalling conversion instead of crashing.
11977
11978         * marshal.c: Fix warnings.
11979
11980 2004-02-09  Martin Baulig  <martin@ximian.com>
11981
11982         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
11983
11984         * reflection.h (MonoReflectionInflatedMethod): Removed the
11985         `declaring' field, it's now in the unmanaged MonoGenericMethod.
11986
11987         * reflection.c (method_encode_methodspec): Removed the `method'
11988         argument; we get it from `gmethod->declaring'.
11989         (inflated_method_get_object): Removed the `declaring' argument.
11990
11991 2004-02-09  Martin Baulig  <martin@ximian.com>
11992
11993         * class.h (MonoGenericMethod): New type.
11994         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
11995         `generic_method'.
11996
11997         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
11998         a `MonoGenericMethod *gen_method' one.
11999
12000         * class.c (mono_class_inflate_generic_type): Take an additional
12001         `MonoGenericMethod * argument.  This is only non-NULL if we're
12002         inflating types for a generic method.   
12003         (mono_class_inflate_generic_signature): Renamed to
12004         inflate_generic_signature() and made static; take a
12005         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12006         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12007         instead of a `MonoGenericInst *' one.
12008         (mono_class_inflate_generic_method): Likewise.
12009
12010         * reflection.c (encode_generic_method_sig): Take a
12011         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12012         (method_encode_methodspec): Likewise.
12013         (inflated_method_get_object): Likewise. 
12014
12015         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12016         field with a `MonoGenericMethod *gmethod' one.  
12017
12018 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12019
12020         * class.h (mono_class_has_parent): add parens to expansion
12021         so you can ! this.
12022
12023 2004-02-08  Martin Baulig  <martin@ximian.com>
12024
12025         * image.h (MonoImage): Removed `generics_cache'.
12026
12027         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12028         instead of a `MonoType *' argument; removed the `inflate_methods'
12029         argument.  Don't inflate methods here.
12030
12031         * loader.c (find_method): If it's a generic instance, call
12032         mono_class_init() on the `sclass->generic_inst->generic_type'.
12033
12034         * metadata.c (mono_type_size): Make this work on uninitialized
12035         generic instances; call it on the `ginst->generic_type's class.
12036
12037         * reflection.c (mono_reflection_bind_generic_parameters): Call
12038         mono_class_from_generic() to create the `ginst->klass'.
12039
12040 2004-02-08  Martin Baulig  <martin@ximian.com>
12041
12042         * class.h (MonoClass): Changed type of `generic_inst' from
12043         `MonoType *' to `MonoGenericInst *'.
12044
12045 2004-02-08  Martin Baulig  <martin@ximian.com>
12046
12047         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12048         mono_type_get_object(), this is now creating a `MonoGenericInst'
12049         for MONO_TYPE_GENERICINST.
12050         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12051         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12052
12053         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12054         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12055         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12056         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12057         and reflected type.
12058
12059         * reflection.h (MonoReflectionInflatedMethod): Removed
12060         `declaring_type' and `reflected_type'.
12061
12062 2004-02-08  Martin Baulig  <martin@ximian.com>
12063
12064         * class.h (MonoGenericInst): Added `MonoType *parent' and
12065         `MonoType **ifaces'.
12066
12067         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12068         `parent' and `interfaces'.
12069
12070         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12071         `MonoType *' argument and return a `MonoType *'.
12072
12073         * icall.c
12074         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12075         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12076
12077 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12078
12079         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12080         valuetype marshalling.
12081
12082 2004-02-06  Martin Baulig  <martin@ximian.com>
12083
12084         * class.c
12085         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12086         (my_mono_class_from_generic_parameter): Likewise.
12087
12088 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12089
12090         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12091         contents of the symbol files lazily.
12092
12093         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12094
12095         * threads.h threads.c icall.c: New icalls for getting and setting the
12096         threads name.
12097
12098 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12099
12100         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12101         Raise an exception when the domain is not found.
12102
12103 2004-02-03  Martin Baulig  <martin@ximian.com>
12104
12105         * reflection.c (mono_image_get_methodspec_token): Use the
12106         uninflated signature; fixes gen-33.
12107
12108 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12109
12110         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12111         the finalizer code can use thread functionality.
12112
12113         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12114         the finalizer thread.
12115
12116         * threads.c: Make some functions more robust.
12117
12118         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12119
12120         * metadata.h: Add new marshalling conventions.
12121
12122         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12123         stringbuilder marshalling. Fixes #53700.
12124
12125         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12126
12127         * reflection.c (mono_image_get_type_info): Save declarative security
12128         info.
12129
12130         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12131         unmanaged fields as well.
12132
12133         * appdomain.c: Bump corlib version.
12134
12135 2004-02-01  Martin Baulig  <martin@ximian.com>
12136
12137         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12138         method type arguments.  
12139
12140 2004-01-30  Duncan Mak  <duncan@ximian.com>
12141
12142         * marshal.h: Add prototype for
12143         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12144         and
12145         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12146         fix the build.
12147
12148 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12149
12150         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12151         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12152
12153 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12154
12155         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12156         custom marshalling of valuetypes.
12157
12158         * marshal.c: Fix some warnings.
12159
12160 2004-01-29  Martin Baulig  <martin@ximian.com>
12161
12162         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12163         for generic method parameters.
12164
12165         * reflection.c (method_encode_methodspec): Write the uninflated
12166         signature into the methodspec table.
12167         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12168         is always the uninflated method.
12169         (reflection_methodbuilder_to_mono_method): Copy the generic
12170         parameters from the MethodBuilder into `header->gen_params'.
12171
12172 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12173
12174         * class.c (mono_class_from_generic_parameter): Fix warning.
12175
12176 2004-01-27  Martin Baulig  <martin@ximian.com>
12177
12178         * class.c (mono_class_from_generic_parameter): Don't create
12179         `klass->methods' here.  
12180
12181 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12182
12183         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12184         extension since it does not work with libraries named lib<FOO>.dll.so.
12185
12186 2004-01-25  Martin Baulig  <martin@ximian.com>
12187
12188         * class.c (mono_class_inflate_generic_type): Added support for
12189         MONO_TYPE_GENERICINST.
12190
12191         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12192         inflate methods on open constructed types.      
12193
12194 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12195
12196         * object.c: fire ProcessExit event in the root AppDomain after running
12197         Main. Fixes bug #53299.
12198
12199 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12200
12201         * socket-io.c: include the new socket-wrappers.h header.
12202         Use the wrappers instead of the unix socket functions to make the code
12203         more clear.
12204
12205 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12206
12207         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12208
12209         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12210         Fixes #22532.
12211
12212 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12213
12214         * reflection.c (mono_image_create_pefile): Handle the case when the
12215         entry point is not a MethodBuilder.
12216
12217         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12218         field to ReflectionMethod since it is not allways a builder.
12219
12220         * reflection.c (type_get_fully_qualified_name): New helper function to
12221         return the fully qualified name of a type.
12222
12223         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12224         type name for custom marshallers.
12225
12226         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12227
12228         * class.c (mono_class_setup_vtable): If a parent class already 
12229         implements an interface, use the implementing methods from that class.
12230         Fixes #53148.
12231
12232 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12233
12234         * threadpool.c: just return instead of ExitThread to allow for thread
12235         clean up earlier.
12236
12237 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12238
12239         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12240         when closing resource modules.
12241
12242         * reflection.c (mono_image_create_pefile): Handle the case when the
12243         entry point is not a MethodBuilder.
12244
12245         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12246         field to ReflectionMethod since it is not allways a builder.
12247
12248 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12249
12250         * marshal.c (mono_marshal_get_managed_wrapper): 
12251         mono_marshal_alloc takes native int so CONV_I
12252         the arg for 64bits.
12253
12254 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12255
12256         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12257         tokens in the cattr table. Fixes #53108.
12258
12259 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12260
12261         * loader.c: don't trim ".dll" before looking up in the config file.
12262         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12263
12264 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12265
12266         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12267         Return the module which contains the resource as well.
12268         (ves_icall_System_Reflection_Module_Close): New icall.
12269
12270         * appdomain.c: Bump corlib version number.
12271
12272         * image.c (mono_image_addref): New public function.
12273
12274         * assembly.c: Call mono_image_addref.
12275
12276         * reflection.c (mono_module_get_object): Increase reference count of 
12277         the image.
12278
12279         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12280         Fixes #22532.
12281
12282         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12283         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12284         proper exceptions on DllImport problems.
12285
12286 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12287
12288         * class.c, metadata.c: eliminate CSIZE macro.
12289
12290 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12291
12292         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12293         * object.h: Added async_callback field in MonoAsyncResult.
12294         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12295         * verify.c: Added async_callback in MonoAsyncResult layout.
12296
12297 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12298
12299         * reflection.c (mono_reflection_get_custom_attrs): Add support
12300         for Modules.
12301
12302 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12303
12304         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12305         marshalling.
12306         (mono_marshal_method_from_wrapper): Add null pointer check.
12307
12308 2004-01-16  Martin Baulig  <martin@ximian.com>
12309
12310         * debug-mono-symfile.h: Set version number to 36 and reflect
12311         latest symbol writer changes.
12312
12313 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12314
12315         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12316         multi-dimensional arrays.
12317         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12318         (mono_class_from_mono_type): Use bounded_array_class_get.
12319         
12320         * class.c (mono_bounded_array_class_get): New function which takes
12321         a 'bounded' bool argument to distinguish vectors from one dimensional
12322         arrays.
12323
12324         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12325         bounded_array_class_get if the array has bounds.
12326
12327         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12328         Search modules loaded using AssemblyBuilder:AddModule as well.
12329
12330 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12331
12332         * appdomain.c: increased corlib version.
12333         * filewatcher.c: removed g_print.
12334         * icall.c:
12335         (get_property_info): only allocate what is actually requested.
12336         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12337
12338 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12339
12340         * Makefile.am: added filewatcher.[ch]
12341         * filewatcher.[ch]: FileSystemWatcher runtime support.
12342         * icall.c: added new FSW icalls.
12343
12344 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12345
12346         * string-icalls.c: fix stringbuilder regression as suggested by
12347         Iain McCoy <iain@mccoy.id.au>.
12348
12349 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12350
12351         * process.c (process_read_stringtable_block): Recognize '007f' as
12352         a language neutral stringtable block.
12353
12354 2004-01-12  Patrik Torstensson
12355
12356         * object.h (MonoStringBuilder) : Changed layout to support our
12357         new stringbuilder class.
12358         * marshal.c: Change marshalling to support the new layout of 
12359         string builder.
12360         * appdomain.c: increased version number because new layout of
12361         string builder.
12362
12363 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12364
12365         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12366         assembly name as an string instead of an AssemblyName, since it is
12367         easier to extract info from it.
12368
12369         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12370         the culture subdirectories too. Fixes #52231.
12371
12372 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12373
12374         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12375         It takes 2 new parameters with an optional name for the method to look
12376         for and case ignoring info.
12377
12378         * threadpool.c: removed unused variable.
12379
12380 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12381
12382         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12383         It takes 2 new parameters with an optional name for the property to look
12384         for and case ignoring info.
12385         Fixes bug #52753.
12386
12387 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12388
12389         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12390         Fix #52451.
12391
12392 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12393
12394         * appdomain.c:
12395         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12396         Fixes bug #52630.
12397
12398 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12399
12400         * reflection.c: Add support for more than one unmanaged resource.
12401
12402         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12403         in field->def_value, as done in all other cases.
12404
12405         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12406         TypeBuilders.
12407
12408         * reflection.c (mono_reflection_create_runtime_class): Remove 
12409         errorneous assignment to klass->element_class, since it is already
12410         done in mono_reflection_setup_internal_class.
12411
12412 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12413
12414         * gc.c: added missing LeaveCriticalSection.
12415         * icall.c: indented a couple of lines.
12416         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12417         if we call EndInvoke inside a callback. Fixes bug #52601.
12418
12419 2004-01-07  Martin Baulig  <martin@ximian.com>
12420
12421         * mono-debug-debugger.h
12422         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12423
12424 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12425
12426         * appdomain.c: Use messages in NotImplementedException.
12427
12428         * exception.c (mono_get_exception_not_implemented): Now this takes
12429         a message argument.
12430
12431         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12432         exception instead of g_asserting an aborting when something is not
12433         implemented.
12434
12435         Add some inline docs.
12436
12437 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12438
12439         * reflection.h: Update after changes to object layout.
12440
12441         * reflection.c: Implement saving of unmanaged aka win32 resources.
12442
12443         * appdomain.c: Bump version number.
12444
12445         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12446         Handle missing domains gracefully.
12447
12448 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12449
12450         * file-io.c : On Windows, there are much more invalid_path_chars.
12451
12452 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12453
12454         * class.h, object.c: prepare for GetType () speedup.
12455
12456 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12457
12458         * profiler.c: workaround for --profile null reference exception on
12459           cygwin. Patch by Patrik Torstensson.
12460
12461 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12462
12463         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12464         make work for unaligned access.
12465
12466 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12467
12468         * class.c: small cleanup (class->fields [i] -> field).
12469         * image.c: check address of metadata is valid.
12470
12471 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12472
12473         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12474         search the list of loaded assemblies.
12475
12476         * reflection.c (mono_reflection_type_from_name): Use 
12477         mono_assembly_loaded instead of mono_image_loaded.
12478
12479         * reflection.c: Fix warnings.
12480
12481 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12482
12483         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12484         is dynamic. This is needed since an assembly can contain both dynamic and
12485         non-dynamic images.
12486
12487         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12488         assembly->dynamic.
12489
12490         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12491
12492         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12493         to store modules loaded using AddModule.
12494
12495         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12496         on Modules.
12497
12498         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12499
12500         * reflection.c (mono_image_fill_export_table_from_module): New function to
12501         fill out the EXPORTEDTYPES table from a module.
12502
12503         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12504         into a separate function. Also handle loaded non-dynamic modules.
12505
12506         * reflection.c (mono_image_basic_init): Fix memory allocation.
12507
12508         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12509
12510         * assembly.c (mono_assembly_load_references): Make this public.
12511
12512 2003-12-19  Martin Baulig  <martin@ximian.com>
12513
12514         * class.c (mono_class_initialize_generic): Made this static, take
12515         a `MonoGenericInst *' instead of a `MonoClass *'.
12516         (mono_class_from_generic): Call mono_class_initialize_generic()
12517         unless we're already initialized or being called from
12518         do_mono_metadata_parse_generic_inst().
12519
12520         * class.h (MonoGenericInst): Added `initialized' and
12521         `init_pending' flags.
12522
12523         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12524         `mono_class_init (gklass)' or mono_class_initialize_generic()
12525         here; set `generic_inst->init_pending' while parsing the
12526         `type_argv'.
12527
12528 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12529
12530         * locales.c: include string.h for memxxx prototypes
12531
12532 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12533
12534         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12535         constructor when accessing literal fields.
12536
12537 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12538
12539         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12540
12541         * reflection.c (assembly_add_resource_manifest): New function to fill
12542         the MANIFESTRESOURCE table.
12543
12544         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12545
12546         * reflection.h: Update to changes in class layout.
12547
12548         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12549         Reenable call to mono_runtime_is_shutting_down ().
12550
12551         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12552         determine if the runtime is shutting down.
12553
12554 2003-12-16  Jackson Harper <jackson@ximian.com>
12555
12556         * icall.c: comment out call to mono_runtime_is_shutting_down to
12557         fix build.
12558         
12559 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12560
12561         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12562         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12563
12564 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12565
12566         * reflection.c: move definition of swap_with_size
12567         to before its first call
12568
12569 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12570
12571         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12572
12573         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12574         icall.
12575
12576         * object.c: Fix warnings.
12577
12578         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12579         members if FlattenHierarchy is set.
12580
12581         * reflection.c (mono_image_add_decl_security): New function to emit
12582         declarative security.
12583
12584         * reflection.h reflection.c: Add support for declarative security.
12585
12586         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12587         
12588 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12589
12590         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12591         
12592         * appdomain.c verify.c: Moved corlib version checking into its own
12593         function in appdomain.c since it needs to create vtables etc.
12594
12595 2003-12-13  Patrik Torstensson <p@rxc.se>
12596
12597         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12598         instead of unwrapped server.
12599
12600 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12601
12602         * verify.c (check_corlib): Fix field index.
12603
12604 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12605
12606         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12607         GetGacPath icall.
12608
12609 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12610
12611         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12612         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12613         cope with sizeof(size_t) != sizeof(guint32).
12614
12615 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12616
12617         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12618         in case of failure.
12619
12620 2003-12-10  Mark Crichton <crichton@gimp.org>
12621
12622         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12623         in managed code.
12624
12625         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12626
12627 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12628
12629         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12630         marked as deleted.
12631
12632 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12633
12634         * verify.c (check_corlib): Handle the case when the version field is 
12635         initialized by a static constructor.
12636
12637 2003-12-08  Patrik Torstensson  <p@rxc.se>
12638
12639     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12640
12641 2003-12-08  Martin Baulig  <martin@ximian.com>
12642
12643         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12644         a MonoReflectionGenericParameter, also take the parameter index
12645         and name as arguments.
12646         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12647         (ves_icall_MonoGenericParam_initialize): New interncall.
12648         (ves_icall_Type_make_byref_type): New interncall.
12649
12650         * reflection.h (MonoReflectionGenericParam): Derive from
12651         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12652         `index' fields.
12653
12654         * reflection.c (mono_reflection_define_generic_parameter): Create
12655         and return a new MonoReflectionGenericParam; don't initialize the
12656         constraints here.
12657         (mono_reflection_initialize_generic_parameter): New public method;
12658         initializes the constraints and creates the `param->pklass'.
12659
12660 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12661
12662         * reflection.h reflection.c: Use the new fields 'num_types', 
12663         'num_fields' and 'num_methods' to track the number of types etc.
12664
12665         * verify.c (check_corlib): Check corlib version number.
12666
12667 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12668
12669         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12670         function works on all methods.
12671
12672 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12673
12674         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12675         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12676         the custom_type_info flag of the transparent proxy.
12677         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12678         objects that supports IRemotingTypeInfo.
12679         * object.h: Added custom_type_info field in transparent proxy.
12680
12681 2003-12-06  Martin Baulig  <martin@ximian.com>
12682
12683         * class.c (mono_class_create_from_generic): Removed.
12684         (mono_class_from_generic): Check `ginst->klass' before doing
12685         anything else.  This is important to fully support "recursive"
12686         generic types.
12687
12688         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12689         empty `generic_inst->klass' before doing anything else.
12690
12691 2003-12-06  Dick Porter  <dick@ximian.com>
12692
12693         * verify.c: 
12694         * object.h:
12695         * icall.c:
12696         * locales.c: Use C structs to access class fields.  Don't do a
12697         conversion between MonoString and UChar because both are
12698         platform-endian UTF-16.  Compare now takes startindex and count
12699         parameters.  Add a char overload for IndexOf.  Speed up the
12700         invariant string IndexOf.
12701
12702 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12703
12704         * Makefile.am (monosn_LDADD): Fix parallel build.
12705
12706 2003-12-04  Martin Baulig  <martin@ximian.com>
12707
12708         * icall.c
12709         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12710         (ves_icall_Type_make_array_type): New interncall.       
12711
12712 2003-12-04  Martin Baulig  <martin@ximian.com>
12713
12714         * locales.c: also change it in the !HAVE_ICU case.
12715
12716 2003-12-04  Dick Porter  <dick@ximian.com>
12717
12718         * icall.c:
12719         * locales.c: construct_compareinfo is now in CompareInfo, not
12720         CultureInfo.
12721
12722 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12723
12724         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12725         image->files array.
12726
12727         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12728         table as well.
12729
12730         * assembly.c (mono_assembly_load_references): Only load references
12731         once.
12732
12733         * class.c (mono_class_from_name): Avoid linear search of the 
12734         EXPORTEDTYPE table.
12735
12736         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12737
12738 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12739
12740         * image.h (MonoImage): Add 'field_cache' field.
12741
12742         * loader.c (mono_field_from_token): Cache field lookups.
12743         
12744         * reflection.c (mono_module_get_object): Fix name property.
12745
12746         * icall.c (ves_icall_get_enum_info): Update after changes to 
12747         mono_metadata_get_constant_index ().
12748
12749         * icall.c: Get rid of get_type_info icall, use a separate icall for
12750         each type property to avoid needless memory allocations. Fixes #51514.
12751
12752         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
12753         to avoid needless binary searches.
12754
12755         * class.c (class_compute_field_layout): Move the initialization of
12756         field->def_value to mono_class_vtable ().
12757
12758         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
12759         non-corlib types.
12760
12761         * object.c (mono_object_allocate): Make it inline.
12762
12763         * object.c (mono_object_allocate_spec): Make it inline.
12764         
12765 2003-12-02  Dick Porter  <dick@ximian.com>
12766
12767         * locales.c (create_NumberFormat): NumberFormatInfo construction.
12768         Patch by Mohammad DAMT (mdamt@cdl2000.com).
12769
12770 2003-12-01  Dick Porter  <dick@ximian.com>
12771
12772         * threads.c: Fix signature and call in CreateMutex and
12773         CreateEvent.
12774
12775 2003-12-01  Dick Porter  <dick@ximian.com>
12776
12777         * icall.c: 
12778         * locales.c: Implement string compares and searching
12779
12780         * object.h: Add extra Thread field
12781
12782 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
12783
12784         * reflection.c (fixup_method): Add support for MonoCMethod.
12785
12786 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
12787
12788         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
12789
12790         * reflection.c (assembly_name_to_aname): Allow extra characters in
12791         assembly names. Fixes #51468.
12792
12793 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
12794
12795         * exception.c (mono_exception_from_name_domain): New helper function.
12796
12797         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
12798         exception object in the correct domain.
12799
12800         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
12801         formatting + make a copy a the input data.
12802
12803         * loader.c (mono_get_method_from_token): Methods which contain
12804         native code do not have entries in the ImplMap.
12805
12806         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
12807         Thanks to Gonzalo for spotting this.
12808         
12809         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
12810         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
12811
12812         * assembly.h (mono_assembly_load_from): Split the second part of 
12813         assembly loading into a new public function.
12814
12815         * exception.h (mono_get_exception_bad_image_format): New function.
12816
12817 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
12818
12819         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12820         Enumerate all modules inside a dynamic assembly. Fixes #51293.
12821         
12822         * icall.c: Add new icall for creating dynamic methods.
12823
12824         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
12825
12826         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
12827
12828         * reflection.c (mono_reflection_create_dynamic_method): New icall to
12829         create a dynamic method.
12830
12831         * reflection.c (resolve_object): New helper function.
12832
12833         * reflection.c: Generalize ReflectionMethodBuilder and the functions
12834         which manipulate it so they can also work on dynamic methods.
12835
12836         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
12837         creating the MonoReflectionMethodAux structure if it is not needed.
12838         
12839         * reflection.h verify.c: Update after changes to object layout.
12840
12841         * reflection.c (method_builder_encode_signature): Fix compilation on
12842         gcc 2.95.x.
12843
12844 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
12845
12846         * appdomain.h: Added support for context static fields. Added static_data
12847           field to MonoAppContext and renamed thread_static_fields to a more
12848           generic special_static_fields in MonoAppDomain, since it can now contain
12849           context static fields.
12850         * domain.c: Updated hashtable name.
12851         * object.c: Replaced field_is_thread_static() for a more generic
12852           field_is_special_static() which also checks for context static attribute.
12853           In mono_class_vtable(), added support for static context fields.
12854         * threads.c: Changed methods that manage thread static fields to more
12855           generic methods so they can be reused both for thread and context static
12856           data.
12857         * threads.h: Declared some new methods.
12858
12859 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
12860
12861         * reflection.h: Update after changes to the managed types.
12862
12863         * reflection.c (encode_custom_modifiers): New helper function.
12864
12865         * reflection.c (method_encode_signature): Emit custom modifiers.
12866
12867         * reflection.c (field_encode_signature): Emit custom modifiers.
12868
12869 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
12870
12871         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
12872
12873         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
12874         implementation.
12875
12876         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
12877         icall.
12878
12879         * object.c (mono_field_get_value_object): New function.
12880
12881         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
12882         specific.
12883
12884 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
12885
12886         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
12887         return a preallocated out-of-memory exception instance.
12888
12889         * object.c (out_of_memory): Use the new function.
12890
12891         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
12892         flag is before the custom modifiers. Fixes #49802.
12893
12894 2003-11-16  Martin Baulig  <martin@ximian.com>
12895
12896         * class.c (mono_class_is_open_constructed_type): Implemented the
12897         MONO_TYPE_GENERICINST case.
12898
12899 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
12900
12901         * assembly.c (mono_assembly_fill_assembly_name): New function to
12902         fill out the MonoAssemblyName structure.
12903         (mono_assembly_open): Use the new function.
12904
12905         * icall.c (fill_reflection_assembly_name): New helper function.
12906
12907         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
12908         new function.
12909
12910         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
12911
12912 2003-11-15  Martin Baulig  <martin@ximian.com>
12913
12914         * class.c (mono_class_is_open_constructed_type): New public
12915         function; checks whether a type is an open constructed type,
12916         ie. whether it still contains type parameters.
12917         (mono_class_inflate_generic_type): If we're a type parameter and
12918         the inflated type is also a MONO_TYPE_(M)VAR, return the original
12919         type.
12920
12921         * class.h (MonoGenericInst): Added `guint32 is_open'.
12922
12923         * loader.c (method_from_methodspec): Check whether we're an open
12924         or closed constructed type and set `ginst->is_open'.
12925
12926         * reflection.c (mono_reflection_bind_generic_parameters): Check
12927         whether we're an open or closed constructed type and set
12928         `ginst->is_open'.
12929         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
12930         from open constructed types.
12931
12932 2003-11-15  Martin Baulig  <martin@ximian.com>
12933
12934         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12935         a generic instance (instead of a generic type declaration) with
12936         unbound generic parameters, bind them to our actual types.
12937
12938 2003-11-14  Martin Baulig  <martin@ximian.com>
12939
12940         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
12941
12942         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12943         an interface type, populate `res->interfaces' with instantiated
12944         versions of all the interfaces we inherit.
12945
12946 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
12947
12948         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
12949         when MONO_PATH is set but doesn't contain the install dir.
12950
12951 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12952
12953         * icall.c:
12954         (ves_icall_Type_GetInterfaces): don't return an interface twice when
12955         it's also implemented in base classes. Fixes bug #50927.
12956
12957 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
12958
12959         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
12960         if this method is called from a finalizer. Fixes #50913.
12961
12962 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
12963
12964         * threads.c: Implement VolatileRead/VolatileWrite
12965
12966         * icall.c: Add new icalls for VolatileRead/VolatileWrite
12967
12968 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12969
12970         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
12971         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
12972         2.95.3.
12973
12974         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
12975         from Peter Ross (pro@missioncriticalit.com).
12976         
12977 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
12978
12979         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
12980
12981 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12982
12983         * assembly.c (mono_assembly_load_references): Disable check because it
12984         triggers on older corlibs which lots of people have.
12985
12986 2003-11-12  Jackson Harper  <jackson@ximian.com>
12987
12988         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
12989         load corlib.dll if mscorlib.dll is not found.
12990         * assembly.h: Remove corlib name define.
12991         * class.c:
12992         * domain.c:
12993         * image.c: Change corlib name to mscorlib.
12994         
12995 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12996
12997         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
12998
12999 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13000
13001         * appdomain.h: Added loader_optimization here to sync with the C#
13002         code, and add disallow_binding_redirects field.
13003
13004 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13005
13006         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13007
13008         * reflection.c (mono_image_build_metadata): Fix crash on modules
13009         with no types.
13010
13011         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13012
13013         * icall.c (ves_icall_get_method_info): Return callingConvention as
13014         well.
13015
13016         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13017         namespaces from the EXPORTEDTYPE table as well.
13018
13019         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13020         from all modules inside the assembly.
13021         
13022 2003-11-11  Martin Baulig  <martin@ximian.com>
13023
13024         * reflection.c (mono_reflection_bind_generic_parameters): Make
13025         this work for interfaces.
13026
13027 2003-11-11  Martin Baulig  <martin@ximian.com>
13028
13029         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13030
13031 2003-11-11  Martin Baulig  <martin@ximian.com>
13032
13033         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13034         "MonoInflatedMethod" and "MonoInflatedCtor".
13035
13036 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13037
13038         * reflection.c (resolution_scope_from_image): Use the assembly table
13039         from the manifest module, since other modules don't have it.
13040
13041         * debug-helpers.c (mono_type_full_name): New helper function.
13042
13043         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13044
13045         * image.c (mono_image_load_file_for_image): New public function which
13046         is a replacement for the load_file_for_image in class.c.
13047
13048         * assembly.c (mono_assembly_load_module): A wrapper for the function
13049         above which does assembly association and reference loading too.
13050
13051         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13052
13053 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13054
13055         * appdomain.c: not all of the attributes for the full assembly name
13056         are required and the order doesn't matter. Fixes bug #50787.
13057
13058 2003-11-10  Dick Porter  <dick@ximian.com>
13059
13060         * locales.c: Use platform-endian UTF16
13061
13062 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13063
13064         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13065         
13066 2003-11-10  Martin Baulig  <martin@ximian.com>
13067
13068         * metadata.c
13069         (mono_metadata_load_generic_params): Make this actually work.
13070
13071         * reflection.c (mono_reflection_bind_generic_parameters): If our
13072         parent is a generic instance, pass all the `types' to it, no
13073         matter whether it has the same number of type parameters or not.
13074
13075 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13076
13077         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13078
13079         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13080         assignment code to this function so it gets called recursively for all
13081         modules.
13082
13083         * image.c (load_modules): Remove the assembly assignment since it is
13084         now done by mono_assembly_load_references.
13085         
13086         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13087         Add 'module' argument.
13088         (mono_module_get_types): New helper function.
13089         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13090
13091 2003-11-08  Martin Baulig  <martin@ximian.com>
13092
13093         * class.c (mono_class_inflate_generic_method): Interface method
13094         don't have a header.
13095
13096         * reflection.c (mono_image_get_methodspec_token): Take an
13097         additional `MonoGenericInst *' argument instead of reading it from
13098         the header; this is necessary to support interfaces.
13099         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13100         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13101         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13102         argument.
13103
13104         * reflection.h (MonoReflectionInflatedMethod): Added
13105         `MonoGenericInst *ginst'.
13106
13107 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13110
13111 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13112
13113         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13114
13115 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13116
13117         * reflection.c 
13118         (reflection_methodbuilder_from_method_builder):
13119         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13120         initialize a ReflectionMethodBuilder structure.
13121         (mono_image_get_methodbuilder_token):
13122         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13123         tokens which point to types in another module inside the same assembly.
13124
13125         * reflection.c: Use the new helper functions.
13126         
13127         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13128
13129         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13130         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13131
13132         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13133         neccesary.
13134
13135         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13136         current module. Emit the manifest only for the main module.
13137
13138         * reflection.c (mono_image_create_token): Add assertion when a 
13139         memberref needs to be created.
13140
13141         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13142
13143         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13144         larger buffer for the custom attribute blob. Fixes #50637.
13145         
13146 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13147
13148         * threadpool.c: notify listener on async processing handles after
13149         invoking the async callback. Thanks to Zoltan.
13150
13151 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13152
13153         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13154         avoid code duplication.
13155
13156         * reflection.h (MonoDynamicImage): New type which is currently unused,
13157         but will be used through the ref.emit code in place of 
13158         MonoDynamicAssembly.
13159
13160         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13161         object layout.
13162
13163         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13164         a MonoDynamicImage instead of just a MonoImage.
13165         
13166         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13167         icalls to ModuleBuilder but keep their semantics, so they will work
13168         with moduleb->assemblyb. This will change later.
13169         
13170 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13171
13172         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13173         object layout.
13174
13175         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13176         main module, since it is now done by the managed code.
13177
13178 2003-11-03  Martin Baulig  <martin@ximian.com>
13179
13180         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13181         `ginst->klass' here.
13182         (method_encode_methodspec): Don't use the `ginst->generic_method's
13183         klass if it's a generic instance, use `ginst->klass' in this case.
13184
13185 2003-11-03  Martin Baulig  <martin@ximian.com>
13186
13187         * reflection.c (mono_image_get_generic_method_param_info):
13188         Removed, use mono_image_get_generic_param_info() instead.
13189         (mono_image_get_type_info): Write the GenericParam table before
13190         the Method table.  This is neccessary because in the GenericParam
13191         table, type parameters of the class (ie. '!0' etc.) must come
13192         before the ones from its generic methods (ie. '!!0' etc).
13193
13194 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13195
13196         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13197
13198 2003-11-02  Martin Baulig  <martin@ximian.com>
13199
13200         * reflection.c (create_generic_typespec): Take a
13201         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13202         the generic parameters from it.
13203
13204 2003-11-02  Martin Baulig  <martin@ximian.com>
13205
13206         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13207         instead of a `MonoClassField *' since we just need the type.
13208         (create_generic_typespec): New static function.  Creates a
13209         TypeSpec token for a generic type declaration.
13210         (mono_image_get_generic_field_token): New static function.
13211         (mono_image_create_token): If we're a FieldBuilder in a generic
13212         type declaration, call mono_image_get_generic_field_token() to get
13213         the token.
13214
13215 2003-11-02  Martin Baulig  <martin@ximian.com>
13216
13217         * reflection.h
13218         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13219         `MonoReflectionGenericInst *declaring_type' and
13220         `MonoReflectionGenericInst *reflected_type' fields.
13221
13222         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13223         `MonoReflectionGenericInst *declaring_type' and a
13224         `MonoReflectionGenericInst *reflected_type' argument instead of a
13225         single `MonoReflectionGenericInst *type' one.  Set
13226         `res->declaring_type' and `res->reflected_type' from them.
13227         (mono_reflection_inflate_field): Likewise.      
13228
13229 2003-11-02  Martin Baulig  <martin@ximian.com>
13230
13231         * class.c (mono_class_setup_vtable): Don't store generic methods
13232         in the vtable.  
13233
13234 2003-11-02  Martin Baulig  <martin@ximian.com>
13235
13236         * reflection.h (MonoReflectionGenericInst): Added
13237         `MonoReflectionType *declaring_type'.
13238
13239         * reflection.c (mono_reflection_bind_generic_parameters): Use
13240         `if (tb->parent)' instead of `klass->parent'.
13241
13242 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13243
13244         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13245         with an empty ASSEMBLY table.
13246
13247         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13248         variable in the inner and outer loops.
13249
13250 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13251
13252         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13253         argument.
13254
13255         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13256         
13257         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13258         icalls. Instead, do everything in managed code. This is needed since
13259         it is hard to restore the original domain etc. in unmanaged code in the
13260         presence of undeniable exceptions.
13261
13262         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13263         New icalls to push and pop appdomain refs.
13264
13265 2003-10-31  Martin Baulig  <martin@ximian.com>
13266
13267         * class.c (inflate_generic_type): Renamed to
13268         mono_class_inflate_generic_type() and made it public.
13269
13270         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13271         New interncall.
13272
13273         * loader.c (mono_field_from_memberref): Also set the retklass for
13274         typespecs.
13275
13276         * fielder.c (mono_image_get_inflated_field_token): New static
13277         method; creates a metadata token for an inflated field.
13278         (mono_image_create_token, fixup_method): Added support for
13279         "MonoInflatedField".
13280         (fieldbuilder_to_mono_class_field): New static function.
13281         (mono_reflection_inflate_field): New public function.
13282
13283         * reflection.h
13284         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13285         (MonoReflectionInflatedField): New typedef.     
13286
13287 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13288
13289         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13290         for Solaris and other platforms without s6_addr16
13291
13292 2003-10-30  Martin Baulig  <martin@ximian.com>
13293
13294         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13295         argument instead of two.
13296         (mono_class_inflate_generic_signature): Likewise.
13297         (inflate_generic_header): Likewise.
13298         (mono_class_inflate_generic_method): Likewise.  In addition, if
13299         `ginst->klass' is set, it becomes the new `method->klass'.
13300
13301         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13302         field.
13303
13304         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13305         first byte. [FIXME]
13306         (method_encode_methodspec): If we have generic parameters, create
13307         a MethodSpec instead of a MethodRef.
13308         (fixup_method): Added support for "MonoInflatedMethod" and
13309         "MonoInflatedCtor".
13310         (mono_image_create_token): Added support for "MonoInflatedMethod"
13311         and "MonoInflatedCtor".
13312         (inflated_method_get_object): New static function; returns a
13313         managed "System.Reflection.MonoInflatedMethod" object.
13314         (mono_reflection_bind_generic_method_parameters): Return a
13315         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13316         (mono_reflection_inflate_method_or_ctor): Likewise.
13317         (mono_image_get_generic_method_param_info): Initialize unused
13318         fields to zero.
13319         (mono_image_get_generic_param_info): Likewise.
13320
13321         * reflection.h (MonoReflectionInflatedMethod): New public
13322         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13323         "S.R.MonoInflatedCtor" classes.
13324
13325         * loader.c (method_from_memberref): If we're a TypeSpec and it
13326         resolves to a generic instance, inflate the method.
13327
13328 2003-10-28  Dick Porter  <dick@ximian.com>
13329
13330         * object.c (mono_runtime_run_main): Convert command-line arguments
13331         into utf8, falling back to the user's locale encoding to do so.
13332
13333 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13334
13335         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13336         at this time.
13337
13338         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13339
13340         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13341         up icalls at method definition time. Partially fixes #33569.
13342
13343 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13344
13345         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13346         marshalling of arrays. Fixes #50116.
13347
13348         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13349
13350         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13351         points to a vtable in the dying appdomain.
13352
13353         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13354         listeners into unmanaged code inside the lock.
13355
13356         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13357         domains and add some comments.
13358
13359 2003-10-25  Martin Baulig  <martin@ximian.com>
13360
13361         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13362
13363         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13364
13365         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13366         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13367         currently parsing.  Create the generic class and store it in
13368         `generic_inst->klass' before parsing the type arguments.  This is
13369         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13370         for an example.
13371         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13372         to support recursive typespec entries.
13373
13374         * class.c (mono_class_setup_parent): If our parent is a generic
13375         instance, we may get called before it has its name set.
13376         (mono_class_from_generic): Splitted into
13377         mono_class_create_from_generic() and mono_class_initialize_generic().
13378
13379 2003-10-25  Martin Baulig  <martin@ximian.com>
13380
13381         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13382         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13383         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13384         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13385
13386         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13387         (create_typespec): Likewise.
13388         (mono_reflection_bind_generic_parameters): Return a
13389         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13390         (mono_reflection_inflate_method_or_ctor): New public function.
13391
13392         * reflection.h (MonoReflectionGenericInst): New typedef.        
13393
13394 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13395
13396         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13397         inside the domain lock. Fixes #49993.
13398         
13399         * object.c (mono_class_vtable): When typed allocation is used, 
13400         allocate vtables in the GC heap instead of in the mempool, since the
13401         vtables contain GC descriptors which are used by the collector even
13402         after the domain owning the mempool is unloaded.
13403
13404         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13405
13406         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13407         reflect what it does. Also invalidate mempools instead of freeing
13408         them if a define is set.
13409
13410         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13411         of the appdomain.
13412         
13413         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13414         hold the finalizable objects in this domain.
13415
13416         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13417         appdomain.
13418
13419         * appdomain.c (mono_domain_set): New function to set the current
13420         appdomain, but only if it is not being unloaded.
13421
13422         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13423         appdomain which is being unloaded.
13424         
13425         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13426         unloading of the root appdomain.
13427
13428         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13429         icall to execute a method in another appdomain. Intended as a 
13430         replacement for InternalSetDomain, which can confuse the code 
13431         generation in the JIT.
13432
13433         * appdomain.c (mono_domain_is_unloading): New function to determine
13434         whenever an appdomain is unloading.
13435
13436         * appdomain.c (mono_domain_unload): New function to correctly unload
13437         an appdomain.
13438
13439         * assembly.c (mono_assembly_load_references): Check that an assembly
13440         does not references itself.
13441
13442         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13443         domain manually, it asks the finalizer thread to do it, then waits for
13444         the result. Also added a timeout.
13445
13446         * icall.c: Register the new icalls.
13447
13448         * threads.h threads.c: Export the mono_gc_stop_world and 
13449         mono_gc_start_world functions.
13450         
13451         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13452         function to fill out the mempool with 0x2a.
13453
13454 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13455
13456         * reflection.h (MonoReflectionMethodAux): New structure to store
13457         information which is rarely used, thus is not in the MonoMethod
13458         structure.
13459
13460         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13461         store the aux info.
13462
13463         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13464         and marshalling info into the aux structure.
13465
13466         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13467         from the aux structure.
13468
13469         * loader.c (mono_method_get_param_names): Retrieve the param names from
13470         the aux structure.
13471         
13472 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13473
13474         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13475         warning.
13476
13477 2003-10-21  Dick Porter  <dick@ximian.com>
13478
13479         * socket-io.c
13480         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13481         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13482
13483 2003-10-21  Martin Baulig  <martin@ximian.com>
13484
13485         * reflection.c (mono_reflection_bind_generic_parameters):
13486         `klass->parent' is NULL for interfaces.
13487
13488 2003-10-21  Martin Baulig  <martin@ximian.com>
13489
13490         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13491
13492 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13493
13494         * exception.c (mono_exception_from_name_msg): New helper function for
13495         creating exceptions and initializing their message field.
13496
13497         * exception.c: Simplify functions using the new helper.
13498
13499         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13500         New function.
13501
13502         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13503         mono_raise_exception, since otherwise gcc doesn't generate the function
13504         epilog for raise_exception, confusing the stack unwinding in the JIT.
13505         Fixes #45043.
13506
13507         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13508         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13509         Fixes #49499.
13510
13511 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13512
13513         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13514         utf8.
13515
13516 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13517
13518         * icall.c: Removed GetUninitializedObject method because
13519           AllocateUninitializedClassInstance does the same.
13520
13521 2003-10-18  Martin Baulig  <martin@ximian.com>
13522
13523         * class.c (inflate_generic_signature): Renamed to
13524         mono_class_inflate_generic_signature() and made it public.
13525         (my_mono_class_from_generic_parameter): New static function; if we
13526         don't already have the generic parameter's MonoClass, create a
13527         very simple one which is just used internally in the runtime and
13528         not passed back to managed code.
13529
13530         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13531
13532         * metadata.h (MonoMethodSignature): Moved the
13533         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13534         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13535
13536         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13537         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13538         interncall on the MonoMethod class, not on MethodInfo.
13539         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13540         calling mono_reflection_bind_generic_method_parameters() directly.
13541
13542         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13543         return the already computed `method->signature'.
13544         (method_from_methodspec): New static function to load a method
13545         from a MethodSpec entry.
13546         (mono_get_method_from_token): Call the new method_from_methodspec()
13547         for MethodSpec tokens.  
13548         (mono_get_method_from_token): If we're a generic method, load the
13549         type parameters.
13550
13551         * reflection.c (mono_image_get_memberref_token): Allow
13552         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13553         table.
13554         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13555         (mono_image_create_token): First check whether it's a generic
13556         method (so we'd need to create a MethodSpec), then do the other
13557         two alternatives.
13558         (mono_reflection_bind_generic_method_parameters): Return a
13559         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13560         called directly from the interncall.
13561
13562 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13563
13564         * reflection.c (load_public_key): Move loading of the public key
13565         into managed code.
13566
13567         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13568
13569         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13570         fields.
13571
13572         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13573         culture, hash_alg and public_key. Fixes #49555.
13574
13575 2003-10-17  Martin Baulig  <martin@ximian.com>
13576
13577         * class.h (MonoGenericInst): Moved this declaration here and added
13578         `MonoMethod *generic_method'.
13579
13580         * icall.c
13581         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13582         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13583
13584         * metadata.c (mono_metadata_type_equal): Two types of
13585         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13586         index; ie. don't compare the address of the `MonoGenericParam'
13587         structure.
13588         (mono_metadata_load_generic_params): Removed the `MonoMethod
13589         *method' argument.
13590
13591         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13592         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13593
13594         * reflection.c (method_encode_signature): Encode the number of
13595         generic parameters.
13596         (encode_generic_method_sig): New static function.
13597         (method_encode_methodspec): New static function; creates an entry
13598         in the MethodSpec table for a generic method.
13599         (mono_image_get_methodspec_token): New static function.
13600         (mono_image_create_token): Call mono_image_get_methodspec_token()
13601         for generic methods.
13602         (mono_reflection_bind_generic_method_parameters): New public
13603         function.  Instantiates a generic method.
13604
13605 2003-10-16  Martin Baulig  <martin@ximian.com>
13606
13607         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13608         *gen_params' here from MonoMethodHeader.
13609
13610         * metadata.c (mono_metadata_parse_method_signature): If we have
13611         generic parameters, initialize `method->gen_params' and then set
13612         the correct `type->data.generic_param' in all the parameters.
13613
13614 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13615
13616         * threads.c (mono_threads_get_default_stacksize): New function to 
13617         return the default stacksize.
13618
13619         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13620         termination of the finalizer thread, since the previous method had
13621         race conditions. Fixes #49628.
13622
13623         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13624         as for the other managed threads.
13625
13626 2003-10-16  Martin Baulig  <martin@ximian.com>
13627
13628         * class.c (inflate_generic_signature): Copy `generic_param_count'
13629         and `gen_params'.
13630
13631         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13632         New interncall.
13633
13634         * metadata.c (mono_metadata_parse_method_signature): Actually set
13635         the `method->generic_param_count' here.
13636         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13637
13638 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13639
13640         * object.h: Add a new field to TypedRef to simplify the implementation
13641         of the REFANY opcodes in the JIT.
13642
13643         * icall.c: Make use of the new field.
13644
13645         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13646         dynamically.
13647
13648 2003-10-15  Martin Baulig  <martin@ximian.com>
13649
13650         * class.c (mono_class_from_gen_param): Renamed to
13651         mono_class_from_generic_parameter() and moved most of the
13652         functionality from mono_reflection_define_generic_parameter()
13653         here; ie. we create a "real" class here.
13654         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13655         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13656         previously been called.
13657
13658         * class.h (MonoGenericParam): Moved the declaration of this struct
13659         here from metadata.h and added `MonoMethod *method'.
13660
13661         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13662         interncall.
13663
13664         * loader.c (mono_get_method_from_token): If we have any generic
13665         parameters, call mono_metadata_load_generic_params() to read them
13666         from the MONO_TABLE_GENERICPAR.
13667
13668         * metadata.c (mono_metadata_load_generic_params): Added
13669         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13670
13671         * metadata.h (MonoMethodSignature): Replaced
13672         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13673         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13674
13675         * reflection.c (mono_reflection_define_generic_parameter): Moved
13676         most of the functionality into the new
13677         mono_class_from_generic_parameter(); set the `method' field if
13678         we're a method parameter.       
13679
13680 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13681
13682         * marshal.c (emit_struct_conv): if native size is 0
13683         emit no code.
13684
13685 2003-10-14  Martin Baulig  <martin@ximian.com>
13686
13687         * icall.c: The generics API has changed in the spec since it was
13688         added to System.Type; these modifications make it match the spec
13689         again.
13690         (ves_icall_Type_GetGenericParameters): Renamed to
13691         `ves_icall_Type_GetGenericArguments'.
13692         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13693         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13694         `ves_icall_MonoType_get_HasGenericArguments'.
13695         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13696         `ves_icall_MonoType_get_IsGenericParameter'.
13697         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13698         this is no interncall anymore.
13699         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13700         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13701
13702 2003-10-14  Martin Baulig  <martin@ximian.com>
13703
13704         * reflection.c (mono_reflection_bind_generic_parameters): Also
13705         inflate generic methods if we're reading the class from IL.
13706
13707 2003-10-13  Martin Baulig  <martin@ximian.com>
13708
13709         * reflection.c (mono_reflection_define_generic_parameter): This
13710         method isn't called directly from the icall anymore; take a
13711         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13712         method generic parameters.
13713         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13714         (method_builder_encode_signature): Encode generic parameters.
13715         (mono_image_get_method_info): Write generic params to the
13716         MONO_TABLE_GENERICPARAM table.
13717
13718         * reflection.h (MonoReflectionMethodBuilder): Added
13719         `MonoArray *generic_params'.
13720
13721         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13722
13723         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13724         wrapper for mono_reflection_define_generic_parameter().
13725         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13726
13727 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13728
13729         * marshal.h: Add missing function to fix build.
13730
13731         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13732         the SetLastError pinvoke attribute.
13733
13734         * marshal.c (mono_marshal_set_last_error): New helper function called
13735         by the generated code.
13736         
13737         * marshal.c (mono_mb_emit_branch): New helper function.
13738
13739         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13740
13741         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13742         classes as parameters and return values of delegates. Fixes #29256. 
13743
13744 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13745
13746         * locales.c: use gint32 in non HAVE_ICU case
13747
13748 2003-10-11  Martin Baulig  <martin@ximian.com>
13749
13750         * mono-debug.c (mono_debug_add_method): Added a workaround for
13751         bug #48591.
13752
13753 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
13754
13755         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
13756         delegates passed to native code must use the STDCALL calling 
13757         convention. Fixes #35987.
13758
13759 2003-10-10  Martin Baulig  <martin@ximian.com>
13760
13761         * class.c (inflate_generic_type): If we're inflating for a generic
13762         type instance (and not for a generic method), return
13763         MONO_TYPE_MVAR unchanged.
13764
13765 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13766
13767         * string-icalls.c: Join ignores null strings in the source array.
13768         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
13769         * threads.c: GetAvailableTheads is slightly more accurate.
13770
13771 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
13772
13773         * threads.h threads.c : add mono_threads_set_default_stacksize
13774         and pass default to CreateThread calls.
13775
13776 2003-10-09  Dick Porter  <dick@ximian.com>
13777
13778         * icall.c:
13779         * locales.h:
13780         * locales.c: Internal calls for constructing CultureInfo and
13781         related objects from libicu (if its available.)
13782
13783 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
13784
13785         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
13786
13787 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13788
13789         * threadpool.c: added an argument to async_invoke_thread that is the
13790         item to process, pass the MonoAsyncResult to the thread start function
13791         when creating a new thread. This way we don't need to acquire any lock
13792         when we're creating a new thread. Readded a semaphore for faster
13793         response times (instead of that Sleep i added).
13794
13795 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
13796
13797         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
13798         get daylight change dates better on Windows, fix handling
13799         of platforms without tm_gmtoff.
13800
13801 2003-10-06  Martin Baulig  <martin@ximian.com>
13802
13803         * class.c (inflate_generic_method): Renamed to
13804         mono_class_inflate_generic_method() and made public.
13805         (mono_class_init): Don't inflate the generic methods here.
13806         (mono_class_from_generic): Added `gboolean inflate_methods'
13807         argument.  Inflate the methods here.
13808
13809         * loader.c (mono_method_get_param_names): Ignore instances of
13810         generic types for the moment.
13811
13812         * reflection.c (fixup_method): Added support for inflated methods.
13813         (mono_image_create_token): Use mono_image_get_methodref_token()
13814         for inflated methods.
13815         (mono_custom_attrs_from_param): Ignore instances of generic types
13816         for the moment.
13817         (mono_reflection_bind_generic_parameters): New public function.
13818         Moved all the functionality from
13819         ves_icall_Type_BindGenericParameters() here and added support for
13820         dynamic types.
13821         (mono_reflection_define_generic_parameter): Initialize
13822         `klass->methods' here.
13823
13824         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
13825         functionality into mono_reflection_define_generic_parameter().
13826         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
13827         TypeBuilder, return that TypeBuilder.
13828
13829 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13830
13831         * appdomain.c: removed mono_delegate_semaphore.
13832
13833         * threadpool.c:
13834         (mono_thread_pool_add): moved hash table creation inside and the thread 
13835         creation outside of the critical region.
13836         (mono_thread_pool_finish): removed obsolete code.
13837         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
13838         continue or exit the thread depending on the queue.
13839
13840 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
13841
13842         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
13843         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
13844         handle more bool marshalling options
13845
13846 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
13847
13848         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
13849         arrays of structs. Also add a more descriptive error message when
13850         a structure member is marshalled as LPArray.
13851
13852 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
13853
13854         * marshal.c (mono_marshal_get_native_wrapper): Add support for
13855         marshalling arrays of complex types. Fixes #29098. Also remove an
13856         usused and incomplete function.
13857
13858 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13859
13860         * gc.c: report heap_size - free_bytes as total memory allocated
13861         (bug#49362).
13862
13863 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
13864
13865         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
13866         fix timezone handling problems on Windows.
13867         
13868         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
13869         asserts when the year is outside the range handled by ms the functions.
13870
13871         * class.c (setup_interface_offsets): If the class is an interface,
13872         fill out its interface_offsets slot.
13873
13874 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13875
13876         * threadpool.c: mark threadpool threads as background.
13877
13878 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
13879
13880         * decimal.c - define DECINLINE to nothing if not using GCC
13881
13882 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
13883
13884         * assembly.c: More refcount fixes.
13885
13886 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13887
13888         * string-icalls.c: if we're not trimming, return the same string.
13889         When not splitting, don't create a new string.
13890
13891 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13892
13893         * image.c:
13894         (mono_image_open): increment the ref_count inside the critical section.
13895
13896 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
13897
13898         * image.c (mono_image_open): Fix reference counting bug.
13899
13900 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
13901
13902         * marshal.c (mono_marshal_type_size) struct alignment changed for 
13903         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
13904         64bits. Avoid leak in mono_marshal_get_native_wrapper when
13905         mono_lookup_pinvoke_call throws.        
13906
13907 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
13908
13909         * reflection.c (mono_reflection_parse_type): Fix #49114.
13910
13911         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
13912         temporary workaround for cygwin header problem.
13913
13914         * object.c (mono_object_isinst): Synchronize this with the code
13915         generated by the JIT for casts.
13916
13917 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
13918
13919         * reflection.c (encode_type): Fix #38332.
13920
13921 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
13922
13923         * marshal.c (mono_marshal_method_from_wrapper): New function to return
13924         the original method from the wrapper method.
13925
13926 2003-09-25  Martin Baulig  <martin@ximian.com>
13927
13928         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
13929         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
13930         (ves_icall_Type_get_IsGenericInstance): New interncall.
13931
13932 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
13933
13934         * object.c: fix cast warning in big endian code.
13935
13936 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
13937
13938         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
13939         
13940 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13941
13942         * assembly.c: don't call check_env from mono_assembly_load. It's
13943         already done once in mono_assemblies_init and may cause headaches when
13944         multiple threads are loading assemblies.
13945
13946 2003-09-19  Martin Baulig  <martin@ximian.com>
13947
13948         * reflection.c (mono_reflection_define_generic_parameter): Don't
13949         allocate `klass->methods', set `klass->flags' to
13950         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
13951
13952 2003-09-18  Martin Baulig  <martin@ximian.com>
13953
13954         * class.c (mono_class_init): Don't create `class->methods' if it's
13955         already initialized.
13956
13957         * metadata.c (mono_metadata_load_generic_params): Make this
13958         actually work.
13959
13960         * reflection.c (mono_reflection_define_generic_parameter): Set
13961         parent class and interfaces from the constraints.
13962
13963         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
13964         to keep this struct in sync with the declaration in TypeBuilder.cs.
13965
13966 2003-09-17  Martin Baulig  <martin@ximian.com>
13967
13968         * metadata.h (MonoType): Replaced the data's `int type_param'
13969         field with `MonoGenericParam *generic_param'.
13970         (MonoGenericParam): Added `MonoClass *klass'.
13971
13972         * class.c (mono_class_from_gen_param): Removed the
13973         `MonoImage *image' and `int type_num' arguments.
13974
13975         * metadata.c (mono_metadata_parse_generic_param): New static
13976         method; creates a MonoGenericParam which just contains the index.
13977         (do_mono_metadata_parse_type): Call
13978         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
13979         MONO_TYPE_MVAR.
13980
13981         * reflection.c (mono_image_typedef_or_ref): Generic type
13982         parameters may be in the same assembly, but never use a typedef
13983         for them.
13984         (mono_reflection_define_generic_parameter): We're now creating a
13985         "real" class for the type parameter; it's now safe to call
13986         mono_class_from_mono_type() on the class'es type, it'll do the
13987         right thing.
13988
13989 2003-09-16  Martin Baulig  <martin@ximian.com>
13990
13991         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
13992         `symfile->range_entry_size' and `symfile->class_entry_size' here;
13993         the `symfile' data structure must be fully initialized before it
13994         gets added to the table.
13995
13996 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
13997
13998         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
13999
14000         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14001         class init trampolines.
14002
14003 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14004
14005         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14006         to the built-in profiler to turn off time and allocation profiling
14007         respectively.
14008
14009 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14010
14011         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14012         g_direct_equal.
14013
14014         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14015         in human readable form.
14016
14017 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14018
14019         * reflection.c icall.c: Fixed warnings.
14020
14021         * image.c (load_class_names): Use a temporary hash table to hold the
14022         namespaces in order to avoid doing many string comparisons.
14023
14024         * image.h: Fix typo.
14025
14026         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14027         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14028         since the NULL case is short-circuited inside g_hash_table_lookup, 
14029         leading to better performance.  
14030
14031         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14032         obtain the first custom attribute for a given index. Depends on the
14033         CustomAttribute table being sorted by the parent field.
14034
14035         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14036         for better performance.
14037
14038 2003-09-07  Martin Baulig  <martin@ximian.com>
14039
14040         * class.c (mono_class_init): If we're a generic instance, inflate
14041         all our methods instead of loading them from the image.
14042         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14043
14044 2003-09-07  Martin Baulig  <martin@ximian.com>
14045
14046         * mono-debug-debugger.c: Added support for constructors.
14047
14048 2003-09-06  Martin Baulig  <martin@ximian.com>
14049
14050         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14051         New interncall.
14052
14053         * reflection.c (mono_reflection_setup_generic_class): Call
14054         ensure_runtime_vtable() to create the vtable.
14055
14056 2003-09-05  Martin Baulig  <martin@ximian.com>
14057
14058         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14059         MONO_TYPE_MVAR.
14060
14061 2003-09-04  Martin Baulig  <martin@ximian.com>
14062
14063         * reflection.c (mono_reflection_define_generic_parameter): Generic
14064         parameters start with zero.
14065
14066 2003-09-04  Martin Baulig  <martin@ximian.com>
14067
14068         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14069
14070         * reflection.h (MonoReflectionGenericParam): New typedef.
14071         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14072         the generic parameters from the managed TypeBuilder.
14073
14074         * reflection.c (mono_reflection_define_generic_parameter): New function.
14075         (mono_reflection_create_runtime_class): Encode generic parameters.
14076         (mono_reflection_setup_generic_class): New function; this is
14077         called after adding adding all generic params to the TypeBuilder.
14078         (encode_type): Added MONO_TYPE_VAR.
14079
14080 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14081
14082         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14083         here from the JIT.
14084
14085         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14086         load hook.
14087
14088 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14089
14090         * reflection.h reflection.c class.h class.c: Delete duplicate 
14091         definition of mono_type_get_name () from reflection.c and export the
14092         one in class.c.
14093
14094         * class.c: Class loading fixes from Bernie Solomon 
14095         (bernard@ugsolutions.com).
14096
14097         * reflection.c: Endianness fixes from Bernie Solomon 
14098         (bernard@ugsolutions.com).
14099         
14100 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14101
14102         * assembly.h assembly.c: Define a file format version for AOT
14103         libraries.
14104         
14105         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14106
14107         * appdomain.h (MonoJitInfo): New field to determine whenever the
14108         code is domain neutral.
14109         
14110 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14111
14112         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14113
14114 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14115
14116         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14117         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14118         Avoid caching the result since strings must be domain specific. Fixes
14119         #48050.
14120
14121 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14122
14123         * marshal.c (mono_marshal_init): Make this callable multiple times
14124         since it is hard to find a correct place to call it.
14125
14126         * object.c (mono_runtime_class_init): Execute static constructors in
14127         the correct appdomain.
14128
14129         * image.c (build_guid_table): Handle the case when multiple images have
14130         the same GUID.
14131
14132 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14133
14134         * icall.c: added a couple of icalls for System.Web.
14135
14136 2003-08-28  Martin Baulig  <martin@ximian.com>
14137
14138         * icall.c (ves_icall_Type_BindGenericParameters): Use
14139         `klass->generic_inst' instead of `&klass->byval_arg' in the
14140         mono_type_get_object() call.  The returned type must be
14141         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14142
14143 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14144
14145         * NOTES: New file.
14146
14147         * object.c (mono_class_proxy_vtable): Make it thread safe.
14148
14149         * pedump.c: Fix warning.
14150
14151         * object.c appdomain.h: Get rid of metadata_section. 
14152         It is no longer needed and it was causing deadlocks with domain->lock.
14153
14154         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14155
14156 2003-08-26  Martin Baulig  <martin@ximian.com>
14157
14158         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14159
14160 2003-08-26  Martin Baulig  <martin@ximian.com>
14161
14162         * pedump.c (main): Call mono_metadata_init(),
14163         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14164         and mono_loader_init().
14165
14166 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14167
14168         * loader.h: Add missing include to fix build.
14169
14170         * image.h: mono_image_load_references is no more.
14171
14172         * assembly.c: Reworked assembly loading to make it really thread safe.
14173         After these changes, the assembly returned by mono_assembly_open is
14174         fully initialized, i.e. all its references assemblies are loaded.
14175
14176         * assembly.c (mono_image_load_references): Renamed to 
14177         mono_assembly_load_references, and made private, since clients no
14178         longer need to call it.
14179
14180         * class.c: Removed calls to mono_assembly_load_references, since it was
14181         a source of deadlocks.
14182
14183         * loader.h loader.c class.h class.c: Protect data structures using a 
14184         new lock, the loader lock.
14185
14186         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14187         GPtrArrays only when needed.
14188
14189         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14190         into empty structures by mcs. Fixes pinvoke7.cs.
14191         
14192         * domain.c (mono_init): Call a new initialization function.
14193
14194         * appdomain.c (mono_runtime_init): Call the new initializer function
14195         of the marshal module.
14196
14197         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14198         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14199
14200         * marshal.h marshal.c: Added locks around the wrapper caches to make
14201         this module thread safe.
14202
14203         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14204         this argument. Fixes pinvoke1.exe.
14205
14206 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14207
14208         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14209         enumeration of values. Removed fields to store remote call output values in
14210         MonoAsyncResult. Not needed any more.
14211         * object.c: Initialize call_type and async_result fields in mono_message_init.
14212         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14213         dispatching the message.
14214         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14215         async call to finish. To do it use a message with EndInvoke call type.
14216
14217 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14218
14219         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14220         determines whenever a method has marshalling info.
14221
14222 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14223
14224         * assembly.c: fix the build on windows.
14225
14226 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14227
14228         * object.cs: Fixed bug #47785.
14229
14230 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14231
14232         * string-icalls.c (StringReplace): If their are no occurances of
14233         the old string found return a reference to the supplied
14234         string. This saves some memory and matches MS behavoir.
14235         
14236 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14237
14238         * socket-io.c: fixed compilation for systems that define AF_INET6
14239         and don't define SOL_IP/SOL_IPV6.
14240
14241 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14242
14243         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14244         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14245
14246         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14247
14248         * domain.c: Make this module thread safe.
14249
14250         * domain.c (mono_init): Call new initialization function.
14251
14252         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14253         reference types too. Fixes #38812.
14254
14255         * image.c (mono_image_init): Fixed warnings.
14256
14257         * class.c (mono_class_from_typeref): Handle assembly load failure
14258         correctly.
14259
14260         * appdomain.c (add_assemblies_to_domain): Handle the case when
14261         the references of an assembly are not yet loaded.
14262
14263         * metadata.c image.c assembly.c: Moved initialization of global
14264         variables to a separate function called at startup since lazy 
14265         initialization of these variables is not thread safe.
14266         
14267         * image.c assembly.c: Made this module thread safe by adding locks in 
14268         the appropriate places.
14269
14270         * domain.c (mono_init): Call the new initialization functions of the
14271         three modules.
14272
14273 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14274
14275         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14276           make a direct call. It is proxy's work to make the call asynchronous.
14277           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14278           the return values.
14279         * object.cs: mono_method_call_message_new(): read AsyncResult and
14280           state object from parameters list, if this info is requested.
14281         * object.h: Added fields to store remote call output values in
14282           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14283
14284 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14285
14286         * object.h: add needed fields to MonoThread.
14287         * threads.c, threads.h: allow registering a function to cleanup data
14288         allocated per thread by the JIT.
14289
14290 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14291
14292         * loader.h: portability fix by Bernie Solomon
14293         * <bernard@ugsolutions.com>.
14294
14295 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14296
14297         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14298         return a MonoArray. This simplifies the code and also ensures that
14299         the cache allways contains an object reference as a value.
14300
14301         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14302         function.
14303
14304 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14305
14306         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14307         fixes a problem with byte ordering when getting the address family for
14308         a socket.
14309
14310 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14311
14312         * .cvsignore: Added monosn.
14313
14314         * reflection.h reflection.c loader.c: Added support for parameter
14315         marshalling to dynamically created types. Fixes #47295.
14316
14317 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14318
14319         * rand.c: remove useless warnings.
14320
14321 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14322
14323         * class.c: implemented ldtoken for methods and fieldrefs.
14324
14325 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14326
14327         * threadpool.c: when mono_async_invoke was called, no one took care of
14328         monitoring the queue. So if the method invoked took some time and we
14329         got new async invoke requests after 500 ms (the thread created waited
14330         that long in WaitForSingleObject), the new async invoke was not called
14331         until the previous one finished.
14332
14333         This is fixed now. Thanks to Totte for helping with it.
14334
14335 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14336
14337         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14338
14339 2003-08-11  Martin Baulig  <martin@ximian.com>
14340
14341         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14342
14343 2003-08-06  Martin Baulig  <martin@ximian.com>
14344
14345         * mono-debug-debugger.c: Added support for static fields,
14346         properties and methods.
14347
14348 2003-08-06  Martin Baulig  <martin@ximian.com>
14349
14350         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14351         make this work for applications with multiple application domains.
14352
14353 2003-08-04  Martin Baulig  <martin@ximian.com>
14354
14355         * mono-debug-debugger.c: Completely reworked the type support; the
14356         most important thing is that we're now just using one single
14357         `MonoType' instance per type.
14358
14359 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14360
14361         * mono-endian.h, mono-endian.c, icall.c: Added icall
14362         ves_icall_System_Double_AssertEndianity to assert double word endianity
14363         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14364
14365 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14366
14367         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14368         support, icalls and fixes.
14369
14370 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14371
14372         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14373         classes that are a punctuation character in .NET is not the same a
14374         g_unichar_ispunct.
14375
14376 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14377
14378         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14379
14380 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14381
14382         * icall.c: Add new MemCopy internalcall.
14383         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14384         Simplified code; It is not necessary to handle all the cases here,
14385         as the C# code takes care of it.  Only handle the case of the name
14386         resource embedded into the assembly.
14387
14388         Changed signature to return the data pointer and the size of the
14389         data. 
14390
14391 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14392
14393         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14394         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14395
14396 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14397
14398         * socket-io.c: ignore EINTR error in select.
14399
14400 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14401
14402         * class.h, class.c: removed unused subclasses field in MonoClass.
14403
14404 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14405
14406         * icall.c: improve fix of get_base_definition(). If the parent class
14407           doesn't have the mehod, look at the parent of the parent.
14408         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14409           to check if a parameter is an in or out parameter
14410           (PARAM_ATTRIBUTE_IN is not set by default).
14411           mono_method_return_message_restore(): Use mono_class_value_size to
14412           get the size of a value type. mono_type_stack_size (parameterType)
14413           does not return the correct value if parameterType is byRef.
14414           mono_load_remote_field(), mono_load_remote_field_new(),
14415           mono_store_remote_field(), mono_store_remote_field_new():
14416           raise exception if the remote call returns an exception.
14417
14418 2003-07-28  Martin Baulig  <martin@ximian.com>
14419
14420         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14421         method.  This is a wrapper around mono_runtime_invoke() which
14422         boxes the instance object if neccessary.
14423
14424 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14425
14426         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14427         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14428
14429 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14430
14431         * icall.c: disable mcs bug workaround.
14432
14433 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14434
14435         * object.c (mono_runtime_class_init): Take the metadata_section
14436         mutex before obtaining the domain mutex.
14437
14438         * appdomain.h: Added definition of metadata_section mutex here. 
14439
14440         * object.c: define metadata_mutex here.
14441
14442 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14443
14444         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14445         fixed.
14446
14447 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14448
14449         * reflection.c: Fix bug #46669
14450
14451 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14452
14453         * exception.c:
14454         * exception.h:
14455         * icall.c:
14456         * object.h: fill in the type name for TypeLoadException.
14457
14458 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14459
14460         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14461         relationship between TypeBuilders while compiling corlib) and bug
14462         45993 (Array types returned from the runtime while compiling
14463         corlib were from the loaded corlib).
14464
14465 2003-07-22  Martin Baulig  <martin@ximian.com>
14466
14467         * mono-debug-debugger.c: Reworked the type support a bit more;
14468         distinguish between types and classes.
14469
14470 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14471
14472         * icall.c: add IsArrayImpl icall.
14473
14474 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14475
14476         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14477         initializing real_size only once. Also fix bug #46602.
14478
14479 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14480
14481         * object.c: Renamed mono_metadata_section to metadata_section.
14482
14483 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14484
14485         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14486           empty array if the type is an array. Fixed.
14487           ves_icall_MonoMethod_get_base_definition: if the base method
14488           is abstract, get the MethodInfo from the list of methods of
14489           the class.
14490         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14491           and it was 1-based. Fixed in mono_param_get_objects.
14492
14493 2003-07-20  Martin Baulig  <martin@ximian.com>
14494
14495         * mono-debug.h: Set version number to 31.
14496         (mono_debug_init): Added `MonoDomain *' argument.
14497
14498         * mono-debug-debugger.c: Reworked the type support; explicitly
14499         tell the debugger about builtin types; pass the `klass' address to
14500         the debugger.
14501
14502 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14503
14504         * image.c: Allow new metadata tables to be loaded without a
14505         warning. Also update the warning message to give the new constant value.
14506                 
14507 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14508
14509         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14510         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14511         array type representation changes.
14512
14513 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14514
14515         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14516         on Environment.Exit () call.
14517
14518 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14519
14520         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14521         requires a matching corlib.
14522
14523 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14524
14525         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14526           Committed again without the CRs.
14527         
14528 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14529
14530         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14531           getting it from the "this" socket instance. Did not work
14532           if the socket is a subclass of Socket.
14533           Also fixed bug #35371.
14534
14535 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14536
14537         * metadata.c: fixed size for TypedByRef.
14538         * loader.c: when searching for a method, consider the vararg amrker.
14539         * unicode.c, decimal.c: constify some arrays.
14540
14541 2003-07-15  Dick Porter  <dick@ximian.com>
14542
14543         * socket-io.c: Fixed compilation for gcc < 3.2.
14544
14545         Fixed compilation for machines that don't have AF_INET6 (thanks to
14546         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14547
14548         Fixed compile warnings.
14549         
14550         Fixed formatting and line endings.
14551
14552 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14553
14554         * socket-io.h:
14555         * socket-io.c: Added IPv6 support.
14556
14557 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14558
14559         * class.c (mono_class_is_assignable_from): New function to implement
14560         the is_assignable_from logic. Used by mono_object_isinst, 
14561         Type::IsAssignableFrom () and the interpreter.
14562
14563         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14564         Object, even interfaces.
14565         
14566         * object.c (mono_object_isinst): Implement in terms of 
14567         is_assignable_from.
14568
14569         * icall.c (ves_icall_type_is_assignable_from): New icall.
14570
14571 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14572
14573         * domain.c (foreach_domain): fix compiler warning.
14574
14575 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14576
14577         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14578         not available on all plattforms
14579
14580 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14581
14582         * image.h image.c: Store the metadata version string in MonoImage.
14583         * icall.c: New icall to retrieve the image version.
14584         * reflection.c (create_dynamic_image): Fill in the image version field
14585         * reflection.c (build_compressed_metadata): Use the image version
14586         from the image structure.
14587
14588 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14589
14590         * appdomain.c: modified comment.
14591         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14592         That will be its last iteration when mono_gc_cleanup is called from
14593         mono_runtime_cleanup and before the domain is unloaded.
14594
14595         Fixes bug #45962.
14596
14597 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14598
14599         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14600         attributes.
14601
14602 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14603
14604         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14605         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14606         Bernie Solomon <bernard@ugsolutions.com>.
14607
14608 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14609
14610         * object.c, object.h: provide mono_object_new_fast() for faster
14611         allocation in some special cases.
14612
14613 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14614
14615         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14616         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14617
14618 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14619
14620         * threadpool.c: fix leaks.
14621
14622 2003-07-01  Dick Porter  <dick@ximian.com>
14623
14624         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14625         using MonoGHashTables.  Fixes threadpool bug posted to list.
14626
14627 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14628
14629         * image.h, image.c: added support to load an assembly from a byte array.
14630         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14631         assembly bundle support.
14632
14633 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14634
14635         * threadpool.c (mono_thread_pool_add): keep a reference to the
14636         AsyncResult to prevent GC
14637
14638 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14639
14640         * class.c: leak fix.
14641
14642 2003-06-25  Dick Porter  <dick@ximian.com>
14643
14644         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14645         for the async object, the WaitHandle object will close the handle.
14646         Fixes bug 45321.
14647
14648 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14649
14650         * class.c: in mono_array_class_get (), lookup from the hash with the
14651         same type we insert: this works around a bug in
14652         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14653         lluis. The real fix will have to wait for after the release.
14654
14655 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14656
14657         * icall.c: fix memory leak when getting type members.
14658
14659 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14660
14661         * reflection.c: added more pubtoken special cases.
14662
14663 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14664
14665         * class.c: handle field offset correctly when class size
14666         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14667
14668 2003-06-20  Martin Baulig  <martin@ximian.com>
14669
14670         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14671         *image' field.
14672
14673 2003-06-20  Martin Baulig  <martin@ximian.com>
14674
14675         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14676
14677 2003-06-20  Martin Baulig  <martin@ximian.com>
14678
14679         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14680         just distinguish between variables in registers and variables at
14681         an offset relative to a register.
14682
14683 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14684
14685         * icall.c: #ifdef out latest changes until mcs is fixed.
14686
14687 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14688
14689         * icall.c: return members in metadata order.
14690
14691 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14692
14693         * icall.c: avoid infinite loop in GetTimeZoneData.
14694
14695 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14696
14697         * icall.c: added Marshal.Prelink/All icalls.
14698
14699 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14700
14701         * object.c, object.h: fix warnings and do some overflow checking
14702         when creating arrays.
14703
14704 2003-06-17  Dick Porter  <dick@ximian.com>
14705
14706         * file-io.h:
14707         * file-io.c: File attributes need to be tweaked slightly when
14708         passed from the managed to the w32 world.
14709
14710 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14711         * profiler.h profiler-private.h profiler.c: Rework last patch
14712         based on suggestion by Paolo.
14713         
14714 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14715
14716         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14717         instruction level coverage data collection.
14718         * profiler.h profiler.c (: Added new callback function which can be
14719         used by the profiler to limit which functions should have coverage
14720         instrumentation.
14721         * profiler.c (mono_profiler_load): Call g_module_build_path to
14722         generate the file name of the profiler library.
14723
14724 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14725
14726         * profiler.c, profiler.h, profiler-private.h: added basic block 
14727         coverage profiling API.
14728
14729 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14730
14731         * reflection.c (mono_reflection_create_runtime_class): Add support
14732         for events in dynamically generated code.
14733
14734         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14735         not allocated.
14736
14737 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14738
14739         * icall.c: when getting timezone info, return reasonable values if we
14740         can't get the actual data.
14741
14742 2003-06-14  Dick Porter  <dick@ximian.com>
14743
14744         * threads.c (start_wrapper): Remove the reference to the thread
14745         object in the TLS data, so the thread object can be finalized.
14746         This won't be reached if the thread threw an uncaught exception,
14747         so those thread handles will stay referenced :-( (This is due to
14748         missing support for scanning thread-specific data in the Boehm GC
14749         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14750
14751 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
14752
14753         * reflection.c: ensure streams and tables are first allocated with
14754         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
14755
14756 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14757
14758         * icall.c: fixed GetElementType for byrefs (bug# 44792).
14759
14760 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
14761
14762         * reflection.c (mono_reflection_create_runtime_class): Add support for
14763         properties to dynamically created classes.
14764         * reflection.c: Fix a few places where non-MonoObjects were inserted
14765         into the tokens hashtable.
14766
14767 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14768
14769         * object.c: some support to handle out of memory exceptions.
14770
14771 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
14772
14773         * marshal.c (mono_marshal_get_native_wrapper): support reference
14774         return types
14775
14776 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14777
14778         * object.h, object.c: more portability stuff from Bernie Solomon.
14779         Unexport mono_object_allocate(). Added mono_object_unbox ().
14780         Set exitcode when an unhandled exception is thrown.
14781
14782 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
14783
14784         * marshal.c (mono_marshal_get_native_wrapper): use custom
14785         marshaler for return types.
14786
14787 2003-06-10  Dick Porter  <dick@ximian.com>
14788
14789         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
14790         ip_mreq is available
14791
14792 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
14793
14794         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
14795         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
14796         by Bernie Solomon <bernard@ugsolutions.com>.
14797
14798 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
14799
14800         * gc.c (mono_gc_init): Avoid error message on shutdown when
14801         GC_DONT_GC=1 is used.
14802
14803         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
14804         New icall to return the GUID of a module.
14805
14806 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14807
14808         * class.c: ensure instance size always includes the parent's size
14809         even whem class size is set explicitly (fixes bug#44294).
14810
14811 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14812
14813         * profiler.h, profiler.c: made the simple profiler thread-safe,
14814         get more accurate timing info. Allow the loading of an
14815         externally-developed profiler module.
14816
14817 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
14818
14819         * marshal.c (mono_marshal_get_native_wrapper): improved
14820         class/byref arguments.
14821         (mono_marshal_get_native_wrapper): better string marshaling support.
14822
14823 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
14824
14825         * class.c: ensure .pack and .size are handled correctly and
14826         simplified layout of static fields.
14827
14828 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
14829
14830         * appdomain.c
14831         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
14832
14833         * loader.c (mono_lookup_pinvoke_call): look for modules in the
14834         current directory (fix bug 44008)
14835
14836 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
14837
14838         * marshal.c (mono_marshal_get_native_wrapper): started support for
14839         custom marshalers.
14840         (mono_delegate_to_ftnptr): consider marshalling specifications
14841
14842 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
14843
14844         * reflection.c, reflection.h: emit custom marshal info.
14845
14846 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14847
14848         * object.c: free the GError.
14849         * icall.c: added CloseEvent_internal.
14850         * threads.[ch]:
14851         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
14852         call.
14853
14854 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
14855
14856         * loader.c (mono_method_get_signature): Add support for dynamic
14857         assemblies.
14858
14859 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
14860
14861         * reflection.c: fixed bug #43905.
14862
14863 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14864
14865         * class.c, domain.c, icall.c, metadata.h, object.h: support for
14866         handling TypedReference and ArgIterator.
14867         * loader.c, loader.h: added function to get signature at call site.
14868
14869 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14870
14871         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
14872         data readonly. Buglets and warning fixes. Some MethodSpec support.
14873
14874 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14875
14876         * class.h, class.c, object.c: remove relative numbering support.
14877
14878 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
14879
14880         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
14881         free the string, until we get a chance to fix Gtk#
14882
14883 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14884
14885         * marshal.c: revert last patch.
14886
14887 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
14888
14889         * icall.c: updates for new mono_class_vtable() not calling
14890         the type constructor anymore.
14891
14892 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14893
14894         * object.h, object.c: separate vtable creation from type
14895         initialization. Make running the .cctor thread safe.
14896
14897 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
14898
14899         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
14900
14901 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
14902
14903         * loader.c (mono_get_method): consider calling convention
14904
14905 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
14906
14907         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
14908         to return the invisible global type for a module.
14909
14910         * reflection.c (mono_image_build_metadata): Emit global fields too.
14911
14912 2003-05-20  Peter Williams  <peterw@ximian.com>
14913
14914         * loader.c (mono_lookup_internal_call): Add a few newlines.
14915
14916 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
14917
14918         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
14919         literal strings.
14920
14921         * appdomain.c (set_domain_search_path): Recalculate search path when
14922         AppDomainSetup.PrivateBinPath changes.
14923
14924         * object.c (mono_class_compute_gc_descriptor): It turns out some
14925         parts of the class libs (like System.Thread) holds pointers to
14926         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
14927         to treat native int a pointer type here.
14928         
14929 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
14930
14931         * appdomain.h, domain.c: add hashtable for jump target resolution.
14932
14933 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
14934
14935         * reflection.h reflection.c icall.c: Added new icalls 
14936         GetManifestResourceInfoInternal, GetModulesInternal and support
14937         infrastructure.
14938
14939 2003-05-16  Dick Porter  <dick@ximian.com>
14940
14941         * icall.c:
14942         * file-io.h:
14943         * file-io.c: Implement System.IO.MonoIO::GetTempPath
14944
14945 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
14946
14947         * object.c: mono_store_remote_field: little fix to previous patch.
14948
14949 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14950
14951         * class.c: add constructors to array classes.
14952         * icall.c: special case array construction for InternalInvoke (),
14953
14954 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
14955
14956         * class.h class.c reflection.c object.c: Added support for field
14957         defaults in dynamically generated classes.
14958
14959 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
14960
14961         * reflection.c: properly encode charset for ddlimport.
14962
14963 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
14964
14965         * threads.c: allow compiling without GC.
14966
14967 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14968
14969         * appdomain.h, object.c, object.h, threads.c, threads.h: added
14970         handling of thread static data.
14971
14972 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14973
14974         * reflection.h, reflection.c: added mono_custom_attrs_free ().
14975
14976 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
14977
14978         * class.c (mono_array_class_get): always set the serializable flags
14979         (mono_array_class_get): always set the SEALED attribute for array types
14980
14981 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
14982
14983         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
14984         attributes (fix for bug 42021).
14985
14986 2003-05-12  Dick Porter  <dick@ximian.com>
14987
14988         * gc.c: Don't run finalizers when the finalizer thread is
14989         finishing up, because the default domain has already been
14990         destroyed.
14991
14992 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
14993
14994         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
14995         value is null, we should throw an exception.   This is slightly
14996         different than the other conventions used for the constructor.
14997
14998 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14999
15000         * socket-io.c: fixed windows build.
15001
15002 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15003
15004         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15005
15006 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15007
15008         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15009         compilers.
15010
15011 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15012
15013         * class.c (mono_class_layout_fields): Add experimental GC aware
15014         auto layout facility. Requires class library changes to work correctly.
15015
15016         (mono_class_setup_vtable): Avoid overriding explicit interface
15017         method implementations. Fixes iface3.exe test.
15018
15019         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15020         object reference.
15021         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15022         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15023
15024         * metadata.h: Add new type classification macro which determines
15025         whenever the type holds an object reference.
15026
15027 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15028
15029         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15030
15031 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15032
15033         * gc.c (finalizer_thread): Work around a GC bug.
15034
15035 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15036
15037         * marshal.c (emit_struct_conv): allow unions
15038
15039         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15040
15041 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15042
15043         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15044
15045 2003-05-06  Martin Baulig  <martin@ximian.com>
15046
15047         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15048
15049 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15050
15051         * socket-io.c:
15052         (Select_internal): allow NULLs, don't create arrays if not needed.
15053         Coupled with Socket.cs changes.
15054
15055         * threadpool.c:
15056         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15057         register a finalizer for it that will close the semaphore handle. This
15058         fixes the leak and make Lupus' test run with > 4080 loops.
15059
15060 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15061
15062         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15063         Jerome Laban (bug #42287)
15064
15065 2003-05-02  Martin Baulig  <martin@ximian.com>
15066
15067         * debug-mono-symfile.h
15068         (MonoSymbolFile): Moved declaration into mono-debug.h.
15069         (MonoDebugMethodJitInfo): Likewise.
15070         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15071         argument.
15072         (_mono_debug_address_from_il_offset): Take a
15073         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15074
15075         * mono-debug.h
15076         (MonoDebugDomainData): New struct.
15077         (mono_debug_get_domain_data): New function.
15078         (mono_debug_add_method): Take an additional `MonoDomain *'
15079         argument.
15080         (mono_debug_source_location_from_address): Likewise.
15081         (mono_debug_il_offset_from_address): Likewise.
15082         (mono_debug_address_from_il_offset): Likewise.
15083
15084 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15085
15086         * reflection.c: one more check for null type in custom attrs.
15087
15088 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15089
15090         * reflection.c: avoid warning (comparison is always false due to limited
15091         range of data type).
15092
15093 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15094
15095         * icall.c: throw an exception in Type.GetField if the argument 'name'
15096         is NULL.
15097
15098 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15099
15100         * reflection.c: fixed handling of enums in named arguments to custom
15101         attributes (bug #42123).
15102
15103 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15104
15105         * reflection.c: use the right array element type and handle
15106         a null for a Type argument, too.
15107
15108 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15109
15110         * reflection.c: handle arrays as arguments to custom attributes.
15111
15112 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15113
15114         * reflection.c: handle a string value in a custom attr
15115         ctor that takes an object.
15116
15117 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15118
15119         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15120         (fix bug #42063)
15121
15122 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15123
15124         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15125
15126 2003-04-27  Martin Baulig  <martin@ximian.com>
15127
15128         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15129         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15130         MONO_DEBUGGER_EVENT_BREAKPOINT.
15131         (mono_breakpoint_trampoline_code): Removed.
15132         (mono_debugger_event_handler): The last argument is now a
15133         `guint32'.
15134         (mono_debugger_insert_breakpoint_full): Removed the
15135         `use_trampoline' argument.
15136         (mono_debugger_method_has_breakpoint): Likewise.
15137         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15138         mono_debugger_breakpoint_callback(); take the method and
15139         breakpoint number as arguments.
15140
15141 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15142
15143         * metadata.c: fix off by one when loading parameters attributes.
15144
15145 2003-04-24  Martin Baulig  <martin@ximian.com>
15146
15147         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15148
15149 2003-04-24  Martin Baulig  <martin@ximian.com>
15150
15151         * mono-debug-debugger.c: Moved all code which interacts with the
15152         Mono Debugger here.
15153
15154         * debug-mono-symfile.c: This code now just deals with the symbol
15155         file itself, the debugger code is now in mono-debug-debugger.c.
15156
15157 2003-04-23  Martin Baulig  <martin@ximian.com>
15158
15159         * mono-debug.c (mono_debug_source_location_from_il_offset):
15160         New method; like mono_debug_source_location_from_address(), but
15161         takes an IL offset instead of a machine address.
15162
15163 2003-04-23  Martin Baulig  <martin@ximian.com>
15164
15165         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15166         `line' field; this is now computed by the debugger.
15167
15168 2003-04-23  Martin Baulig  <martin@ximian.com>
15169
15170         * mono-debug.[ch]: New files.  This is the new debugging interface.
15171
15172         * mono-debug-debugger.[ch]: New files.  Moved all code which
15173         interacts with the Mono Debugger here.
15174
15175 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15176
15177         * domain.c (mono_init): initialize mono_defaults.monitor_class
15178
15179 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15180
15181         * reflection.c (method_encode_code): Add a spicy exception to help
15182         future compiler authors.
15183
15184 2003-04-21  Martin Baulig  <martin@ximian.com>
15185
15186         * icall.c
15187         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15188         Make this work with relative pathnames; g_filename_to_uri() needs
15189         an absolute filename.
15190
15191 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15192
15193         * icall.c: Track name changes in Object and ValueType.
15194
15195 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15196
15197         * metadata.c (mono_type_stack_size): size should be a multiple of
15198         sizeof (gpointer)
15199
15200 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15201
15202         * gc.c:
15203         (internal_domain_finalize): moved into mono_domain_finalize. No need
15204         to create another thread because the finalizers will be run in the
15205         finalizer thread.
15206         
15207         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15208         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15209         to be run (MS does this too).
15210
15211 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15212
15213         * object.c (mono_class_compute_gc_descriptor): Update comment.
15214
15215         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15216
15217         * image.h: Add synchronized wrapper cache.
15218
15219         * image.c (do_mono_image_open): Initialize cache.
15220
15221         * reflection.c (create_dynamic_mono_image): Initialize cache.
15222
15223 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15224
15225         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15226         ves_icall_System_Buffer_ByteLengthInternal.
15227
15228 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15229
15230         * reflection.c: setup klass->nested_in earlier. Allow
15231         a dash in the assembly name.
15232
15233 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15234
15235         * metadata.c (mono_type_to_unmanaged): dont access
15236         type->data.klass for MONO_TYPE_OBJECT
15237         (mono_type_to_unmanaged): consider System.Delegate class
15238
15239 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15240
15241         * class.c: just setup supertypes in the proper place instead of
15242         initializing the full element class for arrays.
15243
15244 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15245
15246         * class.c: ensure the element class of arrays is initialized.
15247         Setup the supertype info for array classes, too.
15248
15249 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15250
15251         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15252
15253 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15254
15255         * Makefile.am: re-added -m option when running cygpath. This way,
15256         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15257         separator.
15258         * mono-config.c: same codepath for locating mono config file for WIN32
15259         and the rest.
15260         * assembly.c: if mono_assembly_setrootdir is called, don't override
15261         the value set.
15262
15263 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15264
15265         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15266         MONO_ASSEMBLIES variable.
15267
15268 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15269
15270         * icall.c: added Assembly::GetNamespaces() icall.
15271
15272 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15273
15274         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15275
15276 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15277
15278         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15279         * object.c: fixed bug in the construction of vtable for proxies
15280
15281 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15282
15283         * object.c (mono_array_new): Mark mono_array_new as an icall.
15284
15285 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15286
15287         * class.c: fixed test for public method when overriding interfaces.
15288         Closes bug #40970.
15289
15290 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15291
15292         * appdomain.h, domain.c: added mono_domain_foreach() to
15293         be able to access the currently loaded appdomains.
15294         * object.c: make string interning work across sppdomains.
15295         Mark some functions for use as icalls.
15296
15297 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15298
15299         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15300
15301         * reflection.h reflection.c: Allocate long living data using 
15302         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15303
15304         * reflection.c: Double the allocation size in streams instead of
15305         increasing it, to prevent unneccesary copying on large assemblies.
15306         
15307         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15308         creation if the assembly does not have the Run flag set.
15309
15310 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15311
15312         * class.h: avoid the C++ keywords in header files (Jerome Laban
15313         spotted and fixed this).
15314
15315 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15316
15317         * object.c:
15318         (mono_unhandled_exception): fill in the arguments for the
15319         UnhandledException event. Only trigger that event for the default
15320         domain (as MS does).
15321
15322 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15323
15324         * object.c: Improve typed allocation stuff based on suggestions from
15325         Paolo. Also turn it on if the GC library supports it.
15326
15327 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15328
15329         * object.c object.h class.h: Added experimental typed allocation
15330         facility using the interfaces in gc_gcj.h.
15331
15332         * os/gc_wrapper.h: Added new include files.
15333         
15334 2003-04-03  Martin Baulig  <martin@ximian.com>
15335
15336         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15337         which is not yet enabled by default.
15338
15339         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15340         functions.
15341         (mono_gc_lock, mono_gc_unlock): New static functions.
15342
15343         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15344         functions; stop/start the world for the garbage collector.  This
15345         is using the windows API; we need to complete the SuspendThread()/
15346         ResumeThread() implementation in the io-layer to make this work on Unix.
15347         (mono_gc_push_all_stacks): New public function; tells the garbage
15348         collector about the stack pointers from all managed threads.
15349
15350 2003-04-03  Martin Baulig  <martin@ximian.com>
15351
15352         * object.h (MonoThread): Added `gpointer stack_ptr'.
15353
15354         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15355
15356 2003-04-03  Martin Baulig  <martin@ximian.com>
15357
15358         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15359
15360 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15361
15362         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15363         field.last.
15364
15365 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15366
15367         * loader.c (mono_lookup_internal_call): Report the corlib that is
15368         out of sync.
15369
15370 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15371
15372         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15373         System.DBNull (it's class not valuetype).
15374
15375 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15376
15377         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15378         if the array method was already assigned a token (fixes bug#40646).
15379
15380 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15381
15382         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15383         if no assembly is given.
15384
15385 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15386
15387         * metadata.h: Added the new tables.
15388
15389         * row-indexes.h: Added definitions for new tables.
15390
15391         * metadata.c: Add schemas for new tables, and add support for
15392         computing the sizes of them.
15393
15394         * class.c: Update for handling the new type cases.
15395
15396 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15397
15398         * metadata.h (MONO_TYPE_IS_VOID): new macro
15399
15400 2003-03-31  Martin Baulig  <martin@ximian.com>
15401
15402         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15403
15404         * threads.c (mono_thread_new_init): Call `thread_created' in the
15405         mono_thread_callbacks.
15406
15407 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15408
15409         * loader.h: added marshalbyrefobject_class to mono_defaults
15410         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15411         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15412           generation of output parameters.
15413           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15414         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15415           contextbound and the target object belongs to the context of the caller.
15416         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15417         * object.c: Implemented support for interfaces and abstract classes
15418           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15419           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15420
15421 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15422
15423         * class.h class.c (mono_class_is_subclass_of): New function.
15424         
15425         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15426         routines for most common case (calls from ArrayList::ToArray).
15427
15428         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15429         routine so programs which call Environment::Exit() can be profiled.
15430
15431         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15432         Added MONO_ARCH_SAVE_REGS.
15433
15434         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15435
15436 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15437
15438         * blob.h: Add a couple of new MonoType types definitions.
15439
15440         * tabledefs.h: Add a couple of new call convs.
15441
15442 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15443
15444         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15445         the layout of the class.
15446
15447         * reflection.c (alloc_table): double the size on overflow to avoid
15448         unnecessary copying.
15449
15450         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15451         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15452         null so it can be garbage collected.
15453         
15454 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15455
15456         * reflection.c (mono_reflection_get_type): Return the resolved type
15457         only if it is in the assembly we searched.
15458
15459         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15460
15461         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15462         method.
15463
15464 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15465
15466         * appdomain.c:
15467         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15468         the right one is 'file:///blah', but MS allows it.
15469         * assembly.c:
15470         (mono_assembly_open): allow 'file://blah'
15471
15472         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15473
15474 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15475
15476         * socket-io.c: fixes bug #40310.
15477
15478 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15479
15480         * reflection.c (mono_reflection_parse_type): handle deeply nested
15481         types correctly.
15482
15483         * reflection.c (mono_image_create_token): Use unique token values
15484         since they will be put into a hash table.
15485
15486         * class.c (mono_class_setup_vtable): If a method occurs in more than
15487         one place in the vtable, and it gets overriden, then change the
15488         other occurances too.
15489
15490         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15491         object as return type.
15492
15493 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15494
15495         * icall.c: Deleted "ToString" implementation for double and float
15496         because they are full implemented in managed code.
15497
15498 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15499
15500         * reflection.c, reflection.h: implemented and exported functions
15501         to retrieve info about custom attributes.
15502
15503 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15504
15505         * appdomain.c: moved Uri handling to assembly.c
15506         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15507         work when using a file Uri in *nix and windows.
15508
15509         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15510         GetReferencedAssemblies.
15511
15512 2003-03-18  Dick Porter  <dick@ximian.com>
15513
15514         * icall.c: Rename a couple of internal calls
15515
15516         * threads.c: Set the thread state to Stopped when a thread exits.
15517         Fixes bug 39377.
15518
15519 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15520
15521         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15522         New icall.
15523
15524         * object.c (mono_class_vtable): fix warning.
15525
15526 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15527
15528         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15529
15530         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15531         memory.
15532         (method_encode_clauses): Create exception info structures in the right
15533         order.
15534         (mono_reflection_setup_internal_class): Initialize supertypes field.
15535
15536         * class.c object.c: Handle interfaces which implement other interfaces 
15537         correctly.
15538
15539         * class.h class.c: Move the supertypes array initialization code into 
15540         a separate function so it can be used for dynamic types too. Also call
15541         it earlier, in mono_class_init(), since it can be used before the
15542         type is initialized.
15543
15544 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15545
15546         * Makefile.am:
15547         * assembly.c:
15548         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15549
15550         * appdomain.c:
15551         * appdomain.h:
15552         * marshal.c:
15553         * object.c: remove warnings.
15554
15555 2003-03-13  Martin Baulig  <martin@ximian.com>
15556
15557         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15558         (MonoDebugLexicalBlockEntry): New types.
15559
15560         * debug-mono-symfile.c
15561         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15562
15563 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15564
15565         * process.c: ret can be any non-zero value accroding to MS doc.
15566
15567 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15568
15569         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15570         fixing a warning for a miss-used prototype, would have cause
15571         random memory corruption.
15572
15573 2003-03-07  Martin Baulig  <martin@ximian.com>
15574
15575         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15576         getting really annoying ....
15577
15578 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15579
15580         * reflection.c (fixup_method): added support for array methods.
15581
15582 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15583
15584         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15585         (pointed out by Michael Adams).
15586
15587 2003-03-04  Dick Porter  <dick@ximian.com>
15588
15589         * icall.c: Temporarily reverted the Double and Single ToString()
15590         change, because it broke nunit.
15591
15592 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15593
15594         * object.h, threads.h: make include files compatible with C++
15595         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15596
15597 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15598
15599         * icall.c: Erased ToString helper functions for Double and Single.
15600         Now, that implementations ar all in managed code (Double and Single
15601         Formatters).
15602
15603 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15604
15605         * appdomain.c: Added method for initializing the default context of
15606         a domain. Added internal call for getting the default context.
15607         * appdomain.h: Added context variable in MonoDomain struct.
15608         * domain.c: mono_domain_set also sets the default context of the domain
15609         * icall.c: Mapped internal method InternalGetDefaultContext.
15610         * object.c: mono_object_get_virtual_method returns always a remoting
15611         wrapper if the object is a transparent proxy.
15612         mono_runtime_invoke_array: when creating an object by calling the
15613         constructor, if the created object is a proxy, then the constructor should
15614         be called using the a remoting wrapper.
15615
15616 2003-03-03  Dick Porter  <dick@ximian.com>
15617
15618         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15619         variable so it compiles on solaris.  Problem spotted by
15620         Christopher Taylor <ct@cs.clemson.edu>
15621
15622 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15623
15624         * appdomain.c:
15625         (get_info_from_assembly_name): don't leak value.
15626
15627         * icall.c:
15628         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15629         result.
15630
15631 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15632
15633         * assembly.c: export mono_image_load_references ().
15634         * class.c: handle function pointers. mono_class_from_name() now
15635         supports nested type names directly.
15636
15637 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15638
15639         * reflection.h reflection.c: Encode already created dynamic methods 
15640         and fields correctly as a DEF instead of a REF.
15641
15642         * reflection.c: Get rid of the force_ref argument to 
15643         mono_image_typedef_or_ref since it was wrong in the first place.
15644
15645         * string-icalls.c: add error checking to string constructors according
15646         to the MSDN docs.
15647
15648         * reflection.c: Emit types in the order their TypeBuilders were 
15649         created. Previously, a new table index was assigned to each type before
15650         the tables were emitted. This was wrong because the signature blob
15651         might already refer to a type by its original table index.
15652
15653 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15654
15655         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15656         change.
15657         
15658 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15659
15660         * Makefile.am: make assemblies dir have \ instead of / on windows.
15661
15662 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15663
15664         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15665         iterate over the NESTEDCLASS table using a linear search since the
15666         table is not guaranteed to be sorted by the secondary key.
15667
15668         * class.c (mono_class_create_from_typedef): fixed up call to
15669         mono_metadata_nesting_typedef.
15670         
15671 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15672
15673         * marshal.c (mono_string_to_byvalstr): clear the memory as
15674         suggested by Jerome Laban <jlaban@wanadoo.fr>
15675
15676 2003-02-26  Dick Porter  <dick@ximian.com>
15677
15678         * process.c: Cope with padding in .rsrc blocks
15679
15680 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15681
15682         * metadata.h: reverted the filter_len change, it breaks reflection
15683         
15684 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15685
15686         * metadata.h: added a new field to store the filter_len
15687         
15688
15689 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15690
15691         * reflection.c: handle custom attributes for types and members
15692         created with Reflection.Emit (bug#38422).
15693
15694 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15695
15696         * reflection.c: define RTSpecialName automatically for constructors for
15697         compatibility with MS.NET.
15698
15699         * reflection.c (mono_reflection_create_runtime_class): initialize
15700         nested_in field of dynamically created classes.
15701
15702 2003-02-22  Martin Baulig  <martin@ximian.com>
15703
15704         * debug-mono-symfile.h: Incremented version number.
15705
15706 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15707
15708         * object.h icall.c process.c: fix warnings.
15709
15710 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15711
15712         * appdomain.h appdomain.c:
15713         (mono_domain_try_type_resolve): split the 
15714         name_or_tb argument into a name and a tb argument.
15715         (mono_domain_has_type_resolve): new function to check whenever the
15716         application has registered a TypeResolve event handler.
15717         
15718         * icall.c reflection.h reflection.c: move the type resolve logic into
15719         mono_reflection_get_type () so it will be invoked when 
15720         Assembly::GetType () is called.
15721
15722         * reflection.c:
15723         (mono_reflection_get_type): renamed to get_type_internal.
15724         (mono_reflection_get_type): fixed type name generation so it works 
15725         for nested types too.
15726         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15727         costly type name generation if there is no resolve event handler.
15728
15729 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15730
15731         * class.c, image.c: load exported types from file references.
15732
15733 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15734
15735         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15736           used to cache the managed methods used to create proxies and make 
15737           remote invocation of methods.
15738         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15739           to be remotely created.
15740         * object.c: Modified the method mono_class_vtable(). It now initializes 
15741           the remote flag of the vtable. Modified mono_object_new_specific(), 
15742           so now it checks the remote flag.
15743         * icall.c: Added a couple of internal methods, one for enabling instance 
15744           creation interception for a type, and one for creating objects bypassing
15745           the remote check.
15746
15747 2003-02-18  Martin Baulig  <martin@ximian.com>
15748
15749         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15750         New interncall to get a method's metadata token.
15751
15752         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
15753         New interncall for the debugger.
15754
15755 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
15756
15757         * class.c (mono_class_setup_vtable): allocate supertype array
15758
15759 2003-02-18  Martin Baulig  <martin@ximian.com>
15760
15761         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
15762
15763 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15764
15765         * reflection.c:
15766         (assembly_name_to_aname): jump over unknown properties (i've found
15767         something like: 'type, assembly, version=xxx, custom=null, public...',
15768         so now will ignore custom=null and still get the rest of the values).
15769
15770 2003-02-17  Dick Porter  <dick@ximian.com>
15771
15772         * threads.c: Have Thread.Start() wait for a semaphore to signal
15773         that the thread has set up all its local data.  This fixes bug
15774         34323, where Abort() raced the new thread's TLS data.
15775
15776         Also removes the handle_store() call from start_wrapper, because
15777         threads are now always created suspended and there is no longer a
15778         race between the parent and child threads to store the info.
15779
15780 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
15781
15782         * image.c: explain the #- heap issue in a message, hopefully
15783         avoiding FAQs on mono-list.
15784
15785 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15786
15787         * icall.c:
15788         (GetEntryAssembly): if the domain has not invoked
15789         AppDomain.ExecuteAssembly yet, return the assembly of the default
15790         AppDomain.
15791
15792 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
15793
15794         * class.c (mono_ldtoken): make it work in dynamic assemblies.
15795
15796 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
15797
15798         * metadata.c, reflection.c: simple speedup to type hash
15799         and equals code.
15800
15801 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
15802
15803         * image.c, image.h, class.c, assembly.c: move module loading
15804         to MonoImage. When loading metadata, consider alignemnet from
15805         the start of metadata, not from the metadata address in memory.
15806
15807 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
15808
15809         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
15810         AssemblyBuilder objects. Factored out custom attribute creation into
15811         a separate function.
15812         (create_custom_attr): new function to create custom attributes.
15813
15814 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
15815
15816         * Makefile.am: Got tired of typing the full pathname to pedump.
15817         Until there is another option, am installing this.
15818
15819 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
15820
15821         * class.c (class_compute_field_layout): always set field->parent 
15822         (mono_ldtoken): use mono_defaults.fieldhandle_class;
15823
15824 2003-02-11  Dick Porter  <dick@ximian.com>
15825
15826         * threads-types.h:
15827         * monitor.c: Rewrote Monitor, making lock much faster and
15828         Pulse/Wait work as specified.  Also uses much fewer handles, and only
15829         creates them as needed.
15830
15831         * exception.c: Added SynchronizationLockException
15832
15833         * threads.c: Deleted old Monitor implementation.  The new one is
15834         in a new file.
15835
15836 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
15837
15838         * class.c: handled TypedReference type code. Set the correct size for
15839         class data. Setup interface_offsets for interface classes, too.
15840
15841 2003-02-09  Martin Baulig  <martin@ximian.com>
15842
15843         * debug-mono-symfile.h: Reflect latest symbol writer changes.
15844
15845 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
15846
15847         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
15848         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
15849         * object.c: fixed mono_object_get_virtual_method () for interfaces.
15850         * verify.c: check for code that runs after the end of the method.
15851
15852 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15853
15854         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
15855         "System.Math::Round2".
15856         * sysmath.h: Added Floor, Round and Round2 definitions.
15857         * sysmath.c: Modified certain functions that were not 100% compliant
15858         with MS.NET (math precision) and added the implementation of Floor,
15859         Round and Round2.
15860
15861 2003-02-07  Martin Baulig  <martin@ximian.com>
15862
15863         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
15864
15865 2003-02-07  Martin Baulig  <martin@ximian.com>
15866
15867         * debug-mono-symfile.c: Reflected latest symwriter changes.
15868         (mono_debug_create_mono_symbol_file): Removed.
15869         (mono_debug_open_mono_symbol_file): Take an argument which
15870         specifies whether to create a dynamic symbol file.
15871
15872 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
15873
15874         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
15875
15876 2003-02-05  Martin Baulig  <martin@ximian.com>
15877
15878         * reflection.c (mono_image_build_metadata): Make this public,
15879         protect it against being called multiple times, don't create
15880         resources and don't build the compressed metadata here.
15881         (mono_image_create_pefile): Do this here.
15882
15883         * icall.c
15884         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
15885
15886 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15887
15888         * socket-io.c: fixed bug #36322.
15889
15890 2003-02-06  Piers Haken <piersh@friskit.com>
15891
15892         * appdomain.[ch]:
15893         * class.h:
15894         * debug-mono-symfile.c:
15895         * icall.c:
15896         * loader.c:
15897         * mono-config.c:
15898         * monosn.c:
15899         * reflection.c:
15900         * socket-io.c: warning cleanups
15901
15902 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
15903
15904         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
15905         function. works like remoting invoke, but does a check for the Proxy first.
15906
15907 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
15908
15909         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
15910
15911 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
15912
15913         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
15914         array of pointers.
15915         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
15916         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
15917
15918         * object.c (mono_store_remote_field_new): used by the new jit
15919         instead of mono_store_remote_field
15920         (mono_load_remote_field_new): used by the new jit
15921         instead of mono_load_remote_field
15922
15923 2003-02-05  Patrik Torstensson
15924
15925         * appdomain.c: changed unload to take the domain id instead
15926         of domain
15927         
15928         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
15929
15930
15931 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15932
15933         * appdomain.c: don't look for assemblies in ApplicationBase if
15934         PrivateBinPathProbe is set.
15935
15936 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15937
15938         * object.c: make the first argument in main_args contain the absolute
15939         path to the assembly. Fixes bug #37511.
15940
15941 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15942
15943         * icall.c: get correct UTC offset for countries not using daylight
15944         time saving. Fixes bug #30030.
15945
15946 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15947
15948         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
15949         and 1 are the family).
15950
15951 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
15952
15953         * icall.c (ves_icall_InternalExecute): removed wrong assertion
15954
15955         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
15956
15957 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
15958
15959         * reflection.c: added support for SignatureHelper tokens, which is
15960         needed by the Calli opcode.
15961
15962         * reflection.h: track changes to SignatureHelper class.
15963
15964         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
15965
15966 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15967
15968         * appdomain.c: fixed loading assemblies from PrivateBinPath.
15969
15970 2003-02-03  Patrik Torstensson
15971         * appdomain.[c|h], domain.c : 
15972          - Added support for getting a domain via domain id
15973          - Support for setting and getting domain from System.AppDomain 
15974            (used in cross appdomain channel)
15975          - Added support for get/set for a MonoAppContext on a thread 
15976            (Context class in System.Runtime.Remoting.Contexts),
15977          - Removed hack in Get/SetData and ExecuteAssembly.
15978         
15979         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
15980         the managed world to get control when a proxy is created.
15981
15982         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
15983         
15984 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
15985
15986         * icall.c
15987         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15988         Populate the codebase field as well.
15989
15990 2003-02-02  Martin Baulig  <martin@ximian.com>
15991
15992         * debug-mono-symfile.c
15993         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
15994         (mono_debug_symfile_add_method): Allow interncalls.
15995
15996 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15997
15998         * icall.c: throw parse exception if strtod fails or the string is empty.
15999
16000 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16001
16002         * marshal.c: handle object type separately from defined
16003         class types.
16004
16005 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16006
16007         * marshal.c: handle NATIVE_LPSTR for strings when it's
16008         explicitly specified.
16009
16010 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16011
16012         * reflection.c, reflection.h, icall.c: setup the reflection
16013         handle cache for ModuleBuilders and AssemblyBuilders.
16014
16015 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16016
16017         * reflection.c (reflection_methodbuilder_to_mono_method): set
16018         pinvoke flag
16019
16020 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16021
16022         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16023
16024 2003-01-29  Dick Porter  <dick@ximian.com>
16025
16026         * threads.c: No need for the fake_thread kludge now that Thread
16027         doesn't run a class constructor
16028         
16029 2003-01-29  Dick Porter  <dick@ximian.com>
16030
16031         * threads.c: Use g_direct_hash instead of the rather bogus
16032         g_int_hash
16033
16034 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16035
16036         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16037         (fix pinvoke12.exe)
16038         (mono_marshal_get_struct_to_ptr): generate valid IL code
16039         (mono_marshal_get_ptr_to_struct): generate valid IL code
16040         (*): correctly set sig->pinvoke, we need to memdup the signature
16041         to do that
16042
16043 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16044
16045         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16046         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16047
16048 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16049
16050         * profiler.c: provide more callers information.
16051
16052 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16053
16054         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16055
16056         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16057
16058         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16059
16060 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16061
16062         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16063         exception instead of going into an infinite loop on dates which it 
16064         can't yet handle.
16065
16066         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16067         out-of-range exception if needed.
16068
16069         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16070         an implementation for an interface method and to override an inherited
16071         method at the same time. 
16072         Imagine a scenario when a virtual method is used to override a
16073         virtual abstract method in a parent class, and this same method 
16074         provides an implementation for an method inherited from an interface. 
16075         In this case, the interface resolution code will set im->slot, which 
16076         means that the virtual method override pass will skip this method 
16077         which means a pointer to the abstract method inherited from the parent
16078         will remain in the vtable of this non-abstract class.
16079
16080         * class.c: (mono_class_setup_vtable): continue search for a real 
16081         method if only an abstract method is found.     
16082
16083 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16084
16085         * reflection.c: add size to encoding for ByValStr and ByValArray
16086         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16087
16088 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16089
16090         * class.c (mono_class_setup_vtable): pass the override info as an
16091         argument.
16092
16093         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16094         correctly.
16095         
16096         * reflection.c (ensure_runtime_vtable); add support for method 
16097         overrides.
16098         
16099 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16100
16101         * reflection.c (resolution_scope_from_image): Hack to work to work with
16102         dynamic assemblies.
16103
16104         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16105         added a 'force_ref' argument to force this function to allways return 
16106         a TypeRef. This is needed by mono_image_get_memberref_token ().
16107         
16108 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16109
16110         * reflection.c (mono_image_get_type_info): interfaces really don't have
16111         a parent.
16112
16113         * reflection.c (mono_image_basic_init): fill out missing fields of
16114         image structure.
16115
16116         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16117         dynamic assemblies. This is required so dynamic assemblies show up in
16118         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16119         Type::GetType() etc. This is consistent with MS behaviour.
16120
16121         * image.c image.h reflection.c: add newly created classes to the name 
16122         cache so mono_class_get () will find them.      
16123
16124 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16125
16126         First part of changes to get IKVM.NET running under mono.
16127         
16128         * appdomain.h, appdomain.c: added new function 
16129         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16130         This function will call AppDomain::DoTypeResolve to do the actual work.
16131
16132         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16133         moved existing code dealing with dynamic tokens to a new function 
16134         called mono_reflection_lookup_dynamic_token (). This function will 
16135         raise TypeResolve events when appropriate. Since reflection.c is not 
16136         part of libmetadata, a new hook function called 
16137         mono_lookup_dynamic_token() is added to class.c which will call this.
16138
16139         * assembly.h assembly.c: make the invoke_load_hook function public,
16140         so it can be called for dynamic assemblies.
16141
16142         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16143
16144         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16145         type isn't found.
16146
16147         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16148         MonoGHashTable, since it contains pointers to objects which the GC 
16149         needs to track.
16150
16151         * assembly.c (search_loaded): remove unused variable.
16152         
16153 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16154
16155         * object.c: fixed issue exposed by gcc-generated IL programs
16156         that use RVA data for pointers.
16157
16158 2003-01-25  Martin Baulig  <martin@ximian.com>
16159
16160         * threads.c (start_wrapper): Moved the initialization of
16161         `start_func' above the mono_new_thread_init() call to which we
16162         pass it as argument.
16163
16164 2003-01-24  Martin Baulig  <martin@ximian.com>
16165
16166         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16167         the MonoThread pointer.
16168
16169 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16170
16171         * icall.c: Rename `PowImpl' to Pow.
16172
16173 2003-01-23  Dick Porter  <dick@ximian.com>
16174
16175         * threads.c (start_wrapper): Create a Thread object if needed, so
16176         the Main() thread can do the class initialisation in a subthread
16177         that has been set up to allow managed code execution.
16178
16179         Pass the thread ID instead of the MonoThread pointer to the thread
16180         start and attach callbacks.  This change is required, because the
16181         jit thread start callback must be called _before_ the Thread
16182         object can be created.
16183         
16184         (mono_thread_init): Removed much object creation code that is no
16185         longer needed.  No managed code is called from here now.
16186
16187         * object.c (mono_runtime_exec_managed_code): Create a subthread
16188         for Main, and call back to the runtime to use it.
16189         Set the exit code when Main exits.
16190
16191         * gc.c: Make sure domain finalisation happens in a subthread.
16192         Re-enable threaded GC, fixing bug 31333 (again).
16193
16194         * environment.c: System.Environment internall calls (so far just
16195         ExitCode is here, the others are still in icall.c)
16196
16197         * appdomain.c (mono_runtime_cleanup): All threads running managed
16198         code should have finished before mono_runtime_cleanup() is
16199         reached, so no need to clean up threads.
16200
16201 2003-01-22  Martin Baulig  <martin@ximian.com>
16202
16203         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16204         `gpointer func' arguments.      
16205         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16206         but added `MonoThread *thread' argument.
16207         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16208
16209         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16210         and pass it to the mono_thread_start_cb callback.
16211         (mono_install_thread_callbacks): New public function to install a
16212         set of callbacks which are set by the debugger.
16213         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16214
16215 2003-01-22  Martin Baulig  <martin@ximian.com>
16216
16217         * Makefile.am: Install debug-mono-symfile.h.
16218
16219 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16220
16221         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16222
16223 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16224
16225         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16226         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16227         (mono_array_class_get): correctly set access levels of arrays
16228
16229 2003-01-20      Patrik Torstensson
16230         * image.h (MonoAssemblyName): changed major, minor, build, revision
16231         from signed to unsigned.
16232
16233 2003-01-20  sean kasun <skasun@azstarnet.com>
16234
16235         * reflection.c (load_cattr_value): Now this handles
16236         MONO_TYPE_SZARRAY.  Fixes bug #35629
16237
16238 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16239
16240         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16241         integer value
16242
16243 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16244
16245         * decimal.c: fixed bug #26056.
16246
16247 2003-01-17  Martin Baulig  <martin@ximian.com>
16248
16249         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16250
16251 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16252
16253         * exception.[ch]:
16254         (mono_get_exception_type_initialization): new function.
16255
16256         * object.c: throw a TypeInitializationException when an exception is
16257         thrown invoking the class constructor.
16258
16259 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16260
16261         * reflection.c: fixed attribute reading.
16262
16263 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16264
16265         * icall.c:
16266         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16267         provided, look for the type in the calling assembly and then in
16268         mscorlib; if the assembly name is provided, only try that one.
16269
16270 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16271
16272         * object.c: register the vtable before there is a chance it's
16273         queried again recursively.
16274
16275 2003-01-13  Duncan Mak  <duncan@ximian.com>
16276
16277         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16278         gc-internal.h. 
16279         
16280 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16281
16282         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16283
16284 2003-01-11  Martin Baulig  <martin@ximian.com>
16285
16286         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16287         this to 20 for the release.
16288
16289 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16290
16291         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16292
16293         * loader.c (mono_method_get_marshal_info): bug fix
16294
16295         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16296         structures with explicit layout
16297
16298 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16299
16300         * profiler.c: made the output more readable (and sorted). 
16301         Added caller information for the allocation profiler.
16302
16303 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16304
16305         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16306
16307 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16308
16309         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16310         to get value types.
16311         
16312 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16313
16314         * object.c, profiler.h, profiler.c, profiler-private.h:
16315         Added object allocation profiler.
16316
16317 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16318
16319         * reflection.h, reflection.c: handle global methods.
16320         Compress blob entries.
16321
16322 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16323
16324         * marshal.c: fix compilation.
16325
16326 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16327
16328         * loader.c (mono_method_get_marshal_info): impl.
16329
16330         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16331
16332 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16333
16334         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16335         for reference types.
16336
16337 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16338
16339         * loader.c: fixed off by one error in loaded parameter names.
16340
16341 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16342
16343         * marshal.c (mono_marshal_get_icall_wrapper): like
16344         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16345         instead of a MonoMethod.
16346
16347 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16348
16349         * decimal.c: fixed bug #36537.
16350
16351 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16352
16353         * marshal.c: throw a missing method exception if a
16354         P/Invoke method is not found.
16355
16356 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16357
16358         * icall.c: allow a null this for constructors.
16359
16360 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16361
16362         * icall.c: raise the proper exceptions if the arguments to the
16363         internal Invoke are incorrect.
16364
16365 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16366
16367         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16368
16369 2003-01-03  Martin Baulig  <martin@ximian.com>
16370
16371         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16372
16373 2002-12-31  Martin Baulig  <martin@ximian.com>
16374
16375         * debug-mono-symfile.c: Completely rewrote the type section.
16376         Instead of using individual malloc()ed fields, we use one big
16377         continuous memory area and offsets into this area.
16378         See the comments in the source code for details.
16379
16380 2002-12-30  Martin Baulig  <martin@ximian.com>
16381
16382         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16383
16384 2002-12-30  Martin Baulig  <martin@ximian.com>
16385
16386         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16387         line number table in this data blob instead of using an external
16388         pointer.
16389
16390 2002-12-28  Martin Baulig  <martin@ximian.com>
16391
16392         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16393
16394 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16395
16396         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16397         as a boxed return type.
16398
16399 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16400
16401         * appdomain.c
16402         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16403         g_build_filename to properly get separators on the filename created.
16404
16405         * object.h: Small change, introduce MonoMarshalByRefObject to
16406         track the layout of that structure in the C# universe as we make
16407         changes there.
16408
16409 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16410
16411         * object.c: removed assert to allow static fields on interfaces.
16412         * loader.c: a TypeSpec may be used for any type, not just arrays.
16413
16414 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16415
16416         * class.c, class.h: added mono_class_array_element_size ().
16417         Ignore static methods in interfaces.
16418
16419 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16420
16421         * threads.c: fixed the build under cygwin.
16422
16423 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16424
16425         * reflection.c: handle nullref constants. Allocate keys for
16426         reflection handles with the GC.
16427
16428 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16429
16430         * threads.c, threads.h: added mono_thread_get_abort_signal()
16431         to get a suitable signal for thread abort.
16432
16433 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16434
16435         * metadata.c: fix handling of ExportedType table.
16436
16437 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16438
16439         * icall.c: added WriteWindowsDebugString internal call.
16440
16441 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16442
16443         * reflection.h: added fields to match C# implementation.
16444
16445 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16446
16447         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16448
16449 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16450
16451         * gc.h, gc-internal.h: Rename header for GC internal calls to
16452         gc-internal.h from gc.h as to not clash with Boehm GC having its
16453         header installed as <gc.h> in outside include paths.
16454         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16455         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16456
16457 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16458
16459         * icall.c: assign minor, build and revision in FillName.
16460
16461 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16462
16463         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16464         Added support for running code generated by Reflection.Emit.
16465
16466 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16467
16468         * appdomain.c: check for NULL argument in LoadFrom.
16469
16470 2002-12-10  Dick Porter  <dick@ximian.com>
16471
16472         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16473
16474 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16475
16476         * appdomain.c: fix buglet when building exe file name.  Handle full
16477         assembly name (needed after latest changes to AssemblyName).
16478         * image.c:
16479         (mono_image_close): free some hashtables.
16480
16481 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16482
16483         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16484         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16485         on some systems (redhat 7.3) 
16486
16487 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16488
16489         * threads.c: delete the critical section of a sync block,
16490         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16491
16492 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16493
16494         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16495
16496 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16497
16498         * appdomain.[ch]: handle the assembly preload event to try loading the
16499         assemblies using the paths we have in the current domain.
16500
16501         * assembly.[ch]: created an assembly preload hook that is called to try
16502         loading the assembly by other means that the ones provided here.
16503
16504         * domain.c: initialize the domain search path.
16505
16506         From now on, assemblies (TODO: except corlib and System) are loaded
16507         according to these rules when using mono_assembly_load ():
16508
16509                 1. It tries to load the assembly from the ApplicationBase
16510                 of the current domain appending .dll and .exe (TODO: have to
16511                 try loading from name/name.dll and name/name.exe).
16512
16513                 2. It tries the search path specified in PrivateBinPath for the
16514                 current domain (if any).
16515
16516                 3. Previous behavior.
16517
16518 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16519
16520         * icall.c: implemented GetInterfaceMap() related icall.
16521         * domain.c, loader.h: load MethodInfo in mono_defaults.
16522
16523 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16524
16525         * gc.c: disable the finalizer thread for now, untill all the issues
16526         with it are resolved.
16527
16528 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16529
16530         * string-icalls.c: handle embedded nulls in string ctor when the
16531         length is specified.
16532
16533 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16534
16535         * class.c: look for explicit interface implementation in parent
16536         classes, too.
16537
16538 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16539
16540         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16541
16542 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16543
16544         * gc.c: protect handles with a critical section.
16545
16546 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16547
16548         * icall.c:
16549         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16550         parameters. If no assembly specified, try getting the type from all
16551         the assemblies in the current domain, else, load the assembly and get
16552         the type from it.
16553
16554 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16555
16556         * marshal.c: applied patch from Aleksey Demakov that fixes
16557         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16558
16559 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16560
16561         * icall.c: fixed get_location.
16562
16563 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16564
16565         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16566         declarations to make it work with older gcc. 
16567
16568         * loader.c (mono_get_method): set signature->pinvoke for native calls
16569
16570 2002-11-20  Dick Porter  <dick@ximian.com>
16571
16572         * threads.c (mono_thread_init): Set the main thread's handle
16573
16574 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16575
16576         * gc.c: allow compilation without GC support. Changed to match the
16577         mono coding style.
16578
16579 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16580
16581         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16582
16583 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16584
16585         * reflection.c: set a public key token on the core assemblies.
16586
16587 2002-11-18  Dick Porter  <dick@ximian.com>
16588
16589         * threads.c: Split out some thread initialisation so that other
16590         files can set the start callback function.
16591
16592         * gc.c: Run finalisers in a separate thread, to avoid stack
16593         overflow.  Fixes bug 31333.
16594
16595         * appdomain.c: Set up GC finalisation thread.
16596
16597         * reflection.c: 
16598         * object.c: 
16599         * domain.c: Use gc.h macros for GC_malloc
16600         
16601 2002-11-15  Dick Porter  <dick@ximian.com>
16602
16603         * threadpool.c: 
16604         * threads.c:
16605         * appdomain.c: Removed mono_runtime_init_with_attach(),
16606         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16607         merging the extra parameter with the existing function.  Removed
16608         unneeded code in mono_thread_attach().
16609
16610 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16611
16612         * image.c (mono_image_loaded_by_guid): a method to get loaded
16613         images by guid. 
16614         (load_metadata_ptrs): we store the guid as string.
16615
16616 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16617
16618         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16619
16620         * metadata.c (mono_guid_to_string): imported method form Zoltan
16621         Varga (slightly modified)
16622
16623         * assembly.c (mono_assembly_open): load precompiled code
16624
16625         * loader.h (MonoMethod): we store the method token for use in the
16626         aot compiler. 
16627
16628 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16629
16630         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16631         the hook function called when an assembly is loaded.
16632         
16633         * domain.c: Modified file.
16634         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16635
16636         Fixes bug #33196.
16637
16638 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16639
16640         * reflection.c: Map PEFileKind to the value expected by the WinNT
16641         image loader. 
16642
16643 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16644
16645         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16646         Read until the buffer is filled completely.
16647
16648 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16649
16650         * icall.c: implemented MonoType.InternalGetEvent ().
16651
16652 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16653
16654         * appdomain.c: implemented InitAppDomainSetup. Delayed
16655         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16656         the entry_assembly.
16657
16658         * assembly.c: base_dir is now an absolute path ending with
16659         G_DIR_SEPARATOR.
16660
16661         * icall.c: modified get_location according to the above changes.
16662
16663         * object.c: init AppDomain.SetupInformation for the default domain after
16664         we have the entry assembly.
16665
16666         * domain.c: when unloading a domain, setup = NULL.
16667
16668 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16669
16670         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16671
16672 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16673
16674         * object.h, object.c: introduced mono_object_get_virtual_method ()
16675         to lookup the method invoked on an object when a callvirt is done on
16676         a method.
16677         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16678
16679 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16680
16681         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16682         current domain when loaded an assembly and failed to load it.
16683
16684         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16685
16686 2002-10-31  Dick Porter  <dick@ximian.com>
16687
16688         * icall.c: 
16689         * file-io.h: 
16690         * file-io.c: Return the error status in a parameter, as the
16691         GetLastError() value has long since been blown away if we try and
16692         look it up in a subsequent internal call invocation.  Delete the
16693         GetLastError() internal call, because it's useless.
16694
16695 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16696
16697         * class.[ch]: added cast_class to fix bug 29517
16698
16699 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16700
16701         * marshal.c: create valid IL code in the filter clause:
16702         the new JIT is less forgiving:-)
16703
16704 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16705
16706         * icall.c: removed get_property internal call.
16707
16708 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16709
16710         * appdomain.h domain.c: Added an ID to appdomains.
16711         
16712         * threads.c threads.h icall.c: Implement icall
16713         Thread:GetDomainID(), and remove unused icall 
16714         CurrentThreadDomain_internal.
16715
16716 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16717
16718         * icall.c: Don't recurse through the base types in GetConstructor.
16719         Fixes bug #32063. 
16720
16721 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16722
16723         * mempool.h, mempool.c: added mono_mempool_empty() and
16724         mono_mempool_stats().
16725
16726 2002-10-23  Dick Porter  <dick@ximian.com>
16727
16728         * file-io.c: 
16729         * file-io.h: 
16730         * icall.c: Added MonoIO.GetFileType internal call
16731
16732 2002-10-17  Dick Porter  <dick@ximian.com>
16733
16734         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16735         delegate semaphore before waiting for all threads to finish,
16736         because new threads can also call async delegates.  Fixes bug
16737         32004.
16738
16739         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16740         of 3 seconds, in case another async job is queued.  (This part is
16741         needed because the bug fix reintroduced the 3s exit lag.)  This
16742         makes the mono_runtime_shutdown flag superfluous.
16743
16744 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16745
16746         * reflection.c: include ehader size in method section headers.
16747         Really check for suplicated modules entries.
16748
16749 2002-10-17  Martin Baulig  <martin@gnome.org>
16750
16751         * debug-mono-symfile.c: Added back support for locals.
16752
16753 2002-10-14  Martin Baulig  <martin@gnome.org>
16754
16755         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
16756         MONO_TYPE_VOID.
16757
16758 2002-10-14  Martin Baulig  <martin@gnome.org>
16759
16760         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
16761         mono_class_get() instead of looking in the class cache. 
16762
16763 2002-10-13  Martin Baulig  <martin@gnome.org>
16764
16765         * debug-mono-symfile.c: Set version number to 28, include the
16766         signature in method names.
16767
16768 2002-10-13  Martin Baulig  <martin@gnome.org>
16769
16770         * debug-mono-symfile.h: Set version number to 27.
16771
16772 2002-10-11  Martin Baulig  <martin@gnome.org>
16773
16774         * gc.c: Don't register/unregister NULL pointers as disappearing links.
16775
16776 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16777
16778         * metadata.c, metadata.h: added helper function to allocate signatures.
16779
16780 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16781
16782         * icall.c: added internal call to get the location of machine.config.
16783
16784 2002-10-08  Martin Baulig  <martin@gnome.org>
16785
16786         * debug-mono-symfile.c: Ignore classes with a pending init for the
16787         moment.
16788
16789 2002-10-03  Dick Porter  <dick@ximian.com>
16790
16791         * threads.c: Freebsd pthread_t is a pointer
16792
16793 2002-10-03  Dick Porter  <dick@ximian.com>
16794
16795         * socket-io.c: Implemented GetHostName_internal
16796
16797 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16798
16799         * mono-config.c:
16800         (mono_config_parse_file): don't leak the text.
16801
16802 2002-10-02  Martin Baulig  <martin@gnome.org>
16803
16804         * debug-mono-symfile.c: Added support for methods.
16805
16806 2002-10-01  Martin Baulig  <martin@gnome.org>
16807
16808         * debug-mono-symfile.c: Don't emit methods and line numbers for
16809         the dynamic symbol file, just write the type table.  We can easily
16810         have an external helper program which creates a symbol file for an
16811         IL file.        
16812
16813 2002-10-01  Dick Porter  <dick@ximian.com>
16814
16815         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
16816         Only add the handle to the cleanup array when we're about to
16817         launch the thread.  Bug 31425 deadlocked when the test was run on
16818         mono under w32.
16819
16820 2002-10-01  Martin Baulig  <martin@gnome.org>
16821
16822         * debug-mono-symfile.c: Added support for properties.
16823
16824 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16825
16826         * reflection.c: unaligned store fix from Mark Crichton
16827         <crichton@gimp.org>.
16828
16829 2002-09-27  Martin Baulig  <martin@gnome.org>
16830
16831         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
16832         New interncall.
16833
16834 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
16835
16836         * assembly.h, assembly.c: use a sane API to hook into the assembly
16837         loading process instead of a useless special-purpouse hack
16838         (ngen needs a hook, too, for example).
16839
16840 2002-09-27  Dick Porter  <dick@ximian.com>
16841
16842         * threads.c (mono_thread_init): Call GetCurrentProcess() so
16843         io-layer can set up some process handle info.  Not needed on w32,
16844         but doesn't hurt either.
16845
16846         * process.c: Pass the program name in the second parameter to
16847         CreateProcess, so the path is searched.  Include the working
16848         directory. Implemented process name, process enumeration, and some
16849         process detail internal calls.
16850         
16851         * icall.c: Added internal calls for process lookup, and some
16852         process details
16853
16854 2002-09-26  Martin Baulig  <martin@gnome.org>
16855
16856         * assembly.c (mono_install_open_assembly_hook): New global
16857         function to install a function to be invoked each time a new
16858         assembly is loaded.
16859         (mono_assembly_open): Run this callback function if set.
16860
16861         * debug-mono-symfile.c: Put back line numbers for the dynamic
16862         symbol file and also record the .il file as source file.  This
16863         allows us to install the temporary symbol file as `file.dbg' just
16864         like a compiler-generated one.
16865
16866 2002-09-26  Nick Zigarovich <nick@chemlab.org>
16867
16868         * Corrected typo in gc.c (BOHEM vs BOEHM).
16869
16870 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16871
16872         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
16873         GetProperties. Also avoid calling g_slist_length in GetProperties and
16874         GetMethods.
16875
16876 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16877
16878         * reflection.c: avoid unaligned stores (bug spotted by
16879         Mark Crichton  <crichton@gimp.org>).
16880
16881 2002-09-25  Martin Baulig  <martin@gnome.org>
16882
16883         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
16884         instead of guint64 for addresses and added prologue/epilogue info.
16885
16886 2002-09-25  Martin Baulig  <martin@gnome.org>
16887
16888         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
16889         store line number info.  For the dynamic symbol file, we only need
16890         to provide the JIT generated dynamic line number info for the dynamic
16891         symbol file.
16892
16893 2002-09-25  Martin Baulig  <martin@gnome.org>
16894
16895         * debug-mono-symfile.h: Incremented version number.
16896
16897 2002-09-24  Martin Baulig  <martin@gnome.org>
16898
16899         * class.c (mono_debugger_class_init_func): New global function
16900         pointer variable.
16901         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
16902         call it.
16903
16904         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
16905         function.  This is called via the mono_debugger_class_init_func
16906         hook to add all types to the dynamic type table.
16907         (ves_icall_MonoDebugger_GetType): New interncall to get a class
16908         from its metadata token.
16909
16910         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
16911         New interncall for the debugger.
16912
16913 2002-09-24  Nick Drochak <ndrochak@gol.com>
16914
16915         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
16916         before using it in case it is null.
16917         
16918 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16919
16920         * metadata.c: allow custom modifiers in local var signatures
16921         (bug spotted by Zoltan Varga).
16922
16923 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
16924
16925         * class.c: deal with the <Module> class that may have a NULL vtable.
16926         Eliminate warnings.
16927
16928 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16929
16930         * image.c, image.h: more strong name helpers.
16931         * monosn.c: more work: convert pem keys to cryptoapi format.
16932
16933 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16934
16935         * string-icalls.c: speedup IndexOf.
16936
16937 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16938
16939         * icall.c: updates from Zoltan.2.Varga@nokia.com.
16940
16941 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16942
16943         * icall.c: cleanup: use mono_object_domain ().
16944
16945 2002-09-23  Martin Baulig  <martin@gnome.org>
16946
16947         * debug-mono-symfile.c: Improved type support.
16948
16949 2002-09-22  Martin Baulig  <martin@gnome.org>
16950
16951         * debug-mono-symfile.c: Added support for reference types and strings.
16952
16953 2002-09-22  Martin Baulig  <martin@gnome.org>
16954
16955         * debug-mono-symfile.c: Started to work on the type table.
16956
16957 2002-09-21  Martin Baulig  <martin@gnome.org>
16958
16959         * debug-mono-symfile.c: Largely reworked the symbol table format.
16960         The symbol table is now incrementally updated each time a new
16961         method is added.  We're now also using our own magic and version
16962         so that you don't need to recompile all your classes if the
16963         dynamic table changes.
16964         (mono_debug_update_mono_symbol_file): Removed.
16965         (mono_debug_symfile_add_method): New function to add a method.
16966
16967 2002-09-21  Martin Baulig  <martin@gnome.org>
16968
16969         * icall.c
16970         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
16971         New interncall.
16972
16973         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
16974         New interncall to get a method from its metadata token.
16975
16976 2002-09-21  Martin Baulig  <martin@gnome.org>
16977
16978         * debug-mono-symfile.c: Create type table.
16979
16980 2002-09-20  Martin Baulig  <martin@gnome.org>
16981
16982         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
16983
16984 2002-09-20  Martin Baulig  <martin@gnome.org>
16985
16986         * debug-mono-symfile.c: Provide information about params and locals.
16987
16988 2002-09-20  Martin Baulig  <martin@gnome.org>
16989
16990         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
16991         New interncall.
16992
16993         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
16994         interncall to get a method from its metadata token.
16995
16996 2002-09-20  Martin Baulig  <martin@gnome.org>
16997
16998         * debug-mono-symfile.c: Added a few checks for method->header
16999         being non-NULL.  This should never happen, but for the moment
17000         let's use a g_warning() rather than a g_assert().
17001
17002 2002-09-19  Mark Crichton  <crichton@gimp.org>
17003
17004         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17005         even if support for it isn't present.  Added an #ifdef to fix this.
17006
17007         * socket-io.c: Added checks back for Solaris support.
17008
17009 2002-09-19  Martin Baulig  <martin@gnome.org>
17010
17011         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17012         changes in the symbol file format.
17013
17014 2002-09-18  Martin Baulig  <martin@gnome.org>
17015
17016         * debug-mono-symfile.c: Set version number to 21.
17017
17018 2002-09-18  Dick Porter  <dick@ximian.com>
17019
17020         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17021         on netbsd.  Fixes bug 30051.
17022
17023 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17024
17025         * reflection.c:
17026         (set_version_from_string): little fix.
17027
17028 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17029
17030         * monosn.c, Makefile.am: added strong name utility.
17031         * reflection.h, reflection.c: implemented delayed signing,
17032         locale, version and hash id assembly attributes.
17033
17034 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17035
17036         * loader.c, metadata.c: load param attributes in signatures.
17037
17038 2002-09-16  Martin Baulig  <martin@gnome.org>
17039
17040         * debug-mono-symfile.c: Added string table with all method names.
17041
17042 2002-09-14  Martin Baulig  <martin@gnome.org>
17043
17044         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17045         fast method lookup.
17046
17047 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17048
17049         * reflection.c: record the public key token of referenced assemblies.
17050
17051 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17052
17053         * image.c, image.h: added functions to get the strong name and the
17054         public key of an assembly.
17055         * pedump.c: use them.
17056
17057 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17058
17059         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17060
17061 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17062
17063         * marshal.c (mono_marshal_get_managed_wrapper): Added
17064         MONO_TYPE_BOOLEAN 
17065
17066 2002-09-11  Martin Baulig  <martin@gnome.org>
17067
17068         * gc.c: Call GC_unregister_disappearing_link() on all links when
17069         finalizing them, this is necessary to aviod a crash in boehm's
17070         finalize handler.
17071
17072 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17073
17074         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17075         nick@chemlab.org.
17076
17077 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17078
17079         * icall.c: implemented MonoType::Module.
17080         * reflection.c, reflection.h: mono_module_get_object () from
17081         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17082
17083 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17084
17085         * icall.c: ignore overridden methods in GetMethods ().
17086         Fix for FieldInfo::SetValue().
17087         * object.c: handle float/double in runtime invoke.
17088
17089 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17090
17091         * object.c: allow a constructor to be called again on an object.
17092
17093 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17094
17095         * class.h, class.c: move field layout code to it's own function and
17096         export it. Get an interface id earlier. Move fields in MonoClass
17097         so they are more cache friendly and align the bitfields.
17098         * loader.c: temporary handle get_param_names() for a runtime method.
17099         * reflection.c, reflection.h: more code to handle runtime creation of
17100         types.
17101
17102 2002-09-09  Martin Baulig  <martin@gnome.org>
17103
17104         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17105         signature with the pinvoke field being set for the actual call.
17106
17107 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17108
17109         * icall.c: removed some unused icalls. Start of map of glib charsets
17110         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17111
17112 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17113
17114         * debug-helpers.c: break infinite loop (found and fixed by
17115         Holger Arnold <harnold@gmx.de>).
17116
17117 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17118
17119         * icall.c: target may be null in create_delegate.
17120
17121 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17122
17123         * marshal.c: handle a boolean return type.
17124
17125 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17126
17127         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17128
17129 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17130
17131         * gc.c: fix weakreferences.
17132
17133 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17134
17135         * icall.c: added icall to get default codepage.
17136
17137 2002-09-03  Dick Porter  <dick@ximian.com>
17138
17139         * threads.h: 
17140         * threads.c: Use MonoThread instead of MonoObject where
17141         apropriate.
17142
17143         Store running thread objects in a hash table, so that we have all
17144         the info to hand when waiting for them to finish
17145         (means we don't need OpenThread() any more, so mingw builds should
17146         be fully functional again.)
17147
17148         * verify.c:
17149         * object.h: Added thread ID to MonoThread
17150
17151 2002-09-03  Martin Baulig  <martin@gnome.org>
17152
17153         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17154
17155 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17156
17157         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17158
17159 2002-09-03  Martin Baulig  <martin@gnome.org>
17160
17161         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17162         argument to store the end address of the disassembled instruction.
17163
17164         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17165         here from debug-symfile.h.
17166         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17167         JIT into this struct.
17168         (MonoSymbolFile): Added `char *image_file' field.
17169         (MonoDebugGetMethodFunc): Removed.
17170         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17171         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17172         (mono_debug_find_method): New method.
17173
17174         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17175         create a full symbol file.
17176         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17177         and static symbol files.
17178         (mono_debug_find_method): The symbol file keeps an internal method hash,
17179         call this to get a MonoDebugMethodInfo from a MonoMethod.
17180
17181         * debug-symfile.[ch]: Removed.
17182
17183 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17184
17185         * image.c (do_mono_image_open): Remove linker version check.
17186
17187 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17188
17189         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17190         wrappers for instance methods.
17191         
17192 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17193
17194         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17195
17196 2002-08-28  Dick Porter  <dick@ximian.com>
17197
17198         * Makefile.am: Export HOST_CC for w32 builds
17199
17200 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17201
17202         * file-io.c process.c: MonoString are null terminated, no
17203         need for mono_string_to_utf16() anymore.
17204
17205 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17206
17207         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17208
17209 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17210
17211         * icall.c, reflection.h: speedup System.MonoType.
17212
17213 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17214
17215         * reflection.c: allow null as the value of a string argument in
17216         custom attributes constructors.
17217
17218 2002-08-27  Martin Baulig  <martin@gnome.org>
17219
17220         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17221         `trampoline_address' field.
17222
17223 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17224
17225         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17226         check (fixes bug #29486) 
17227
17228 2002-08-27  Martin Baulig  <martin@gnome.org>
17229
17230         * debug-mono-symfile.c: Changed the file format in a way that allows us
17231         open it read-only and to use a specially malloced area for all the
17232         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17233         debugging IL code and there is no MCS generated symbol file for it.
17234
17235 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17236
17237         * object.c: added a define for a good string and array
17238         creation speedup (not enabled by default because we need to deal with
17239         the synch stuff).
17240
17241 2002-08-26  Martin Baulig  <martin@gnome.org>
17242
17243         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17244         function to create a dynamic symbol file.  This is used by the
17245         debugger to create a symbol file for IL code on-the-fly.
17246
17247 2002-08-26  Martin Baulig  <martin@gnome.org>
17248
17249         * loader.c (mono_lookup_pinvoke_call): Include the error message
17250         from g_module_error() in the error message.
17251
17252 2002-08-24  Martin Baulig  <martin@gnome.org>
17253
17254         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17255         function to update the symbol file.  The symbol file is mmap()ed
17256         writable, but private.  This allows us to install the symbol file
17257         together with the assembly.
17258
17259 2002-08-24  Martin Baulig  <martin@gnome.org>
17260
17261         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17262         but they can read the new symbol file format which mcs is now creating.
17263
17264         * debug-symfile.c (mono_debug_find_source_location): Moved to
17265         debug-mono-symfile.c; this is now operating on the new symbol file.
17266
17267 2002-08-23  Martin Baulig  <martin@gnome.org>
17268
17269         * debug-helpers.c (mono_method_desc_from_method): New function to get
17270         a MonoMethodDesc from a MonoMethod.
17271
17272 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17273
17274         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17275         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17276
17277 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17278
17279         * string-icalls.[ch]: make helper methods static.
17280
17281 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17282
17283         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17284         types to it and to SetValueInternal.
17285
17286         * object.c: Moved handle_enum label to its proper place. This was the
17287         f... bug! ;-)
17288
17289         This time i compiled mcs and gtk-sharp and they both work.
17290
17291 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17292
17293         * icall.c: reverted partially my previous patch until 
17294         object.c:set_value handles enums correcly.
17295
17296 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17297
17298         * icall.c:
17299         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17300         (ves_icall_System_Environment_get_MachineName): removed warning when
17301         compiling under cygwin.
17302
17303 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17304
17305         * object.c: fixed field_get_value() for reference types.
17306
17307 2002-08-22  Dick Porter  <dick@ximian.com>
17308
17309         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17310         Don't free a buffer while it's still needed.  Patch from Jonathan
17311         Liger <Jonathan.liger@wanadoo.fr>
17312
17313 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17314
17315         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17316         internal call.
17317
17318 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17319
17320         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17321         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17322
17323         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17324         we call unmanaged code which throws exceptions.
17325
17326 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17327
17328         * appdomain.h: added per-domain entry_assembly.
17329         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17330         arguments.
17331         * icall.c: Assembly::GetEntryAssembly icall.
17332         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17333         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17334
17335 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17336
17337         * appdomain.h, gc.c: added mono_domain_finalize ().
17338
17339 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17340
17341         * object.c:
17342         (mono_print_unhandled_exception): changed g_warning by g_printerr
17343         because g_log has a 1024 characters limit (yeah, i got a big stack
17344         trace). Don't print exception name, that should be in ToString 
17345         returned string.
17346
17347 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17348
17349         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17350         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17351
17352 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17353
17354         * object.c:
17355         (mono_print_unhandled_exception): after previous commit, i realized
17356         that MS calls ToString on the exception. I changed this function to
17357         do that. This way we get stack_trace for free.
17358
17359 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17360
17361         * object.c:
17362         (mono_print_unhandled_exception): invoke Message property instead of
17363         getting 'message' field from Exception. Don't allocate memory for
17364         'trace' and 'message' if not needed.
17365
17366 2002-08-18  Dick Porter  <dick@ximian.com>
17367
17368         * unicode.c: Fix asserts to match Encoder.cs checks
17369
17370 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17371
17372         * marshal.c: fix unaligned store issue and a few wrong
17373         opcode argument types.
17374
17375 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17376
17377         * icall.c: added GetUninitializedObjectInternal internal call.
17378
17379 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17380
17381         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17382         to the right domain.
17383
17384 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17385
17386         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17387
17388         * class.c (class_compute_field_layout): set blittable to false for Strings
17389
17390         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17391
17392 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17393
17394         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17395         first chunk of code to create types at runtime. Code to
17396         handle ReflectedType/DeclaringType. Make reflection handles
17397         domain specific.
17398
17399 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17400
17401         * class.c: set correct name in arrays.
17402
17403 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17404
17405         * appdomain.c (mono_domain_transfer_object): make it work with
17406         valuetypes. bug fixes.
17407
17408 2002-08-12  Dick Porter  <dick@ximian.com>
17409
17410         * object.h: Rename some parameters to avoid c++ keywords (Patch
17411         from Joseph Wenninger <kde@jowenn.at>)
17412
17413 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17414
17415         * icall.c: added icall to implement Assembly.GetFile*.
17416
17417 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17418
17419         * reflection.h, reflection.c: code to embed managed resources.
17420
17421 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17422
17423         * class.c: move all the type size stuff into
17424         class_compute_field_layout().
17425
17426 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17427
17428         * class.c: ensure enums have always the correct instance size.
17429         * unicode.c: remove wrong assert.
17430
17431 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17432
17433         * assembly.c: fix mem corruption issue.
17434         * image.h, image.c: added mono_image_get_resource () to access
17435         managed resources.
17436         * icall.c: implemented Assembly.EntryPoint property and some
17437         Managed Resources related internalcalls.
17438
17439
17440 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17441
17442         * image.c, image.h: impemented mono_image_get_entry_point ().
17443         * appdomain.c: use mono_image_get_entry_point.
17444
17445 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17446
17447         * reflection.c: support the object type argument when loading
17448         custom attributes.
17449
17450 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17451
17452         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17453         String as return type.
17454
17455 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17456
17457         * reflection.c: fix encoding of named args for custom attrs to match
17458         the ms implementation. Read them back when instantiating custom
17459         attributes.
17460
17461 2002-08-02  Radek Doulik  <rodo@ximian.com>
17462
17463         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17464         by Dietmar as quick fix
17465         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17466         16 as stack size, used on more places as quick fix before Dietmar
17467         will fix it properly
17468
17469 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17470
17471         * object.h, object.c: added accessors for fields and properties.
17472
17473 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17474
17475         * class.c, class.h: made mono_class_get_field_from_name ()
17476         loop on parent types.
17477         Added mono_class_get_property_from_name ().
17478
17479 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17480
17481         * class.c, class.h: move the code to setup the type vtable in its own
17482         function so that it can be reused also for types created at runtime.
17483         Eliminate the "class" identifier from the header file.
17484         * reflection.c: setup the vtable for enums so that we can create
17485         objects for use in SetConstant ().
17486
17487 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17488
17489         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17490         instead of the delegate itself as this pointer (bug #28383)
17491
17492 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17493
17494         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17495         conversions.
17496
17497 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17498
17499         * loader.c: don't set the pinvoke bit on icalls.
17500
17501 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17502
17503         * debug-helpers.c (mono_method_full_name): only print a number to
17504         indicate wrapper type (so that the output is more readable in traces).
17505
17506 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17507
17508         * class.c (mono_class_init): include method override patch from Paolo
17509
17510 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17511
17512         * icall.c: fixed GetTypeCode().
17513
17514 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17515
17516         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17517         use real delegate invoke function to make it work with multicast
17518         delegates (fix bug# 28291).
17519
17520 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17521
17522         * object.c: load constant strings.
17523
17524 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17525
17526         * reflection.c: no magic numbers.
17527         * tabledefs.h: security action enum.
17528
17529 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17530
17531         * assembly.c: fix possible memory corruption.
17532
17533 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17534
17535         * reflection.h, reflection.c: added support for linking resources.
17536         * verify.c: check we have an updated corlib.
17537
17538 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17539
17540         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17541         string arrays.
17542         (mono_marshal_string_array): null terminate unmanaged string arrays.
17543         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17544
17545 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17546
17547         * icall.c: Type.GetType () can now return also types from the
17548         calling assembly.
17549
17550 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17551
17552         * loader.h, loader.c: stack walking support.
17553         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17554         GetCallingAssembly.
17555
17556 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17557
17558         * marshal.c: added optimisations for blittable types 
17559
17560         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17561         (mono_class_setup_mono_type): set blittable attribute for single
17562         and double.
17563
17564         * marshal.c (mono_string_utf8_to_builder): impl.
17565         (mono_string_builder_to_utf8): impl.
17566         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17567
17568 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17569
17570         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17571         (mono_marshal_get_managed_wrapper): impl. byref types
17572
17573 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17574
17575         * icall.c:
17576         (search_method): don't display debug message. 
17577
17578 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17579
17580         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17581
17582 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17583
17584         * appdomain.c: set the missing filename when throwing exception.
17585
17586 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17587
17588         * metadata.c (mono_type_size): code cleanup
17589         (mono_type_stack_size): removed some test code
17590
17591 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17592
17593         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17594         mono_get_exception_file_not_found now.
17595
17596         * exception.c (mono_exception_from_name_two_strings): New version
17597         that will call a constructor with two string arguments. 
17598         (mono_get_exception_file_not_found): New helper routine, used to
17599         report file-not-found errors.
17600
17601 2002-07-20  Dick Porter  <dick@ximian.com>
17602
17603         * process.h:
17604         * process.c: Pass file handles to CreateProcess
17605         
17606         * icall.c:
17607         * file-io.h:
17608         * file-io.c: Implemented CreatePipe
17609
17610 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17611
17612         * metadata.c (mono_get_param_info): set alignment for value types
17613
17614 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17615
17616         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17617         Constify mono_domain_assembly_open().
17618         * loader.c: handle null namespace in icalls.
17619
17620 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17621
17622         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17623         (emit_str_to_ptr_conv): marshal object as structs
17624
17625         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17626
17627         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17628
17629 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17630
17631         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17632         (mono_marshal_get_native_wrapper): we an now return value types
17633
17634 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17635
17636         * verify.c: more checks implemented.
17637
17638 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17639
17640         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17641         (fix bug #27695)
17642         (mono_marshal_get_native_wrapper): allow byref arguments
17643         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17644         impl. PtrToStringXXX methods
17645         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17646         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17647         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17648         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17649         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17650
17651 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17652
17653         * reflection.c: fix buglet in parsing an assembly name.
17654
17655 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17656
17657         * marshal.c (emit_ptr_to_str_conv): first impl.
17658
17659 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17660
17661         * object.c, class.h: cache the vtable in the class as suggested by
17662         vargaz@freemail.hu (Zoltan Varga).
17663
17664 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17665
17666         * class.h, loader.c: added mono_field_from_token().
17667         * verify.c: first cut of type checking code.
17668
17669 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17670
17671         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17672
17673 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17674
17675         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17676         (fix bug #27782)
17677         (mono_marshal_get_remoting_invoke): impl.
17678         (mono_delegate_begin_invoke): impl.
17679         (mono_mb_emit_save_args): impl.
17680         (mono_delegate_end_invoke): impl.
17681         (mono_marshal_get_delegate_begin_invoke):
17682         (mono_marshal_get_delegate_end_invoke):
17683         (mono_marshal_get_delegate_invoke): generate a special name for
17684         those methods (including the signature) and associate them whith
17685         the delegate class. 
17686
17687 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17688
17689         * reflection.[ch]: 
17690         (mono_reflection_type_from_name): now it has a MonoImage parameter
17691         which is used as the default image to search the type in. If the image
17692         is NULL or getting the type from it fails, it defaults to corlib.
17693
17694         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17695         new parameter.
17696
17697 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17698
17699         * reflection.c: update the parameter table index.
17700
17701 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17702
17703         * domain.c: don't include the mark byte in the string hash.
17704
17705 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17706
17707         * icall.cs: icall for Type.GetTypeCode ().
17708         * verify: a couple of fixes and disabled local initialization checks.
17709
17710 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17711
17712         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17713
17714         * debug-helpers.c (mono_method_full_name): print the type of the
17715         runtime wrapper
17716
17717         * metadata.c (mono_signature_hash): a hash function for signatures
17718         (mono_signature_hash): better hash algorithm
17719
17720         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17721
17722         * debug-helpers.c (mono_method_full_name): this can now generate
17723         method names with signatures
17724
17725         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17726         method dont have this pointers.
17727
17728 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17729
17730         * reflection.c: fixup typebuilder tokens.
17731         * image.c: fix buglet.
17732         * marshal.h: remove whitespace.
17733         * metadata.h, metadata.c: reinstate code that was removed.
17734         * verify.c: handle catch directives and fix another couple of bugs.
17735
17736 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17737
17738         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17739         (mono_marshal_get_native_wrapper): make it comp. with the old code
17740         (mono_marshal_get_native_wrapper): support boolean
17741         (mono_marshal_get_managed_wrapper): support more types
17742
17743 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17744
17745         * class.c (class_compute_field_layout): compute class->blittable attribute.
17746
17747 2002-07-09  Dick Porter  <dick@ximian.com>
17748
17749         * threads.c: Make the thread cleaning up cope with threads that
17750         call ExitThread()
17751
17752 2002-07-08  Radek Doulik  <rodo@ximian.com>
17753
17754         * reflection.c (method_encode_code): use non-translated values to
17755         compute finally_start, this fixes exception handling on ppc, yay!
17756
17757         * decimal.h (struct signscale): fix endianess
17758
17759 2002-07-07  Radek Doulik  <rodo@ximian.com>
17760
17761         * reflection.c: swap box_val and not val
17762
17763 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17764
17765         * reflection.c, reflection.h: handle full assembly info in type name.
17766         Handle Type arguments when loading custom attributes.
17767         * icall.c: updated to use new mono_reflection_type_from_name () method.
17768
17769 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17770
17771         * loader.c:
17772         (method_from_memberref): also print assembly name when method not found.
17773
17774 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17775
17776         * icall.c:
17777         (ves_icall_TypeGetProperties): fixed bug #27473. 
17778
17779 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17780
17781         * reflection.c: display image name and token when cannot find the
17782         .ctor for an attribute.
17783
17784 2002-07-05  Martin Baulig  <martin@gnome.org>
17785
17786         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17787
17788 2002-07-04  Dick Porter  <dick@ximian.com>
17789
17790         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
17791         compile on mingw.  This will cause mingw builds to not wait for
17792         subthreads to terminate after the main thread does.  I've lodged a
17793         bug with the mingw developers for them to wrap OpenThread().
17794
17795 2002-07-03  Dick Porter  <dick@ximian.com>
17796
17797         * threads.c: Store thread IDs instead of handles, because
17798         GetCurrentThread() returns a pseudohandle and therefore stores
17799         useless values.  mono_thread_cleanup() continues checking the
17800         array of threads until it is empty, to cope with subthreads
17801         spawning new threads after the main thread has finished.
17802
17803         * profiler.h:
17804         * profiler.c:
17805         * profiler-private.h: Pass the thread ID to thread profiler
17806         functions, instead of a handle
17807
17808 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17809
17810         * verify.c: fixes to make it more usable.
17811         * pedump.c: added --verify code to verify IL code in an assembly.
17812
17813 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17814
17815         * reflection.c: turn errors into warnings to allow compiling corlib.
17816
17817 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17818
17819         * reflection.c: add special cases to compile corlib.
17820
17821 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17822
17823         * reflection.c: handle properties with only a set method.
17824
17825 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17826
17827         * opcodes.h: add enum with opcodes in opval order.
17828
17829 2002-07-01  Dick Porter  <dick@ximian.com>
17830         
17831         * object.h:
17832         * object.c (mono_runtime_run_main): Removed unneeded argument
17833
17834 2002-06-28  Martin Baulig  <martin@gnome.org>
17835
17836         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17837
17838 2002-06-27  Dick Porter  <dick@ximian.com>
17839
17840         * threads.c: Store the handle in both the parent thread and in the
17841         subthread, to minimise the time between starting a new thread and
17842         storing its ID.
17843
17844 2002-06-26  Dick Porter  <dick@ximian.com>
17845
17846         * appdomain.c (mono_runtime_cleanup): Close the socket library
17847         after all the threads have finished, not before
17848
17849 2002-06-26  Martin Baulig  <martin@gnome.org>
17850
17851         * debug-symfile.c (mono_debug_find_source_location): Added
17852         `guint32 *line_number' argument.  If it's not NULL, store the line number
17853         there and return the file name without the line number.
17854
17855 2002-06-25  Dick Porter  <dick@ximian.com>
17856
17857         * icall.c:
17858         * process.h:
17859         * process.c: Process forking and other support functions
17860
17861 2002-06-25  Dick Porter  <dick@ximian.com>
17862
17863         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
17864         things dont happen when the image is closed.
17865         (mono_image_lookup_resource): Walk the resource section looking
17866         for a particular entry
17867
17868         * cil-coff.h: PE resource section decoding
17869
17870 2002-06-25  Dick Porter  <dick@ximian.com>
17871         
17872         * assembly.h:
17873         * assembly.c: 
17874         (mono_assembly_foreach): Accessor functions to walk the list of
17875         loaded assemblies
17876         (mono_assembly_set_main):
17877         (mono_assembly_get_main): Process methods need to know which
17878         assembly is the "main" one
17879
17880         * object.c (mono_runtime_run_main): Record the main assembly
17881
17882         * debug-helpers.c: Fix typo
17883
17884 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
17885
17886         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
17887         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
17888
17889 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17890
17891         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
17892
17893 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
17894
17895         * image.c (do_mono_image_open): Initialize reference count,
17896         otherwise we leak the MonoImage.
17897
17898 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17899
17900         * reflection.c: small tweak to handle self-hosting.
17901
17902 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17903
17904         * reflection.c: fix type name parse code.
17905
17906 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17907
17908         * reflection.c: break out of the loop.
17909         * image.c: special case corlib.
17910
17911 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17912
17913         * reflection.c: add all the custom attrs at the end to ensure the
17914         ctors have been properly initialized when the attributes are defined
17915         in the current assembly.
17916
17917 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17918
17919         * reflection.c: handle correctly multiple-nested types.
17920
17921 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17922
17923         * row-indexes.h: fix typos.
17924         * reflection.c: adjust for typos and fix method_def_or_ref
17925         encoding in MethodImpl table.
17926
17927 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17928
17929         * reflection.c: fix entry point patching (thanks Serge!).
17930
17931 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
17932
17933         * verify.c: add check for System.Exception
17934
17935 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17936
17937         * image.c, class.c: minifix for code just c&p'ed.
17938         * reflection.c: warning fix.
17939         * object.h, loader.h, domain.c: load also StringBuilder.
17940
17941 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17942
17943         * marshal.h, marshal.c: some support code to handle complex marshaling.
17944
17945 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17946
17947         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
17948         Better signatures with vtable error dump.
17949
17950 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
17951
17952         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
17953
17954 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
17955
17956         * icall.c (ves_icall_Type_GetField): impl.
17957
17958 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17959
17960         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
17961         to retrieve a marshal description blob for a field or param.
17962
17963 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17964
17965         * reflection.h, reflection.c: change order of nested type emission
17966         to avoid table corruption. The NestedTypes table is sorted.
17967         * icall.c: change order of GetConstructor results to workaround mcs bug.
17968
17969 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17970
17971         * reflection.h, reflection.c: handle field and param marshal
17972         information.
17973
17974 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17975
17976         * icall.c, marshal.c marshal.h: more Marshal class implementation.
17977
17978 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17979
17980         * reflection.c: fix call convention.
17981
17982 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17983
17984         * reflection.h, reflection.c: mono_image_get_memberref_token()
17985         takes a type instead of a class, now. Added
17986         mono_image_get_array_token() to create tokens for the special
17987         multi-dim array methods.
17988
17989 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17990
17991         * assembly.c: handle modules (no assembly table). Split
17992         loading references in its own function.
17993         * class.c: handle moduleref resolution scope.
17994         * image.c, image.h: cache module name in image.
17995
17996 2002-06-07  Martin Baulig  <martin@gnome.org>
17997
17998         * reflection.c (mono_image_get_type_info): Only add a class layout entry
17999         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18000
18001 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18002
18003         * icall.c: more signature fixes that used uint instead of int.
18004
18005 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18006
18007         * reflection.c: fixed signature of field refs.
18008
18009 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18010
18011         * class.c, reflection.c: handle typerefs of nested types
18012         (both on read and when writing files).
18013
18014 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18015
18016         * icall.c: fix method signatures that tried to workaround the previous
18017         typo, d'oh!
18018
18019 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18020
18021         * debug-helpers.c: fix typo.
18022
18023 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18024
18025         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18026         rewrote the PE/COFF writing code (our programs are understood by the
18027         ms runtime, now).
18028
18029 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18030
18031         * gc.c, gc.h, icall.c: weakreference support.
18032
18033 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18034
18035         * Makefile.am, mono-config.c: use $(sysconfdir).
18036
18037 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18038
18039         * icall.c: changed default precision of Double.ToString() to 15.
18040         Fixed memory leak. Unified with Single.ToString.
18041
18042 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18045
18046 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18047
18048         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18049         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18050         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18051         and myself.
18052
18053 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18054
18055         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18056
18057 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18058
18059         * reflection.c, socket-io.c: more compilation fixes.
18060
18061 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18062
18063         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18064         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18065         unicode.c: warning and compiler compatibility fixes.
18066
18067 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18068
18069         * class.h, metadata.c: fixed warnings/compilation errors.
18070
18071 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18072
18073         * Makefile.am, mono-config.c, mono-config.h: configuration file
18074         support routines.
18075         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18076         config file. Export methods to insert and lookup mappings.
18077
18078 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18079
18080         * reflection.c: handle types and boxed objects in custom attr
18081         constructors.
18082
18083 2002-05-30  Martin Baulig  <martin@gnome.org>
18084
18085         * debug-symfile.c
18086         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18087
18088 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18089
18090         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18091         to lookup the implmap row for a P/Invoke method.
18092         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18093         P/Invoke method from the runtime on an as needed basis.
18094
18095 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18096
18097         * metadata.c (mono_metadata_parse_signature): impl.
18098
18099 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18100
18101         * class.c: handle .pack directive.
18102
18103 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18104
18105         * object.c: initialize static fields with RVA data.
18106
18107 2002-05-25  Martin Baulig  <martin@gnome.org>
18108
18109         * debug-symfile.c
18110         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18111
18112 2002-05-24  Martin Baulig  <martin@gnome.org>
18113
18114         * debug-symfile.c
18115         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18116         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18117         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18118
18119 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18120
18121         * object.c: special case string ctros in invoke.
18122         * gc.c: silly whitespace changes.
18123
18124 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18125
18126         * threadpool.[ch]: impl. a threadpool that can
18127         be used by mint and mono.
18128
18129 2002-05-22  Martin Baulig  <martin@gnome.org>
18130
18131         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18132         The first argument is now a `MonoReflectionModuleBuilder *', the return
18133         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18134         `methods' field to get the method builder.  The `token' argument is the
18135         unfixed token.
18136
18137         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18138         invalid characters instead of g_assert_not_reached()ing.  This seems
18139         to be the behaviour of mscorlib.
18140
18141 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18142
18143         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18144         Hestilow to fix bug #25104
18145
18146 2002-05-21  Martin Baulig  <martin@gnome.org>
18147
18148         * debug-symfile.c (mono_debug_find_source_location): New function.
18149         Looks up an IL offset in the line number table and returns the source
18150         location as a string.
18151
18152 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18153
18154         * icall.c:
18155         (mono_double_ToStringImpl): changed %f by %g until we have something
18156         better.
18157
18158 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18159
18160         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18161         parameters first in C#.
18162
18163 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18164
18165         * icall.c, reflection.h: added icall to get info about an event.
18166
18167 2002-05-20  Radek Doulik  <rodo@ximian.com>
18168
18169         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18170         endian
18171         (mono_value_box): don't use memcpy for small sizes on
18172         architectures with unaligned access
18173
18174 2002-05-20  Martin Baulig  <martin@gnome.org>
18175
18176         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18177         if `tb->parent == NULL'.
18178         (mono_reflection_create_internal_class): New function.  This is
18179         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18180         for enum types.
18181
18182         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18183         New interncall.
18184
18185 2002-05-19  Martin Baulig  <martin@gnome.org>
18186
18187         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18188         argument to get the length, don't default to the array length.
18189
18190 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18191
18192         * assembly.c (mono_assembly_setrootdir): New function used to
18193         override the MONO_ASSEMBLIES directory.
18194
18195 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18196
18197         * icall.c: ValueType_GetHashCode() initialize local var.
18198
18199 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18200
18201         * reflection.c: sort custom attributes table.
18202
18203 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18204
18205         * reflection.c: support named args in custom attributes (write support).
18206
18207 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18208
18209         * reflection.c: fix finally position calculation.
18210
18211 2002-05-15  Radek Doulik  <rodo@ximian.com>
18212
18213         * reflection.c: fixed endianess at many places
18214
18215         * icall.c (ves_icall_InitializeArray): comment out debug msg
18216
18217 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18218
18219         * object.c (mono_unhandled_exception): new function to handle
18220         unhandled exceptions.
18221         (mono_unhandled_exception): call the UnhandledException event.
18222         (mono_runtime_delegate_invoke): impl.
18223
18224 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18225
18226         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18227         returns the RVA, not the direct pointer to the data. Handle the case
18228         when the class size is fixed.
18229
18230 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18231
18232         * reflection.c: fix some endianess issues.
18233
18234 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18235
18236         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18237
18238         * threads.c (mono_thread_init): added a callback which is invoked
18239         at thread start.
18240
18241 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18242         
18243         * icall.c: make GetHashCode return non-negative values.
18244
18245 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18246
18247         * object.c, icall.c, gc.c: revert to address-based hashcode.
18248
18249 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18250
18251         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18252
18253 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18254
18255         * icall.c, class.c: special case <Module>.
18256
18257 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18258
18259         * icall.c: fix bug in GetNow().
18260
18261 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18262
18263         * object.c (mono_runtime_class_init): make sure that we call all
18264         static class constructors.
18265
18266 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18267
18268         * reflection.c: sort methodsemantics table.
18269
18270 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18271
18272         * reflection.h, reflection.c: honour init locals setting.
18273
18274 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18275
18276         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18277
18278 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18279
18280         * reflection.c: support ContructorBuilders in attribute blob creation.
18281
18282 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18283
18284         * reflection.c: some changes to build a binary that can be run
18285         directly in windows.
18286
18287 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18288
18289         * loader.c: print a big message when an icall can't be found.
18290
18291 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18292
18293         * string-icalls.c: fix bug 24248.
18294
18295 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18296
18297         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18298         icall.c, reflection.h: separate assembly loading by pathname and by
18299         assembly name. Use the MONO_PATH env var to search for assemblies.
18300
18301 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18302
18303         * assembly.c, image.h: add some support for assemblies
18304         with multiple modules.
18305         * class.c, class.h: export mono_class_from_typeref().
18306         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18307         instead.
18308
18309 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18310
18311         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18312         documentation says (the ECMA one is correct).
18313
18314 2002-05-02  Dick Porter  <dick@ximian.com>
18315
18316         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18317         Don't name the synchronisation mutex.
18318
18319 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18320
18321         * rand.c
18322         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18323         Make the prototypes match.
18324         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18325         Same.
18326
18327         * icall.c
18328         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18329         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18330         all systems have tm.tm_zone, so use strftime() with %Z to print
18331         the timezone abreviation into a temp string.
18332
18333         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18334         rather than mono_array_addr() on a MonoString on Big Endian
18335         machines.
18336
18337 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18338
18339         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18340         fix bug 24041
18341
18342 2002-04-30  Dick Porter  <dick@ximian.com>
18343
18344         * socket-io.c: Cope with SOCKET being an integer rather than a
18345         pointer now.
18346
18347         * threads.c: Added Thread_free_internal, to deal with thread
18348         handle cleanup.  Moved calls to handle_store() and handle_remove()
18349         to start_wrapper(), so each can only be called once.  Allocate
18350         synchronisation blocks with GC_malloc(), and use GC finalisation
18351         to close the handles.
18352
18353         * icall.c: added System.Threading.Thread::Thread_free_internal
18354
18355 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18356
18357         * icall.c: support Environment.Exit, CommandLineArgs().
18358
18359 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18360
18361         * object.c, object.h: added mono_runtime_run_main () and
18362         mono_runtime_get_main_args () for use in System.Environment.
18363
18364 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18365
18366         * gc.c: fix thinko, enable actual finalization since the jit is now
18367         fixed.
18368
18369 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18370
18371         * gc.c, object.c: take into account that an object may be offset wrt the address
18372         returned by GC_malloc().
18373
18374 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18375
18376         * image.c: handle files without entries in the assembly table (modules).
18377
18378 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18379
18380         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18381         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18382         allowed to be null when it's System.Object class setup.
18383
18384 2002-04-27  Martin Baulig  <martin@gnome.org>
18385
18386         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18387         if `tb->parent == NULL' rather than crashing.
18388
18389 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18390
18391         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18392         calling acos() where asin() should have been called.
18393
18394 2002-04-26  Martin Baulig  <martin@gnome.org>
18395
18396         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18397         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18398         there's a subdirectory called `System', but we don't want to read that
18399         subdirectory as an assembly.
18400
18401 2002-04-25  Martin Baulig  <martin@gnome.org>
18402
18403         * debug-symfile.c: Reflect latest MonoString changes.
18404
18405 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18406
18407         * rand.c, rand.h: instance method icalls need to have an explicit
18408         this pointer as first argument in the C implementation.
18409
18410 2002-04-25  Nick Drochak <ndrochak@gol.com>
18411
18412         * icall.c: Fix typo in map for GetNonZeroBytes
18413
18414 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18415
18416         * string-icalls.c : String does now passes unit tests without any 
18417         errors, the following changes has been made:
18418         
18419         Implemented replace methods.
18420         Renaming of methods to (try) follow the standard.
18421         Fixed compare ordinal
18422         Made all memory allocated directly to function instead of via icall function.
18423         Small performance fix in is_in_array function
18424                         
18425  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18426
18427         c (mono_string_Internal_ctor_charp_int_int):
18428         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18429         sindex < 0, throw ArgumentOutOfRangeException instead of
18430         ArgumentNullException.
18431
18432         Added new check for length == 0, however
18433         I need to make it return String.Empty from the C code.
18434         
18435         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18436         that calculate the length for us here.
18437         
18438         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18439         mono_string_new_utf16 with mono_string_new, since value is utf8.
18440
18441 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18442
18443         * object.c: register the object for finalization if needed.
18444         Allocate one more char in the string for the terminating 0 char.
18445
18446 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18447
18448         * class.c, class.h, image.c: check if a type implemenst a destructor.
18449         Use the proper key for array class lookups.
18450         * icall.c: register the icalls in the System.GC class.
18451         * gc.c, gc.h: GC-related functions and icalls.
18452
18453 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18454
18455         * icall.c:
18456         * socket-io.c:
18457         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18458         changed a couple of free () by g_free ().
18459
18460         * decimal.c: one-liner in the comments for decimal2string ().
18461
18462 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18463
18464         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18465
18466 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18467
18468         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18469         * object.c (mono_runtime_invoke_array) : handle null in params
18470
18471 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18472
18473         * string-icalls.c: fixed bug in split (one off bug)
18474
18475 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18476
18477         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18478         * icalls.c: added String::Equals as internal method
18479
18480 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18481
18482         * threads.c: fixed bug in the double interlocked functions
18483
18484 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18485
18486         * threads.c: implemented all of the new interlocked icalls.
18487         * string-icalls.c: fix a bug in insert.
18488         * icalls.c: added the icalls for interlocked, removed old string functions.
18489         
18490 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18491
18492         * loader.c: fix off-by-one error when reading argument names.
18493
18494 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18495
18496         * profiler.c: win32 counter implementation (untested).
18497         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18498         (the latter needs testing and more complete impl. from win32 folks).
18499
18500 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18501
18502         * object.c: mono_array_new_full workaround mono_array_class_get
18503         problem.
18504
18505 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18506
18507         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18508         * object.h (mono_string_chars): Changed casting type.
18509
18510 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18511
18512         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18513                            method signatures to use gunichar2 instead of gint16.
18514
18515 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18516
18517         * object.h, object.c: domain-specific versions of mono_object_new and
18518         mono_array_new.
18519
18520 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18521
18522         * object.c: changed String layout
18523
18524         * string-icalls.c (mono_string_Internal_ctor_chara): added
18525         internal string constructors.
18526
18527 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18528
18529         * threads.c: pass 'this' to the thread start routine.
18530
18531 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18532
18533         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18534         InternalCompareStr don't call twice mono_string_cmp_char for the last
18535         character. Improved performance in mono_string_cmp_char.
18536
18537 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18538
18539         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18540         code into its own library: libmonoruntime.
18541
18542 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18543
18544         * object.h, object.c: changed array format so that szarrays do not
18545         require a bounds structure.
18546         * icall.c, appdomain.c: support for new szarray format.
18547
18548 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18549
18550         * metadata.c: compare also the retuns type when comparing signatures:
18551         we didn't do this as an optimization since really overloaded methods
18552         must differ also in the arguments, but this doesn't work with
18553         low-level IL code (or when using explicit conversion operators: see
18554         bug#23498 for an example).
18555
18556 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18557
18558         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18559
18560 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18561
18562         * icall.c: make MonoType::GetElementType its own icall.
18563
18564 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18565
18566         * icall.c: remove MonoMethod_get_Name().
18567         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18568         object.
18569
18570 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18571
18572         * string-icalls.c: optimized a few methods.
18573
18574 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18575
18576         * icall.c: added all new string internal calls
18577         * string-icalls.c: added, new string internal call implementation.
18578         * object.c: added mono_string_new_size for allocating a string a size
18579
18580 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18581
18582         * object.c (mono_object_isinst): use the same code as in the
18583         optimized x86 version.
18584
18585 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18586
18587         * profiler.c: TSC-based timer code (faster and more accurate).
18588         Not hooked up in configure, yet (set USE_X86TSC to 1).
18589
18590 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18591
18592         * profiler.c, profiler.h: track time spent compiling methods.
18593         * threads.c: track thread creation/destruction.
18594
18595 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18596
18597         * profiler.c, profiler.h, profiler-private.h: profiling interface
18598         and sample implementation. Moved here so that it can be used also by
18599         the jit.
18600
18601 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18602
18603         * reflection.c, reflection.h: keep types and other handles separate in
18604         the hash tables for referred tokens. Add guid for modules.
18605
18606 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18607
18608         * assembly.c: fix bugs found with valgrind.
18609         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18610
18611 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18612
18613         * threads: added icall support for getting current domain for
18614                    the thread.
18615  
18616 2002-04-13  Martin Baulig  <martin@gnome.org>
18617
18618         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18619         (MonoDebugVarInfo): Added `index' field for register based addresses.
18620         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18621         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18622         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18623         `MonoDebugVarInfo *this_var'.
18624
18625         * debug-symfile.c (relocate_variable): New static function to write
18626         a location description for a local variable or method parameter.
18627
18628 2002-04-12  Martin Baulig  <martin@gnome.org>
18629
18630         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18631         stack offset and begin/end scope address of a local variable.
18632         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18633         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18634         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18635
18636         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18637         Added new relocation types for start/end scope of a local variable.
18638
18639 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18640
18641         * object.h: add mono_object_domain() macro.
18642         * reflection.c: handle typespecs.
18643         * icall.c: MonoMethod::get_Name() implementation.
18644
18645 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18646
18647         * icall.c: String::GetHashCode() icall implementation.
18648
18649 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18650
18651         * icall.c: String::IndexOfAny icall.
18652         * object.c, object.h: make array->max_length more useful.
18653         Intrduced mono_object_class() and mono_string_length() macros.
18654
18655 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18656
18657         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18658         instead of g_unichar_isdigit.
18659
18660 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18661
18662         * icall.c: Implement a simple Double.ToString().
18663
18664 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18665
18666         * appdomain.h: only io-layer.h is supposed to be included.
18667         * icall.c: explicitly import environ. Fix warning.
18668
18669 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18670
18671         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18672                 return true even if it's not Daylight Savings time.
18673                 Only return false for the case where the function isn't
18674                 implemented for a plaform (read Windows).
18675
18676 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18677
18678         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18679         data with a mutex.
18680
18681 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18682
18683         * mempool.c (mono_mempool_alloc): only use g_malloc when
18684         absolutely necessary.
18685
18686 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18687
18688         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18689
18690         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18691         (mono_class_proxy_vtable): use domain mempool
18692
18693 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18694
18695         * appdomain.h, appdomain.c: split initialization that requires the
18696         execution engine support into mono_runtime_init().
18697
18698 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18699
18700         * class.c (mono_class_init): don't include vtable inside MonoClass
18701         to save some memory, gather some statistics.
18702         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18703
18704 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18705
18706         * icall.c: internalcall implementation for ValueType.Equals().
18707
18708 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18709
18710         * object.c (mono_message_init): moved 
18711         (mono_runtime_exec_main): new arch. independent impl.
18712         (mono_runtime_invoke_array): new method - like
18713         mono_runtime_invoke, but you can pass an array of objects.
18714         (mono_remoting_invoke): new arch. independent impl.
18715         (mono_message_invoke): new arch. independent impl.
18716         (mono_runtime_class_init): new arch. independent impl.
18717         (mono_runtime_object_init): new arch. independent impl.
18718
18719 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18720
18721         * metadata.c, object.c, reflection.c: documented the exported
18722         functions.
18723
18724 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18725
18726         * icall.c: simpler code to pass the assembly builder data to corlib.
18727         Implement GetNestedTypes() internalcall.
18728
18729 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18730
18731         * class.c: warn if a type can't be loaded.
18732
18733 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18734
18735         * image.h: typedef MonoImageOpenStatus
18736         * types.h: removed unused file
18737         
18738 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18739
18740         * icall.c: Enum_ToObject accepts enum value arguments.
18741
18742 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18743
18744         * class.c: move initialization of properties, events and nested
18745         classes, so that they happen for interfaces, too.
18746
18747 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18748
18749         * icall.c: cleanup some ugly casts in Array_SetValue*.
18750
18751 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18752
18753         * icall.c: the values array fro enums is of the correct type, now.
18754         Implement (correctly) getFullName instead of assQualifiedName for
18755         MonoType.
18756         * reflection.h, reflection.c: added mono_type_get_name ().
18757
18758 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18759
18760         * assembly.c, image.h: for each MonoImage, record from wich assembly
18761         it was loaded.
18762         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
18763         Make Type.Assembly work.
18764
18765 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
18766
18767         * debug-symfile.h: use char* instead of gpointer to avoid
18768         unnecessary casts.
18769
18770         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
18771
18772         * icall.c (ves_icall_InternalExecute): impl. FielSetter
18773         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
18774
18775 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
18776
18777         * icall.c (mono_message_init): impl. (code cleanup)
18778         (ves_icall_InternalExecute): impl. FieldGetter
18779
18780         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
18781         defined we call all (non-static)methods through the vtable. 
18782
18783 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
18784
18785         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
18786         finalizer even though the memory is still referenced (and the chunk of
18787         memory is not freed).
18788
18789 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18790
18791         * assembly.c: fix brokeness.
18792
18793 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
18794
18795         * class.c: kill some warnings. Check explicit interface method
18796         implementation also without considering the namespace.
18797         Load also literal strings in static class data.
18798
18799 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
18800
18801         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
18802         (default_assembly_name_resolver): Make the resolver take the
18803         "base" directory where the assembly was originally defined, so we
18804         can load DLLs that are in the same directory as the assembly that
18805         is being referenced.
18806
18807 2002-03-28  Dick Porter  <dick@ximian.com>
18808
18809         * file-io.h: 
18810         * file-io.c:
18811         * socket-io.c: 
18812         * unicode.h: 
18813         * unicode.c: Warning cleanups
18814
18815 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
18816
18817         * object.h, reflection.h: use the correct type instead of MonoObject.
18818
18819 2002-03-28  Martin Baulig  <martin@gnome.org>
18820
18821         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
18822         (mono_debug_update_symbol_file): Initialize classes if necessary.
18823
18824 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
18825
18826         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
18827         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
18828
18829 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
18830
18831         * assembly.h: fix function prototype.
18832         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
18833         * mono-endian.h: use const cast.
18834
18835 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
18836
18837         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
18838
18839 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18840
18841         * loader.c: don't assert when a typeref can't be loaded, give
18842         a chance to the runtime to trow an exception instead.
18843         * loader.h: fix warning.
18844
18845 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
18846
18847         * class.c (mono_class_proxy_vtable): added proxy support
18848
18849 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
18850
18851         * icall.c: removed last of PAL calls, added System.Environment
18852         * file-io.h, file-io.c: MonoIO implementation
18853         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
18854
18855 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18856
18857         * appdomain.c: do not use the byte marker in ldstr table lookup.
18858         * debug-helpers.c: allow two ':' to separate class and method name.
18859         * object.c: allocate arrays bounds with the GC, too.
18860         * verify: add a few more checks.
18861
18862 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
18863
18864         * reflection.c: output also literal strings. Allocate parameter data
18865         with GC_malloc() (thanks, Martin, for catching this!).
18866
18867 2002-03-26  Martin Baulig  <martin@gnome.org>
18868
18869         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
18870         include the `this' offset in the `param_offsets'.
18871
18872 2002-03-25  Martin Baulig  <martin@gnome.org>
18873
18874         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
18875         mono_debug_get_class() function to get the classes. Added new
18876         relocation types for arrays and strings.
18877         (mono_debug_get_class): New static function to search in all
18878         referenced assemblies for a metadata token.
18879
18880         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
18881
18882 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18883
18884         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
18885         hold gc-allocated objects. Make the string heap a stream like the
18886         others. Removed duplicated code when writing stream info.
18887         Added asserts to catch possible buffer overflows. Set the sorted map
18888         for tables that need sorting. Added some documentation.
18889
18890 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
18891
18892         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
18893         for interned strings and vtables.
18894
18895 2002-03-24  Martin Baulig  <martin@gnome.org>
18896
18897         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
18898         it in the array since it was created with g_slist_prepend().
18899
18900 2002-03-24  Martin Baulig  <martin@gnome.org>
18901
18902         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
18903         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
18904         (mono_debug_method_from_token): Renamed to
18905         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
18906         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
18907
18908         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
18909         relocation types.
18910
18911         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
18912
18913 2002-03-24  Martin Baulig  <martin@gnome.org>
18914
18915         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
18916         (mono_debug_method_from_token): New func.
18917
18918         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
18919         New interncall, calls mono_debug_local_type_from_signature().
18920         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
18921         calls mono_debug_method_from_token().
18922
18923 2002-03-23  Martin Baulig  <martin@gnome.org>
18924
18925         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
18926         specifies the number of bytes to be converted, not the array size.
18927         Return the number of chars, not the number of bytes.
18928         (ves_icall_iconv_get_chars): The `byteCount' argument
18929         specifies the number of bytes to be converted, not the array size.
18930
18931 2002-03-23  Martin Baulig  <martin@gnome.org>
18932
18933         * reflection.h (MonoReflectionSigHelper): New type.
18934
18935         * reflection.c (mono_reflection_sighelper_get_signature_local),
18936         (mono_reflection_sighelper_get_signature_local): New functions.
18937
18938         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
18939         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
18940         interncalls.
18941
18942 2002-03-23  Martin Baulig  <martin@gnome.org>
18943
18944         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
18945         is_writeable is set.
18946         (mono_raw_buffer_update): New function to write the modified map
18947         back to disk.
18948
18949         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
18950
18951         * debug-symfile.c (mono_debug_update_symbol_file): Call
18952         mono_raw_buffer_update() when done writing.
18953
18954 2002-03-23  Martin Baulig  <martin@gnome.org>
18955
18956         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
18957
18958         * debug-symfile.c: Added support for arguments and local variables.
18959
18960 2002-03-23  Dick Porter  <dick@ximian.com>
18961
18962         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
18963         protected by ifdefs, hence breaking the w32 build.
18964
18965 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18966
18967         * object.c: implement is_interned() the right way.
18968
18969 2002-03-21  Martin Baulig  <martin@gnome.org>
18970
18971         * debug-symfile.[ch]: New files to handle debugging information
18972         files. There's also support to dynamically update these symbol
18973         files to include machine dependent information.
18974
18975 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
18976
18977         * threads.c (mono_thread_create): new function to create thread
18978         from C
18979
18980 2002-03-20  Martin Baulig  <martin@gnome.org>
18981
18982         * icall.c (ves_icall_InternalInvoke): Create a new object if the
18983         method is a constructor.
18984         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
18985         points to ves_icall_InternalInvoke().
18986
18987 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
18988
18989         * file-io.c: Flush shouldn't throw exceptions.
18990
18991 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
18992
18993         * file-io.c: FileStream flush support; FileSetLength now
18994         restores file pointer.
18995
18996 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18997
18998         * class.c: set image for pointer classes.
18999
19000 2002/03/19  Nick Drochak <ndrochak@gol.com>
19001
19002         * sysmath.c: Forgot one.
19003
19004 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19005
19006         * sysmath.c: Avoid redefining existing names.
19007
19008 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19009
19010         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19011         handled by runtime as icall rather than dllimport from libm.so
19012         * file-io.c, file-io.h: fixed handle argument type.
19013
19014 2002-03-18  Dick Porter  <dick@ximian.com>
19015
19016         * reflection.c (mono_image_get_type_info): rename interface to
19017         iface, because of "#define interface struct" on windows.
19018
19019 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19020
19021         * class.c, class.h: rename and export mono_ptr_class_get().
19022         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19023         * reflection.c, reflection.h, icall.c: better/saner type name
19024         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19025         method signatures.
19026
19027 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19028
19029         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19030
19031         * icall.c (ves_icall_InternalInvoke): impl.
19032
19033 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19034
19035         * reflection.c: output the interface map table, too.
19036
19037 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19038
19039         * class.c (class_compute_field_layout): separate computation of 
19040         static field layout
19041
19042 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19043
19044         * icall.c: added System.Buffer support.
19045         * file-io.c: moved file icalls from PAL to FileStream.
19046
19047 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19048
19049         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19050
19051 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19052
19053         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19054
19055 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19056
19057         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19058
19059 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19060
19061         * debug-helpers.{c,h}: moved here from monograph some useful functions
19062         to locate a method by name/signature in a class or image. Included
19063         also a small and flexible IL disassembler.
19064
19065 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19066
19067         * reflection.c: fixup tokens in methods with small header size, too.
19068
19069 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19070
19071         * object.c (mono_string_to_utf8): remove assert(!error), instead
19072         print a warning. 
19073
19074 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19075
19076         * icall.c: update to the new mono_Array_class_get interface.
19077
19078 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19079
19080         * appdomain.c, object.c: Boehm-GC enable.
19081         * icall.c: make get_data_chunk() support split data requests.
19082         Ensure a class is initialized in more cases. Return only the first
19083         property found in GetProperties() or the compiler gets confused. 
19084         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19085         * reflection.h, reflection.c: add fixup mechanism for field and method
19086         tokens. Initialize assembly->typeref in a single place. Output
19087         properties after events. Support custom attributes for events, too.
19088         Typo fix for paramter custom attrs.
19089
19090 2002-03-07  Martin Baulig  <martin@gnome.org>
19091
19092         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19093
19094 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19095
19096         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19097
19098 2002-03-06  Martin Baulig  <martin@gnome.org>
19099
19100         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19101         non-zero lower bounds. See testcases #F10-#F13.
19102
19103 2002-03-05  Martin Baulig  <martin@gnome.org>
19104
19105         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19106
19107         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19108         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19109         here.
19110         (ves_icall_System_Array_SetValue): Likewise.
19111         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19112         as argument and does the actual work. This function is used when copying a
19113         multi-dimensional array.
19114         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19115         now do all the widening conversions of value types.
19116         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19117
19118 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19119
19120         * class.c: remove some magic numbers and use the smbolic names,
19121         instead. Added init_events() to load event info at class init time.
19122         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19123         and mono_metadata_methods_from_event().
19124         * reflection.h, reflection.c: added support for writing out the evnets
19125         related information.
19126
19127 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19128
19129         * reflection.h, icall.c: use a different method (GetInterfaces)
19130         to gather interface info and add isbyref, isprimitive and
19131         ispointer to the ves_icall_get_type_info() return value.
19132
19133 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19134
19135         * class.h: stared adding support for events.
19136         * icall.c: split find_members implementation. Added debug icall to get
19137         the address of an object.
19138         * reflection.c: handle TypeBuilders in mono_type_get_object().
19139
19140 2002-03-01  Martin Baulig  <martin@gnome.org>
19141
19142         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19143         ArgumentOutOfRangeException(), not an ArgumentException().
19144         (ves_icall_System_Array_GetLowerBound): Likewise.
19145         (ves_icall_System_Array_GetValue): Improved argument checking.
19146         (ves_icall_System_Array_SetValue): Improved argument checking.
19147
19148 2002-03-01  Martin Baulig  <martin@gnome.org>
19149
19150         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19151         called with invalid arguments rather than just dying with g_assert().
19152         (ves_icall_System_Array_SetValue): Likewise.
19153         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19154         raise a NotImplementedException instead.
19155         (ves_icall_System_Array_GetLength): Added argument checking.
19156         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19157
19158 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19159
19160         * object.h (mono_assert): new macros mono_assert and
19161         mono_assert_not_reached
19162
19163 2002-02-28  Martin Baulig  <martin@gnome.org>
19164
19165         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19166         and "System::String::IsInterned" to "System::String::_IsInterned".
19167
19168 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19169
19170         * icall.c: remove hacks for typebuilder. Added icall to create a
19171         modified type from a tybebuilder.
19172         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19173         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19174         to create a backing MonoClass for a TypeBuilder.
19175
19176 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19177
19178         * class.c, class.h: more refactoring of class init.
19179         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19180
19181 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19182
19183         * marshal.c, marshal.h: start of marshaling interface.
19184
19185 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19186
19187         * icall.c: fix order in assembly qualified name icall.
19188
19189 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19190
19191         * class.c: do not free str, since we store it in the hash table.
19192         * reflection.h: add label field to MonoILExceptionInfo.
19193         * reflection.c: handle references to more than one assembly. Handle
19194         case when there isn't a module created in the assembly.
19195
19196 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19197
19198         * class.c: Fix typo. Start refactoring of class init code.
19199
19200 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19201
19202         * appdomain.c: exit with 1 on error.
19203         * class.c: we already have the name in MonoClassField.
19204         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19205         MonoStreamHeader instead of an offset of image->raw_metadata.
19206
19207 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19208
19209         * appdomain.c (mono_init): Be even more descriptive about the error.
19210
19211 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19212
19213         * appdomain.c: give the user an informative message when corlib can't
19214         be loaded.
19215
19216 2002-02-26  Martin Baulig  <martin@gnome.org>
19217
19218         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19219         New icall to get the time zone data.
19220
19221 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19222
19223         * reflection.c: set virtual and raw size of section correctly.
19224         * threads.c: transfer domain information to newly created threads.
19225
19226 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19227
19228         * class.c: when instancing a class in a domain, load the default
19229         vaules for static fields from the constant table. Fix System.Enum to
19230         not be an enum.
19231         * icall.c: implement Object::GetType() internalcall. Implemented
19232         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19233         Fixed checking of binding flags in find_members().
19234         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19235         * reflection.c: handle enumerations when writing to the constant
19236         table. Use a different object cache for types.
19237
19238
19239 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19240
19241         * object.c (mono_object_isinst): fix for arrays
19242
19243         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19244
19245 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19246
19247         * object.c: don't use mprotect ()  and fix intern pool hash table
19248         lookup for big endian systems.
19249
19250 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19251
19252         * icall.c: change type_is_subtype_of () signature.
19253
19254 2002-02-21  Mark Crichton  <crichton@gimp.org>
19255
19256         * rand.c, rand.h: Added random number generator for
19257         System.Security.Cryptography classes.
19258
19259         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19260
19261         * icall.c: Added System.Security.Cryptography calls.
19262
19263 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19264
19265         * class.c, icall.c, metadata.c: better support for pointer types.
19266         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19267         * reflection.c: Add support for getting custom attrs for properties
19268         and simplify some code.
19269
19270 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19271
19272         * icall.c: change getToken () and add custom attribute GetBlob()helper
19273         method.
19274         * reflection.h: add custom attrs array to the reflection builder structures.
19275         * reflection.c: encode and emit custom attributes for all the relevant
19276         reflection objects. Cache fieldref and methodref tokens. Change
19277         mono_image_create_token() interface to take a MonoDynamicAssembly.
19278         More complete custom attributes decoder. Load custom attributes for
19279         Assembly, Field, Method and Constructor objects, too. Make the
19280         returned array an Attribute[] one, not object[]. Added
19281         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19282         custom attribute constructor.
19283
19284 2002-02-20  Dick Porter  <dick@ximian.com>
19285
19286         * icall.c:
19287         * rawbuffer.c:
19288         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19289         problem code out for now).
19290
19291 2002-02-19  Radek Doulik  <rodo@ximian.com>
19292
19293         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19294
19295 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19296
19297         * icall.c: register the GetCustomAttributes method.
19298         * object.c, object.h: add mono_string_new_len ().
19299         * reflection.h, reflection.c: added mono_runtime_invoke(),
19300         mono_install_runtime_invoke(). Added
19301         mono_reflection_get_custom_attrs () to load custom attributes and
19302         create the attribute objects.
19303
19304 2002-02-19  Dick Porter  <dick@ximian.com>
19305         * threads-dummy-types.c:
19306         * threads-dummy-types.h:
19307         * threads-dummy.c:
19308         * threads-dummy.h:
19309         * threads-pthread-types.c:
19310         * threads-pthread-types.h:
19311         * threads-pthread.c:
19312         * threads-pthread.h:  Deleted obsolete files
19313
19314 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19315
19316         * class.c (mono_class_vtable): runtime init the class when we
19317         allocate static class data.
19318
19319         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19320
19321         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19322         and String - but we will need generic marshalling support in the
19323         future. 
19324         (mono_init): set the domain name in a ms compatible way
19325
19326         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19327         String[].
19328
19329 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19330
19331         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19332         for sizes
19333
19334         * appdomain.c (mono_domain_unload): impl.
19335
19336 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19337
19338         * appdomain.c, object.c: fix intern pool implementation.
19339         * class.c: fix alignment code.
19340
19341 2002-02-16  Radek Doulik  <rodo@ximian.com>
19342
19343         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19344         and s2 > s1, just copy lower bytes to be compatible with little
19345         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19346         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19347
19348         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19349         force big_endian to be 1 for big endian machines 
19350         (ves_icall_iconv_new_decoder): ditto
19351
19352 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19353
19354         * socket-io.c (convert_sockopt_level_and_name): If the system
19355         doesn't define SOL_IP or SOL_TCP, get them by hand using
19356         getprotobyname() and caching the values (because this could be a
19357         slow operation).
19358         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19359         Use the appropriate struct when the system does support it. Ie,
19360         not all systems have struct ip_mreqn so use struct ip_mreq when
19361         appropriate.
19362
19363 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19364
19365         * reflection.c: handle finally clauses.
19366
19367 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19368
19369         * socket-io.c: use g_snprintf() instead of snprintf.
19370
19371 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19372
19373         * reflection.c (mono_param_get_objects): Cast second argument to
19374         mono_method_get_param_names to a const char** to silence the
19375         compiler warning.
19376
19377         * appdomain.c (mono_domain_assembly_open): Put parens around the
19378         truth statement in the for-loop.
19379
19380         * unicode.c (iconv_convert): Got rid of a compiler warning about
19381         int i being unused when the system has a new iconv.
19382         (iconv_get_length): Same.
19383
19384         * image.c (load_class_names): Cast the second argument to
19385         g_hash_table_insert() to char* to hush compiler warnings about the
19386         arg being a const.
19387         (mono_image_open): Same here.
19388
19389         * socket-io.c: Don't conditionally include sys/filio.h or
19390         sys/sockio.h here anymore since we now get them from
19391         io-layer/io-layer.h
19392         (inet_pton): If the system doesn't support inet_aton, implement
19393         using inet_addr and also #define INADDR_NONE if it isn't defined
19394         by the system.
19395
19396 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19397
19398         * metadata.c, metadata.h: added function to get packing and size info
19399         of a typedef.
19400         * reflection.h, reflection.c: handle field RVA data. Save info about
19401         the table layout if needed. Assign typedef indexes to all the types
19402         before dumping the info about them to avoid forward reference problems.
19403
19404 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19405
19406         * socket-io.c (convert_sockopt_level_and_name): ifdef
19407         SO_ACCEPTCONN because it is not defined on my system (old debian)
19408
19409 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19410
19411         * opcode.c: use stddef.h to get NULL.
19412
19413 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19414
19415         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19416         for FIONBIO, FIONREAD and SIOCATMARK.
19417         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19418         define INADDR_NONE and besides, inet_addr() is deprecated and
19419         should not be used. Use inet_pton() instead - it also has the
19420         added bonus that it can easily handle IPv6 addresses as well.
19421         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19422
19423 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19424
19425         * decimal.c: remove _MSC_VER conditional.
19426
19427 2002-02-13  Dick Porter  <dick@ximian.com>
19428
19429         * socket-io.c: 
19430         * icall.c: Internal calls for Blocking, Select, Shutdown,
19431         GetSocketOption and SetSocketOption
19432
19433 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19434
19435         * assembly.cs: better resolver: use it instead of some kludgy
19436         code.
19437
19438 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19439
19440         * reflection.c: the best way to speed-up the compiler is to avoid
19441         infinite loops.
19442
19443 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19444
19445         * class.c (mono_class_vtable): changed the object layout
19446         (obj->vtable->class). 
19447         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19448
19449 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19450
19451         * assembly.c: look for assemblies in the assembly dir, too.
19452
19453 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19454
19455         * class.c: fix thinko in mono_class_from_type().
19456
19457 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19458
19459         * exception.h, exception.c: added TypeLoadException.
19460         * object.h, object.c: added mono_array_clone ().
19461         * icall.c: handle throwOnError in AssemblyGetType().
19462         Added Array.Clone().
19463         * opcode.h, opcode.c: use a single value for the opcode val.
19464         Compile fix for non-gcc compilers.
19465
19466 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19467
19468         * opcodes.c, opcodes.h: export interesting info about opcodes.
19469
19470 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19471
19472         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19473         icalls. 
19474
19475         * class.c (class_compute_field_layout): set element_class for enums
19476         (mono_class_create_from_typedef): set element_class for normal classes
19477
19478         * icall.c (ves_icall_System_Enum_get_value): impl.
19479
19480         * class.c (mono_class_create_from_typedef): do not set valuetype
19481         flag for System.ValueType and System.Enum
19482
19483 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19484
19485         * unicode.c (iconv_convert): fix big endian problem.
19486
19487 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * class.c: add asserts if we are ever going to scribble over memory.
19490         * socket-io.c: not all systems have AF_IRDA defined.
19491
19492 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19493
19494         * class.c (class_compute_field_layout): do not consider static
19495         fields to compute alignment
19496
19497 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19498
19499         * appdomain.c (mono_appdomain_get): impl.
19500         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19501
19502 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19503
19504         * icall.c: ignore "file://" prefix when loading an assembly.
19505
19506 2002-01-23  Dick Porter  <dick@ximian.com>
19507
19508         * socket-io.c:
19509         * icall.c:
19510         * Makefile.am: Added socket support
19511
19512 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19513
19514         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19515         code back.  This should return the assemblies that are loaded by
19516         the runtime on behalf of an application domain. 
19517
19518         The current implementation is still broken, it just returns every
19519         assembly loaded, but until we get real applications domain this
19520         will do.
19521
19522 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19523
19524         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19525         AppDomain object.
19526
19527 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19528
19529         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19530         the mono_class_from_name lookup.
19531         (ves_icall_get_parameter_info): ditto.
19532         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19533         method.
19534         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19535
19536 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19537
19538         * class.c: load also nested classes on class init.
19539         System.ValueType instance methods gets passed boxed
19540         values, unless methods in derived classed that get a pointer to the
19541         data.
19542         * icall.c: use better name parsing code in GetType().
19543         * image.c, image.h: add mono_image_loaded ().
19544         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19545         * reflection.c, reflection.h: added mono_reflection_parse_type().
19546
19547 2002-01-22  Veronica De Santis <veron78@interfree.it>
19548
19549         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19550         * threads.c : Added the implementation of internal calls for events
19551         * threads.h : Added prototypes of internal calls for events
19552         
19553 2002-01-21  Radek Doulik  <rodo@ximian.com>
19554
19555         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19556
19557 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19558
19559         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19560         (mono_class_value_size): use min_align
19561
19562 2002-01-20  Dick Porter  <dick@ximian.com>
19563
19564         * threads.h:
19565         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19566         so it compiles on w32.
19567
19568 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19569
19570         * metadata.c (mono_type_stack_size): impl.
19571
19572         * class.c (mono_class_get_field): impl. memberref token
19573
19574 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19575
19576         * icall.h : Added the internal calls mapping for CreateMutex_internal
19577                     and ReleaseMutex_internal.
19578         * threads.h : Added the prototype of mutexes internal calls.
19579         * threads.c : Added the implementations of mutexes internal calls.
19580
19581 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19582
19583         * metaparse.h: removed unused file.
19584         * reflection.c, reflection.h: added stream_data_align () function 
19585         to align data in streams and keep stream aligned. Add support for
19586         exception support in method headers.
19587
19588 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19589
19590         * unicode.c: make iconv_convert () return the number of bytess written
19591         in the output buffer.
19592
19593 2002-01-15  Dick Porter  <dick@ximian.com>
19594         * threads.c: Make the runtime's idea of infinite timeouts coincide
19595         with the class library's
19596
19597         Fix a particularly egregious bug in mono_thread_cleanup(). That
19598         code was so utterly bogus it must have been written on a Monday.
19599
19600 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19601
19602         * reflection.h: add subtypes field to TypeBuilder.
19603         * reflection.c: encode constants for literal fields.
19604         Handle subtypes. Fix user string token (and add a zero byte)
19605         at the end.
19606         
19607 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19608
19609         * class.c (mono_class_init): bug fix: assign slot numbers for
19610         abstract methods.
19611
19612 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19613
19614         * reflection.c: don't try to output a code RVA for abstract methods.
19615         Small fixes for method header format. Output parameter info to the
19616         ParamDef table. Save method overriding info to MethodImpl table.
19617         Fix property support. Allow typedef.extends to be a type in the
19618         building assembly.
19619         * verify.c: fix off-by-one error.
19620
19621 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19622
19623         * class.c: fix mono_class_from_mono_type () for szarray types.
19624         Remove unused cache check in mono_class_from_type_spec().
19625         * icall.c: *type_from_name () functions handle simple arrays and byref.
19626         * reflection.c: handle byref and szarray types. Handle methods without
19627         body (gets P/Invoke compilation working). Handle types and fields in
19628         get_token ().
19629         * reflection.h: add rank to MonoTypeInfo.
19630
19631 2002-01-10  Dick Porter  <dick@ximian.com>
19632
19633         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19634         internal calls
19635
19636 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19637
19638         * icall.c: initialize class in type_from_handle ().
19639         Loop also in parent classes for get_method ().
19640         * reflection.c: properly encode class and valuetype types.
19641         Start on encoding TypeBuilder types. Handle fieldrefs.
19642         Use correct length when registering a user string.
19643         Handle ConstructorBuilder and MonoMethod in get_token ().
19644         Make mono_type_get_object () aware of cached types.
19645         * object.c: back out change to mono_string_new ().
19646
19647 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19648         * object.c: mono_string_new should return a NULL when the string 
19649         passed in is NULL -- not try to deference it.
19650         
19651 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19652
19653         * icall.c: hack to make IsSubType work for TypeBuilders.
19654         * reflection.c: emit constructors before methods.
19655         Retrieve param names in mono_param_get_objects().
19656
19657 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19658
19659         * Makefile.am: fix list of headers and sources so automake 1.5
19660         doesn't complain. Removed \# at end of list.
19661
19662 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19663
19664         * reflection.c: get token for a method ref. Set return type of
19665         constructor to void.
19666         * loader.c: debug message.
19667         * class.c: typo fix.
19668
19669 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19670
19671         * icall.c: fix array init with rank > 1. FindMembers
19672         loops in parent class as well.
19673         * image.c: do not insert nested types in name cache.
19674         * reflection.c: warning fix.
19675         * reflection.h: add override method (for interface impl).
19676
19677 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19678
19679         * metadata.c: fix customattr decoding.
19680
19681 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19682
19683         * rawbuffer.cs: Added native Win32 implementation, avoids using
19684         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19685
19686 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19687
19688         * class.c: make the low-level routines handle the cache.
19689
19690 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19691
19692         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19693
19694 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19695
19696         * class.c: fix mono_array_element_size() for objects.
19697         * class.h, class.c: add properties to MonoClass and load them
19698         at init time.
19699         * icall.c: check with isinst() when assigning a value to an array
19700         instead of requiring the classes to match exactly.
19701         Implemented icall for System.Type::GetType().
19702         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19703         enums. Handle bindingflags when looking for methods and fields.
19704         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19705         and mono_metadata_methods_from_property().
19706         * reflection.h, reflection.c: added structures for propreties,
19707         parameters and enums. Implemented mono_property_get_object() and
19708         mono_param_get_objects().
19709
19710 2001-12-18  Dick Porter  <dick@ximian.com>
19711
19712         * file-io.c: Use mono_string_to_utf16() instead of
19713         mono_string_chars()
19714
19715         * object.c: Added mono_string_to_utf16(), which copies the non
19716         NULL-terminated MonoString into a new double-null-terminated
19717         buffer.
19718
19719 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19720
19721         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19722
19723 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19724
19725         * file-io.c: raise exceptions if handle is invalid.
19726
19727 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19728
19729         * assembly.c: yet another check for mscorlib.
19730         * class.c, class.h: load nesting info for classes.
19731         * icall.c: many new functions to support the Reflection classes.
19732         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19733         * reflection.h, reflection.c: mono_image_create_token(),
19734         mono_assembly_get_object(), mono_type_get_object(),
19735         mono_method_get_object(), mono_field_get_object(): methods to return
19736         objects that parallel the C representation of assemblies, types,
19737         methods, fields.
19738
19739 2001-12-11  Dick Porter  <dick@ximian.com>
19740
19741         * icall.c:
19742         * file-io.c: Internal calls for file IO.
19743
19744 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19745
19746         * tabledefs.h: missing FileAttributes.
19747         * verify.h, verify.c: use is_valid_string () to simplify and check for
19748         valid strings more correctly. Fix warnings and speeling.
19749         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19750         Check code: branches, maxstack, method calls.
19751
19752 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
19753
19754         * object.c (mono_object_allocate): removed static, so that the jit
19755         can allocate value types.
19756
19757         * icall.c (ves_icall_System_DateTime_GetNow): impl.
19758
19759 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19760
19761         * class.c: init enum types right away and register the
19762         token->MonoClass map in mono_class_create_from_typedef ().
19763         * verify.h, verify.c: first cut of the verifier.
19764         * pedump.c: add --verify switch to verify metadata tables.
19765         * tabledefs.h: add some missing enums.
19766
19767 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
19768
19769         * class.c (mono_install_runtime_class_init): impl.
19770         (mono_class_init): renamed mono_class_metadata_init to
19771         mono_class_init, also removed the metadata_inited flag
19772
19773         * object.c (mono_object_isinst): use faster algorithm
19774
19775 2001-11-30  Radek Doulik  <rodo@ximian.com>
19776
19777         * mono-endian.h: reverted last change
19778         added function prototypes
19779
19780         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
19781         add mono-endian.c back
19782
19783         * mono-endian.c: returned back, as Paolo pointed out, it's needed
19784         for unaligned access, I've mistaked it with endianess. I am
19785         sorry.
19786         (mono_read16): fix reverted endianess
19787         (mono_read64): ditto
19788         (mono_read32): ditto
19789
19790 2001-11-30  Dick Porter  <dick@ximian.com>
19791
19792         * exception.c: Implement mono_exception_from_name()
19793
19794 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19795
19796         * metadata.h, metadata.c: remove params_size and locals_size and their
19797         calculation from the metadata code: they are only usefult to the
19798         interp.
19799
19800 2001-11-29  Radek Doulik  <rodo@ximian.com>
19801
19802         * object.c (mono_ldstr): swap bytes here, it's probably not the
19803         best place, but works for me now, I'll redo it once I know mono
19804         better, also note that I add PROT_WRITE and don't reset back, also
19805         note that it's only affects big endians, so x86 should be OK
19806
19807         * mono-endian.h (read16): use just glib macros for both endians
19808
19809         * mono-endian.c: removed as glib macros are used in in
19810         mono-endian.h so we don't need to care about endianess for read
19811         macros as glib does that for us already
19812
19813 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
19814
19815         * class.h, class.h: take minimum alignment into consideration so
19816         that the fields of a class remain aligned also when in an array.
19817
19818 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19819
19820         * loader.h, loader.c: add mono_method_get_param_names().
19821         * class.c: 0-init class fields.
19822
19823 2001-11-26  Dick Porter  <dick@ximian.com>
19824
19825         * icall.c:
19826         * threads-types.h:
19827         * threads.c: New file that handles System.Threading on all platforms
19828
19829         * object.c: 
19830         * object.h: Remove the synchronisation struct from MonoObject,
19831         replace it with a pointer that gets initialised on demand
19832
19833         * Makefile.am: Replace all the system-specific threading code with
19834         a single file that uses the new wrapper library
19835
19836 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
19837
19838         * class.c, class.h: add mono_install_trampoline() so that the runtime
19839         can register a function to create a trampoline: removes the ugly
19840         requirement that a runtime needed to export arch_create_jit_trampoline.
19841         * object.h, object.c: added mono_install_handler() so that the runtime
19842         can install an handler for exceptions generated in C code (with
19843         mono_raise_exception()). Added C struct for System.Delegate.
19844         * pedump.c: removed arch_create_jit_trampoline.
19845         * reflection.c: some cleanups to allow registering user strings and
19846         later getting a token for methodrefs and fieldrefs before the assembly
19847         is built.
19848         * row-indexes.h: updates and fixes from the new ECMA specs.
19849
19850 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
19851
19852         * class.h, class.c: add enum_basetype field to MonoClass.
19853         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
19854         to get index in the constant table reated to a field, param or
19855         property.
19856         * reflection.h, reflection.c: handle constructors. Set public-key and
19857         version number of the built assembly to 0.
19858         * row-indexes.h: update from new ECMA spec.
19859
19860 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19861
19862         * class.h, class.c: add a max_interface_id to MonoClass.
19863         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
19864         since it's used to do that. Added mono_type_type_from_obj().
19865         Make GetType() return NULL instead of segfaulting if the type was not
19866         found. Handle simple arrays in assQualifiedName.
19867         * object.h: add a struct to represent an Exception.
19868         * reflection.c: output call convention in method signature.
19869         Add code to support P/Invoke methods and fixed offsets for fields.
19870
19871 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
19872
19873         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
19874         the value.
19875         * icall.c: use mono_array_addr instead of array->vector: fixes the
19876         reflection image writing.
19877         * reflection.c: init call convention byte to 0 in method signature.
19878         Encode the property signature. Don't output property-related methods
19879         twice. Really process the properties for a type (don't cast a field to
19880         a property, my mom always told me that).
19881         Fix 64 bit issues in pointer alignment in a different and more
19882         readable way.
19883
19884 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
19885
19886         * loader.h: Removed type class from MonoDefaults, added monotype
19887
19888         * loader.c: Loaded MonoType, removed loading of Type
19889
19890         * icall.c (my_mono_new_object): Now returns a System.MonoType,
19891         and fills in System.Type._impl with a RuntimeTypeHandle rather
19892         than the actual MonoClass *
19893
19894         (ves_icall_type_from_handle): change from type_class to
19895         monotype_class
19896
19897         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
19898         implemented
19899
19900         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
19901         implemented
19902
19903         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
19904
19905         (ves_icall_System_Reflection_Assembly_GetType): implemented
19906
19907         (ves_icall_System_MonoType_assQualifiedName): implemented
19908
19909         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
19910
19911 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
19912
19913         * assembly.c (mono_assembly_open): Implement a cache for the
19914         assemblies. 
19915
19916         (mono_assembly_close): only destroy the assembly when the last
19917         reference is gone.
19918         
19919 2001-11-09  Dick Porter  <dick@ximian.com>
19920
19921         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
19922
19923 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
19924
19925         * class.c (mono_class_metadata_init): bug fix: compute the right slot
19926
19927 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19928
19929         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
19930         from Martin Weindel.
19931         * object.h: add mono_string_chars ().
19932
19933 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
19934
19935         * reflection.c (build_compressed_metadata): Eliminates warnings
19936         and uses 64-bit clean code.
19937
19938         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
19939         (mono_type_equal): Change signature to eliminate warnings.
19940
19941 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19942
19943         * icall.c, loader.c: remove the internalcall array constructors.
19944         Changes to match the new MonoArray structure.
19945         * object.h, object.c: an array object doesn't allocate an extra
19946         vector. Add mono_array_new_full () to create jagged arrays easily.
19947
19948 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19949
19950         * metadata.h, metadata.c: add mono_metadata_field_info () to
19951         retreive all the info about a field from vairous tables.
19952         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
19953         * class.h, class.c: augment MonoClassField with more info.
19954         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
19955         policy and load a field's RVA if needed.
19956
19957 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
19958
19959         * class.c (mono_class_metadata_init): create a trampoline for all
19960         virtual functions instead of actually compiling them.
19961
19962 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
19963
19964         * class.h, class.c: include name in MonoClassField.
19965         * class.c: fix fundamental type of System.Object and System.String.
19966         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
19967         tokens in ldtoken.
19968         * icall.c: remove internalcalls for the Reflection stuff that is now
19969         done in C# code.
19970         * loader.c: mono_field_from_memberref () implementation.
19971         * mono-endian.c: thinko (s/struct/union/g).
19972         * object.c, object.h: make the mono_string_* prototypes actually use
19973         MonoString instead of MonoObject.
19974         * reflection.c, reflection.h: updates for changes in the reflection
19975         code in corlib: we use C structures that map to the actual C# classes.
19976         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
19977         fat method header if needed and use the info from the ILGenerator for
19978         methods. Handle fields in types. Misc fixes.
19979
19980 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
19981
19982         * class.c (mono_class_metadata_init): bug fix: always allocate
19983         space for static class data
19984
19985 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
19986
19987         * class.c (mono_compute_relative_numbering): use relative
19988         numbering to support fast runtime type checks.
19989
19990 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
19991
19992         * class.c (mono_class_create_from_typeref): added debugging output
19993         to print class name when MonoDummy is returned instead of real class
19994
19995 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
19996
19997         * class.c (mono_class_metadata_init): interface offset table now
19998         contains pointers into the vtable - this is more efficient for the jit
19999
20000 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20001
20002         * class.c (mono_class_metadata_init): use a temporary vtable (the
20003         old algorithm only worked for the interpreter, but not for the jit)
20004
20005 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20006
20007         * loader.c (method_from_memberref): use mono_class_get to get the
20008         class of an array instead of using System.Array directly.
20009         (mono_get_method): also add MEMBERREF methods to the method cache
20010         which usefull for arrays.
20011
20012 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20013
20014         * pedump.c (arch_compile_method): added to compute vtable entry
20015
20016         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20017         number of interfaces.
20018         
20019         * class.h: merged MonoArrayClass into MonoClass
20020
20021         * class.c (mono_class_create_from_typedef): compute the vtable size and
20022         allocate space to include the vtable inside MonoClass
20023         (mono_class_metadata_init): initialize the vtable
20024
20025 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20026
20027         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20028         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20029         * image.c: endian fixes by Laurent Rioux.
20030         * object.h, object.c: rename MonoStringObject to MonoString and
20031         MonoArrayObject to MonoArray. Change some function names to conform to
20032         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20033         guint16* as first argument, so don't use char*.
20034         Provide macros to do the interesting things on arrays in a portable way.
20035         * threads-pthread.c: updates for the API changes and #include <sched.h>
20036         (required for sched_yield()).
20037         * icall.c: updates for the API changes above.
20038         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20039         platforms that need them.
20040
20041 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20042
20043         * class.c: set the correct type for all the fundamental
20044         type when loading the class.
20045
20046 2001-10-05  Dick Porter  <dick@ximian.com>
20047
20048         * threads-pthread.c (pthread_mutex_timedlock): Simple
20049         compatibility version for C libraries that lack this call.
20050
20051 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20052
20053         * class.c: MonoTypes stored in MonoClass are stored as
20054         fundamental MonoTypes when the class represents a
20055         fundamental type (System.Int32, ...).
20056         The TypeHandle return by ldtoken is a MonoType*.
20057         * icall.c: ves_icall_get_data_chunk () write out all the
20058         PE/COFF stuff. Implement ves_icall_define_method (),
20059         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20060         * image.c: properly skip unknown streams.
20061         * loader.h, loader.c: add type_class to mono_defaults.
20062         * metadata.c, metadata.h: export compute_size () as
20063         mono_metadata_compute_size () with a better interface.
20064         Typo and C&P fixes.
20065         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20066         * reflection.c, reflection.h: many cleanups, fixes, output method
20067         signatures and headers, typedef and typeref info, compress the metadata
20068         tables, output all the heap streams, cli header etc.
20069         * row-indexes.h: typo fixes.
20070
20071 2001-10-04  Dick Porter  <dick@ximian.com>
20072
20073         * object.h: Add a synchronisation mutex struct to MonoObject
20074
20075         * object.c (mono_new_object): Initialise the object
20076         synchronisation mutexes
20077
20078         * icall.c: System.Threading.Monitor internal calls
20079         
20080         * threads-pthread.h:
20081         * threads-pthread.c: System.Threading.Monitor internal calls
20082
20083         * threads-types.h: New file, includes the system-specific thread
20084         structures
20085         
20086         * threads-pthread-types.h:
20087         * threads-pthread-types.c: New files, handle pthread-specific
20088         synchronisation types
20089
20090         * threads-dummy-types.h: 
20091         * threads-dummy-types.c: New files of dummy support for
20092         thread-specific types
20093
20094         * metadata.c:
20095         * image.c:
20096         * pedump.c: include mono-endian.h not endian.h
20097         
20098         * Makefile.am: More threads files.
20099         Name mono-endian.h not endian.h
20100
20101 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20102
20103         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20104         stuff and implement a few more bits.
20105         * icall.c: a field needs to be dereferenced twice. Do not use the same
20106         name for two variables in the same scope.
20107         * image.c, image.h: cleanups.
20108
20109 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20110
20111         * class.c (mono_class_metadata_init): bug fix: compute the right size
20112
20113 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20114
20115         * icall.c: implemented some of the Reflection internalcalls.
20116         * image.c, image.h: start writing out the PE/COFF image.
20117         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20118         that does the reverse than decode_blob_size ().
20119         * object.c: use mono_metadata_encode_value (). Move here
20120         temporary implementation of mono_string_to_utf8 ().
20121         * rawbuffer.c: make malloc_map static.
20122
20123 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20124
20125         * metadata.c: fix type comparison for arrays.
20126         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20127         Added a couple of new classes to monodefaults.
20128         * icall.c: added a couple of Reflection-related internalcalls.
20129         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20130         Added a byval_arg MonoType to MonoClass.
20131
20132 2001-09-28  Dick Porter  <dick@ximian.com>
20133
20134         * icall.c:
20135         * threads-pthread.h: 
20136         * threads-pthread.c: Implemented internal calls for
20137         LocalDataStoreSlot operations.  Applied mutexes around all shared
20138         data.  Reworked the thread creation and Start() operations to
20139         avoid a race condition.
20140         
20141         * threads-dummy.h:
20142         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20143
20144 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20145
20146         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20147
20148 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20149
20150         * class.c, loader.c: warn and return NULL instead of erroring out.
20151         * icall.c: added System.AppDomain::getCurDomain().
20152         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20153
20154 2001-09-25  Dick Porter  <dick@ximian.com>
20155
20156         * threads-pthread.h:
20157         * threads-pthread.c: Implemented timed thread joining and added
20158         System.Threading.Thread::Join_internal internal call
20159
20160         * icall.c: Added System.Threading.Thread::Join_internal internal call
20161
20162         * threads-dummy.h:
20163         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20164
20165 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20166
20167         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20168         mono_string_intern () to implement the semantics of the ldstr opcode
20169         and the interning of System.Strings.
20170         * icall.c: provide hooks to make String::IsIntern and String::Intern
20171         internalcalls.
20172
20173 2001-09-23  Dick Porter  <dick@ximian.com>
20174
20175         * threads-dummy.c: 
20176         * threads-dummy.h: New files of dummy threading routines
20177
20178         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20179         support code based on system specifics
20180
20181         Rename PTHREAD_LIBS to THREAD_LIBS
20182         
20183 2001-09-23  Dick Porter  <dick@ximian.com>
20184
20185         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20186         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20187         internal calls.
20188         (mono_thread_init): Set up a Thread object instance to return when
20189         the main thread calls Thread.CurrentThread
20190         (mono_thread_cleanup): Wait for all subthreads to exit
20191
20192         * icall.c: New internal calls for System.Threading.Thread::Sleep
20193         (including Schedule) and CurrentThread
20194
20195         * threads.h: New file, to insulate thread-specific stuff from the
20196         rest of the code
20197
20198 2001-09-21  Dick Porter  <dick@ximian.com>
20199
20200         * threads-pthread.h: 
20201         * threads-pthread.c: New file, for handling pthreads-style
20202         threading support.  Start() now starts a new thread and executes
20203         the ThreadStart delegate instance.
20204
20205         * icall.c: Added the internalcall for
20206         System.Threading.Thread::Start_internal
20207
20208         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20209
20210 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20211
20212         * loader.c: work around the different signatures for delegates
20213         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20214
20215 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20216
20217         * class.h, class.c: add mono_class_get_field_from_name ().
20218         * *: Fix C comments and other ANSI C issues.
20219
20220 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20221
20222         * endian.h, assembly.c: fix some endianness issues.
20223
20224 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20225
20226         * loader.h, load.c: add delegate_class to mono_defaults.
20227         Handle runtime provided methods in mono_get_method ().
20228
20229 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20230
20231         * loader.c (mono_get_method): use pinvoke for internal call
20232
20233         * icall.c: use pinvoke for internal call
20234
20235         * loader.c (method_from_memberref): set the method name
20236
20237 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20238
20239         * metadata.c: help the compiler generate better code for
20240         mono_class_from_mono_type ().
20241
20242 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20243
20244         * class.c (mono_class_metadata_init): delayed computing of the
20245         class size to mono_class_metadata_init ()
20246
20247 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20248
20249         * class.c, class.h: add an interfaces member to MonoClass.
20250         * image.c, image.h: add assembly_name field to MonoImage
20251         from the assembly table.
20252         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20253
20254 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20255
20256         * class.c: Handle Array in mono_class_from_mono_type ().
20257         * metadata.c, pedump.c: some endian fixes.
20258
20259 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20260
20261         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20262         * metadata.c: fix small problem introduced with the latest commit.
20263
20264 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20265
20266         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20267         We don't need a MonoMetadata pointer anymore to compare signatures in
20268         mono_metadata_signature_equal (), update callers.
20269         Reduced memory usage an number of allocations for MonoMethodHeader and
20270         MonoMethodSignature.
20271
20272 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20273
20274         * metadata.c: added compare for szarray.
20275
20276 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20277
20278         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20279         and add a couple more types to it and mono_defaults. Give an hint on
20280         classes that need implementing in our corlib and are referenced
20281         in mscorlib.
20282
20283 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20284
20285         * class.h, class.c: keep track if a class is also an Enum.
20286         * loader.c: Implement a couple more types for use in libffi
20287         marshalling. Gives better diagnostics when failing to dlopen
20288         a library. Set method->klass for P/Invoke methods, too.
20289
20290 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20291
20292         * class.c, class.h: add a MonoType this_arg to MonoClass that
20293         represents a pointer to an object of the class' type that
20294         can be used by the interpreter and later the type cache.
20295         Add best guess alignment info for valuetype objects.
20296
20297 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20298
20299         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20300         into MonoType: one less level of indirection and allocation and
20301         simplifies quite a bit of code. Added cache for MonoTypes that are
20302         used frequently, so that we don't need to allocate them all the time.
20303
20304 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20305
20306         * class.c (mono_class_create_from_typedef): System.Enum is also a
20307         value type, although it does not derive from System.ValueType
20308         (maybe a bug in the ms compiler?)
20309
20310         * metadata.c (mono_type_size): return the right size for value types
20311
20312         * loader.c (mono_get_method): only initialize method header if not abstract
20313
20314         * class.c (mono_class_from_mono_type): use mono_default values. 
20315
20316 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20317
20318         * *: use MonoClass pointers instead of <type_tokens>
20319         
20320         * class.h: new flag: metadata_inited.
20321
20322         * class.c (mono_class_metadata_init): impl.
20323         (mono_class_instance_size): impl.
20324         (mono_class_data_size): impl.
20325
20326 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20327
20328         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20329         MonoClass now has the name and name_space fields. 
20330         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20331         mono_get_method () takes and optional MonoClass as argument.
20332         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20333         instead that takes advantage of a map from class names to typedef
20334         tokens in MonoImage.
20335
20336 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20337
20338         * metadata.c: zero is not a valid alignment boundary.
20339         Merge MONO_TYPE_VOID in default decoding code.
20340
20341 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20342
20343         * image.h: merged MonoMetadata into MonoImage
20344
20345         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20346         identify the type of elements.
20347
20348 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20349
20350         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20351         * cil-coff.h: split MonoMSDOSHeader and add size info.
20352         * image.c: add some consistency checks.
20353         * metadata.c: fix row size computation: one programmer
20354         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20355         add explanation for the locator routine.
20356         Fix decoding of size in method header.
20357         
20358 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20359
20360         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20361         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20362         function from gnome-libs.  This uses the right path separator
20363         based on the OS, and also works around a bug in some systems where
20364         a double slash is not allowed. 
20365         (default_assembly_name_resolver): Use g_concat_dir_and_file
20366         (mono_assembly_open): ditto.
20367
20368 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20369
20370         * metadata.c (mono_metadata_signature_equal): impl.
20371
20372         * *: void is now a realy MonoType (instead of using NULL)
20373         
20374         * metadata.c (do_mono_metadata_parse_type): use
20375         mono_metadata_parse_type to parse void value.
20376
20377 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20378
20379         * metadata.c, metadata.h: in the signature and method header store
20380         only the space required for holding the loca vars and incoming arguments.
20381
20382 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20383
20384         * metadata.c (do_mono_metadata_parse_type): treat void like any
20385         other type (instead of assigning NULL);
20386
20387 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20388
20389         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20390
20391 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20392
20393         * image.c (do_mono_image_open): added a cache for arrays.
20394
20395 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20396
20397         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20398         decode a single column from a row in a metadata table and changes
20399         to take advantage of it in the typedef locator (gives a nice speed up).
20400         Store offset info for function params.
20401
20402 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20403
20404         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20405
20406 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20407
20408         * assembly.c: how could mono_assembly_close () had ever worked?
20409         * metadata.c, metadata.h: provide offset info for local vars.
20410         Implement mono_type_size () to take care of alignment as well
20411         as size (it was mono_field_type_size in cli/class.c before).
20412
20413 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20414
20415         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20416
20417         * assembly.h (CORLIB_NAME): set to corlib.dll
20418
20419         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20420
20421 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20422
20423         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20424         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20425         tokentype.h: massive namespace cleanup.
20426
20427 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20428
20429         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20430
20431 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20432
20433         * metadata.c (mono_metadata_free_type): added check for type !=
20434         NULL (void) before calling mono_metadata_free_type()
20435
20436 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20437
20438         * metadata.h, row_indexes.h: added header with enumerations to use
20439         to index in the columns from tables in metadata and to decode coded
20440         tokens: we should start using this instead of embedding magic numbers
20441         all over the code.
20442
20443 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20444
20445         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20446         Move metadata_t info from cli_image_info_t to MonoImage, where
20447         it's easily accessible. Changed all the uses accordingly.
20448         Added the method and class caches to MonoImage.
20449         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20450         and mono_metadata_decode_value () signature to be more consistent
20451         with the other parse functions (and simplify code). Taken advantage
20452         of zero-length array allocation with GCC. Removed reduntant (and
20453         wrong) MonoFieldType struct and use MonoParam instead. Changed
20454         mono_metadata_parse_field_type () to use common code for parsing.
20455         Added mono_metadata_typedef_from_field () and
20456         mono_metadata_typedef_from_method () to lookup a typedef index from a
20457         field or method token.
20458         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20459
20460 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20461
20462         * metadata.c (mono_metadata_parse_field_type): Implement. 
20463         (do_mono_metadata_parse_type): Split engine from
20464         mono_metadata_parse_type, so that we can create smaller structures
20465         for things that just have one pointer to the MonoType (look at
20466         the MonoFieldType)
20467
20468 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20469
20470         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20471         as Jan Gray found out, it is incorrect. 
20472
20473 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20474
20475         * assembly.c: Implement asssembly loading.  This loads an image
20476         and loads all the referenced assemblies.  Come to think of it, we
20477         could always do lazy loading of the assemblies. 
20478
20479         * image.c (mono_image_open): Keep loaded images in a hashtable.
20480
20481         * image.h (MonoImage): Add reference count.
20482
20483 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20484
20485         * assembly.c (mono_assembly_open): Keep track of the file name in
20486         case the assembly has no ASSEMBLY table.
20487
20488         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20489         from get.c here.
20490
20491 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20492
20493         * metadata.c, metadata.h: decode local vars in method header
20494         parse function. Change callers accordingly.
20495
20496 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20497
20498         * metadata.h, cil-coff.h: protect against multiple inclusion.
20499         Added some new structures to hold information decoded from metadata:
20500         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20501         and relevant decoding/free functions.
20502         * metadata.c: implement decoding functions. Add warning for out of bounds
20503         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20504         all the info about a method signature and invocation. Remove check on
20505         uninitialized local var in parse_mh() and fix memory leak.
20506
20507 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20508
20509         * metadata.h: More macros.
20510
20511         * tokentype.h: New file.
20512
20513 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20514
20515         * assembly.c: added a consistency check and initialize
20516         some structures with g_new0().
20517         * metadata.c: fixed a couple more bugs in table size computation
20518         and add other checks for out-of bound access to metadata.
20519
20520 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20521
20522         * metatada.c: fix bugs computing table sizes. Spew a
20523         warning when index in string heap is out of bounds.
20524
20525 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20526
20527         * metadata.h: Add a couple of macros to manipulate tokens. 
20528
20529 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20530
20531         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20532         cli_section_tables).
20533
20534 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20535
20536         * metadata.c (mono_metadata_user_string): New function, provides
20537         access to the UserString heap. 
20538
20539 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20540
20541         * metadata.c: Add inline documentation.
20542
20543 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20544
20545         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20546         files. 
20547
20548 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20549
20550         * typeattr.h: New file, TypeAttribute flags. 
20551
20552 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20553
20554         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20555         mono_assembly_ensure_section): Section loading code.
20556         (load_section_tables): Load the sections.
20557
20558         * mono/metadata/metadata.c (mono_metadata_locate_token,
20559         mono_metadata_locate): Functions to locate the information
20560         definition given a token or a table and an index.
20561         (mono_metadata_compute_table_bases): New.
20562         (compute_size): New function to compute the sizes of the various
20563         tables.
20564
20565         * mono/metadata/metadata.h: Finish listing the different index
20566         types. 
20567
20568         * mono/metadata/pedump.c: Improve to dump new information.
20569
20570 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20571
20572         * mono/metadata/metadata.c: Entered all the tables matching
20573         Beta2. 
20574
20575         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20576
20577
20578