In metadata:
[mono.git] / mono / metadata / ChangeLog
1 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2
3         Prepare to simplify GenericMethod handling.
4         * class-internals.h (mono_method_get_context): New accessor function.
5         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
6         rather than directly accessing '->context' field.
7
8         * class-internals.h (_MonoGenericParam.method): Move ...
9         (_MonoGenericContainer): ... here.  Add into union with klass field.
10         * class.c, icall.c, loader.c, metadata.c, reflection.c:
11         Update to changes.
12
13 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
14
15         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
16         the wrapper type enum and reduce relocations.
17
18 2007-01-12  Raja R Harinath  <rharinath@novell.com>
19
20         * reflection.c (inflate_mono_method): Reuse method instantiation
21         from the generic method, if available.
22
23 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
24
25         * marshal.c (emit_marshal_variant): Fix conv_arg
26         type in last commit, based on whether parameter is byref.
27         
28 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
29
30         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
31         marshalling.
32         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
33         MONO_TYPE_OBJECT back for VARIANT support.
34
35 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
36
37         * marshal.c, marshal.h, icall-def.h: Implement 
38         Marshal.ReAllocCoTaskMem.
39
40 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
41
42         * marshal.c: memory retention fixes: use the proper
43         image cache for runtime_invoke method lookups.
44
45 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
46
47         * mempool.c: added code to help debug mempool allocations.
48
49 2007-01-11  Dick Porter  <dick@ximian.com>
50
51         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
52         support (experimenting with faking it with IP_MTU_DISCOVER for
53         systems that don't have IP_DONTFRAGMENT.)
54         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
55         icall.
56
57         * icall-def.h: new System.Net.Sockets.Disconnect icall.
58
59         * socket-io.h: Add new fields to MonoSocketAsyncResult
60         corresponding to the new ones in Socket.cs.
61
62 2007-01-11  Raja R Harinath  <rharinath@novell.com>
63
64         Fix IronPython regression mentioned in #80249
65         * metadata.c (do_mono_metadata_parse_generic_class): Clear
66         'cached_context' field, since it may have been initialized as a
67         side-effect of metadata parsing.
68
69         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
70         (_MonoGenericClass.cached_class): Move here and rename from lone
71         remaining field of ...
72         (_MonoInflatedGenericClass): ... this.  Remove.
73         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
74         to changes.
75
76         Fix mcs/tests/test-128.cs regression.
77         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
78         2007-01-10 change below.
79         [MONO_TYPE_OBJECT]: Recurse into array case.
80
81 2007-01-11  Raja R Harinath  <harinath@gmail.com>
82
83         * class-internals.h (mono_get_inflated_generic_class): Remove.
84         * class.c (mono_get_inflated_generic_class): Remove.
85         (mono_generic_class_get_class): Rename from
86         mono_class_create_generic.
87         (mono_class_from_mono_type) [GENERICINST]: Use it.
88         * reflection.c, metadata.c: Update to changes.  Use
89         'mono_class_from_mono_type'.
90
91 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
92
93         * reflection.c: use passed type when encoding an array element
94         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
95
96 2007-01-09  Robert Jordan  <robertj@gmx.net>
97
98         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
99         result arguments (someDelegate.EndInvoke (unrelatedAres)).
100         Fixes bug #80392.
101
102 2007-01-09  Raja R Harinath  <rharinath@novell.com>
103
104         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
105
106         * object.c (set_value): Avoid aliasing between type->data.klass
107         and type->data.generic_class.
108
109         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
110
111 2007-01-08  Raja R Harinath  <rharinath@novell.com>
112
113         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
114         between type->data.klass and type->data.generic_class.
115
116 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
117
118         * marshal.c: In MS.NET, StringBuilder objects are not copied by
119         value in out parameters.
120
121 2007-01-08  Raja R Harinath  <rharinath@novell.com>
122
123         Simplify invariant for MonoGenericClass::klass field.
124         * class.c (mono_class_create_generic): Verify 'klass' is null.
125         * metadata.c (do_mono_metadata_parse_generic_class): Don't
126         initialize 'klass' field.
127
128 2007-01-05  Raja R Harinath  <rharinath@novell.com>
129
130         Ongoing work to avoid redundant data and simplify invariants.
131         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
132         'generic_class', and change type to a GenericInst.
133         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
134         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
135
136 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
137
138         * class.c : skip io-layer under PLATFORM_WIN32.
139
140 2007-01-03  Tor Lillqvist  <tml@novell.com>
141
142         Fix #80305: In a bundled executable, look in the bundled exe
143         assembly to determine the runtime version. Add the possibility to
144         bundle also the machine.config file.
145         
146         * assembly.c (mono_assembly_open_from_bundle): Make
147         non-static. Allow being called even if we have no bundled
148         assemblies, and return NULL right away in that case.
149
150         * domain-internals.h: Declare mono_assembly_open_from_bundle()
151         here.
152
153         * domain.c (app_config_parse): Take an assembly exe file name as
154         parameter instead of a config file name. Check for a bundled
155         config file for that assembly by calling
156         mono_config_string_for_assembly_file() (see below) before looking
157         for one in the file system.
158         (get_runtimes_from_exe): Corrsponding change to call of
159         app_config_parse().
160         (get_runtimes_from_exe): Check for bundled assembly exe file first
161         by calling mono_assembly_open_from_bundle(). If no bundled
162         assembly exe file is found, call mono_image_open() as before to
163         look it up in the file system.
164
165         * mono-config.c: Add variable bundled_machinec_onfig.
166         (mono_config_string_for_assembly_file): New function.
167         (mono_config_for_assembly): Move code snippet that looks for a
168         bundled assembly .config file into the above new function. Call
169         it.
170         (mono_register_machine_config, mono_get_machine_config): New
171         functions to set and retrieve
172
173         * assembly.h: Declare mono_register_machine_config().
174
175         * mono-config.h: Declare mono_get_machine_config() and
176         mono_config_string_for_assembly_file().
177
178         * icall.c: No declaration of environ necessary on Win32. It is
179         declared (as a macro expanding to a function call) in stdlib.h.
180         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
181         New internal mono function. Returns the value of
182         mono_get_machine_config() as a Mono string.
183
184         * icall-def.h: Add get_bundled_machine_config().
185
186 2007-01-04  Raja R Harinath  <rharinath@novell.com>
187
188         Remove redundant field
189         * class-internals.h (_MonoGenericContext.container): Remove field.
190         * loader.c (mono_method_get_signature_full): Don't parse a
191         "container" for a signature parse when the signature is inflated
192         immediately.
193         (method_from_methodspec): Likewise, for a generic_inst.
194         * class.c, metadata.c, reflection.c: Update to changes.
195
196 2006-01-04  Raja R Harinath  <rharinath@novell.com>
197
198         * class-internals.h (_MonoGenericClass): Rename 'context' field to
199         'cached_context', and change semantics -- it starts off NULL, and
200         is initialized on demand.
201         * class.c (mono_generic_class_get_context): New accessor to
202         replace 'context' field accesses.
203         (mono_class_get_context): New helper.
204         (*): Update to changes.
205         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
206
207 2007-01-03  Miguel de Icaza  <miguel@novell.com>
208
209         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
210         before the memcpy.   Fixes Marshal2 regression.
211
212 2007-01-02  Jb Evain  <jbevain@gmail.com>
213
214         * blob.h: add a MONO_TYPE_ENUM definition
215         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
216         fix the encoding of arrays of enums in custom attributes.
217
218         Fixes #79666.
219
220 2007-01-01  Miguel de Icaza  <miguel@novell.com>
221
222         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
223         string is null terminated, but only cut the string short if it
224         overflows the buffer.   
225         
226         (mono_string_to_byvalstr): Also fix this routine.   The code here
227         was not properly terminating a string (it was only terminated
228         because of the previous catch-all memset). 
229
230         I left the memset, because I do not know if applications expect
231         the runtime to clear this region. 
232
233         Fixes #79944.
234
235         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
236         Clear the error before returning to unmanaged code to prevent the
237         runtime from being confused later on (fixes  80420).
238         (ves_icall_type_from_name): Always call mono_loader_clear_error
239         after parsing a type that could have failed.
240         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
241
242         * loader.c (mono_loader_clear_error): Fix indentation.
243
244 2006-12-28  Martin Baulig  <martin@ximian.com>
245
246         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
247
248 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
249
250         * reflection.c: patch from Rolf Bjarne Kvinge to fix
251         getting a token for an EnumBuilder.
252
253 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
254
255         * reflection.c: be more careful in case resource generation
256         fails to create the data array.
257
258 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
259
260         * sgen-gc.c: write barrier for clone and fix unregister handles.
261
262 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
263
264         * reflection.c: some fixes needed in the generics code for the moving GC.
265
266 2006-12-22  Robert Jordan  <robertj@gmx.net>
267
268         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
269         account. Fixes bug #80299.
270
271 2006-12-21  Raja R Harinath  <rharinath@novell.com>
272
273         Fix WaitHandle usage in delegates.
274         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
275         * object.c (mono_wait_handle_new): Use the property set method to
276         initialize the handle.
277         (mono_wait_handle_get_handle): New.
278         * threadpool.c (mono_async_invoke): Use it.
279         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
280         Likewise.
281         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
282
283 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
284
285         * marshal.c (emit_marshal): Call emit_marshal_variant and
286         emit_marshal_com_interface when applicable.
287         (emit_marshal_variant, emit_marshal_com_interface): Add
288         methods for this case and remove if's from emit_marshal_object.
289         
290 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
291
292         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
293
294 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
295
296         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
297         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
298         and GlobalFree on Windows. Remove FIXME.
299
300 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
301
302         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
303         implementation for managed objects.
304
305 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
306
307         * object.c: implemented code to be used for checking
308         that no reference field overlaps with non-references.
309
310 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
311
312         * threadpool.c: fix queue code to be compatible with the
313         moving GC.
314
315 2006-12-18  Miguel de Icaza  <miguel@novell.com>
316
317         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
318         in structures by throwing ArgumentNullException.
319
320         (emit_marshal_safehandle): Also when they are null parameters.
321
322         (emit_marshal_safehandle): Add support for ref
323         SafeHandles parameters
324
325 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
326
327         * profiler.c: updated to use the mono-dl API instead of
328         gmodule.
329
330 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
331
332         * profiler.c: updated to use the mono-dl dynamic loading
333         API instead of gmodule.
334
335 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
336
337         * profiler.c: use readlink, older versions of glib don't have
338         g_file_read_link ().
339
340 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
341
342         * profiler.c: try to detect the path to mono if libc fails to provide
343         a useful name (bug #80286).
344
345 2006-12-16  Raja R Harinath  <rharinath@novell.com>
346
347         Fix #80242
348         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
349         instance, use the generic type definition instead.
350         (ves_icall_Type_GetNestedTypes): Likewise.
351         * class.c (mono_class_create_generic): Always set the
352         nested_classes of a generic instance to NULL, even if the generic
353         type definition has nested types.
354
355 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
356
357         * marshal.c (mono_string_from_bstr): Revert previous Windows change
358         and fix on Linux.
359         
360 2006-12-15  Miguel de Icaza  <miguel@novell.com>
361
362         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
363         my arguments were in the wrong order.   I also fixed the Windows
364         version which seems to have had the same issue.
365
366         (mono_free_bstr): On Unix, this is g_free.
367         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
368         conversions (for the tests in corlib to pass).
369
370 2006-12-14  Miguel de Icaza  <miguel@novell.com>
371
372         * marshal.c (emit_ptr_to_object_conv): For now, ignore
373         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
374         exception if a ref SafeHandle in a struct has changed).
375         
376         (emit_struct_conv): Do not perform layout checks for classes
377         derived from SafeHandle, as those are specially handled. 
378
379         (emit_object_to_ptr_conv): Add support for
380         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
381
382         (emit_marshal_safehandle): Implement conversion of return values
383         of safehandles (MARSHAL_ACTION_CONV_RESULT).
384         
385         * threads.c: WaitHandle now is compiled with two different handles
386         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
387         for 2.0.
388         
389         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
390         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
391         these routines to cope with both kinds of fields.
392
393 2006-12-12  Miguel de Icaza  <miguel@novell.com>
394
395         * metadata.c (mono_type_to_unmanaged): Handle the case where
396         type->data.klass is a SafeHandle, and in that case, return the
397         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
398         MONO_MARSHAL_CONV_SAFEHANDLE. 
399
400 2006-12-11  Miguel de Icaza  <miguel@novell.com>
401
402         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
403         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
404         calling emit_marshal_object.
405
406         (emit_marshal_safehandle): Implement marshalling of
407         SafeHandle parameters (no ref support yet).
408
409         (MarshalAction): Document the defines as I implement
410         them for SafeHandle.
411
412         (emit_marshal_object): indentation police.
413
414         * class-internals.h: Define MonoSafeHandle.
415         Add safehandle_class to MonoDefaults type.
416
417         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
418         list of classes to check for fields. 
419
420         * domain.c (mono_init_internal): Add SafeHandle to the list of
421         mono_defaults loaded.
422
423 2006-12-15  Raja R Harinath  <rharinath@novell.com>
424
425         Fix #80253
426         * reflection.c (mono_reflection_bind_generic_parameters): If the
427         generic type definition is a type builder, ensure that it is fully
428         initialized before instantiating it.  Kill some dead code.
429
430 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
431
432         * object.c: clear the loader_error () before loading
433         more metadata stuff (bug #80258).
434
435 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
436
437         * icall.c, icall-defs.h: type modifiers icalls for
438         parameters and properties.
439
440 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
441
442         * object.c, icall.c: fixed warnings.
443
444 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
445
446         * marshal.c: fixed a couple of leaks and coding style in a few places.
447
448 2006-12-08  Dick Porter  <dick@ximian.com>
449
450         * process.c: Cope with NULL ProcessStartInfo arguments on windows
451         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
452         80173.
453
454 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
455
456         * process.c: ProcessStartInfo may have only filename set and
457         arguments can be NULL.
458
459 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
460
461         * icall.c: fix leak found by Robert Jordan.
462
463 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
464
465         * marshal.c, marshal.h: generate managed method to access an element
466         of a multi-dimensional array.
467
468 2006-11-30  Paolo Molaro (lupus@ximian.com)
469
470         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
471
472 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
473
474         * icall.c: back out GetFields () fix until the serialization code is
475         fixed to not depend on the incorrect behaviour.
476
477 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
478
479         * profiler.c: provide defaults if none are set.
480
481 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
482
483         * Makefile.am, attrdefs.h: new public header file with
484         constants for attributes for use by embedders.
485
486 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
487
488         * icall.c: GetFields () fix for bug #80064.
489
490 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
491
492         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
493         removed long unused icalls.
494
495 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
496   
497         * marshal.c: 
498                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
499                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
500                 can be generated without a delegate class.
501                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
502         
503         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
504
505 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
506
507         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
508         #80069.
509
510 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
511
512         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
513         icall-def.h: added icalls needed by System.GC.
514
515 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
516
517         * loader.c: ensure the class in catch clauses is handled
518         correctly for generics methods (fixes bug#79980).
519
520 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
521
522         * monitor.h, monitor.c: added mono_locks_dump () function
523         to help debug deadlocks involving managed locks.
524
525 2006-11-13  Dick Porter  <dick@ximian.com>
526
527         * file-io.c (get_file_attributes): If the file is a symlink try
528         and get the stat data for the target, but also add the
529         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
530         the specs for the windows symlink support, but will probably have
531         to be reworked when I have test data from a vista machine.  Fixes
532         bug 79887.
533
534 2006-11-13  Dick Porter  <dick@ximian.com>
535
536         * gc.c (mono_domain_finalize): 
537         * marshal.c (mono_delegate_begin_invoke): 
538         * threadpool.c (socket_io_init, mono_thread_pool_init)
539         (mono_thread_pool_finish): 
540         * monitor.c (mono_monitor_try_enter_internal): 
541         * threads.c (mono_thread_resume, mono_thread_init)
542         (mono_thread_suspend_all_other_threads)
543         (mono_thread_execute_interruption): 
544         * appdomain.c (mono_domain_unload): Check for NULL error returns
545         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
546         75733.
547
548 2006-11-11  Miguel de Icaza  <miguel@novell.com>
549
550         * process.c
551         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
552         Only close the handle if the value of the handle is not
553         INVALID_HANDLE_VALUE.  This just makes the process a bit more
554         robust.
555
556         Improvement for #75733, so that we do not run into this problem. 
557
558         
559         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
560         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
561         internal variables.  Fixes #79462 
562         
563
564 2006-11-09  Dick Porter  <dick@ximian.com>
565
566         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
567         Use poll() not select().  Fixes bug 79397.
568
569 2006-11-09  Raja R Harinath  <rharinath@novell.com>
570
571         Fix #79872
572         * assembly.c (mono_assembly_load_from_full): Check that the given
573         image has an assembly manifest.
574
575 2006-11-09  Ankit Jain  <jankit@novell.com>
576
577         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
578         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
579         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
580
581 2006-11-07  Dick Porter  <dick@ximian.com>
582
583         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
584         Put the old resolver behaviour back for pre-2.0 profiles.
585
586 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
587
588         * threadpool.c: precise GC and locking fixes.
589
590 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
591
592         * class.c: don't load types that have an explicit unaligned
593         managed reference. Provide better info in the TypeLoad exception.
594         Part of the fix for bug #79744.
595         * object.c: use the correct check for class type load issues.
596
597 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
598
599         * class.c: enforce alignment of fields with managed references
600         even when Pack=1 is forced by the user (bug #77788).
601
602 2006-11-03  Dick Porter  <dick@ximian.com>
603
604         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
605         If the address reverse lookup fails, return it as the hostname
606         anyway.  Fixes bug 79721.
607
608 2006-11-03  Dick Porter  <dick@ximian.com>
609
610         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
611         Fix build on Windows.
612
613 2006-11-02  Dick Porter  <dick@ximian.com>
614
615         * icall-def.h: 
616         * object-internals.h: 
617         * exception.c (mono_get_exception_thread_interrupted): 
618         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
619         Fixes bug 74525.
620
621         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
622         Check for pending Thread.Interrupt.
623
624 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
625         * loader.c: Fixed bug 79684.
626
627 2006-10-27  Dick Porter  <dick@ximian.com>
628
629         * file-io.c (get_file_attributes): Force symlinks to directories
630         to be returned as a regular file.  Fixes bug 79733.
631 2006-10-26  Dick Porter  <dick@ximian.com>
632
633         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
634         CreateFile to open a directory then we need to set the
635         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
636
637 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
638
639         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
640         friends.
641
642 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
643
644         * sgengc.c: small cleanup of timer code.
645
646 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
647
648         * sgen-gc.c: fix some warnings and start adding support for
649         complete object removal on domain unload.
650
651 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
652
653         * assembly.c: build_assembly_name should not consider a version
654         number without build or revision number invalid. Fixes bug #79715.
655
656 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
657
658         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
659         call kernel32 function OutputDebugString directly.
660         
661         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
662         
663 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
664
665         * reflection.c: small cleanup, using a function to insert a MonoString
666         in the string heap.
667
668 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
669
670         * reflection.c: moving GC fixes.
671
672 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
673
674         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
675         all the objects with finalizers belonging to an unloading appdomain.
676
677 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
678
679         * sgen-gc.c: added ability to allocate even when the nursery is fully
680         pinned and fixed a couple of bugs.
681
682 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
683
684         * threads.h: Revert the last change for now.
685
686         * threads.h (mono_thread_get_pending_exception): Rename this to
687         mono_thread_get_undeniable_exception ().
688
689 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
690
691         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
692         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
693         when fname does not refer to valid assembly. This result in a more
694         meaningful error message.
695         * exception.c: added mono_get_exception_bad_image_format2 which 
696         constructs a BadImageFormatException using the ctor taking a custom
697         message and the file name. Passing in a NULL msg results in a default
698         message.
699         * exception.h: define mono_get_exception_bad_image_format2 function.
700         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
701         when file name pointed to an invalid IL image. Use 
702         mono_get_exception_file_not_found2 to construct FileNotFoundException,
703         as this results in a more meaningful error message.
704
705 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
706
707         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
708         #79465.
709
710 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
711
712         * metadata.c (mono_type_size): Change the align parameter to guint32 for
713         consistency with the other _size functions.
714         (mono_type_stack_size): Ditto.
715
716         * class.c object.c icall.c: Fix warnings caused by the above change.
717
718         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
719
720         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
721
722         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
723
724 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
725
726         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
727         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
728         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
729         threadpool.h, threads-types.h: mark more internal functions.
730
731 2006-10-11  Dick Porter  <dick@ximian.com>
732
733         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
734         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
735         reproduce the bug even before applying the fix.)
736
737 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
738
739         * reflection.c: allow retrieving attributes for arguments in generic
740         methods (bug #79241).
741
742 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
743
744         * debug-mono-symfile.c: properly check fopen () result (found by
745         coverity).
746
747 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
748
749         * reflection.c: make error message clearer and fixed two
750         issuelets found by Coverity.
751
752 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
753
754         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
755
756 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
757
758         * object-internals.h, gc-internal.h, profiler-private.h:
759         mark internal functions.
760
761 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
762
763         * reflection.c: put data in the text section.
764         * icall.c: recognize more types in type_from_typename ().
765         * process.c, marshal.c: added some GC FIXMEs.
766
767 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
768
769         * loader.c: check for NULL before initializing.
770
771 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
772
773         * gc.c (finalizer_thread): Use a non-alertable wait here.
774
775         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
776         until the correct solution is found.
777
778 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
779
780         * reflection.c (mono_module_get_object): Avoid an assert when operating on
781         modules with no metadata. Fixes #79596.
782
783         * image.c (load_metadata_ptrs): Put back the error message when
784         the #- heap is encountered since the support is not complete yet.
785
786 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
787
788         * gc.c: do not allow the user to SuppressFinalize () a
789         delegate because it would leak the trampoline if present.
790
791 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
792
793         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
794         PropertyPtr table.
795
796 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
797
798         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
799
800         * metadata.c (mono_metadata_get_param_attrs): Ditto.
801
802         * row-indexes.h: Add definitions for *Ptr tables.
803
804         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
805
806         * metadata.c (mono_metadata_translate_token_index): New helper function to
807         translate table indexes used in uncompressed metadata.
808         (mono_metadata_decode_table_row): Ditto.
809         (mono_metadata_decode_table_row_col): Ditto.
810
811         * metadata.c: Add table schema for *Ptr tables.
812
813         * class.c loader.c: Use the new helper function to access the affected metadata
814         tables.
815         
816         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
817         #38532.
818         
819 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
820
821         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
822         sequences which can be unbounded in size. Fixes #79583.
823
824 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
825
826         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
827         static initialization.
828
829         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
830
831         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
832
833         * domain.c (mono_domain_free): Free up type_init_exception_hash.
834
835         * object.c (mono_runtime_class_init): Implement correct semantics when a static
836         ctor fails, i.e. throw the same exception on subsequent accesses.
837         
838 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
839
840         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
841         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
842         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
843         Handle marshalling of interfaces and VARIANTs contained in structs.
844         
845         Code is contributed under MIT/X11 license.
846         
847 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
848
849         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
850         
851         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
852         mempool.
853
854 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
855
856         * console-io.c: ignore previous SIGINT handler.
857
858 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
859
860         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
861         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
862         #79460, #79461, #79485.
863
864         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
865
866         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
867         #79217.
868
869 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
870
871         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
872         could be generated from it.
873
874 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
875
876         * rand.c: fix read loop to correctly handle EINTR.
877
878 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
879
880         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
881         internal calls are defined to keep methods closer to the declaring
882         type and allow a significant reduction in runtime relocations and
883         memory usage.
884
885 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
886
887         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
888         exception message to have FileNotFoundException use the default
889         assembly load error message. Fixes bug #79426.
890         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
891
892 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
893
894         * threadpool.c: (start_thread_or_queue) use the root domain when
895         creating the thread instead of the async object one.
896
897 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
898
899         * class.c, object.c, class-internals.h, reflection.c:
900         for arrays, store element_size inside MonoClass (speedup
901         for array object creation).
902
903 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
904
905         * icall.c: fixed CodeBase to use the file name and not the module
906         name (bug #79365).
907
908 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
909
910         * mono-debug.c, mono-debug.h: export find_method as
911         mono_debug_find_method ().
912
913 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
914
915         * debug-helpers.c, class-internals.h: added a few functions useful
916         when debugging under gdb.
917
918 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
919
920         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
921         characters that need special handling.
922
923 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
924
925         * mono-config.c: make the os/cpu specification more flexible,
926         allowing lists and negation.
927
928 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
929
930         * marshal.c: COM Interop fixes. Handle case where method->klass.
931         is interface. Handle BSTR/MonoString when null. Use CDECL as 
932         calling convention on non-windows platforms. This is for
933         compatibility with XPCOM and MainWin COM.
934         
935         Code is contributed under MIT/X11 license.
936         
937
938 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
939
940         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
941         correctly. Fixes #79217.
942
943         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
944
945 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
946
947         * mono-config.c: allow both an os and cpu attribute for dllmap
948         and dllentry elemnets to enable a single config file to be used
949         for multiple architectures.
950
951 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
952
953         * loader.c: MonoLoaderError was cleared too soon on load failure.
954         Fixes bug #79424.
955
956 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
957
958         * icall.c: use the defining class vtable when accessing a
959         static field, not a pobblibly derived class.
960
961 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
962
963         * icall.c string-icalls.c: Remove references to unicode.h.
964
965         * unicode.h unicode.c Makefile.am: Remove these unused source files.
966
967         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
968
969         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
970         indicating the image where custom marshaller types should be looked up.
971         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
972         custom marshallers, instead of corlib. Fixes #79425.
973
974 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
975
976         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
977
978 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
979
980         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
981         Implement Environment.ProcessorCount.
982         
983         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
984         Implement Environment.ProcessorCount.
985         
986         * icall.c: 
987         Add Environment.ProcessorCount icall.
988         
989         Patch by Jason McFall.
990
991 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
992
993         * assembly.c: don't append .exe/.dll when the filename already contains
994         one of those extensions.
995
996 2006-09-12  Martin Baulig  <martin@ximian.com>
997
998         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
999         to array interfaces.
1000
1001 2006-09-11  Martin Baulig  <martin@ximian.com>
1002
1003         * reflection.c (mono_image_build_metadata): Create the
1004         MethodImpl's after emitting all types and methods, so we don't
1005         need another fixup pass for them.
1006
1007 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1008
1009         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1010         change.
1011
1012 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1013
1014         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1015         unload.
1016
1017 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1018
1019         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1020         args is not set. Fixes #78926.
1021
1022 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1023
1024         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1025
1026         * image.c (load_class_names): Move this to class.c, and rename it to 
1027         'mono_image_init_name_cache'.
1028         (load_modules): Fix a warning.
1029
1030         * class.c icall.c image.c: Initialize image->name_cache lazily.
1031
1032         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1033         on its name using information in the AOT file.
1034
1035         * class.c (mono_class_from_name): Use the new hook function.
1036
1037 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1038
1039         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1040         correctly.
1041
1042         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1043         Fixes #79289.
1044         
1045 2006-09-06  Martin Baulig  <martin@ximian.com>
1046
1047         * icall.c (mono_lookup_internal_call): Small fix.
1048
1049 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1050
1051         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1052         double g_free.
1053
1054 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1055
1056         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1057         when --debug is specified.
1058
1059 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1060
1061         * class.c (setup_generic_array_ifaces): Fix a warning.
1062
1063 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1064
1065         * Temporarily remove the patch to assemly.c that checks the
1066         assembly versions as it breaks our gacutil.
1067
1068 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1069
1070         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1071
1072         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1073         a net 1.0 runtime.
1074
1075         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1076         created using the default ctor. Fixes #79152.
1077         (mono_string_builder_to_utf16): Ditto.
1078
1079 2006-09-01  Martin Baulig  <martin@ximian.com>
1080
1081         Fix handling of the generic array interfaces.
1082
1083         * class-internals.h
1084         (MonoDefaults): Removed `generic_array_class' and added
1085         `generic_ilist' class.
1086
1087         * class.c
1088         (mono_bounded_array_class_get): Add the new generic array interfaces.
1089         (setup_generic_array_ifaces): New static method; create vtable
1090         entries for each method in the generic array interfaces.
1091
1092         * metadata.c
1093         (select_container): Allow "parent-less" generic methods.
1094
1095         * marshal.c
1096         (mono_marshal_get_generic_array_helper): New public method.
1097
1098         * icall.c
1099         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1100         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1101         moved the interncall into System.Array.
1102
1103 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1104
1105         A few more cases of avoiding work on types with ->byref set.
1106         Has the real fix for #79238
1107         * icall.c (is_generic_parameter): New helper.
1108         (ves_icall_Type_GetGenericParameterPosition): Use it.
1109         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1110         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1111         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1112         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1113         reference types.
1114         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1115         reference types.
1116         (ves_icall_Type_get_IsGenericInstance): Likewise.
1117         (ves_icall_Type_get_IsGenericType): Likewise.
1118
1119 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1120
1121         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1122         class if possible.
1123
1124         * mempool.h (mono_mempool_get_allocated): New helper function.
1125
1126         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1127         change.
1128
1129         * mempool.c: Fix warnings and the calculation of stats.
1130
1131         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1132
1133         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1134
1135         * loader.c (mono_get_method_from_token): Update method_count stat.
1136
1137         * class-internals.h (MonoStats): Add some stats.
1138
1139 2006-08-31 Robert Jordan  <robertj@gmx.net>
1140
1141         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1142         with managed variants.
1143         All code is contributed under the MIT/X11 license.
1144         
1145 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1146
1147         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1148         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1149
1150         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1151
1152         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1153         with cycles in classes.
1154
1155         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1156
1157         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1158         missing a [MarshalAs] directive. Fixes #79203.
1159
1160         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1161         klass->marshal_info. Fixes #79217.
1162
1163 2006-08-30  Martin Baulig  <martin@ximian.com>
1164
1165         Committing a patch from Joachim Ante <joe@otee.dk>:
1166         Add support for binary data symbol stores.
1167
1168         * debug-mono-symfile.c
1169         (mono_debug_open_mono_symbol_file): Renamed into
1170         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1171         arguments.
1172
1173         * mono-debug.c
1174         (mono_debug_open_image): Added `raw_contents' and `size' args.
1175         (mono_debug_init_2_memory): New public function.
1176
1177 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1178
1179         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1180
1181 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1182
1183         * appdomain.c: implement support for ShadowCopyFiles.
1184
1185 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1186
1187         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1188         when value is NULL (and should remove CID #51).
1189
1190 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1191
1192         * image.c: moved 2 functions to ../utils.
1193
1194 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1195
1196         * gc.c: cope with the target object of a GC handle being NULL
1197         (bug #78877).
1198
1199 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1200
1201         * class.c: recursively check parent's explicit implementations
1202         of interface methods (fixes bug #79125).
1203
1204 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1205
1206         * filewatcher.c: Avoid warnings when building, do not redefine
1207         constants that are defined.
1208
1209         Remove warnings.
1210
1211 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1212
1213         * image.c: don't fail when the link points to an absolute path.
1214
1215 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1216
1217         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1218         Fix CID #3.
1219
1220 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1221
1222         * image.c (full_path): A new method used to obtain the actual path
1223         of an assembly even in the presence of symbolic links.  
1224
1225         This is necessary for the case where we are running a binary that
1226         has been GACed, but we are using the "published" path name
1227         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1228         file in the GAC.
1229
1230         This was the source of the failure for the `xsp' command with the
1231         recent AppDomain changes, as far as the runtime was concerned,
1232         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1233         $prefix/mono/gac/blah/version/blah.exe.
1234
1235         (do_mono_image_open): use full path
1236
1237 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1238
1239         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1240
1241 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1242
1243         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1244         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1245
1246 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1247
1248         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1249         small structures. Fixes #78990.
1250
1251 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1252
1253         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1254
1255         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1256
1257 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1258
1259         * appdomain.c:
1260         * marshal.c: don't load all the assemblies from a domain into newly
1261         created ones. The new domains might have different rules and load
1262         assemblies from different locations. Fixes bug #76757.
1263
1264         Patch by Lluis. Conflicts resolved by Brian Crowell.
1265
1266 2006-08-16  Alp Toker  <alp@atoker.com>
1267
1268         * socket-io.c: First half of the fix for #79084.
1269         Set sa_size to the length of the content, not that of the struct.
1270         Don't add NULL suffix to the content, this should be done in
1271         managed code if needed.
1272
1273 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1274
1275         Fix part of #79012
1276         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1277         mono_metadata_parse_type returns NULL.
1278
1279 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1280
1281         * normalization-tables.h : new file for string normalization data.
1282         * locales.c, locales.h, icall.c :
1283           added load_normalization_resource() for string normalization,
1284           and icall as well.
1285         * Makefile.am : added normalization-tables.h to the sources.
1286
1287 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1288
1289         * marshal.c: Add more helper functions to reduce code duplication and use them
1290         everywhere.
1291
1292 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1293
1294         * marshal.c: Fix non-x86 stdcall warnings.
1295         
1296         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1297         them everywhere.
1298
1299 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1300
1301         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1302         type check on multi-dimensional arrays. Fixes #79000.
1303
1304 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1305
1306         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1307         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1308         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1309         * class-internals.h: add is_com_object to class structure.
1310         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1311         null checks to COM object marshalling. Fix .ctor call on RCW.
1312         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1313         
1314         All code is contributed under the MIT/X11 license.
1315
1316 2006-08-09  Dick Porter  <dick@ximian.com>
1317
1318         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1319         racing mono_monitor_allocator_lock() somewhere, so don't delete
1320         the critical section for now.  Found by running and exiting
1321         monodevelop.
1322
1323 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1324
1325         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1326         (ves_icall_System_ComObject_FindInterface): Ditto.
1327         (ves_icall_System_ComObject_CacheInterface): Ditto.
1328
1329         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1330         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1331
1332 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1333
1334         * threadpool.c: treat pipes from process asynchronous reads as sockets
1335         when reading from them, so we get select/poll or epoll to wait for
1336         data.
1337
1338 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1339
1340         * loader.c: Fix a typo (CID #233) in the null check.
1341
1342 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1343
1344         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1345         Hopefully fixes #78949.
1346         
1347         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1348         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1349         bytes. Fixes #78972.
1350
1351 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1352
1353         * filewatcher.c: we need to set errno here.
1354
1355 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1356
1357         * filewatcher.c: let Win32Exception get the error value.
1358
1359 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1360
1361         * filewatcher.c: translate errno into win32 errors for Win32Exception
1362         to know what happened.
1363
1364 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1365
1366         * threadpool.c: Fix more warnings.
1367
1368         * assembly.c (search_loaded): Fix warnings.
1369
1370         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1371         (mono_async_invoke): Ditto.
1372
1373 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1374
1375         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1376         entries for __ComObject type in addition to ComImport types.
1377         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1378         about hash table.
1379         
1380         All code is contributed under the MIT/X11 license.
1381
1382 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1383
1384         * image.c: avoid tentative loading of modulerefs that contain
1385         no metadata (P/Invoke library names).
1386
1387 2006-07-28  Dick Porter  <dick@ximian.com>
1388
1389         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1390         mono_loader_lock() somewhere, so don't delete the critical section
1391         for now.  Found by running and exiting monodevelop.
1392
1393 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1394
1395         * filewatcher.c: define the inotify syscalls when we're building on
1396         linux and have sys/syscall.h. The build system might not have support
1397         for inotify but the target system might have it.
1398
1399 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1400
1401         * domain.c: Documentation updates.
1402
1403         * loader.c (mono_free_method): Do not release the method
1404         information if we are being profiled, as profilers will use this
1405         information at shut down to present some data to the user.
1406
1407         This is needed so that the profiler does not crash, as the
1408         profiler tends to keep MonoMethods around, and they might become
1409         invalid if we free these.
1410
1411         (mono_get_method_constrained): Return the original CIL stream
1412         method as well, so verification can be performed against it.
1413
1414 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1415
1416         * filewatcher.[ch]: support for inotify file system watcher.
1417         * icall.c: add new internal calls for the inotify file system watcher.
1418
1419 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1420
1421         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1422         #78888.
1423
1424 2006-07-20  Dick Porter  <dick@ximian.com>
1425
1426         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1427         warning.
1428
1429 2006-07-20  Dick Porter  <dick@ximian.com>
1430
1431         * threads.c (start_wrapper): Do the thread cleanup while we still
1432         hold a reference to its object.  Fixes bug 78123.
1433
1434 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1435
1436         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1437         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1438           "managed-to-managed".
1439         * icall.c: Redirect string constructors that take sbyte* to
1440           ves_icall_System_String_ctor_RedirectToCreateString.
1441         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1442           to CreateString () methods with matching signature.
1443         * reflection.c: Use original security informations for
1444           MONO_WRAPPER_MANAGED_TO_MANAGED.
1445         * security-manager.c: Use original security informations for
1446           MONO_WRAPPER_MANAGED_TO_MANAGED.
1447         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1448           that is a placeholder and only its address should be used.
1449         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1450           that is a placeholder and only its address should be used.
1451
1452 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1453
1454         Begin implementing COM Interop.
1455         * appdomain.c: Increment corlib version.
1456         * class.c: Set ComImport classes' parent to __ComObject.
1457         * loader.c: Mark cominterop methods as such.
1458         * domain.c: Add __ComObject class to MonoDefaults structure.
1459         * image.c: Add 2 hashtables to the image for COM Interop related methods
1460         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1461         using the mempool allocator
1462         
1463         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1464         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1465         declaration for mono_metadata_type_dup_mp.
1466         
1467         * debug-helpers.c: Added strings for two additional wrapper types
1468         * object.c: Create proxy objects for ComImport classes
1469         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1470         and added __ComObject class to MonoDefaults structure.
1471         
1472         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1473         MonoComInteropProxy and MonoComObject.
1474         
1475         * marshal.c: Added support for COM Interop
1476         (signature_cominterop): Converts managed signature to corresponding
1477         unmanaged COM signature.
1478         (cominterop_get_function_pointer): gets unmanaged function pointer via
1479         COM object vtable
1480         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1481         (cominterop_get_method_interface): returns interface type that method is defined on
1482         (mono_mb_emit_cominterop_call): emits native call to function pointer
1483         gotten from vtable
1484         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1485         that matches signature of unmanaged function.
1486         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1487         (cominterop_get_invoke): forwards call from proxy to __ComObject
1488         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1489         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1490         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1491         
1492         * marshal.h: Added Marshal icall declarations.
1493         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1494         so we can access them in finalizer
1495         
1496 2006-07-14  Dick Porter  <dick@ximian.com>
1497
1498         * object.c (mono_type_initialization_cleanup): Fix a race
1499         condition by temporarily commenting out the critical section
1500         deletion.
1501
1502 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1503
1504         * reflection.c (create_custom_attr): Fix some warnings.
1505         (create_custom_attr_data): Ditto.
1506         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1507         types. Fixes #78855.
1508
1509 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1510
1511         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1512
1513         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1514
1515 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1516
1517         * reflection.c (resolve_object): Add support for DynamicMethod.
1518
1519         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1520         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1521
1522 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1523
1524         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1525         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1526
1527 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1528
1529         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1530         Fixes #77888.
1531
1532 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1533
1534         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1535         slightly: remove a shadow local variable.
1536
1537 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1538
1539         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1540         definition that introduces the virtual function slot.
1541         Also fix Coverity #105.
1542
1543 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1544
1545         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1546         for dynamic assemblies. Fixes #78724.
1547
1548 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1549
1550         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1551         Fixes #78722.
1552
1553 2006-06-21  Martin Baulig  <martin@ximian.com>
1554
1555         * reflection.c
1556         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1557         fixes #76484.
1558
1559 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1560
1561         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1562
1563 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1564
1565         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1566         nor TYPEREFs.
1567         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1568         Inflate result if necessary.
1569         (mono_class_get_full): Remove old version.  Rename from
1570         'mono_class_get' and add 'context' argument.  Pass it to
1571         ..._create_from_typespec.
1572         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1573         (mono_ldtoken): Revert change below.
1574
1575 2006-06-20  Martin Baulig  <martin@ximian.com>
1576
1577         * class.c (mono_ldtoken): Don't pass the generic context to
1578         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1579
1580 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1581
1582         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1583         and later freeing it. Fixes #78638.
1584
1585 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1586
1587         * icall.c (mono_class_get_throw): Revert over-zealous error
1588         throwing, the caller for mono_class_get_throw will cope with
1589         errors when classes are not properly initialized already.
1590
1591         The code still copes with loader exceptions though.
1592
1593         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1594         
1595 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1596
1597         Fixes the `make run1' version of RuntimeAbort (to be commited,
1598         source is in Bugzilla).
1599         
1600         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1601         FALSE on class loading failure instead of returning true.
1602
1603         * class.c (mono_class_create_from_typedef): It is possible for
1604         mono_metadata_interfaces_from_typedef_full to fail if a class is
1605         not found, cope with this.
1606         
1607
1608 2006-06-14  Dick Porter  <dick@ximian.com>
1609
1610         * socket-io.c: 
1611         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1612         4.1.1
1613
1614 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1615
1616         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1617
1618 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1619
1620         * icall.c: Another fix for building mono in Visual Studio.
1621
1622 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1623
1624         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1625         
1626 2006-06-09  Martin Baulig  <martin@ximian.com>
1627
1628         * debug-mono-symfile.c: Put this back and really fix it this
1629         time. Sorry for all the trouble.
1630
1631 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1632
1633         * icall.c (mono_class_get_throw): Fix a warning.
1634         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1635         ReflectionTypeLoadException if needed. Fixes #78606.
1636
1637         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
1638         (mono_class_init): Ditto.
1639
1640         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
1641         ref_only exceptions.
1642         (mono_loader_clear_error): Make this work even if there is no error.
1643
1644 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
1645
1646         * object-internals.h marshal.c marshal.h icall.c: Implement method 
1647         Marshal.GetComSlotForMethodInfo using internal call.
1648
1649 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
1650
1651         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
1652         a function for signalling it.
1653
1654         * class.c (mono_class_from_typeref): Use the new kind of loader error when
1655         a referenced assembly is not found.
1656
1657         * loader.c (mono_loader_error_prepare_exception): Add support for 
1658         LOADER_ERROR_ASSEMBLY. Fix formatting.
1659
1660 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
1661
1662         * domain.c appdomain.c class-internals.h marshal.c: Add support 
1663         for VARIANT marshalling on windows and increment corlib version
1664         since Variant struct was added.
1665
1666 2006-06-03  Miguel de Icaza  <miguel@novell.com>
1667
1668         * debug-mono-symfile.c: Revert Martin's previous patch which broke
1669         stack trace line information:
1670
1671         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
1672         (Martin) when looking up B which is between A and C, return A not C.
1673
1674         Bug is #78573.
1675
1676         Thanks to Alexander Olk for tracking this down.
1677
1678 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
1679
1680         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
1681         
1682         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
1683         avoid clobbering its value.
1684         (mono_string_to_lpstr): Fix a warning on windows.
1685
1686 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1687
1688         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
1689
1690         * reflection.c loader.c: Removed references to 'dummy' flag.
1691
1692         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
1693
1694         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
1695         it gets GC tracking.
1696
1697         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
1698         GC tracking.
1699         
1700         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
1701
1702         * marshal.c threadpool.c: Update callers of mono_async_result_new.
1703
1704         * appdomain.c: Bump corlib version.
1705
1706 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1707
1708         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1709         CEE_STIND_REF when working with object references.
1710
1711 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
1712
1713         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
1714         Fixes #78539.
1715
1716 2006-05-30  Miguel de Icaza  <miguel@novell.com>
1717
1718         * loader.c (method_from_memberref): Fix argument value for
1719         mono_loader_set_error_method_load (I was passing the MonoClass
1720         instead of the class name char *).
1721
1722 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
1723
1724         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
1725         CEE_STIND_REF when working with object references.
1726
1727 2006-05-30  Martin Baulig  <martin@ximian.com>
1728
1729         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
1730         mono_method_full_name() change and replace the ':' with a '.'
1731         here.
1732
1733 2006-05-30  Martin Baulig  <martin@ximian.com>
1734
1735         * debug-mono-symfile.c
1736         (mono_debug_symfile_lookup_location): Fix the algorithm:
1737         when looking up B which is between A and C, return A not C.
1738
1739 2006-05-29  Martin Baulig  <martin@ximian.com>
1740
1741         * mono-debug.h
1742         (MonoDebugMethodInfo): Make the typedef public.
1743         (MonoDebugSourceLocation): New public struct.
1744
1745         * mono-debug.c
1746         (mono_debug_source_location_from_address): Removed.
1747         (mono_debug_source_location_from_il_offset): Removed.
1748         (mono_debug_il_offset_from_address): Removed.
1749         (mono_debug_address_from_il_offset): Removed.
1750         (mono_debug_lookup_method): New public function.
1751         (mono_debug_lookup_source_location): New public function; replaces
1752         the old mono_debug_source_location_from_*() functions; see the
1753         inline documentation.
1754         (mono_debug_free_source_location): New public function.
1755         (mono_debug_print_stack_frame): New public function; see the
1756         inline documentation.
1757
1758         * debug-mono-symfile.c
1759         (mono_debug_find_source_location): Renamed into
1760         mono_debug_symfile_lookup_location(); only take a
1761         `MonoDebugMethodInfo *' and an `offset' argument; added inline
1762         documentation.
1763         (mono_debug_find_method): Renamed into
1764         mono_debug_symfile_lookup_method().
1765
1766 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
1767
1768         * assembly.c (mono_assembly_open_full): Dont overwrite the status
1769         returned by mono_image_open_full ().
1770
1771         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
1772         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
1773         #78517.
1774
1775         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
1776         #78518.
1777
1778 2006-05-27  Miguel de Icaza  <miguel@novell.com>
1779
1780         * class.c (mono_class_from_typeref): handle missing images
1781         earlier, deals with bug #78418.   Refactor code; 
1782
1783         Fix a warning introduced in my previous commit (some stale code
1784         from before I revisited my patch).
1785
1786         * class.c (mono_class_create_from_typedef): On failure, remove the
1787         class from the MonoImage->class_cache as the class is not
1788         initialized;   Fixes the leak pointed out by Paolo.
1789
1790 2006-05-25  Dick Porter  <dick@ximian.com>
1791
1792         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
1793         DeleteCriticalSections until I figure out which one may still be
1794         sometimes locked when mono_thread_cleanup is called.
1795
1796 2006-05-24  Dick Porter  <dick@ximian.com>
1797
1798         * threads.c (mono_thread_cleanup): Move the threading cleanup out
1799         of mono_thread_manage and back into its own function, so it can be
1800         called after the finalizer thread has finished.
1801
1802         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
1803
1804 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
1805
1806         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
1807         Fixes #78495.
1808
1809         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
1810         with non-blittable elements.
1811         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
1812
1813 2006-05-24  Martin Baulig  <martin@ximian.com>
1814
1815         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1816         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
1817
1818         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
1819         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
1820         `mono_debugger_event_handler' to NULL.
1821
1822 2006-05-24  Martin Baulig  <martin@ximian.com>
1823
1824         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
1825
1826 2006-05-24  Martin Baulig  <martin@ximian.com>
1827
1828         * mono-debug-debugger.h
1829         (mono_debugger_create_notification_function): Added
1830         `MonoCodeManager *' argument.
1831
1832 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
1833
1834         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
1835
1836 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
1837
1838         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
1839         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
1840         implementation.
1841
1842 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
1843
1844         * icall.c: precise GC support: objects can't be stored in unmanaged
1845         memory anymore, even if they are kept alive by other references: since
1846         they can move the GC needs to be able to always find them.
1847
1848 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1849
1850         * object.c: precise GC support for static fields. Support
1851         for moving GCs: write barriers and pinned allocation for interned
1852         strings.
1853
1854 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1855
1856         * domain.c, domain-internals.h: precise GC support for the MonoDomain
1857         structure.
1858
1859 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1860
1861         * class.c, gc.c: sgen and precise GC updates.
1862
1863 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
1864
1865         * marshal.h, marshal.c: added write barrier wrapper and precise type
1866         fixes.
1867
1868 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
1869
1870         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
1871         support.
1872
1873 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
1874
1875         * reflection.c: precise and sgen GC updates.
1876
1877 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
1878
1879         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
1880
1881 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
1882
1883         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
1884
1885 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
1886
1887         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
1888         MONO_TYPE_OBJECT. Fixes #78462.
1889
1890 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
1891
1892         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
1893         and blittable types.
1894
1895 2006-05-17  Miguel de Icaza  <miguel@novell.com>
1896
1897         * class.c (mono_class_get_exception_for_failure): Implement parts
1898         of a TODO: if the loader error is set (instead of the class
1899         error), we return a Loader exception that can be properly thrown
1900         elsewhere.
1901
1902         This was exposed by some Winforms 2.0 code that I tried to run
1903         (Atsushi pointed me to it).
1904
1905 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
1906
1907         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
1908         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
1909         
1910         * marshal.c (emit_marshal_vtype): Add limited support for 
1911         UnmanagedType.LPStruct. Fixes #78427.
1912
1913         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
1914         Applied a patch from kangaroo to fix #77523.
1915
1916 2006-05-17  Martin Baulig  <martin@ximian.com>
1917
1918         * threads.c
1919         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
1920         (debugger_thread_created): Removed.
1921         (debugger_thread_exited): Removed.
1922
1923 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
1924
1925         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1926
1927         * object-internals.h (MonoReflectionResource): Sync with managed version.
1928
1929 2006-05-12  Wade Berrier <wberrier@novell.com>
1930
1931         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
1932
1933 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
1934
1935         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
1936         functions try to allocate from the image mempool.
1937
1938 2006-05-12  Dick Porter  <dick@ximian.com>
1939
1940         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
1941
1942 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
1943
1944         * object.c: The FieldGetter and FieldSetter methods require the full
1945         name of the class, not only the name. Fixes bug #78277.
1946
1947 2006-05-11  Miguel de Icaza  <miguel@novell.com>
1948
1949         * loader.c (method_from_memberref): Do not pass the NULL klass to
1950         mono_loader_set_error_() methods.  Pass the non-NULL value
1951         (class). 
1952
1953 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
1954
1955         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
1956         (mono_assembly_close): Null out assembly->image->references after freeing it.
1957
1958         * image.c (mono_image_close): Free image->references.
1959         
1960         * reflection.c (mono_image_basic_init): Fix a small memory leak.
1961
1962 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1963
1964         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
1965         before checking if it's NULL (g_assert).
1966
1967 2006-05-10  Martin Baulig  <martin@ximian.com>
1968
1969         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
1970         I thought I already killed that two months ago, but now it somehow reappeared.
1971
1972 2006-05-10  Martin Baulig  <martin@ximian.com>
1973
1974         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
1975
1976 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
1977
1978         * reflection.c: Allocate memory for dynamically created methods in the image
1979         mempools.
1980
1981 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1982
1983         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
1984         don't use the ad pointer before checking if it's NULL (g_assert).
1985
1986 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
1987
1988         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
1989         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
1990
1991         * marshal.c: Allocate all signatures from mempools.
1992
1993         * marshal.c: Allocate some more signatures from mempools.
1994
1995 2006-05-09  Miguel de Icaza  <miguel@novell.com>
1996
1997         * object.c (mono_load_remote_field): The code used to provide a
1998         temporary variable for returning results if the user did not
1999         provide a result pointer.  But our temporary variable was allocted
2000         on the satck.
2001
2002         Fix calling code to always pass a result area.   Coverity ID 103.
2003
2004 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2005
2006         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2007         value, not the old. Fixes #78312.
2008         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2009
2010         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2011         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2012         per-image cache.
2013
2014         * assembly.c (mono_assembly_close): Free image->references.
2015
2016         * assembly.c (mono_assembly_names_equal): Fix a warning.
2017         (mono_assemblies_cleanup): Cleanup more global data.
2018
2019         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2020
2021         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2022         ptr_cache and image->modules.
2023
2024         * image.c (mono_image_init): Allocate array_cache lazily.
2025         
2026 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2027
2028         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2029         behavior was changed recently and has bad side effects.
2030
2031 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2032
2033         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2034         
2035         * assembly.c (mono_assembly_close): Remove a debug printf.
2036
2037         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2038
2039         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2040         to also allow for temporary references between mono_image_open ()/close ().
2041
2042         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2043
2044 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2045
2046         * marshal.c: Fix support for dynamic methods.
2047
2048         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2049
2050         * marshal.c (mono_marshal_cleanup): New cleanup function.
2051
2052         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2053         image mempools.
2054
2055         * class.c (mono_class_init): Fix leaking class->nested_classes.
2056
2057         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2058
2059         * image.c (mono_image_init): Initialize the new cashes.
2060
2061         * image.c (mono_image_close): Destroy the new cashes.
2062
2063         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2064
2065         * mempool.c (mono_mempool_strdup): New helper function.
2066
2067         * class-internals.h: Add prototype for mono_loader_unlock ().
2068
2069         * domain.c (mono_jit_info_table_find): Fix a warning.
2070         (mono_debugger_check_runtime_version): Ditto.
2071
2072         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2073         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2074         functions to these modules.
2075
2076         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2077         metadata modules.
2078         
2079         * marshal.c (mono_free_bstr): Fix a warning.
2080
2081         * assembly.c (mono_assembly_open_full): Fix another small leak.
2082
2083         * object.c: Fix some unload leaks in the remoting code.
2084
2085         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2086         function.
2087
2088         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2089
2090         * reflection.c: Fix some unload leaks in dynamic assemblies.
2091
2092 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2093
2094         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2095         * marshal.h: Add BSTR support on Win32
2096         * icall.c: Add BSTR icalls
2097         * metadata.h: Add BSTR enums
2098
2099 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2100
2101         Work to catch the crash from #76795 and turn it into an
2102         exception.   As I stubbed out pieces of the VisualBasic support,
2103         I found a number of places where the code was failing and I added
2104         checks to those places. 
2105         
2106         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2107         function return a status code.  If we fail to parse the signature
2108         from mono_metadata_parse_generic_inst, return FALSE.
2109
2110         * loader.c (mono_get_method_from_token): If we fail to load the
2111         method (mono_class_get) return NULL.   
2112
2113         * (method_from_memberref): Return NULL if we are unable to parse
2114         the method signature
2115
2116         (mono_loader_error_prepare_exception): Since we now use the
2117         loader_error flag internally to stop processing, and obtaining
2118         exceptions that might be thrown will walk this code path the
2119         proper way of going from a MonoLoaderError into a
2120         MonoException was convoluted.   This new routine encapsulates the
2121         process of turning the error into an exception and *clearing* the
2122         error afterwards.
2123         
2124 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2125
2126         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2127         with missing assemblies), and to cope with:
2128
2129                 * Missing fieldref from a non-existing assembly.
2130                 * Missing methodref from a non-existing assembly.
2131
2132         The first batch of work to address *some* of the issues from 76661.
2133         
2134         * object.c (mono_class_create_runtime_vtable): If we fail to
2135         initialize the class raise the exception here. 
2136
2137         * metadata.c (mono_class_get_overrides_full): If any methods fail
2138         to load return the failure to the caller.
2139
2140         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2141         flagging assemblies that failed to load.   
2142
2143         Do not crash if we are unable to load the assembly.
2144
2145         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2146         assemblies. 
2147
2148         * loader.c (mono_loader_set_error_type_load): Change the
2149         convention to always pass unallocated strings, so we make our own
2150         copies (I know our own code had duplicated strings before, but
2151         this keeps the normal conventions).
2152         (method_from_memberref): Call mono_loader_set_error_method_load
2153         for all possible failures of loading the class. 
2154         Remove assert, turn into a loader error.
2155
2156         (mono_loader_error_to_exception): Move this routine from mini
2157         (mini_loader_error_to_exception) there was no need to have that in
2158         mini. 
2159
2160         * class.c (mono_class_from_typeref): If we were not able to load
2161         the assembly with mono_assembly_load_reference, call the
2162         mono_loader_set_error_type_load to register the problem.
2163
2164         (mono_class_setup_fields): If we fail to load the type from
2165         mono_metadata_parse_type_full, call mono_class_set_failure and
2166         break from the loop.
2167
2168         If class->exception_type is set, we do not layout the fields as
2169         that might crash the runtime, and instead return (from breaking
2170         from the previous loop).
2171
2172         (mono_class_setup_vtable): This now returns a boolean indicating
2173         whether the table was properly setup.   The decision is driven by
2174         mono_class_get_overrides_full which might run into non-existing
2175         methods. 
2176         
2177         (mono_class_init): Returns TRUE on success or FALSE if there was a
2178         problem in loading the type (incorrect assemblies, missing
2179         assemblies, methods, etc).
2180
2181         When we call mono_class_setup_fields we also check for a potential
2182         error inside this call (either a class exception or a general
2183         loader exception).
2184
2185         (mono_class_create_from_typedef): If the parent fails to load
2186         (calling mono_class_get_full) return NULL.
2187         
2188         ** Important **
2189
2190         calls to mono_metadata_parse_type_full should be checked
2191         everywhere and set the mono_class_set_failure
2192         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2193
2194         The current patch checks the places where my manually constructed
2195         tests show the errors are showing up, but we should do it
2196         everywhere. 
2197
2198         ** Important2 **
2199
2200         mono_class_init return values should be tested everywhere, like
2201         the previous case this is something that we should audit
2202         everywhere and not only on the cases exposed by the tests I
2203         created. 
2204
2205 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2206
2207         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2208         boolean parameter and instead pass the information on `options'
2209         parameter (FileOptions).
2210
2211         * icall.c: Register the new signature for MonoIO.Open.
2212
2213         * debug-helpers.c (dis_one): Trying to understand how coverity
2214         works.  Fix Run 5, item 78.
2215
2216 2006-04-26  Dick Porter  <dick@ximian.com>
2217
2218         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2219         dereference.
2220
2221 2006-04-25  Martin Baulig  <martin@ximian.com>
2222
2223         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2224
2225         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2226         debugger_thread_created().
2227         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2228         special way.
2229         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2230         (mono_debugger_finalize_threads): New function; undo the effects
2231         of mono_debugger_init_threads().
2232         (mono_debugger_create_all_threads): Removed.
2233
2234 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2235
2236         * image.c (mono_image_close): Tidy up trace messages.
2237
2238         * assembly.c (mono_assembly_close): Ditto.
2239
2240         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2241         no longer references an already freed assembly. Fixes #78168.
2242
2243 2006-04-21  Dick Porter  <dick@ximian.com>
2244
2245         * threads.c (mono_thread_detach): Fix reference counting when
2246         detaching threads.
2247
2248 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2249
2250         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2251         #78155.
2252
2253 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2254
2255         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2256         (mono_type_to_stind): Ditto.
2257
2258         * marshal.c: Use the new helper functions to simplify code.
2259
2260         * image.c (mono_image_close): Add some code for help debug assembly unloading
2261         problems.
2262
2263         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2264         image mempool.
2265
2266         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2267         assembly was already loaded in another appdomain. Fixes #78083.
2268
2269 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2270
2271         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2272         referenced assemblies.
2273         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2274
2275         * domain.c (mono_domain_free): Add a trace message.
2276
2277         * appdomain.c (add_assemblies_to_domain): Ditto.        
2278
2279         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2280         field.  
2281
2282 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2283
2284         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2285
2286 2006-04-12  Martin Baulig  <martin@ximian.com>
2287
2288         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2289         `USE_INCLUDED_LIBGC'.   
2290
2291 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2292
2293         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2294         the patch contains ../ and a small directory name later. Hopefully fixes
2295         #78035.
2296
2297 2006-04-10  Martin Baulig  <martin@ximian.com>
2298
2299         Clean up the debugger's thread-handling code.
2300
2301         The debugger's thread-handling code has been moved from
2302         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2303         over the `threads' hash, keep track of exiting threads and also
2304         use proper locking.
2305
2306         We can now debug XSP and XSP based applications with the debugger.
2307
2308         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2309
2310         * threads.h
2311         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2312         (mono_install_thread_callbacks): Likewise.      
2313
2314         * threads.c (mono_thread_callbacks): Removed.
2315         (debugger_thread_created, debugger_thread_exited): New static functions.
2316         (start_wrapper): Call debugger_thread_created().
2317         (thread_cleanup): Call debugger_thread_exited().
2318         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2319         (mono_debugger_init_threads): New public function.
2320         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2321         iterate directly over the `threads' hash and also use proper locking.
2322
2323         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2324
2325         * mono-debug-debugger.h
2326         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2327
2328 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2329
2330         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2331         argument type=array. Fixes #78057.
2332
2333 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2334
2335         * culture-info-table.h : regenerated. Fixed bug #69652.
2336
2337 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2338
2339         * loader.c metadata.c: Reapply a variant r59116.
2340         
2341         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2342
2343         * class.c (mono_class_setup_interface_offsets): New internal function.
2344
2345         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2346         interfaces too. Fixes #77398.
2347
2348         * reflection.c (encode_cattr_value): Add support for 
2349         parameter type=object, argument type=array.
2350         (load_cattr_value): Ditto. Fixes #77916.
2351
2352         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2353         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2354
2355         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2356         a byval char array and CharSet is Ansi.
2357
2358         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2359
2360 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2361
2362         * metadata.c: Add some locking comments.
2363         
2364         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2365         mempool.
2366         (mono_metadata_free_method_signature): Don't free the signature itself.
2367
2368         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2369
2370         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2371         reference the same MonoImage.
2372         (mono_assembly_load_from_full): Add an assert.
2373
2374 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2375
2376         * image.c (mono_image_close): Don't put the image we are about to free into the
2377         loaded_images_guid_hash.
2378
2379         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2380         to reduce code duplication.
2381
2382         * marshal.c: Register the native functions called by this module as icalls, to
2383         somewhat centralize the creation of MonoMethodSignature's.
2384
2385         * loader.c (mono_method_signature): Add a cache for method signatures.
2386
2387         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2388         the parameter attributes of a method.
2389         (mono_metadata_parse_method_signature_full): Refactored the computation of
2390         parameter attributes into a separate function. Also avoid one allocation in
2391         most cases.
2392
2393         * assembly.c (mono_assembly_close): Ditto.
2394
2395         * image.c (mono_image_close): Log trace messages with INFO level.
2396
2397         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2398
2399         * image.c reflection.c: Correct reference counting of image modules.
2400         
2401         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2402         of this function from the image mempool.
2403         
2404         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2405         to allow more cached types to be used.
2406
2407         * mono-debug.c (mono_debug_add_method): Appled patch from
2408         David S. Miller  <davem@sunset.davemloft.net>: Access 
2409         minfo->lexical_blocks[] entry elements using read32().
2410
2411 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2412
2413         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2414         methods as it is allocated from the mempool.
2415
2416         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2417         image mempool.
2418
2419         * metadata-internals.h: Add comments describing the reference counting scheme
2420         used for MonoImage and MonoAssembly.
2421
2422         * image.c assembly.c reflection.c: Rework reference counting of images and 
2423         assemblies so they are freed when the runtime is shut down. Free some 
2424         additional memory structures when an image is unloaded.
2425         
2426 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2427
2428         * class.c loader.c reflection.c: Allocate more data structures in
2429         the image mempool.
2430
2431 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2432
2433         * icall.c
2434         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2435         build on pre glib 2.4 systems.
2436
2437 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2438
2439         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2440
2441         * icall.c: Fix some warnings.
2442
2443 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2444
2445         * culture-info-table.h : regenerated.
2446
2447 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2448
2449         * threads.c, object-internals.h, verify.c: changed the culture caching
2450         code to use a normal MonoArray for storage so the GC can keep track of
2451         them easily. Fixed bits of the cache logic, too and simplified the
2452         code.
2453
2454 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2455
2456         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2457         thread for non-Boehm GCs.
2458
2459 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2460
2461         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2462         needed to keep track of the data for static fields.
2463
2464 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2465
2466         Fix #75172
2467         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2468         for interface classes.  Use 'num_methods' instead.
2469         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2470         before using '->vtable_size' field.
2471
2472 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2473
2474         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2475         doesn't contain managed pointers, so use a normal hashtable.
2476
2477 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2478
2479         * reflection.c, class-internals.h, domain.c: fixed handling of types
2480         used as values for objects in custom attributes (bug #77915):
2481
2482 2006-03-24  Martin Baulig  <martin@ximian.com>
2483
2484         * class.c (mono_class_setup_fields): Added support for generic
2485         instances; fixes #77580.
2486
2487 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2488
2489         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2490
2491 2006-03-24  Dick Porter  <dick@ximian.com>
2492
2493         * file-io.c (get_file_attributes): More stat macro breakage.
2494         Fixes bug 77759.
2495
2496 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2497
2498         * profiler.c: added the file=filename option in the default profiler
2499         to output the profile data to filename.
2500
2501 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2502
2503         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2504         bug #77877.
2505
2506 2006-03-22  Martin Baulig  <martin@ximian.com>
2507
2508         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2509         allocated `MonoClassField *' in `fb->handle'.
2510
2511 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2512
2513         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2514         allocate interface ID to save memory and allow better ID reuse on
2515         appdomain unload. setup_generic_vtable () removal from Martin.
2516
2517 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2518
2519         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2520         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2521         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2522         write barriers for reference stores with managed objects accessed with
2523         C structures in the runtime and in embedding programs.
2524
2525 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2526
2527         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2528         'interface_id' and 'max_interface_id' fields of MonoClasses
2529         representing open generic types.
2530
2531 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2532
2533         * object.h, object.c, icall.c: added functions to deal with
2534         storing valuetypes that contain references in managed objects.
2535         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2536         fixes and comments around uses of mono_array_addr ().
2537
2538 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2539
2540         * object.h, icall.c, monitor.c: object.GetHashCode ()
2541         implementation that supports the moving garbage collector.
2542
2543 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2544
2545         * icall.c, threads-types.h, threads.c: implemented finalizer for
2546         LocalDataStoreSlot.
2547
2548 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2549
2550         * metadata.c (mono_type_size): Add a fixme.
2551         (mono_type_stack_size): Ditto.
2552
2553         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2554         'type_forwarders' field.
2555
2556         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2557         attribute from net 2.0.
2558
2559         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2560         from class.c.
2561
2562         * class.c (mono_class_setup_fields): Fix a warning.
2563         
2564         * class.c (mono_class_from_name): Add support for assemblyref entries
2565         in the EXPORTEDTYPE table.
2566
2567         * reflection.c: Add support for handling type forwarders under net 2.0.
2568
2569         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2570         
2571 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2572
2573         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2574         overwriting entries in ModuleBuild->types, also clean up the code
2575         a little. Fixes #77774.
2576
2577 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2578
2579         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2580         load friend assembly info when present.
2581
2582 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2583
2584         Fix crasher on gtest-158.cs.
2585         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2586         the return value if the MonoClass we want is yet in an
2587         inconsistent state.
2588         * class.c (mono_class_create_from_typedef): Add an comment
2589         explaining an order dependency between mono_class_setup_parent and
2590         mono_class_setup_mono_type.
2591
2592 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2593
2594         * class.c: documentation updates and events bug fix.
2595
2596 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2597
2598         * class.c: some cleanup, locking fixes.
2599
2600 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2601
2602         * class.c: fix the generics code to setup nested
2603         type info to the instantiated type (bug #77770).
2604
2605 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2606
2607         * marshal.c: fixed a few type correctness issues.
2608
2609 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2610
2611         * loader.c: the Set/Get/Addrtess array methods should be public.
2612
2613 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2614
2615         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2616         
2617         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2618         info->wrapper.
2619
2620 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2621
2622         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2623
2624         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2625
2626         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2627         (mono_mempool_alloc0): Ditto.
2628
2629 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2630
2631         * socket-io.c:
2632         (create_object_from_sockaddr): it was allocating 4 extra bytes
2633         for the AF_UNIX data. Fixes bug #77747.
2634
2635 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
2636
2637         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
2638
2639 2006-03-09  Dick Porter  <dick@ximian.com>
2640
2641         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
2642         Fixes bug 76966 again.
2643
2644 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
2645
2646         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
2647         names from r57532
2648         * appdomain.c: Bumped corlib version to 48 (due to r57532)
2649
2650 2006-03-07  Martin Baulig  <martin@ximian.com>
2651
2652         * object.c
2653         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
2654
2655 2006-03-07  Martin Baulig  <martin@ximian.com>
2656
2657         * class.c
2658         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
2659         regression introduced in r56970; see gtest-252.cs.
2660
2661         * loader.c (mono_get_method_constrained): Correctly handle generic
2662         methods; see gtest-253.cs.
2663
2664 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
2665
2666         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
2667
2668 2006-03-04  Martin Baulig  <martin@ximian.com>
2669
2670         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
2671         compute the parent type at runtime, just like we're already doing
2672         it for interfaces.
2673
2674         * reflection.c
2675         (mono_reflection_bind_generic_parameters): Don't compute the
2676         parent type anymore.
2677
2678         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
2679
2680 2006-03-04  Martin Baulig  <martin@ximian.com>
2681
2682         * mono-debug-debugger.h
2683         (mono_debugger_create_notification_function): Allocate memory at
2684         runtime and return a pointer to it.
2685
2686 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
2687
2688         * assembly.c: Fix windows build.
2689         
2690         * assembly.c: Fix build.
2691
2692         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
2693
2694         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
2695         
2696 2006-03-03  Dick Porter  <dick@ximian.com>
2697
2698         * process.c
2699         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2700         Check parameters before dereferencing them.  Fixes Aaron's part of
2701         bug 77393.
2702
2703 2006-03-03  Raja R Harinath  <rharinath@novell.com>
2704
2705         Fix performance regression.
2706         * loader.c (find_method_in_class): Add 'from_class' argument.
2707         Rename 'klass' argument to 'in_class'.  The signature is compared
2708         against the method in 'in_class', and the corresponding method is
2709         returned from 'from_class'.
2710         (find_method): Walk both 'in_class' and 'from_class' in parallel.
2711         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
2712         type definition and generic instantiation in parallel.
2713         (mono_get_method_constrained): Update to changes.
2714
2715 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
2716
2717         * threads.c: make sure the domain is correct, too when doing
2718         mono_thread_attach ().
2719
2720 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
2721
2722         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
2723         windows. Fixes #77683.
2724
2725 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
2726
2727         * object.h, *: introduced specific way to set elements of an array
2728         of references to be used as write barrier. Still need to audit the
2729         uses of mono_array_addr.
2730
2731 2006-03-01  Miguel de Icaza  <miguel@novell.com>
2732
2733         * object-internals.h: New field to cache the assmebly name, patch
2734         from Tambet Ingo (tambet@ximian.com)
2735
2736 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2737
2738         * decimal.h, class-internals.h, metadata-internals.h,
2739         file-io.h: mark a few function declarations as internal, to
2740         reduce the number of PLT entries.
2741
2742 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2743
2744         * file-io.c: fix typo in warning message.
2745
2746 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
2747
2748         * loader.c: on unix, lookup the "*A" version of a function
2749         if charset is auto as a second option before failing.
2750
2751 2006-02-28  Raja R Harinath  <rharinath@novell.com>
2752
2753         * class.h (mono_class_inflate_generic_method): Revert to two
2754         argument version.
2755         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
2756         (mono_class_inflate_generic_method_full): Add.
2757         * class.c (mono_class_inflate_generic_method_full): Rename from
2758         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
2759         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
2760         * loader.c, reflection.c: Update to changes.
2761
2762 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
2763
2764         * icall.c: const fixes and small improvements.
2765
2766 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2767
2768         * threadpool.c: for asynchronous connect(), enable the same workaround
2769         for BSD 6 as for the Mac. Fixes bug #77637.
2770
2771 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
2772
2773         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
2774         formatted classes. Fixes #77524.
2775
2776 2006-02-24  Raja R Harinath  <rharinath@novell.com>
2777
2778         * class.c (inflate_generic_type): Add a couple more
2779         micro-optimizations.
2780         (inflate_generic_context): Don't use the 'gmethod' from
2781         'inflate_with'.
2782         (mono_class_inflate_generic_method): If the method has generic
2783         parameters, but the passed-in context doesn't have a 'gmethod',
2784         create one.  Use the possibly simplified generic instantiation
2785         from the declaring class instead of the one passed in.
2786
2787 2006-02-24  Raja R Harinath  <harinath@gmail.com>
2788
2789         Make generic method signature and method header handling lazy.
2790         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
2791         (inflate_generic_header): Likewise.
2792         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
2793         parameter to avoid inflating types.
2794         (mono_get_inflated_method): Empty out.
2795         * class.h (mono_class_inflate_generic_method): Update to changes.
2796         * loader.c (mono_get_method_from_token): Don't parse signature for
2797         generic methods, nor methods of generic classes.
2798         (mono_method_signature): Rename from 'mono_method_signature'.
2799         Inflate signature on demand.
2800         (mono_method_get_header): Inflate method header on demand.
2801         * reflection.c: Update to changes.
2802
2803 2006-02-23  Raja R Harinath  <rharinath@novell.com>
2804
2805         * metadata.c (mono_metadata_inflate_generic_inst): If the
2806         instantiation is closed, don't bother expanding it in the new
2807         context.
2808         * class.c (inflate_generic_class): If the generic instantiation
2809         doesn't change after inflation, return the argument itself.
2810         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
2811         Add bounds checks.
2812         (inflate_generic_context): If neither the generic class nor the
2813         generic method instantiations change, return the original context.
2814         * reflection.c (mono_method_get_object): Do
2815         'mono_get_inflated_method' before accessing the ->klass field.
2816         (inflate_mono_method): Don't create a MonoGenericMethod unless
2817         necessary.
2818         (inflate_method): Don't pass a constructed type as the declaring
2819         type of a methodbuilder.
2820
2821 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
2822
2823         * object.c: fix memory overwrite.
2824
2825 2006-02-22  Dick Porter  <dick@ximian.com>
2826
2827         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
2828         it doesn't work any more.
2829         (mono_threads_request_thread_dump): Fix unused variable warnings.
2830
2831 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2832
2833         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
2834         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
2835         the public header file.
2836
2837 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
2838
2839         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
2840
2841 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
2842
2843         * class-internals.h, object.c: reduce the size of MonoVTable
2844         and store the interface_offsets array at negative offsets.
2845
2846 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
2847
2848         * metadata.c: tweak table descriptors data structures to reduce
2849         size and runtime relocations.
2850
2851 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2852
2853         * marshal.c: fix some types and opcodes to be type-safe
2854         in marshaling wrappers.
2855
2856 2006-02-21  Ankit Jain  <jankit@novell.com>
2857
2858         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
2859
2860 2006-02-21  Raja R Harinath  <rharinath@novell.com>
2861
2862         * metadata.c (get_constraints): Relax debugging checks for monodis.
2863
2864 2006-02-21  Ankit Jain  <jankit@novell.com>
2865
2866         * metadata.c (mono_metadata_load_generic_params): Move the code
2867         checking for ambiguous generic params from here to mono/dis/get.c
2868         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
2869
2870 2006-02-21  Raja R Harinath  <harinath@gmail.com>
2871
2872         Fix assertion triggered when compiling nemerle.
2873         * class.c (mono_get_shared_generic_inst): Rename from
2874         get_shared_inst and make non-static.
2875         * loader.c (mono_get_shared_generic_method): New.  Used to create
2876         the MonoGenericContext-equivalent of a MonoGenericContainer.
2877         (mono_get_method_from_token): Initialize the 'context' field of
2878         the created MonoGenericContainer.
2879         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
2880         * metadata.c (get_constraints): Add sanity check.
2881         * class-internals.h: Add new internal methods.
2882
2883         * reflection.c (verify_safe_for_managed_space): New sanity check.
2884         Currently checks that owner-less generic parameters aren't allowed
2885         in managed space.
2886         (mono_type_get_object): Use it.
2887         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
2888         that are now in mono_type_get_object.
2889         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
2890
2891 2006-02-19  Raja R Harinath  <harinath@gmail.com>
2892
2893         * metadata.c (mono_type_create_from_typespec): Rename from
2894         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
2895         argument and caching of types in the generic container.
2896         (unwrap_arrays, find_generic_param): Remove.
2897         * metadata-internals.h: Update.
2898         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
2899
2900 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
2901
2902         * class.c (mono_class_get_exception_for_failure): Fix a warning.
2903
2904         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
2905         return values. Fixes #77581.
2906
2907         * class.c (mono_fnptr_class_get): Switch name and name_space.
2908
2909         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
2910         classes and add support for [In, Out] attributes.
2911         (mono_marshal_free_asany): Ditto. Fixes #77524.
2912
2913 2006-02-18  Raja R Harinath  <harinath@gmail.com>
2914
2915         * class.c (mono_class_from_generic_parameter): Make more robust to
2916         incomplete MonoGenericContainers from monodis.
2917
2918 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2919
2920         * class-internals.h: added some more exception types.
2921         * class.c, metadata.c: added a few checks to handle missing
2922         types.
2923
2924 2006-02-17  Raja R Harinath  <rharinath@novell.com>
2925
2926         Use owner-less generic-params some more.
2927         * class.c (my_mono_class_from_generic_parameter): Remove.
2928         (mono_class_from_generic_parameter): Handle null image,
2929         param->name and param->owner.
2930         (mono_class_from_mono_type): Update.
2931         (mono_class_create_from_typespec): Remove 'container' parameter.
2932         If that parameter is non-null, the result is always inflated by
2933         'mono_class_get_full' anyway.
2934         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
2935         parameter.
2936         (mono_class_get_full): Update.
2937
2938         * class.c (inflate_generic_type) [GENERICINST]: If the generic
2939         instance is not open, don't bother inflating.
2940         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
2941         parse metadata for inflated classes.
2942         (_mono_class_get): Change GenericContext* parameter to
2943         GenericContainer*.
2944         (mono_class_create_from_typespec): Likewise.  Simplify, and
2945         implement trivially.  All the cases are handled in
2946         mono_class_from_mono_type.  Don't inflate returned class.
2947         (mono_class_get_full): Delegate GENERICINST optimization to
2948         inflate_generic_type.
2949         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
2950
2951 2006-02-16  Dick Porter  <dick@ximian.com>
2952
2953         * socket-io.c (create_object_from_sockaddr): Fix typo.
2954         (create_sockaddr_from_object): Check array lengths before
2955         potentially accessing items off the end.
2956         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
2957         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
2958         (ves_icall_System_Net_Sockets_Socket_Send_internal)
2959         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
2960         length checks to avoid wraparound overflows.
2961         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
2962         contents of the array of sockets
2963         (hostent_to_IPHostEntry2)
2964         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
2965         Check return value of inet_ntop ().
2966         (addrinfo_to_IPHostEntry): Fix typo
2967
2968 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2969
2970         Type metadata parsing doesn't use generic-instantiation information.
2971         * metadata.c (mono_metadata_parse_array_full): Change
2972         MonoGenericContext* parameter to MonoGenericContainer*.
2973         (mono_metadata_parse_type_full): Likewise.
2974         (mono_type_create_from_typespec_full): Likewise.
2975         (mono_metadata_parse_mh_full): Likewise.
2976         (mono_metadata_parse_generic_inst): Likewise.
2977         (do_mono_metadata_parse_generic_class): Likewise.
2978         (do_mono_metadata_parse_type): Likewise.
2979         * metadata-internals.h: Update to changes.
2980         * class.c (mono_class_find_enum_basetype): Likewise.
2981         (mono_class_setup_fields): Likewise.
2982         (mono_class_create_from_typespec): Likewise.
2983         * loader.c (method_from_methodspec): Likewise.
2984         (mono_get_method_from_token): Likewise.
2985         (mono_method_get_header): Likewise.
2986
2987 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2988
2989         * marshal.c: handle additional GENERICINST case (patch from
2990         Thong Nguyen <tum@veridicus.com>).
2991         Fix a few cases where LDIND_I/STIND_I was used for references.
2992
2993 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2994
2995         * reflection.c (mono_reflection_get_token): Remove unused variable.
2996
2997 2006-02-16  Martin Baulig  <martin@ximian.com>
2998
2999         * reflection.c (mono_reflection_get_token): Add support for fields
3000         in instantiated generic types.
3001
3002         * icall.c
3003         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3004
3005 2006-02-15  Martin Baulig  <martin@ximian.com>
3006
3007         * icall.c
3008         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3009         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3010         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3011         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3012
3013 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3014
3015         * class.c, metadata.c, metadata.h, object.c, icall.c,
3016         marshal.c: changed mono_type_get_underlying_type () to do
3017         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3018         Fixed handling of instantiated generic valuetypes (bug #75479).
3019
3020 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3021
3022         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3023         Delegate to mono_metadata_decode_value, and work on the returned value.
3024
3025         * icall.c (ves_icall_MonoType_GetGenericArguments):
3026         Add consistency check here too.
3027         
3028 2006-02-15  Ankit Jain  <jankit@novell.com>
3029
3030         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3031         char/short etc.
3032
3033 2006-02-15  Ankit Jain  <jankit@novell.com>
3034
3035         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3036         signed values, used only for representing lower bounds of arrays.
3037         (mono_metadata_parse_array_full): Use new
3038         mono_metadata_decode_signed_value to decode lower bounds.
3039
3040 2006-02-14  Martin Baulig  <martin@ximian.com>
3041
3042         * reflection.c
3043         (mono_reflection_get_token): Support "MonoGenericMethod" and
3044         "MonoGenericCMethod" and allow generic instances / methods.
3045
3046 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3047
3048         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3049         to obtain the terminal size using an ioctl.
3050
3051         * object.c (mono_nullable_init): Revert this as nullable reference
3052         types are not valid.
3053         (mono_nullable_box): Ditto.
3054
3055 2006-02-09  Dick Porter  <dick@ximian.com>
3056
3057         * threads.c (mono_thread_detach): Drop a reference to the thread
3058         we're detaching.
3059
3060 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3061
3062         * object.c (mono_nullable_init): Handle nullable reference types.
3063         (mono_nullable_box): Ditto. Fixes #77446.
3064
3065 2006-02-07  Martin Baulig  <martin@ximian.com>
3066
3067         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3068
3069 2006-02-07  Ankit Jain  <jankit@novell.com>
3070
3071         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3072         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3073         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3074         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3075         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3076         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3077
3078 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3079
3080         * class.c (mono_class_create_generic): Set type_token as well.
3081
3082         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3083         compatible with MS.
3084
3085 2006-02-02  Martin Baulig  <martin@ximian.com>
3086
3087         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3088         has never been used so far.
3089
3090 2006-02-02  Martin Baulig  <martin@ximian.com>
3091
3092         * mono-debug-debugger.h: Changed comment at the top of this file;
3093         the header is not installed, but it's safe to #include it from
3094         within the JIT.
3095
3096         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3097         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3098
3099 2006-02-02  Martin Baulig  <martin@ximian.com>
3100
3101         * mono-debug.h
3102         (MonoSymbolTable): Removed the `metadata_info' field.
3103
3104         * mono-debug.c
3105         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3106
3107         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3108         (mono_debugger_add_builtin_types): Removed.
3109         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3110         (mono_debugger_create_notification_function): We now operate on a
3111         pre-allocated area; take a `gpointer' and return `void'.
3112
3113         * mono-debug-debugger.c
3114         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3115         (mono_debugger_add_builtin_types): Removed.
3116
3117 2006-02-02  Martin Baulig  <martin@ximian.com>
3118
3119         * threads.c (mono_debugger_create_all_threads): New public method.
3120
3121 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3122
3123         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3124         breaks on several platforms.
3125
3126 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3127
3128         * assembly.c: the VS.NET build doesn't supply default values for
3129         MONO_ASSEMBLIES and MONO_CFG_DIR.
3130
3131 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3132
3133         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3134         helper function.
3135
3136         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3137
3138         * loader.c (method_from_memberref): Fix a warning.
3139
3140         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3141
3142         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3143         with explicit layout. Fixes #77433.
3144
3145 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3146
3147         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3148         max_interface_id is initialized before using it. Fixes #77398.
3149         (ves_icall_Type_GetInterfaces): Ditto.
3150
3151 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3152
3153         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3154         allocate memory for parameter attributes when parsing memberref
3155         signatures.
3156         * loader.c (mono_loader_set_error_method_load): Don't warn.
3157         (method_from_memberref): Ensure MissingMethodException gets thrown
3158         if method is not found.  Make warning more informative.
3159
3160 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3161
3162         Fix #77397
3163         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3164         return true if is byref.
3165         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3166         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3167         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3168
3169 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3170
3171         Fix tests/find-method.2.il
3172         * loader.c (find_method, find_method_in_class): Remove is_inflated
3173         argument.  Revert 2006-01-18 change.
3174         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3175         is generic, search for method in its generic definition.
3176         * class.c (mono_class_setup_vtable_general): Print generic
3177         arguments of generic types in debugging printf.
3178
3179 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3180
3181         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3182
3183         * threads.c (mono_threads_request_thread_dump): New helper function.
3184
3185 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3186
3187         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3188
3189 2006-01-25  Ankit Jain  <jankit@novell.com>
3190
3191         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3192         move definition to ..
3193         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3194         
3195 2006-01-25  Ankit Jain  <jankit@novell.com>
3196             Raja R Harinath  <rharinath@novell.com>
3197
3198         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3199         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3200         as necessary.
3201
3202 2006-01-25  Martin Baulig  <martin@ximian.com>
3203
3204         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3205         `MonoDebuggerThread' into debug-debugger.c.
3206
3207 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3208
3209         * profiler.c: fix printing of data.
3210
3211 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3212
3213         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3214           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3215
3216 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3217
3218         * object.c: fix deadlock related to string interning.
3219
3220 2006-01-23  Martin Baulig  <martin@ximian.com>
3221
3222         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3223
3224         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3225
3226 2006-01-23  Martin Baulig  <martin@ximian.com>
3227
3228         * mono-debug.h: Moved the prototypes of some functions which are
3229         used by the JIT here from mono-debug-debugger.h.
3230
3231 2006-01-21  Martin Baulig  <martin@ximian.com>
3232
3233         * Makefile.am: Don't install mono-debug-debugger.h.
3234
3235 2006-01-21  Martin Baulig  <martin@ximian.com>
3236
3237         * mono-debug-debugger.h: Enforce the private status of this header
3238         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3239         Moved some stuff from mono-debugger-jit-wrapper.h here.
3240
3241 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3242
3243         * class.c (mono_class_from_typeref): Add a sanity test to help
3244         catch lack of assembly load/search hooks.
3245
3246 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3247
3248         * marshal.c (emit_struct_conv): Relax the fields with same offset
3249         check even more. Fixes #77230.
3250
3251 2006-01-18  Martin Baulig  <martin@ximian.com>
3252
3253         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3254         argument; if false, we compare the uninstantiated signatures.
3255         (method_from_memberref): Compare the uninstantiated signatures;
3256         fixes #76417.
3257
3258 2006-01-18  Robert Jordan  <robertj@gmx.net>
3259
3260         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3261         Clear the weak link. Fixes bug #77170.
3262
3263         * gc.c (mono_gchandle_free):
3264         Reflect *-gc.c changes (tiny optimization).
3265
3266 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3267
3268         * metadata.c (mono_metadata_signature_dup): Applied patch from
3269         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3270         Fixes #77288.
3271
3272 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3273
3274         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3275         marshalling from native to managed code. Fixes #77230.
3276
3277 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3278
3279         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3280         connect. Fixes bug #77020.
3281
3282 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3283
3284         * class.c: fixed id assignement for nested interfaces (bug #77275).
3285         Added also better info for --print-vtable debugging.
3286
3287 2006-01-12  Martin Baulig  <martin@ximian.com>
3288
3289         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3290         interfaces on-the-fly; fixes #76625.
3291
3292         * class-internals.h
3293         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3294         don't need that anymore.
3295
3296 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3297
3298         * socket-io.c
3299         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3300         To avoid initing the nested_classes when not needed I turned the
3301         PeerCredData as a toplevel internal class, as it has to be shared
3302         anyways. 
3303
3304         Fixes the CASA issue.
3305
3306 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3307
3308         * domain.c: Accessors for MonoJitInfo
3309
3310         * profiler-private.h: Add jitinfo to the end jit hook
3311
3312         * profiler.[ch]: Define new hooks, called after jitting which give
3313         the MonoJitInfo that was compiled
3314
3315 2006-01-10  Martin Baulig  <martin@ximian.com>
3316
3317         * class.c (mono_class_setup_events): Add support for generic
3318         classes; fixes #76440.
3319
3320 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3321
3322         Fix #77160.
3323         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3324         on passed-in method.
3325
3326 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3327
3328         * object.c (mono_runtime_invoke_array): Add Nullable support.
3329
3330         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3331
3332 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3333
3334         * file-io.c: Don't consider sockets as directory and avoid an endless
3335         loop. Fix bug #76966.
3336
3337 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3338
3339         * object.c (mono_nullable_init): New helper function.
3340         (mono_nullable_box): Ditto.
3341
3342         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3343
3344         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3345
3346         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3347         
3348 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3349
3350         * class.c (mono_class_is_assignable_from): Make T assignable to 
3351         Nullable<T>.
3352
3353 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3354
3355         * appdomain.c: Bump corlib version to 46.
3356         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3357         serialization purpose) and changed ves_icall_System_Reflection_
3358         Assembly_get_code_base signature to accept a boolean (to escape, or 
3359         not, the assembly code base).
3360
3361 2005-12-23  Dick Porter  <dick@ximian.com>
3362
3363         * icall.c: 
3364         * threads-types.h: 
3365         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3366         CreateEvent icall now returns "created" boolean parameter.
3367
3368 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3369
3370         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3371         #76967.
3372
3373         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3374         when attr_klass is an interface. Fixes #77045.
3375
3376 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3377
3378         * marshal.c (emit_struct_conv): Fix previous patch.
3379         
3380         * marshal.c (emit_struct_conv): Add a check for fields with the same
3381         offset.
3382
3383 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3384
3385         Fix regression in Mono.C5.
3386         * class.c (mono_class_create_generic): If 'klass' is an interface
3387         set up the interface offsets.
3388         (mono_class_is_assignable_from): Don't throw away generic arguments.
3389
3390 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3391
3392         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3393         type parameters.
3394
3395 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3396
3397         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3398         dead store.
3399         (do_mono_metadata_parse_generic_class): Don't pass the current
3400         generic context when parsing the type being instantiated: it
3401         cannot use it, anyway.
3402
3403         * loader.c (method_from_memberref): Don't inflate a signature if
3404         it doesn't contain any type parameters.
3405
3406 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3407
3408         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3409
3410 2005-12-14  Martin Baulig  <martin@ximian.com>
3411
3412         * class.c
3413         (mono_type_get_name_recurse): Don't return null for type
3414         parameters and open generic classes.
3415         (mono_class_setup_methods): Don't exclude generic instances.
3416         (mono_get_unique_iid): Use different IDs for different
3417         instantiations of the same generic type.
3418         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3419         open generic instances; create a normal vtable for closed generic
3420         instances.
3421         (mono_class_setup_vtable_general): We're now also called for
3422         closed generic instances.
3423
3424         * reflection.c
3425         (mono_reflection_bind_generic_parameters): Correctly use
3426         mono_metadata_lookup_generic_inst() everywhere.
3427
3428 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3429
3430         * object.c (mono_class_create_runtime_vtable): Call 
3431         mono_class_setup_vtable ().
3432
3433         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3434         function.
3435         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3436         #76959.
3437
3438         * loader.c (mono_loader_set_error_type_load): Print the type load
3439         warnings to the console so they are more visible to the user.
3440         (mono_loader_set_error_method_load): Ditto.
3441
3442         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3443         is still broken.
3444         
3445         * reflection.c (ensure_runtime_vtable): Fix build.
3446
3447         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3448         doesn't work in all cases.
3449
3450 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3451
3452         * object.c (mono_array_new_full): Treat a single dimensional array
3453         with 0 lower bounds as an szarray. Fixes #76973.
3454
3455         * reflection.c (custom_attr_visible): Really fix this.
3456
3457 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3458
3459         * reflection.c (custom_attr_visible): Allow nested public attributes
3460         as well.
3461
3462         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3463         interface check.
3464
3465 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3466
3467         * class.c (set_generic_param_owner): Delete.
3468         (mono_class_create_from_typedef): Don't set ->owner field of
3469         generic parameters to "param containers" of enclosing classes.
3470         * reflection.c (mono_reflection_initialize_generic_parameter):
3471         Likewise.
3472
3473 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3474
3475         * reflection.c (custom_attr_visible): Fix build.
3476
3477 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3478
3479         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3480         private attributes.
3481         
3482         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3483         handling of null parameter defaults.
3484
3485 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3486
3487         * class.c (mono_class_from_generic_parameter): Don't set
3488         klass->generic_container.
3489         (my_mono_class_from_generic_parameter): Likewise.
3490
3491 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3492
3493         * reflection.c (load_public_key): Fix a warning.
3494         (method_encode_code): Fix unaligned accesses.
3495
3496 2005-12-07  Martin Baulig  <martin@ximian.com>
3497
3498         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3499
3500         * reflection.c
3501         (write_generic_param_entry): Encode our custom attrs.
3502
3503         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3504
3505 2005-12-07  Martin Baulig  <martin@ximian.com>
3506
3507         * reflection.c (encode_new_constraint): Removed; we don't use the
3508         `NewConstraintAttribute' anymore.
3509
3510 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3511
3512         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3513         not fire a TypeResolve event when Assembly.GetType () is called.
3514
3515 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3516
3517         Beginning of support for nullable types in the runtime. Parts of
3518         this patch are from Martin.
3519
3520         * appdomain.c (MONO_CORLIB_VERSION): Bump
3521
3522         * domain.c (mono_init_internal): get the nullable type
3523
3524         * class.c (mono_class_is_nullable): New method
3525         (mono_class_get_nullable_param): New mehod
3526         (mono_class_create_generic): In types T? set cast_class to T
3527
3528         * class-internals.h (MonoDefaults): new nullable default class
3529         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3530         new methods.
3531
3532 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3533
3534         * metadata.c (select_container): New.  Refactor code to select the
3535         appropriate GenericContainer given the type of generic parameter
3536         we are looking for.
3537         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3538         not a MonoGenericContext.  Use select_container.  Update parameters.
3539         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3540         and MONO_TYPE_MVAR.
3541         (unwrap_arrays): Remove duplicate tests.
3542         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3543         generic instantiated class to find any arguments that are generic
3544         parameters.
3545         (mono_type_create_from_typespec_full): Use find_generic_param to
3546         avoid evicting some generic instantiations from the typespec
3547         cache.
3548
3549 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3550
3551         * reflection.c: fixed writing of doubles on ARM FPA.
3552
3553 2005-12-02  Robert Jordan  <robertj@gmx.net>
3554
3555         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3556
3557 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3558
3559         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3560         least on SUSE 10 they are not the same (on debian, they are just the
3561         same thing).
3562
3563 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3564
3565         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3566         DeclaringType for VARs and MVARs.
3567         * class.c (set_generic_param_owner): Fix initialization of owner
3568         fields.
3569
3570 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3571
3572         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3573
3574 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3575
3576         * threadpool.c: workaround for a bug that shows up on the Mac:
3577         select()+connect() on a blocking socket is not like it should
3578         be, so we proceed to connect() in that case, wasting the I/O
3579         threadpool thread until connect succeedes. Fixes bug #75436.
3580
3581 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3582
3583         * threadpool.c: fix typo when setting file descriptor states.
3584
3585 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3586
3587         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3588         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3589         create a temporary signature container.
3590         (mono_metadata_parse_generic_param): Update to changes.
3591         (mono_type_create_from_typespec_full): Update to changes.
3592         * loader.c (method_from_memberref): Don't use a
3593         MonoGenericContainer while parsing a memberref signature.
3594         (method_from_methodspec): Remove dead-store of the 'container'
3595         variable.  It's overwritten before use.
3596
3597         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3598         checks tighter.
3599         (mono_metadata_parse_generic_param): Likewise.
3600         * loader.c (find_method_in_class): Does not need a
3601         MonoGenericContainer.  Use 'mono_method_signature' rather than
3602         'mono_method_signature_full'.
3603         (find_method, mono_get_method_constrained, method_from_memberref):
3604         Update to changes.
3605
3606         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3607         owner-less generic-parameters are never evicted from the typespec
3608         cache.
3609
3610         * loader.c (method_from_memberref): Don't use the current context
3611         when parsing signatures.
3612         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3613
3614         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3615         side-effects in g_assert.
3616         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3617         that we don't potentially lose information.
3618
3619 2005-11-26  Dick Porter  <dick@ximian.com>
3620
3621         * icall.c:
3622         * threads.c: icalls to implement basic (ie, not named)
3623         System.Threading.Semaphore.
3624
3625 2005-11-24  Dick Porter  <dick@ximian.com>
3626
3627         * process.c
3628         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3629         Use GetProcessId() if it's available.
3630
3631 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3632
3633         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3634
3635 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3636             Ankit Jain  <jankit@novell.com>
3637
3638         * loader.c (mono_get_method_from_token): Initialize 'method' field
3639         of all generic parameters before parsing the signature.  Remove
3640         code that "fixed"-up MVAR references.
3641
3642 2005-11-23  Ankit Jain  <jankit@novell.com>
3643
3644         * metadata.c (mono_metadata_has_generic_params):
3645         (mono_metadata_load_generic_param_constraints):
3646         (mono_metadata_load_generic_params): Move duplicate code ...
3647         (mono_metadata_get_generic_param_row): ... here. Returns the
3648         first row-id in GenericParam table for a given owner (token).
3649         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
3650         prototype.
3651
3652 2005-11-23  Raja R Harinath  <rharinath@novell.com>
3653             Ankit Jain  <jankit@novell.com>
3654
3655         * metadata.c (mono_metadata_class_equal): Pass signature_only when
3656         comparing VARs too.
3657         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
3658         type->data.generic_param only if the type is an MVAR.
3659         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
3660         leak owner-less VARs and MVARs into managed space.
3661
3662 2005-11-21  Martin Baulig  <martin@ximian.com>
3663
3664         * class-internals.h
3665         (MonoMethod): Moved the `generic_container' here from
3666         `MonoMethodNormal' since we now also need it for
3667         `MonoMethodPInvoke';
3668         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
3669         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
3670         an union containing both `MonoMethodNormal' and
3671         `MonoMethodPInvoke'.
3672
3673         * loader.c
3674         (mono_get_method_from_token): Allow implementing generic methods
3675         as interncalls.
3676
3677         * threads.c
3678         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
3679         icall.
3680
3681 2005-11-17  Dick Porter  <dick@ximian.com>
3682
3683         * icall.c: 
3684         * process.h: 
3685         * process.c: Split the Process Start_internal icall into
3686         ShellExecuteEx_internal and CreateProcess_internal, which are
3687         called depending on whether UseShellExecute is true.  Fixes bug
3688         76670.
3689
3690         * appdomain.c (MONO_CORLIB_VERSION): Incremented
3691
3692 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
3693
3694         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
3695         'msize' parameters, use the information in 'mspec' instead.
3696         (emit_object_to_ptr_conv): Ditto.
3697
3698         * marshal.c (emit_struct_conv): Handle explicit layout structs with
3699         fields out of order. Fixes #76733.
3700
3701 2005-11-17  Ankit Jain  <jankit@novell.com>
3702
3703         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
3704
3705 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
3706
3707         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
3708           bug #76575.
3709
3710 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3711
3712         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
3713         for types with non-auto layout. Fixes #76717.
3714
3715 2005-11-16  Ankit Jain  <jankit@novell.com>
3716
3717         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
3718         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
3719         if generic_context is null.
3720           (mono_metadata_generic_param_equal): param->owner can be null.
3721           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
3722         null.
3723
3724 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
3725
3726         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
3727         the correct value.
3728
3729 2005-11-15  Martin Baulig  <martin@ximian.com>
3730
3731         * object.c (set_value): Use mono_class_from_mono_type() instead of
3732         the hack for generic instances; fixes #76136.
3733
3734 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
3735
3736         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
3737         fields.
3738
3739         * image.c (load_metadata_ptrs): Initialize the new fields.
3740
3741         * reflection.c (create_dynamic_mono_image): Ditto.
3742
3743         * reflection.c (build_compressed_metadata): Use the new fields.
3744
3745         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
3746         icall.
3747
3748         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
3749         icall.
3750         
3751 2005-11-15  Ankit Jain  <jankit@novell.com>
3752             Raja R Harinath  <harinath@gmail.com>
3753
3754         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
3755         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
3756         new per-generic_container cache if the cached MonoType's context matches
3757         the current context.
3758           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
3759         to the expected context.
3760           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
3761
3762 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3763
3764         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
3765         we changed the signature of an icall.
3766         * icall.c: Modify to mono_double_ParseImpl return true/false 
3767         depending on the success, instead of throwing the exception. This will
3768         help us in Double.TryParse methods.
3769         
3770 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
3771
3772         * marshal.c (emit_marshal_object): Throw an exception when
3773         marshalling 'object' instead of crashing. Fixes #76696.
3774
3775 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3776
3777         * class-internals.h: Add prototype for mono_type_get_full_name ().
3778
3779 2005-11-11  Dick Porter  <dick@ximian.com>
3780
3781         * threads.c (mono_thread_manage): Make sure the main thread has
3782         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
3783
3784 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
3785
3786         * loader.c (mono_loader_set_error_type_load): Log a warning to the
3787         console about the missing type.
3788         (mono_loader_set_error_method_load): Ditto.
3789
3790 2005-11-09  Miguel de Icaza  <miguel@novell.com>
3791
3792         * mono-config.c (mono_get_config_dir): Set the system defaults if
3793         none is specified.
3794
3795         * assembly.c (mono_set_dirs): New API entry point to set the
3796         assembly and the config directory in one call
3797
3798 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
3799
3800         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
3801         the ftnptr was created from a delegate in a domain other than the
3802         current domain. Fixes #75377.
3803
3804         * exception.h exception.c: Add mono_get_exception_not_supported ().
3805
3806 2005-11-08  Martin Baulig  <martin@ximian.com>
3807
3808         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
3809
3810 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
3811
3812         * security-manager.h: Added definitions to deal with strongname key 
3813         pairs bigger (and smaller) than 1024 bits.
3814         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
3815         adjust wrt the public key length being used.
3816
3817 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
3818
3819         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
3820           Windows build (r51396-51397).
3821
3822 2005-11-03  Martin Baulig  <martin@ximian.com>
3823
3824         * class.c (mono_class_setup_vtable_general): Also add generic
3825         methods to the vtable; fixes #76581.
3826
3827 2005-11-01  Miguel de Icaza  <miguel@novell.com>
3828
3829         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
3830         sure that we lookup GetString method from the System.Text.Encoding
3831         class, not the derived class or we get an empty method.
3832
3833         Fixed class #76612.
3834
3835 2005-10-25  Miguel de Icaza  <miguel@novell.com>
3836
3837         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
3838         if it has been previously set (embedders). 
3839
3840         Make mono_set_rootdir available also on Unix.
3841
3842 005-10-24  Robert Jordan  <robertj@gmx.net>
3843
3844         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
3845
3846 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
3847
3848         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
3849         only calls which are made to native code use this flag.
3850
3851         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
3852
3853 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
3854
3855         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
3856         Add support for FieldBuilders.
3857
3858 2005-10-29  Martin Baulig  <martin@ximian.com>
3859
3860         * mono-debug.c
3861         (mono_debug_using_mono_debugger): New public method; returns
3862         whether we're running inside the debugger.
3863
3864 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
3865
3866         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
3867         for Method/Constructor/FieldBuilders.
3868
3869 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
3870
3871         * reflection.c (module_add_cattrs): Save custom attributes for global methods
3872         and fields as well.
3873
3874 2005-10-26  Martin Baulig  <martin@ximian.com>
3875
3876         * mono-debug-debugger.c
3877         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
3878
3879 2005-10-24  Raja R Harinath  <harinath@gmail.com>
3880
3881         * icall.c (base64_to_byte_array): Don't pass an out-of-range
3882         integer to isspace.
3883
3884 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
3885
3886         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
3887         when passing valuetypes byref. Fixes #76502.
3888
3889 2005-10-19  Jackson Harper  <jackson@ximian.com>
3890
3891         * profiler.c: Don't put a . in front of types that are not in a
3892         namespace.
3893
3894 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
3895
3896         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
3897
3898 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
3899
3900         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
3901         #76436.
3902         (mono_marshal_get_ldflda_wrapper): Fix a warning.
3903
3904 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3905
3906         * assembly.c metadata-internals.h icall.c: Define an additional
3907         parameter for mono_assembly_name_parse_full, so we can avoid creating
3908         S.R.AssemblyName.Version when no version info wasn't passed.
3909         
3910 2005-10-09  Miguel de Icaza  <miguel@novell.com>
3911
3912         * class.c (mono_type_get_full_name): Reimplement method that was
3913         removed. 
3914
3915         * image.c: Some docs
3916
3917 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
3918
3919         * profiler.c (output_newobj_profile): Fix printing of Total memory
3920         on x86.
3921
3922 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3923
3924         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
3925
3926 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
3927
3928         * threads.c: remove debug output.
3929
3930 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3931
3932         * threads.c (mono_thread_manage): Fix crashes if more than 64
3933         threads need to be aborted. Hopefully fixes #75899.
3934
3935         * assembly.c (mono_stringify_assembly_name): New helper function.
3936
3937         * class.c: Use mono_stringify_assembly_name instead of the similar
3938         static function.
3939
3940         * assembly.h assembly.c: Add support for calling a postload search 
3941         hook if an assembly cannot be loaded.
3942
3943         * appdomain.c: Register new search hooks which call the AssemblyResolve
3944         events in AppDomain. Fixes #75231
3945
3946 2005-10-07  Martin Baulig  <martin@ximian.com>
3947
3948         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
3949         methods without debug info.
3950
3951 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
3952
3953         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
3954         wrappers.
3955
3956 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3957
3958         * file-io.c: now that we return symlinks, use lstat and, when the file
3959         is a symbolic link, stat, to get the file attributes. Also avoid the
3960         conversion to/from utf16/external.
3961
3962 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
3963
3964         * class.c (mono_class_layout_fields): Compute klass->has_references
3965         correctly if an embedded valuetype is not yet initialized. Fixes
3966         #76331.
3967
3968 2005-10-04  Martin Baulig  <martin@ximian.com>
3969
3970         * metadata.c
3971         (mono_metadata_load_generic_param_constraints): New public
3972         function; splitted the constraints loading out from
3973         mono_metadata_load_generic_params().
3974
3975         * class.c (mono_class_create_from_typedef): Call
3976         mono_metadata_load_generic_param_constraints() after setting up
3977         the type and creating our parent; fixes #75329.
3978
3979 2005-10-04  Martin Baulig  <martin@ximian.com>
3980
3981         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
3982         non-dynamic parent classes.
3983
3984 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3985
3986         * file-io.c : win32 build fix (ETXTBSY seems not found).
3987
3988 2005-10-04  Martin Baulig  <martin@ximian.com>
3989
3990         * reflection.c
3991         (mono_image_get_methodspec_token): Make the cache actually work;
3992         fixes #75974.
3993
3994 2005-10-04  Martin Baulig  <martin@ximian.com>
3995
3996         * class.c (mono_class_name_from_token): Removed the unneccessary
3997         `MonoGenericContext *' argument.
3998
3999 2005-10-04  Martin Baulig  <martin@ximian.com>
4000
4001         * loader.c
4002         (method_from_methodspec): Make the caching work again; fixes the
4003         performance regression from #76262.
4004
4005 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4006
4007         * file-io.c:
4008         * file-io.h:
4009         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4010         GetFileSystemEntries that performs the same work but without going
4011         into io-layer, locking, etc.
4012
4013 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4014
4015         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4016         ThreadState_Stopped as well. Fixes #76047.
4017
4018 2005-09-29  Martin Baulig  <martin@ximian.com>
4019
4020         * class.c
4021         (inflate_generic_context): If the new context has a `gmethod', set
4022         its `container' that that gmethod's `container'.
4023
4024         * metadata.c
4025         (mono_metadata_parse_generic_param): Simplify things;
4026         `generic_container = generic_context->container;' is just fine.
4027
4028         * loader.c (method_from_methodspec): Code cleanups.
4029
4030 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4031
4032         * decimal.c: fix warning (and let gcc generate correct
4033         code on ARM with optimizations).
4034
4035 2005-09-28  Martin Baulig  <martin@ximian.com>
4036
4037         * loader.c
4038         (method_from_memberref): Added `MonoGenericContext *class_context'
4039         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4040         (method_from_methodspec): If we're a memberref, use the enclosing
4041         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4042
4043 2005-09-28  Martin Baulig  <martin@ximian.com>
4044
4045         * object.c (mono_runtime_invoke_array): Added support for
4046         MONO_TYPE_GENERICINST; fixes #75917.
4047
4048 2005-09-27  Martin Baulig  <martin@ximian.com>
4049
4050         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4051         `k->byval_arg.type' to determine the actual type.
4052
4053         * loader.c (method_from_methodspec): Removed some hacks.
4054
4055 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4056
4057         * class-internals.h (mono_field_is_deleted): Do the test for
4058         rtspecialname before we check the actual name of the field. This
4059         prevents us from dereferencing a pointer into the string table,
4060         saving us from accessing a few pages
4061
4062         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4063         macros. This will allow a deadlock debugger to easily be plugged
4064         in.
4065
4066 2005-09-27  Martin Baulig  <martin@ximian.com>
4067
4068         * loader.c (method_from_methodspec): Create a "signature"
4069         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4070
4071 2005-09-27  Martin Baulig  <martin@ximian.com>
4072
4073         * class.c
4074         (inflate_generic_class): Correctly set the new context's
4075         container.
4076
4077         * loader.c
4078         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4079         instead of a `MonoGenericContext *'.
4080         (mono_method_signature_full): Take a `MonoGenericContainer *'
4081         instead of a `MonoGenericContext *'.
4082
4083         * metadata.c
4084         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4085         instead of a `MonoGenericContext *'.
4086         (mono_metadata_parse_method_signature_full): Likewise.
4087
4088 2005-09-26  Martin Baulig  <martin@ximian.com>
4089
4090         * class.c
4091         (mono_class_from_generic_parameter): Set `klass->generic_container'
4092         (mono_class_from_generic_parameter): Likewise.
4093         (mono_bounded_array_class_get): We inherit the generic container
4094         from the element class.
4095
4096         * loader.c
4097         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4098         argument rather than computing it here.
4099         (method_from_memberref): Correctly set the generic context before
4100         parsing the signature.  Fixes #75681.
4101
4102 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4103
4104         * object.c (mono_class_has_special_static_fields): Fix warnings.
4105
4106 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4107
4108         * assembly.c: Add parse_public_key function, to
4109         par the public keys. Also added mono_assembly_name_parse_full,
4110         to define it the parsed key should be freed or not.
4111         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4112         to parse a long format assembly name.
4113         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4114         private, since calling it to preserve the key requires
4115         freeing it manually.
4116         
4117 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4118
4119         * locales.c : removed HAVE_ICU part.
4120
4121 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4122
4123         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4124         field_is_special_static if the klass has no special static fields.
4125
4126         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4127         (MonoCachedClassInfo): Likewise.
4128
4129         * object.c (mono_class_has_special_static_fields): New helper function.
4130
4131 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4132
4133         * class.c (mono_class_create_from_typedef): Don't call 
4134         interfaces_from_typedef_full for enums.
4135         (mono_class_create_from_typedef): Compute the base types of enums directly
4136         without calling mono_class_setup_fields ().
4137         (mono_class_find_enum_basetype): New helper function.
4138
4139         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4140         one place inside the string heap.
4141         
4142 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4143
4144         * class.c: locking fixes, code cleanups, some docs added.
4145         Allocate some data structures in the image mempool.
4146
4147 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4148
4149         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4150         the example code.
4151         
4152 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4153
4154         * class-internals.h, class.c, reflection.c: reduce memory taken by
4155         MonoClass.
4156
4157 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4158
4159         * metadata.c, metadata.h, loader.h: documentation updates, code and
4160         API cleanups.
4161
4162 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4163
4164         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4165         the example code.
4166
4167         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4168         page faults caused by the runtime while reading metadata.
4169
4170 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4171
4172         * socket-io.c: the field names were changed 3 months ago and no one
4173         realized until bug #76077 got filed!
4174
4175 2005-09-20  Martin Baulig  <martin@ximian.com>
4176
4177         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4178
4179 2005-09-20  Martin Baulig  <martin@ximian.com>
4180
4181         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4182         write the rank into the class entry.
4183
4184 2005-09-20  Martin Baulig  <martin@ximian.com>
4185
4186         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4187
4188 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4189
4190         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4191
4192         * icall.c (custom_attrs_defined_internal): New icall.
4193
4194         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4195         function.
4196         (mono_custom_attrs_construct_by_type): New helper function.
4197
4198 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4199
4200         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4201         terminate the resulting string. Fixes #76123.
4202
4203 2005-09-16  Martin Baulig  <martin@ximian.com>
4204
4205         * mono-debug.c
4206         (mono_debug_add_method): Ignore inflated methods for the moment.
4207
4208 2005-09-14  Martin Baulig  <martin@ximian.com>
4209
4210         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4211
4212 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4213
4214         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4215         return a success/failure indication.
4216         (mono_metadata_interfaces_from_typedef_full): Ditto.
4217         (get_constraints): Ditto.
4218
4219 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4220
4221         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4222         
4223         * marshal.c (emit_marshal_array): Add support for returning string
4224         arrays from delegates. Fixes #76063.
4225
4226         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4227
4228 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4231         icall.
4232
4233 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4234
4235         * reflection.c icall.c: Fix after mono_get_exception_type_load
4236         signature change.
4237
4238         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4239         (mono_assembly_load_reference): Use the new helper.
4240
4241         * class-internals.h (MonoLoaderError): New structure containing 
4242         information about type loading errors.
4243
4244         * class-internals.h loader.c: Add APIs to store per-thread loader
4245         error information.
4246
4247         * loader.c class.c: Set the loader error if needed.
4248
4249         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4250
4251 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4252
4253         * decimal.c: fixed to handle the broken ARM fp format.
4254
4255 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4256
4257         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4258         broken.
4259
4260 2005-09-06  Martin Baulig  <martin@ximian.com>
4261
4262         * domain.c (supported_runtimes): Added v2.0.50727.
4263
4264 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4265
4266         * culture-info.h: reduce the size of some structures.
4267
4268 2005-09-05  Martin Baulig  <martin@ximian.com>
4269
4270         Reflect latest API changes in the August CTP.
4271
4272         * icall.c
4273         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4274         ("MonoType.HasGenericArguments"): Removed.
4275         ("MonoMethod.BindGenericParameters"): Renamed to
4276         "MakeGenericMethod".
4277         ("MethodBuilder.BindGenericParameters"): Renamed to
4278         "MakeGenericMethod".    
4279
4280 2005-09-05  Martin Baulig  <martin@ximian.com>
4281
4282         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4283
4284 2005-09-05  Martin Baulig  <martin@ximian.com>
4285
4286         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4287
4288         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4289         generic_container is non-NULL.
4290
4291 2005-09-05  Martin Baulig  <martin@ximian.com>
4292
4293         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4294
4295         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4296
4297 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4298
4299         * reflection.c (encode_locals,
4300         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4301         for large generic types.
4302
4303 2005-09-05  Martin Baulig  <martin@ximian.com>
4304
4305         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4306
4307         * class.c (mono_dup_array_type): New public method.
4308         (mono_metadata_signature_deep_dup): New public method.
4309         (dup_type): Correctly duplicate array and function types.
4310
4311 2005-09-05  Martin Baulig  <martin@ximian.com>
4312
4313         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4314
4315         * reflection.c (get_default_param_value_blobs): Handle generic types
4316         and generic methods.
4317
4318 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4319
4320         * class.c: Fixed error reporting (method/class were inversed) for 
4321         inheritance demands.
4322         * security-manager.c|h: Added the AppDomain when calling the managed
4323         System.Security.SecurityManager.InheritanceDemand method.
4324
4325 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4326
4327         * reflection.c (encode_marshal_blob): 'marshaltype' and
4328         'marshaltyperef' are alternate sources for the custom marshaler
4329         name.
4330
4331 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4332
4333         * class.c: fix creation of array classes with rank == 1
4334         (patch by Ankit Jain <jankit@novell.com>).
4335
4336 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4337
4338         * object.c: fix check for creating the bound data for arrays vs
4339         szarrays.
4340
4341 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4342
4343         * object.c: configuration file name is now based on the executable name,
4344         not the image name. Fixes bug #75931.
4345
4346 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4347
4348         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4349         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4350
4351 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4352
4353         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4354
4355 2005-08-24  Ankit Jain  <jankit@novell.com>
4356             Raja R Harinath  <rharinath@novell.com>
4357
4358         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4359           called by it recursively.
4360           (mono_class_init): Remove special case in pending_init handling, since it's
4361           superseded by the fix to mono_class_from_typeref.
4362
4363 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4364
4365         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4366         BROKEN_THREAD_START stuff.
4367
4368 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4369
4370         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4371         trampoline.
4372
4373         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4374         
4375         * object.c (mono_delegate_ctor): Replace the original function address with
4376         a delegate trampoline.
4377
4378 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4379
4380         * icall.c: add boolean argument to base64_to_byte_array and 
4381         InternalFromBase64String to control whether a whitespace-only string
4382         is allowed (or should casue a FormatException to be thrown). We need
4383         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4384         to match the MS behaviour in both profiles.
4385         * appdomain.c: Bump corlib version.
4386
4387 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4388
4389         This patch implements a big portion of publisher policy
4390         support, used to bind assembly versions and redirect
4391         one assembly from version A to version B.
4392
4393         * assembly.c:
4394         New GSList loaded_assembly_bindings, for storing the cached
4395         assembly bindings.
4396         (assembly_binding_maps_name): New static function for checking if a 
4397         assembly binding information maps an assembly name.
4398         (mono_assembly_binding_info_free): New function for freeing
4399         assembly binding information resources.
4400         (get_publisher_policy_info): New static function for retrieving 
4401         assembly binding information from a MonoImage.
4402         (compare_versions): New static function for comparing an assembly
4403         binding information data and the version of an assembly name.
4404         (check_policy_versions): New static function for checking if an
4405         assembly binding info mapping an assembly name is valid for it.
4406         (mono_assembly_load_publisher_policy): New static function for
4407         loading the 'policy.major.minor.MyAssembly' image for an assembly
4408         with an assembly name 'aname'.
4409         (mono_assembly_bind_version): New static function for updating
4410         assembly redirection.
4411         (mono_assembly_apply_binding): New static function for applying
4412         assembly binding.
4413         (search_binding_loaded): New static function for searching 
4414         loaded assembly binding infos in the cache domain.
4415         (mono_assembly_load_full): Don't apply assembly binding for
4416         reflection only assemblies.
4417
4418         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4419         which contains information about assembly binding. Also
4420         declare signature for mono_config_parse_publisher_policy ()
4421         function, used to retrieve pub policy info.
4422         
4423         * mono-config.c:
4424         (publisher_policy_start): New static function used to parse publisher 
4425         policy config files.
4426         (publisher_policy_parser): New static MonoParseHandler containing 
4427         the functions used when parsing config files.
4428         (mono_config_parse_publisher_policy): New function for parsing
4429         publisher policy files.
4430         
4431 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4432
4433         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4434
4435         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4436
4437         * object.c (mono_get_addr_from_ftnptr): New helper function.
4438
4439         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4440
4441         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4442
4443 2005-08-19  Dick Porter  <dick@ximian.com>
4444
4445         * threads.c, threads.h, appdomain.c, appdomain.h,
4446         profiler-private.h, monitor.c, object.c, object-internals.h,
4447         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4448         store the thread ID, so it can hold a 64 bit value if needed.
4449
4450 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4451
4452         * reflection.c (mono_reflection_create_dynamic_method): Store the
4453         handle class into the method references as well so ldtoken works in
4454         dynamic methods.
4455
4456         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4457         types.
4458
4459 2005-08-19  Ankit Jain <jankit@novell.com>
4460
4461         Fix #75847.
4462         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4463           here rather than using the method signature of a arbitrary function
4464           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4465           two arguments.
4466           Hack done with Harinath.
4467
4468 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4469
4470         * threadpool.c: disable printing stack traces when we get a exception
4471         in a threadpool thread. I need to do more testing to figure out which
4472         cases actually print this. Fixes bug #75828.
4473
4474 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4475
4476         * icall.c: there might be ignored whitespace after the last '='. This
4477         fixes length computation and bug #75840.
4478
4479 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4480
4481         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4482         well. Fixes #75809.
4483
4484         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4485         #75784.
4486         
4487         * reflection.c (create_custom_attr_data): Ditto.
4488
4489 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4490
4491         * locales.c, culture-info.h : removed RegionLCIDMap.
4492         * culture-info-tables.h : regenerated.
4493
4494 2005-08-16  Martin Baulig  <martin@ximian.com>
4495
4496         * class.c (mono_type_get_name_recurse): Small fix.
4497
4498 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4499
4500         * locales.c : indentation fixie.
4501
4502 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4503
4504         * object-internals.h,
4505           locales.h,
4506           locales.c,
4507           culture-info.h,
4508           icall.c : added RegionInfo table support.
4509         * culture-info-table.h : regenerated for region support.
4510
4511 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4512
4513         * reflection.c (resolve_object): handle all kinds of MonoMethod
4514         including generic ones
4515
4516 2005-08-12  Ankit Jain <jankit@novell.com>
4517
4518         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4519           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4520
4521 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4522
4523         * process.c: Don't close a thread handle when it's NULL. This is a
4524         workaround for bug #75733.
4525
4526 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4527
4528         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4529
4530 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4531
4532         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4533
4534 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4535
4536         * threadpool.c: if a work item in the thread pool has a callback that
4537         catches a exception, don't propagate it after invoking the callback.
4538         Fixes bug #75336.
4539
4540 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4541
4542         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4543
4544         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4545
4546         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4547
4548         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4549
4550 2005-08-03  Ankit Jain  <jankit@novell.com>
4551
4552         Fix #75683.
4553         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4554           PInvoke calling convention is 0.
4555
4556 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4557
4558         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4559         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4560
4561 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4562
4563         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4564         to handle threads not started by the GC (patch by Michael Meeks
4565         <michael.meeks@novell.com>).
4566
4567 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4568
4569         * reflection.c: Make buffer used in emitting types larger for some
4570         big generic types (patch by Michal Moskal).
4571
4572 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4573
4574         * mono-debug.c: Fix some (not all) alignment problems.
4575
4576 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4577
4578         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4579         Invoke mono_image_load_from_data_full passing the refonly
4580         parameter.
4581
4582         * assembly.c
4583         (mono_assembly_open_from_bundle): Add the refonly argument, 
4584         in order to pass it to other methods it calls to.
4585         (do_mono_assembly_open): Add the refonly argument, in order 
4586         to pass it to other methods it calls to.
4587         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4588         the refonly parameter to it.
4589
4590         * image.c: Add loaded_images_refonly_hash and
4591         loaded_images_refonly_guid_hash to cache the reflection
4592         only loaded images.
4593         (mono_images_init): Initialize the hash tables used for
4594         caching the reflection only images.
4595         (load_modules): Invoke mono_image_open_full passing the refonly
4596         parameter to load the modules the correct way.
4597         (build_guid_table): Add the refonly argument, to re-build the 
4598         correct hash table.
4599         (do_mono_image_open): Added the refonly argument, in order to
4600         define it for the loaded image.
4601         (mono_image_loaded_full): New function, which receives an
4602         additional parameter to look for the image in the refonly or
4603         non-refonly section.
4604         (mono_image_loaded): Updated, using mono_image_loaded_full.
4605         (mono_image_loaded_by_guid_full): The same case that happens
4606         with mono_image_loaded_full.
4607         (mono_image_loaded_by_guid): Likewise.
4608         (register_image): Use the ref_only variable inside MonoImage
4609         to decide in which hash table store the current image.
4610         (mono_image_open_from_data_full): Rename
4611         mono_image_open_from_data to mono_image_open_from_data_full,
4612         adding the refonly argument, to define the ref_only variable 
4613         inside MonoImage.
4614         (mono_image_open_from_data): Return 
4615         mono_image_open_from_data_full.
4616         (mono_image_open_full): Rename mono_image_open to
4617         mono_image_open_full, receiving the new refonly argument,
4618         to pass it to inner methods.
4619         (mono_pe_file_open): Update this function, to open
4620         a MonoImage as a non-refonly image.
4621         (mono_image_close): Use the refonly variable inside
4622         MonoImage to remove the image from the correct caches.
4623
4624         * image.h: Add the signatures of mono_image_open_full,
4625         mono_image_open_from_data_full, mono_image_loaded_full,
4626         mono_image_loaded_by_guid_full.
4627
4628         * metadata-internals.h: Add the ref_only field to 
4629         MonoImage.
4630         
4631 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4632
4633         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4634         Fix the last behavior, which used to load the assemblies and
4635         extract MonoReflectionAssemblyName information, instead of
4636         extract it from the metadata tables. Needed for Reflection
4637         Only assemblies.
4638         
4639 2005-07-29  Martin Baulig  <martin@ximian.com>
4640
4641         * mono-debug-debugger.c
4642         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
4643         not initialized.
4644
4645         * mono-debug.c
4646         (mono_debug_address_from_il_offset): Check whether we have
4647         debugging support before attempting to take the lock.
4648         (mono_debug_source_location_from_address): Likewise.
4649         (mono_debug_source_location_from_il_offset): Likewise.
4650         (mono_debug_il_offset_from_address): Likewise.
4651         (mono_debug_address_from_il_offset): Likewise.
4652
4653 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
4654
4655         * class.c (mono_class_from_name_case): Add support for dynamic images.
4656         Fixes #75650.
4657
4658         * object.c (mono_class_compute_gc_descriptor): Add a workaround
4659         for #75479.
4660
4661 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4662         
4663         * reflection.c (mono_method_get_object): Fix warning.
4664
4665 2005-07-28  Martin Baulig  <martin@ximian.com>
4666
4667         * mono-debug.c
4668         (mono_debug_add_wrapper): Also write the wrapper type.
4669
4670 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
4671
4672         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
4673         
4674         * class.c (mono_class_init): Avoid reading nested classes if the AOT
4675         data indicates the class has none.
4676
4677 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
4678
4679         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
4680         loader lock with the debugger lock. Prevents deadlocks for beagle.
4681
4682         Beagle can now run on an smp box for a weekend without any
4683         issues. Woohoo!
4684
4685 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
4686
4687         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
4688         in a module. Fixes #75629.
4689
4690 2005-07-26  Martin Baulig  <martin@ximian.com>
4691
4692         * mono-debug.c (mono_debug_add_wrapper): New static method.
4693         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
4694         interncall or a wrapper.
4695
4696         * mono-debug.h (MonoDebugWrapperData): New public typedef.
4697         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
4698         (MONO_DEBUGGER_VERSION): Bump to 51.
4699
4700         * mono-debug-debugger.c
4701         (mono_debugger_add_type): Removed this empty function.
4702         (mono_debugger_add_method): Likewise.
4703
4704 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
4705
4706         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
4707         before accessing method->slot.
4708
4709 2005-07-21  Jb Evain  <jbevain@gmail.com>
4710
4711         * reflection.c (method_encode_clauses/class): Handle filters clauses.
4712         Fixes #75010.
4713
4714 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
4715
4716         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
4717         #75587.
4718
4719 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
4720
4721         * image.h image.c: Add mono_image_get_guid () API function.
4722
4723 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
4724
4725         There were issues when multiple threads tried to load
4726         assemblies. A deadlock was created between assemblies_mutex and
4727         mono_domain_assemblies_lock. This fixes the issue by making the
4728         assembly ref counting be lock free. See bug 75586.
4729         
4730         * image.c (mono_image_close): The add ref function here was using
4731         Interlocked operations while the unref was using a mutex and a
4732         --. I don't think this was ever a bug that would be exposed in a
4733         non-pendantic way (ie, by an embedder doing a ref on one thread
4734         and an unref on another), but for the sake of correctness, this is
4735         now Interlocked.
4736
4737         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
4738         (mono_assembly_load_reference): Call mono_assembly_addref rather
4739         than touching the refcount ourselves.
4740         (mono_assembly_close): Use InterlockedDecrement to unref the
4741         assembly. Don't acquire the lock unless it is actually needed.
4742
4743 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4744
4745         * class.c (mono_class_layout_fields): Fix calculation of has_references
4746         for generic types.
4747
4748 2005-07-12  Martin Baulig  <martin@ximian.com>
4749
4750         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4751
4752         * metadata.c
4753         (mono_type_hash): Provide better hashing for generic instances.
4754         (mono_generic_inst_hash): Improve hashing.
4755         (mono_generic_class_hash): Likewise.
4756
4757         * reflection.c (mymono_metadata_type_hash): Improve hashing for
4758         generic instances.
4759
4760 2005-07-12  Martin Baulig  <martin@ximian.com>
4761
4762         * reflection.c (mono_reflection_create_runtime_class): Remove the
4763         hack for generic type definitions and non-`Run' assemblies.
4764         (mono_reflection_bind_generic_parameters): Also use
4765         `klass->wastypebuilder' to check for TypeBuilders.
4766
4767 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
4768
4769         * class.c (mono_class_layout_fields): Fix calculation of has_references
4770         for generic types.
4771
4772         * class.c (inflate_generic_class): Fix a leak.
4773         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
4774         for generic types.
4775
4776 2005-07-11  Martin Baulig  <martin@ximian.com>
4777
4778         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
4779         on error.
4780
4781 2005-07-11  Martin Baulig  <martin@ximian.com>
4782
4783         * loader.c (find_method): Also lookup in
4784         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
4785
4786 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4787
4788         * appdomain.c (mono_domain_unload): Don't free the error message
4789         before passing it to mono_get_exception_...
4790
4791         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
4792         
4793 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
4794
4795         * threads.c: try to better guess an available RT signal (bug #75387).
4796
4797 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4798
4799         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
4800         and CACHE_OBJECT.
4801
4802 2005-07-07  Martin Baulig  <martin@ximian.com>
4803
4804         * class.c (mono_type_get_name_full): Return NULL for
4805         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
4806         fixes #75408.
4807
4808 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
4809
4810         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
4811         exit the appdomain as well being aborted.
4812
4813         * threadpool.c: Create all threadpool threads inside the root appdomain, and
4814         change back to the root domain after calling managed code. This enables
4815         appdomains using threadpools to be unloaded.
4816
4817 2005-07-07  Martin Baulig  <martin@ximian.com>
4818
4819         * class-internals.h
4820         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
4821         into `MonoDynamicGenericClass' since we only need it for dynamic
4822         types.
4823
4824         * reflection.c (mono_class_bind_generic_parameters): We don't need
4825         to compute the `parent' here.
4826
4827 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
4828
4829         * culture-info-table.h : regenerated.
4830
4831 2005-07-06  Martin Baulig  <martin@ximian.com>
4832
4833         * icall.c
4834         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
4835
4836         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
4837
4838 2005-07-06  Martin Baulig  <martin@ximian.com>
4839
4840         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
4841         we're doing a signature-only comparision; fixes #74945.
4842
4843 2005-07-06  Martin Baulig  <martin@ximian.com>
4844
4845         * class-internals.h (MonoGenericClass): Moved some things out into
4846         a new `MonoInflatedGenericClass' type.  
4847         (MonoInflatedGenericClass): New type; the `klass' of a
4848         `MonoGenericClass' is now computed lazyly in
4849         mono_get_inflated_generic_class().      
4850
4851         * class.c (mono_get_inflated_generic_class): New public function.
4852         (mono_class_inflate_generic_method): Removed the unused
4853         `MonoClass *' argument.
4854         (setup_generic_vtable): Don't call mono_get_inflated_method() on
4855         all the methods.
4856         (mono_class_create_generic): Make this static and merge it with
4857         mono_class_create_generic_2(); we're now called automatically from
4858         mono_get_inflated_generic_class().
4859
4860         * loader.c (mono_method_signature): Call
4861         mono_get_inflated_method() here.
4862
4863 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
4864
4865         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
4866         type of fields with RVA.
4867
4868         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
4869         for this pseudo class.
4870         (my_mono_class_from_generic_parameter): Likewise.
4871         (mono_class_init): Allow interfaces to have cctors.
4872
4873 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4874
4875         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
4876         lazily for AOT methods.
4877
4878 2005-07-05  Martin Baulig  <martin@ximian.com>
4879
4880         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
4881         returns FALSE for a successful match, not TRUE.
4882
4883 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4884
4885         * loader.c (mono_method_get_index): Optimize this a bit.
4886
4887 2005-07-04  Martin Baulig  <martin@ximian.com>
4888
4889         * class.c
4890         (class_compute_field_layout): Move the check for generic type
4891         definitions into mono_class_layout_fields().  Fixes #74684.
4892         (mono_class_from_generic_parameter): Correctly compute
4893         `klass->parent'; fixes #75457.
4894
4895         * reflection.c (register_assembly, register_module): Make sure
4896         `domain->rejobject_hash' is already created.
4897
4898 2005-07-02  Martin Baulig  <martin@ximian.com>
4899
4900         * class-internals.h
4901         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
4902         `MonoDynamicGenericClass'.      
4903
4904 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
4905
4906         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
4907         returned by a field getter is null, since null is a valid value.
4908
4909 2005-07-01  Martin Baulig  <martin@ximian.com>
4910
4911         * reflection.c (mono_reflection_generic_class_initialize): Update
4912         the `dgclass->fields [i].parent' to the correct class.
4913         (mono_image_get_fieldref_token): Use the declaring type, not the
4914         reflected type.
4915
4916 2005-07-01  Martin Baulig  <martin@ximian.com>
4917
4918         * loader.c (find_method): Also look in the interfaces; fixes #75429.
4919
4920 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
4921
4922         * threads.c (thread_cleanup): assert that thread != NULL
4923         (wait_for_tids_or_state_change): We were using the wrong variable
4924         when accessing wait->threads. `i' was always out of the bounds of
4925         the array.
4926
4927 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4928
4929         * loader.c: map user32 and kernel32 to libMonoSupportW
4930
4931 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
4932
4933         * appdomain.c (unload_thread_main): Mark this as WINAPI.
4934
4935 2005-06-28  Martin Baulig  <martin@ximian.com>
4936
4937         * loader.c (method_from_methodspec): Fix #75334.
4938
4939 2005-06-28  Martin Baulig  <martin@ximian.com>
4940
4941         Fix #74953 - Arrays now implement the generic IList<T> interface
4942         on the 2.0 platform.
4943
4944         * class-internals.h (MonoDefaults): Added `generic_array_class'.
4945
4946         * reflection.c (mono_class_bind_generic_parameters): New public
4947         function; similar to mono_reflection_bind_generic_parameters(),
4948         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
4949
4950         * domain.c (mono_init_internal): Try to initialize.
4951         `mono_defaults.generic_array_class' here; this'll only succeed if
4952         we're using the 2.0 corlib.
4953
4954         * icall.c
4955         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
4956         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
4957         (mono_lookup_internal_call): Added support for nested classes.
4958
4959         * loader.c
4960         (mono_get_method_from_token): Set `result->signature->pinvoke' if
4961         we're an interncall and have generic arguments.
4962
4963         * class.c
4964         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
4965         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
4966         instance of System.Array.InternalArray<T> for arrays, so they
4967         implement the generic IList<T> interface.
4968
4969 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
4970
4971         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
4972         (chastamar@yahoo.com). Fixes #75374.    
4973
4974 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
4975
4976         * culture-info-table.h: regenerated.
4977
4978 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4979
4980         * icall.c: handle spaces correctly for base64 strings.
4981
4982 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
4983
4984         * *.c: Kill some warnings.
4985
4986 2005-06-23  Duncan Mak  <duncan@novell.com>
4987
4988         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
4989         that this builds on Solaris 10 (x86).
4990
4991 2005-06-23  Martin Baulig  <martin@ximian.com>
4992
4993         * class.c
4994         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
4995         generic type definitions.
4996
4997 2005-06-23  Martin Baulig  <martin@ximian.com>
4998
4999         Fix #75331.
5000
5001         * metadata.c (mono_class_get_overrides): Renamed to
5002         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5003         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5004         pass it to mono_get_method_full().
5005
5006 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5007
5008         * reflection.c (mono_reflection_create_runtime_class): take the
5009         mono_domain_lock in this method. Prevents deadlocks
5010
5011 2005-06-22  Martin Baulig  <martin@ximian.com>
5012
5013         * loader.c (method_from_methodspec): Fix #75330.
5014
5015 2005-06-22  Martin Baulig  <martin@ximian.com>
5016
5017         * reflection.c (type_get_qualified_name): Use
5018         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5019         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5020         argument; use it if we don't have an assembly name.
5021
5022 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5023
5024         * object.c: In mono_message_init, set "copy out" flag for in
5025         parameters with the [Out] flag.
5026
5027 2005-06-21  Martin Baulig  <martin@ximian.com>
5028
5029         * class.c
5030         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5031         and MONO_TYPE_PTR.
5032
5033 2005-06-21  Martin Baulig  <martin@ximian.com>
5034
5035         * class.c (mono_class_init): Don't initialize `class->fields' for
5036         generic instances since they're initialized again in
5037         compute_field_layout(). 
5038         (compute_field_layout): Set the field's `generic_info' here; fix
5039         #75320. 
5040
5041 2005-06-21  Martin Baulig  <martin@ximian.com>
5042
5043         * class-internals.h
5044         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5045
5046         * metadata.c (mono_metadata_generic_method_equal): Also
5047         distinguish the `generic_class'; fixes #75334.
5048
5049 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5050
5051         * domain.c:
5052         * appdomain.c:
5053         * domain-internals.h:
5054         * reflection.c: 'domain_assemblies' field is now protected by its own
5055         lock. Don't call into managed code to run the AssemblyLoad event if we
5056         now there are no registered delegates for it.
5057
5058 2005-06-20  Martin Baulig  <martin@ximian.com>
5059
5060         * class.c (mono_class_is_assignable_from): Use a custom version of
5061         mono_class_has_parent() to make things work for generic instances;
5062         fix #75300.
5063
5064 2005-06-20  Martin Baulig  <martin@ximian.com>
5065
5066         * loader.c (method_from_methodspec): Apply a patch from
5067         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5068
5069 2005-06-20  Martin Baulig  <martin@ximian.com>
5070
5071         * class.c (mono_class_init): Reverted Zoltan's last change; it
5072         breaks generics.
5073
5074 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5075
5076         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5077
5078 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5079
5080         * socket-io.c: fix the index in the socket array for writable/error
5081         sockets. Fixes bug #75306.
5082
5083 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5084
5085         * class.c (mono_class_init): Allow interfaces to have static ctors.
5086
5087 2005-06-17  Martin Baulig  <martin@ximian.com>
5088
5089         * loader.c (method_from_methodspec): Use `context->container' when
5090         parsing the `gmethod->inst'.
5091
5092 2005-06-17  Martin Baulig  <martin@ximian.com>
5093
5094         * class.c (mono_type_get_name_recurse): Don't add the assembly
5095         name for type arguments.
5096
5097 2005-06-15  Martin Baulig  <martin@ximian.com>
5098
5099         * reflection.c (mono_image_get_inflated_method_token): Encode
5100         correct klass; fixes #75260.
5101
5102 2005-06-13 Michal Moskal <malekith@nemerle.org>
5103
5104         * icall.c: Make GetCorrespondingMethod/Constructor take
5105         MonoReflectionMethod method not MonoMethod. Removed
5106         MonoType.GetCorrespondingField, and make
5107         MonoGenericType.GetCorrespondingField take name not
5108         MonoClassField.
5109
5110 2005-06-13  Michal Moskal <malekith@nemerle.org>
5111
5112         * reflection.c (field_encode_signature, encode_locals):
5113          Make sizes of buffers for types larger (for big generic types).
5114          (create_generic_typespec,
5115          mono_reflection_sighelper_get_signature_local,
5116          mono_reflection_sighelper_get_signature_field):
5117          Add asserts for too small buffers.
5118
5119 2005-06-15  Martin Baulig  <martin@ximian.com>
5120
5121         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5122         if our parent is not a dynamic type.
5123
5124 2005-06-15  Martin Baulig  <martin@ximian.com>
5125
5126         * class-internals.h (MonoTypeNameFormat): New enum.
5127
5128         * class.c
5129         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5130         (mono_type_get_full_name): Removed.
5131         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5132         argument instead of the boolean's.
5133
5134         * icall.c (ves_icall_System_MonoType_getFullName):
5135         Added `gboolean assembly_qualified'.    
5136
5137         * reflection.h
5138         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5139
5140         * reflection.c (mono_reflection_parse_type): Parse the new type
5141         name format.
5142
5143 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5144
5145         * icall.c: no need to convert from utf16 to utf8 and then back again
5146         after the call to GetLogicalDrives.
5147
5148 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5149
5150         * icall.c: frombase64. Fix problems exposed by new tests.
5151
5152 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5153
5154         * icall.c: added internal calls for converting char [] and strings in
5155         base64 into byte [].
5156
5157 2005-06-10  Martin Baulig  <martin@ximian.com>
5158
5159         * class.c (mono_class_create_generic_2): Read the nested classes
5160         from the metadata rather than from `gklass->nested_classes' since
5161         `gklass' might not be initialized yet.
5162
5163 2005-06-09  Duncan Mak  <duncan@novell.com>
5164
5165         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5166         all public headers. Fixes #74919.
5167
5168 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5169
5170         * domain.c: The key for proxy_vtable_hash is now a pointer
5171         array. Added new GHashFunc and GCompareFunc functions for this.
5172
5173         * class.h: The list of interfaces in MonoRemoteClass is known in
5174         advance and can't grow (we create a new MonoRemoteClass if needed),
5175         so now the interface array can be allocated together with
5176         MonoRemoteClass.
5177         
5178         * object.c: Added a new method create_remote_class_key.
5179         Fixed mono_remote_class so it does not depend on
5180         mono_upgrade_remote_class.
5181         Removed extend_interface_array.
5182         Added new method clone_remote_class(), which makes a copy of a remote
5183         class and adds a new interface or class to it.
5184         mono_upgrade_remote_class() now creates a new remote class (or gets
5185         it from the cache) if an vtable upgrade is needed. In this way
5186         we make sure that other objects sharing the same remote class
5187         don't get the new vtable with unwanted interfaces.
5188         
5189         * object-internals.h:
5190         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5191         
5192         * marshal.c: Track changes in mono_upgrade_remote_class().
5193
5194 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5195         * icall.c: Add runtime methods for obtaining members of inflated
5196         class, which were created from supplied non-inflated members. It
5197         is used in internal Get{Method,Constructor,Field} methods in
5198         System.Type
5199
5200 2005-06-09  Martin Baulig  <martin@ximian.com>
5201
5202         * reflection.c
5203         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5204
5205 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5206         * reflection.c (mono_image_basic_init): Define
5207         Version in MonoDynamicAssembly. 
5208         
5209 2005-06-08  Martin Baulig  <martin@ximian.com>
5210
5211         Fix #75136.
5212
5213         * loader.c
5214         (mono_method_signature_full): New public method; takes a
5215         `MonoGenericContext *'.
5216         (find_method): Use mono_method_signature_full() and pass the
5217         klass'es context to it.
5218
5219         * class.c (mono_class_is_inflated_method): Use
5220         mono_method_signature_full() and pass the context to it.
5221
5222 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5223
5224         * object.c: add proper locking in mono_remote_class_vtable(),
5225         fixes possible memory corruption.
5226
5227 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5228
5229         * marshal.c (mono_remoting_marshal_init): set
5230         initialized after initialization.
5231
5232 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5233
5234         * locales.c : hush.
5235
5236 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5237
5238         * object.c (extend_interface_array): fix really silly
5239         memory corrupting / comparison bug.
5240
5241 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5242
5243         * reflection.c: Functions added to support the creation
5244         of CustomAttributeData, which includes Attribute data
5245         used by ReflectionOnly methods.
5246
5247         * reflection.h:  mono_reflection_get_custom_attrs_data and
5248          mono_custom_attrs_data_construct added (functions exposed).
5249
5250          * icall.c: Added mono_reflection_get_custom_attrs_data
5251          as icall.
5252         
5253 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5254
5255         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5256         lupus's request.
5257
5258 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5259
5260         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5261
5262         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5263         dynamic DllImportAttribute.
5264
5265         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5266         dynamic DllImportAttribute.
5267
5268         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5269         Fixes #75162.
5270
5271 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5272
5273         * threads.c: avoid segfault when an unstarted thread is aborted.
5274
5275 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5276
5277         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5278         Returns the name and version of the runtime for reporting.
5279
5280 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5281
5282         * appdomain.c: bump corlib version.
5283         * object-internals.h: new field in MonoReflectionAssembly.
5284
5285 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5286
5287         * object-internals.h: Carlos forgot to add this field.
5288
5289 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5290
5291         * icall.c: Added create_version to create instances
5292         of Version of MonoReflectionAssemblyName. This change helps
5293         the AssemblyName tests to keep running fine.
5294         
5295 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5296   
5297         * object.c (mono_method_return_message_restore): A somehow less
5298         intrusive fix for #75138.
5299
5300 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5301
5302         * object.c (mono_method_return_message_restore): Fix computation
5303         of expected number of out args.
5304
5305 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5306
5307         * reflection.c (mono_image_get_method_info): Fix the case when the
5308         charset is empty.
5309
5310 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5311
5312         * object.c: Added missing null check in
5313           mono_method_return_message_restore.
5314
5315 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5316
5317         * reflection.c (mono_image_get_method_info): Handle the case when
5318         dllentry is empty.
5319
5320 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5321
5322         * object.c: When creating the vtable for a proxy, take into account
5323         all inherited interfaces, not only the ones registered in
5324         iclass->interfaces. This fixs bug #74996.
5325         Also, in mono_method_return_message_restore, verify that the array
5326         of out args has the expected lengh.
5327
5328 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5329
5330         * socket-io.c: update the timeout in Poll when the call is interrupte.
5331
5332 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5333
5334         * socket-io.c: support abort/suspend in Select_internal after last
5335         change.
5336
5337 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5338
5339         * threadpool.c: remove warning.
5340
5341 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5342
5343         * icall.c:
5344         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5345         removing the 1024 limit from select(). Runtime part of the fix for
5346         bug #71203.
5347
5348 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5349
5350         * socket-io.c: when resolving the addresses for the same
5351         host returned by gethostname(), get the local IPs from the interface
5352         list. Loopback addresses are discarded if the are interfaces up with
5353         non-loopback ones. Fixes bug #63265.
5354
5355 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5356
5357         * appdomain.c, verify.c, object-internals.h, reflection.c:
5358         bumped corlib number to 36, and added new extra_flags field
5359         to ReflectionMethodBuilder and friends.  Fixes #75060.
5360
5361 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5362
5363         * gc.c: register a new weak link only if the object is non-null
5364         (fixes bug#75047).
5365
5366 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5367
5368         * culture-info.h : short time pattern too.
5369
5370 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5371
5372         * culture-info.h : expand long time pattern string length.
5373
5374 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5375
5376         * culture-info-table.h : update (more French date format; #72788).
5377
5378 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5379
5380         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5381         the method is static. Fixes #75029.
5382
5383 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5384
5385         * reflection.c: Update the table_idx field of method builders after
5386         saving the module, since it can change. This is a workaround for
5387         bug #74914. 
5388
5389 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5390
5391         * culture-info-table.h : update (additional French date format).
5392
5393 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5394
5395         * icall.c (ves_icall_type_Equals): Revert last change.
5396         
5397         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5398
5399         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5400
5401 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5402
5403         * class-internals.h: Added executioncontext_class field to 
5404         MonoDefaults structure.
5405         * domain.c: Cache System.Threading.ExecutionContext class in 
5406         mono_defaults.
5407         * object.c: Capture the ExecutionContext for asynchroneous calls in
5408          mono_async_result_new.
5409         * object-internals.h: Added execution_context and original_context 
5410         fields to MonoAsyncResult. Added execution_context to MonoThread.
5411         * security-manager.c|.h: Added mono_get_context_capture_method to 
5412         return the capture method (if required by the security manager or by
5413         the framework version used).
5414         * threadpool.c: Apply capture (if present) ExecutionContext in 
5415         mono_async_invoke and revert to original context after it completes.
5416
5417 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5418
5419         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5420
5421 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5422
5423         * culture-info-table.h : zh-CHT related workaround.
5424
5425 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5426
5427         * marshal.c (emit_marshal_custom): Add some error checking and call the
5428         methods in the ICustomMarshaler interface. Fixes #74875.
5429         
5430         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5431         native->managed wrappers.
5432
5433 2005-05-12  Martin Baulig  <martin@ximian.com>
5434
5435         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5436         here and use the loader lock.
5437
5438         * mono-debug.c: Properly lock when the debugger is not attached.
5439         (mono_debug_init): Release the initial lock if we're not running
5440         in the debugger.
5441
5442 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5443
5444         * marshal.c (emit_marshal_custom): Pass through NULL values without
5445         calling the custom marshalling routines.
5446
5447         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5448         conversion in structures. Fixes #74882.
5449
5450 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5451
5452         * culture-info-table.h : zh-* cultures were missing.
5453
5454 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5455
5456         * threads.c: Added a new event background_change_event which is signaled
5457         when a thread changes its background mode.
5458         Moved here several checks previously done in managed code. The checks
5459         require the thread lock, and using the thread lock in managed code
5460         can result in deadlocks.
5461         Merged Start_internal and Thread_internal into a single method. Now 
5462         Thread_internal does all work of creating and starting a thread.
5463         Added icalls for setting and getting the state of the object. Moved from
5464         managed code to avoid locking there.
5465         Added wait_for_tids_or_state_change() which is called instad of
5466         wait_for_tids when waiting for non-backround threads to end. This method
5467         will return if one of the threads ends or the background_change_event
5468         is signaled.
5469         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5470         the background mode. This method signals the background_change_event
5471         event.
5472         * icall.c:
5473         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5474         removed Start_internal.
5475         
5476 2005-05-11  Martin Baulig  <martin@ximian.com>
5477
5478         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5479         to order of some fields to get proper alignment on 64-bit machines.
5480
5481 2005-05-11  Martin Baulig  <martin@ximian.com>
5482
5483         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5484         changes as they're broken and completely fuck up the debugger.
5485
5486         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5487
5488 2005-05-10  Martin Baulig  <martin@ximian.com>
5489
5490         * reflection.c (mono_reflection_generic_class_initialize): Don't
5491         call mono_class_setup_parent() here.
5492
5493 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5494
5495         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5496         send/receive timeout use an integer in milliseconds. We were using a
5497         struct timeval.
5498
5499 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5500
5501         * locales.c:
5502         (internal_get_cultures): reserve the first slot of the array for the
5503         InvariantCulture, which will be filled in managed code.
5504
5505 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5506
5507         * reflection.c (mono_image_fill_module_table): Initialize the
5508         GENERATION field as well.
5509
5510 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5511
5512         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5513         Monitor.Enter on the object.
5514
5515 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5516
5517         * threads.c: Enable the wait for running threads when exiting.
5518         * icall.c: Suspend all threads before exiting.
5519
5520 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5521
5522         * assembly.c (mono_assembly_load_reference): Fix warning.
5523
5524 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5525
5526         * threadpool.c: changed the default number of threads per cpu. From now
5527         on, the default will be 20 + (5 * number of cpus) instead of 50.
5528
5529 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5530
5531         * loader.c (mono_method_get_signature_full): Add locking here.
5532
5533 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5534
5535         * appdomain.c: Moved methods for parsing and freeing assembly
5536         names to assembly.c.
5537         * assembly.c, domain-internals.h: Created public methods for parsing
5538         assembly names. Fixed mono_assembly_load_with_partial_name:
5539         it now finds the best match, taking into account the version,
5540         token and culture specified in the partial name. Also return
5541         the latest version if no version information is specified.
5542
5543 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5544
5545         * threadpool.c: replace check for SocketAsyncCall class.
5546
5547 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5548
5549         * threadpool-internals.h:
5550         * Makefile.am: added threadpool-internals.h
5551
5552         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5553         that happen in threadpool threads (tested on MS).
5554         (mono_thread_pool_remove_socket): new function that dispatch any pending
5555         AIO call on a socket that is closing. By now only epoll really needs it,
5556         as select/poll wake up when the socket closes.
5557
5558
5559         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5560
5561 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5562
5563         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5564
5565 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5566
5567         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5568
5569 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5570
5571         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5572         has an abort request, convert it into a suspend request.
5573
5574 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5575
5576         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5577         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5578         is not supported yet.
5579
5580 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5581
5582         * image.c: register assemblies loaded from data (bundles) in the loaded
5583         assemblies hash. Fixes bug #74772.
5584
5585 2005-04-29  Martin Baulig  <martin@ximian.com>
5586
5587         * class.c (mono_type_get_name_recurse): Update to the new naming
5588         schema from the latest .NET 2.x beta2.
5589         (mono_class_setup_vtable_general): If we're a generic instance,
5590         copy the vtable from our generic type definition and inflate all
5591         the methods in it.
5592
5593         * loader.c (find_method): Update to the new naming schema from the
5594         latest .NET 2.x beta2.
5595
5596 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5597
5598         * class.c (mono_class_init): Add a mono_loader_unlock to the
5599         #74734 fix.
5600
5601 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5602
5603         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5604         suspend_all_other_threads () call for the time being, since it can hang.
5605
5606         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5607         the background threads to exit, since it can also hang.
5608
5609         * class.c (mono_class_init): Applied patch from Ankit Jain 
5610         (radical@gmail.com). Avoid pending init errors when a field refers
5611         to a nested class using a typeref. Fixes #74734.
5612
5613         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5614         this for dynamic modules.
5615
5616 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5617
5618         * threads.c: don't wait for threads that are in the process of aborting
5619         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5620         and waiting for background threads to finish. This makes xsp and
5621         mod-mono-server exit without random length delays and/or hangs.
5622
5623 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5624
5625         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5626
5627 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5628
5629         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5630         dynamic types to prevent infinite loops. Fixes #74727.
5631
5632         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5633         ..._is_assignable_to.
5634
5635 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
5636
5637         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
5638
5639 2005-04-25  Martin Baulig  <martin@ximian.com>
5640
5641         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
5642
5643         * domain.c
5644         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
5645
5646         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
5647
5648         * reflection.c (build_compressed_metadata): Set metadata header
5649         version to 2.0.
5650
5651 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
5652
5653         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
5654         number into an integral and a decimal part. Fixes #70473.
5655
5656         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
5657
5658 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
5659
5660         * culture-info-table.h : reflected the latest locale-builder output.
5661
5662 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5663
5664         * threadpool.c: check for SuspendRequested too when deciding if
5665         mono_thread_interruption_checkpoint should be called.
5666
5667 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5668
5669         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
5670         * threads.c: remove interruption_mutex and use Interlocked instead. When
5671         suspending all the threads, wait for all the suspended events at once.
5672         If we're shutting down and get an APC that is going to be queued,
5673         call mono_thread_execute_interruption immediately, as the thread might
5674         be sleeping on a pthread condition or mutex.
5675
5676         * icall.c: call mono_runtime_set_shutting_down before suspending the
5677         threads.
5678
5679         Fixes bug #74693. And now xsp is happier when exiting.
5680
5681 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
5682
5683         * loader.c (mono_stack_walk): Fix #74690.
5684
5685 2005-04-22  Martin Baulig  <martin@ximian.com>
5686
5687         * mono-debug.h (MonoDebugMethodJitInfo): Added
5688         `MonoDebugMethodJitInfo *jit'.
5689
5690         * mono-debug.c (mono_debug_read_method): Cache the
5691         MonoDebugMethodJitInfo in `address->jit'.
5692         (mono_debug_free_method_jit_info): New public method.
5693
5694 2005-04-22  Martin Baulig  <martin@ximian.com>
5695
5696         * class.c (mono_class_is_assignable_from): Disallow
5697         type parameter -> interface.
5698
5699 2005-04-21  Dick Porter  <dick@ximian.com>
5700
5701         * threads.c (mono_thread_create): Turn an assertion into an error.
5702
5703 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
5704
5705         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
5706         
5707         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
5708         Fix some gcc 4.0 warnings.
5709
5710 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
5711
5712         * file-io.c: fix alt dir separator char on unix systems
5713         and cleanup (fixes bug #71214).
5714
5715 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
5716
5717         * marshal.c: Use CALLVIRT instead of CALL when dispatching
5718         a call to a remote domain, since the method may be an
5719         interface method in the client domain. This fixes bug #74192.
5720
5721 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5722
5723         * threadpool.c: recv/send are now performed before going back to managed
5724         code to save one transition.
5725
5726 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5727
5728         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
5729
5730         * metadata/threadpool.c: removed hack to workaround the bug above.
5731
5732         Fixes bug #74618.
5733
5734 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
5735
5736         * reflection.c reflection.h: Fix handling of parameter defaults in
5737         dynamic methods. Also fixes handling of parameter attributes.
5738         Fixes #74609.
5739
5740         * mono-debug.c (mono_debug_close_image): Fix warning.
5741
5742 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5743
5744         * socket-io.h: replaced old unused field with new 'blocking'.
5745         * threadpool.c: restore socket blocking state on windows(tm).
5746
5747 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
5748
5749         * icall.c: don't return the codebase in the AssemblyName[] returned by
5750         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
5751         * object-internals.h: Removed FIXME (fields were presents) and fixed
5752         versioncompat declaration.
5753
5754 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5755
5756         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
5757         not closed, so don't cleanup when it happens.
5758
5759 2005-04-13  Chris Toshok  <toshok@ximian.com>
5760
5761         * mono-debug-debugger.h: change prototype for
5762         mono_debugger_lookup_type.
5763
5764         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
5765         this function, although it should probably be named
5766         mono_debugger_init_type.
5767
5768 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5769
5770         * threadpool.c: fix non-AIO case.
5771
5772 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
5773
5774         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
5775         the built-in profiler to measure just JIT compilation times.
5776
5777 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5778
5779         * threadpool.c: the epollfd might be closed by another thread at
5780         any time, so ignore EBADF at treat it as a "we're closing" sign.
5781
5782 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5783
5784         * threadpool.c: release the semaphores with a count equals to the number
5785         of working threads in both IO and regular pools. Fixed typo that messed
5786         up the count of IO pool threads. Don't initialize the pipe handles if
5787         we're using epoll.
5788
5789 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5790
5791         * threadpool.c: some systems don't like a NULL when deleting the socket
5792         from epoll.
5793
5794 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5795
5796         * threadpool.c: fix semaphore allocation.
5797
5798 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5799
5800         * threadpool.c: added epoll() based implementation for asynchronous IO
5801         that is used instead of the default poll() when available.
5802         It can be disabled by setting MONO_DISABLE_AIO.
5803
5804 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5805
5806         * threadpool.c: windows needs 'closesocket' and instead of returning
5807         0 when the stream is closed while in select, it returns -1. Fixes bug
5808         #74573.
5809
5810 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
5811
5812         * class.c (class_compute_field_layout): Fix the regression caused by
5813         the previous try.
5814
5815 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5816
5817         * threadpool.c: separate pool for socket async. IO.
5818         * threadpool.h: mono_max_worker_threads is not a global any more.
5819
5820 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
5821
5822         * class.c (class_compute_field_layout): Fix #74549.
5823
5824 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5825
5826         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
5827         use 2 connected sockets instead.
5828
5829 2005-04-08  Miguel de Icaza  <miguel@novell.com>
5830
5831         * mono-config.c: Add new entry point for mkbundle
5832         mono_config_parse_memory. 
5833
5834 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5835
5836         * threadpool.c: removed another unused function.
5837
5838 2005-04-08  Ankit Jain  <radical@corewars.org>
5839
5840         * reflection.c (get_default_param_value_blobs): Add 'types'
5841         parameter to get the types encoded in the constant table.
5842         (mono_param_get_objects): Use the type from the constant table,
5843         not the type of the parameter, when creating default values.
5844         Handle null default values correctly.
5845
5846 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5847
5848         * file-io.c:
5849         * file-io.h:
5850         * threadpool.c:
5851         * threadpool.h:
5852         * icall.c:
5853         * socket-io.c: removed dead code for async IO.
5854
5855 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5856
5857         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
5858
5859         * threadpool.c: intercept socket async. calls and pass them to a thread
5860         that is polling and dispatching the job items to the threadpool as
5861         socket become ready. Fixes bugs #71217, #71933.
5862
5863         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
5864         between char and short/ushort arrays.
5865
5866         * socket-io.c: remove dead code.
5867
5868 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5869
5870         * locales.c,
5871           icall.c : removed InternalToUpper_Comp() and
5872           InternalToLower_Comp().
5873
5874 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5875
5876         * char-conversions.h : The tables were incorrectly generated. Should
5877           be generated against invariant culture.
5878
5879 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
5880
5881         * object.c (mono_runtime_invoke_array): Fix return value when 
5882         passing pre-created valuetype objects to ctors.
5883
5884         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
5885         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
5886         Fixes #74338.
5887
5888 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
5889
5890         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
5891         only used with --security and hides the wrong corlib version error.
5892
5893 2005-03-30  Joshua Tauberer  <tauberer@for.net>
5894
5895         * class.c: Changed mono_class_name_from_token so that types
5896         outside of a namespace don't have an initial period.  Improved
5897         the g_warning message used in _mono_class_get when loading
5898         fails.
5899         * assembly.c: In mono_assembly_load_reference, when an assembly
5900         can't be found, "No such file or directory" is misleading and
5901         unhelpful because a few paths were checked for the presence of
5902         the assembly.  When that happens (ENOENT), display a nicer
5903         message indicating the directories that were searched.  In all
5904         cases, the warning is made easier to read for non-hackers.
5905
5906 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
5907
5908         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
5909         project/solution.
5910         * appdomain.h|domain.c: Removed inline from functions.
5911         * appdomain.c: Reduced warnings when compiling on windows.
5912         * icall.c: Fixed output_debug declaration to gunichar2*.
5913         * mono-config.c: Reduced warnings when compiling on windows.
5914         * rand.c: Added missing "windows.h". Added missing return value.
5915         * rawbuffer.c: Added missing winsock2.h for windows.
5916         * sysmath.h: Added mono-compiler.h header to allow/ease 
5917         compilation with non-GCC compilers.
5918         * threads.c: Fixed declarations to compile with VS.NET C compiler.
5919         Removed cast warnings.
5920
5921         Adapted from the work of J Lothian (for VC6).
5922
5923 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
5924
5925         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
5926         from default_path.
5927
5928 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
5929
5930         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
5931         the 2.0 profile.
5932
5933 2005-03-27  Raja R Harinath  <harinath@gmail.com>
5934
5935         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
5936         has to be in $(exec_prefix).  $(prefix) is for arch-independent
5937         stuff, and it would probably use $(prefix)/share rather than
5938         $(prefix)/lib.
5939
5940 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5941
5942         * console-io.c: added 2 includes that might be missing.
5943
5944 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
5945
5946         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
5947         profile.
5948
5949         * reflection.c (create_custom_attr): Allocate the params array using
5950         alloca so it gets GC tracking.
5951
5952 2005-03-23  Chris Toshok  <toshok@ximian.com>
5953
5954         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
5955         out some spew.
5956
5957 2005-03-24  Raja R Harinath  <rharinath@novell.com>
5958
5959         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
5960         changes to pick up any changes in prefix, etc.
5961
5962 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5963
5964         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
5965         
5966         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
5967         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
5968
5969 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5970
5971         * class-internals.h object-internals.h class.c reflection.c: Extend the
5972         mono_lookup_dynamic_token () function to return the class of the
5973         token as well. 
5974
5975         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
5976         well. Fixes #73848.
5977
5978 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
5979
5980         * security-manager.c: Skip inheritance checks for intra-corlib
5981         class inheritance and method overrides. This skips a lot of checks
5982         and (anyway) permissions cannot work until corlib is loaded.
5983
5984 2005-03-23  Martin Baulig  <martin@ximian.com>
5985
5986         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
5987         MONO_TYPE_GENERICINST.  
5988
5989 2005-03-23  Martin Baulig  <martin@ximian.com>
5990
5991         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
5992
5993 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5994
5995         * class.c: added locking comments to some functions.
5996         Cache the interface offsets arrays (saves about 20 KB
5997         of runtime memory in a typical app).
5998         Reduce the time overhead in mono_class_setup_supertypes ().
5999
6000 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6001
6002         * icall.c: speedup and fix leaks in GetMethodsByName and
6003         GetPropertiesByName.
6004
6005 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6006
6007         * reflection.c: some locking fixes.
6008
6009 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6010
6011         * metadata.c: added missing break in case statement.
6012
6013 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6014
6015         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6016         typedbyref return values. Fixes #73941.
6017
6018 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6019
6020         * security-manager.c|h: Added demandunmanaged method and 
6021         suppressunmanagedcodesecurity class to MonoSecurityManager.
6022         Renamed aptc class to allowpartiallytrustedcallers.
6023
6024 2005-03-17  Martin Baulig  <martin@ximian.com>
6025
6026         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6027
6028 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6029
6030         * file-io.c: disabled file async. IO using aio_*. It uses the
6031         threadpool now. Workaround for bug #73718.
6032
6033 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6034
6035         * assembly.h, mono-config.c: added code to deal with bundled configs
6036         for bundled assemblies.
6037
6038 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6039
6040         * *.c, private.h: cleanup, removing old private.h header file.
6041
6042 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6043
6044         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6045         and throw_on_unmappable_char attributes.
6046
6047 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6048
6049         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6050         _ProcessName_internal.
6051
6052 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6053
6054         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6055         #73631.
6056
6057         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6058         are no longer used.
6059
6060 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6061
6062         * object.c (compute_class_bitmap): Add support for generics. Fixes
6063         #73527.
6064
6065 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6066
6067         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6068
6069 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6070
6071         * filewatcher.c: commented out the code for windows watcher, as we don't
6072         use it (we use the managed implementation instead).
6073
6074 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6075
6076         * object-internals.h (MonoThread): Remove 'unused1' field.
6077
6078         * appdomain.c: Bump corlib version.
6079
6080         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6081
6082         * reflection.c (mono_reflection_create_runtime_class): Remove the
6083         AssemblyBuilder.Save optimization since it causes too many problems.
6084
6085 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6086
6087         * exception.c|h: Added mono_get_exception_reflection_type_load to
6088         create a ReflectionTypeLoadException object.
6089         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6090         to return NULL is a InheritanceDemand fails during reflection. Updated
6091         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6092         ReflectionTypeLoadException if an InheritanceDemand fails during 
6093         reflection. Added icall mapping for GetLinkDemandSecurity.
6094         * security-manager.c|h: Added ves_icall_System_Security_
6095         SecurityManager_GetLinkDemandSecurity internal call to return the
6096         class and methods permissions set for a LinkDemand. Removed unused
6097         fields in MonoSecurityManager.
6098
6099 2005-03-10  Martin Baulig  <martin@ximian.com>
6100
6101         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6102         it's a generic instance.
6103
6104 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6105
6106         * reflection.c (mono_get_object_from_blob): Applied patch from
6107         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6108
6109         * class.c (mono_class_is_assignable_from): Another try at fixing 
6110         #73469 without breaking anything.
6111
6112 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6113
6114         * class.c: (mono_class_is_assignable_from): Revert the last changes
6115         since they don't work with generics.
6116         
6117         * class.c (mono_class_is_assignable_from): Fix build bustage.
6118
6119         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6120         the managed IsAssignableFrom method. Fixes #73469.
6121
6122         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6123         function.
6124
6125 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6126
6127         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6128         memory when the remoting callback does not sets the out arguments.
6129         Fixes #73007.
6130
6131         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6132         by mistake.
6133
6134         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6135
6136         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6137
6138         * appdomain.c: Bump corlib version.
6139
6140 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6141
6142         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6143         function.
6144
6145         * threads.c (mono_thread_attach): Detect threads which are not started
6146         by the GC pthread wrappers.
6147
6148 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6149
6150         * icall.c: Added new icall for RNG.
6151         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6152         single handle on Linux to access /dev/urandom and fix #73183.
6153
6154 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6155
6156         * object.c: setting the new vtable in a transparent proxy object must
6157         not change the GC descriptor.
6158
6159 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6160
6161         * object.c: fixed compilation without GCJ support.
6162         * reflection.c: for runtime-created types ensure klass->has_references
6163         is correct (bug #73215).
6164
6165 2005-03-02  Martin Baulig  <martin@ximian.com>
6166
6167         * class.c (mono_class_is_assignable_from): Make this work if
6168         `oklass' is a generic instance; fixes #72831.
6169
6170 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6171
6172         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6173         with hasthis set.
6174         
6175         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6176
6177         * marshal.c: Reorganize native->managed marshalling code to also use
6178         the emit_marshal_... functions.
6179
6180 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6181
6182         * object.c: typed allocs have issues with bitmap sizes > 30,
6183         so check for max_set >= 30.
6184
6185 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6186
6187         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6188         managed code. Fixes #73012.
6189
6190         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6191
6192         * metadata.c reflection.c: Load/Emit elem_mult as well.
6193         
6194         * metadata.h (MonoMarshalSpec): Add comment.
6195
6196         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6197
6198         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6199         num_elem to -1 if not given.
6200
6201         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6202
6203         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6204         given values.
6205
6206 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6207
6208         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6209
6210 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6211
6212         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6213
6214         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6215
6216 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6217
6218         * object.c: generalized the reference bitmap creation
6219         and added hooks for the new GC.
6220         * class-internals.c: removed the gc_bitmap field from MonoClass.
6221
6222 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6223
6224         * domain.c: help the compiler to produce better code
6225         in mono_jit_info_table_find ().
6226
6227 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6228
6229         * object.c: make all allocations look typed.
6230
6231 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6232
6233         * socket-io.c: load Mono.Posix if it's not loaded already
6234         (fixes bug#73033).
6235
6236 2005-02-24  Martin Baulig  <martin@ximian.com>
6237
6238         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6239         * reflection.c (dup_type): Likewise.
6240
6241 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6242
6243         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6244         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6245
6246 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6247
6248         * domain.c, threads.c, object-internals.h: make the critical thread
6249         local vars use the fast access mode (even when we're compiled in
6250         a lib). Provide accessors to be used by the jit during codegen.
6251
6252 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6253
6254         * appdomain.c: Changed hook functios behavior to include
6255         support for the reflection only assemblies. Some icalls were changed
6256         to support the mentioned assemblies too. Signatures of static methods
6257         try_assembly_resolve and real_load now have an additional parameter:
6258         refonly.
6259
6260         * assembly.c: General changes to mono_assembly_ methods to support
6261         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6262         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6263         suffix, to support an additional gbool parameter to specify whether
6264         the assembli is reflection only or not. Created some new hook functions 
6265         to add support for reflection only assemblies. Signatures of static 
6266         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6267         have now an additional parameter: refonly.
6268
6269         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6270         indicating whether the assembly is reflection only or not.
6271
6272         * exception.c: Add mono_get_exception_invalid_operation.
6273
6274         * icall.c: Throw an InvalidOperationException when trying to invoke
6275         a property/method/event, or trying to set/get the value of a field.
6276         Also add an icall to retrieve the ref_only flag to the
6277         MonoReflectionAssembly.
6278
6279 2005-02-23  Chris Toshok  <toshok@ximian.com>
6280
6281         Part of fix for #72827.
6282         * mono-debug.c (mono_debug_add_method): add lexical block data to
6283         the info we write.  Kind of a hack at the moment - we copy the
6284         lexical block info from the MonoDebugMethodInfo to the
6285         MonoDebugMethodJitInfo here, before writing it.
6286         (mono_debug_read_method): read the lexical block info.
6287
6288         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6289
6290         * debug-mono-symfile.h: add lexical block support.
6291
6292         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6293         support.
6294
6295 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6296
6297         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6298
6299         * object.c (mono_runtime_free_method): Call mono_free_method () and
6300         put the TODOs there.
6301
6302         * loader.c (mono_free_method): Free up most memory allocated for 
6303         dynamic methods.
6304
6305 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6306
6307         * reflection.c: properly flag a Type argument to a
6308         named custom attr value (bug #72248).
6309
6310 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6311
6312         * reflection.c: reduce code duplication in named custom
6313         attribute encoding.
6314
6315 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6316
6317         * reflection.c: properly encode custom attrs of type object
6318         (bug #72649).
6319
6320 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6321
6322         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6323
6324 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6325
6326         * socket-io.c: load System.dll if it's not loaded already
6327         (bug #72850 and #70477).
6328
6329 2005-02-21  Martin Baulig  <martin@ximian.com>
6330
6331         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6332         generic instances.
6333
6334 2005-02-21  Martin Baulig  <martin@ximian.com>
6335
6336         * reflection.c (mono_image_build_metadata): We also need to
6337         "fixup" the MethodImpl table after we computed the final method
6338         indices.  Call fixup_methodimpl() to do that.
6339         (fixup_methodimpl): New private method.
6340
6341 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6342
6343         * assembly.c: special case mscorlib.dll (bug#72536),
6344         patch from Carlos Alberto Cortez.
6345
6346 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6347
6348         * threads-types.h threads.c: Fix build bustage.
6349
6350         * threads.c: Use a union for long<->double conversions.
6351
6352         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6353         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6354
6355         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6356         containing the checkpoint call with NOT_TAKEN.
6357         
6358         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6359         checkpoint before pushing the arguments, so they won't have to be
6360         spilled to stack.
6361
6362 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6363
6364         * domain.c, assembly.c, domain-internals.h: make some data
6365         const and relocation-free.
6366
6367 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6368
6369         * object.c, appdomain.c, class-internals.h: introduce the
6370         MonoClassRuntimeInfo structure to hold the info needed to
6371         use a class at runtime. Made mono_class_vtable() lock-free
6372         for all the appdomains.
6373
6374 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6375
6376         * metadata-internals.h, image.c: introduce a per-image mempool to
6377         be used for memory that has the same lifetime as the image.
6378
6379 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6380
6381         * domain.c: In mono_init_internal(), instead of selecting the first
6382         runtime version supported by an executable, get a list of all
6383         supported versions and select the one for which an mscorlib exists
6384         (since even if the runtime supports a given version, it doesn't mean
6385         that the framework for that version is installed).
6386         Modified get_runtimes_from_exe to support this behavior.
6387         In supported_runtimes, added information about additional system
6388         assembly versions.
6389         
6390         * assembly.c: Added support for more than one system assembly version
6391         per runtime version. Updated the assembly list.
6392         In mono_assembly_remap_version, removed the initial version check,
6393         since we don't know to which version we need to compare until we
6394         get the version set on which the assembly is based.
6395         Moved the code for loading corlib into the new method
6396         mono_assembly_load_corlib(), so it can be used by the initialization
6397         code.
6398         
6399         * domain-internals.h: Updated data structures and added declaration
6400         for mono_assembly_load_corlib.
6401
6402 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6403
6404         * reflection.c (resolve_object): Fix the creation of the signature in 
6405         the SignatureHelper case.
6406
6407         * assembly.c (mono_assembly_remap_version): Fix binary search.
6408         
6409 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6410  
6411         * class.c: Added inheritance check when a method is overloaded (from a
6412         virtual method or when implementing an interface) and when a class is
6413         inherited. Added functions to set a failure for a class and to 
6414         retreive the exception from a failure.
6415         * class-internals.h: Added fields to MonoClass to keep the exception
6416         information status for inheritance (or other exceptions) to be thrown
6417         later (i.e. not at load time).
6418         * object.c: Throw the inheritance SecurityException when a type is to 
6419         be created with either class or method inheritance violations.
6420         * reflection.c|h: Fix when getting declsec from a class. Removed 
6421         unrequired code for class. Improved sanity in parameter naming.
6422         * security-manager.c|h: Added functions to check for class and method
6423         inheritance.
6424
6425 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6426
6427         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6428         and has_finalize in dynamic types as well.
6429
6430 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6431
6432         * culture-info-table.h : fixed currency format for en-GB (and so on).
6433
6434 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6435
6436         * gc.c: ensure the GC handles never have 0 as a value.
6437
6438 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6439
6440         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6441         a pointer to a struct to unmanaged code. Fixes #72625.
6442
6443 2005-02-16  Martin Baulig  <martin@ximian.com>
6444
6445         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6446
6447 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6448
6449         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6450
6451 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6452
6453         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6454
6455         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6456         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6457         etc. Fixes #71471.
6458
6459         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6460
6461         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6462
6463 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6464
6465         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6466         changes to make the current context a field in MonoThread.
6467
6468 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6469
6470         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6471         the last change.
6472         
6473         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6474         extracted from mono_marshal_get_native_wrapper.
6475
6476         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6477         to create wrappers around native functions.
6478
6479         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6480         delegates for arbitrary function pointers. Fixes #71472.
6481
6482 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6483
6484         * threads.c: cleaned up the code a little.
6485
6486 2005-02-15  Martin Baulig  <martin@ximian.com>
6487
6488         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6489         the data table.
6490
6491         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6492         allocate larger chunks if needed.
6493
6494 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6495
6496         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6497         in by mistake.
6498
6499 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6500
6501         * domain.c: keep the domains in an array and ensure the domain ids
6502         are kept small, so they can be used as indexes to domain-specific data
6503         with a small memory overhead.
6504
6505 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6506
6507         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6508
6509 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6510
6511         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6512
6513 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6514
6515         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6516
6517         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6518         values.
6519
6520         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6521         
6522 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6523
6524         * domain-internals.h: add the hashtable here.
6525
6526         * class-internals.h: Remove `info' from MonoMethod
6527
6528         * domain.c: Add a new hashtable, jit_trampoline_hash
6529
6530 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6531
6532         * object.c: don't set the value of static fields
6533         (fixes bug#72494).
6534
6535 2005-02-11  Martin Baulig  <martin@ximian.com>
6536
6537         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6538         (mono_debug_add_method): Silently ignore the method if it's too big.
6539         (mono_debug_add_type): Likewise.
6540
6541 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6542
6543         * threads.c, appdomain.c: remove #ifdefs from the code.
6544
6545 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6546
6547         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6548         common security informations. This allows us to stay in unmanaged code
6549         when doing LinkDemand and it's special cases (except for the first 
6550         time for initialization). The flags a very much used with --security.
6551         * reflection.c|h: Added code to get declarative security attributes 
6552         for LinkDemand and InheritanceDemand. This required to refactor the
6553         existing code for Demand.
6554         * security-manager.c|h: Added new method fields for the special cases
6555         of LinkDemand.
6556
6557 2005-02-10  Martin Baulig  <martin@ximian.com>
6558
6559         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6560         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6561
6562 2005-02-10  Martin Baulig  <martin@ximian.com>
6563
6564         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6565         debugging code; this is almost a complete rewrite.
6566
6567         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6568
6569 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6570
6571         * domain.c, object.h: expose mono_string_equal () and 
6572         mono_string_hash ().
6573         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6574         it's implemented in managed code.
6575
6576 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6577
6578         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6579         lo leak objects between appdomains.
6580
6581 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6582
6583         * assembly.c: old compilers compilation fix from 
6584         robertj@gmx.net (Robert Jordan).
6585
6586 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6587
6588         * class-internals.h: Little reminder for the future.
6589
6590         * debug-helpers.c: Fix up wrapper_type_names
6591
6592 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6593
6594         * image.c, metadata-internals.h: when loading an image from a file,
6595         mmap all of it and use the same codepaths as when using a
6596         in-memory image: the code is simpler and we use less memory
6597         (both writable and readonly).
6598
6599 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6600
6601         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6602         API to alloc runtime data structures that need to be tracked by the
6603         GC and contain pointers.
6604         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6605         make the code more readable and eventually use a different GC.
6606
6607 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6608
6609         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6610         for out arguments.
6611         
6612 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6613
6614         * object.c: In release_type_locks(), don't release the cctor lock
6615         if it has already been released. This fixes a crash in the
6616         thread5 test.
6617
6618 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6619
6620         * gc.c, marshal.c, icall.c: register a delegate for finalization
6621         only when the native function pointer has been allocated for it.
6622
6623 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6624
6625         * object.c: cleaned up some code, allocate objects that are
6626         pointer free with the atomic malloc variant. Allocate memory
6627         for static data from the mempool if it's pointer-free.
6628         Allocate the bounds array at the end of the array data, when needed.
6629         * object-internals.h, object.h: move a private function in a private
6630         header.
6631         * class.c: handle missing case in tracking references in fields.
6632
6633 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6634
6635         * class.c, class-internals.h: keep track if a type has
6636         reference fields in either the instance or static fields.
6637
6638 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
6639
6640         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
6641         and renamed to MonoRuntimeInfo. Added fields to store the expected
6642         framework assembly version. Changed mono_get_framework_version and
6643         mono_get_runtime_version for a single mono_get_runtime_info method.
6644         
6645         * assembly.c: Added method to remap system assembly versions to the
6646         current executing runtime version. Removed old mapping code.
6647         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
6648         
6649         * icall.c, reflection.c: Track api changes.
6650
6651 2005-02-06  Miguel de Icaza  <miguel@novell.com>
6652
6653         * loader.c (method_from_memberref): Improve error reporting,
6654         produce the class name instead of the typeref/typedef index. 
6655
6656 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
6657
6658         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
6659
6660 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6661
6662         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
6663         stdcall and charset name mangling.  Reorganize the code and add
6664         some tracing stuff.
6665
6666 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6667
6668         * monodiet.c: More iters!
6669
6670         * marshal.c: Iter usage.
6671
6672         * icall.c: Iter usage.
6673
6674         * object.c: Use iters.
6675
6676         * debug-helpers.c: More iters
6677
6678 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6679
6680         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
6681         under win32.
6682
6683 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
6684
6685         * mono-debug-debugger.c: use iters
6686
6687         * class.c, class-internals.h: mono_class_setup_events is static
6688         now
6689
6690         * All callers: use iters
6691
6692 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
6693
6694         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
6695         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
6696
6697 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6698
6699         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
6700
6701         * marshal.h: Add prototypes for ldfld/stfld_remote.
6702
6703         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
6704         this is called during startup.
6705         
6706 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
6707
6708         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
6709         MonoThreadsSync struct private in monitor.c. Changed the way
6710         MonoThreadsSync is allocated so it's faster and there is no
6711         need to keep track of it with a finalizer and it uses less memory.
6712         This also finally allows us to allocate mono objects as ptrfree when
6713         there are no reference fields.
6714
6715 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
6716
6717         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
6718         disappearing link to the GC interface and use them to simplify
6719         the gchandles code.
6720
6721 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
6722
6723         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
6724         stfld_remote which call mono_load/store_field_new. This allows methods
6725         calling ldfld/stfld wrappers to be AOTed.
6726
6727         * console-io.c: Include sys/filio.h under solaris.
6728         
6729         * console-io.c: Include curses.h if needed correctly.
6730
6731 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6732         
6733         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
6734         method->klass as well.
6735
6736         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
6737
6738         * class.c (mono_class_init): Switch on lazy initialization of 
6739         methods.
6740
6741         * class.c (mono_class_get_finalizer): Handle the case when the 
6742         finalizer is inherited.
6743
6744 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6745
6746         * console-io.c: <curses.h> is needed by term.h on solaris.
6747
6748 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
6749
6750         * icall.c, class-internals.h, monodiet.c, class.c: Remove
6751         mono_class_setup_properties where possible. Remove this ftn from
6752         the header file, and make it static.
6753
6754 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
6755
6756         * loader.c: Add missing setup_... call.
6757
6758         * class.c: Add missing setup_... calls.
6759
6760         * class.c (mono_class_init): Switch on lazy initialization of 
6761         the generic vtable.
6762         
6763         * class.c (mono_class_init): Fix generics broken by the recent changes.
6764
6765         * monodiet.c (handle_type): Add missing setup_... calls.
6766
6767         * class.c: Back out garbage in previous patch.
6768         
6769         * class.c: Add missing setup_... calls.
6770
6771         * class.c (mono_class_get_method_from_name_flags): Avoid calling
6772         mono_class_setup_methods () if possible.
6773
6774         * class-internals.h (MonoClass): Add 'has_cctor' flag.
6775
6776         * class-internals.h (MonoCachedClassInfo): New structure.
6777
6778         * class.c: Initialize properties and events fields of MonoClass lazily.
6779
6780         * class.c: Add infrastructure for lazily initializing the methods and
6781         vtable fields of MonoClass. Not yet used.
6782
6783         * class.c (mono_class_get_finalizer): New helper function.
6784
6785         * class.c: Add infrastructure for loading some class related data from
6786         an AOT file.
6787
6788         * object.c: Add infrastructure for initializing the vtable from data
6789         in the AOT file.
6790
6791         * gc.c (run_finalize): Use mono_class_get_finalizer ().
6792
6793         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
6794         appropriate initialization function before accessing parts of the
6795         MonoClass structure.
6796
6797         * marshal.c: Fix warnings.
6798         
6799         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
6800
6801         * mono-debug-debugger.c (get_exception_message): Use 
6802         mono_class_get_method_from_name_flags ().
6803
6804 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
6805
6806         * reflection.c, appdomain.c: Replace a few manual searches that
6807         Zoltan missed. (Paolo approved this part of my initial patch).
6808
6809 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
6810
6811         * profiler.c: disable recording statistical events at report time.
6812
6813 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6814
6815         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
6816         to byteswap arrays of enum values, too (bug #72080).
6817
6818 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
6819
6820         * appdomain.c (set_domain_search_path): Allow this to be called if
6821         domain->setup is not yet set.
6822
6823         * loader.c (mono_method_get_index): New helper function.
6824
6825         * loader.c reflection.c: Use mono_method_get_index ().
6826
6827         * class.c (mono_class_get_method_from_name_flags): New helper method.
6828
6829         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
6830         this.
6831
6832         * class.c (mono_class_get_cctor): New helper method.
6833
6834         * string-icalls.c object.c class.c marshal.c reflection.c: Use
6835         mono_class_get_method () to look up methods.
6836
6837 2005-02-01  Miguel de Icaza  <miguel@novell.com>
6838
6839         * console-io.c: Fix the build, this should work on Windows.
6840
6841 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
6842
6843         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
6844         be set to null to keep things valid
6845
6846 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6847
6848         * icall.c: added Console 2.0 icalls.
6849         * Makefile.am: added console-io.[ch]
6850         * console-io.[ch]: internal calls for Console 2.0 API.
6851
6852 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6853
6854         * class.c: make sure we consider all the interfaces
6855         when calculating max_interface_id (bug found by
6856         Jeroen Frijters running ikvm).
6857
6858 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
6859
6860         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
6861         valuetype fields to null.
6862
6863         * object.c (set_value): Ditto. Fixes #71669.    
6864
6865 2005-01-31  Martin Baulig  <martin@ximian.com>
6866
6867         * metadata.c (mono_metadata_has_generic_params): New public
6868         function; checks whether something is a generic method.
6869
6870 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
6871
6872         * appdomain.c: fix infinite recursion when adding assemblies.
6873
6874 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
6875
6876         * object.c: Fix small typo to return all items for Environment.
6877         GetCommandLineArgs.
6878
6879 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6880
6881         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
6882         reflection.c: more domain and assembly-unload related fixes
6883         and memory leaks plugs.
6884
6885 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
6886
6887         * 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.
6888
6889 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
6890
6891         * loader.c (mono_method_signature): Make this method lazy
6892         (mono_get_method_from_token): Don't computate the signature here.
6893
6894         Doing this saves quite a bit of memory. I got 90 kb on starting up
6895         monodoc. It should also save some disk reads on startup.
6896
6897         * *: MonoMethod->signature might be NULL now. You *MUST* use
6898         mono_method_signature.
6899
6900 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
6901
6902         * object.c (mono_runtime_get_main_args): Return an array from the
6903         current domain here. Fixes #71938.
6904
6905 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
6906
6907         * monitor.c: formatting changes to comply with the
6908         mono coding style and remove #ifdefs from the code.
6909
6910 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6911
6912         * metadata.c, private.h: remove some unneeded data
6913         and use a more compact representation for table schemas.
6914
6915 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
6916
6917         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
6918         to get a better distribution in hash tables.
6919         * *.c: use mono_aligned_addr_hash() where appropriate.
6920         * assembly.c: make var static.
6921
6922 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
6923
6924         * domain-internals.h: Put MonoJitInfo on a diet.
6925
6926         * domain.c: Fix a warning.
6927
6928 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6929
6930         * gc.c: rework the gc handles code to reuse handles
6931         when freed.
6932
6933 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6934
6935         * domain.c: fixed long standing bug in mono_string_equal() which
6936         was brought to light with the ldstr changes.
6937
6938 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
6939
6940         * reflection.c: Remove warning by adding missing include for marshal.h
6941
6942 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6943
6944         * domain.c, object.c: change the ldstr_table to hold
6945         MonoString* as keys: makes the runtime isinterned lookup
6946         faster and simplifies memory management.
6947
6948 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
6949  
6950         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
6951         possible to add imperative security checks before calling the icall.
6952         * reflection.c: Return security attributes on the original MonoMethod
6953         (and not the wrapped one). This fix permissions on icalls.
6954
6955 2005-01-25  Dick Porter  <dick@ximian.com>
6956
6957         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
6958         the check for mktime() support actually test the mktime() return
6959         value.  "Fixes" bug 71682, though the output is still different to
6960         MS.
6961
6962 2005-01-25  Martin Baulig  <martin@ximian.com>
6963
6964         * class.c (mono_class_is_assignable_from): Make this work for
6965         generic instances.
6966
6967 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
6968
6969         * marshal.c (mono_string_utf8_to_builder)
6970         (mono_string_builder_to_utf16): We might not have ownership of the
6971         string. In thise case, we need to create a new buffer.
6972
6973         * object-internals.h (mono_stringbuilder_capacity): sb->str might
6974         be null, in which case, use the default capacity.
6975
6976 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6977
6978         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
6979         GC events to the profiler.
6980
6981 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6982
6983         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
6984         if you don't want the GC to run.
6985
6986 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
6987
6988         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
6989         start providing a GC API and keeping different implementations in
6990         their own file.
6991         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
6992
6993 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
6994
6995         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
6996         mmap rather than allocating a huge buffer.
6997         (mono_debug_close_mono_symbol_file): Free the buffer allocated
6998         above.
6999
7000 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7001
7002         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7003         and CheckExecutionRights.
7004         * reflection.c|h: Keep the index of the declarative security to be 
7005         used, instead of the pointer, when AOT compiler is used. Also add 
7006         class initialization when requesting demands.
7007         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7008         CheckExecutionRights. Both properties are now FALSE by default, and
7009         unmodifiable, unless the --security option is used.
7010
7011 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7012
7013         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7014         reflection.c: properly refcount images and assemblies, many leaks fixed.
7015
7016 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7017
7018         * threadpool.c: increase the timeout for threads in the thread pool to
7019         10s.  Fixes bug #67159.
7020
7021 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7022
7023         * class-internals.h: Sun's compiler insists on explicit
7024         signed on bit fields to handle then correctly.
7025
7026 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7027
7028         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7029         Make the size of the array fit only the number of invalid path
7030         chars that we have.
7031
7032         * class.c (_mono_class_get): Improve the error reporting when a
7033         class referenced is not found, to assist debugging. 
7034
7035 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7036
7037         * threads.c: fix off-by-one error.
7038         * domain.c: free data allocated in the domain.
7039
7040 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7041
7042         * reflection.c (mono_method_body_get_object): Fill out exception info
7043         as well.
7044
7045         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7046         structure.
7047         
7048 2005-01-19  Martin Baulig  <martin@ximian.com>
7049
7050         * loader.c (mono_get_method_constrained): Make this work again.
7051
7052 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7053
7054         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7055         guint16 to match the managed side.
7056
7057         * reflection.c (mono_reflection_body_get_object): Fill out local
7058         variables array.
7059
7060         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7061         as well.
7062
7063         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7064         'local_var_sig_token'.
7065
7066 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7067
7068         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7069         System.Drawing.
7070
7071         * reflection.c (mono_method_body_get_object): Handle abstract and
7072         runtime methods.
7073
7074 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7075
7076         * marshal.c, loader.c, class-internals.h, reflection.c:
7077         store the emthod data for a wrapper in an array instead of a list.
7078
7079 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7080
7081         * marshal.c: change the code to allocate memory more
7082         conservatively for method wrappers.
7083
7084 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7085
7086         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7087         fields from MonoClass to the marshal info structure where they belong.
7088
7089 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7090
7091         * class.c, object.c, class-internals.h, marshal.c: rearrange
7092         some fields and tweak some types to lower memory usage.
7093
7094 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7095
7096         * threads.c (signal_thread_state_change): Handle the case when the
7097         target thread is the current thread.
7098
7099         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7100
7101         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7102         emit_ptr_to_object_conv. 
7103
7104         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7105         marshalling. Fixes #71352.
7106
7107 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7108
7109         * metadata.h, blob.h: move table enum to blob.h so it can be included
7110         in any header.
7111         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7112         cut the size of MonoImage/MonoDynamicImage.
7113
7114 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7115
7116         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7117
7118 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7119
7120         * reflection.c, reflection.h, icall.c: add a function to check
7121         if an attribute type is defined for a metadata object.
7122
7123 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7124
7125         * object-internals.h: Added some needed fields from StringBuilder class.
7126         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7127
7128 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7129
7130         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7131         threads before shutting down the runtime.
7132
7133         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7134
7135 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7136
7137         * object-internal.h, threads.c: implement stacksize and 
7138         parameterized thread start functionality (requires
7139         matching corlib). Marked broken code for later removal.
7140
7141 2005-01-12  Martin Baulig  <martin@ximian.com>
7142
7143         * class-internals.h (MonoGenericClass): Moved the `initialized'
7144         flag to MonoDynamicGenericClass, removed `init_pending'.
7145         (MonoGenericInst): Added `is_reference' flag.
7146
7147 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7148
7149         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7150         inside the MSDOS header. Fixes #71201.
7151
7152         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7153         gc thread.
7154         (mono_domain_finalize): Ditto.
7155
7156 2005-01-12  Martin Baulig  <martin@ximian.com>
7157
7158         * class.c (mono_get_shared_generic_class): Use the cache for
7159         non-dynamic generic classes.
7160
7161         * class-internals.h (mono_class_create_generic_2): Removed
7162         function prototype, this function is now static inside class.c.
7163
7164         * class.c (mono_class_create_generic_2): Made this static, only
7165         call it from mono_class_init() and mono_class_setup_parent().
7166         (collect_implemented_interfaces_aux): Call mono_class_init() on
7167         the interfaces we collect.
7168         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7169
7170 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7171
7172         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7173         it a real thread handle.
7174
7175         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7176         MonoJitExceptionInfo, since each catch clause needs its own variable.
7177         
7178 2005-01-11  Dick Porter  <dick@ximian.com>
7179
7180         * image.c (mono_pe_file_open): New variant on mono_image_open()
7181         that does not set up the CLI metadata; used for FileVersionInfo so
7182         it can get the data for windows binaries too.
7183         
7184         * process.c (process_read_string_block): Don't read off the end of
7185         the StringTable block.
7186
7187         These both fix bug 70766.
7188
7189 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7190
7191         * gc.c: set some fields to NULL at GC cleanup time.
7192         * threads.c: if we quit the main thread, call exit ().
7193
7194 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7195
7196         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7197
7198 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7199
7200         * threads.h, threads.c, object.c: added accessor and settor for
7201         main_thread. Handle it specially when exiting from it: wait
7202         for other foreground threads to exit.
7203
7204 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7205
7206         * process.c, verify.c: remove some bloat.
7207
7208 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7209
7210         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7211         the calling convention to cdecl under win32.
7212
7213 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7214
7215         * object.c (mono_object_get_size): New function to get the size of
7216         an object instance.
7217
7218         * profiler.c (simple_allocation): Use above.
7219
7220 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7221
7222         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7223         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7224         get an appdomain by it's id and we can't assume the root's id is 0).
7225         * domain-internals.h: Change the function prototype to match.
7226         * icall.c: Change the icall table for AppDomain.
7227
7228 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7229
7230         * locales.c (string_invariant_compare_char): Only compute
7231         GUnicodeTypes in the case where we need them.  Test for ordinality
7232         first and return if so.
7233
7234         From the commit:
7235
7236                 /*
7237                  * FIXME: here we must use the information from c1type and c2type
7238                  * to find out the proper collation, even on the InvariantCulture, the
7239                  * sorting is not done by computing the unicode values, but their
7240                  * actual sort order.
7241                  */
7242
7243 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7244
7245         * loader.c: for P/Invoke methods, allow the "Internal" shared
7246         library name to refer to the calling process symbol namespace.
7247
7248 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7249
7250         * Makefile.am: Add the security manager to the build.
7251         * security-manager.c|h: New. Initialization of the security manager.
7252
7253 2005-01-07  Dick Porter  <dick@ximian.com>
7254
7255         * threads.c: 
7256         * monitor.c: Update thread state during Monitor and WaitHandle
7257         waits.  Fixes bug 71031.
7258
7259 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7260
7261         * reflection.c (property_encode_signature): Correctly handle when the
7262         property has no methods.
7263
7264 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7265
7266         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7267         
7268         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7269         fields from mb, not rmb. Fixes #71017.
7270
7271         * marshal.c (emit_ptr_to_str_conv): Add support for 
7272         ByValTStr -> string conversion. Fixes #71015.
7273
7274         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7275
7276         * mempool.c (mono_mempool_contains_addr): New helper function.
7277
7278 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7279
7280         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7281         HasSematics encoded fields.
7282         
7283         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7284         invalid string marshalling.
7285
7286         * metadata.c: Fix warnings.
7287         
7288 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7289
7290         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7291         profiler support.
7292
7293 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7294
7295         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7296         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7297         tests.
7298
7299 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7300
7301         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7302         so methods containing these can be AOTed.
7303
7304 2005-01-03  Martin Baulig  <martin@ximian.com>
7305
7306         * loader.c (find_method): Removed the hack for generic instances.
7307         (method_from_memberref): If our parent is a generic instance, pass
7308         its generic type definition to find_method() and then inflate the
7309         method.
7310         (mono_get_method_constrained): Pass the generic type definition to
7311         find_method() and inflate the method later.
7312
7313         * class-internals.h (MonoStats): Added `generic_class_count'.
7314
7315         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7316         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7317
7318         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7319         generic type definitions.
7320
7321 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7322
7323         * loader.c icall.c: Fix warnings.
7324
7325 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7326
7327         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7328         blittable types. Fixes #70864.
7329
7330 2004-12-29  Martin Baulig  <martin@ximian.com>
7331
7332         * icall.c
7333         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7334
7335         * reflection.c (mono_method_get_object): Create a
7336         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7337         call mono_get_inflated_method().
7338
7339         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7340
7341 2004-12-27  Martin Baulig  <martin@ximian.com>
7342
7343         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7344         (MonoMethodInflated): Added `inflated' field.
7345
7346         * class.c (mono_class_inflate_generic_method): Don't really
7347         inflate the method here; just set the `is_inflated' flag in the
7348         MonoMethod.
7349         (mono_class_get_inflated_method): Actually inflate the method here
7350         if it's not already inflated; we use the MonoMethodInflated's new
7351         `inflated' field as a cache.
7352
7353 2004-12-26  Martin Baulig  <martin@ximian.com>
7354
7355         * class.c
7356         (inflate_generic_class): Moved some code out of inflate_generic_type().
7357         (mono_class_inflate_generic_method): If we're already inflated,
7358         inflate the context and use the declaring method; ie. make sure
7359         the declaring method of an inflated method is always the generic
7360         method definition.
7361         (mono_class_create_from_typedef): Create
7362         `class->generic_container->context->gclass'.
7363
7364 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7365
7366         * metadata-internals.h, marshal.c, reflection.c: More
7367         MonoGHashTable->GHashTable.
7368
7369         * domain-internals.h, class.c: Change MonoGHashTable's into
7370         GHashTables for some cases where no gc stuff is used
7371
7372         All users: update apis
7373
7374 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7375
7376         * metadata.c (builtin_types): Make this `const'. Makes this get
7377         put into the shareable section.
7378         (mono_metadata_init): Casts to make gcc happy.
7379
7380 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7381
7382         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7383
7384 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7385
7386         * icall.c: Added an internal call to retrieve the position and length
7387         of assembly-level declarative security attributes (RequestMinimum, 
7388         RequestOptional and RequestRefuse). This is used by the Assembly class
7389         to re-create the corresponding permission sets.
7390
7391 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7392
7393         * marshal.c: fix the stelemref wrapper to be type correct
7394         (and faster).
7395
7396 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7397
7398         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7399         to do key & 0x7fffffff. Hashtable already does this. It just
7400         results in longer code.
7401
7402 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7403
7404         * appdomain.c: Bump corlib version.
7405         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7406         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7407         * reflection.c|h: Add functions to get declarative security infos
7408         (blob position and length) for assemblies, classes and methods.
7409
7410 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7411
7412         * reflection.c: sort the constant table (bug #70693).
7413
7414 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7415
7416         * object-internals.h, threads.c, domain.c: add accessors for
7417         the MonoThread and MonoDomain tls keys.
7418
7419 2004-12-18  Martin Baulig  <martin@ximian.com>
7420
7421         * class.c (inflate_generic_type): If we're inflating a generic
7422         instance, set `ngclass->context->container = context->container';
7423         ie. the container we inflated into.
7424
7425         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7426         inflate_generic_type() changes.
7427
7428 2004-12-17  Martin Baulig  <martin@ximian.com>
7429
7430         * class-internals.h
7431         (MonoGenericClass): Replaced `MonoType *generic_type' with
7432         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7433         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7434         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7435
7436 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7437
7438         * exception.c (mono_exception_from_token): New helper function.
7439
7440 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7441
7442         * assembly.c (mono_assembly_load_with_partial_name): Call 
7443         mono_assembly_loaded before invoking the preload hooks. Fixes
7444         #70564.
7445
7446         * object-internals.h (MonoThread): Change culture_info and 
7447         ui_culture_info into an array.
7448
7449         * threads.c: Cache culture info objects from more than one appdomain.
7450
7451         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7452         current UI culture.
7453
7454 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7455
7456         * threads.h threads.c appdomain.c: Clear the culture_info field of
7457         all threads during unloading if they point to an object in the dying
7458         appdomain.
7459
7460 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7461
7462         * culture-info.h (TextInfoEntry): New struct
7463         * object-internals.h: sync with managed
7464         * locales.c: fill the `text_info_data' field
7465         * culture-info-tables.h: update
7466
7467 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7468
7469         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7470         collector.
7471
7472 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7473
7474         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7475         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7476
7477 2004-12-12  Martin Baulig  <martin@ximian.com>
7478
7479         * mono-debug-debugger.c (write_type): If we're an enum and the
7480         builtin types have already been initialized, call mono_class_init().
7481
7482 2004-12-11  Martin Baulig  <martin@ximian.com>
7483
7484         * metadata.c (mono_metadata_load_generic_params): Added
7485         `MonoGenericContainer *parent_container' argument; automatically
7486         compute `container->is_method'; pass the correct owner to
7487         get_constraints().      
7488
7489         * reflection.c (compare_genericparam): Sort the GenericParam table
7490         according to increasing owners. 
7491
7492 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7493
7494         * profiler.c: allow disabling the default profiler.
7495
7496 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7497
7498         * decimal.c, icall.c: allow disabling System.Decimal support.
7499
7500 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7501
7502         * reflection.c: Add support for null attribute arguments.
7503
7504 2004-12-09  Martin Baulig  <martin@ximian.com>
7505
7506         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7507         names to get rid of compiler warnings.
7508
7509 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7510
7511         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7512         mono_marshal_load_type_info (). Fixes #69625.
7513         (mono_marshal_get_ptr_to_struct): Likewise.
7514
7515 2004-12-08  Martin Baulig  <martin@ximian.com>
7516
7517         * mono-debug.h: Bumped version number to 47.
7518
7519         * mono-debug-debugger.c
7520         (mono_debugger_event_handler, mono_debugger_event): Take two
7521         guint64 arguments insteed of a gpointer and a guint32.  
7522
7523 2004-12-08  Martin Baulig  <martin@ximian.com>
7524
7525         * debug-mono-symfile.h
7526         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7527         `address' to `native_offset'.
7528
7529 2004-12-08  Martin Baulig  <martin@ximian.com>
7530
7531         * class.c (mono_class_create_from_typespec): Only inflate if we
7532         either have `context->gclass' or `context->gmethod'.
7533
7534 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7535
7536         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7537
7538         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7539
7540         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7541
7542         * reflection.c (mono_assembly_get_object): Remove the workaround put
7543         in for the release.
7544         
7545         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7546
7547         * appdomain.c: Bump corlib version.
7548
7549         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7550         be visible in other appdomains.
7551
7552 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7553
7554         * threads.c: Interlocked inc and dec for longs were messed up,
7555         use a KISS based impl for this. Fixes 70234
7556
7557 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7558
7559         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7560
7561 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7562
7563         * icall.c: fix to follow policy not to allow struct
7564         arguments in icalls.
7565
7566 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7567
7568         * process.c: make the patch that handles spaces in file paths work
7569         on mono/windows too.
7570
7571 2004-12-06  Martin Baulig  <martin@ximian.com>
7572
7573         * class.c (mono_class_create_generic): Call
7574         mono_class_setup_supertypes() if we're dynamic.
7575         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7576
7577 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7578
7579         * object-internals.h: Add new fields to MonoThread.
7580
7581         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7582
7583         * icall.c threads-types.h threads.c: Add new icalls.
7584
7585         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7586
7587         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7588         managed side.
7589
7590         * appdomain.c: Bump corlib version.
7591
7592         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7593         internal assemblies. Fixes #69181.
7594
7595 2004-12-05  Martin Baulig  <martin@ximian.com>
7596
7597         * class.c (mono_class_inflate_generic_signature): Make this a
7598         no-op if `context' is NULL or we don't have any type parameters;
7599         also copy `sentinelpos'.        
7600
7601 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7602
7603         * image.c: Add unbox_wrapper_cache.
7604
7605         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7606
7607         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7608         function generator.
7609         
7610         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7611         Fixes #70173.
7612
7613         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7614         
7615 2004-12-04  Martin Baulig  <martin@ximian.com>
7616
7617         * loader.c (mono_method_get_signature_full): New public function;
7618         like mono_method_get_signature(), but with an additional
7619         `MonoGenericContext *' argument.
7620
7621         * class.c (mono_class_inflate_generic_signature): Formerly known
7622         as inflate_generic_signature(); make this public.
7623
7624 2004-12-04  Martin Baulig  <martin@ximian.com>
7625
7626         * metadata.c
7627         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7628         instead of a `MonoGenericContainer *'.  
7629         (mono_metadata_parse_array_full): Likewise.
7630         (mono_metadata_parse_signature_full): Likewise.
7631         (mono_metadata_parse_method_signature_full): Likewise.
7632         (mono_metadata_parse_generic_inst): Likewise.
7633         (mono_metadata_parse_generic_param): Likewise.
7634         (mono_metadata_parse_mh_full): Likewise.
7635         (mono_type_create_from_typespec_full): Likewise.
7636
7637 2004-12-03  Martin Baulig  <martin@ximian.com>
7638
7639         * class-internals.h (MonoGenericContainer): Replaced the
7640         `MonoGenericContext * pointer with a `MonoGenericContext'
7641         structure and made it the first element.
7642
7643 2004-12-03  Martin Baulig  <martin@ximian.com>
7644
7645         * class.c
7646         (inflate_generic_type): Set the `context->container' when creating
7647         a new MonoGenericContext.
7648         (mono_class_inflate_generic_method): Likewise.
7649         (mono_class_create_from_typespec): Just use `context->container'
7650         to get the container.
7651
7652         * loader.c (method_from_methodspec): Set `context->parent' from
7653         `context->container' - and if that's a method container, use its
7654         parent.  Also set the `context->container' when creating a new
7655         MonoGenericContext.
7656         (mono_get_method_from_token): Use just `context->container' to get
7657         the container.
7658
7659         * metadata.c (do_mono_metadata_parse_generic_class): Also set
7660         `gclass->context->container'.
7661
7662         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
7663         the `context->container' when creating a new MonoGenericContext.
7664
7665 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
7666
7667         * reflection.c (compare_genericparam): Sort params with identical
7668         owner by their number. Fixes gen-111 on sparc.
7669
7670 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7671
7672         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
7673         around the domain changes.
7674
7675         * appdomain.c (mono_domain_unload): Handle the case when the thread
7676         calling Unload is itself being aborted during unloading. Fixes #70022.
7677
7678         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
7679
7680         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
7681         checkpoint_func as an icall so it gets a wrapper.
7682         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
7683         in the cross-appdomain wrappers too.
7684
7685         * threads.c (mono_thread_has_appdomain_ref): Make this public.
7686
7687         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
7688
7689         * reflection.c: Fix some memory leaks.
7690         
7691 2004-12-02  Martin Baulig  <martin@ximian.com>
7692
7693         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
7694
7695         * metadata.c (generic_class_cache): New static hashtable.
7696         (mono_metadata_lookup_generic_class): New public method.
7697
7698 2004-12-02  Martin Baulig  <martin@ximian.com>
7699
7700         * class.c (mono_class_create_from_typedef): Call
7701         mono_class_setup_parent() and mono_class_create_mono_type() before
7702         parsing the interfaces.
7703
7704 2004-12-02  Martin Baulig  <martin@ximian.com>
7705
7706         * metadata.c (generic_inst_cache): New static hashtable.
7707         (mono_metadata_lookup_generic_inst): New public function.
7708         (mono_metadata_inflate_generic_inst): New public function.
7709         (mono_metadata_parse_generic_inst): New public function.
7710         (do_mono_metadata_parse_generic_class): Use the new
7711         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
7712         since this'll also use the cache.
7713
7714         * reflection.c (mono_reflection_bind_generic_method_parameters):
7715         Use mono_metadata_lookup_generic_inst() to use the new cache.
7716
7717         * class.c (inflate_mono_type): Use
7718         mono_metadata_inflate_generic_inst() to inflate a generic
7719         instance; this'll also use the new cache.
7720
7721         * loader.c (method_from_methodspec): Use
7722         mono_metadata_parse_generic_inst() and
7723         mono_metadata_inflate_generic_inst() rather than parsing it
7724         manually, so we can use the new cache.
7725
7726 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
7727
7728         * threads.c (wait_for_tids): Do not incorrectly free threads when 
7729         the wait times out.
7730
7731 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
7732
7733         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
7734         iter->args based on whether parameters are passed in registers (i.e.
7735         MONO_ARCH_REGPARMS is defined)
7736
7737 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
7738
7739         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
7740         the exception message. Fixes #70070.
7741         (method_from_methodspec): Fix warnings.
7742
7743 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7744
7745         * process.c: (complete_path) return the path quoted
7746
7747 2004-12-01  Martin Baulig  <martin@ximian.com>
7748
7749         * class-internals.h (MonoGenericInst): New structure.
7750         (MonoGenericClass): Replaced `type_argc', `type_argv' and
7751         `is_open' with `MonoGenericInst *inst'.
7752         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
7753         `is_open' with `MonoGenericInst *inst'.
7754
7755 2004-11-30  Martin Baulig  <martin@ximian.com>
7756
7757         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
7758
7759         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
7760         to `generic_class_cache'.
7761
7762         * metadata.c
7763         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
7764         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
7765         (mono_generic_inst_is_valuetype): Renamed to
7766         mono_generic_class_is_valuetype().
7767
7768         * class-internals.h
7769         (MonoGenericInst): Renamed to MonoGenericClass.
7770         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
7771         (MonoClass): Renamed `generic_inst' to `generic_class'.
7772         (MonoGenericContext): Renamed `ginst' to `gclass'.
7773
7774         * object-internals.h
7775         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
7776
7777         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
7778         mono_reflection_generic_class_initialize().
7779
7780         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
7781         now known as "System.Reflection.MonoGenericClass".
7782         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
7783
7784 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
7785
7786         * class-internals.h: Added a flag field to MonoClass to cache the
7787         declarative security attributes actions associated with the class.
7788         * domain-internals.h: Added booleans to MonoJitInfo to cache the
7789         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
7790         applicable to the JITted method.
7791         * reflection.c|h: Added functions to extract (as flags) which security
7792         actions are available (declaratively) for a method, class or assembly.
7793         * metadata.c|h: Added functions to search the declarative security
7794         table in the metadata.
7795         
7796 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
7797
7798         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
7799         EXPORTEDTYPES are already in the class name cache, so there is no
7800         need to add extra code here to look at them. Just removes a bit of
7801         cruft.
7802
7803         (ves_icall_System_Environment_get_TickCount): No need for #if
7804         WINDOWS. We already have the code in io-layer.
7805
7806 2004-11-28  Martin Baulig  <martin@ximian.com>
7807
7808         * loader.c
7809         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
7810         Fixes gen-112.cs.
7811
7812 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
7813
7814         * assembly.c (do_mono_assembly_open): Instead of having a
7815         conditional WITH_BUNDLE, incorporate support for bundles here, by
7816         having a global `bundles' variable holding a pointer to the actual
7817         bundles. 
7818
7819         (mono_register_bundled_assemblies): New API call used by the
7820         bundle code. 
7821
7822         See mkbundle.1 for details.
7823         
7824 2004-11-27  Martin Baulig  <martin@ximian.com>
7825
7826         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
7827         the vtable for generic methods.
7828
7829 2004-11-26  Martin Baulig  <martin@ximian.com>
7830
7831         * metadata.c
7832         (mono_metadata_generic_method_hash): New public function.
7833         (mono_metadata_generic_method_equal): Likewise.
7834
7835         * class-internals.h
7836         (MonoGenericContainer): Added `GHashTable *method_hash'.
7837
7838         * reflection.c (ReflectionMethodBuilder): Added
7839         `MonoGenericContainer *generic_container'.
7840         (reflection_methodbuilder_to_mono_method): Don't create a new
7841         MonoGenericContainer each time we're called.
7842         (mono_reflection_bind_generic_method_parameters): Use
7843         `container->method_hash' to cache the results so we don't create a
7844         different method if we're called several times with the same
7845         arguments.
7846
7847         * loader.c (method_from_methodspec): Use the new
7848         `container->method_hash' here, too.
7849
7850 2004-11-26  Martin Baulig  <martin@ximian.com>
7851
7852         * class.c (inflate_generic_signature): Correctly compute
7853         `res->has_type_parameters'.
7854         (mono_class_vtable): Use the `has_type_parameters' flag to
7855         determine whether we're a generic method.
7856
7857         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
7858
7859 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
7860
7861         * object.c (mono_runtime_run_main): Fix a small memory leak.
7862
7863 2004-11-25  Martin Baulig  <martin@ximian.com>
7864
7865         * class.c (set_generic_param_owner): Fixed the loop.
7866
7867 2004-11-25  Martin Baulig  <martin@ximian.com>
7868
7869         * object.c (mono_class_vtable): Don't create any JIT wrappers for
7870         generic methods.
7871
7872 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
7873
7874         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
7875         names. Fixes #69787.
7876
7877 2004-11-24  Martin Baulig  <martin@ximian.com>
7878
7879         * class.c (mono_class_create_generic_2): If we don't have a
7880         `ginst->parent', inflate `gklass->parent' to get our parent.
7881
7882 2004-11-24  Martin Baulig  <martin@ximian.com>
7883
7884         * reflection.c (compare_genericparam): Correctly sort the
7885         GenericParam table; fixes #69779.
7886
7887 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
7888
7889         * reflection.c: When writing a PE file, don't create a huge
7890         buffer in memory. Just write the arrays we have to the file.
7891         This reduces memory usage.
7892
7893         * metadata-internals.h: MonoDynamicStream pefile is no longer used
7894         globally.
7895
7896 2004-11-17  Martin Baulig  <martin@ximian.com>
7897
7898         * class.c (mono_class_init): Don't setup `class->parent' for
7899         dynamic instances; moved this to mono_class_generic_2().
7900         (mono_class_create_generic): Also set `klass->inited' for dynamic
7901         generic instances.
7902         (mono_class_create_generic_2): Don't do anything for dynamic
7903         generic instances.  Set `klass->parent' here and also call
7904         mono_class_setup_parent() here. 
7905
7906         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
7907         `MonoType *parent' argument; set `ginst->parent' before calling
7908         mono_class_create_generic_2(), so we set the correct parent.
7909
7910 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
7911
7912         * reflection.c: allow getting attributes from ModuleBuilder
7913         (used by ikvm).
7914
7915 2004-11-17  Martin Baulig  <martin@ximian.com>
7916
7917         * class.c (mono_class_create_from_typedef): If a type parameter is
7918         inherited from an outer class, set its owner to that class.
7919
7920 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
7921
7922         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
7923           for (int*) written size. This fixes bug #69592.
7924
7925 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
7926
7927         * icall.c: Added IsAuthenticodePresnet internal call.
7928         * image.c|h: New function that check a MonoImage for an Authenticode
7929         signature in the certificate PE data directory.
7930         * security.c|h: New internal call to ask the runtime if an 
7931         Authenticode signature seems referenced in the PE header.
7932
7933 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
7934
7935         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
7936
7937         * reflection.c (mono_image_create_pefile): Free the assembly streams
7938         after writing out the assembly file.
7939
7940         * object.c (mono_runtime_run_main): Fix small memory leak.
7941
7942         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
7943         property access modifiers. Fixes #69389.
7944
7945 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
7946
7947         * domain.c, object.c, object-internals.h, domain-internals.h,
7948         object.h, marshal.c: keep dynamic code info per domain.
7949
7950 2004-11-15  Martin Baulig  <martin@ximian.com>
7951
7952         * class.c (mono_type_get_name_recurse): Put type arguments in
7953         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
7954         see bug #68387.
7955
7956 2004-11-15  Martin Baulig  <martin@ximian.com>
7957
7958         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
7959         (mono_class_setup_vtable): When computing `the_cname' for a
7960         generic instance, don't include the namespace since we'd otherwise
7961         add it twice.
7962
7963 2004-11-15  Martin Baulig  <martin@ximian.com>
7964
7965         * class.c (mono_class_create_generic): Changed return type to void.
7966         (mono_class_create_generic_2): New public function; setup
7967         `class->method', `class->field' and `class->interfaces' here
7968         instead of in mono_class_init().
7969
7970         * class.h (mono_class_create_generic): Moved to class-internals.h.
7971
7972 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
7973
7974         * reflection.c (mono_image_create_pefile): take a file HANDLE.
7975         rather than writing to memory, write to this file. Right now,
7976         we are just writting into a buffer, and copying that. However
7977         we can avoid the buffer later.
7978
7979         (mono_dynamic_stream_reset): new function
7980
7981         * icall.c, object-internals.h: update for the above.
7982
7983 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
7984
7985         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
7986         have been using gc'd memory. First it is slower, unlikely
7987         the comment in the source code said, secondly, it increases
7988         our footprint to do it in the gc.
7989
7990         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
7991         the method so that it does not have to copy to managed code.
7992
7993 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
7994
7995         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
7996
7997 2004-11-12  Martin Baulig  <martin@localhost>
7998
7999         * reflection.c (mono_image_create_token): Allow generic method
8000         definitions here, since they may appear in an `.override'; see
8001         gen-98/gen-99 for an example.
8002
8003 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8004
8005         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8006         #69365.
8007
8008         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8009         descriptive.
8010
8011 2004-11-11  Martin Baulig  <martin@ximian.com>
8012
8013         * class.c (mono_class_setup_vtable): In an explicit interface
8014         implementation, the method name now includes the arity.
8015
8016 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8017
8018         * object.c (mono_array_full_copy): Fix warning.
8019
8020 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8021
8022         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8023         mono_class_get_method_from_name() instead.
8024         
8025         * class-internals.h: Added two new types of wrappers. 
8026         Added MonoRemotingTarget enum. Added new trampoline function type, which
8027         takes an additional MonoRemotingTarget value as parameter, so it is
8028         possible to request a trampoline for a specific target.
8029         
8030         * class.c: Added new mono_class_get_method_from_name() method.
8031         
8032         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8033         general remoting sinks and one specific for cross domain calls.
8034         
8035         * debug-helpers.c: Added new wrapper names.
8036         
8037         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8038         of a remote class.
8039         
8040         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8041         
8042         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8043         with several other methods (mono_marshal_get_xappdomain_dispatch,
8044         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8045         and others) can generate a fast remoting wrapper for cross domain calls.
8046         More information can be found in docs/remoting.
8047         Other changes: Removed mono_find_method_by_name, and used
8048         mono_class_get_method_from_name instead.
8049         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8050         is stored in the remoting invoke hashtable.
8051         
8052         * marshal.h: published the new method for getting the xdomain wrapper,
8053         and also added a method for getting the adequate wrapper for a given
8054         method and target.
8055         
8056         * object-internals.h, object.c: Added a couple of methods for capying and
8057         cloning arrays.
8058         Modified mono_install_remoting_trampoline, which takes the new remoting
8059         trampoline that has a remoting target as parameter.
8060         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8061         will return the most suitable vtable for the target.
8062         Added mono_remote_class_vtable, which returns the vtable of a remote class
8063         (which can be the normal remoting vtable or the xdomain vtable).
8064         
8065         * threads.c: the xdomain invoke and dispatch wrappers must also be
8066         protected against interruptions.
8067
8068 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8069
8070         * icall.c: use memmove in BlockCopyInternal when the source and
8071         destination arrays are the same.
8072
8073 2004-11-09  Martin Baulig  <martin@ximian.com>
8074
8075         * class-internals.h (MonoGenericContainer): Removed `method' and
8076         `signature', replaced them with `is_method' and `is_signature'
8077         flags.  Added `context'.
8078
8079         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8080         instead of a `MonoGenericContainer *'.
8081
8082         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8083         for dynamic type parameters.
8084         (mono_metadata_load_generic_params): Setup `container->context'.
8085
8086         * reflection.c (mono_reflection_setup_generic_class): Setup
8087         `tb->generic_container->context'.
8088         (do_mono_reflection_bind_generic_parameters): Use
8089         mono_class_inflate_generic_type() to correctly inflate types,
8090         rather than using our own hack just for MONO_TYPE_VAR.
8091
8092 2004-11-09  Martin Baulig  <martin@ximian.com>
8093
8094         * class.c (mono_class_inflate_generic_method): Small fix; don't
8095         crash here.
8096
8097         * icall.c
8098         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8099         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8100         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8101         (ves_icall_Type_BindGenericParameters): Likewise.
8102         (ves_icall_Type_get_IsGenericInstance): Likewise.
8103         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8104         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8105         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8106         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8107
8108 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8109
8110         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8111         assembly versions and public key tokens. Fixes #69113.
8112
8113 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8114
8115         * metadata.c: fix bug introduced with the type cache changes
8116         on 2004-11-06.
8117
8118 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8119
8120         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8121         the MonoClass pointer instead of the token in exception clauses.
8122         * reflection.c: updates for the above and make the code not depend
8123         on the structure of MonoExceptionClause.
8124
8125 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8126
8127         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8128         Add support for dynamic assemblies. Fixes #69114.
8129
8130         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8131
8132 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8133
8134         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8135         since most only those methods use it. the code member of
8136         MonoMethodPInvoke was dead, so that can be removed too. Also,
8137         remove inline_count (again, not used), and move slot so that it
8138         can share bits with some other flags. This saves 8 bytes in the
8139         structure and gives us about 50 kb back for mcs helloworld.cs
8140
8141         * *.[ch]: Do naming changes for the above.
8142
8143         * loader.c (mono_method_get_header): Lazily init the header
8144         on first access.
8145         (mono_get_method_from_token): don't init the header here
8146         (mono_free_method): the header may never be allocated
8147
8148         Overall, this saves 150 kb of unmanaged allocations
8149         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8150         memory at runtime.
8151         
8152         * loader.c, loader.h (mono_method_get_header): new accessor.
8153
8154         * *.[ch]: use the above method. Prepares us to lazily load
8155         the header.
8156
8157         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8158         three warnings, which are actual bugs (see 69206).
8159
8160         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8161         unused. Saves a cool 4 bytes / method.
8162
8163 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8164
8165         * metadata.c (builtin_types): Add types for System.Object here.
8166         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8167         for a class or valuetype from klass->this_arg or klass->byval_arg.
8168
8169         On mcs for a hello world, this gets us down from 21836 MonoType's
8170         to 14560.
8171
8172         (mono_metadata_free_type): Account for the above change.
8173
8174 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8175
8176         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8177         exception instead of asserting if name is null.
8178         (ves_icall_System_AppDomain_GetData): Ditto.
8179
8180 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8181
8182         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8183         EnumBuilder.
8184
8185         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8186         Return NULL when the domain does not have entry_assembly set.
8187
8188         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8189         Add a 'resource_modules' argument.
8190         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8191
8192         * reflection.c (mono_reflection_create_runtime_class): Move setting
8193         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8194         for enums too.
8195
8196         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8197         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8198         Throw an ArgumentNullException if 'ptr' is null.
8199
8200         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8201         assemblies here. Fixes #69020.
8202
8203 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8204
8205         * reflection.c (build_compressed_metadata): Fix the previous patch for
8206         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8207         the stack.
8208
8209 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8210
8211         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8212         the cultures is false. Fixes #69090.
8213
8214         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8215         detected by valgrind.
8216         
8217         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8218         TypeResolve multiple times for the same type. Fixes #65577.
8219
8220 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8221
8222         * marshal.c: Avoid using ldftn to call managed functions. It is
8223         much slower than just a call.
8224
8225         * reflection.c (mono_module_get_object): free the basename we
8226         allocate here from glib.
8227         
8228         * reflection.c (ensure_runtime_vtable): make sure to free
8229         overrides.  Also, we were allocating an array of MonoMethod not an
8230         array of MonoMethod*.
8231
8232         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8233
8234         * image.c (mono_image_close): free image->guid here.
8235
8236 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8237
8238         * reflection.c: Fix some spec conformance issues with the PE file
8239         structures so mcs compiled apps run on the Net 2.0 beta.
8240
8241 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8242
8243         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8244         Implement this. Fixes #67264.
8245
8246         * debug-helpers.h debug-helpers.c marshal.c: Move 
8247         mono_find_method_by_name to debug-helpers.c.
8248
8249 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8250
8251         * object.c (mono_release_type_locks): type_initialization_hash is
8252         a GHashTable.
8253
8254         * reflection.c object.c object-internals.h: Fix warnings.
8255
8256         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8257         without accessors. Fixes #61561.
8258
8259         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8260         application base from the root domain if not set. Fixes #65641.
8261         (mono_runtime_init): Fix warning.
8262
8263 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8264
8265         * appdomain.c: call mono_thread_pool_init.
8266         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8267         of worker threads based on the number of CPUs and the environment
8268         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8269         for non-windows (windows) systems.
8270
8271 2004-10-27  Chris Toshok  <toshok@ximian.com>
8272
8273         * mono-debug-debugger.c (write_class): don't call mono_class_init
8274         here, as even with the check for (!klass->init_pending), we get
8275         into a situation where we're hitting cycles in class
8276         initialization.  Fixes #68816.
8277
8278 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8279
8280         * image.c: Avoid overwriting values in the loaded_images_hash when an
8281         assembly is loaded multiple times. Fixes #61152.
8282
8283         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8284         so multiple satellite assemblies for the same name can be loaded.
8285         Fixes #68259.
8286
8287         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8288         not NULL.
8289
8290         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8291         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8292
8293         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8294         pending finalizers are not invoked after the appdomain has been 
8295         unloaded. Fixes #67862.
8296
8297 2004-10-22  Martin Baulig  <martin@ximian.com>
8298
8299         * mono-debug-debugger.c
8300         (mono_debugger_runtime_invoke): Don't box valuetypes.
8301
8302 2004-10-22  Chris Toshok  <toshok@ximian.com>
8303
8304         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8305         don't hide private methods.
8306
8307 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8308
8309         * icall.c: Allows the runtime to "share" (when known) the public key
8310         token of an assembly. This avoid the need to recalculate the token 
8311         (from the public key) in managed code.
8312
8313 2004-10-21  Chris Toshok  <toshok@ximian.com>
8314
8315         * debug-helpers.c (append_class_name): argh, revert last patch.
8316         
8317 2004-10-21  Chris Toshok  <toshok@ximian.com>
8318
8319         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8320         not '/', so that it matches what the debugger uses to look up
8321         methods.
8322
8323 2004-10-21  Martin Baulig  <martin@ximian.com>
8324
8325         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8326         public method; this is called each time an exception is thrown and
8327         allows the debugger to use exception catch points.
8328
8329 2004-10-21  Martin Baulig  <martin@ximian.com>
8330
8331         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8332         the stack pointer and the exception object in some struct and pass
8333         that to the debugger.
8334
8335 2004-10-21  Chris Toshok  <toshok@ximian.com>
8336
8337         * mono-debug-debugger.c (do_write_class): add instance/static
8338         event support.  We don't expose "raise" or "other" yet.
8339         (event_is_static): new method.
8340
8341 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8342
8343         * mono-debug-debugger.c
8344         (mono_debugger_handle_exception): Remove
8345         bogus return value for fussy compilers.
8346
8347 2004-10-20  Martin Baulig  <martin@ximian.com>
8348
8349         * mono-debug-debugger.c
8350         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8351         (mono_debugger_handled_exception): Likewise.
8352
8353 2004-10-20  Martin Baulig  <martin@ximian.com>
8354
8355         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8356         MONO_DEBUGGER_EVENT_EXCEPTION.
8357
8358         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8359         public function to send the debugger a notification for an
8360         exception and inform it about a catch/finally clause.
8361
8362 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8363
8364         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8365         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8366         fix 2.95 build. 
8367
8368         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8369
8370 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8371
8372         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8373         marshalled as [In,Out]. Fixes #58325.
8374
8375 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8376
8377         * reflection.c (mono_method_body_get_object): Implement some fields.
8378
8379 2004-10-12  Martin Baulig  <martin@ximian.com>
8380
8381         * reflection.c (mono_reflection_bind_generic_parameters): Small
8382         fix, correctly retrieve our parent from a generic instance.
8383
8384 2004-10-12  Martin Baulig  <martin@ximian.com>
8385
8386         * metadata.c (mono_metadata_generic_param_equal): We always have
8387         an owner.
8388
8389         * class.c
8390         (mono_class_from_generic_parameter): We need to have an owner.
8391         (my_mono_class_from_generic_parameter): Likewise.
8392
8393         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8394         mono_reflection_create_generic_class() and added a new
8395         mono_reflection_setup_generic_class().  
8396         (mono_reflection_initialize_generic_param): If we're a nested
8397         generic type and inherited from the containing class, set our
8398         owner to the outer class.
8399
8400 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8401
8402         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8403
8404         * reflection.c (mono_method_body_get_object): New function to create
8405         a MethodBody object.
8406
8407         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8408
8409 2004-10-11  Martin Baulig  <martin@ximian.com>
8410
8411         * metadata.c (_mono_metadata_type_equal): Renamed to
8412         do_mono_metadata_type_equal() and made static.
8413
8414 2004-10-11  Martin Baulig  <martin@ximian.com>
8415
8416         * appdomain.c: Bump corlib version number to 28.
8417
8418 2004-10-10  Martin Baulig  <martin@ximian.com>
8419
8420         * class-internals.h
8421         (MonoGenericInst): Added `MonoGenericContainer *container'.
8422         (MonoGenericMethod): Likewise.
8423         (MonoGenericContext): Likewise.
8424         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8425
8426         * metadata.c
8427         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8428         (do_mono_metadata_parse_generic_inst): Likewise.
8429         (mono_metadata_parse_type_full): New public method.  This is the actual
8430         mono_metadata_parse_type() implementation - with an additional
8431         `MonoGenericContainer *' argument.
8432         (mono_metadata_parse_array_full): Likewise.
8433         (mono_metadata_parse_signature_full): Likewise.
8434         (mono_metadata_parse_method_signature_full): Likewise.
8435         (mono_metadata_parse_mh_full): Likewise.
8436         (mono_type_create_from_typespec): Likewise.
8437         (mono_metadata_interfaces_from_typedef_full): New public method;
8438         this is similar to the other _full() methods, but we take a
8439         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8440         (mono_metadata_parse_generic_param): Take an additional
8441         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8442         from that container.
8443         (mono_metadata_generic_param_equal): New static method to compare
8444         two type parameters.
8445         (_mono_metadata_type_equal): New static method; takes an
8446         additional `gboolean signature_only' argument - if true, we don't
8447         compare the owners of generic parameters.
8448         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8449         with a TRUE argument - do a signature-only comparision.
8450
8451         * loader.c: Use the new _full() methods and pass the
8452         MonoGenericContainer to them.
8453
8454         * object-internals.h (MonoReflectionTypeBuilder): Added
8455         `MonoGenericContainer *generic_container' field.
8456         (MonoReflectionMethodBuilder): Likewise.
8457
8458 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8459
8460         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8461         case initial images of dynamic assemblies.
8462
8463         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8464
8465         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8466
8467         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8468         length of event->other array.
8469         (typebuilder_setup_events): Ditto.
8470
8471         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8472         'assembly_by_name' and add an 'assemblies' list.
8473
8474         * assembly.h assembly.c: Add a new search hook for determining whenever
8475         an assembly is already loaded. Use this instead of searching in the
8476         loaded_assemblies list.
8477
8478         * domain.c appdomain.c: Implement the new search hook so loaded 
8479         assemblies are now scoped by appdomain. Fixes #67727.
8480
8481 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8482
8483         * threads.c (mono_thread_attach): Initialize synch_lock field so
8484         mono_thread_detach works again.
8485
8486         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8487         'lib' too. Fixes #63130.
8488
8489 2004-10-06  Jackson Harper  <jackson@ximian.com>
8490
8491         * culture-info-tables.h: regenerated.
8492
8493 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8494
8495         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8496         implemented by other interfaces in the result. Fixes #65764.
8497         
8498         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8499         Handle unloadable modules without crashing.
8500
8501         * image.c (load_modules): Revert the previous patch since modules must
8502         have a fixed index inside the array.
8503         
8504         * image.c (load_modules): Don't include native modules in the modules
8505         array.
8506
8507 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8508
8509         * reflection.h: Add param_defaults field.
8510
8511         * reflection.c: Add support for parameter defaults in dynamic methods.
8512         Fixes #64595.
8513
8514         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8515         an empty string when a type has no namespace. Fixes #64230.
8516
8517 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8518
8519         * tabledefs.h: Added "internal" security actions to support non-CAS
8520         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8521         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8522
8523 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8524
8525         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8526         constructor of abstract class. Fixes #61689.
8527
8528 2004-10-04  Martin Baulig  <martin@ximian.com>
8529
8530         * class-internals.h (MonoGenericContainer): New type.
8531         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8532         `MonoGenericContainer *generic_container'.
8533         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8534         `MonoGenericContainer *generic_container'.
8535
8536         * metadata.c (mono_metadata_load_generic_params): Return a
8537         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8538         removed the `num' argument.
8539
8540 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8541
8542         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8543         for dynamic images.
8544
8545         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8546         machine fields.
8547
8548         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8549
8550         * reflection.c: Save pe_kind and machine values into the generated
8551         image file.
8552
8553         * appdomain.c: Bump corlib version number.
8554
8555         * object-internals.h: Reorganize layout of LocalBuilder.
8556
8557         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8558         New helper function.
8559
8560         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8561         created MonoType for dynamic types. Fixes #66180.
8562
8563 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8564
8565         * threadpool.c: the ares hashtable needs a critical section around it.
8566         this prevents some nasty segfaults
8567
8568 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8569
8570         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8571         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8572         bug 67324).
8573         
8574 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8575
8576         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8577         
8578 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8579
8580         * image.c: Always canonicalize image file names, to avoid loading
8581         the same assembly twice when referenced using a relative path.
8582
8583 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8584
8585         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8586
8587         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8588
8589         * marshal.c: Fix warnings.
8590
8591 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8592
8593         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8594         attempting to marshal the delegate_trampoline as the method_addr.
8595         This patch has a static hashtable of marshalled delegates so that 
8596         we can map delegate_trampoline addresses back to delegates.  This
8597         allows a delegate passed to managed code to be passed back into native
8598         code.  Fixes #67039
8599
8600 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8601
8602         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8603
8604         * reflection.c (method_encode_code): Align method headers properly.
8605         Fixes #66025.
8606
8607 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8608
8609         * marshal.c: In the runtime invoke wrapper, reset the abort
8610         exception if it is cached. This avoids the automatic rethrowal of 
8611         the exception after the catch of the wrapper. Also check for pending
8612         interruptions before calling the managed method. This is done using
8613         the new method emit_thread_force_interrupt_checkpoint, since the
8614         normal checkpoint method is ignored when running the invoke wrapper.
8615         * object.c: If the abort exception is rethrown, set the abort_exc
8616         field of the thread, so it will be rethrown aftere every catch.
8617         * threadpool.c: Only run an interruption checkpoint if what has been
8618         requested is a stop of the thread (aborts will be ignored).
8619         * threads.c: By default, a thread will now never be interrumped while
8620         running the runtime invoke wrapper (this ensures that runtime_invoke
8621         will always return to the caller if an exception pointer is provided).
8622         There is a new special method mono_thread_force_interruption_checkpoint()
8623         to force an interruption checkpoint even if running a protected
8624         wrapper, which is used by the same runtime invoke wrapper to do a check
8625         at a safe point.
8626
8627 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8628
8629         * object.c, object-internals.h: Implemented mono_release_type_locks,
8630         which releases the cctor locks held by a thread.
8631         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8632         by a thread. Added mono_thread_exit() method to be used to safely stop
8633         a thread.
8634
8635 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8636
8637         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8638         Move null check before dereference.  Avoid indexing beyond the end
8639         of the 'modules' array.
8640
8641 2004-09-28  Raja R Harinath  <rharinath@novell.com>
8642
8643         * metadata-internals.h (MonoImage): Add module_count field.
8644         * image.c (load_modules): Set image->module_count.
8645         (mono_image_load_file_for_image): Use image->module_count.
8646         * reflection.c (mono_image_load_module): Append to image->modules array 
8647         of dynamic assembly.
8648         (mono_module_get_object): Fix loop to actually increment index.
8649         Use image->module_count.
8650         * assembly.c (mono_assembly_load_references): Use image->module_count.
8651         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
8652         Likewise.
8653
8654 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8655
8656         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
8657         Avoid assert on generic types.
8658
8659 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
8660
8661         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
8662
8663         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
8664
8665         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
8666         function to convert a MarshalSpec structure to its managed counterpart.
8667
8668         * reflection.c: Fix warnings.
8669         
8670         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
8671         field.
8672
8673         * icall.c (mono_create_icall_signature): Fix build.
8674
8675 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
8676
8677         * icall.c: Add MakePointType icall.
8678
8679         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
8680         warnings.
8681
8682 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8683
8684         * threadpool.c: reuse allocated slots in the queue.
8685
8686 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
8687
8688         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
8689
8690         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
8691
8692         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
8693         previous change.
8694
8695         * tabledefs.h: Add constants for pinvoke attributes BestFit and
8696         ThrowOnUnmappableChar.
8697
8698         * icall.c (ves_icall_Type_GetPacking): New icall.
8699
8700 2004-09-24  Martin Baulig  <martin@ximian.com>
8701
8702         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
8703
8704 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8705
8706         * appdomain.c:
8707         (mono_domain_set): allow setting a domain that is being unloaded.
8708         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
8709         being unloaded.
8710
8711 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8712
8713         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
8714         the GetCustomAttributes icall.
8715
8716 2004-09-23  Martin Baulig  <martin@ximian.com>
8717
8718         * object-internals.h (MonoReflectionGenericParam): Replaced
8719         'has_ctor_constraint', `has_reference_type' and `has_value_type'
8720         with `guint32 attrs'.
8721
8722 2004-09-23  Martin Baulig  <martin@ximian.com>
8723
8724         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
8725
8726 2004-09-23  Martin Baulig  <martin@ximian.com>
8727
8728         * object-internals.h (GenericParameterAttributes): New enum.
8729
8730 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
8731
8732         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
8733         
8734         * class.c (init_events): Fill out event->other field.
8735
8736         * class.c: Fix warnings.
8737
8738         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
8739
8740 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
8741
8742         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
8743         walk which doesn't supply the IL offset.
8744
8745 2004-09-22  Martin Baulig  <martin@ximian.com>
8746
8747         * reflection.c (mono_reflection_setup_internal_class): If we're
8748         System.ValueType, System.Object or System.Enum, set
8749         `klass->instance_size' and create the vtable.
8750         (mono_reflection_create_internal_class): If we're an enum type,
8751         get the base class from our current corlib.
8752
8753 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
8754
8755         * reflection.h (MonoResolveTokenError): New type.
8756
8757         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
8758         icall.
8759
8760         * icall.c: Add an 'error' argument to the ResolveToken icalls.
8761
8762 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
8763
8764         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
8765         Support also calling constructors, but only for already allocated objects.
8766
8767 2004-09-17  Geoff Norton <gnorton@customerdna.com>
8768
8769         * reflection.c (type_get_qualified_name): If the klass is null
8770         return the typename to avoid a NullRefEx.
8771         (encode_cattr_value): Get the qualified name of the boxed type,
8772         not the underlying enumtype.  Fixes #62984.
8773
8774 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
8775
8776         * marshal.c: Fix problems with previous checkin.
8777
8778 2004-09-21    <vargaz@freemail.hu>
8779
8780         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
8781         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
8782
8783         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
8784
8785 2004-09-21  Geoff Norton <gnorton@customerdna.com>
8786
8787         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
8788         should only return a type for pointers, arrays, and passbyref types.
8789         Fixes bug #63841.
8790
8791 2004-09-21  Martin Baulig  <martin@ximian.com>
8792
8793         * domain.c (mono_debugger_check_runtime_version): New public
8794         function.
8795
8796         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
8797
8798 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
8799
8800         * reflection.c: Added missing sort to the declarative security 
8801         attributes table. MS implementation stops seeing the attributes if the
8802         token number regress in the table (as shown by ildasm and permview).
8803
8804 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
8805
8806         * object-internals.h (MonoReflectionModule): Add 'token' field.
8807         
8808         * reflection.c (mono_reflection_get_token): Add support for Module
8809         and Assembly.
8810         (mono_module_get_object): Set 'token' field.
8811         (mono_module_file_get_object): Set 'token' field.
8812
8813         * icall.c: Add new Assembly and Module icalls.
8814
8815         * appdomain.c: Bump corlib version.
8816
8817 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
8818
8819         * loader.h loader.c class.h class.c: Add helper functions for obtaining
8820         tokens of metadata objects.
8821
8822         * reflection.h reflection.c (mono_reflection_get_token): New function
8823         to obtain the token of a metadata object.
8824
8825         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
8826
8827 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
8828
8829         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
8830         
8831         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
8832
8833 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
8834
8835         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
8836         * object-internals.h: Added 3 MonoArray* members to MonoReflection
8837         AssemblyBuilder to access the permissions set in the class lib.
8838         * reflection.c: Added security attributes encoding step in 
8839         mono_image_build_metadata.
8840         * tabledefs.h: Added new security actions defined in 2.0:
8841         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
8842
8843 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
8844
8845         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
8846         macro parameter.
8847
8848 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
8849  
8850         * locales.c: nullify the ICU_collator member of CompareInfo when it is
8851           finalized. There where random SIGSEVs at program termination, when
8852           an object being finalized was trying to do a string comparison and
8853           the current culture was already finalized.
8854  
8855 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8856
8857         * threads.c: call thread_cleanup before finishing the thread if we get
8858         there.
8859
8860 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
8861
8862         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
8863         assemblies from the parent. Fixes #65665.
8864
8865 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
8866
8867         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
8868         modifiers.
8869
8870 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
8871
8872         * reflection.h: add prototype for mono_get_dbnull_object
8873         * reflection.c: add prototypes for get_default_param_value_blobs 
8874         and mono_get_object_from_blob for fussier compilers
8875
8876 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
8877  
8878         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
8879         false deadlock checks in class initialization.
8880  
8881 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
8882
8883         * image.c (mono_image_addref): Fix comment.
8884
8885         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
8886         possible.
8887
8888 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
8889
8890         * reflection.c (mono_param_get_objects): Modified to return
8891         ParameterInfo.DefaultValue object.
8892
8893         (get_default_param_value_blobs):
8894         (mono_get_object_from_blob):
8895         (mono_get_dbnull_object): New helper routines. 
8896
8897         * object.c (mono_get_constant_value_from_blob): New helper routine
8898         carved out from get_default_field_value ()
8899
8900         * object-internals.h (mono_get_constant_value_from_blob): Added
8901         function declaration.
8902
8903 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
8904
8905         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
8906         referenced assemblies. Fixes #62135.
8907
8908         * exception.h exception.c (mono_get_exception_file_not_found2): New
8909         helper function.
8910
8911 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
8912
8913         * class.h class.c: Add mono_type_get_underlying_type ().
8914
8915 2004-09-09  Geoff Norton <gnorton@customerndna.com>
8916
8917         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
8918         Fix GetTypes() to support dynamically created assemblies.
8919
8920 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
8921
8922         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
8923         
8924         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
8925         previous patch.
8926
8927         * reflection.h reflection.c loader.c: Allow dynamic construction of
8928         pinvoke methods. Fixes #65571.
8929         
8930         * reflection.c (mono_reflection_get_type): Revert previous change since
8931         it causes regressions.
8932
8933 2004-09-08  Martin Baulig  <martin@ximian.com>
8934
8935         * class.c (class_compute_field_layout): Don't call
8936         mono_class_layout_fields() for open generic instances.
8937
8938 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
8939         * threads.c appdomain.c: fix typo in GC macro
8940
8941 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8942
8943         * threads.c: don't call mono_thread_detach() in start_wrapper(),
8944         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
8945
8946 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
8947
8948         * image.c (mono_image_close): Applied patch from 
8949         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
8950         assembly is loaded multiple times from data.
8951         
8952         * image.c (mono_image_open): Fix warning.
8953
8954 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8955
8956         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
8957         once. Fixes #58334.
8958         
8959         * reflection.c (mono_reflection_create_runtime_class): Initialize
8960         klass->nested_classes. Fixes #61224.
8961
8962 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8963
8964         * threads.c: sched_yield() on exit, to allow threads to quit.
8965
8966 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8967
8968         * object.c (mono_unhandled_exception): Remove leftover debug code.
8969
8970 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
8971
8972         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
8973
8974 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8975
8976         * marshal.c (emit_marshal_array): Really null terminate string arrays.
8977         
8978         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
8979
8980 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8981
8982         * marshal.c (emit_marshal_array): Null terminate string arrays.
8983         
8984         * marshal.c (raise_auto_layout_exception): Fix warning.
8985
8986         * reflection.c (mono_param_get_objects): Initialize the default value
8987         with DBNull.Value, not null. Fixes #62123.
8988
8989 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
8990
8991         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
8992         throw an exception with a cute explanation.
8993
8994 2004-09-06  Dick Porter  <dick@ximian.com>
8995
8996         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
8997         Close the new process's thread handle, as we don't use it.  The
8998         handle stays around forever otherwise.
8999
9000 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9001
9002         * object.c (arith_overflow): Fix warning.
9003
9004         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9005         calling conventions in method refs. Fixes #65352.
9006
9007         * reflection.c: Fix warnings.
9008
9009 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9010
9011         * icall.c: Add a new icall for Array.Clear
9012
9013 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9014
9015         * object.c: When allocating an array, we have to throw
9016         an overflow exception if any of the lengths are < 0.
9017
9018 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9019
9020         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9021         properly. Also move implementation of string array marshalling to 
9022         managed code. Fixes #42316.
9023
9024 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9025
9026         * assembly.c: provide more information when loading an assembly fails.
9027
9028 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9029
9030         * filewatcher.c: don't expect the development fam package to be
9031         installed.
9032
9033 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9034
9035         * marshal.c: Make a copy of the signature cookie since it will be
9036         freed by the caller.
9037         
9038         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9039
9040         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9041
9042         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9043         marshal specs.
9044
9045         * marshal.c: More refactoring.
9046         
9047         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9048         smaller functions.
9049
9050 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9051
9052         * object.c: In mono_message_invoke, fill the output parameter array after
9053           calling the managed method (it was done before the call). This fixes
9054           bug #59299.
9055
9056 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9057
9058         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9059         as well.
9060
9061 2004-09-02  Martin Baulig  <martin@ximian.com>
9062
9063         * class.c (mono_class_instance_size): Don't allow generic type
9064         definitions or open generic instances.
9065         (mono_class_array_element_size): If we're a value type, call
9066         mono_class_instance_size() on the original class.
9067
9068         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9069         handle generic instances.
9070
9071         * mono-debug-debugger.c (write_type): Handle generic instances
9072         like classes.
9073
9074 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9075
9076         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9077         the allocation request fails. Fixes #65089.
9078
9079         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9080         
9081         * object.c (mono_runtime_free_method): New function to free a dynamic
9082         method.
9083
9084         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9085         delegate trampoline.
9086
9087         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9088         with hasthis as dynamic,
9089
9090         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9091
9092         * domain.c (mono_jit_info_table_remove): New function to remove an
9093         entry from the jit info table.
9094
9095         * class-internals.h (MonoMethod): Add 'dynamic' field.
9096
9097         * loader.c: Fix warnings.
9098
9099 2004-09-01  Martin Baulig  <martin@ximian.com>
9100
9101         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9102         instead of mono_debugger_lock() because the latter one is a no-op
9103         unless running in the debugger.
9104
9105 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9106
9107         * class.c (class_compute_field_layout): Classes with auto-layout or
9108         reference fields are not blittable.
9109         
9110 2004-09-01  Dick Porter  <dick@ximian.com>
9111
9112         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9113         mono_image_get_filename() to get the assembly location.
9114
9115         * icall.c:
9116         * metadata.h: Fix compile warnings
9117
9118 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9119
9120         * class.c (class_compute_field_layout): System.Object is blittable.
9121
9122         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9123         as in/out. Fixes #59909.
9124
9125 2004-09-01  Martin Baulig  <martin@ximian.com>
9126
9127         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9128         mono_metadata_generic_inst_is_valuetype() if we're a generic
9129         instance to check whether our underlying type is a reference type.
9130
9131 2004-09-01  Martin Baulig  <martin@ximian.com>
9132
9133         * metadata.c (mono_type_size): If we're a generic instance, call
9134         mono_class_value_size() for value types.
9135
9136 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9137
9138         * marshal.c: Implement more custom marshalling functionality. Fixes
9139         #64915.
9140
9141 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9142
9143         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9144
9145 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9146
9147         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9148
9149         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9150
9151         * icall.c: Fix some warnings.
9152
9153         * threads.c (abort_appdomain_thread): Fix unref errors.
9154         (mono_thread_current): Fix THREAD_DEBUG define.
9155
9156 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9157
9158         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9159
9160         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9161
9162 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9163
9164         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9165         string arrays.
9166
9167 2004-08-28  Martin Baulig  <martin@ximian.com>
9168
9169         * metadata.c
9170         (mono_metadata_generic_inst_is_valuetype): New public function.
9171
9172         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9173         mono_metadata_generic_inst_is_valuetype() if we're a generic
9174         instance to check whether our underlying type is a valuetype.
9175
9176 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9177
9178         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9179         #63768.
9180
9181 2004-08-25  Martin Baulig  <martin@ximian.com>
9182
9183         * loader.c (mono_get_method_from_token): Abstract methods can also
9184         be generic and thus have type parameters.
9185
9186         * metadata-internals.h
9187         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9188
9189         * reflection.c (mono_image_get_generic_param_info): Don't create a
9190         metadata row, just add an entry to the `gen_params' array.
9191         (build_compressed_metadata): Sort the `gen_params' array and then
9192         actually create the metadata.
9193
9194 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9195
9196         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9197
9198 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9199
9200         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9201
9202 2004-08-24  Martin Baulig  <martin@ximian.com>
9203
9204         * class.cs (mono_class_is_subclass_of): Like an interface, a
9205         generic instance also derives from System.Object.
9206
9207 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9208
9209         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9210         custom modifiers to be in any order. Fixes #61990.
9211
9212 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9213
9214         * object.c: Register mono_object_new_fast icall.
9215         
9216         * object.c (mono_class_get_allocation_ftn): Return to calling
9217         mono_object_new_fast, since it seems faster to compute the object 
9218         size in unmanaged code than passing it as a parameter.
9219
9220         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9221
9222         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9223         this function with Boehm as the oom handler, so we don't have to check
9224         the result of GC_malloc.
9225
9226         * object.c: Remove checks for oom.
9227
9228         * object.h object.c (mono_class_get_allocation_ftn): New function to
9229         return the icall which can be used to allocate an instance of a given
9230         class. 
9231
9232         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9233
9234         * class-internals.h: Add 'enabled' field.
9235
9236 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9237
9238         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9239
9240 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9241         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9242         value 0x0010.
9243
9244 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9245
9246         * appdomain.c: use the Tls function for appdomain too,
9247         at Zoltan's request. Actually return in mono_context_get
9248
9249         * appdomain.c, profiler.c, threads.c: use __thread
9250
9251 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9252
9253         * appdomain.c threads.c: Call GC_CreateThread on windows.
9254
9255         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9256         multiple libraries since this don't work on windows.
9257
9258 2004-08-18  Martin Baulig  <martin@ximian.com>
9259
9260         * class-internals.h
9261         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9262         MonoMethodHeader.
9263
9264         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9265         MonoMethodNormal since we also need it for abstract and interface
9266         methods.
9267
9268         * reflection.c
9269         (build_compressed_metadata): Sort the GenericParam table.
9270         (mono_image_create_token): Added `gboolean create_methodspec'
9271         argument; this is false when generating a MethodImpl token.
9272         (reflection_methodbuilder_to_mono_method): Abstract and interface
9273         methods may also have generic parameters.
9274
9275 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9276
9277         * appdomain.c: thread local alloc
9278
9279 2004-08-17  Martin Baulig  <martin@ximian.com>
9280
9281         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9282
9283         * icall.c
9284         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9285         argument.
9286
9287         * class.c (mono_type_get_full_name): New public function.
9288         (mono_type_get_name): Don't include the type arguments.
9289
9290 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9291
9292         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9293         for inclusion into the mono executable.
9294
9295 2004-08-16  Martin Baulig  <martin@ximian.com>
9296
9297         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9298         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9299
9300 2004-08-14  Martin Baulig  <martin@ximian.com>
9301
9302         * class.c (dup_type): Also copy the `byref' field.
9303
9304 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9305
9306         * reflection.c (create_dynamic_mono_image): Revert the last change 
9307         since it breaks bootstrap.
9308
9309 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9310
9311         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9312
9313         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9314         not free them with g_free.
9315
9316 2004-08-11  Martin Baulig  <martin@ximian.com>
9317
9318         * reflection.c (mono_reflection_setup_internal_class): Also call
9319         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9320
9321 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9322
9323         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9324         called during default (first) AppDomain creation. Keep track of
9325         Evidence when loading assemblies.
9326
9327 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9328
9329         * opcodes.c, opcodes.h: reduce runtime relocations.
9330
9331 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9332
9333         * culture-info.h, locales.c: fixes and chages to sue the new
9334         optimized format of the locale data.
9335         * culture-info-tables.h: regenerated.
9336
9337 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9338         
9339         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9340
9341 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9342
9343         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9344         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9345         * domain-internals.h: icall declaration.
9346         * icall.c: icall registration.
9347         * object-internals.h: New fields in MonoAssembly for CAS.
9348
9349 2004-08-05  Duncan Mak  <duncan@ximian.com>
9350
9351         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9352         CEE_LDELEM_ANY.
9353
9354 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9355
9356         * reflection.c: fix to deal with object[] arrays in custom ctors
9357         (bug #62550).
9358
9359 2004-08-05  Martin Baulig  <martin@ximian.com>
9360
9361         * class.c (mono_class_array_element_size): Added support for
9362         generic instances and correctly handle "recursive" types.
9363
9364 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9365
9366         * assembly.c: Fix warnings.
9367
9368 2004-08-04  Martin Baulig  <martin@ximian.com>
9369
9370         * class.c
9371         (mono_type_get_name_recurse): Added `gboolean include_arity'
9372         argument specifying whether or not we should include the generic
9373         arity in the type name.
9374         (_mono_type_get_name): New static function.
9375         (mono_class_setup_vtable): If we're a generic instance, don't
9376         include the generic arity in the names of explicit method
9377         implementations.        
9378
9379 2004-08-03  Martin Baulig  <martin@ximian.com>
9380
9381         * class.c (mono_type_get_name_recurse): Enclose the generic type
9382         arguments in `<', '>'.
9383
9384 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9385
9386         * gc.c: make GC warning messages use the trace API, they are just
9387         noise to most of the users.
9388
9389 2004-08-03  Martin Baulig  <martin@ximian.com>
9390
9391         * debug-mono-symfile.c (read_string): Correctly read the string.
9392
9393 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9394
9395         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9396         
9397         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9398         icalls.
9399         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9400
9401 2004-07-30  Martin Baulig  <martin@ximian.com>
9402
9403         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9404         Reflect latest symbol writer changes.   
9405
9406 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9407
9408         * object.c: always create an object if null is passed
9409         to Invoke() where a valuetype is expected.
9410
9411 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9412
9413         * marshal.c (mono_marshal_init): make managed
9414         signatures match native ones better for 64bits.
9415
9416 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9417
9418         * appdomain.c: hack to build correctly the private bin path on windows.
9419         Fixes bug #61991.
9420
9421 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9422
9423         * assembly.c: Load mscorlib from the correct framework directory
9424           (mono/<version>/mscorlib.dll).
9425         * appdomain.h: Added prototypes for new functions.
9426         * internals.h: Added some prototypes.
9427         * domain.c: When initializing the runtime, get from the executable and
9428           the configuration files the runtime version that the app supports.
9429           Added support methods for reading app.exe.config. Added list of versions
9430           supported by the JIT. Added two new methods: mono_init_from_assembly,
9431           which initializes the runtime and determines the required version from
9432           the provided exe file, and mono_init_version, which initializes
9433           the runtime using the provided version.
9434         * icall.c: Get machine.config from version-specific directory.
9435         * reflection.c: When generating an image, embed the version number
9436           of the current runtime.
9437
9438 2004-07-28  Dick Porter  <dick@ximian.com>
9439
9440         * socket-io.c
9441         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9442         returned sockaddr size before creating the remote address object.
9443         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9444         61608.
9445
9446 2004-07-28  Dick Porter  <dick@ximian.com>
9447
9448         * locales.c (string_invariant_compare_char): Fix invariant char
9449         compares between upper and lower cases.  Fixes bug 61458.
9450
9451 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9452         
9453         * marshal.c: actually cache stelem.ref wrappers.
9454         
9455 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9456
9457         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9458         sections and remove the mono_cli_rva_map () function.
9459
9460 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9461
9462         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9463         by Geoff Norton (<gnorton@customerdna.com>).
9464
9465 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9466
9467         * class.c: fix class loads for pointer types (typeof(int) !=
9468         typeof(int*)).
9469
9470 2004-07-27  Martin Baulig  <martin@ximian.com>
9471
9472         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9473         reading the debugging information from an external ".mdb" file.
9474
9475 2004-07-24  Martin Baulig  <martin@ximian.com>
9476
9477         * reflection.c (mono_image_get_type_info): Only write a class
9478         layout entry if we actually have a size or a packing size.
9479
9480 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9481
9482         * reflection.c (type_get_fully_qualified_name): 
9483         insert cast to get type checking of ?: with non-gcc compilers
9484
9485 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9486
9487         * rand.c: use g_getenv for both lookups of
9488         MONO_EGD_SOCKET
9489
9490 2004-07-17  Martin Baulig  <martin@ximian.com>
9491
9492         * reflection.c (mono_reflection_bind_generic_method_parameters):
9493         Set `gmethod->reflection_info'.
9494
9495 2004-07-17  Martin Baulig  <martin@ximian.com>
9496
9497         * class.c (mono_class_create_from_typedef): Insert the newly
9498         created class into the hash table before computing the interfaces
9499         since we could be called recursively.
9500
9501 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9502
9503         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9504         function to implement stelem.ref in managed code
9505         * class-internals.h, debug-helpers.c: a new wrapper type
9506         for the above.
9507
9508 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9509
9510         * gc.c: allow GC handles to work even when no GC is compiled in.
9511         Fix part of bug #61134 (GetAddrOfPinnedObject).
9512
9513 2004-07-13  Peter Williams  <peter@newton.cx>
9514  
9515         * process.c (complete_path): Make sure we don't attempt to execute
9516         directories.
9517  
9518 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9519
9520         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9521           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9522           and will add/subtract the hour if needed
9523
9524 2004-07-12  Martin Baulig  <martin@ximian.com>
9525
9526         * reflection.c (mono_field_get_object): If we have
9527         `field->generic_info', take the attributes from
9528         `field->generic_info->generic_type'.    
9529
9530 2004-07-12  Martin Baulig  <martin@ximian.com>
9531
9532         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9533         This function must be called before initializing the runtime.
9534         (mono_debug_init_1): New function; call this after initializing
9535         the runtime, but before loading the assembly.  It tells the
9536         debugger to load corlib and the builtin types.
9537
9538         * mono-debug-debugger.c: Did some larger changes in the debugging
9539         code; support recursive class declarations, make sure we actually
9540         add all classes.
9541
9542 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9543
9544         * debug-helpers.c: undo my previous patch and fixed the real issue in
9545         ../mini/exceptions-x86.c
9546
9547 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9548
9549         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9550         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9551         called from other .cctors.
9552
9553 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9554
9555         * loader.c: Removed the mono_loader_wine_init hack now that we are
9556         doing a managed version of Windows.Forms.
9557
9558 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9559
9560         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9561         threadpool.c, threads.c: remove static data from rootset.
9562
9563 2004-07-09  Dick Porter  <dick@ximian.com>
9564
9565         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9566         Don't do any more processing if the matched length was 0.  It was
9567         increasing the size of the string before.  Fixes bug 61167.
9568
9569 2004-07-09  Dick Porter  <dick@ximian.com>
9570
9571         * socket-io.h:
9572         * socket-io.c
9573         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9574         Add support for SO_PEERCRED if its available.
9575
9576 2004-07-09  Peter Bartok <pbartok@novell.com>
9577         * loader.c: winelib.exe.so error message is now only displayed if
9578         MONO_DEBUG is set. To help us avoid questions when people are trying
9579         out the new Managed.Windows.Forms.
9580
9581 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9582
9583         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9584         for isinst and castclass wrappers.
9585
9586         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9587         to libmetadata from the JIT, so they could be used by the marshalling
9588         code and the interpreter.
9589
9590         * marshal.c: Register marshalling related JIT icalls here instead of
9591         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9592         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9593
9594         * metadata.h: Remove unneeded marshalling conversions.
9595
9596         * opcodes.c: Update for new opcodes.
9597         
9598 2004-07-08  Martin Baulig  <martin@ximian.com>
9599
9600         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9601         (mono_debug_get_domain_data): Make this function static.
9602
9603 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9604
9605         * gc.c, object.h: add nice GC handle API for embedders.
9606
9607 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9608
9609         * reflection.c: more changes for the new api
9610
9611         * object.c: When we reflect on a field w/ a constant value, it
9612         will not have a memory location, so we must access metadata. Also,
9613         allow easier reading of strings so that we can read them from
9614         the constant data.
9615
9616         * class.c (mono_class_layout_fields): no need for literal fields here.
9617
9618         * class-internals.h: api changes for const fields
9619
9620         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9621
9622 2004-07-06  Martin Baulig  <martin@ximian.com>
9623
9624         * mono-debug.h: Increment version number to 44.
9625
9626         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9627         now a gpointer, rewrote this whole method.
9628
9629         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9630         function.  Add information about the wrapper in a new "misc table".
9631
9632         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9633         for the new misc table.
9634
9635 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
9636
9637         * metadata-internals.h image.c: Add a cache for helper signatures.
9638
9639         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
9640
9641 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
9642
9643         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
9644         delegates from a delegate. Fixes #61033.
9645         
9646         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
9647         marshalling of stringbuilder arrays. Fixes #59900.
9648
9649 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
9650
9651         * icall.c: Add EnumBuilder:setup_enum_type icall.
9652
9653 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
9654
9655         * icall.c: Added a new icall for the property version of
9656         OffsetOfStringData.
9657
9658 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
9659
9660         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
9661         it has a constant size across platforms.
9662
9663         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
9664         stack trace.
9665
9666 2004-06-29  Martin Baulig  <martin@ximian.com>
9667
9668         * mono-debug.c (mono_debug_add_method): Protect the whole function
9669         in mono_debugger_lock(), not just parts of it.
9670
9671 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9672
9673         * reflection.c: make sure padding bytes in heaps are zeroed.
9674
9675 2004-06-24  David Waite  <mass@akuma.org>
9676
9677         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
9678         image.c, loader.c, locales.c, marshal.c, metadata.c,
9679         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
9680         string-icalls.c, threads.c: change to C90-style comments from C99 /
9681         C++ -style
9682
9683 2004-06-24  Dick Porter  <dick@ximian.com>
9684
9685         * threads.c
9686         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
9687         return createdNew.  Fixes bug 60412.
9688
9689         * threads-types.h: 
9690         * icall.c: Add createdNew parameter to CreateMutex icall
9691
9692 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9693
9694         * reflection.c, object-internals.h: save default value in params.
9695
9696 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9697
9698         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
9699         no need to build a new path combining that with the application base.
9700         Fixes bug #60442.
9701
9702 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
9703
9704         * reflection.c: fixed minor standard compliance issues.
9705
9706 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9707
9708         * reflection.c: fixed issue with encoding some custom attributes
9709         (arrays in properties and fields, bug #60411).
9710
9711 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9712
9713         * reflection.c: fix start address when copying the public key token.
9714
9715 2004-06-23  Martin Baulig  <martin@ximian.com>
9716
9717         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
9718         the `exc' object in a static object to put it into the GC's root set.
9719
9720 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
9721
9722         * reflection.c: make mono_reflection_setup_internal_class ()
9723         callable a second time to setup a new parent class.
9724
9725 2004-06-23  Dick Porter  <dick@ximian.com>
9726
9727         * threads.c: Check for WAIT_IO_COMPLETION return values.
9728
9729 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
9730
9731         * appdomain.c: Removed the g_free on the public key token. Now copy 
9732         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
9733         * assembly.c: Added public key token string value when loading 
9734         assemblies. Fix bug #60439.
9735         * icall.c: Added missing informations (like public key) in 
9736         GetReferencedAssemblies. Fix #60519.
9737         * image.h: Changed definition for public key token from const char*
9738         public_tok_value to guchar public_key_token [17];
9739         * reflection.c: Updated for changes to public key token.
9740
9741 2004-06-22  Lluis Sanchez Gual
9742
9743         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
9744         for the field in base classes.
9745
9746 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9747
9748         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
9749         mark headers as not supported, they are installed only for use by the
9750         debugger.
9751
9752 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
9753
9754         * *.c, *.h: avoid namespace pollution in public headers.
9755
9756 2004-06-21  Martin Baulig  <martin@ximian.com>
9757
9758         * exception.c (mono_get_exception_security): It's in
9759         "System.Security", not in "System".
9760
9761         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
9762         the exception classes.
9763
9764 2004-06-21  Martin Baulig  <martin@ximian.com>
9765
9766         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
9767         Protect the exception object from being finalized.
9768
9769 2004-06-21  Martin Baulig  <martin@ximian.com>
9770
9771         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
9772         public function.
9773
9774 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
9775
9776         * reflection.c: Load the assembly in mono_reflection_type_from_name,
9777         if it was not loaded before. Fix parts of #60439.
9778
9779 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
9780
9781         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
9782         code that was broken since Ben's change: wrappers are now
9783         dependent on the method signature only again.
9784
9785 2004-06-21  Martin Baulig  <martin@ximian.com>
9786
9787         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
9788         added interface support.
9789
9790 2004-06-21  Martin Baulig  <martin@ximian.com>
9791
9792         * class.c (mono_vtable_get_static_field_data): New public method.
9793
9794 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
9795
9796         * filewatcher.c : Windows build fix to be compliant with API changes.
9797
9798 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9799
9800         * class.h, class.c: more accessors.
9801         * metadata.h, metadata.c: prepare for hiding MonoType and
9802         MonoMethodSignature: people should use the accessors from now on
9803         outside of the tree.
9804
9805 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
9806
9807         * *.c, *.h: more API cleanups.
9808
9809 2004-06-18  Jackson Harper  <jackson@ximian.com>
9810
9811         * assembly.c: Trace loading assemblies.
9812         * loader.c: Trace loading native libraries.
9813         * mono-config.c: Trace loading config files.
9814         
9815 2004-06-18  Dick Porter  <dick@ximian.com>
9816
9817         * locales.c: Tell ICU the lengths of strings, it can cope with
9818         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
9819
9820 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
9821
9822         * image.c: swapped name/filename;
9823
9824 2004-06-18  Martin Baulig  <martin@ximian.com>
9825
9826         * mono-debug-debugger.c (write_class): Write the parent class at
9827         the end of the header.
9828
9829 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9830
9831         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
9832
9833 2004-06-17  Raja R Harinath  <rharinath@novell.com>
9834
9835         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
9836         (bundle_obj): New conditional define.
9837         (BUILT_SOURCES): Remove.
9838         ($(bundle_srcs)): Make parallel-make safe.
9839         (libmonoruntime_la_LIBADD): Make unconditional.
9840         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
9841         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
9842
9843 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
9844
9845         * culture-info-tables.h: It was inconsistent with the latest
9846           supp info files.
9847
9848 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
9849
9850         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
9851         be loaded.
9852
9853         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
9854         with gcc 2.95.
9855
9856 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9857
9858         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
9859         cleaned up public header threads.h.
9860
9861 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9862
9863         * Makefile.am, *.c, *.h: more API cleanups.
9864
9865 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
9866
9867         * Makefile.am: removed monosn from compilation.
9868         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
9869         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
9870         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
9871         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
9872         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
9873         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
9874
9875 2004-06-15  Jackson Harper  <jackson@ximian.com>
9876
9877         * assembly.c: Make locales lower case when searching the GAC for
9878         assemblies. gacutil will always make locales lowercase when
9879         installing so this effectively makes them case insensitive.
9880         
9881 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
9882
9883         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
9884         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
9885           parameter which allows to choose whether the wait can be interrupted or 
9886           not. Also added the method mono_monitor_enter(), which locks the monitor
9887           using an infinite wait and without allowing interruption.
9888           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
9889           interrupted.
9890         * object.h: Added new fields in MonoThread. suspend_event holds the event
9891           used to susped/resume the thread. synch_lock is the lock object to use for
9892           modifying the thread state.
9893         * threads.c: Use the new synch_lock object for locking, instead of "this",
9894           which can generate deadlocks.
9895           Moved thread state change in Thread.Sleep and Thread.Join from managed
9896           to unmanaged code. This avoids a deadlock when the thread was suspended
9897           just after acquiring the thread lock.
9898           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
9899           Implemented Thread.Suspend using an event instead of ThreadSuspend,
9900           which is not fully implemented in the io-layer.
9901         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
9902
9903 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
9904
9905         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
9906         threads-types.h: more API cleanups.
9907
9908 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9909
9910         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
9911         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
9912         threadpool.c, threads.c: first pass at the exported API cleanup.
9913
9914 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
9915
9916         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
9917
9918 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9919
9920         * icall.c: added internalGetHome.
9921
9922 2004-06-14  Dick Porter  <dick@ximian.com>
9923
9924         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
9925         possible to return successfully when '.' or '..' were the only
9926         entries in a directory, but were skipped.  The MonoIOStat was not
9927         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
9928         Fixes bug 59574.
9929
9930 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9931
9932         * reflection.c: make binaries run on .Net 1.1 by default.
9933
9934 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9935
9936         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
9937
9938 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
9939
9940         * marshal.c: keep track of struct size with explicit layout
9941         (bug #59979).
9942
9943 2004-06-12  Martin Baulig  <martin@ximian.com>
9944
9945         * mono-debug-debugger.c: Comment out a debugging g_message().
9946
9947 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9948
9949         * reflection.c, reflection.h: do not free custom attrs that are cached.
9950         * icall.c: use braces to make code clearer.
9951
9952 2004-06-11  Martin Baulig  <martin@ximian.com>
9953
9954         * class.h (MonoInflatedField): New type.
9955         (MonoClassField): Replaced `MonoType *generic_type' with
9956         `MonoInflatedField *generic_info'.
9957
9958         * icall.c
9959         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
9960
9961 2004-06-11  Martin Baulig  <martin@ximian.com>
9962
9963         * reflection.c (mono_image_create_method_token): Correctly encode
9964         varargs methods.
9965
9966 2004-06-11  Martin Baulig  <martin@ximian.com>
9967
9968         * metadata.c (mono_metadata_parse_method_signature): When parsing
9969         a MethodDef which has VarArgs, also set sentinelpos if we don't
9970         have any parameters.
9971
9972 2004-06-11  Martin Baulig  <martin@ximian.com>
9973
9974         * verify.c (mono_method_verify): In CEE_CALL, use
9975         mono_method_get_signature() to get the method's signature, unless
9976         we're a PInvoke method.
9977
9978 2004-06-10  Jackson Harper  <jackson@ximian.com>
9979
9980         * assembly.c: Use <path>/lib/mono/gac for the extra paths
9981         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
9982         logical name as the supplied path is just a prefix to the gac not
9983         the direct path to it.
9984         
9985 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
9986
9987         * reflection.c: make the token for a created method match
9988         the token of the MethodBuilder it was created from
9989         (IKVM requires this behaviour now).
9990
9991 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
9992
9993         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
9994         reflection.c, socket-io.c: leak fixes.
9995
9996 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
9997
9998         * icall.c: handle sentinel pos in vararg methods in position different
9999         from 0.
10000
10001 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10002
10003         * culture-info-tables.h: freshly generated.
10004
10005 2004-06-09  Martin Baulig  <martin@ximian.com>
10006
10007         * loader.c (mono_get_method_constrained): Call `mono_class_init
10008         (constrained_class)'.   
10009
10010 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10011
10012         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10013         any methods. Fixes #59629.
10014
10015 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10016
10017         * culture-info-tables.h: reflecting locale-builder updates.
10018
10019 2004-06-08  Dick Porter  <dick@ximian.com>
10020
10021         * object.h:
10022         * locales.c: Fixed compile warnings, including a real bug in
10023         CompareInfo_internal_compare.
10024         
10025 2004-06-08  Dick Porter  <dick@ximian.com>
10026
10027         * locales.c
10028         (ves_icall_System_Globalization_CompareInfo_internal_index):
10029         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10030         Double-check the resuls of usearches, because ICU currently
10031         ignores most of the collator settings here.  Fixes bug 59720.
10032         
10033 2004-06-08  Dick Porter  <dick@ximian.com>
10034
10035         * locales.c
10036         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10037         Fix memory leak and segfault-causing typo.  No idea how this one
10038         lasted so long without being noticed.
10039
10040 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10041
10042         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10043         any methods. Fixes #59629.
10044
10045 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10046
10047         * assembly.c:
10048         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10049         own the critical section before). Removed dead code (that's done
10050         in the preload hook).
10051
10052         (mono_assembly_load_with_partial_name): call the preload hook.
10053
10054 2004-06-08  Martin Baulig  <martin@ximian.com>
10055
10056         * metadata.c (mono_metadata_signature_alloc): Default
10057         `sentinelpos' to -1.
10058
10059         * reflection.c (mono_image_get_array_token): Likewise.
10060
10061 2004-06-08  Martin Baulig  <martin@ximian.com>
10062
10063         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10064
10065         * metadata.c (mono_metadata_parse_method_signature): When parsing
10066         a MethodDef which has VarArgs, set sentinelpos.
10067
10068         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10069         `gint16' since we're using -1 for non-varargs methods.
10070
10071         * reflection.c
10072         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10073         (method_encode_signature): Added varargs support.
10074         (method_builder_encode_signature): Likewise.
10075         (mono_image_get_varargs_method_token): New static method.
10076         (mono_image_create_method_token): New public method; this is
10077         called via an icall instead of mono_image_create_token() when
10078         calling a varargs method.       
10079
10080 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10081
10082         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10083
10084 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10085
10086         * culture-info-tables.h : Reflecting the latest locale-builder that
10087           fixed empty array representation ({} to {0}).
10088
10089 2004-06-07  Jackson Harper  <jackson@ximian.com>
10090
10091         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10092         looking up extra gac paths. This allows MONO_GAC_PATH to act
10093         exactly like a prefix.
10094         
10095 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10096
10097         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10098         type name before modifying it. Fixes #59405.
10099
10100 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10101
10102         * culture-info.h: added fields for "all datetime patterns".
10103         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10104           _construct_datetime_format ()): fill xxx_patterns fields.
10105         * object.h: added fields for "all datetime patterns" to
10106           MonoDateTimeFormatInfo.
10107         * culture-info-tables.h: reflecting locale-builder updates.
10108
10109 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10110
10111         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10112         the event has no add and remove methods. Fixes #59629.
10113
10114 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10115
10116         * object.c: Fixed possible integer overflow when allocating large
10117         strings.
10118
10119 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10120
10121         * culture-info-tables.h: reflecting locale-builder updates.
10122
10123 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10124
10125         * culture-info-tables.h: reflecting locale-builder updates.
10126
10127 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10128
10129         * culture-info-tables.h: reflecting locale-builder updates.
10130
10131 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10132
10133         * threads.c: Made Thread.Sleep abortable.
10134
10135 2004-06-02  Martin Baulig  <martin@ximian.com>
10136
10137         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10138
10139         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10140
10141 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10142
10143         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10144
10145 2004-05-30  Jackson Harper  <jackson@ximian.com>
10146
10147         * reflection.c: Do not hardcode assembly versions or public key
10148         tokens anymore. All of this except the corlib section was dead
10149         code anyways.
10150         
10151 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10152
10153         * object.c (mono_runtime_invoke_array): Automatically create boxed
10154         objects for byref valuetypes if needed. Fixes #59300.
10155         
10156         * object.c (mono_method_return_message_restore): Handle 
10157         MONO_TYPE_OBJECT as well.
10158
10159 2004-05-28  Jackson Harper  <jackson@ximian.com>
10160
10161         * reflection.c: The modified type encoding was causing build
10162         problems. Reverted for now.
10163         
10164 2004-05-28  Jackson Harper  <jackson@ximian.com>
10165
10166         * reflection.c/h: Take an assembly ref so that we dont create
10167         fully qualified names when encoding types in the same assembly as
10168         the custom attribute being emitted.
10169         * appdomain.c: Increment version number.
10170         
10171 2004-05-26  Duncan Mak  <duncan@ximian.com>
10172
10173         * icall.c
10174         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10175         Set the full version number (major, minor, build, revision).
10176
10177 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10178
10179         * marshal.c (emit_struct_conv): increment src/dst after blit
10180         (mono_marshal_get_managed_wrapper,
10181         mono_marshal_get_native_wrapper): make sure we have marshalling
10182         info before marshalling params (info computation affects
10183         blittable)
10184
10185         * class.c (class_compute_field_layout): correctly deal with
10186         blittable
10187         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10188         value types (as per what windows dows by default)
10189         (mono_class_setup_mono_type): System.ValueType is blittable
10190         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10191         blittable
10192
10193         * marshal.c (mono_marshal_load_type_info): flag types  as
10194         non-blittable if the native layout doesn't match the managed
10195         layout
10196
10197 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10198
10199         * appdomain.c: don't add stuff in the private search path that is
10200         above the application base. If application base is not set, there's
10201         no private search path.
10202
10203 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10204
10205         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10206         byref struct arguments in native->managed marshalling.
10207
10208 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10209
10210         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10211         cache methods using signature (special case for methods
10212         that are value type or string class)
10213         
10214         * image.c (mono_image_close): clean up allocated GSList's
10215         in runtime_invoke_cache.
10216
10217 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10218
10219         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10220         there's no MONO_CFG_DIR environment variable defined.
10221
10222 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10223
10224         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10225
10226 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10227
10228         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10229           is interrumped.
10230         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10231           before waiting for it, and call CloseHandle after the wait to unref it.
10232           This will make sure that handles are not disposed too early.
10233
10234 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10235
10236         * appdomain.c:
10237         * appdomain.h:
10238         * icall.c: removed
10239         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10240         needed now.
10241
10242         * object.c: se the application_base only for the domain that runs
10243         Main. Fixes bug #59216,
10244
10245 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10246
10247         * appdomain.c:
10248         * object.c: only the domain in which Main is run have
10249         SetupInformation.ConfigurationFile set, so moved a few lines from
10250         appdomain.c to object.c.
10251
10252 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10253
10254         * appdomain.c: we tried to load [name].(dll|exe), but according
10255         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10256         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10257         There's a test case attached to bug #58922.
10258
10259 2004-05-27  Dick Porter  <dick@ximian.com>
10260
10261         * icall.c:
10262         * file-io.c: Implemented icalls for locking and unlocking regions
10263         in a file.
10264         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10265         FALSE on error (fixes both compiler warning and real bug.)
10266
10267 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10268
10269         * culture-info-tables.h: reflecting locale-builder updates.
10270
10271           (Added missing ChangeLog entry for 05/26)
10272
10273 2004-05-27  Jackson Harper  <jackson@ximian.com>
10274
10275         * locales.c: Fix some cut and paste errors.
10276         
10277 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10278
10279         * mono-config.c: set the correct path for config. directory on windows.
10280
10281 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10282
10283         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10284           on win32.
10285
10286 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10287
10288         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10289         from pinvoke functions.
10290         
10291         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10292
10293 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10294
10295         * culture-info-tables.h: reflecting locale-builder updates.
10296
10297 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10298
10299         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10300         #59086.
10301
10302 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10303
10304         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10305         * icall.c: Modified icalls for RNG.
10306         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10307         Windows (CryptoAPI).
10308
10309 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10310
10311         * locales.c: Fix build.
10312
10313 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10314
10315         * culture-info-tables.h: reflecting locale-builder updates.
10316
10317 2004-05-25  Jackson Harper  <jackson@ximian.com>
10318
10319         * locales.c: When creating the current culture use the $LANGs
10320         specific culture. So DateTimeFormat and NumberFormat entries are created.
10321         
10322 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10323
10324         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10325         a char array as parameter.
10326
10327 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10328
10329         * image.c: In mono_image_open(), always use an absolute path name to
10330           look for already loaded images.
10331
10332 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10333
10334         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10335         missing in the windows build (like older cygwin include files).
10336
10337 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10338
10339         * icall.c: Fixed check for possible integer overflow in Buffer_
10340         BlockCopy icall. Replaced comments style // by /* */.
10341
10342 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10343
10344         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10345         
10346         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10347         check after MONO_VTADDR. Fixes pinvoke2.exe.
10348
10349         * marshal.h marshal.c metadata.h: Add beginnings of support for
10350         ftnptr -> delegate marshalling.
10351
10352 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10353
10354         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10355         * threads.c: Fix warnings.
10356
10357 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10358
10359         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10360         * icall.c: Registered icalls for Suspend and Resume.
10361         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10362           Thread.Abort.
10363         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10364         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10365         * process.c: Use WaitForSingleObjectEx.
10366         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10367           checkpoints.
10368         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10369           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10370           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10371           background threads. Added basic support for Abort in Windows.
10372           Start new threads using a managed delegate invoke wrapper. This wrapper
10373           has an interruption checkpoint that is needed since an interruption
10374           can be requested before the thread leaves the unmanaged code that starts 
10375           the thread.
10376         * marshal.c: Added interruption checkpoint after every native call, and
10377           also before managed calls for wrappers called from unmanaged code to
10378           go into managed code.
10379         * object.h: Added new field in MonoThread to keep track of interruption
10380           requests.
10381
10382 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10383
10384         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10385         calls.
10386
10387 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10388
10389         * appdomain.c:
10390         * assembly.c:
10391         * gc.c:
10392         * locales.c:
10393         * mono-config.c:
10394         * rand.c: getenv -> g_getenv (windows!)
10395
10396         * process.c: complete_path is also used on non-windows platforms.
10397
10398 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10399
10400         * icall.c: new signature for Process_Start.
10401
10402         * process.[ch]: new signature for Process_Start. If we're on windows
10403         and UseShellExecute is false, we have to search for the program by
10404         ourselves if we don't get a full path.
10405
10406 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10407
10408         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10409         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10410
10411 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10412
10413         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10414         Fixes bug #58373.
10415
10416 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10417
10418         * process.c: use double quotes to quote program name and arguments on
10419         windows. Fixes bug #58575.
10420
10421 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10422
10423         * file-io.c: don't return "." and ".." when using windows Find*File.
10424
10425 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10426
10427         * marshal.c: Don't pass wrappers to message init because method 
10428         addressed used to lookup metadata. part of remoting[2|3] fix.
10429
10430 2004-05-15  Jackson Harper  <jackson@ximian.com>
10431
10432         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10433         path is essentially the same as MONO_PATH except that it points to
10434         GACs instead of lib directories.
10435         * loader.h: The user gac is gone so we dont need function to
10436         enable/disable it.
10437         * mono-config.c: user gac option is now gone.
10438         
10439 2004-05-15  Jackson Harper  <jackson@ximian.com>
10440
10441         * culture-info.h: Make defines more consistent, add calendar data
10442         to the culture info table.
10443         * culture-info-tables.h: Add basic calendar data. Basically
10444         everyone gets default gregorian until all the data is
10445         updated.
10446         * locales.c: Use the new consistent defines. Set calendar data for
10447         culture info objects.
10448         * object.h: add a field for calendar data to CultureInfo
10449         
10450 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10451
10452         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10453         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10454         a signature.
10455         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10456         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10457         an extra param that is the pointer of the method to invoke. The IL for
10458         the invoke method is no longer specific to the method, but to the
10459         signature of the method. Thus, we can share the same code for multiple
10460         methods. This reduces the number of methods that have to be compiled.
10461
10462 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10463
10464         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10465
10466         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10467
10468         * icall.c: Optimize Buffer.BlockCopy.
10469
10470 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10471
10472         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10473         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10474         quote). Changed them to "MMMM yyyy".
10475
10476 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10477
10478         * rand.c
10479         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10480
10481 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10482
10483         * reflection.h: Updated after changes to managed structures.
10484
10485         * appdomain.c: Bump corlib version.
10486
10487 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10488
10489         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10490         windows.
10491
10492 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10493
10494         * Makefile.am: link to ../os/libmonoos.la on windows.
10495
10496         * assembly.c:
10497                 -If MONO_DEBUG, warn about non-existing directories in
10498                 MONO_PATH.
10499                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10500                 compile time variable.
10501                 -Removed init_default_path and call mono_set_rootdir from
10502                 libmonoos.a instead (windows only).
10503
10504         * assembly.h: declare mono_assembly_getrootdir().
10505
10506         * domain.c:
10507         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10508
10509         * loader.c: s/getenv/g_getenv/
10510
10511 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10512
10513         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10514
10515         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10516
10517         * metadata.h: Add new marshalling conversions.
10518
10519         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10520         function.
10521
10522         * reflection.c (mono_reflection_get_type): Lookup the type in all
10523         modules of a multi-module assembly. Fixes #58291.
10524
10525 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10526
10527         * threads.c: Before aborting a background, set the StopRequested
10528         state.  This avoids throwing the Abort exception.
10529         In mono_thread_manage, don't continue with the shutdown until all
10530         aborted threads have actually stopped.
10531
10532 2004-05-10  Jackson Harper  <jackson@ximian.com>
10533
10534         * locales.c: Remove the modifier from culture names.
10535         
10536 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10537
10538         * Makefile.am: monosn is not installed any more. It has been deprecated
10539         in favor of sn.
10540
10541 2004-05-07  Jackson Harper  <jackson@ximian.com>
10542
10543         * locales.c
10544         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10545         Fix array construction, add bailout if the length is 0.
10546
10547 2004-05-07  Dick Porter  <dick@ximian.com>
10548
10549         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10550         machine doesn't have a DNS entry.  Patch by Urs Muff
10551         (umuff@quark.com), fixes bug 57928.
10552
10553 2004-05-06  Jackson Harper  <jackson@ximian.com>
10554
10555         * reflection.c: Handle null PublicTokens properly. alloc mem for
10556         assembly names culture so we dont crash when freeing it.
10557         
10558 2004-05-06  Jackson Harper  <jackson@ximian.com>
10559
10560         * assembly.c: Check the usergac when loading with partial names.
10561         
10562 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10563
10564         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10565         does nothing for now (not required for Linux/Windows) but the class
10566         library can call it (and a newer or modified runtime could need it).
10567         * icall.c: Registred icall.
10568
10569 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10570
10571         * loader.c: prints a message on module loading error we set MONO_DEBUG
10572         environment variable.
10573
10574 2004-05-05  Jackson Harper  <jackson@ximian.com>
10575
10576         * appdomain.c: Handle PublicKeyToken=null properly.
10577         
10578 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10579
10580         * environment.c|h: Added icall ves_icall_System_Environment_
10581         GetOSVersionString to get the current OS version as a string.
10582         * icall.c: Registred icall.
10583
10584 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10585
10586         * object.c: in mono_object_get_virtual_method(), take into account that
10587         non-virtual methods don't have a slot in the vtable. Check needed when
10588         the object is a proxy.
10589
10590 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10591
10592         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10593         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10594
10595         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10596
10597         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10598         passed when a valuetype is expected.
10599
10600         * object.c (mono_unhandled_exception): Only set the exit code if the
10601         exception happens in the main thread. Fixes thread5.exe.
10602
10603         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10604         invalid names. Fixes #58047.
10605
10606 2004-05-03  Jackson Harper  <jackson@ximian.com>
10607
10608         * assembly.c: This line was committed accidently and is unneeded.
10609         
10610 2004-05-03  Jackson Harper  <jackson@ximian.com>
10611
10612         * icall.c: Add new icall for Assembly::LoadWithPartialName
10613         * assembly.c/.h: new function that probes the GAC to load partial
10614         assembly names by Paolo Molaro.
10615         
10616 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10617
10618         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10619         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10620         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10621         full type name.
10622
10623 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10624
10625         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10626         * reflection.c: fix bug when parsing a full type name and Version is not
10627         the last thing in the string.
10628
10629 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10630
10631         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10632         crashes when it is freed.
10633
10634 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10635
10636         * assembly.c: print the compat warning to stderr.
10637
10638 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
10639
10640         * assembly.c (mono_assembly_load_references): Add a compatibility
10641         hack to run old applications that might be still referencing the
10642         3300-based assemblies, only do this for System.xxx.
10643
10644 2004-05-01  Jackson Harper  <jackson@ximian.com>
10645
10646         * appdomain.c: If the culture is neutral we set it to "".
10647         
10648 2004-04-29  Jackson Harper  <jackson@ximian.com>
10649
10650         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
10651
10652 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
10653  
10654         * string-icalls.c: added low overhead function for copying chars
10655         * icall.c: added needed icall for the above function
10656  
10657 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10658
10659         * icall.c: fix return value of get_global_assembly_cache.  Implemented
10660         Environment.GetLogicalDrives.
10661
10662 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
10663
10664         * rand.c: try and talk to egd or prngd
10665         for random bytes if opening devices fail.
10666
10667 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
10668
10669         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
10670         alignment for the type using the native alignment of its members 
10671         instead of using klass->min_align.
10672
10673         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
10674
10675 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10676
10677         * file-io.c:
10678         * socket-io.c: added check for sys/aio.h.
10679
10680 2004-04-28  Dick Porter  <dick@ximian.com>
10681
10682         * threads.c: Don't abort a thread thats already aborting, when
10683         terminating everything.
10684
10685 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10686
10687         * icall.c: added 2 new async calls for Socket.
10688
10689         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
10690         IO on *nix systems.
10691
10692         * threadpool.c: removed unused variable.
10693
10694 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
10695
10696         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
10697
10698 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10699
10700         * locales.c: put back string_invariant_tolower () and
10701         string_invariant_toupper ().
10702
10703 2004-04-26 David Waite <mass@akuma.org>
10704
10705         * file-io.h:
10706         * socket-io.h:
10707         * threads.h:
10708         * unicode.h: remove comma from end of enumeration declarations
10709
10710 2004-04-26 David Waite <mass@akuma.org>
10711
10712         * debug-mono-symfile.h:
10713         * decimal.c:
10714         * mono_debug.h:
10715         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
10716
10717
10718 2004-04-26  Jackson Harper  <jackson@ximian.com>
10719
10720         * appdomain.c: Increment version number.
10721         
10722 2004-04-26  Jackson Harper  <jackson@ximian.com>
10723
10724         * appdomain.c: Set assembly references public token value when
10725         PublicKeyToken is specified, not the hash_value. Free public token
10726         values when free assembly name data. Previously the public key
10727         token was hex decoded, however we are using hex encoded public key
10728         tokens, so this is not neccasary.
10729         * assembly.c: Lookup assemblies in the gac if their public token
10730         value is set. Add function to allow enabling user gac
10731         lookups. Specify whether or not the assembly was loaded from the
10732         GAC. Compare full assembly names when checking the cache for
10733         assemblies (Temporarily disabled see comment in code). Remove
10734         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
10735         specifies trace-loader they get extra info to stdout on the
10736         loading of assemblies.
10737         * image.h: Add a field for an assembly references public token
10738         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
10739         whether an assembly has been loaded from the GAC.
10740         * image.c: Remove a corlib -> mscorlib name mapping.
10741         * loader.h: Add function to enable/disable the user gac.
10742         * mono-config.c: Check if the usergac is enabled in the config
10743         file.
10744         * icall.c: New icall to determine whether or not an assembly has
10745         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
10746         * tabldefs.h: Add constant for assemblyref flag that specifies a
10747         full public key is used instead of a public token.
10748         * reflection.c: Remove mscorlib -> corlib mappings. Set
10749         PublicTokenValue instead of hash value. This value is a hex
10750         string so it does not need to be expanded.
10751
10752 2004-04-26  Martin Baulig  <martin@ximian.com>
10753
10754         * mono-debug-debugger.c (mono_debugger_initialize): Set
10755         `mono_debugger_initialized' before calling mono_debug_lock().
10756
10757 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
10758
10759         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
10760           InternalToUpper/InternalToLower.
10761         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
10762           removed invariant culture shortcut.  This is now done in managed code.
10763         * locales.c: (string_invariant_toupper/tolower) removed.
10764
10765 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10766
10767         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
10768         Added Poll internal call.
10769
10770         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
10771         call for Poll. Select was too heavy for polling a single socket.
10772
10773         * threadpool.[ch]: added mono_threadpool_cleanup.
10774         * threads.c: use it. Don't use Thread_Abort on windows.
10775
10776 2004-04-23  Martin Baulig  <martin@ximian.com>
10777
10778         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
10779
10780 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
10781
10782         * icall.c: Registred new icalls for key pair protection and added an
10783         icall for Environment.GetFolderPath on Windows.
10784         * security.c|h: Added new icalls for key pair protection.
10785
10786 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10787
10788         * socket-io.c: don't display the non-supported family warning for known
10789         families. Now this is not displayed on windows when checking support
10790         for IPv4/IPv6.
10791
10792 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10793
10794         * class.c: don't display the layout warning for static fields.
10795
10796 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
10797
10798         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
10799         * locales.c, locales.h: Added new icalls for culture-specific
10800         Char.ToLower and Char.ToUpper.
10801
10802 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10803
10804         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
10805         by David Waite.
10806
10807 2004-04-20  Martin Baulig  <martin@ximian.com>
10808
10809         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
10810         of the type name before passing it to mono_reflection_type_from_name().
10811
10812 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
10813
10814         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
10815         encodings here. Fixes #56965.
10816
10817 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
10818
10819         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10820         fix test on strstr result not that I can see anything that
10821         relies on the result.
10822
10823 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
10824
10825         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
10826         Fixes #57081.
10827
10828         * marshal.c (mono_marshal_get_string_encoding): New helper function.
10829
10830         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
10831         function to determine which marshalling to use for strings. Fixes
10832         #56965.
10833
10834         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
10835
10836         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
10837
10838 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
10839
10840         * icall.c: #include mono-config.h
10841
10842 2004-04-15  Jackson Harper  <jackson@ximian.com>
10843
10844         * culture-info-tables.h: Fix date formats for en-US culture.
10845         
10846 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
10847
10848         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
10849         ThreadPool.SetMinThreads.
10850         * threadpool.c: Implemented ThreadPool.GetMinThreads and
10851         ThreadPool.SetMinThreads.
10852
10853 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10854
10855         * mono-config.c: also load the .config file in the directory
10856         where the assembly was found.
10857
10858 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
10859
10860         * assembly.c: load per-assembly config files.
10861         * icall.c: decrapified code to get the config dir and moved to
10862         mono-config.c.
10863         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
10864         per-assembly config files. When doing a dll map lookup give precedence
10865         to the per-assembly data.
10866
10867 2004-04-14  Martin Baulig  <martin@ximian.com>
10868
10869         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
10870         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
10871         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
10872
10873         * mono-debugger-debugger.c: While the debugger is locked, remember
10874         whether the symbol tables have changes and send one single
10875         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
10876
10877 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
10878
10879         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
10880
10881         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
10882         function.
10883
10884         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
10885         account when marshalling string arrays. Fixes #56965.
10886
10887 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
10888
10889         * icall.c: Add new icalls mapping for security.
10890         * security.c|h: Add internal calls for WindowsIdentity,
10891         WindowsImpersonationContext and WindowsPrincipal.
10892
10893 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
10894
10895         * class.c: Added comment to ensure the System.MonoDummy class
10896         is removed when no longer necessary
10897
10898 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
10899
10900         * appdomain.c: Pass arguments to the bootstraping exceptions to
10901         minimize JITed methods at boot
10902
10903         * metadata.c (mono_exception_from_name_two_strings): Allow for the
10904         second string to be null.
10905
10906         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10907         Change the protocol to minimize the JIT methods at startup.  Now
10908         it Returns the internal codepage, if the value of "int_code_page"
10909         is 1 at entry, and we can not compute a suitable code page
10910         number, returns the code page as a string.
10911
10912 2004-04-13  Jackson Harper  <jackson@ximian.com>
10913
10914         * culture-info-tables.h: Fix number of decimal digits for all
10915         english locales.
10916
10917 2004-04-13  Jackson Harper  <jackson@ximian.com>
10918
10919         * icall.c: Clairfy out of sync error message. It is not always
10920         your corlib that is out of sync.
10921
10922 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
10923
10924         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
10925         properties when only the set accessor is overriden. Fixes #55874.
10926
10927 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
10928
10929         * assembly.c (mono_assembly_load_references): Make this thread safe.
10930         Fixes #56327.
10931
10932 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
10933
10934         * monosn.c: Add missing initialization calls.
10935
10936 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
10937
10938         * locales.c:
10939         ves_icall_System_Globalization_CultureInfo_construct_number_format
10940         Fix g_assert so it compiles on fussier compilers re int/ptr
10941         mismatch
10942
10943 2004-04-08  Dick Porter  <dick@ximian.com>
10944
10945         * socket-io.h:
10946         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
10947         53992.  Also rearrange the code so that the internal calls return
10948         an error value and exceptions are thrown from managed code.
10949
10950         * icall.c: Add type info to the socket icalls.
10951
10952 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10953
10954         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
10955         owes me a beer.
10956
10957 2004-04-07  Martin Baulig  <martin@ximian.com>
10958
10959         * class.c (mono_class_from_generic_parameter): Don't default
10960         `klass->parent' to `mono_defaults.object_type'.
10961
10962 2004-04-07  Martin Baulig  <martin@ximian.com>
10963
10964         * reflection.c (mono_reflection_initialize_generic_parameter): Set
10965         `param->pklass->reflection_info'.       
10966
10967 2004-04-07  Jackson Harper  <jackson@ximian.com>
10968
10969         * culture-info-tables.h: Fix date separator symbol.
10970         
10971 2004-04-07  Martin Baulig  <martin@ximian.com>
10972
10973         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
10974         from System.Type to System.MonoType.
10975
10976 2004-04-07  Martin Baulig  <martin@ximian.com>
10977
10978         * reflection.h
10979         (MonoReflectionGenericParam): Added `has_reference_type' and
10980         `has_value_type' fields.
10981
10982         * reflection.c (mono_image_get_generic_param_info): Encode the
10983         correct flags if we have the `class' or `struct' constraint.
10984
10985 2004-04-07  Martin Baulig  <martin@ximian.com>
10986
10987         * reflection.h
10988         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
10989
10990 2004-04-07  Jackson Harper  <jackson@ximian.com>
10991
10992         * appdomain.c: Revert extra patches, just wanted to bump the
10993         version number.
10994         
10995 2004-04-07  Jackson Harper  <jackson@ximian.com>
10996
10997         * Makefile.am: Add culture-info private headers.
10998         * icall.c: Add new icalls for contructing locales.
10999         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11000         * locales.h: Declare new culture info construction methods.
11001         * object.h: Add new fields used to avoid the CultureMap to
11002         MonoCultureInfo.
11003         * culture-info.h: Definition of structs used in the culture info
11004         tables.
11005         * culture-info-tables.h: Autogenerated tables that contain culture
11006         info data. This file was generated with the locale-builder tool.
11007         * appdomain.c: Incement corlib version number.
11008         
11009 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11010
11011         * appdomain.c: (mono_runtime_init) move mono_thread_init
11012         to before mono_object_new calls so critical sections
11013         are initialized before use.
11014
11015 2004-04-07  Martin Baulig  <martin@ximian.com>
11016
11017         * icall.c
11018         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11019         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11020         (ves_icall_MonoGenericParam_initialize): Removed.
11021         (monogenericparam_icalls): Removed.
11022         (generictypeparambuilder_icalls): Added new table for
11023         System.Reflection.Emit.GenericTypeParameterBuilder.
11024
11025         * reflection.c
11026         (mono_reflection_define_generic_parameter): Removed.
11027         (mono_reflection_initialize_generic_parameter): This is now called
11028         from GenericTypeParameterBuilder's .ctor.
11029
11030 2004-04-06  Martin Baulig  <martin@ximian.com>
11031
11032         * class.c (mono_class_init): Don't inflate nested classes in a
11033         generic instance.
11034         (mono_type_get_name_recurse): Include the generic arguments for
11035         generic instances and generic type declarations.
11036         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11037         (_mono_class_get_instantiation_name): Removed.
11038         (mono_class_create_generic): Always use `gklass->name' as our name.
11039
11040         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11041
11042         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11043         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11044         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11045         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11046         closed generic methods here.
11047
11048         * reflection.c
11049         (mono_reflection_generic_inst_get_nested_types): Removed.
11050         (inflate_mono_method): Copy the generic parameters from the
11051         MonoMethodHeader into out MonoGenericMethod.
11052
11053 2004-04-06  Martin Baulig  <martin@ximian.com>
11054
11055         * row-indexes.h
11056         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11057
11058         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11059
11060         * reflection.c (build_compressed_metadata): If we have any entries
11061         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11062         set the header version to 1.1.
11063
11064 2004-04-06  Martin Baulig  <martin@ximian.com>
11065
11066         * class.c (mono_class_init): If we're a generic instance,
11067         initialize our nested classes, too.
11068         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11069         suffix. 
11070
11071 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11072
11073         * process.c: quote the argument passed to the shell on windows.
11074
11075 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11076
11077         * threads.c (mono_alloc_special_static_data): Allow this to be
11078         called during startup.
11079
11080 2004-04-02  Martin Baulig  <martin@ximian.com>
11081
11082         * icall.c
11083         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11084
11085 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11086
11087         * icall.c: Fix build.
11088
11089 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11090
11091         * Makefile.am: Added security.c|h.
11092         * icall.c: Added icall for get_UserName;
11093         * security.c: New file for security related icalls. Added function
11094         get_UserName for System.Environment (fix #56144).
11095         * security.h: New. Header file for security.c
11096
11097 2004-04-02  Dick Porter  <dick@ximian.com>
11098
11099         * icall.c: Deleted the icalls that were obsoleted some time ago
11100         by the ICU string code, and which were mixed into the icall
11101         rearranging.  Fixes bug 55969.
11102
11103         * string-icalls.h: 
11104         * string-icalls.c: Deleted the code that those icalls reference.
11105
11106 2004-04-01  Martin Baulig  <martin@ximian.com>
11107
11108         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11109
11110         * class.c (mono_class_from_generic_parameter): Don't set 
11111         TYPE_ATTRIBUTE_INTERFACE.
11112         (my_mono_class_from_generic_parameter): Likewise.
11113
11114 2004-04-01  Martin Baulig  <martin@ximian.com>
11115
11116         * loader.c (find_method): Added an optional `MonoClass *ic'
11117         argument to search in a specific interface.
11118         (mono_get_method_constrained): New public function.
11119
11120 2004-04-01  Martin Baulig  <martin@ximian.com>
11121
11122         * reflection.c (mono_image_get_generic_field_token): Use the
11123         `handleref' cache here.
11124
11125 2004-04-01  Martin Baulig  <martin@ximian.com>
11126
11127         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11128
11129         * reflection.c (create_generic_typespec): Use the `typespec' hash
11130         here, not the `typeref' one.    
11131
11132 2004-04-01  Martin Baulig  <martin@ximian.com>
11133
11134         * class.c (mono_class_inflate_generic_type): Moved the
11135         functionality into a new static inflate_generic_type() which
11136         returns NULL if it didn't do anything.  Only increment the
11137         `mono_stats.inflated_type_count' if we actually inflated
11138         something.
11139         (mono_class_get_full): Check the classes type to see whether we
11140         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11141
11142 2004-04-01  Jackson Harper  <jackson@ximian.com>
11143
11144         * reflection.c: Set culture for assembly references.
11145         
11146 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11147
11148         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11149
11150 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11151
11152         * assembly.c:
11153         (do_mono_assembly_open): the critical section also covers
11154         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11155
11156 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11157
11158         * threads.c:
11159         (mono_manage_threads): abort the background threads when finishing.
11160         Fixes bug #47232.
11161
11162 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11163
11164         * gc.c: only close the done_event handle if there was no timeout.
11165         C-ified comments.
11166
11167 2004-03-30  Martin Baulig  <martin@ximian.com>
11168
11169         * icall.c (icall_entries): It's called "System.Activator", not
11170         "System.Activation".    
11171
11172 2004-03-30  Martin Baulig  <martin@ximian.com>
11173
11174         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11175         (mono_class_create_from_typespec): Likewise.
11176
11177 2004-03-30  Martin Baulig  <martin@ximian.com>
11178
11179         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11180         `has_ctor_constraint' and `initialized'.
11181
11182 2004-03-30  Martin Baulig  <martin@ximian.com>
11183
11184         * reflection.c (encode_new_constraint): New static function to add
11185         the constructor constraint attribute to a type parameter.
11186         (encode_constraints): Call encode_new_constraint() if necessary.
11187
11188         * reflection.h
11189         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11190
11191         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11192         
11193 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11194
11195         * reflection.c, icall.c: add support for pinning variables. 
11196
11197 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11198
11199         * marshal.c (mono_marshal_get_managed_wrapper):
11200         init bool local with zero rather than null.
11201
11202 2004-03-29  Martin Baulig  <martin@ximian.com>
11203
11204         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11205         the "official" behavior here.
11206         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11207
11208 2004-03-29  Martin Baulig  <martin@ximian.com>
11209
11210         * icall.c: Reflect latest API changes.
11211
11212 2004-03-29  Martin Baulig  <martin@ximian.com>
11213
11214         * loader.c (mono_get_method_from_token): Also call
11215         mono_metadata_load_generic_params () for abstract and interface
11216         methods; replace the type arguments in the method signature with
11217         the ones which are loaded from the metadata.
11218
11219 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11220
11221         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11222         of the lock is not the current thread. MS.NET don't do it, in spite of
11223         what the documentation says. See bug #56157.
11224
11225 2004-03-28  Martin Baulig  <martin@ximian.com>
11226
11227         * class.c (mono_class_init): Don't call init_properties() and
11228         init_events() for generic instances; set `prop->parent' when
11229         inflating properties.
11230
11231         * reflection.c (mono_generic_inst_get_object): Call
11232         `mono_class_init (ginst->klass)'.
11233         (mono_type_get_object): Only create a MonoGenericInst if your
11234         generic type is a TypeBuilder.
11235         (do_mono_reflection_bind_generic_parameters): Only set
11236         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11237
11238 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11239
11240         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11241         Fixes #56091.
11242
11243 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11244
11245         * icall.c: added Kill_internal icall.
11246         * process.[ch]: added Kill_internal icall.
11247
11248 2004-03-25  Martin Baulig  <martin@ximian.com>
11249
11250         * class.h (MonoStats): Added `generic_instance_count',
11251         `inflated_method_count', `inflated_type_count' and
11252         `generics_metadata_size'.       
11253
11254 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11255
11256         * reflection.c: no warnings now.
11257
11258 2004-03-25  Martin Baulig  <martin@ximian.com>
11259
11260         * class.c (mono_class_get_full): New public function; does a
11261         mono_class_get(), but also takes a `MonoGenericContext *'.
11262
11263         * loader.c (mono_field_from_memberref): Renamed to
11264         `field_from_memberref', made static and added `MonoGenericContext *'
11265         argument.
11266         (mono_field_from_token): Added `MonoGenericInst *' argument.
11267         (method_from_memberef): Likewise.
11268         (mono_get_method_from_token): Likewise.
11269         (mono_get_method_full): New public function; does a
11270         mono_get_method(), but also takes a `MonoGenericContext *'.
11271
11272         * verify.c (mono_method_verify): Get the method's generic context
11273         and pass it to mono_field_from_token(), mono_get_method_full() and
11274         mono_class_get_full().
11275
11276 2004-03-25  Martin Baulig  <martin@ximian.com>
11277
11278         * class.c (mono_class_inflate_generic_type): Take a
11279         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11280         `MonoGenericMethod *'.
11281
11282 2004-03-25  Martin Baulig  <martin@ximian.com>
11283
11284         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11285         instead of the MonoGenericMethod here.
11286
11287 2004-03-25  Martin Baulig  <martin@ximian.com>
11288
11289         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11290         each time we create a new MonoGenericInst, we also create a new
11291         context which points back to us.
11292
11293         * class.c (inflate_method): Use `ginst->context' instead of
11294         creating a new context.
11295
11296         * loader.c (method_from_memberref): Use
11297         `klass->generic_inst->context' instead of creating a new context.
11298
11299 2004-03-25  Martin Baulig  <martin@ximian.com>
11300
11301         * class.h (MonoGenericContext): New struct.
11302         (MonoGenericMethod): Removed `generic_inst'.
11303
11304         * class.c (mono_class_inflate_generic_method): Take a
11305         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11306
11307 2004-03-25  Martin Baulig  <martin@ximian.com>
11308
11309         * loader.h (MonoMethodInflated): New typedef.
11310
11311         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11312         `generic_param_count' consume just 30 bits, added `is_inflated'
11313         and `has_type_parameters' flags (one bit each).
11314
11315         * class.c (mono_class_inflate_generic_method): Create a
11316         MonoMethodInflated instead of a MonoMethodNormal and set
11317         `is_inflated' in the method signature.
11318
11319         * class.h (MonoGenericMethod): Removed `generic_method'.
11320
11321 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11322
11323         * image.c: Make sure the name of a MonoImage is always an absolute path.
11324           This fixes bug #54415.
11325
11326 2004-03-24  Martin Baulig  <martin@ximian.com>
11327
11328         * class.c (mono_class_setup_vtable): If we're a generic instance,
11329         use our generic type's vtable size.
11330
11331 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11332
11333         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11334         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11335         problems.
11336
11337 2004-03-23  Martin Baulig  <martin@ximian.com>
11338
11339         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11340         `MonoEvent *events'.
11341
11342         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11343         (typebuilder_icalls): Added "get_event_info"; calls
11344         mono_reflection_event_builder_get_event_info(). 
11345
11346         * reflection.c (mono_reflection_generic_inst_initialize): Added
11347         `MonoArray *events'.
11348         (mono_reflection_event_builder_get_event_info): New function.
11349
11350 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11351
11352         * object.h: add mono_type_initialization_init
11353
11354         * object.c (mono_runtime_class_init): 
11355         implement class constructor synchronization rules
11356         to cope with threading issues.  
11357         add mono_type_initialization_init
11358
11359         * appdomain.c (mono_runtime_init): call 
11360         mono_type_initialization_init
11361
11362         * class.h: removing initializing field from MonoVTable
11363
11364 2004-03-23  Martin Baulig  <martin@ximian.com>
11365
11366         * class.c (my_mono_class_from_generic_parameter): Use
11367         `param->name' if it's not NULL. 
11368
11369 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11370
11371         * class.c: do not insert non-virtual methods in the vtable.
11372         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11373         that means the method is non-virtual. This never would have
11374         happened before.
11375
11376 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11377
11378         * profiler.c: Added lock for accessing coverage_hash.
11379
11380 2004-03-22  Martin Baulig  <martin@ximian.com>
11381
11382         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11383         `method->method->signature->generic_param_count != 0' to make it
11384         work for interface methods.
11385
11386 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11387
11388         * process.c: quote the string passed to the shell using g_shell_quote.
11389
11390 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11391
11392         * threads.c:
11393         (mono_threads_manage): don't remove the finalizer thread and self
11394         from the threads hash table so that mono_thread_manage can be called
11395         more than once.
11396
11397 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11398
11399         * process.c: quote the arguments when UseShellExecute is true. Fixes
11400         bug #55790.
11401
11402 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11403
11404         * threads.c: set mono_thread_detach as a cleanup routine for every
11405         thread. This way it's always executed upon thread termination, either
11406         aborted or finished normally. No more xsp hangs!
11407
11408 2004-03-17  Martin Baulig  <martin@ximian.com>
11409
11410         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11411         `int count_nested' and a `MonoType **nested'.
11412
11413         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11414         most of the functionality into a new static
11415         do_mono_reflection_bind_generic_parameters() and don't take a
11416         `MonoType *nested_in' argument any more.  Don't compute nested
11417         types here.
11418         (mono_reflection_generic_inst_get_nested_types): New public method
11419         to get nested types.
11420
11421         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11422         we're a nested class.
11423
11424         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11425         mono_reflection_generic_inst_get_nested_types() to compute the
11426         nested types.
11427
11428 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11429
11430         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11431         descriptive error message under windows.
11432         
11433 2004-03-17  Martin Baulig  <martin@ximian.com>
11434
11435         * class.c (dup_type): Added `const MonoType *original' argument;
11436         copy the attrs from the original type.
11437
11438 2004-03-17  Martin Baulig  <martin@ximian.com>
11439
11440         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11441         `m->generic_inst_cache' here.
11442
11443 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11444
11445         * exception.h exception.c: Add stack_overflow_exception.
11446
11447 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11448
11449         * threadpool.c:
11450         (overlapped_callback): call SetEvent *after* invoking the callback.
11451         No need to call CloseHandle.
11452
11453 2004-03-16  Martin Baulig  <martin@ximian.com>
11454
11455         * reflection.c (mono_image_get_fieldref_token): Take a
11456         `MonoReflectionField *' instead of a `MonoClassField *' and a
11457         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11458
11459 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11460
11461         * appdomain.c: don't add the culture to the filename we're looking for
11462         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11463
11464 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11465
11466         * locales.c: don't ignore symbols when doing case insensitive compares.
11467         Thanks Dick! Fixes bug #54046.
11468
11469         * threads.c: surround 'threads' usage with enter/leave in
11470         mono_thread_manage.
11471
11472 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11473
11474         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11475         implicitly marshalled as [Out]. Fixes #55450.
11476
11477         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11478         an exception.
11479
11480 2004-03-16  Martin Baulig  <martin@ximian.com>
11481
11482         * class.c (mono_class_from_generic_parameter): Use the actual
11483         parameter name. 
11484
11485 2004-03-16  Martin Baulig  <martin@ximian.com>
11486
11487         * reflection.c (type_get_signature_size): New static function.
11488         Compues the size of the type in a method signature.
11489         (method_get_signature_size): New static function; calls
11490         type_get_signature_size() to compute the actual size of the
11491         method's signature.
11492         (method_encode_signature): Use method_get_signature_size() to get
11493         the signature's size rather than using `nparams * 10'.
11494
11495 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11496
11497         * file-io.h: define here WapiOverlapped on windows. I don't want the
11498         regular OVERLAPPED one.
11499
11500         * file-io.c:
11501         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11502         Disabling AIO on windows.
11503
11504 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11505
11506         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11507         bug #55385.
11508
11509 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11510
11511         * appdomain.c: upgraded corlib version.
11512
11513         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11514         and BeginWrite. Allow opening files for asynchrnous operations.
11515
11516         * file-io.h: new struct that maps FileStreamAsyncResult.
11517         * icall.c: added new icalls.
11518         * process.[ch]: support setting child process environment variables
11519         and use the SHELL or COMSPEC when UseShellExecute is true.
11520
11521         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11522         callback for async. IO is here and also BindHandle.
11523
11524         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11525         from here.
11526
11527 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11528
11529         * reflection.c (create_custom_attr): Allow len == 0.
11530
11531         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11532         computation on big-endian machines.
11533
11534 2004-03-13  Martin Baulig  <martin@ximian.com>
11535
11536         * class.h (MonoGenericInst): Added `int count_ifaces'.
11537
11538         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11539         `ginst->count_ifaces' instead `klass->interface_count' since we
11540         may get called before the vtable is created.
11541
11542         * loader.c (mono_method_get_param_names): If we're a generic
11543         instance, return and don't initialize the class.
11544
11545         * reflection.c (mono_reflection_setup_generic_class): Don't call
11546         ensure_runtime_vtable().
11547         (mono_reflection_bind_generic_parameters): Set
11548         `ginst->count_ifaces'.
11549
11550 2004-03-11  Jackson Harper <jackson@ximian.com>
11551
11552         * icall.c:
11553         * unicode.c:
11554         * unicode.h: Remove unused System.Char icalls.
11555         
11556 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11557
11558         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11559         code when we P/Invoke the first library in Windows.Forms, instead
11560         of when we first open the assembly.
11561
11562         * assembly.c: Drop the lookup from here.
11563
11564 2004-03-10  Martin Baulig  <martin@ximian.com>
11565
11566         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11567         class for properties, fields and events.  Finally fixes #54945.
11568
11569 2004-03-10  Martin Baulig  <martin@ximian.com>
11570
11571         * metadata.c (mono_metadata_class_equal): New static function;
11572         checks whether two generic instances or two generic parameters are
11573         equal.
11574         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11575         compare classes.        
11576
11577 2004-03-10  Martin Baulig  <martin@ximian.com>
11578
11579         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11580
11581         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11582         argument and write it into the `reflection_info' field.
11583
11584         * icall.c
11585         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11586         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11587
11588 2004-03-09  Jackson Harper  <jackson@ximian.com>
11589
11590         * char-conversions.h: use 8 bits for numeric data its all we need
11591         * icall.c: numeric data is only 8 bits now.
11592
11593 2004-03-09  Martin Baulig  <martin@ximian.com>
11594
11595         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11596
11597         * class.c (init_properties, init_events): Initialize the new
11598         `parent' field.
11599
11600         * reflection.c (typebuilder_setup_properties): Likewise.
11601         (typebuilder_setup_events): Likewise.
11602
11603         * reflection.h (MonoEventInfo): Replaced `parent with
11604         `declaring_type' and `reflected_type'.
11605
11606         * icall.c (ves_icall_get_property_info): Distinguish between
11607         declaring and reflected type.
11608         (ves_icall_get_event_info): Likewise.
11609
11610 2004-03-09  Martin Baulig  <martin@ximian.com>
11611
11612         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11613         (ves_icall_Type_GetField): Correctly set field->klass.
11614
11615 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11616
11617         * loader.h: Fix warning.
11618
11619 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11620
11621         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11622         library routine if present.  Notice that it will still continue
11623         executing even if its missing, for those working on the Gtk#
11624         edition of Windows.Forms.
11625
11626         * assembly.c (do_mono_assembly_open): If loading the
11627         System.Windows.Forms call mono_loader_wini_init.
11628
11629 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11630
11631         * class.h: Added MonoRemoteClass struct.
11632         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11633         function for MonoStrings.
11634         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11635         Added internal call for getting the proxy type.
11636         * marshal.c: Get the type of transparent proxies from its remote_class.
11637         Added methods that generate the IL for type checks and casts:
11638         mono_marshal_get_isinst, mono_marshal_get_castclass, 
11639         mono_marshal_get_proxy_cancast.
11640         * marshal.h: Declaration of the previous new methods.
11641         * object.c: Added new moethods for creating and updating MonoRemoteClass
11642         instances: mono_remote_class, mono_upgrade_remote_class, 
11643         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
11644         * verify.c: FIx transparent_proxy_fields layout.
11645         * appdomain.c: Bump corlib version.
11646
11647 2004-03-04  Jackson Harper  <jackson@ximian.com>
11648
11649         * icall.c: Add icall to access char conversion tables.
11650         * char-conversions.h: Character conversion tables.
11651         * Makefile.am: Add char-conversions.h private header file.
11652         
11653 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
11654
11655         * appdomain.c (unload_thread_main): Increase unloading timeout to
11656         10 sec as a temporary workaround for Nant problems.
11657
11658 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
11659
11660         * gc.c: Add checks for GC_enable and GC_disable.
11661
11662         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
11663         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
11664         (bug #54988).
11665         
11666 2004-02-27  Martin Baulig  <martin@ximian.com>
11667
11668         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11669         `MonoReflectionType *' instead of a `MonoType *'.
11670
11671 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
11672
11673         * gc.c (run_finalize): Avoid finalizing the object representing the
11674         finalizer thread.
11675         (finalizer_thread): Fix warning.
11676
11677 2004-02-25  Martin Baulig  <martin@ximian.com>
11678
11679         * class.c (_mono_class_get_instantiation_name): Added `int offset'
11680         argument for nested types.
11681         (mono_class_create_generic): Added support for nested generictypes.
11682
11683         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
11684         `GList *nested'.
11685
11686         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
11687
11688         * reflection.c (method_encode_signature): Increase the minimum
11689         value of `size' from 10 to 11.
11690         (mono_reflection_bind_generic_parameters): Take `int type_argc'
11691         and `MonoType **types' arguments instead of the `MonoArray
11692         *types'; added `MonoType *nested_in'.  Recursively instantiate
11693         nested classes. 
11694
11695 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
11696
11697         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
11698         stack_overflow_ex members which are used by exception handling.
11699
11700         * appdomain.c (mono_runtime_init): Initialize the new members.
11701
11702         * gc.c (mono_gc_enable): New helper function.
11703         * gc.c (mono_gc_disable): New helper function.
11704
11705 2004-02-23  Martin Baulig  <martin@ximian.com>
11706
11707         * icall.c: I must have been really stupid - make it actually work
11708         this time ;-)
11709
11710 2004-02-23  Martin Baulig  <martin@ximian.com>
11711
11712         * loader.c (method_from_memberref): Only inflate the method if
11713         it's in another klass.
11714
11715 2004-02-23  Martin Baulig  <martin@ximian.com>
11716
11717         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
11718         (mono_class_init): If we're a generic instance and an interface,
11719         compute `class->interface_id'; also create `class->interfaces'
11720         here and inflate them.
11721
11722         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
11723         `ginst->is_open'.
11724         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
11725
11726         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
11727
11728 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
11729
11730         * reflection.c (method_encode_code): Improved the error message
11731         generated by the exception.
11732
11733 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11734
11735         * icall.c: Martin did not do what he said in the ChangeLog for
11736         2004-02-18, but put back the changes for properties and events.
11737         Commenting those changes out again and adding comment to bug #54518.
11738         
11739         * process.c: removed warning.
11740
11741 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
11742
11743         * marshal.c (emit_struct_conv): Print an error message instead of
11744         asserting when a type does not have the StructLayout attribute.
11745
11746 2004-02-20  Martin Baulig  <martin@ximian.com>
11747
11748         * reflection.c (mono_type_get_object): Also use the cache for
11749         generic instances.
11750         (mono_reflection_bind_generic_parameters): Always compute
11751         `ginst->ifaces'.        
11752
11753 2004-02-20  Martin Baulig  <martin@ximian.com>
11754
11755         * class.h (MonoGenericMethod): Removed `klass'.
11756
11757         * class.c (mono_class_inflate_generic_method): Added `MonoClass
11758         *klass' argument.
11759
11760 2004-02-20  Martin Baulig  <martin@ximian.com>
11761
11762         * reflection.c (method_encode_methodspec): Actually use the
11763         uninflated signature for the memberref.
11764
11765 2004-02-20  Martin Baulig  <martin@ximian.com>
11766
11767         * class.h (MonoGenericMethod): Removed `declaring'.
11768
11769         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
11770         is NULL, compute it here.
11771
11772 2004-02-20  Martin Baulig  <martin@ximian.com>
11773
11774         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
11775
11776         * metadata.c (mono_metadata_generic_inst_hash): New method.
11777         (mono_metadata_generic_inst_equal): New method.
11778
11779         * reflection.c (mono_reflection_bind_generic_parameters): Use the
11780         `klass->image->generic_inst_cache' cache to avoid creating
11781         duplicate MonoGenericInst's.
11782
11783         * class.c (mono_class_inflate_generic_type): Use the cache.
11784
11785 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
11786
11787         * object.c: fixed gc descriptor calculation for embedded valuetypes.
11788
11789 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11790
11791         * icall.c: added Socket.WSAIoctl icall.
11792
11793         * socket-io.[ch]: implemented
11794         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
11795
11796 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
11797
11798         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
11799
11800 2004-02-18  Urs C Muff  <umuff@quark.com>
11801
11802         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
11803         this work on PPC and other big-endian architectures.
11804
11805         * debug-mono-symfile.h: Prepended the names of all the `guint32'
11806         fields with an underscore to make sure they're only accessed by
11807         the read32() macro.
11808
11809 2004-02-18  Martin Baulig  <martin@ximian.com>
11810
11811         * icall.c: Put the klass->refclass changes back for methods and
11812         fields, but not for properties and events.  We're currently not
11813         distinguishing between DeclaringType and ReflectedType for
11814         properties and events, that's what caused the regressions.
11815
11816 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11817
11818         * object.c:
11819         (mono_async_result_new): the handle can be NULL.
11820
11821         * threadpool.c: Use an event instead of a semaphore, don't initialize
11822         it until needed. This saves quite a few semaphores from being created
11823         when using the threadpool.
11824
11825 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
11826
11827         * object.c (mono_string_is_interned_lookup): Fix interning of long
11828         strings. Fixes #54473.
11829
11830         * domain.c (ldstr_equal): Optimize if the two strings are equal.
11831
11832         * icall.c: Revert the klass->refclass changes since they introduce
11833         regressions (bug #54518).
11834
11835 2004-02-18  Martin Baulig  <martin@ximian.com>
11836
11837         * class.c (mono_class_init): If we're a generic instance and don't
11838         come from a TypeBuilder, inflate our members here.
11839         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
11840         (mono_class_create_generic): New public method.
11841         (mono_class_initialize_generic): Removed.
11842         (get_instantiation_name): Renamed to
11843         _mono_class_get_instantiation_name() and made it public.
11844
11845 2004-02-18  Martin Baulig  <martin@ximian.com>
11846
11847         * class.c (mono_class_inflate_generic_type): Clear the new
11848         instance's `nginst->klass' when inflating a generic instance.
11849         (mono_class_is_subclass_of): Added (basic) support for generic
11850         instances.
11851
11852 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
11853
11854         * appdomain.h, domain.c: use a MonoCodeManager instead of a
11855         MonoMempool to hold compiled native code.
11856
11857 2004-02-17  Martin Baulig  <martin@ximian.com>
11858
11859         * class.h (MonoDynamicGenericInst): Added `count_properties' and
11860         `properties'.
11861
11862         * reflection.c (mono_reflection_generic_inst_initialize): Added
11863         `MonoArray *properties' argument.
11864
11865         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
11866
11867 2004-02-17  Martin Baulig  <martin@ximian.com>
11868
11869         * icall.c (ves_icall_Type_GetFields): Renamed to
11870         ves_icall_Type_GetFields_internal() and added a
11871         `MonoReflectionType *rtype' argument; pass it to
11872         mono_field_get_object() to set the field's "reflected" type.
11873         (ves_icall_Type_GetConstructors): Likewise.
11874         (ves_icall_Type_GetEvents): Likewise.
11875         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
11876         argument; pass it to mono_method_get_object() to set the method's
11877         "reflected" type.       
11878
11879 2004-02-17  Martin Baulig  <martin@ximian.com>
11880
11881         * class.h (MonoDynamicGenericInst): New type.
11882         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
11883
11884         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
11885         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
11886         (ves_icall_MonoGenericInst_GetFields): New interncall.
11887
11888         * class.c (mono_class_from_generic): Don't call
11889         mono_class_initialize_generic() if this is a dynamic instance;
11890         ie. it's being created from a TypeBuilder.
11891         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
11892         `class->byval_arg.type'.
11893
11894         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
11895         to `inflate_method' and made static.
11896         (mono_reflection_inflate_field): Removed.
11897         (mono_reflection_generic_inst_initialize): New public method.
11898
11899         * reflection.h (MonoReflectionGenericInst): Removed `methods',
11900         `ctors' and `fields'; added `initialized'.
11901
11902 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
11903
11904         * debug-helpers.c (mono_method_full_name): Fix output for empty
11905         namespaces.
11906
11907 2004-02-12  Martin Baulig  <martin@ximian.com>
11908
11909         * class.h (MonoClassField): Added `MonoType *generic_type'.
11910
11911         * reflection.c (mono_image_get_fieldref_token): Added support for
11912         instantiated generic types.
11913         (field_encode_inflated_field): Removed.
11914         (mono_image_get_inflated_field_token): Removed.
11915         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
11916
11917         * reflection.h (MonoReflectionInflatedField): Removed.
11918
11919 2004-02-12  Martin Baulig  <martin@ximian.com>
11920
11921         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
11922         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
11923
11924         * reflection.c (mono_image_get_methodspec_token): Take a
11925         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
11926         (mono_image_create_token): Check whether we have a
11927         `method->signature->gen_method' and call
11928         mono_image_get_methodspec_token() if appropriate.
11929         (inflated_method_get_object): Removed.
11930         (mono_reflection_bind_generic_method_parameters): Return a
11931         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
11932         (mono_reflection_inflate_method_or_ctor): Likewise.
11933
11934         * reflection.h (MonoReflectionInflatedMethod): Removed.
11935
11936 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
11937
11938         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
11939         for custom valuetype marshalling.
11940
11941         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
11942
11943 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11944
11945         * icall.c: fixed WSAGetLastError_internal name.
11946
11947 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
11948
11949         * threads.c (mono_thread_attach): Allow this to be called multiple
11950         times for a thread.
11951         
11952         * threads.c (build_wait_tids): Do not wait for ourselves.
11953
11954         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
11955         appdomain list is empty.
11956
11957         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
11958         memory returned by mono_string_builder_to_utf16, since it points into
11959         managed memory. Thanks to Bernie Solomon for noticing this.
11960
11961         * icall.c: Add AppDomainSetup icalls.
11962
11963         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
11964
11965         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
11966         types.
11967
11968         * reflection.c (reflection_methodbuilder_to_mono_method): Save
11969         custom attributes to the method_aux struct. Also fix array indexes etc.
11970
11971         * loader.c (mono_method_get_param_names): Make dynamic case work again.
11972         
11973 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
11974
11975         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
11976         (both static and runtime) and reduce startup time.
11977
11978 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
11979
11980         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
11981         AsAny marshalling conversion instead of crashing.
11982
11983         * marshal.c: Fix warnings.
11984
11985 2004-02-09  Martin Baulig  <martin@ximian.com>
11986
11987         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
11988
11989         * reflection.h (MonoReflectionInflatedMethod): Removed the
11990         `declaring' field, it's now in the unmanaged MonoGenericMethod.
11991
11992         * reflection.c (method_encode_methodspec): Removed the `method'
11993         argument; we get it from `gmethod->declaring'.
11994         (inflated_method_get_object): Removed the `declaring' argument.
11995
11996 2004-02-09  Martin Baulig  <martin@ximian.com>
11997
11998         * class.h (MonoGenericMethod): New type.
11999         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12000         `generic_method'.
12001
12002         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12003         a `MonoGenericMethod *gen_method' one.
12004
12005         * class.c (mono_class_inflate_generic_type): Take an additional
12006         `MonoGenericMethod * argument.  This is only non-NULL if we're
12007         inflating types for a generic method.   
12008         (mono_class_inflate_generic_signature): Renamed to
12009         inflate_generic_signature() and made static; take a
12010         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12011         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12012         instead of a `MonoGenericInst *' one.
12013         (mono_class_inflate_generic_method): Likewise.
12014
12015         * reflection.c (encode_generic_method_sig): Take a
12016         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12017         (method_encode_methodspec): Likewise.
12018         (inflated_method_get_object): Likewise. 
12019
12020         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12021         field with a `MonoGenericMethod *gmethod' one.  
12022
12023 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12024
12025         * class.h (mono_class_has_parent): add parens to expansion
12026         so you can ! this.
12027
12028 2004-02-08  Martin Baulig  <martin@ximian.com>
12029
12030         * image.h (MonoImage): Removed `generics_cache'.
12031
12032         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12033         instead of a `MonoType *' argument; removed the `inflate_methods'
12034         argument.  Don't inflate methods here.
12035
12036         * loader.c (find_method): If it's a generic instance, call
12037         mono_class_init() on the `sclass->generic_inst->generic_type'.
12038
12039         * metadata.c (mono_type_size): Make this work on uninitialized
12040         generic instances; call it on the `ginst->generic_type's class.
12041
12042         * reflection.c (mono_reflection_bind_generic_parameters): Call
12043         mono_class_from_generic() to create the `ginst->klass'.
12044
12045 2004-02-08  Martin Baulig  <martin@ximian.com>
12046
12047         * class.h (MonoClass): Changed type of `generic_inst' from
12048         `MonoType *' to `MonoGenericInst *'.
12049
12050 2004-02-08  Martin Baulig  <martin@ximian.com>
12051
12052         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12053         mono_type_get_object(), this is now creating a `MonoGenericInst'
12054         for MONO_TYPE_GENERICINST.
12055         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12056         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12057
12058         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12059         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12060         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12061         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12062         and reflected type.
12063
12064         * reflection.h (MonoReflectionInflatedMethod): Removed
12065         `declaring_type' and `reflected_type'.
12066
12067 2004-02-08  Martin Baulig  <martin@ximian.com>
12068
12069         * class.h (MonoGenericInst): Added `MonoType *parent' and
12070         `MonoType **ifaces'.
12071
12072         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12073         `parent' and `interfaces'.
12074
12075         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12076         `MonoType *' argument and return a `MonoType *'.
12077
12078         * icall.c
12079         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12080         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12081
12082 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12083
12084         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12085         valuetype marshalling.
12086
12087 2004-02-06  Martin Baulig  <martin@ximian.com>
12088
12089         * class.c
12090         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12091         (my_mono_class_from_generic_parameter): Likewise.
12092
12093 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12094
12095         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12096         contents of the symbol files lazily.
12097
12098         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12099
12100         * threads.h threads.c icall.c: New icalls for getting and setting the
12101         threads name.
12102
12103 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12104
12105         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12106         Raise an exception when the domain is not found.
12107
12108 2004-02-03  Martin Baulig  <martin@ximian.com>
12109
12110         * reflection.c (mono_image_get_methodspec_token): Use the
12111         uninflated signature; fixes gen-33.
12112
12113 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12114
12115         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12116         the finalizer code can use thread functionality.
12117
12118         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12119         the finalizer thread.
12120
12121         * threads.c: Make some functions more robust.
12122
12123         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12124
12125         * metadata.h: Add new marshalling conventions.
12126
12127         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12128         stringbuilder marshalling. Fixes #53700.
12129
12130         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12131
12132         * reflection.c (mono_image_get_type_info): Save declarative security
12133         info.
12134
12135         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12136         unmanaged fields as well.
12137
12138         * appdomain.c: Bump corlib version.
12139
12140 2004-02-01  Martin Baulig  <martin@ximian.com>
12141
12142         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12143         method type arguments.  
12144
12145 2004-01-30  Duncan Mak  <duncan@ximian.com>
12146
12147         * marshal.h: Add prototype for
12148         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12149         and
12150         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12151         fix the build.
12152
12153 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12154
12155         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12156         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12157
12158 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12159
12160         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12161         custom marshalling of valuetypes.
12162
12163         * marshal.c: Fix some warnings.
12164
12165 2004-01-29  Martin Baulig  <martin@ximian.com>
12166
12167         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12168         for generic method parameters.
12169
12170         * reflection.c (method_encode_methodspec): Write the uninflated
12171         signature into the methodspec table.
12172         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12173         is always the uninflated method.
12174         (reflection_methodbuilder_to_mono_method): Copy the generic
12175         parameters from the MethodBuilder into `header->gen_params'.
12176
12177 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12178
12179         * class.c (mono_class_from_generic_parameter): Fix warning.
12180
12181 2004-01-27  Martin Baulig  <martin@ximian.com>
12182
12183         * class.c (mono_class_from_generic_parameter): Don't create
12184         `klass->methods' here.  
12185
12186 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12187
12188         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12189         extension since it does not work with libraries named lib<FOO>.dll.so.
12190
12191 2004-01-25  Martin Baulig  <martin@ximian.com>
12192
12193         * class.c (mono_class_inflate_generic_type): Added support for
12194         MONO_TYPE_GENERICINST.
12195
12196         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12197         inflate methods on open constructed types.      
12198
12199 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12200
12201         * object.c: fire ProcessExit event in the root AppDomain after running
12202         Main. Fixes bug #53299.
12203
12204 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12205
12206         * socket-io.c: include the new socket-wrappers.h header.
12207         Use the wrappers instead of the unix socket functions to make the code
12208         more clear.
12209
12210 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12211
12212         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12213
12214         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12215         Fixes #22532.
12216
12217 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12218
12219         * reflection.c (mono_image_create_pefile): Handle the case when the
12220         entry point is not a MethodBuilder.
12221
12222         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12223         field to ReflectionMethod since it is not allways a builder.
12224
12225         * reflection.c (type_get_fully_qualified_name): New helper function to
12226         return the fully qualified name of a type.
12227
12228         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12229         type name for custom marshallers.
12230
12231         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12232
12233         * class.c (mono_class_setup_vtable): If a parent class already 
12234         implements an interface, use the implementing methods from that class.
12235         Fixes #53148.
12236
12237 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12238
12239         * threadpool.c: just return instead of ExitThread to allow for thread
12240         clean up earlier.
12241
12242 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12243
12244         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12245         when closing resource modules.
12246
12247         * reflection.c (mono_image_create_pefile): Handle the case when the
12248         entry point is not a MethodBuilder.
12249
12250         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12251         field to ReflectionMethod since it is not allways a builder.
12252
12253 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12254
12255         * marshal.c (mono_marshal_get_managed_wrapper): 
12256         mono_marshal_alloc takes native int so CONV_I
12257         the arg for 64bits.
12258
12259 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12260
12261         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12262         tokens in the cattr table. Fixes #53108.
12263
12264 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12265
12266         * loader.c: don't trim ".dll" before looking up in the config file.
12267         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12268
12269 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12270
12271         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12272         Return the module which contains the resource as well.
12273         (ves_icall_System_Reflection_Module_Close): New icall.
12274
12275         * appdomain.c: Bump corlib version number.
12276
12277         * image.c (mono_image_addref): New public function.
12278
12279         * assembly.c: Call mono_image_addref.
12280
12281         * reflection.c (mono_module_get_object): Increase reference count of 
12282         the image.
12283
12284         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12285         Fixes #22532.
12286
12287         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12288         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12289         proper exceptions on DllImport problems.
12290
12291 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12292
12293         * class.c, metadata.c: eliminate CSIZE macro.
12294
12295 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12296
12297         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12298         * object.h: Added async_callback field in MonoAsyncResult.
12299         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12300         * verify.c: Added async_callback in MonoAsyncResult layout.
12301
12302 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12303
12304         * reflection.c (mono_reflection_get_custom_attrs): Add support
12305         for Modules.
12306
12307 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12308
12309         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12310         marshalling.
12311         (mono_marshal_method_from_wrapper): Add null pointer check.
12312
12313 2004-01-16  Martin Baulig  <martin@ximian.com>
12314
12315         * debug-mono-symfile.h: Set version number to 36 and reflect
12316         latest symbol writer changes.
12317
12318 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12319
12320         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12321         multi-dimensional arrays.
12322         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12323         (mono_class_from_mono_type): Use bounded_array_class_get.
12324         
12325         * class.c (mono_bounded_array_class_get): New function which takes
12326         a 'bounded' bool argument to distinguish vectors from one dimensional
12327         arrays.
12328
12329         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12330         bounded_array_class_get if the array has bounds.
12331
12332         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12333         Search modules loaded using AssemblyBuilder:AddModule as well.
12334
12335 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12336
12337         * appdomain.c: increased corlib version.
12338         * filewatcher.c: removed g_print.
12339         * icall.c:
12340         (get_property_info): only allocate what is actually requested.
12341         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12342
12343 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12344
12345         * Makefile.am: added filewatcher.[ch]
12346         * filewatcher.[ch]: FileSystemWatcher runtime support.
12347         * icall.c: added new FSW icalls.
12348
12349 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12350
12351         * string-icalls.c: fix stringbuilder regression as suggested by
12352         Iain McCoy <iain@mccoy.id.au>.
12353
12354 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12355
12356         * process.c (process_read_stringtable_block): Recognize '007f' as
12357         a language neutral stringtable block.
12358
12359 2004-01-12  Patrik Torstensson
12360
12361         * object.h (MonoStringBuilder) : Changed layout to support our
12362         new stringbuilder class.
12363         * marshal.c: Change marshalling to support the new layout of 
12364         string builder.
12365         * appdomain.c: increased version number because new layout of
12366         string builder.
12367
12368 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12369
12370         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12371         assembly name as an string instead of an AssemblyName, since it is
12372         easier to extract info from it.
12373
12374         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12375         the culture subdirectories too. Fixes #52231.
12376
12377 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12378
12379         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12380         It takes 2 new parameters with an optional name for the method to look
12381         for and case ignoring info.
12382
12383         * threadpool.c: removed unused variable.
12384
12385 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12386
12387         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12388         It takes 2 new parameters with an optional name for the property to look
12389         for and case ignoring info.
12390         Fixes bug #52753.
12391
12392 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12393
12394         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12395         Fix #52451.
12396
12397 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12398
12399         * appdomain.c:
12400         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12401         Fixes bug #52630.
12402
12403 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12404
12405         * reflection.c: Add support for more than one unmanaged resource.
12406
12407         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12408         in field->def_value, as done in all other cases.
12409
12410         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12411         TypeBuilders.
12412
12413         * reflection.c (mono_reflection_create_runtime_class): Remove 
12414         errorneous assignment to klass->element_class, since it is already
12415         done in mono_reflection_setup_internal_class.
12416
12417 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12418
12419         * gc.c: added missing LeaveCriticalSection.
12420         * icall.c: indented a couple of lines.
12421         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12422         if we call EndInvoke inside a callback. Fixes bug #52601.
12423
12424 2004-01-07  Martin Baulig  <martin@ximian.com>
12425
12426         * mono-debug-debugger.h
12427         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12428
12429 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12430
12431         * appdomain.c: Use messages in NotImplementedException.
12432
12433         * exception.c (mono_get_exception_not_implemented): Now this takes
12434         a message argument.
12435
12436         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12437         exception instead of g_asserting an aborting when something is not
12438         implemented.
12439
12440         Add some inline docs.
12441
12442 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12443
12444         * reflection.h: Update after changes to object layout.
12445
12446         * reflection.c: Implement saving of unmanaged aka win32 resources.
12447
12448         * appdomain.c: Bump version number.
12449
12450         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12451         Handle missing domains gracefully.
12452
12453 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12454
12455         * file-io.c : On Windows, there are much more invalid_path_chars.
12456
12457 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12458
12459         * class.h, object.c: prepare for GetType () speedup.
12460
12461 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12462
12463         * profiler.c: workaround for --profile null reference exception on
12464           cygwin. Patch by Patrik Torstensson.
12465
12466 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12467
12468         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12469         make work for unaligned access.
12470
12471 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12472
12473         * class.c: small cleanup (class->fields [i] -> field).
12474         * image.c: check address of metadata is valid.
12475
12476 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12477
12478         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12479         search the list of loaded assemblies.
12480
12481         * reflection.c (mono_reflection_type_from_name): Use 
12482         mono_assembly_loaded instead of mono_image_loaded.
12483
12484         * reflection.c: Fix warnings.
12485
12486 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12487
12488         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12489         is dynamic. This is needed since an assembly can contain both dynamic and
12490         non-dynamic images.
12491
12492         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12493         assembly->dynamic.
12494
12495         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12496
12497         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12498         to store modules loaded using AddModule.
12499
12500         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12501         on Modules.
12502
12503         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12504
12505         * reflection.c (mono_image_fill_export_table_from_module): New function to
12506         fill out the EXPORTEDTYPES table from a module.
12507
12508         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12509         into a separate function. Also handle loaded non-dynamic modules.
12510
12511         * reflection.c (mono_image_basic_init): Fix memory allocation.
12512
12513         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12514
12515         * assembly.c (mono_assembly_load_references): Make this public.
12516
12517 2003-12-19  Martin Baulig  <martin@ximian.com>
12518
12519         * class.c (mono_class_initialize_generic): Made this static, take
12520         a `MonoGenericInst *' instead of a `MonoClass *'.
12521         (mono_class_from_generic): Call mono_class_initialize_generic()
12522         unless we're already initialized or being called from
12523         do_mono_metadata_parse_generic_inst().
12524
12525         * class.h (MonoGenericInst): Added `initialized' and
12526         `init_pending' flags.
12527
12528         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12529         `mono_class_init (gklass)' or mono_class_initialize_generic()
12530         here; set `generic_inst->init_pending' while parsing the
12531         `type_argv'.
12532
12533 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12534
12535         * locales.c: include string.h for memxxx prototypes
12536
12537 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12538
12539         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12540         constructor when accessing literal fields.
12541
12542 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12543
12544         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12545
12546         * reflection.c (assembly_add_resource_manifest): New function to fill
12547         the MANIFESTRESOURCE table.
12548
12549         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12550
12551         * reflection.h: Update to changes in class layout.
12552
12553         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12554         Reenable call to mono_runtime_is_shutting_down ().
12555
12556         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12557         determine if the runtime is shutting down.
12558
12559 2003-12-16  Jackson Harper <jackson@ximian.com>
12560
12561         * icall.c: comment out call to mono_runtime_is_shutting_down to
12562         fix build.
12563         
12564 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12565
12566         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12567         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12568
12569 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12570
12571         * reflection.c: move definition of swap_with_size
12572         to before its first call
12573
12574 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12575
12576         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12577
12578         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12579         icall.
12580
12581         * object.c: Fix warnings.
12582
12583         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12584         members if FlattenHierarchy is set.
12585
12586         * reflection.c (mono_image_add_decl_security): New function to emit
12587         declarative security.
12588
12589         * reflection.h reflection.c: Add support for declarative security.
12590
12591         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12592         
12593 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12594
12595         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12596         
12597         * appdomain.c verify.c: Moved corlib version checking into its own
12598         function in appdomain.c since it needs to create vtables etc.
12599
12600 2003-12-13  Patrik Torstensson <p@rxc.se>
12601
12602         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12603         instead of unwrapped server.
12604
12605 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12606
12607         * verify.c (check_corlib): Fix field index.
12608
12609 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12610
12611         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12612         GetGacPath icall.
12613
12614 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12615
12616         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12617         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12618         cope with sizeof(size_t) != sizeof(guint32).
12619
12620 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12621
12622         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12623         in case of failure.
12624
12625 2003-12-10  Mark Crichton <crichton@gimp.org>
12626
12627         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12628         in managed code.
12629
12630         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12631
12632 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12633
12634         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12635         marked as deleted.
12636
12637 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
12638
12639         * verify.c (check_corlib): Handle the case when the version field is 
12640         initialized by a static constructor.
12641
12642 2003-12-08  Patrik Torstensson  <p@rxc.se>
12643
12644     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
12645
12646 2003-12-08  Martin Baulig  <martin@ximian.com>
12647
12648         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
12649         a MonoReflectionGenericParameter, also take the parameter index
12650         and name as arguments.
12651         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
12652         (ves_icall_MonoGenericParam_initialize): New interncall.
12653         (ves_icall_Type_make_byref_type): New interncall.
12654
12655         * reflection.h (MonoReflectionGenericParam): Derive from
12656         MonoReflectionType, not just from MonoObject.  Added `refobj' and
12657         `index' fields.
12658
12659         * reflection.c (mono_reflection_define_generic_parameter): Create
12660         and return a new MonoReflectionGenericParam; don't initialize the
12661         constraints here.
12662         (mono_reflection_initialize_generic_parameter): New public method;
12663         initializes the constraints and creates the `param->pklass'.
12664
12665 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
12666
12667         * reflection.h reflection.c: Use the new fields 'num_types', 
12668         'num_fields' and 'num_methods' to track the number of types etc.
12669
12670         * verify.c (check_corlib): Check corlib version number.
12671
12672 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
12673
12674         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
12675         function works on all methods.
12676
12677 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
12678
12679         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
12680         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
12681         the custom_type_info flag of the transparent proxy.
12682         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
12683         objects that supports IRemotingTypeInfo.
12684         * object.h: Added custom_type_info field in transparent proxy.
12685
12686 2003-12-06  Martin Baulig  <martin@ximian.com>
12687
12688         * class.c (mono_class_create_from_generic): Removed.
12689         (mono_class_from_generic): Check `ginst->klass' before doing
12690         anything else.  This is important to fully support "recursive"
12691         generic types.
12692
12693         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
12694         empty `generic_inst->klass' before doing anything else.
12695
12696 2003-12-06  Dick Porter  <dick@ximian.com>
12697
12698         * verify.c: 
12699         * object.h:
12700         * icall.c:
12701         * locales.c: Use C structs to access class fields.  Don't do a
12702         conversion between MonoString and UChar because both are
12703         platform-endian UTF-16.  Compare now takes startindex and count
12704         parameters.  Add a char overload for IndexOf.  Speed up the
12705         invariant string IndexOf.
12706
12707 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
12708
12709         * Makefile.am (monosn_LDADD): Fix parallel build.
12710
12711 2003-12-04  Martin Baulig  <martin@ximian.com>
12712
12713         * icall.c
12714         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12715         (ves_icall_Type_make_array_type): New interncall.       
12716
12717 2003-12-04  Martin Baulig  <martin@ximian.com>
12718
12719         * locales.c: also change it in the !HAVE_ICU case.
12720
12721 2003-12-04  Dick Porter  <dick@ximian.com>
12722
12723         * icall.c:
12724         * locales.c: construct_compareinfo is now in CompareInfo, not
12725         CultureInfo.
12726
12727 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
12728
12729         * image.c (mono_image_load_file_for_image): Cache loaded images in the
12730         image->files array.
12731
12732         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
12733         table as well.
12734
12735         * assembly.c (mono_assembly_load_references): Only load references
12736         once.
12737
12738         * class.c (mono_class_from_name): Avoid linear search of the 
12739         EXPORTEDTYPE table.
12740
12741         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
12742
12743 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
12744
12745         * image.h (MonoImage): Add 'field_cache' field.
12746
12747         * loader.c (mono_field_from_token): Cache field lookups.
12748         
12749         * reflection.c (mono_module_get_object): Fix name property.
12750
12751         * icall.c (ves_icall_get_enum_info): Update after changes to 
12752         mono_metadata_get_constant_index ().
12753
12754         * icall.c: Get rid of get_type_info icall, use a separate icall for
12755         each type property to avoid needless memory allocations. Fixes #51514.
12756
12757         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
12758         to avoid needless binary searches.
12759
12760         * class.c (class_compute_field_layout): Move the initialization of
12761         field->def_value to mono_class_vtable ().
12762
12763         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
12764         non-corlib types.
12765
12766         * object.c (mono_object_allocate): Make it inline.
12767
12768         * object.c (mono_object_allocate_spec): Make it inline.
12769         
12770 2003-12-02  Dick Porter  <dick@ximian.com>
12771
12772         * locales.c (create_NumberFormat): NumberFormatInfo construction.
12773         Patch by Mohammad DAMT (mdamt@cdl2000.com).
12774
12775 2003-12-01  Dick Porter  <dick@ximian.com>
12776
12777         * threads.c: Fix signature and call in CreateMutex and
12778         CreateEvent.
12779
12780 2003-12-01  Dick Porter  <dick@ximian.com>
12781
12782         * icall.c: 
12783         * locales.c: Implement string compares and searching
12784
12785         * object.h: Add extra Thread field
12786
12787 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
12788
12789         * reflection.c (fixup_method): Add support for MonoCMethod.
12790
12791 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
12792
12793         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
12794
12795         * reflection.c (assembly_name_to_aname): Allow extra characters in
12796         assembly names. Fixes #51468.
12797
12798 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
12799
12800         * exception.c (mono_exception_from_name_domain): New helper function.
12801
12802         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
12803         exception object in the correct domain.
12804
12805         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
12806         formatting + make a copy a the input data.
12807
12808         * loader.c (mono_get_method_from_token): Methods which contain
12809         native code do not have entries in the ImplMap.
12810
12811         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
12812         Thanks to Gonzalo for spotting this.
12813         
12814         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
12815         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
12816
12817         * assembly.h (mono_assembly_load_from): Split the second part of 
12818         assembly loading into a new public function.
12819
12820         * exception.h (mono_get_exception_bad_image_format): New function.
12821
12822 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
12823
12824         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12825         Enumerate all modules inside a dynamic assembly. Fixes #51293.
12826         
12827         * icall.c: Add new icall for creating dynamic methods.
12828
12829         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
12830
12831         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
12832
12833         * reflection.c (mono_reflection_create_dynamic_method): New icall to
12834         create a dynamic method.
12835
12836         * reflection.c (resolve_object): New helper function.
12837
12838         * reflection.c: Generalize ReflectionMethodBuilder and the functions
12839         which manipulate it so they can also work on dynamic methods.
12840
12841         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
12842         creating the MonoReflectionMethodAux structure if it is not needed.
12843         
12844         * reflection.h verify.c: Update after changes to object layout.
12845
12846         * reflection.c (method_builder_encode_signature): Fix compilation on
12847         gcc 2.95.x.
12848
12849 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
12850
12851         * appdomain.h: Added support for context static fields. Added static_data
12852           field to MonoAppContext and renamed thread_static_fields to a more
12853           generic special_static_fields in MonoAppDomain, since it can now contain
12854           context static fields.
12855         * domain.c: Updated hashtable name.
12856         * object.c: Replaced field_is_thread_static() for a more generic
12857           field_is_special_static() which also checks for context static attribute.
12858           In mono_class_vtable(), added support for static context fields.
12859         * threads.c: Changed methods that manage thread static fields to more
12860           generic methods so they can be reused both for thread and context static
12861           data.
12862         * threads.h: Declared some new methods.
12863
12864 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
12865
12866         * reflection.h: Update after changes to the managed types.
12867
12868         * reflection.c (encode_custom_modifiers): New helper function.
12869
12870         * reflection.c (method_encode_signature): Emit custom modifiers.
12871
12872         * reflection.c (field_encode_signature): Emit custom modifiers.
12873
12874 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
12875
12876         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
12877
12878         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
12879         implementation.
12880
12881         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
12882         icall.
12883
12884         * object.c (mono_field_get_value_object): New function.
12885
12886         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
12887         specific.
12888
12889 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
12890
12891         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
12892         return a preallocated out-of-memory exception instance.
12893
12894         * object.c (out_of_memory): Use the new function.
12895
12896         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
12897         flag is before the custom modifiers. Fixes #49802.
12898
12899 2003-11-16  Martin Baulig  <martin@ximian.com>
12900
12901         * class.c (mono_class_is_open_constructed_type): Implemented the
12902         MONO_TYPE_GENERICINST case.
12903
12904 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
12905
12906         * assembly.c (mono_assembly_fill_assembly_name): New function to
12907         fill out the MonoAssemblyName structure.
12908         (mono_assembly_open): Use the new function.
12909
12910         * icall.c (fill_reflection_assembly_name): New helper function.
12911
12912         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
12913         new function.
12914
12915         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
12916
12917 2003-11-15  Martin Baulig  <martin@ximian.com>
12918
12919         * class.c (mono_class_is_open_constructed_type): New public
12920         function; checks whether a type is an open constructed type,
12921         ie. whether it still contains type parameters.
12922         (mono_class_inflate_generic_type): If we're a type parameter and
12923         the inflated type is also a MONO_TYPE_(M)VAR, return the original
12924         type.
12925
12926         * class.h (MonoGenericInst): Added `guint32 is_open'.
12927
12928         * loader.c (method_from_methodspec): Check whether we're an open
12929         or closed constructed type and set `ginst->is_open'.
12930
12931         * reflection.c (mono_reflection_bind_generic_parameters): Check
12932         whether we're an open or closed constructed type and set
12933         `ginst->is_open'.
12934         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
12935         from open constructed types.
12936
12937 2003-11-15  Martin Baulig  <martin@ximian.com>
12938
12939         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12940         a generic instance (instead of a generic type declaration) with
12941         unbound generic parameters, bind them to our actual types.
12942
12943 2003-11-14  Martin Baulig  <martin@ximian.com>
12944
12945         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
12946
12947         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12948         an interface type, populate `res->interfaces' with instantiated
12949         versions of all the interfaces we inherit.
12950
12951 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
12952
12953         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
12954         when MONO_PATH is set but doesn't contain the install dir.
12955
12956 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12957
12958         * icall.c:
12959         (ves_icall_Type_GetInterfaces): don't return an interface twice when
12960         it's also implemented in base classes. Fixes bug #50927.
12961
12962 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
12963
12964         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
12965         if this method is called from a finalizer. Fixes #50913.
12966
12967 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
12968
12969         * threads.c: Implement VolatileRead/VolatileWrite
12970
12971         * icall.c: Add new icalls for VolatileRead/VolatileWrite
12972
12973 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12974
12975         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
12976         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
12977         2.95.3.
12978
12979         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
12980         from Peter Ross (pro@missioncriticalit.com).
12981         
12982 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
12983
12984         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
12985
12986 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12987
12988         * assembly.c (mono_assembly_load_references): Disable check because it
12989         triggers on older corlibs which lots of people have.
12990
12991 2003-11-12  Jackson Harper  <jackson@ximian.com>
12992
12993         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
12994         load corlib.dll if mscorlib.dll is not found.
12995         * assembly.h: Remove corlib name define.
12996         * class.c:
12997         * domain.c:
12998         * image.c: Change corlib name to mscorlib.
12999         
13000 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13001
13002         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13003
13004 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13005
13006         * appdomain.h: Added loader_optimization here to sync with the C#
13007         code, and add disallow_binding_redirects field.
13008
13009 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13010
13011         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13012
13013         * reflection.c (mono_image_build_metadata): Fix crash on modules
13014         with no types.
13015
13016         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13017
13018         * icall.c (ves_icall_get_method_info): Return callingConvention as
13019         well.
13020
13021         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13022         namespaces from the EXPORTEDTYPE table as well.
13023
13024         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13025         from all modules inside the assembly.
13026         
13027 2003-11-11  Martin Baulig  <martin@ximian.com>
13028
13029         * reflection.c (mono_reflection_bind_generic_parameters): Make
13030         this work for interfaces.
13031
13032 2003-11-11  Martin Baulig  <martin@ximian.com>
13033
13034         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13035
13036 2003-11-11  Martin Baulig  <martin@ximian.com>
13037
13038         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13039         "MonoInflatedMethod" and "MonoInflatedCtor".
13040
13041 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13042
13043         * reflection.c (resolution_scope_from_image): Use the assembly table
13044         from the manifest module, since other modules don't have it.
13045
13046         * debug-helpers.c (mono_type_full_name): New helper function.
13047
13048         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13049
13050         * image.c (mono_image_load_file_for_image): New public function which
13051         is a replacement for the load_file_for_image in class.c.
13052
13053         * assembly.c (mono_assembly_load_module): A wrapper for the function
13054         above which does assembly association and reference loading too.
13055
13056         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13057
13058 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13059
13060         * appdomain.c: not all of the attributes for the full assembly name
13061         are required and the order doesn't matter. Fixes bug #50787.
13062
13063 2003-11-10  Dick Porter  <dick@ximian.com>
13064
13065         * locales.c: Use platform-endian UTF16
13066
13067 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13068
13069         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13070         
13071 2003-11-10  Martin Baulig  <martin@ximian.com>
13072
13073         * metadata.c
13074         (mono_metadata_load_generic_params): Make this actually work.
13075
13076         * reflection.c (mono_reflection_bind_generic_parameters): If our
13077         parent is a generic instance, pass all the `types' to it, no
13078         matter whether it has the same number of type parameters or not.
13079
13080 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13081
13082         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13083
13084         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13085         assignment code to this function so it gets called recursively for all
13086         modules.
13087
13088         * image.c (load_modules): Remove the assembly assignment since it is
13089         now done by mono_assembly_load_references.
13090         
13091         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13092         Add 'module' argument.
13093         (mono_module_get_types): New helper function.
13094         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13095
13096 2003-11-08  Martin Baulig  <martin@ximian.com>
13097
13098         * class.c (mono_class_inflate_generic_method): Interface method
13099         don't have a header.
13100
13101         * reflection.c (mono_image_get_methodspec_token): Take an
13102         additional `MonoGenericInst *' argument instead of reading it from
13103         the header; this is necessary to support interfaces.
13104         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13105         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13106         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13107         argument.
13108
13109         * reflection.h (MonoReflectionInflatedMethod): Added
13110         `MonoGenericInst *ginst'.
13111
13112 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13113
13114         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13115
13116 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13117
13118         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13119
13120 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13121
13122         * reflection.c 
13123         (reflection_methodbuilder_from_method_builder):
13124         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13125         initialize a ReflectionMethodBuilder structure.
13126         (mono_image_get_methodbuilder_token):
13127         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13128         tokens which point to types in another module inside the same assembly.
13129
13130         * reflection.c: Use the new helper functions.
13131         
13132         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13133
13134         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13135         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13136
13137         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13138         neccesary.
13139
13140         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13141         current module. Emit the manifest only for the main module.
13142
13143         * reflection.c (mono_image_create_token): Add assertion when a 
13144         memberref needs to be created.
13145
13146         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13147
13148         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13149         larger buffer for the custom attribute blob. Fixes #50637.
13150         
13151 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13152
13153         * threadpool.c: notify listener on async processing handles after
13154         invoking the async callback. Thanks to Zoltan.
13155
13156 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13157
13158         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13159         avoid code duplication.
13160
13161         * reflection.h (MonoDynamicImage): New type which is currently unused,
13162         but will be used through the ref.emit code in place of 
13163         MonoDynamicAssembly.
13164
13165         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13166         object layout.
13167
13168         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13169         a MonoDynamicImage instead of just a MonoImage.
13170         
13171         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13172         icalls to ModuleBuilder but keep their semantics, so they will work
13173         with moduleb->assemblyb. This will change later.
13174         
13175 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13176
13177         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13178         object layout.
13179
13180         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13181         main module, since it is now done by the managed code.
13182
13183 2003-11-03  Martin Baulig  <martin@ximian.com>
13184
13185         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13186         `ginst->klass' here.
13187         (method_encode_methodspec): Don't use the `ginst->generic_method's
13188         klass if it's a generic instance, use `ginst->klass' in this case.
13189
13190 2003-11-03  Martin Baulig  <martin@ximian.com>
13191
13192         * reflection.c (mono_image_get_generic_method_param_info):
13193         Removed, use mono_image_get_generic_param_info() instead.
13194         (mono_image_get_type_info): Write the GenericParam table before
13195         the Method table.  This is neccessary because in the GenericParam
13196         table, type parameters of the class (ie. '!0' etc.) must come
13197         before the ones from its generic methods (ie. '!!0' etc).
13198
13199 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13200
13201         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13202
13203 2003-11-02  Martin Baulig  <martin@ximian.com>
13204
13205         * reflection.c (create_generic_typespec): Take a
13206         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13207         the generic parameters from it.
13208
13209 2003-11-02  Martin Baulig  <martin@ximian.com>
13210
13211         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13212         instead of a `MonoClassField *' since we just need the type.
13213         (create_generic_typespec): New static function.  Creates a
13214         TypeSpec token for a generic type declaration.
13215         (mono_image_get_generic_field_token): New static function.
13216         (mono_image_create_token): If we're a FieldBuilder in a generic
13217         type declaration, call mono_image_get_generic_field_token() to get
13218         the token.
13219
13220 2003-11-02  Martin Baulig  <martin@ximian.com>
13221
13222         * reflection.h
13223         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13224         `MonoReflectionGenericInst *declaring_type' and
13225         `MonoReflectionGenericInst *reflected_type' fields.
13226
13227         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13228         `MonoReflectionGenericInst *declaring_type' and a
13229         `MonoReflectionGenericInst *reflected_type' argument instead of a
13230         single `MonoReflectionGenericInst *type' one.  Set
13231         `res->declaring_type' and `res->reflected_type' from them.
13232         (mono_reflection_inflate_field): Likewise.      
13233
13234 2003-11-02  Martin Baulig  <martin@ximian.com>
13235
13236         * class.c (mono_class_setup_vtable): Don't store generic methods
13237         in the vtable.  
13238
13239 2003-11-02  Martin Baulig  <martin@ximian.com>
13240
13241         * reflection.h (MonoReflectionGenericInst): Added
13242         `MonoReflectionType *declaring_type'.
13243
13244         * reflection.c (mono_reflection_bind_generic_parameters): Use
13245         `if (tb->parent)' instead of `klass->parent'.
13246
13247 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13248
13249         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13250         with an empty ASSEMBLY table.
13251
13252         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13253         variable in the inner and outer loops.
13254
13255 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13256
13257         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13258         argument.
13259
13260         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13261         
13262         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13263         icalls. Instead, do everything in managed code. This is needed since
13264         it is hard to restore the original domain etc. in unmanaged code in the
13265         presence of undeniable exceptions.
13266
13267         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13268         New icalls to push and pop appdomain refs.
13269
13270 2003-10-31  Martin Baulig  <martin@ximian.com>
13271
13272         * class.c (inflate_generic_type): Renamed to
13273         mono_class_inflate_generic_type() and made it public.
13274
13275         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13276         New interncall.
13277
13278         * loader.c (mono_field_from_memberref): Also set the retklass for
13279         typespecs.
13280
13281         * fielder.c (mono_image_get_inflated_field_token): New static
13282         method; creates a metadata token for an inflated field.
13283         (mono_image_create_token, fixup_method): Added support for
13284         "MonoInflatedField".
13285         (fieldbuilder_to_mono_class_field): New static function.
13286         (mono_reflection_inflate_field): New public function.
13287
13288         * reflection.h
13289         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13290         (MonoReflectionInflatedField): New typedef.     
13291
13292 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13293
13294         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13295         for Solaris and other platforms without s6_addr16
13296
13297 2003-10-30  Martin Baulig  <martin@ximian.com>
13298
13299         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13300         argument instead of two.
13301         (mono_class_inflate_generic_signature): Likewise.
13302         (inflate_generic_header): Likewise.
13303         (mono_class_inflate_generic_method): Likewise.  In addition, if
13304         `ginst->klass' is set, it becomes the new `method->klass'.
13305
13306         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13307         field.
13308
13309         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13310         first byte. [FIXME]
13311         (method_encode_methodspec): If we have generic parameters, create
13312         a MethodSpec instead of a MethodRef.
13313         (fixup_method): Added support for "MonoInflatedMethod" and
13314         "MonoInflatedCtor".
13315         (mono_image_create_token): Added support for "MonoInflatedMethod"
13316         and "MonoInflatedCtor".
13317         (inflated_method_get_object): New static function; returns a
13318         managed "System.Reflection.MonoInflatedMethod" object.
13319         (mono_reflection_bind_generic_method_parameters): Return a
13320         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13321         (mono_reflection_inflate_method_or_ctor): Likewise.
13322         (mono_image_get_generic_method_param_info): Initialize unused
13323         fields to zero.
13324         (mono_image_get_generic_param_info): Likewise.
13325
13326         * reflection.h (MonoReflectionInflatedMethod): New public
13327         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13328         "S.R.MonoInflatedCtor" classes.
13329
13330         * loader.c (method_from_memberref): If we're a TypeSpec and it
13331         resolves to a generic instance, inflate the method.
13332
13333 2003-10-28  Dick Porter  <dick@ximian.com>
13334
13335         * object.c (mono_runtime_run_main): Convert command-line arguments
13336         into utf8, falling back to the user's locale encoding to do so.
13337
13338 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13339
13340         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13341         at this time.
13342
13343         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13344
13345         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13346         up icalls at method definition time. Partially fixes #33569.
13347
13348 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13349
13350         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13351         marshalling of arrays. Fixes #50116.
13352
13353         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13354
13355         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13356         points to a vtable in the dying appdomain.
13357
13358         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13359         listeners into unmanaged code inside the lock.
13360
13361         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13362         domains and add some comments.
13363
13364 2003-10-25  Martin Baulig  <martin@ximian.com>
13365
13366         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13367
13368         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13369
13370         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13371         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13372         currently parsing.  Create the generic class and store it in
13373         `generic_inst->klass' before parsing the type arguments.  This is
13374         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13375         for an example.
13376         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13377         to support recursive typespec entries.
13378
13379         * class.c (mono_class_setup_parent): If our parent is a generic
13380         instance, we may get called before it has its name set.
13381         (mono_class_from_generic): Splitted into
13382         mono_class_create_from_generic() and mono_class_initialize_generic().
13383
13384 2003-10-25  Martin Baulig  <martin@ximian.com>
13385
13386         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13387         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13388         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13389         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13390
13391         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13392         (create_typespec): Likewise.
13393         (mono_reflection_bind_generic_parameters): Return a
13394         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13395         (mono_reflection_inflate_method_or_ctor): New public function.
13396
13397         * reflection.h (MonoReflectionGenericInst): New typedef.        
13398
13399 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13400
13401         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13402         inside the domain lock. Fixes #49993.
13403         
13404         * object.c (mono_class_vtable): When typed allocation is used, 
13405         allocate vtables in the GC heap instead of in the mempool, since the
13406         vtables contain GC descriptors which are used by the collector even
13407         after the domain owning the mempool is unloaded.
13408
13409         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13410
13411         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13412         reflect what it does. Also invalidate mempools instead of freeing
13413         them if a define is set.
13414
13415         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13416         of the appdomain.
13417         
13418         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13419         hold the finalizable objects in this domain.
13420
13421         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13422         appdomain.
13423
13424         * appdomain.c (mono_domain_set): New function to set the current
13425         appdomain, but only if it is not being unloaded.
13426
13427         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13428         appdomain which is being unloaded.
13429         
13430         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13431         unloading of the root appdomain.
13432
13433         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13434         icall to execute a method in another appdomain. Intended as a 
13435         replacement for InternalSetDomain, which can confuse the code 
13436         generation in the JIT.
13437
13438         * appdomain.c (mono_domain_is_unloading): New function to determine
13439         whenever an appdomain is unloading.
13440
13441         * appdomain.c (mono_domain_unload): New function to correctly unload
13442         an appdomain.
13443
13444         * assembly.c (mono_assembly_load_references): Check that an assembly
13445         does not references itself.
13446
13447         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13448         domain manually, it asks the finalizer thread to do it, then waits for
13449         the result. Also added a timeout.
13450
13451         * icall.c: Register the new icalls.
13452
13453         * threads.h threads.c: Export the mono_gc_stop_world and 
13454         mono_gc_start_world functions.
13455         
13456         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13457         function to fill out the mempool with 0x2a.
13458
13459 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13460
13461         * reflection.h (MonoReflectionMethodAux): New structure to store
13462         information which is rarely used, thus is not in the MonoMethod
13463         structure.
13464
13465         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13466         store the aux info.
13467
13468         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13469         and marshalling info into the aux structure.
13470
13471         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13472         from the aux structure.
13473
13474         * loader.c (mono_method_get_param_names): Retrieve the param names from
13475         the aux structure.
13476         
13477 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13478
13479         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13480         warning.
13481
13482 2003-10-21  Dick Porter  <dick@ximian.com>
13483
13484         * socket-io.c
13485         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13486         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13487
13488 2003-10-21  Martin Baulig  <martin@ximian.com>
13489
13490         * reflection.c (mono_reflection_bind_generic_parameters):
13491         `klass->parent' is NULL for interfaces.
13492
13493 2003-10-21  Martin Baulig  <martin@ximian.com>
13494
13495         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13496
13497 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13498
13499         * exception.c (mono_exception_from_name_msg): New helper function for
13500         creating exceptions and initializing their message field.
13501
13502         * exception.c: Simplify functions using the new helper.
13503
13504         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13505         New function.
13506
13507         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13508         mono_raise_exception, since otherwise gcc doesn't generate the function
13509         epilog for raise_exception, confusing the stack unwinding in the JIT.
13510         Fixes #45043.
13511
13512         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13513         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13514         Fixes #49499.
13515
13516 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13517
13518         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13519         utf8.
13520
13521 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13522
13523         * icall.c: Removed GetUninitializedObject method because
13524           AllocateUninitializedClassInstance does the same.
13525
13526 2003-10-18  Martin Baulig  <martin@ximian.com>
13527
13528         * class.c (inflate_generic_signature): Renamed to
13529         mono_class_inflate_generic_signature() and made it public.
13530         (my_mono_class_from_generic_parameter): New static function; if we
13531         don't already have the generic parameter's MonoClass, create a
13532         very simple one which is just used internally in the runtime and
13533         not passed back to managed code.
13534
13535         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13536
13537         * metadata.h (MonoMethodSignature): Moved the
13538         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13539         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13540
13541         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13542         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13543         interncall on the MonoMethod class, not on MethodInfo.
13544         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13545         calling mono_reflection_bind_generic_method_parameters() directly.
13546
13547         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13548         return the already computed `method->signature'.
13549         (method_from_methodspec): New static function to load a method
13550         from a MethodSpec entry.
13551         (mono_get_method_from_token): Call the new method_from_methodspec()
13552         for MethodSpec tokens.  
13553         (mono_get_method_from_token): If we're a generic method, load the
13554         type parameters.
13555
13556         * reflection.c (mono_image_get_memberref_token): Allow
13557         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13558         table.
13559         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13560         (mono_image_create_token): First check whether it's a generic
13561         method (so we'd need to create a MethodSpec), then do the other
13562         two alternatives.
13563         (mono_reflection_bind_generic_method_parameters): Return a
13564         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13565         called directly from the interncall.
13566
13567 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13568
13569         * reflection.c (load_public_key): Move loading of the public key
13570         into managed code.
13571
13572         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13573
13574         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13575         fields.
13576
13577         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13578         culture, hash_alg and public_key. Fixes #49555.
13579
13580 2003-10-17  Martin Baulig  <martin@ximian.com>
13581
13582         * class.h (MonoGenericInst): Moved this declaration here and added
13583         `MonoMethod *generic_method'.
13584
13585         * icall.c
13586         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13587         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13588
13589         * metadata.c (mono_metadata_type_equal): Two types of
13590         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13591         index; ie. don't compare the address of the `MonoGenericParam'
13592         structure.
13593         (mono_metadata_load_generic_params): Removed the `MonoMethod
13594         *method' argument.
13595
13596         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13597         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13598
13599         * reflection.c (method_encode_signature): Encode the number of
13600         generic parameters.
13601         (encode_generic_method_sig): New static function.
13602         (method_encode_methodspec): New static function; creates an entry
13603         in the MethodSpec table for a generic method.
13604         (mono_image_get_methodspec_token): New static function.
13605         (mono_image_create_token): Call mono_image_get_methodspec_token()
13606         for generic methods.
13607         (mono_reflection_bind_generic_method_parameters): New public
13608         function.  Instantiates a generic method.
13609
13610 2003-10-16  Martin Baulig  <martin@ximian.com>
13611
13612         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13613         *gen_params' here from MonoMethodHeader.
13614
13615         * metadata.c (mono_metadata_parse_method_signature): If we have
13616         generic parameters, initialize `method->gen_params' and then set
13617         the correct `type->data.generic_param' in all the parameters.
13618
13619 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13620
13621         * threads.c (mono_threads_get_default_stacksize): New function to 
13622         return the default stacksize.
13623
13624         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13625         termination of the finalizer thread, since the previous method had
13626         race conditions. Fixes #49628.
13627
13628         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13629         as for the other managed threads.
13630
13631 2003-10-16  Martin Baulig  <martin@ximian.com>
13632
13633         * class.c (inflate_generic_signature): Copy `generic_param_count'
13634         and `gen_params'.
13635
13636         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
13637         New interncall.
13638
13639         * metadata.c (mono_metadata_parse_method_signature): Actually set
13640         the `method->generic_param_count' here.
13641         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
13642
13643 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
13644
13645         * object.h: Add a new field to TypedRef to simplify the implementation
13646         of the REFANY opcodes in the JIT.
13647
13648         * icall.c: Make use of the new field.
13649
13650         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
13651         dynamically.
13652
13653 2003-10-15  Martin Baulig  <martin@ximian.com>
13654
13655         * class.c (mono_class_from_gen_param): Renamed to
13656         mono_class_from_generic_parameter() and moved most of the
13657         functionality from mono_reflection_define_generic_parameter()
13658         here; ie. we create a "real" class here.
13659         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
13660         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
13661         previously been called.
13662
13663         * class.h (MonoGenericParam): Moved the declaration of this struct
13664         here from metadata.h and added `MonoMethod *method'.
13665
13666         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
13667         interncall.
13668
13669         * loader.c (mono_get_method_from_token): If we have any generic
13670         parameters, call mono_metadata_load_generic_params() to read them
13671         from the MONO_TABLE_GENERICPAR.
13672
13673         * metadata.c (mono_metadata_load_generic_params): Added
13674         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
13675
13676         * metadata.h (MonoMethodSignature): Replaced
13677         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
13678         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
13679
13680         * reflection.c (mono_reflection_define_generic_parameter): Moved
13681         most of the functionality into the new
13682         mono_class_from_generic_parameter(); set the `method' field if
13683         we're a method parameter.       
13684
13685 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
13686
13687         * marshal.c (emit_struct_conv): if native size is 0
13688         emit no code.
13689
13690 2003-10-14  Martin Baulig  <martin@ximian.com>
13691
13692         * icall.c: The generics API has changed in the spec since it was
13693         added to System.Type; these modifications make it match the spec
13694         again.
13695         (ves_icall_Type_GetGenericParameters): Renamed to
13696         `ves_icall_Type_GetGenericArguments'.
13697         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
13698         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
13699         `ves_icall_MonoType_get_HasGenericArguments'.
13700         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
13701         `ves_icall_MonoType_get_IsGenericParameter'.
13702         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
13703         this is no interncall anymore.
13704         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
13705         `ves_icall_TypeBuilder_get_IsGenericParameter'.
13706
13707 2003-10-14  Martin Baulig  <martin@ximian.com>
13708
13709         * reflection.c (mono_reflection_bind_generic_parameters): Also
13710         inflate generic methods if we're reading the class from IL.
13711
13712 2003-10-13  Martin Baulig  <martin@ximian.com>
13713
13714         * reflection.c (mono_reflection_define_generic_parameter): This
13715         method isn't called directly from the icall anymore; take a
13716         `MonoReflectionAssemblyBuilder *' so we can use this for type and
13717         method generic parameters.
13718         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
13719         (method_builder_encode_signature): Encode generic parameters.
13720         (mono_image_get_method_info): Write generic params to the
13721         MONO_TABLE_GENERICPARAM table.
13722
13723         * reflection.h (MonoReflectionMethodBuilder): Added
13724         `MonoArray *generic_params'.
13725
13726         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
13727
13728         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
13729         wrapper for mono_reflection_define_generic_parameter().
13730         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
13731
13732 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
13733
13734         * marshal.h: Add missing function to fix build.
13735
13736         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
13737         the SetLastError pinvoke attribute.
13738
13739         * marshal.c (mono_marshal_set_last_error): New helper function called
13740         by the generated code.
13741         
13742         * marshal.c (mono_mb_emit_branch): New helper function.
13743
13744         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
13745
13746         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
13747         classes as parameters and return values of delegates. Fixes #29256. 
13748
13749 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
13750
13751         * locales.c: use gint32 in non HAVE_ICU case
13752
13753 2003-10-11  Martin Baulig  <martin@ximian.com>
13754
13755         * mono-debug.c (mono_debug_add_method): Added a workaround for
13756         bug #48591.
13757
13758 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
13759
13760         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
13761         delegates passed to native code must use the STDCALL calling 
13762         convention. Fixes #35987.
13763
13764 2003-10-10  Martin Baulig  <martin@ximian.com>
13765
13766         * class.c (inflate_generic_type): If we're inflating for a generic
13767         type instance (and not for a generic method), return
13768         MONO_TYPE_MVAR unchanged.
13769
13770 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13771
13772         * string-icalls.c: Join ignores null strings in the source array.
13773         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
13774         * threads.c: GetAvailableTheads is slightly more accurate.
13775
13776 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
13777
13778         * threads.h threads.c : add mono_threads_set_default_stacksize
13779         and pass default to CreateThread calls.
13780
13781 2003-10-09  Dick Porter  <dick@ximian.com>
13782
13783         * icall.c:
13784         * locales.h:
13785         * locales.c: Internal calls for constructing CultureInfo and
13786         related objects from libicu (if its available.)
13787
13788 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
13789
13790         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
13791
13792 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13793
13794         * threadpool.c: added an argument to async_invoke_thread that is the
13795         item to process, pass the MonoAsyncResult to the thread start function
13796         when creating a new thread. This way we don't need to acquire any lock
13797         when we're creating a new thread. Readded a semaphore for faster
13798         response times (instead of that Sleep i added).
13799
13800 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
13801
13802         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
13803         get daylight change dates better on Windows, fix handling
13804         of platforms without tm_gmtoff.
13805
13806 2003-10-06  Martin Baulig  <martin@ximian.com>
13807
13808         * class.c (inflate_generic_method): Renamed to
13809         mono_class_inflate_generic_method() and made public.
13810         (mono_class_init): Don't inflate the generic methods here.
13811         (mono_class_from_generic): Added `gboolean inflate_methods'
13812         argument.  Inflate the methods here.
13813
13814         * loader.c (mono_method_get_param_names): Ignore instances of
13815         generic types for the moment.
13816
13817         * reflection.c (fixup_method): Added support for inflated methods.
13818         (mono_image_create_token): Use mono_image_get_methodref_token()
13819         for inflated methods.
13820         (mono_custom_attrs_from_param): Ignore instances of generic types
13821         for the moment.
13822         (mono_reflection_bind_generic_parameters): New public function.
13823         Moved all the functionality from
13824         ves_icall_Type_BindGenericParameters() here and added support for
13825         dynamic types.
13826         (mono_reflection_define_generic_parameter): Initialize
13827         `klass->methods' here.
13828
13829         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
13830         functionality into mono_reflection_define_generic_parameter().
13831         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
13832         TypeBuilder, return that TypeBuilder.
13833
13834 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13835
13836         * appdomain.c: removed mono_delegate_semaphore.
13837
13838         * threadpool.c:
13839         (mono_thread_pool_add): moved hash table creation inside and the thread 
13840         creation outside of the critical region.
13841         (mono_thread_pool_finish): removed obsolete code.
13842         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
13843         continue or exit the thread depending on the queue.
13844
13845 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
13846
13847         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
13848         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
13849         handle more bool marshalling options
13850
13851 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
13852
13853         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
13854         arrays of structs. Also add a more descriptive error message when
13855         a structure member is marshalled as LPArray.
13856
13857 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
13858
13859         * marshal.c (mono_marshal_get_native_wrapper): Add support for
13860         marshalling arrays of complex types. Fixes #29098. Also remove an
13861         usused and incomplete function.
13862
13863 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13864
13865         * gc.c: report heap_size - free_bytes as total memory allocated
13866         (bug#49362).
13867
13868 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
13869
13870         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
13871         fix timezone handling problems on Windows.
13872         
13873         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
13874         asserts when the year is outside the range handled by ms the functions.
13875
13876         * class.c (setup_interface_offsets): If the class is an interface,
13877         fill out its interface_offsets slot.
13878
13879 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13880
13881         * threadpool.c: mark threadpool threads as background.
13882
13883 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
13884
13885         * decimal.c - define DECINLINE to nothing if not using GCC
13886
13887 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
13888
13889         * assembly.c: More refcount fixes.
13890
13891 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13892
13893         * string-icalls.c: if we're not trimming, return the same string.
13894         When not splitting, don't create a new string.
13895
13896 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13897
13898         * image.c:
13899         (mono_image_open): increment the ref_count inside the critical section.
13900
13901 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
13902
13903         * image.c (mono_image_open): Fix reference counting bug.
13904
13905 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
13906
13907         * marshal.c (mono_marshal_type_size) struct alignment changed for 
13908         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
13909         64bits. Avoid leak in mono_marshal_get_native_wrapper when
13910         mono_lookup_pinvoke_call throws.        
13911
13912 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
13913
13914         * reflection.c (mono_reflection_parse_type): Fix #49114.
13915
13916         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
13917         temporary workaround for cygwin header problem.
13918
13919         * object.c (mono_object_isinst): Synchronize this with the code
13920         generated by the JIT for casts.
13921
13922 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
13923
13924         * reflection.c (encode_type): Fix #38332.
13925
13926 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
13927
13928         * marshal.c (mono_marshal_method_from_wrapper): New function to return
13929         the original method from the wrapper method.
13930
13931 2003-09-25  Martin Baulig  <martin@ximian.com>
13932
13933         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
13934         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
13935         (ves_icall_Type_get_IsGenericInstance): New interncall.
13936
13937 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
13938
13939         * object.c: fix cast warning in big endian code.
13940
13941 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
13942
13943         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
13944         
13945 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13946
13947         * assembly.c: don't call check_env from mono_assembly_load. It's
13948         already done once in mono_assemblies_init and may cause headaches when
13949         multiple threads are loading assemblies.
13950
13951 2003-09-19  Martin Baulig  <martin@ximian.com>
13952
13953         * reflection.c (mono_reflection_define_generic_parameter): Don't
13954         allocate `klass->methods', set `klass->flags' to
13955         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
13956
13957 2003-09-18  Martin Baulig  <martin@ximian.com>
13958
13959         * class.c (mono_class_init): Don't create `class->methods' if it's
13960         already initialized.
13961
13962         * metadata.c (mono_metadata_load_generic_params): Make this
13963         actually work.
13964
13965         * reflection.c (mono_reflection_define_generic_parameter): Set
13966         parent class and interfaces from the constraints.
13967
13968         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
13969         to keep this struct in sync with the declaration in TypeBuilder.cs.
13970
13971 2003-09-17  Martin Baulig  <martin@ximian.com>
13972
13973         * metadata.h (MonoType): Replaced the data's `int type_param'
13974         field with `MonoGenericParam *generic_param'.
13975         (MonoGenericParam): Added `MonoClass *klass'.
13976
13977         * class.c (mono_class_from_gen_param): Removed the
13978         `MonoImage *image' and `int type_num' arguments.
13979
13980         * metadata.c (mono_metadata_parse_generic_param): New static
13981         method; creates a MonoGenericParam which just contains the index.
13982         (do_mono_metadata_parse_type): Call
13983         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
13984         MONO_TYPE_MVAR.
13985
13986         * reflection.c (mono_image_typedef_or_ref): Generic type
13987         parameters may be in the same assembly, but never use a typedef
13988         for them.
13989         (mono_reflection_define_generic_parameter): We're now creating a
13990         "real" class for the type parameter; it's now safe to call
13991         mono_class_from_mono_type() on the class'es type, it'll do the
13992         right thing.
13993
13994 2003-09-16  Martin Baulig  <martin@ximian.com>
13995
13996         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
13997         `symfile->range_entry_size' and `symfile->class_entry_size' here;
13998         the `symfile' data structure must be fully initialized before it
13999         gets added to the table.
14000
14001 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14002
14003         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14004
14005         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14006         class init trampolines.
14007
14008 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14009
14010         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14011         to the built-in profiler to turn off time and allocation profiling
14012         respectively.
14013
14014 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14015
14016         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14017         g_direct_equal.
14018
14019         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14020         in human readable form.
14021
14022 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14023
14024         * reflection.c icall.c: Fixed warnings.
14025
14026         * image.c (load_class_names): Use a temporary hash table to hold the
14027         namespaces in order to avoid doing many string comparisons.
14028
14029         * image.h: Fix typo.
14030
14031         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14032         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14033         since the NULL case is short-circuited inside g_hash_table_lookup, 
14034         leading to better performance.  
14035
14036         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14037         obtain the first custom attribute for a given index. Depends on the
14038         CustomAttribute table being sorted by the parent field.
14039
14040         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14041         for better performance.
14042
14043 2003-09-07  Martin Baulig  <martin@ximian.com>
14044
14045         * class.c (mono_class_init): If we're a generic instance, inflate
14046         all our methods instead of loading them from the image.
14047         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14048
14049 2003-09-07  Martin Baulig  <martin@ximian.com>
14050
14051         * mono-debug-debugger.c: Added support for constructors.
14052
14053 2003-09-06  Martin Baulig  <martin@ximian.com>
14054
14055         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14056         New interncall.
14057
14058         * reflection.c (mono_reflection_setup_generic_class): Call
14059         ensure_runtime_vtable() to create the vtable.
14060
14061 2003-09-05  Martin Baulig  <martin@ximian.com>
14062
14063         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14064         MONO_TYPE_MVAR.
14065
14066 2003-09-04  Martin Baulig  <martin@ximian.com>
14067
14068         * reflection.c (mono_reflection_define_generic_parameter): Generic
14069         parameters start with zero.
14070
14071 2003-09-04  Martin Baulig  <martin@ximian.com>
14072
14073         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14074
14075         * reflection.h (MonoReflectionGenericParam): New typedef.
14076         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14077         the generic parameters from the managed TypeBuilder.
14078
14079         * reflection.c (mono_reflection_define_generic_parameter): New function.
14080         (mono_reflection_create_runtime_class): Encode generic parameters.
14081         (mono_reflection_setup_generic_class): New function; this is
14082         called after adding adding all generic params to the TypeBuilder.
14083         (encode_type): Added MONO_TYPE_VAR.
14084
14085 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14086
14087         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14088         here from the JIT.
14089
14090         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14091         load hook.
14092
14093 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14094
14095         * reflection.h reflection.c class.h class.c: Delete duplicate 
14096         definition of mono_type_get_name () from reflection.c and export the
14097         one in class.c.
14098
14099         * class.c: Class loading fixes from Bernie Solomon 
14100         (bernard@ugsolutions.com).
14101
14102         * reflection.c: Endianness fixes from Bernie Solomon 
14103         (bernard@ugsolutions.com).
14104         
14105 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14106
14107         * assembly.h assembly.c: Define a file format version for AOT
14108         libraries.
14109         
14110         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14111
14112         * appdomain.h (MonoJitInfo): New field to determine whenever the
14113         code is domain neutral.
14114         
14115 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14116
14117         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14118
14119 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14120
14121         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14122         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14123         Avoid caching the result since strings must be domain specific. Fixes
14124         #48050.
14125
14126 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14127
14128         * marshal.c (mono_marshal_init): Make this callable multiple times
14129         since it is hard to find a correct place to call it.
14130
14131         * object.c (mono_runtime_class_init): Execute static constructors in
14132         the correct appdomain.
14133
14134         * image.c (build_guid_table): Handle the case when multiple images have
14135         the same GUID.
14136
14137 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14138
14139         * icall.c: added a couple of icalls for System.Web.
14140
14141 2003-08-28  Martin Baulig  <martin@ximian.com>
14142
14143         * icall.c (ves_icall_Type_BindGenericParameters): Use
14144         `klass->generic_inst' instead of `&klass->byval_arg' in the
14145         mono_type_get_object() call.  The returned type must be
14146         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14147
14148 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14149
14150         * NOTES: New file.
14151
14152         * object.c (mono_class_proxy_vtable): Make it thread safe.
14153
14154         * pedump.c: Fix warning.
14155
14156         * object.c appdomain.h: Get rid of metadata_section. 
14157         It is no longer needed and it was causing deadlocks with domain->lock.
14158
14159         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14160
14161 2003-08-26  Martin Baulig  <martin@ximian.com>
14162
14163         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14164
14165 2003-08-26  Martin Baulig  <martin@ximian.com>
14166
14167         * pedump.c (main): Call mono_metadata_init(),
14168         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14169         and mono_loader_init().
14170
14171 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14172
14173         * loader.h: Add missing include to fix build.
14174
14175         * image.h: mono_image_load_references is no more.
14176
14177         * assembly.c: Reworked assembly loading to make it really thread safe.
14178         After these changes, the assembly returned by mono_assembly_open is
14179         fully initialized, i.e. all its references assemblies are loaded.
14180
14181         * assembly.c (mono_image_load_references): Renamed to 
14182         mono_assembly_load_references, and made private, since clients no
14183         longer need to call it.
14184
14185         * class.c: Removed calls to mono_assembly_load_references, since it was
14186         a source of deadlocks.
14187
14188         * loader.h loader.c class.h class.c: Protect data structures using a 
14189         new lock, the loader lock.
14190
14191         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14192         GPtrArrays only when needed.
14193
14194         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14195         into empty structures by mcs. Fixes pinvoke7.cs.
14196         
14197         * domain.c (mono_init): Call a new initialization function.
14198
14199         * appdomain.c (mono_runtime_init): Call the new initializer function
14200         of the marshal module.
14201
14202         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14203         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14204
14205         * marshal.h marshal.c: Added locks around the wrapper caches to make
14206         this module thread safe.
14207
14208         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14209         this argument. Fixes pinvoke1.exe.
14210
14211 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14212
14213         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14214         enumeration of values. Removed fields to store remote call output values in
14215         MonoAsyncResult. Not needed any more.
14216         * object.c: Initialize call_type and async_result fields in mono_message_init.
14217         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14218         dispatching the message.
14219         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14220         async call to finish. To do it use a message with EndInvoke call type.
14221
14222 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14223
14224         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14225         determines whenever a method has marshalling info.
14226
14227 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14228
14229         * assembly.c: fix the build on windows.
14230
14231 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14232
14233         * object.cs: Fixed bug #47785.
14234
14235 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14236
14237         * string-icalls.c (StringReplace): If their are no occurances of
14238         the old string found return a reference to the supplied
14239         string. This saves some memory and matches MS behavoir.
14240         
14241 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14242
14243         * socket-io.c: fixed compilation for systems that define AF_INET6
14244         and don't define SOL_IP/SOL_IPV6.
14245
14246 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14247
14248         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14249         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14250
14251         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14252
14253         * domain.c: Make this module thread safe.
14254
14255         * domain.c (mono_init): Call new initialization function.
14256
14257         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14258         reference types too. Fixes #38812.
14259
14260         * image.c (mono_image_init): Fixed warnings.
14261
14262         * class.c (mono_class_from_typeref): Handle assembly load failure
14263         correctly.
14264
14265         * appdomain.c (add_assemblies_to_domain): Handle the case when
14266         the references of an assembly are not yet loaded.
14267
14268         * metadata.c image.c assembly.c: Moved initialization of global
14269         variables to a separate function called at startup since lazy 
14270         initialization of these variables is not thread safe.
14271         
14272         * image.c assembly.c: Made this module thread safe by adding locks in 
14273         the appropriate places.
14274
14275         * domain.c (mono_init): Call the new initialization functions of the
14276         three modules.
14277
14278 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14279
14280         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14281           make a direct call. It is proxy's work to make the call asynchronous.
14282           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14283           the return values.
14284         * object.cs: mono_method_call_message_new(): read AsyncResult and
14285           state object from parameters list, if this info is requested.
14286         * object.h: Added fields to store remote call output values in
14287           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14288
14289 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14290
14291         * object.h: add needed fields to MonoThread.
14292         * threads.c, threads.h: allow registering a function to cleanup data
14293         allocated per thread by the JIT.
14294
14295 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14296
14297         * loader.h: portability fix by Bernie Solomon
14298         * <bernard@ugsolutions.com>.
14299
14300 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14301
14302         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14303         return a MonoArray. This simplifies the code and also ensures that
14304         the cache allways contains an object reference as a value.
14305
14306         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14307         function.
14308
14309 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14310
14311         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14312         fixes a problem with byte ordering when getting the address family for
14313         a socket.
14314
14315 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14316
14317         * .cvsignore: Added monosn.
14318
14319         * reflection.h reflection.c loader.c: Added support for parameter
14320         marshalling to dynamically created types. Fixes #47295.
14321
14322 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14323
14324         * rand.c: remove useless warnings.
14325
14326 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14327
14328         * class.c: implemented ldtoken for methods and fieldrefs.
14329
14330 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14331
14332         * threadpool.c: when mono_async_invoke was called, no one took care of
14333         monitoring the queue. So if the method invoked took some time and we
14334         got new async invoke requests after 500 ms (the thread created waited
14335         that long in WaitForSingleObject), the new async invoke was not called
14336         until the previous one finished.
14337
14338         This is fixed now. Thanks to Totte for helping with it.
14339
14340 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14341
14342         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14343
14344 2003-08-11  Martin Baulig  <martin@ximian.com>
14345
14346         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14347
14348 2003-08-06  Martin Baulig  <martin@ximian.com>
14349
14350         * mono-debug-debugger.c: Added support for static fields,
14351         properties and methods.
14352
14353 2003-08-06  Martin Baulig  <martin@ximian.com>
14354
14355         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14356         make this work for applications with multiple application domains.
14357
14358 2003-08-04  Martin Baulig  <martin@ximian.com>
14359
14360         * mono-debug-debugger.c: Completely reworked the type support; the
14361         most important thing is that we're now just using one single
14362         `MonoType' instance per type.
14363
14364 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14365
14366         * mono-endian.h, mono-endian.c, icall.c: Added icall
14367         ves_icall_System_Double_AssertEndianity to assert double word endianity
14368         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14369
14370 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14371
14372         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14373         support, icalls and fixes.
14374
14375 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14376
14377         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14378         classes that are a punctuation character in .NET is not the same a
14379         g_unichar_ispunct.
14380
14381 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14382
14383         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14384
14385 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14386
14387         * icall.c: Add new MemCopy internalcall.
14388         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14389         Simplified code; It is not necessary to handle all the cases here,
14390         as the C# code takes care of it.  Only handle the case of the name
14391         resource embedded into the assembly.
14392
14393         Changed signature to return the data pointer and the size of the
14394         data. 
14395
14396 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14397
14398         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14399         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14400
14401 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14402
14403         * socket-io.c: ignore EINTR error in select.
14404
14405 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14406
14407         * class.h, class.c: removed unused subclasses field in MonoClass.
14408
14409 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14410
14411         * icall.c: improve fix of get_base_definition(). If the parent class
14412           doesn't have the mehod, look at the parent of the parent.
14413         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14414           to check if a parameter is an in or out parameter
14415           (PARAM_ATTRIBUTE_IN is not set by default).
14416           mono_method_return_message_restore(): Use mono_class_value_size to
14417           get the size of a value type. mono_type_stack_size (parameterType)
14418           does not return the correct value if parameterType is byRef.
14419           mono_load_remote_field(), mono_load_remote_field_new(),
14420           mono_store_remote_field(), mono_store_remote_field_new():
14421           raise exception if the remote call returns an exception.
14422
14423 2003-07-28  Martin Baulig  <martin@ximian.com>
14424
14425         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14426         method.  This is a wrapper around mono_runtime_invoke() which
14427         boxes the instance object if neccessary.
14428
14429 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14430
14431         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14432         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14433
14434 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14435
14436         * icall.c: disable mcs bug workaround.
14437
14438 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14439
14440         * object.c (mono_runtime_class_init): Take the metadata_section
14441         mutex before obtaining the domain mutex.
14442
14443         * appdomain.h: Added definition of metadata_section mutex here. 
14444
14445         * object.c: define metadata_mutex here.
14446
14447 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14448
14449         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14450         fixed.
14451
14452 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14453
14454         * reflection.c: Fix bug #46669
14455
14456 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14457
14458         * exception.c:
14459         * exception.h:
14460         * icall.c:
14461         * object.h: fill in the type name for TypeLoadException.
14462
14463 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14464
14465         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14466         relationship between TypeBuilders while compiling corlib) and bug
14467         45993 (Array types returned from the runtime while compiling
14468         corlib were from the loaded corlib).
14469
14470 2003-07-22  Martin Baulig  <martin@ximian.com>
14471
14472         * mono-debug-debugger.c: Reworked the type support a bit more;
14473         distinguish between types and classes.
14474
14475 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14476
14477         * icall.c: add IsArrayImpl icall.
14478
14479 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14480
14481         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14482         initializing real_size only once. Also fix bug #46602.
14483
14484 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14485
14486         * object.c: Renamed mono_metadata_section to metadata_section.
14487
14488 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14489
14490         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14491           empty array if the type is an array. Fixed.
14492           ves_icall_MonoMethod_get_base_definition: if the base method
14493           is abstract, get the MethodInfo from the list of methods of
14494           the class.
14495         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14496           and it was 1-based. Fixed in mono_param_get_objects.
14497
14498 2003-07-20  Martin Baulig  <martin@ximian.com>
14499
14500         * mono-debug.h: Set version number to 31.
14501         (mono_debug_init): Added `MonoDomain *' argument.
14502
14503         * mono-debug-debugger.c: Reworked the type support; explicitly
14504         tell the debugger about builtin types; pass the `klass' address to
14505         the debugger.
14506
14507 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14508
14509         * image.c: Allow new metadata tables to be loaded without a
14510         warning. Also update the warning message to give the new constant value.
14511                 
14512 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14513
14514         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14515         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14516         array type representation changes.
14517
14518 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14519
14520         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14521         on Environment.Exit () call.
14522
14523 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14524
14525         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14526         requires a matching corlib.
14527
14528 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14529
14530         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14531           Committed again without the CRs.
14532         
14533 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14534
14535         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14536           getting it from the "this" socket instance. Did not work
14537           if the socket is a subclass of Socket.
14538           Also fixed bug #35371.
14539
14540 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14541
14542         * metadata.c: fixed size for TypedByRef.
14543         * loader.c: when searching for a method, consider the vararg amrker.
14544         * unicode.c, decimal.c: constify some arrays.
14545
14546 2003-07-15  Dick Porter  <dick@ximian.com>
14547
14548         * socket-io.c: Fixed compilation for gcc < 3.2.
14549
14550         Fixed compilation for machines that don't have AF_INET6 (thanks to
14551         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14552
14553         Fixed compile warnings.
14554         
14555         Fixed formatting and line endings.
14556
14557 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14558
14559         * socket-io.h:
14560         * socket-io.c: Added IPv6 support.
14561
14562 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14563
14564         * class.c (mono_class_is_assignable_from): New function to implement
14565         the is_assignable_from logic. Used by mono_object_isinst, 
14566         Type::IsAssignableFrom () and the interpreter.
14567
14568         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14569         Object, even interfaces.
14570         
14571         * object.c (mono_object_isinst): Implement in terms of 
14572         is_assignable_from.
14573
14574         * icall.c (ves_icall_type_is_assignable_from): New icall.
14575
14576 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14577
14578         * domain.c (foreach_domain): fix compiler warning.
14579
14580 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14581
14582         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14583         not available on all plattforms
14584
14585 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14586
14587         * image.h image.c: Store the metadata version string in MonoImage.
14588         * icall.c: New icall to retrieve the image version.
14589         * reflection.c (create_dynamic_image): Fill in the image version field
14590         * reflection.c (build_compressed_metadata): Use the image version
14591         from the image structure.
14592
14593 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14594
14595         * appdomain.c: modified comment.
14596         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14597         That will be its last iteration when mono_gc_cleanup is called from
14598         mono_runtime_cleanup and before the domain is unloaded.
14599
14600         Fixes bug #45962.
14601
14602 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14603
14604         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14605         attributes.
14606
14607 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14608
14609         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14610         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14611         Bernie Solomon <bernard@ugsolutions.com>.
14612
14613 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14614
14615         * object.c, object.h: provide mono_object_new_fast() for faster
14616         allocation in some special cases.
14617
14618 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14619
14620         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14621         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14622
14623 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14624
14625         * threadpool.c: fix leaks.
14626
14627 2003-07-01  Dick Porter  <dick@ximian.com>
14628
14629         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14630         using MonoGHashTables.  Fixes threadpool bug posted to list.
14631
14632 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14633
14634         * image.h, image.c: added support to load an assembly from a byte array.
14635         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
14636         assembly bundle support.
14637
14638 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
14639
14640         * threadpool.c (mono_thread_pool_add): keep a reference to the
14641         AsyncResult to prevent GC
14642
14643 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14644
14645         * class.c: leak fix.
14646
14647 2003-06-25  Dick Porter  <dick@ximian.com>
14648
14649         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
14650         for the async object, the WaitHandle object will close the handle.
14651         Fixes bug 45321.
14652
14653 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14654
14655         * class.c: in mono_array_class_get (), lookup from the hash with the
14656         same type we insert: this works around a bug in
14657         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
14658         lluis. The real fix will have to wait for after the release.
14659
14660 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14661
14662         * icall.c: fix memory leak when getting type members.
14663
14664 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14665
14666         * reflection.c: added more pubtoken special cases.
14667
14668 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
14669
14670         * class.c: handle field offset correctly when class size
14671         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
14672
14673 2003-06-20  Martin Baulig  <martin@ximian.com>
14674
14675         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
14676         *image' field.
14677
14678 2003-06-20  Martin Baulig  <martin@ximian.com>
14679
14680         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
14681
14682 2003-06-20  Martin Baulig  <martin@ximian.com>
14683
14684         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
14685         just distinguish between variables in registers and variables at
14686         an offset relative to a register.
14687
14688 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14689
14690         * icall.c: #ifdef out latest changes until mcs is fixed.
14691
14692 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14693
14694         * icall.c: return members in metadata order.
14695
14696 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14697
14698         * icall.c: avoid infinite loop in GetTimeZoneData.
14699
14700 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
14701
14702         * icall.c: added Marshal.Prelink/All icalls.
14703
14704 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
14705
14706         * object.c, object.h: fix warnings and do some overflow checking
14707         when creating arrays.
14708
14709 2003-06-17  Dick Porter  <dick@ximian.com>
14710
14711         * file-io.h:
14712         * file-io.c: File attributes need to be tweaked slightly when
14713         passed from the managed to the w32 world.
14714
14715 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14716         * profiler.h profiler-private.h profiler.c: Rework last patch
14717         based on suggestion by Paolo.
14718         
14719 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
14720
14721         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
14722         instruction level coverage data collection.
14723         * profiler.h profiler.c (: Added new callback function which can be
14724         used by the profiler to limit which functions should have coverage
14725         instrumentation.
14726         * profiler.c (mono_profiler_load): Call g_module_build_path to
14727         generate the file name of the profiler library.
14728
14729 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14730
14731         * profiler.c, profiler.h, profiler-private.h: added basic block 
14732         coverage profiling API.
14733
14734 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
14735
14736         * reflection.c (mono_reflection_create_runtime_class): Add support
14737         for events in dynamically generated code.
14738
14739         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
14740         not allocated.
14741
14742 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14743
14744         * icall.c: when getting timezone info, return reasonable values if we
14745         can't get the actual data.
14746
14747 2003-06-14  Dick Porter  <dick@ximian.com>
14748
14749         * threads.c (start_wrapper): Remove the reference to the thread
14750         object in the TLS data, so the thread object can be finalized.
14751         This won't be reached if the thread threw an uncaught exception,
14752         so those thread handles will stay referenced :-( (This is due to
14753         missing support for scanning thread-specific data in the Boehm GC
14754         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
14755
14756 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
14757
14758         * reflection.c: ensure streams and tables are first allocated with
14759         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
14760
14761 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14762
14763         * icall.c: fixed GetElementType for byrefs (bug# 44792).
14764
14765 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
14766
14767         * reflection.c (mono_reflection_create_runtime_class): Add support for
14768         properties to dynamically created classes.
14769         * reflection.c: Fix a few places where non-MonoObjects were inserted
14770         into the tokens hashtable.
14771
14772 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14773
14774         * object.c: some support to handle out of memory exceptions.
14775
14776 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
14777
14778         * marshal.c (mono_marshal_get_native_wrapper): support reference
14779         return types
14780
14781 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14782
14783         * object.h, object.c: more portability stuff from Bernie Solomon.
14784         Unexport mono_object_allocate(). Added mono_object_unbox ().
14785         Set exitcode when an unhandled exception is thrown.
14786
14787 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
14788
14789         * marshal.c (mono_marshal_get_native_wrapper): use custom
14790         marshaler for return types.
14791
14792 2003-06-10  Dick Porter  <dick@ximian.com>
14793
14794         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
14795         ip_mreq is available
14796
14797 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
14798
14799         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
14800         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
14801         by Bernie Solomon <bernard@ugsolutions.com>.
14802
14803 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
14804
14805         * gc.c (mono_gc_init): Avoid error message on shutdown when
14806         GC_DONT_GC=1 is used.
14807
14808         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
14809         New icall to return the GUID of a module.
14810
14811 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
14812
14813         * class.c: ensure instance size always includes the parent's size
14814         even whem class size is set explicitly (fixes bug#44294).
14815
14816 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14817
14818         * profiler.h, profiler.c: made the simple profiler thread-safe,
14819         get more accurate timing info. Allow the loading of an
14820         externally-developed profiler module.
14821
14822 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
14823
14824         * marshal.c (mono_marshal_get_native_wrapper): improved
14825         class/byref arguments.
14826         (mono_marshal_get_native_wrapper): better string marshaling support.
14827
14828 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
14829
14830         * class.c: ensure .pack and .size are handled correctly and
14831         simplified layout of static fields.
14832
14833 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
14834
14835         * appdomain.c
14836         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
14837
14838         * loader.c (mono_lookup_pinvoke_call): look for modules in the
14839         current directory (fix bug 44008)
14840
14841 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
14842
14843         * marshal.c (mono_marshal_get_native_wrapper): started support for
14844         custom marshalers.
14845         (mono_delegate_to_ftnptr): consider marshalling specifications
14846
14847 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
14848
14849         * reflection.c, reflection.h: emit custom marshal info.
14850
14851 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14852
14853         * object.c: free the GError.
14854         * icall.c: added CloseEvent_internal.
14855         * threads.[ch]:
14856         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
14857         call.
14858
14859 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
14860
14861         * loader.c (mono_method_get_signature): Add support for dynamic
14862         assemblies.
14863
14864 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
14865
14866         * reflection.c: fixed bug #43905.
14867
14868 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14869
14870         * class.c, domain.c, icall.c, metadata.h, object.h: support for
14871         handling TypedReference and ArgIterator.
14872         * loader.c, loader.h: added function to get signature at call site.
14873
14874 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14875
14876         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
14877         data readonly. Buglets and warning fixes. Some MethodSpec support.
14878
14879 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14880
14881         * class.h, class.c, object.c: remove relative numbering support.
14882
14883 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
14884
14885         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
14886         free the string, until we get a chance to fix Gtk#
14887
14888 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14889
14890         * marshal.c: revert last patch.
14891
14892 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
14893
14894         * icall.c: updates for new mono_class_vtable() not calling
14895         the type constructor anymore.
14896
14897 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14898
14899         * object.h, object.c: separate vtable creation from type
14900         initialization. Make running the .cctor thread safe.
14901
14902 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
14903
14904         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
14905
14906 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
14907
14908         * loader.c (mono_get_method): consider calling convention
14909
14910 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
14911
14912         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
14913         to return the invisible global type for a module.
14914
14915         * reflection.c (mono_image_build_metadata): Emit global fields too.
14916
14917 2003-05-20  Peter Williams  <peterw@ximian.com>
14918
14919         * loader.c (mono_lookup_internal_call): Add a few newlines.
14920
14921 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
14922
14923         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
14924         literal strings.
14925
14926         * appdomain.c (set_domain_search_path): Recalculate search path when
14927         AppDomainSetup.PrivateBinPath changes.
14928
14929         * object.c (mono_class_compute_gc_descriptor): It turns out some
14930         parts of the class libs (like System.Thread) holds pointers to
14931         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
14932         to treat native int a pointer type here.
14933         
14934 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
14935
14936         * appdomain.h, domain.c: add hashtable for jump target resolution.
14937
14938 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
14939
14940         * reflection.h reflection.c icall.c: Added new icalls 
14941         GetManifestResourceInfoInternal, GetModulesInternal and support
14942         infrastructure.
14943
14944 2003-05-16  Dick Porter  <dick@ximian.com>
14945
14946         * icall.c:
14947         * file-io.h:
14948         * file-io.c: Implement System.IO.MonoIO::GetTempPath
14949
14950 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
14951
14952         * object.c: mono_store_remote_field: little fix to previous patch.
14953
14954 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14955
14956         * class.c: add constructors to array classes.
14957         * icall.c: special case array construction for InternalInvoke (),
14958
14959 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
14960
14961         * class.h class.c reflection.c object.c: Added support for field
14962         defaults in dynamically generated classes.
14963
14964 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
14965
14966         * reflection.c: properly encode charset for ddlimport.
14967
14968 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
14969
14970         * threads.c: allow compiling without GC.
14971
14972 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14973
14974         * appdomain.h, object.c, object.h, threads.c, threads.h: added
14975         handling of thread static data.
14976
14977 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14978
14979         * reflection.h, reflection.c: added mono_custom_attrs_free ().
14980
14981 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
14982
14983         * class.c (mono_array_class_get): always set the serializable flags
14984         (mono_array_class_get): always set the SEALED attribute for array types
14985
14986 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
14987
14988         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
14989         attributes (fix for bug 42021).
14990
14991 2003-05-12  Dick Porter  <dick@ximian.com>
14992
14993         * gc.c: Don't run finalizers when the finalizer thread is
14994         finishing up, because the default domain has already been
14995         destroyed.
14996
14997 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
14998
14999         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15000         value is null, we should throw an exception.   This is slightly
15001         different than the other conventions used for the constructor.
15002
15003 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15004
15005         * socket-io.c: fixed windows build.
15006
15007 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15008
15009         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15010
15011 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15012
15013         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15014         compilers.
15015
15016 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15017
15018         * class.c (mono_class_layout_fields): Add experimental GC aware
15019         auto layout facility. Requires class library changes to work correctly.
15020
15021         (mono_class_setup_vtable): Avoid overriding explicit interface
15022         method implementations. Fixes iface3.exe test.
15023
15024         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15025         object reference.
15026         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15027         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15028
15029         * metadata.h: Add new type classification macro which determines
15030         whenever the type holds an object reference.
15031
15032 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15033
15034         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15035
15036 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15037
15038         * gc.c (finalizer_thread): Work around a GC bug.
15039
15040 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15041
15042         * marshal.c (emit_struct_conv): allow unions
15043
15044         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15045
15046 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15047
15048         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15049
15050 2003-05-06  Martin Baulig  <martin@ximian.com>
15051
15052         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15053
15054 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15055
15056         * socket-io.c:
15057         (Select_internal): allow NULLs, don't create arrays if not needed.
15058         Coupled with Socket.cs changes.
15059
15060         * threadpool.c:
15061         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15062         register a finalizer for it that will close the semaphore handle. This
15063         fixes the leak and make Lupus' test run with > 4080 loops.
15064
15065 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15066
15067         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15068         Jerome Laban (bug #42287)
15069
15070 2003-05-02  Martin Baulig  <martin@ximian.com>
15071
15072         * debug-mono-symfile.h
15073         (MonoSymbolFile): Moved declaration into mono-debug.h.
15074         (MonoDebugMethodJitInfo): Likewise.
15075         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15076         argument.
15077         (_mono_debug_address_from_il_offset): Take a
15078         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15079
15080         * mono-debug.h
15081         (MonoDebugDomainData): New struct.
15082         (mono_debug_get_domain_data): New function.
15083         (mono_debug_add_method): Take an additional `MonoDomain *'
15084         argument.
15085         (mono_debug_source_location_from_address): Likewise.
15086         (mono_debug_il_offset_from_address): Likewise.
15087         (mono_debug_address_from_il_offset): Likewise.
15088
15089 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15090
15091         * reflection.c: one more check for null type in custom attrs.
15092
15093 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15094
15095         * reflection.c: avoid warning (comparison is always false due to limited
15096         range of data type).
15097
15098 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15099
15100         * icall.c: throw an exception in Type.GetField if the argument 'name'
15101         is NULL.
15102
15103 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15104
15105         * reflection.c: fixed handling of enums in named arguments to custom
15106         attributes (bug #42123).
15107
15108 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15109
15110         * reflection.c: use the right array element type and handle
15111         a null for a Type argument, too.
15112
15113 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15114
15115         * reflection.c: handle arrays as arguments to custom attributes.
15116
15117 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15118
15119         * reflection.c: handle a string value in a custom attr
15120         ctor that takes an object.
15121
15122 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15123
15124         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15125         (fix bug #42063)
15126
15127 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15128
15129         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15130
15131 2003-04-27  Martin Baulig  <martin@ximian.com>
15132
15133         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15134         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15135         MONO_DEBUGGER_EVENT_BREAKPOINT.
15136         (mono_breakpoint_trampoline_code): Removed.
15137         (mono_debugger_event_handler): The last argument is now a
15138         `guint32'.
15139         (mono_debugger_insert_breakpoint_full): Removed the
15140         `use_trampoline' argument.
15141         (mono_debugger_method_has_breakpoint): Likewise.
15142         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15143         mono_debugger_breakpoint_callback(); take the method and
15144         breakpoint number as arguments.
15145
15146 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15147
15148         * metadata.c: fix off by one when loading parameters attributes.
15149
15150 2003-04-24  Martin Baulig  <martin@ximian.com>
15151
15152         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15153
15154 2003-04-24  Martin Baulig  <martin@ximian.com>
15155
15156         * mono-debug-debugger.c: Moved all code which interacts with the
15157         Mono Debugger here.
15158
15159         * debug-mono-symfile.c: This code now just deals with the symbol
15160         file itself, the debugger code is now in mono-debug-debugger.c.
15161
15162 2003-04-23  Martin Baulig  <martin@ximian.com>
15163
15164         * mono-debug.c (mono_debug_source_location_from_il_offset):
15165         New method; like mono_debug_source_location_from_address(), but
15166         takes an IL offset instead of a machine address.
15167
15168 2003-04-23  Martin Baulig  <martin@ximian.com>
15169
15170         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15171         `line' field; this is now computed by the debugger.
15172
15173 2003-04-23  Martin Baulig  <martin@ximian.com>
15174
15175         * mono-debug.[ch]: New files.  This is the new debugging interface.
15176
15177         * mono-debug-debugger.[ch]: New files.  Moved all code which
15178         interacts with the Mono Debugger here.
15179
15180 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15181
15182         * domain.c (mono_init): initialize mono_defaults.monitor_class
15183
15184 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15185
15186         * reflection.c (method_encode_code): Add a spicy exception to help
15187         future compiler authors.
15188
15189 2003-04-21  Martin Baulig  <martin@ximian.com>
15190
15191         * icall.c
15192         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15193         Make this work with relative pathnames; g_filename_to_uri() needs
15194         an absolute filename.
15195
15196 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15197
15198         * icall.c: Track name changes in Object and ValueType.
15199
15200 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15201
15202         * metadata.c (mono_type_stack_size): size should be a multiple of
15203         sizeof (gpointer)
15204
15205 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15206
15207         * gc.c:
15208         (internal_domain_finalize): moved into mono_domain_finalize. No need
15209         to create another thread because the finalizers will be run in the
15210         finalizer thread.
15211         
15212         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15213         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15214         to be run (MS does this too).
15215
15216 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15217
15218         * object.c (mono_class_compute_gc_descriptor): Update comment.
15219
15220         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15221
15222         * image.h: Add synchronized wrapper cache.
15223
15224         * image.c (do_mono_image_open): Initialize cache.
15225
15226         * reflection.c (create_dynamic_mono_image): Initialize cache.
15227
15228 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15229
15230         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15231         ves_icall_System_Buffer_ByteLengthInternal.
15232
15233 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15234
15235         * reflection.c: setup klass->nested_in earlier. Allow
15236         a dash in the assembly name.
15237
15238 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15239
15240         * metadata.c (mono_type_to_unmanaged): dont access
15241         type->data.klass for MONO_TYPE_OBJECT
15242         (mono_type_to_unmanaged): consider System.Delegate class
15243
15244 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15245
15246         * class.c: just setup supertypes in the proper place instead of
15247         initializing the full element class for arrays.
15248
15249 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15250
15251         * class.c: ensure the element class of arrays is initialized.
15252         Setup the supertype info for array classes, too.
15253
15254 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15255
15256         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15257
15258 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15259
15260         * Makefile.am: re-added -m option when running cygpath. This way,
15261         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15262         separator.
15263         * mono-config.c: same codepath for locating mono config file for WIN32
15264         and the rest.
15265         * assembly.c: if mono_assembly_setrootdir is called, don't override
15266         the value set.
15267
15268 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15269
15270         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15271         MONO_ASSEMBLIES variable.
15272
15273 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15274
15275         * icall.c: added Assembly::GetNamespaces() icall.
15276
15277 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15278
15279         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15280
15281 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15282
15283         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15284         * object.c: fixed bug in the construction of vtable for proxies
15285
15286 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15287
15288         * object.c (mono_array_new): Mark mono_array_new as an icall.
15289
15290 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15291
15292         * class.c: fixed test for public method when overriding interfaces.
15293         Closes bug #40970.
15294
15295 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15296
15297         * appdomain.h, domain.c: added mono_domain_foreach() to
15298         be able to access the currently loaded appdomains.
15299         * object.c: make string interning work across sppdomains.
15300         Mark some functions for use as icalls.
15301
15302 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15303
15304         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15305
15306         * reflection.h reflection.c: Allocate long living data using 
15307         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15308
15309         * reflection.c: Double the allocation size in streams instead of
15310         increasing it, to prevent unneccesary copying on large assemblies.
15311         
15312         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15313         creation if the assembly does not have the Run flag set.
15314
15315 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15316
15317         * class.h: avoid the C++ keywords in header files (Jerome Laban
15318         spotted and fixed this).
15319
15320 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15321
15322         * object.c:
15323         (mono_unhandled_exception): fill in the arguments for the
15324         UnhandledException event. Only trigger that event for the default
15325         domain (as MS does).
15326
15327 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15328
15329         * object.c: Improve typed allocation stuff based on suggestions from
15330         Paolo. Also turn it on if the GC library supports it.
15331
15332 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15333
15334         * object.c object.h class.h: Added experimental typed allocation
15335         facility using the interfaces in gc_gcj.h.
15336
15337         * os/gc_wrapper.h: Added new include files.
15338         
15339 2003-04-03  Martin Baulig  <martin@ximian.com>
15340
15341         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15342         which is not yet enabled by default.
15343
15344         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15345         functions.
15346         (mono_gc_lock, mono_gc_unlock): New static functions.
15347
15348         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15349         functions; stop/start the world for the garbage collector.  This
15350         is using the windows API; we need to complete the SuspendThread()/
15351         ResumeThread() implementation in the io-layer to make this work on Unix.
15352         (mono_gc_push_all_stacks): New public function; tells the garbage
15353         collector about the stack pointers from all managed threads.
15354
15355 2003-04-03  Martin Baulig  <martin@ximian.com>
15356
15357         * object.h (MonoThread): Added `gpointer stack_ptr'.
15358
15359         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15360
15361 2003-04-03  Martin Baulig  <martin@ximian.com>
15362
15363         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15364
15365 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15366
15367         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15368         field.last.
15369
15370 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15371
15372         * loader.c (mono_lookup_internal_call): Report the corlib that is
15373         out of sync.
15374
15375 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15376
15377         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15378         System.DBNull (it's class not valuetype).
15379
15380 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15381
15382         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15383         if the array method was already assigned a token (fixes bug#40646).
15384
15385 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15386
15387         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15388         if no assembly is given.
15389
15390 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15391
15392         * metadata.h: Added the new tables.
15393
15394         * row-indexes.h: Added definitions for new tables.
15395
15396         * metadata.c: Add schemas for new tables, and add support for
15397         computing the sizes of them.
15398
15399         * class.c: Update for handling the new type cases.
15400
15401 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15402
15403         * metadata.h (MONO_TYPE_IS_VOID): new macro
15404
15405 2003-03-31  Martin Baulig  <martin@ximian.com>
15406
15407         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15408
15409         * threads.c (mono_thread_new_init): Call `thread_created' in the
15410         mono_thread_callbacks.
15411
15412 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15413
15414         * loader.h: added marshalbyrefobject_class to mono_defaults
15415         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15416         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15417           generation of output parameters.
15418           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15419         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15420           contextbound and the target object belongs to the context of the caller.
15421         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15422         * object.c: Implemented support for interfaces and abstract classes
15423           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15424           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15425
15426 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15427
15428         * class.h class.c (mono_class_is_subclass_of): New function.
15429         
15430         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15431         routines for most common case (calls from ArrayList::ToArray).
15432
15433         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15434         routine so programs which call Environment::Exit() can be profiled.
15435
15436         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15437         Added MONO_ARCH_SAVE_REGS.
15438
15439         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15440
15441 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15442
15443         * blob.h: Add a couple of new MonoType types definitions.
15444
15445         * tabledefs.h: Add a couple of new call convs.
15446
15447 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15448
15449         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15450         the layout of the class.
15451
15452         * reflection.c (alloc_table): double the size on overflow to avoid
15453         unnecessary copying.
15454
15455         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15456         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15457         null so it can be garbage collected.
15458         
15459 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15460
15461         * reflection.c (mono_reflection_get_type): Return the resolved type
15462         only if it is in the assembly we searched.
15463
15464         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15465
15466         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15467         method.
15468
15469 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15470
15471         * appdomain.c:
15472         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15473         the right one is 'file:///blah', but MS allows it.
15474         * assembly.c:
15475         (mono_assembly_open): allow 'file://blah'
15476
15477         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15478
15479 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15480
15481         * socket-io.c: fixes bug #40310.
15482
15483 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15484
15485         * reflection.c (mono_reflection_parse_type): handle deeply nested
15486         types correctly.
15487
15488         * reflection.c (mono_image_create_token): Use unique token values
15489         since they will be put into a hash table.
15490
15491         * class.c (mono_class_setup_vtable): If a method occurs in more than
15492         one place in the vtable, and it gets overriden, then change the
15493         other occurances too.
15494
15495         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15496         object as return type.
15497
15498 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15499
15500         * icall.c: Deleted "ToString" implementation for double and float
15501         because they are full implemented in managed code.
15502
15503 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15504
15505         * reflection.c, reflection.h: implemented and exported functions
15506         to retrieve info about custom attributes.
15507
15508 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15509
15510         * appdomain.c: moved Uri handling to assembly.c
15511         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15512         work when using a file Uri in *nix and windows.
15513
15514         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15515         GetReferencedAssemblies.
15516
15517 2003-03-18  Dick Porter  <dick@ximian.com>
15518
15519         * icall.c: Rename a couple of internal calls
15520
15521         * threads.c: Set the thread state to Stopped when a thread exits.
15522         Fixes bug 39377.
15523
15524 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15525
15526         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15527         New icall.
15528
15529         * object.c (mono_class_vtable): fix warning.
15530
15531 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15532
15533         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15534
15535         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15536         memory.
15537         (method_encode_clauses): Create exception info structures in the right
15538         order.
15539         (mono_reflection_setup_internal_class): Initialize supertypes field.
15540
15541         * class.c object.c: Handle interfaces which implement other interfaces 
15542         correctly.
15543
15544         * class.h class.c: Move the supertypes array initialization code into 
15545         a separate function so it can be used for dynamic types too. Also call
15546         it earlier, in mono_class_init(), since it can be used before the
15547         type is initialized.
15548
15549 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15550
15551         * Makefile.am:
15552         * assembly.c:
15553         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15554
15555         * appdomain.c:
15556         * appdomain.h:
15557         * marshal.c:
15558         * object.c: remove warnings.
15559
15560 2003-03-13  Martin Baulig  <martin@ximian.com>
15561
15562         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15563         (MonoDebugLexicalBlockEntry): New types.
15564
15565         * debug-mono-symfile.c
15566         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15567
15568 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15569
15570         * process.c: ret can be any non-zero value accroding to MS doc.
15571
15572 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15573
15574         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15575         fixing a warning for a miss-used prototype, would have cause
15576         random memory corruption.
15577
15578 2003-03-07  Martin Baulig  <martin@ximian.com>
15579
15580         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15581         getting really annoying ....
15582
15583 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15584
15585         * reflection.c (fixup_method): added support for array methods.
15586
15587 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15588
15589         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15590         (pointed out by Michael Adams).
15591
15592 2003-03-04  Dick Porter  <dick@ximian.com>
15593
15594         * icall.c: Temporarily reverted the Double and Single ToString()
15595         change, because it broke nunit.
15596
15597 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15598
15599         * object.h, threads.h: make include files compatible with C++
15600         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15601
15602 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15603
15604         * icall.c: Erased ToString helper functions for Double and Single.
15605         Now, that implementations ar all in managed code (Double and Single
15606         Formatters).
15607
15608 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15609
15610         * appdomain.c: Added method for initializing the default context of
15611         a domain. Added internal call for getting the default context.
15612         * appdomain.h: Added context variable in MonoDomain struct.
15613         * domain.c: mono_domain_set also sets the default context of the domain
15614         * icall.c: Mapped internal method InternalGetDefaultContext.
15615         * object.c: mono_object_get_virtual_method returns always a remoting
15616         wrapper if the object is a transparent proxy.
15617         mono_runtime_invoke_array: when creating an object by calling the
15618         constructor, if the created object is a proxy, then the constructor should
15619         be called using the a remoting wrapper.
15620
15621 2003-03-03  Dick Porter  <dick@ximian.com>
15622
15623         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15624         variable so it compiles on solaris.  Problem spotted by
15625         Christopher Taylor <ct@cs.clemson.edu>
15626
15627 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15628
15629         * appdomain.c:
15630         (get_info_from_assembly_name): don't leak value.
15631
15632         * icall.c:
15633         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15634         result.
15635
15636 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
15637
15638         * assembly.c: export mono_image_load_references ().
15639         * class.c: handle function pointers. mono_class_from_name() now
15640         supports nested type names directly.
15641
15642 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
15643
15644         * reflection.h reflection.c: Encode already created dynamic methods 
15645         and fields correctly as a DEF instead of a REF.
15646
15647         * reflection.c: Get rid of the force_ref argument to 
15648         mono_image_typedef_or_ref since it was wrong in the first place.
15649
15650         * string-icalls.c: add error checking to string constructors according
15651         to the MSDN docs.
15652
15653         * reflection.c: Emit types in the order their TypeBuilders were 
15654         created. Previously, a new table index was assigned to each type before
15655         the tables were emitted. This was wrong because the signature blob
15656         might already refer to a type by its original table index.
15657
15658 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
15659
15660         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
15661         change.
15662         
15663 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15664
15665         * Makefile.am: make assemblies dir have \ instead of / on windows.
15666
15667 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
15668
15669         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
15670         iterate over the NESTEDCLASS table using a linear search since the
15671         table is not guaranteed to be sorted by the secondary key.
15672
15673         * class.c (mono_class_create_from_typedef): fixed up call to
15674         mono_metadata_nesting_typedef.
15675         
15676 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
15677
15678         * marshal.c (mono_string_to_byvalstr): clear the memory as
15679         suggested by Jerome Laban <jlaban@wanadoo.fr>
15680
15681 2003-02-26  Dick Porter  <dick@ximian.com>
15682
15683         * process.c: Cope with padding in .rsrc blocks
15684
15685 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15686
15687         * metadata.h: reverted the filter_len change, it breaks reflection
15688         
15689 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
15690
15691         * metadata.h: added a new field to store the filter_len
15692         
15693
15694 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
15695
15696         * reflection.c: handle custom attributes for types and members
15697         created with Reflection.Emit (bug#38422).
15698
15699 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
15700
15701         * reflection.c: define RTSpecialName automatically for constructors for
15702         compatibility with MS.NET.
15703
15704         * reflection.c (mono_reflection_create_runtime_class): initialize
15705         nested_in field of dynamically created classes.
15706
15707 2003-02-22  Martin Baulig  <martin@ximian.com>
15708
15709         * debug-mono-symfile.h: Incremented version number.
15710
15711 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15712
15713         * object.h icall.c process.c: fix warnings.
15714
15715 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
15716
15717         * appdomain.h appdomain.c:
15718         (mono_domain_try_type_resolve): split the 
15719         name_or_tb argument into a name and a tb argument.
15720         (mono_domain_has_type_resolve): new function to check whenever the
15721         application has registered a TypeResolve event handler.
15722         
15723         * icall.c reflection.h reflection.c: move the type resolve logic into
15724         mono_reflection_get_type () so it will be invoked when 
15725         Assembly::GetType () is called.
15726
15727         * reflection.c:
15728         (mono_reflection_get_type): renamed to get_type_internal.
15729         (mono_reflection_get_type): fixed type name generation so it works 
15730         for nested types too.
15731         (mono_reflection_get_type): call has_type_resolve () to avoid the 
15732         costly type name generation if there is no resolve event handler.
15733
15734 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15735
15736         * class.c, image.c: load exported types from file references.
15737
15738 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
15739
15740         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
15741           used to cache the managed methods used to create proxies and make 
15742           remote invocation of methods.
15743         * class.h: Added in MonoVTable a flag to indicate that a class needs 
15744           to be remotely created.
15745         * object.c: Modified the method mono_class_vtable(). It now initializes 
15746           the remote flag of the vtable. Modified mono_object_new_specific(), 
15747           so now it checks the remote flag.
15748         * icall.c: Added a couple of internal methods, one for enabling instance 
15749           creation interception for a type, and one for creating objects bypassing
15750           the remote check.
15751
15752 2003-02-18  Martin Baulig  <martin@ximian.com>
15753
15754         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
15755         New interncall to get a method's metadata token.
15756
15757         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
15758         New interncall for the debugger.
15759
15760 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
15761
15762         * class.c (mono_class_setup_vtable): allocate supertype array
15763
15764 2003-02-18  Martin Baulig  <martin@ximian.com>
15765
15766         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
15767
15768 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15769
15770         * reflection.c:
15771         (assembly_name_to_aname): jump over unknown properties (i've found
15772         something like: 'type, assembly, version=xxx, custom=null, public...',
15773         so now will ignore custom=null and still get the rest of the values).
15774
15775 2003-02-17  Dick Porter  <dick@ximian.com>
15776
15777         * threads.c: Have Thread.Start() wait for a semaphore to signal
15778         that the thread has set up all its local data.  This fixes bug
15779         34323, where Abort() raced the new thread's TLS data.
15780
15781         Also removes the handle_store() call from start_wrapper, because
15782         threads are now always created suspended and there is no longer a
15783         race between the parent and child threads to store the info.
15784
15785 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
15786
15787         * image.c: explain the #- heap issue in a message, hopefully
15788         avoiding FAQs on mono-list.
15789
15790 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15791
15792         * icall.c:
15793         (GetEntryAssembly): if the domain has not invoked
15794         AppDomain.ExecuteAssembly yet, return the assembly of the default
15795         AppDomain.
15796
15797 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
15798
15799         * class.c (mono_ldtoken): make it work in dynamic assemblies.
15800
15801 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
15802
15803         * metadata.c, reflection.c: simple speedup to type hash
15804         and equals code.
15805
15806 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
15807
15808         * image.c, image.h, class.c, assembly.c: move module loading
15809         to MonoImage. When loading metadata, consider alignemnet from
15810         the start of metadata, not from the metadata address in memory.
15811
15812 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
15813
15814         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
15815         AssemblyBuilder objects. Factored out custom attribute creation into
15816         a separate function.
15817         (create_custom_attr): new function to create custom attributes.
15818
15819 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
15820
15821         * Makefile.am: Got tired of typing the full pathname to pedump.
15822         Until there is another option, am installing this.
15823
15824 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
15825
15826         * class.c (class_compute_field_layout): always set field->parent 
15827         (mono_ldtoken): use mono_defaults.fieldhandle_class;
15828
15829 2003-02-11  Dick Porter  <dick@ximian.com>
15830
15831         * threads-types.h:
15832         * monitor.c: Rewrote Monitor, making lock much faster and
15833         Pulse/Wait work as specified.  Also uses much fewer handles, and only
15834         creates them as needed.
15835
15836         * exception.c: Added SynchronizationLockException
15837
15838         * threads.c: Deleted old Monitor implementation.  The new one is
15839         in a new file.
15840
15841 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
15842
15843         * class.c: handled TypedReference type code. Set the correct size for
15844         class data. Setup interface_offsets for interface classes, too.
15845
15846 2003-02-09  Martin Baulig  <martin@ximian.com>
15847
15848         * debug-mono-symfile.h: Reflect latest symbol writer changes.
15849
15850 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
15851
15852         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
15853         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
15854         * object.c: fixed mono_object_get_virtual_method () for interfaces.
15855         * verify.c: check for code that runs after the end of the method.
15856
15857 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15858
15859         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
15860         "System.Math::Round2".
15861         * sysmath.h: Added Floor, Round and Round2 definitions.
15862         * sysmath.c: Modified certain functions that were not 100% compliant
15863         with MS.NET (math precision) and added the implementation of Floor,
15864         Round and Round2.
15865
15866 2003-02-07  Martin Baulig  <martin@ximian.com>
15867
15868         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
15869
15870 2003-02-07  Martin Baulig  <martin@ximian.com>
15871
15872         * debug-mono-symfile.c: Reflected latest symwriter changes.
15873         (mono_debug_create_mono_symbol_file): Removed.
15874         (mono_debug_open_mono_symbol_file): Take an argument which
15875         specifies whether to create a dynamic symbol file.
15876
15877 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
15878
15879         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
15880
15881 2003-02-05  Martin Baulig  <martin@ximian.com>
15882
15883         * reflection.c (mono_image_build_metadata): Make this public,
15884         protect it against being called multiple times, don't create
15885         resources and don't build the compressed metadata here.
15886         (mono_image_create_pefile): Do this here.
15887
15888         * icall.c
15889         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
15890
15891 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15892
15893         * socket-io.c: fixed bug #36322.
15894
15895 2003-02-06  Piers Haken <piersh@friskit.com>
15896
15897         * appdomain.[ch]:
15898         * class.h:
15899         * debug-mono-symfile.c:
15900         * icall.c:
15901         * loader.c:
15902         * mono-config.c:
15903         * monosn.c:
15904         * reflection.c:
15905         * socket-io.c: warning cleanups
15906
15907 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
15908
15909         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
15910         function. works like remoting invoke, but does a check for the Proxy first.
15911
15912 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
15913
15914         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
15915
15916 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
15917
15918         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
15919         array of pointers.
15920         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
15921         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
15922
15923         * object.c (mono_store_remote_field_new): used by the new jit
15924         instead of mono_store_remote_field
15925         (mono_load_remote_field_new): used by the new jit
15926         instead of mono_load_remote_field
15927
15928 2003-02-05  Patrik Torstensson
15929
15930         * appdomain.c: changed unload to take the domain id instead
15931         of domain
15932         
15933         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
15934
15935
15936 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15937
15938         * appdomain.c: don't look for assemblies in ApplicationBase if
15939         PrivateBinPathProbe is set.
15940
15941 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15942
15943         * object.c: make the first argument in main_args contain the absolute
15944         path to the assembly. Fixes bug #37511.
15945
15946 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15947
15948         * icall.c: get correct UTC offset for countries not using daylight
15949         time saving. Fixes bug #30030.
15950
15951 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15952
15953         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
15954         and 1 are the family).
15955
15956 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
15957
15958         * icall.c (ves_icall_InternalExecute): removed wrong assertion
15959
15960         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
15961
15962 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
15963
15964         * reflection.c: added support for SignatureHelper tokens, which is
15965         needed by the Calli opcode.
15966
15967         * reflection.h: track changes to SignatureHelper class.
15968
15969         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
15970
15971 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15972
15973         * appdomain.c: fixed loading assemblies from PrivateBinPath.
15974
15975 2003-02-03  Patrik Torstensson
15976         * appdomain.[c|h], domain.c : 
15977          - Added support for getting a domain via domain id
15978          - Support for setting and getting domain from System.AppDomain 
15979            (used in cross appdomain channel)
15980          - Added support for get/set for a MonoAppContext on a thread 
15981            (Context class in System.Runtime.Remoting.Contexts),
15982          - Removed hack in Get/SetData and ExecuteAssembly.
15983         
15984         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
15985         the managed world to get control when a proxy is created.
15986
15987         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
15988         
15989 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
15990
15991         * icall.c
15992         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15993         Populate the codebase field as well.
15994
15995 2003-02-02  Martin Baulig  <martin@ximian.com>
15996
15997         * debug-mono-symfile.c
15998         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
15999         (mono_debug_symfile_add_method): Allow interncalls.
16000
16001 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16002
16003         * icall.c: throw parse exception if strtod fails or the string is empty.
16004
16005 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16006
16007         * marshal.c: handle object type separately from defined
16008         class types.
16009
16010 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16011
16012         * marshal.c: handle NATIVE_LPSTR for strings when it's
16013         explicitly specified.
16014
16015 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16016
16017         * reflection.c, reflection.h, icall.c: setup the reflection
16018         handle cache for ModuleBuilders and AssemblyBuilders.
16019
16020 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16021
16022         * reflection.c (reflection_methodbuilder_to_mono_method): set
16023         pinvoke flag
16024
16025 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16026
16027         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16028
16029 2003-01-29  Dick Porter  <dick@ximian.com>
16030
16031         * threads.c: No need for the fake_thread kludge now that Thread
16032         doesn't run a class constructor
16033         
16034 2003-01-29  Dick Porter  <dick@ximian.com>
16035
16036         * threads.c: Use g_direct_hash instead of the rather bogus
16037         g_int_hash
16038
16039 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16040
16041         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16042         (fix pinvoke12.exe)
16043         (mono_marshal_get_struct_to_ptr): generate valid IL code
16044         (mono_marshal_get_ptr_to_struct): generate valid IL code
16045         (*): correctly set sig->pinvoke, we need to memdup the signature
16046         to do that
16047
16048 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16049
16050         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16051         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16052
16053 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16054
16055         * profiler.c: provide more callers information.
16056
16057 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16058
16059         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16060
16061         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16062
16063         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16064
16065 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16066
16067         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16068         exception instead of going into an infinite loop on dates which it 
16069         can't yet handle.
16070
16071         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16072         out-of-range exception if needed.
16073
16074         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16075         an implementation for an interface method and to override an inherited
16076         method at the same time. 
16077         Imagine a scenario when a virtual method is used to override a
16078         virtual abstract method in a parent class, and this same method 
16079         provides an implementation for an method inherited from an interface. 
16080         In this case, the interface resolution code will set im->slot, which 
16081         means that the virtual method override pass will skip this method 
16082         which means a pointer to the abstract method inherited from the parent
16083         will remain in the vtable of this non-abstract class.
16084
16085         * class.c: (mono_class_setup_vtable): continue search for a real 
16086         method if only an abstract method is found.     
16087
16088 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16089
16090         * reflection.c: add size to encoding for ByValStr and ByValArray
16091         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16092
16093 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16094
16095         * class.c (mono_class_setup_vtable): pass the override info as an
16096         argument.
16097
16098         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16099         correctly.
16100         
16101         * reflection.c (ensure_runtime_vtable); add support for method 
16102         overrides.
16103         
16104 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16105
16106         * reflection.c (resolution_scope_from_image): Hack to work to work with
16107         dynamic assemblies.
16108
16109         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16110         added a 'force_ref' argument to force this function to allways return 
16111         a TypeRef. This is needed by mono_image_get_memberref_token ().
16112         
16113 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16114
16115         * reflection.c (mono_image_get_type_info): interfaces really don't have
16116         a parent.
16117
16118         * reflection.c (mono_image_basic_init): fill out missing fields of
16119         image structure.
16120
16121         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16122         dynamic assemblies. This is required so dynamic assemblies show up in
16123         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16124         Type::GetType() etc. This is consistent with MS behaviour.
16125
16126         * image.c image.h reflection.c: add newly created classes to the name 
16127         cache so mono_class_get () will find them.      
16128
16129 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16130
16131         First part of changes to get IKVM.NET running under mono.
16132         
16133         * appdomain.h, appdomain.c: added new function 
16134         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16135         This function will call AppDomain::DoTypeResolve to do the actual work.
16136
16137         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16138         moved existing code dealing with dynamic tokens to a new function 
16139         called mono_reflection_lookup_dynamic_token (). This function will 
16140         raise TypeResolve events when appropriate. Since reflection.c is not 
16141         part of libmetadata, a new hook function called 
16142         mono_lookup_dynamic_token() is added to class.c which will call this.
16143
16144         * assembly.h assembly.c: make the invoke_load_hook function public,
16145         so it can be called for dynamic assemblies.
16146
16147         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16148
16149         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16150         type isn't found.
16151
16152         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16153         MonoGHashTable, since it contains pointers to objects which the GC 
16154         needs to track.
16155
16156         * assembly.c (search_loaded): remove unused variable.
16157         
16158 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16159
16160         * object.c: fixed issue exposed by gcc-generated IL programs
16161         that use RVA data for pointers.
16162
16163 2003-01-25  Martin Baulig  <martin@ximian.com>
16164
16165         * threads.c (start_wrapper): Moved the initialization of
16166         `start_func' above the mono_new_thread_init() call to which we
16167         pass it as argument.
16168
16169 2003-01-24  Martin Baulig  <martin@ximian.com>
16170
16171         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16172         the MonoThread pointer.
16173
16174 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16175
16176         * icall.c: Rename `PowImpl' to Pow.
16177
16178 2003-01-23  Dick Porter  <dick@ximian.com>
16179
16180         * threads.c (start_wrapper): Create a Thread object if needed, so
16181         the Main() thread can do the class initialisation in a subthread
16182         that has been set up to allow managed code execution.
16183
16184         Pass the thread ID instead of the MonoThread pointer to the thread
16185         start and attach callbacks.  This change is required, because the
16186         jit thread start callback must be called _before_ the Thread
16187         object can be created.
16188         
16189         (mono_thread_init): Removed much object creation code that is no
16190         longer needed.  No managed code is called from here now.
16191
16192         * object.c (mono_runtime_exec_managed_code): Create a subthread
16193         for Main, and call back to the runtime to use it.
16194         Set the exit code when Main exits.
16195
16196         * gc.c: Make sure domain finalisation happens in a subthread.
16197         Re-enable threaded GC, fixing bug 31333 (again).
16198
16199         * environment.c: System.Environment internall calls (so far just
16200         ExitCode is here, the others are still in icall.c)
16201
16202         * appdomain.c (mono_runtime_cleanup): All threads running managed
16203         code should have finished before mono_runtime_cleanup() is
16204         reached, so no need to clean up threads.
16205
16206 2003-01-22  Martin Baulig  <martin@ximian.com>
16207
16208         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16209         `gpointer func' arguments.      
16210         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16211         but added `MonoThread *thread' argument.
16212         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16213
16214         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16215         and pass it to the mono_thread_start_cb callback.
16216         (mono_install_thread_callbacks): New public function to install a
16217         set of callbacks which are set by the debugger.
16218         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16219
16220 2003-01-22  Martin Baulig  <martin@ximian.com>
16221
16222         * Makefile.am: Install debug-mono-symfile.h.
16223
16224 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16225
16226         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16227
16228 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16229
16230         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16231         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16232         (mono_array_class_get): correctly set access levels of arrays
16233
16234 2003-01-20      Patrik Torstensson
16235         * image.h (MonoAssemblyName): changed major, minor, build, revision
16236         from signed to unsigned.
16237
16238 2003-01-20  sean kasun <skasun@azstarnet.com>
16239
16240         * reflection.c (load_cattr_value): Now this handles
16241         MONO_TYPE_SZARRAY.  Fixes bug #35629
16242
16243 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16244
16245         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16246         integer value
16247
16248 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16249
16250         * decimal.c: fixed bug #26056.
16251
16252 2003-01-17  Martin Baulig  <martin@ximian.com>
16253
16254         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16255
16256 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16257
16258         * exception.[ch]:
16259         (mono_get_exception_type_initialization): new function.
16260
16261         * object.c: throw a TypeInitializationException when an exception is
16262         thrown invoking the class constructor.
16263
16264 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16265
16266         * reflection.c: fixed attribute reading.
16267
16268 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16269
16270         * icall.c:
16271         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16272         provided, look for the type in the calling assembly and then in
16273         mscorlib; if the assembly name is provided, only try that one.
16274
16275 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16276
16277         * object.c: register the vtable before there is a chance it's
16278         queried again recursively.
16279
16280 2003-01-13  Duncan Mak  <duncan@ximian.com>
16281
16282         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16283         gc-internal.h. 
16284         
16285 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16286
16287         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16288
16289 2003-01-11  Martin Baulig  <martin@ximian.com>
16290
16291         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16292         this to 20 for the release.
16293
16294 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16295
16296         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16297
16298         * loader.c (mono_method_get_marshal_info): bug fix
16299
16300         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16301         structures with explicit layout
16302
16303 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16304
16305         * profiler.c: made the output more readable (and sorted). 
16306         Added caller information for the allocation profiler.
16307
16308 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16309
16310         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16311
16312 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16313
16314         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16315         to get value types.
16316         
16317 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16318
16319         * object.c, profiler.h, profiler.c, profiler-private.h:
16320         Added object allocation profiler.
16321
16322 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16323
16324         * reflection.h, reflection.c: handle global methods.
16325         Compress blob entries.
16326
16327 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16328
16329         * marshal.c: fix compilation.
16330
16331 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16332
16333         * loader.c (mono_method_get_marshal_info): impl.
16334
16335         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16336
16337 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16338
16339         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16340         for reference types.
16341
16342 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16343
16344         * loader.c: fixed off by one error in loaded parameter names.
16345
16346 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16347
16348         * marshal.c (mono_marshal_get_icall_wrapper): like
16349         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16350         instead of a MonoMethod.
16351
16352 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16353
16354         * decimal.c: fixed bug #36537.
16355
16356 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16357
16358         * marshal.c: throw a missing method exception if a
16359         P/Invoke method is not found.
16360
16361 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16362
16363         * icall.c: allow a null this for constructors.
16364
16365 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16366
16367         * icall.c: raise the proper exceptions if the arguments to the
16368         internal Invoke are incorrect.
16369
16370 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16371
16372         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16373
16374 2003-01-03  Martin Baulig  <martin@ximian.com>
16375
16376         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16377
16378 2002-12-31  Martin Baulig  <martin@ximian.com>
16379
16380         * debug-mono-symfile.c: Completely rewrote the type section.
16381         Instead of using individual malloc()ed fields, we use one big
16382         continuous memory area and offsets into this area.
16383         See the comments in the source code for details.
16384
16385 2002-12-30  Martin Baulig  <martin@ximian.com>
16386
16387         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16388
16389 2002-12-30  Martin Baulig  <martin@ximian.com>
16390
16391         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16392         line number table in this data blob instead of using an external
16393         pointer.
16394
16395 2002-12-28  Martin Baulig  <martin@ximian.com>
16396
16397         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16398
16399 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16400
16401         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16402         as a boxed return type.
16403
16404 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16405
16406         * appdomain.c
16407         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16408         g_build_filename to properly get separators on the filename created.
16409
16410         * object.h: Small change, introduce MonoMarshalByRefObject to
16411         track the layout of that structure in the C# universe as we make
16412         changes there.
16413
16414 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16415
16416         * object.c: removed assert to allow static fields on interfaces.
16417         * loader.c: a TypeSpec may be used for any type, not just arrays.
16418
16419 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16420
16421         * class.c, class.h: added mono_class_array_element_size ().
16422         Ignore static methods in interfaces.
16423
16424 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16425
16426         * threads.c: fixed the build under cygwin.
16427
16428 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16429
16430         * reflection.c: handle nullref constants. Allocate keys for
16431         reflection handles with the GC.
16432
16433 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16434
16435         * threads.c, threads.h: added mono_thread_get_abort_signal()
16436         to get a suitable signal for thread abort.
16437
16438 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16439
16440         * metadata.c: fix handling of ExportedType table.
16441
16442 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16443
16444         * icall.c: added WriteWindowsDebugString internal call.
16445
16446 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16447
16448         * reflection.h: added fields to match C# implementation.
16449
16450 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16451
16452         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16453
16454 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16455
16456         * gc.h, gc-internal.h: Rename header for GC internal calls to
16457         gc-internal.h from gc.h as to not clash with Boehm GC having its
16458         header installed as <gc.h> in outside include paths.
16459         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16460         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16461
16462 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16463
16464         * icall.c: assign minor, build and revision in FillName.
16465
16466 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16467
16468         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16469         Added support for running code generated by Reflection.Emit.
16470
16471 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16472
16473         * appdomain.c: check for NULL argument in LoadFrom.
16474
16475 2002-12-10  Dick Porter  <dick@ximian.com>
16476
16477         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16478
16479 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16480
16481         * appdomain.c: fix buglet when building exe file name.  Handle full
16482         assembly name (needed after latest changes to AssemblyName).
16483         * image.c:
16484         (mono_image_close): free some hashtables.
16485
16486 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16487
16488         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16489         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16490         on some systems (redhat 7.3) 
16491
16492 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16493
16494         * threads.c: delete the critical section of a sync block,
16495         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16496
16497 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16498
16499         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16500
16501 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16502
16503         * appdomain.[ch]: handle the assembly preload event to try loading the
16504         assemblies using the paths we have in the current domain.
16505
16506         * assembly.[ch]: created an assembly preload hook that is called to try
16507         loading the assembly by other means that the ones provided here.
16508
16509         * domain.c: initialize the domain search path.
16510
16511         From now on, assemblies (TODO: except corlib and System) are loaded
16512         according to these rules when using mono_assembly_load ():
16513
16514                 1. It tries to load the assembly from the ApplicationBase
16515                 of the current domain appending .dll and .exe (TODO: have to
16516                 try loading from name/name.dll and name/name.exe).
16517
16518                 2. It tries the search path specified in PrivateBinPath for the
16519                 current domain (if any).
16520
16521                 3. Previous behavior.
16522
16523 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16524
16525         * icall.c: implemented GetInterfaceMap() related icall.
16526         * domain.c, loader.h: load MethodInfo in mono_defaults.
16527
16528 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16529
16530         * gc.c: disable the finalizer thread for now, untill all the issues
16531         with it are resolved.
16532
16533 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16534
16535         * string-icalls.c: handle embedded nulls in string ctor when the
16536         length is specified.
16537
16538 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16539
16540         * class.c: look for explicit interface implementation in parent
16541         classes, too.
16542
16543 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16544
16545         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16546
16547 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16548
16549         * gc.c: protect handles with a critical section.
16550
16551 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16552
16553         * icall.c:
16554         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16555         parameters. If no assembly specified, try getting the type from all
16556         the assemblies in the current domain, else, load the assembly and get
16557         the type from it.
16558
16559 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16560
16561         * marshal.c: applied patch from Aleksey Demakov that fixes
16562         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16563
16564 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16565
16566         * icall.c: fixed get_location.
16567
16568 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16569
16570         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16571         declarations to make it work with older gcc. 
16572
16573         * loader.c (mono_get_method): set signature->pinvoke for native calls
16574
16575 2002-11-20  Dick Porter  <dick@ximian.com>
16576
16577         * threads.c (mono_thread_init): Set the main thread's handle
16578
16579 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16580
16581         * gc.c: allow compilation without GC support. Changed to match the
16582         mono coding style.
16583
16584 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16585
16586         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16587
16588 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16589
16590         * reflection.c: set a public key token on the core assemblies.
16591
16592 2002-11-18  Dick Porter  <dick@ximian.com>
16593
16594         * threads.c: Split out some thread initialisation so that other
16595         files can set the start callback function.
16596
16597         * gc.c: Run finalisers in a separate thread, to avoid stack
16598         overflow.  Fixes bug 31333.
16599
16600         * appdomain.c: Set up GC finalisation thread.
16601
16602         * reflection.c: 
16603         * object.c: 
16604         * domain.c: Use gc.h macros for GC_malloc
16605         
16606 2002-11-15  Dick Porter  <dick@ximian.com>
16607
16608         * threadpool.c: 
16609         * threads.c:
16610         * appdomain.c: Removed mono_runtime_init_with_attach(),
16611         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16612         merging the extra parameter with the existing function.  Removed
16613         unneeded code in mono_thread_attach().
16614
16615 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16616
16617         * image.c (mono_image_loaded_by_guid): a method to get loaded
16618         images by guid. 
16619         (load_metadata_ptrs): we store the guid as string.
16620
16621 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16622
16623         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16624
16625         * metadata.c (mono_guid_to_string): imported method form Zoltan
16626         Varga (slightly modified)
16627
16628         * assembly.c (mono_assembly_open): load precompiled code
16629
16630         * loader.h (MonoMethod): we store the method token for use in the
16631         aot compiler. 
16632
16633 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16634
16635         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
16636         the hook function called when an assembly is loaded.
16637         
16638         * domain.c: Modified file.
16639         (mono_domain_assembly_load): removed hash table insertion of assemblies.
16640
16641         Fixes bug #33196.
16642
16643 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
16644
16645         * reflection.c: Map PEFileKind to the value expected by the WinNT
16646         image loader. 
16647
16648 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16649
16650         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
16651         Read until the buffer is filled completely.
16652
16653 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16654
16655         * icall.c: implemented MonoType.InternalGetEvent ().
16656
16657 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16658
16659         * appdomain.c: implemented InitAppDomainSetup. Delayed
16660         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
16661         the entry_assembly.
16662
16663         * assembly.c: base_dir is now an absolute path ending with
16664         G_DIR_SEPARATOR.
16665
16666         * icall.c: modified get_location according to the above changes.
16667
16668         * object.c: init AppDomain.SetupInformation for the default domain after
16669         we have the entry assembly.
16670
16671         * domain.c: when unloading a domain, setup = NULL.
16672
16673 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
16674
16675         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
16676
16677 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
16678
16679         * object.h, object.c: introduced mono_object_get_virtual_method ()
16680         to lookup the method invoked on an object when a callvirt is done on
16681         a method.
16682         * icall.c: make MethodInfo::Invoke() always do a virtual call.
16683
16684 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16685
16686         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
16687         current domain when loaded an assembly and failed to load it.
16688
16689         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
16690
16691 2002-10-31  Dick Porter  <dick@ximian.com>
16692
16693         * icall.c: 
16694         * file-io.h: 
16695         * file-io.c: Return the error status in a parameter, as the
16696         GetLastError() value has long since been blown away if we try and
16697         look it up in a subsequent internal call invocation.  Delete the
16698         GetLastError() internal call, because it's useless.
16699
16700 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
16701
16702         * class.[ch]: added cast_class to fix bug 29517
16703
16704 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
16705
16706         * marshal.c: create valid IL code in the filter clause:
16707         the new JIT is less forgiving:-)
16708
16709 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16710
16711         * icall.c: removed get_property internal call.
16712
16713 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
16714
16715         * appdomain.h domain.c: Added an ID to appdomains.
16716         
16717         * threads.c threads.h icall.c: Implement icall
16718         Thread:GetDomainID(), and remove unused icall 
16719         CurrentThreadDomain_internal.
16720
16721 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16722
16723         * icall.c: Don't recurse through the base types in GetConstructor.
16724         Fixes bug #32063. 
16725
16726 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16727
16728         * mempool.h, mempool.c: added mono_mempool_empty() and
16729         mono_mempool_stats().
16730
16731 2002-10-23  Dick Porter  <dick@ximian.com>
16732
16733         * file-io.c: 
16734         * file-io.h: 
16735         * icall.c: Added MonoIO.GetFileType internal call
16736
16737 2002-10-17  Dick Porter  <dick@ximian.com>
16738
16739         * appdomain.c (mono_runtime_cleanup): Don't signal the async
16740         delegate semaphore before waiting for all threads to finish,
16741         because new threads can also call async delegates.  Fixes bug
16742         32004.
16743
16744         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
16745         of 3 seconds, in case another async job is queued.  (This part is
16746         needed because the bug fix reintroduced the 3s exit lag.)  This
16747         makes the mono_runtime_shutdown flag superfluous.
16748
16749 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
16750
16751         * reflection.c: include ehader size in method section headers.
16752         Really check for suplicated modules entries.
16753
16754 2002-10-17  Martin Baulig  <martin@gnome.org>
16755
16756         * debug-mono-symfile.c: Added back support for locals.
16757
16758 2002-10-14  Martin Baulig  <martin@gnome.org>
16759
16760         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
16761         MONO_TYPE_VOID.
16762
16763 2002-10-14  Martin Baulig  <martin@gnome.org>
16764
16765         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
16766         mono_class_get() instead of looking in the class cache. 
16767
16768 2002-10-13  Martin Baulig  <martin@gnome.org>
16769
16770         * debug-mono-symfile.c: Set version number to 28, include the
16771         signature in method names.
16772
16773 2002-10-13  Martin Baulig  <martin@gnome.org>
16774
16775         * debug-mono-symfile.h: Set version number to 27.
16776
16777 2002-10-11  Martin Baulig  <martin@gnome.org>
16778
16779         * gc.c: Don't register/unregister NULL pointers as disappearing links.
16780
16781 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16782
16783         * metadata.c, metadata.h: added helper function to allocate signatures.
16784
16785 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16786
16787         * icall.c: added internal call to get the location of machine.config.
16788
16789 2002-10-08  Martin Baulig  <martin@gnome.org>
16790
16791         * debug-mono-symfile.c: Ignore classes with a pending init for the
16792         moment.
16793
16794 2002-10-03  Dick Porter  <dick@ximian.com>
16795
16796         * threads.c: Freebsd pthread_t is a pointer
16797
16798 2002-10-03  Dick Porter  <dick@ximian.com>
16799
16800         * socket-io.c: Implemented GetHostName_internal
16801
16802 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16803
16804         * mono-config.c:
16805         (mono_config_parse_file): don't leak the text.
16806
16807 2002-10-02  Martin Baulig  <martin@gnome.org>
16808
16809         * debug-mono-symfile.c: Added support for methods.
16810
16811 2002-10-01  Martin Baulig  <martin@gnome.org>
16812
16813         * debug-mono-symfile.c: Don't emit methods and line numbers for
16814         the dynamic symbol file, just write the type table.  We can easily
16815         have an external helper program which creates a symbol file for an
16816         IL file.        
16817
16818 2002-10-01  Dick Porter  <dick@ximian.com>
16819
16820         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
16821         Only add the handle to the cleanup array when we're about to
16822         launch the thread.  Bug 31425 deadlocked when the test was run on
16823         mono under w32.
16824
16825 2002-10-01  Martin Baulig  <martin@gnome.org>
16826
16827         * debug-mono-symfile.c: Added support for properties.
16828
16829 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16830
16831         * reflection.c: unaligned store fix from Mark Crichton
16832         <crichton@gimp.org>.
16833
16834 2002-09-27  Martin Baulig  <martin@gnome.org>
16835
16836         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
16837         New interncall.
16838
16839 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
16840
16841         * assembly.h, assembly.c: use a sane API to hook into the assembly
16842         loading process instead of a useless special-purpouse hack
16843         (ngen needs a hook, too, for example).
16844
16845 2002-09-27  Dick Porter  <dick@ximian.com>
16846
16847         * threads.c (mono_thread_init): Call GetCurrentProcess() so
16848         io-layer can set up some process handle info.  Not needed on w32,
16849         but doesn't hurt either.
16850
16851         * process.c: Pass the program name in the second parameter to
16852         CreateProcess, so the path is searched.  Include the working
16853         directory. Implemented process name, process enumeration, and some
16854         process detail internal calls.
16855         
16856         * icall.c: Added internal calls for process lookup, and some
16857         process details
16858
16859 2002-09-26  Martin Baulig  <martin@gnome.org>
16860
16861         * assembly.c (mono_install_open_assembly_hook): New global
16862         function to install a function to be invoked each time a new
16863         assembly is loaded.
16864         (mono_assembly_open): Run this callback function if set.
16865
16866         * debug-mono-symfile.c: Put back line numbers for the dynamic
16867         symbol file and also record the .il file as source file.  This
16868         allows us to install the temporary symbol file as `file.dbg' just
16869         like a compiler-generated one.
16870
16871 2002-09-26  Nick Zigarovich <nick@chemlab.org>
16872
16873         * Corrected typo in gc.c (BOHEM vs BOEHM).
16874
16875 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16876
16877         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
16878         GetProperties. Also avoid calling g_slist_length in GetProperties and
16879         GetMethods.
16880
16881 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16882
16883         * reflection.c: avoid unaligned stores (bug spotted by
16884         Mark Crichton  <crichton@gimp.org>).
16885
16886 2002-09-25  Martin Baulig  <martin@gnome.org>
16887
16888         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
16889         instead of guint64 for addresses and added prologue/epilogue info.
16890
16891 2002-09-25  Martin Baulig  <martin@gnome.org>
16892
16893         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
16894         store line number info.  For the dynamic symbol file, we only need
16895         to provide the JIT generated dynamic line number info for the dynamic
16896         symbol file.
16897
16898 2002-09-25  Martin Baulig  <martin@gnome.org>
16899
16900         * debug-mono-symfile.h: Incremented version number.
16901
16902 2002-09-24  Martin Baulig  <martin@gnome.org>
16903
16904         * class.c (mono_debugger_class_init_func): New global function
16905         pointer variable.
16906         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
16907         call it.
16908
16909         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
16910         function.  This is called via the mono_debugger_class_init_func
16911         hook to add all types to the dynamic type table.
16912         (ves_icall_MonoDebugger_GetType): New interncall to get a class
16913         from its metadata token.
16914
16915         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
16916         New interncall for the debugger.
16917
16918 2002-09-24  Nick Drochak <ndrochak@gol.com>
16919
16920         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
16921         before using it in case it is null.
16922         
16923 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16924
16925         * metadata.c: allow custom modifiers in local var signatures
16926         (bug spotted by Zoltan Varga).
16927
16928 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
16929
16930         * class.c: deal with the <Module> class that may have a NULL vtable.
16931         Eliminate warnings.
16932
16933 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16934
16935         * image.c, image.h: more strong name helpers.
16936         * monosn.c: more work: convert pem keys to cryptoapi format.
16937
16938 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16939
16940         * string-icalls.c: speedup IndexOf.
16941
16942 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16943
16944         * icall.c: updates from Zoltan.2.Varga@nokia.com.
16945
16946 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16947
16948         * icall.c: cleanup: use mono_object_domain ().
16949
16950 2002-09-23  Martin Baulig  <martin@gnome.org>
16951
16952         * debug-mono-symfile.c: Improved type support.
16953
16954 2002-09-22  Martin Baulig  <martin@gnome.org>
16955
16956         * debug-mono-symfile.c: Added support for reference types and strings.
16957
16958 2002-09-22  Martin Baulig  <martin@gnome.org>
16959
16960         * debug-mono-symfile.c: Started to work on the type table.
16961
16962 2002-09-21  Martin Baulig  <martin@gnome.org>
16963
16964         * debug-mono-symfile.c: Largely reworked the symbol table format.
16965         The symbol table is now incrementally updated each time a new
16966         method is added.  We're now also using our own magic and version
16967         so that you don't need to recompile all your classes if the
16968         dynamic table changes.
16969         (mono_debug_update_mono_symbol_file): Removed.
16970         (mono_debug_symfile_add_method): New function to add a method.
16971
16972 2002-09-21  Martin Baulig  <martin@gnome.org>
16973
16974         * icall.c
16975         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
16976         New interncall.
16977
16978         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
16979         New interncall to get a method from its metadata token.
16980
16981 2002-09-21  Martin Baulig  <martin@gnome.org>
16982
16983         * debug-mono-symfile.c: Create type table.
16984
16985 2002-09-20  Martin Baulig  <martin@gnome.org>
16986
16987         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
16988
16989 2002-09-20  Martin Baulig  <martin@gnome.org>
16990
16991         * debug-mono-symfile.c: Provide information about params and locals.
16992
16993 2002-09-20  Martin Baulig  <martin@gnome.org>
16994
16995         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
16996         New interncall.
16997
16998         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
16999         interncall to get a method from its metadata token.
17000
17001 2002-09-20  Martin Baulig  <martin@gnome.org>
17002
17003         * debug-mono-symfile.c: Added a few checks for method->header
17004         being non-NULL.  This should never happen, but for the moment
17005         let's use a g_warning() rather than a g_assert().
17006
17007 2002-09-19  Mark Crichton  <crichton@gimp.org>
17008
17009         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17010         even if support for it isn't present.  Added an #ifdef to fix this.
17011
17012         * socket-io.c: Added checks back for Solaris support.
17013
17014 2002-09-19  Martin Baulig  <martin@gnome.org>
17015
17016         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17017         changes in the symbol file format.
17018
17019 2002-09-18  Martin Baulig  <martin@gnome.org>
17020
17021         * debug-mono-symfile.c: Set version number to 21.
17022
17023 2002-09-18  Dick Porter  <dick@ximian.com>
17024
17025         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17026         on netbsd.  Fixes bug 30051.
17027
17028 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17029
17030         * reflection.c:
17031         (set_version_from_string): little fix.
17032
17033 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17034
17035         * monosn.c, Makefile.am: added strong name utility.
17036         * reflection.h, reflection.c: implemented delayed signing,
17037         locale, version and hash id assembly attributes.
17038
17039 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17040
17041         * loader.c, metadata.c: load param attributes in signatures.
17042
17043 2002-09-16  Martin Baulig  <martin@gnome.org>
17044
17045         * debug-mono-symfile.c: Added string table with all method names.
17046
17047 2002-09-14  Martin Baulig  <martin@gnome.org>
17048
17049         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17050         fast method lookup.
17051
17052 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17053
17054         * reflection.c: record the public key token of referenced assemblies.
17055
17056 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17057
17058         * image.c, image.h: added functions to get the strong name and the
17059         public key of an assembly.
17060         * pedump.c: use them.
17061
17062 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17063
17064         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17065
17066 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17067
17068         * marshal.c (mono_marshal_get_managed_wrapper): Added
17069         MONO_TYPE_BOOLEAN 
17070
17071 2002-09-11  Martin Baulig  <martin@gnome.org>
17072
17073         * gc.c: Call GC_unregister_disappearing_link() on all links when
17074         finalizing them, this is necessary to aviod a crash in boehm's
17075         finalize handler.
17076
17077 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17078
17079         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17080         nick@chemlab.org.
17081
17082 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17083
17084         * icall.c: implemented MonoType::Module.
17085         * reflection.c, reflection.h: mono_module_get_object () from
17086         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17087
17088 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17089
17090         * icall.c: ignore overridden methods in GetMethods ().
17091         Fix for FieldInfo::SetValue().
17092         * object.c: handle float/double in runtime invoke.
17093
17094 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17095
17096         * object.c: allow a constructor to be called again on an object.
17097
17098 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17099
17100         * class.h, class.c: move field layout code to it's own function and
17101         export it. Get an interface id earlier. Move fields in MonoClass
17102         so they are more cache friendly and align the bitfields.
17103         * loader.c: temporary handle get_param_names() for a runtime method.
17104         * reflection.c, reflection.h: more code to handle runtime creation of
17105         types.
17106
17107 2002-09-09  Martin Baulig  <martin@gnome.org>
17108
17109         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17110         signature with the pinvoke field being set for the actual call.
17111
17112 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17113
17114         * icall.c: removed some unused icalls. Start of map of glib charsets
17115         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17116
17117 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17118
17119         * debug-helpers.c: break infinite loop (found and fixed by
17120         Holger Arnold <harnold@gmx.de>).
17121
17122 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17123
17124         * icall.c: target may be null in create_delegate.
17125
17126 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17127
17128         * marshal.c: handle a boolean return type.
17129
17130 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17131
17132         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17133
17134 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17135
17136         * gc.c: fix weakreferences.
17137
17138 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17139
17140         * icall.c: added icall to get default codepage.
17141
17142 2002-09-03  Dick Porter  <dick@ximian.com>
17143
17144         * threads.h: 
17145         * threads.c: Use MonoThread instead of MonoObject where
17146         apropriate.
17147
17148         Store running thread objects in a hash table, so that we have all
17149         the info to hand when waiting for them to finish
17150         (means we don't need OpenThread() any more, so mingw builds should
17151         be fully functional again.)
17152
17153         * verify.c:
17154         * object.h: Added thread ID to MonoThread
17155
17156 2002-09-03  Martin Baulig  <martin@gnome.org>
17157
17158         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17159
17160 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17161
17162         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17163
17164 2002-09-03  Martin Baulig  <martin@gnome.org>
17165
17166         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17167         argument to store the end address of the disassembled instruction.
17168
17169         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17170         here from debug-symfile.h.
17171         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17172         JIT into this struct.
17173         (MonoSymbolFile): Added `char *image_file' field.
17174         (MonoDebugGetMethodFunc): Removed.
17175         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17176         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17177         (mono_debug_find_method): New method.
17178
17179         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17180         create a full symbol file.
17181         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17182         and static symbol files.
17183         (mono_debug_find_method): The symbol file keeps an internal method hash,
17184         call this to get a MonoDebugMethodInfo from a MonoMethod.
17185
17186         * debug-symfile.[ch]: Removed.
17187
17188 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17189
17190         * image.c (do_mono_image_open): Remove linker version check.
17191
17192 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17193
17194         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17195         wrappers for instance methods.
17196         
17197 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17198
17199         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17200
17201 2002-08-28  Dick Porter  <dick@ximian.com>
17202
17203         * Makefile.am: Export HOST_CC for w32 builds
17204
17205 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17206
17207         * file-io.c process.c: MonoString are null terminated, no
17208         need for mono_string_to_utf16() anymore.
17209
17210 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17211
17212         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17213
17214 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17215
17216         * icall.c, reflection.h: speedup System.MonoType.
17217
17218 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17219
17220         * reflection.c: allow null as the value of a string argument in
17221         custom attributes constructors.
17222
17223 2002-08-27  Martin Baulig  <martin@gnome.org>
17224
17225         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17226         `trampoline_address' field.
17227
17228 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17229
17230         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17231         check (fixes bug #29486) 
17232
17233 2002-08-27  Martin Baulig  <martin@gnome.org>
17234
17235         * debug-mono-symfile.c: Changed the file format in a way that allows us
17236         open it read-only and to use a specially malloced area for all the
17237         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17238         debugging IL code and there is no MCS generated symbol file for it.
17239
17240 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17241
17242         * object.c: added a define for a good string and array
17243         creation speedup (not enabled by default because we need to deal with
17244         the synch stuff).
17245
17246 2002-08-26  Martin Baulig  <martin@gnome.org>
17247
17248         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17249         function to create a dynamic symbol file.  This is used by the
17250         debugger to create a symbol file for IL code on-the-fly.
17251
17252 2002-08-26  Martin Baulig  <martin@gnome.org>
17253
17254         * loader.c (mono_lookup_pinvoke_call): Include the error message
17255         from g_module_error() in the error message.
17256
17257 2002-08-24  Martin Baulig  <martin@gnome.org>
17258
17259         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17260         function to update the symbol file.  The symbol file is mmap()ed
17261         writable, but private.  This allows us to install the symbol file
17262         together with the assembly.
17263
17264 2002-08-24  Martin Baulig  <martin@gnome.org>
17265
17266         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17267         but they can read the new symbol file format which mcs is now creating.
17268
17269         * debug-symfile.c (mono_debug_find_source_location): Moved to
17270         debug-mono-symfile.c; this is now operating on the new symbol file.
17271
17272 2002-08-23  Martin Baulig  <martin@gnome.org>
17273
17274         * debug-helpers.c (mono_method_desc_from_method): New function to get
17275         a MonoMethodDesc from a MonoMethod.
17276
17277 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17278
17279         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17280         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17281
17282 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17283
17284         * string-icalls.[ch]: make helper methods static.
17285
17286 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17287
17288         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17289         types to it and to SetValueInternal.
17290
17291         * object.c: Moved handle_enum label to its proper place. This was the
17292         f... bug! ;-)
17293
17294         This time i compiled mcs and gtk-sharp and they both work.
17295
17296 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17297
17298         * icall.c: reverted partially my previous patch until 
17299         object.c:set_value handles enums correcly.
17300
17301 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17302
17303         * icall.c:
17304         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17305         (ves_icall_System_Environment_get_MachineName): removed warning when
17306         compiling under cygwin.
17307
17308 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17309
17310         * object.c: fixed field_get_value() for reference types.
17311
17312 2002-08-22  Dick Porter  <dick@ximian.com>
17313
17314         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17315         Don't free a buffer while it's still needed.  Patch from Jonathan
17316         Liger <Jonathan.liger@wanadoo.fr>
17317
17318 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17319
17320         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17321         internal call.
17322
17323 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17324
17325         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17326         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17327
17328         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17329         we call unmanaged code which throws exceptions.
17330
17331 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17332
17333         * appdomain.h: added per-domain entry_assembly.
17334         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17335         arguments.
17336         * icall.c: Assembly::GetEntryAssembly icall.
17337         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17338         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17339
17340 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17341
17342         * appdomain.h, gc.c: added mono_domain_finalize ().
17343
17344 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17345
17346         * object.c:
17347         (mono_print_unhandled_exception): changed g_warning by g_printerr
17348         because g_log has a 1024 characters limit (yeah, i got a big stack
17349         trace). Don't print exception name, that should be in ToString 
17350         returned string.
17351
17352 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17353
17354         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17355         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17356
17357 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17358
17359         * object.c:
17360         (mono_print_unhandled_exception): after previous commit, i realized
17361         that MS calls ToString on the exception. I changed this function to
17362         do that. This way we get stack_trace for free.
17363
17364 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17365
17366         * object.c:
17367         (mono_print_unhandled_exception): invoke Message property instead of
17368         getting 'message' field from Exception. Don't allocate memory for
17369         'trace' and 'message' if not needed.
17370
17371 2002-08-18  Dick Porter  <dick@ximian.com>
17372
17373         * unicode.c: Fix asserts to match Encoder.cs checks
17374
17375 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17376
17377         * marshal.c: fix unaligned store issue and a few wrong
17378         opcode argument types.
17379
17380 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17381
17382         * icall.c: added GetUninitializedObjectInternal internal call.
17383
17384 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17385
17386         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17387         to the right domain.
17388
17389 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17390
17391         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17392
17393         * class.c (class_compute_field_layout): set blittable to false for Strings
17394
17395         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17396
17397 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17398
17399         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17400         first chunk of code to create types at runtime. Code to
17401         handle ReflectedType/DeclaringType. Make reflection handles
17402         domain specific.
17403
17404 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17405
17406         * class.c: set correct name in arrays.
17407
17408 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17409
17410         * appdomain.c (mono_domain_transfer_object): make it work with
17411         valuetypes. bug fixes.
17412
17413 2002-08-12  Dick Porter  <dick@ximian.com>
17414
17415         * object.h: Rename some parameters to avoid c++ keywords (Patch
17416         from Joseph Wenninger <kde@jowenn.at>)
17417
17418 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17419
17420         * icall.c: added icall to implement Assembly.GetFile*.
17421
17422 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17423
17424         * reflection.h, reflection.c: code to embed managed resources.
17425
17426 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17427
17428         * class.c: move all the type size stuff into
17429         class_compute_field_layout().
17430
17431 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17432
17433         * class.c: ensure enums have always the correct instance size.
17434         * unicode.c: remove wrong assert.
17435
17436 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17437
17438         * assembly.c: fix mem corruption issue.
17439         * image.h, image.c: added mono_image_get_resource () to access
17440         managed resources.
17441         * icall.c: implemented Assembly.EntryPoint property and some
17442         Managed Resources related internalcalls.
17443
17444
17445 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17446
17447         * image.c, image.h: impemented mono_image_get_entry_point ().
17448         * appdomain.c: use mono_image_get_entry_point.
17449
17450 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17451
17452         * reflection.c: support the object type argument when loading
17453         custom attributes.
17454
17455 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17456
17457         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17458         String as return type.
17459
17460 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17461
17462         * reflection.c: fix encoding of named args for custom attrs to match
17463         the ms implementation. Read them back when instantiating custom
17464         attributes.
17465
17466 2002-08-02  Radek Doulik  <rodo@ximian.com>
17467
17468         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17469         by Dietmar as quick fix
17470         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17471         16 as stack size, used on more places as quick fix before Dietmar
17472         will fix it properly
17473
17474 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17475
17476         * object.h, object.c: added accessors for fields and properties.
17477
17478 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17479
17480         * class.c, class.h: made mono_class_get_field_from_name ()
17481         loop on parent types.
17482         Added mono_class_get_property_from_name ().
17483
17484 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17485
17486         * class.c, class.h: move the code to setup the type vtable in its own
17487         function so that it can be reused also for types created at runtime.
17488         Eliminate the "class" identifier from the header file.
17489         * reflection.c: setup the vtable for enums so that we can create
17490         objects for use in SetConstant ().
17491
17492 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17493
17494         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17495         instead of the delegate itself as this pointer (bug #28383)
17496
17497 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17498
17499         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17500         conversions.
17501
17502 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17503
17504         * loader.c: don't set the pinvoke bit on icalls.
17505
17506 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17507
17508         * debug-helpers.c (mono_method_full_name): only print a number to
17509         indicate wrapper type (so that the output is more readable in traces).
17510
17511 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17512
17513         * class.c (mono_class_init): include method override patch from Paolo
17514
17515 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17516
17517         * icall.c: fixed GetTypeCode().
17518
17519 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17520
17521         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17522         use real delegate invoke function to make it work with multicast
17523         delegates (fix bug# 28291).
17524
17525 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17526
17527         * object.c: load constant strings.
17528
17529 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17530
17531         * reflection.c: no magic numbers.
17532         * tabledefs.h: security action enum.
17533
17534 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17535
17536         * assembly.c: fix possible memory corruption.
17537
17538 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17539
17540         * reflection.h, reflection.c: added support for linking resources.
17541         * verify.c: check we have an updated corlib.
17542
17543 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17544
17545         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17546         string arrays.
17547         (mono_marshal_string_array): null terminate unmanaged string arrays.
17548         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17549
17550 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17551
17552         * icall.c: Type.GetType () can now return also types from the
17553         calling assembly.
17554
17555 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17556
17557         * loader.h, loader.c: stack walking support.
17558         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17559         GetCallingAssembly.
17560
17561 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17562
17563         * marshal.c: added optimisations for blittable types 
17564
17565         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17566         (mono_class_setup_mono_type): set blittable attribute for single
17567         and double.
17568
17569         * marshal.c (mono_string_utf8_to_builder): impl.
17570         (mono_string_builder_to_utf8): impl.
17571         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17572
17573 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17574
17575         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17576         (mono_marshal_get_managed_wrapper): impl. byref types
17577
17578 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17579
17580         * icall.c:
17581         (search_method): don't display debug message. 
17582
17583 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17584
17585         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17586
17587 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17588
17589         * appdomain.c: set the missing filename when throwing exception.
17590
17591 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17592
17593         * metadata.c (mono_type_size): code cleanup
17594         (mono_type_stack_size): removed some test code
17595
17596 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17597
17598         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17599         mono_get_exception_file_not_found now.
17600
17601         * exception.c (mono_exception_from_name_two_strings): New version
17602         that will call a constructor with two string arguments. 
17603         (mono_get_exception_file_not_found): New helper routine, used to
17604         report file-not-found errors.
17605
17606 2002-07-20  Dick Porter  <dick@ximian.com>
17607
17608         * process.h:
17609         * process.c: Pass file handles to CreateProcess
17610         
17611         * icall.c:
17612         * file-io.h:
17613         * file-io.c: Implemented CreatePipe
17614
17615 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17616
17617         * metadata.c (mono_get_param_info): set alignment for value types
17618
17619 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17620
17621         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17622         Constify mono_domain_assembly_open().
17623         * loader.c: handle null namespace in icalls.
17624
17625 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17626
17627         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17628         (emit_str_to_ptr_conv): marshal object as structs
17629
17630         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17631
17632         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17633
17634 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17635
17636         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
17637         (mono_marshal_get_native_wrapper): we an now return value types
17638
17639 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17640
17641         * verify.c: more checks implemented.
17642
17643 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
17644
17645         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
17646         (fix bug #27695)
17647         (mono_marshal_get_native_wrapper): allow byref arguments
17648         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
17649         impl. PtrToStringXXX methods
17650         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
17651         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
17652         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
17653         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
17654         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
17655
17656 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17657
17658         * reflection.c: fix buglet in parsing an assembly name.
17659
17660 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17661
17662         * marshal.c (emit_ptr_to_str_conv): first impl.
17663
17664 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17665
17666         * object.c, class.h: cache the vtable in the class as suggested by
17667         vargaz@freemail.hu (Zoltan Varga).
17668
17669 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17670
17671         * class.h, loader.c: added mono_field_from_token().
17672         * verify.c: first cut of type checking code.
17673
17674 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
17675
17676         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
17677
17678 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
17679
17680         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
17681         (fix bug #27782)
17682         (mono_marshal_get_remoting_invoke): impl.
17683         (mono_delegate_begin_invoke): impl.
17684         (mono_mb_emit_save_args): impl.
17685         (mono_delegate_end_invoke): impl.
17686         (mono_marshal_get_delegate_begin_invoke):
17687         (mono_marshal_get_delegate_end_invoke):
17688         (mono_marshal_get_delegate_invoke): generate a special name for
17689         those methods (including the signature) and associate them whith
17690         the delegate class. 
17691
17692 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
17693
17694         * reflection.[ch]: 
17695         (mono_reflection_type_from_name): now it has a MonoImage parameter
17696         which is used as the default image to search the type in. If the image
17697         is NULL or getting the type from it fails, it defaults to corlib.
17698
17699         * icall.c: changed 1 call to mono_reflection_type_from_name to match
17700         new parameter.
17701
17702 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17703
17704         * reflection.c: update the parameter table index.
17705
17706 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17707
17708         * domain.c: don't include the mark byte in the string hash.
17709
17710 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17711
17712         * icall.cs: icall for Type.GetTypeCode ().
17713         * verify: a couple of fixes and disabled local initialization checks.
17714
17715 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
17716
17717         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
17718
17719         * debug-helpers.c (mono_method_full_name): print the type of the
17720         runtime wrapper
17721
17722         * metadata.c (mono_signature_hash): a hash function for signatures
17723         (mono_signature_hash): better hash algorithm
17724
17725         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
17726
17727         * debug-helpers.c (mono_method_full_name): this can now generate
17728         method names with signatures
17729
17730         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
17731         method dont have this pointers.
17732
17733 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17734
17735         * reflection.c: fixup typebuilder tokens.
17736         * image.c: fix buglet.
17737         * marshal.h: remove whitespace.
17738         * metadata.h, metadata.c: reinstate code that was removed.
17739         * verify.c: handle catch directives and fix another couple of bugs.
17740
17741 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
17742
17743         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
17744         (mono_marshal_get_native_wrapper): make it comp. with the old code
17745         (mono_marshal_get_native_wrapper): support boolean
17746         (mono_marshal_get_managed_wrapper): support more types
17747
17748 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
17749
17750         * class.c (class_compute_field_layout): compute class->blittable attribute.
17751
17752 2002-07-09  Dick Porter  <dick@ximian.com>
17753
17754         * threads.c: Make the thread cleaning up cope with threads that
17755         call ExitThread()
17756
17757 2002-07-08  Radek Doulik  <rodo@ximian.com>
17758
17759         * reflection.c (method_encode_code): use non-translated values to
17760         compute finally_start, this fixes exception handling on ppc, yay!
17761
17762         * decimal.h (struct signscale): fix endianess
17763
17764 2002-07-07  Radek Doulik  <rodo@ximian.com>
17765
17766         * reflection.c: swap box_val and not val
17767
17768 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17769
17770         * reflection.c, reflection.h: handle full assembly info in type name.
17771         Handle Type arguments when loading custom attributes.
17772         * icall.c: updated to use new mono_reflection_type_from_name () method.
17773
17774 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17775
17776         * loader.c:
17777         (method_from_memberref): also print assembly name when method not found.
17778
17779 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17780
17781         * icall.c:
17782         (ves_icall_TypeGetProperties): fixed bug #27473. 
17783
17784 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17785
17786         * reflection.c: display image name and token when cannot find the
17787         .ctor for an attribute.
17788
17789 2002-07-05  Martin Baulig  <martin@gnome.org>
17790
17791         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17792
17793 2002-07-04  Dick Porter  <dick@ximian.com>
17794
17795         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
17796         compile on mingw.  This will cause mingw builds to not wait for
17797         subthreads to terminate after the main thread does.  I've lodged a
17798         bug with the mingw developers for them to wrap OpenThread().
17799
17800 2002-07-03  Dick Porter  <dick@ximian.com>
17801
17802         * threads.c: Store thread IDs instead of handles, because
17803         GetCurrentThread() returns a pseudohandle and therefore stores
17804         useless values.  mono_thread_cleanup() continues checking the
17805         array of threads until it is empty, to cope with subthreads
17806         spawning new threads after the main thread has finished.
17807
17808         * profiler.h:
17809         * profiler.c:
17810         * profiler-private.h: Pass the thread ID to thread profiler
17811         functions, instead of a handle
17812
17813 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17814
17815         * verify.c: fixes to make it more usable.
17816         * pedump.c: added --verify code to verify IL code in an assembly.
17817
17818 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17819
17820         * reflection.c: turn errors into warnings to allow compiling corlib.
17821
17822 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17823
17824         * reflection.c: add special cases to compile corlib.
17825
17826 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17827
17828         * reflection.c: handle properties with only a set method.
17829
17830 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17831
17832         * opcodes.h: add enum with opcodes in opval order.
17833
17834 2002-07-01  Dick Porter  <dick@ximian.com>
17835         
17836         * object.h:
17837         * object.c (mono_runtime_run_main): Removed unneeded argument
17838
17839 2002-06-28  Martin Baulig  <martin@gnome.org>
17840
17841         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
17842
17843 2002-06-27  Dick Porter  <dick@ximian.com>
17844
17845         * threads.c: Store the handle in both the parent thread and in the
17846         subthread, to minimise the time between starting a new thread and
17847         storing its ID.
17848
17849 2002-06-26  Dick Porter  <dick@ximian.com>
17850
17851         * appdomain.c (mono_runtime_cleanup): Close the socket library
17852         after all the threads have finished, not before
17853
17854 2002-06-26  Martin Baulig  <martin@gnome.org>
17855
17856         * debug-symfile.c (mono_debug_find_source_location): Added
17857         `guint32 *line_number' argument.  If it's not NULL, store the line number
17858         there and return the file name without the line number.
17859
17860 2002-06-25  Dick Porter  <dick@ximian.com>
17861
17862         * icall.c:
17863         * process.h:
17864         * process.c: Process forking and other support functions
17865
17866 2002-06-25  Dick Porter  <dick@ximian.com>
17867
17868         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
17869         things dont happen when the image is closed.
17870         (mono_image_lookup_resource): Walk the resource section looking
17871         for a particular entry
17872
17873         * cil-coff.h: PE resource section decoding
17874
17875 2002-06-25  Dick Porter  <dick@ximian.com>
17876         
17877         * assembly.h:
17878         * assembly.c: 
17879         (mono_assembly_foreach): Accessor functions to walk the list of
17880         loaded assemblies
17881         (mono_assembly_set_main):
17882         (mono_assembly_get_main): Process methods need to know which
17883         assembly is the "main" one
17884
17885         * object.c (mono_runtime_run_main): Record the main assembly
17886
17887         * debug-helpers.c: Fix typo
17888
17889 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
17890
17891         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
17892         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
17893
17894 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17895
17896         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
17897
17898 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
17899
17900         * image.c (do_mono_image_open): Initialize reference count,
17901         otherwise we leak the MonoImage.
17902
17903 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17904
17905         * reflection.c: small tweak to handle self-hosting.
17906
17907 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17908
17909         * reflection.c: fix type name parse code.
17910
17911 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17912
17913         * reflection.c: break out of the loop.
17914         * image.c: special case corlib.
17915
17916 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17917
17918         * reflection.c: add all the custom attrs at the end to ensure the
17919         ctors have been properly initialized when the attributes are defined
17920         in the current assembly.
17921
17922 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17923
17924         * reflection.c: handle correctly multiple-nested types.
17925
17926 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17927
17928         * row-indexes.h: fix typos.
17929         * reflection.c: adjust for typos and fix method_def_or_ref
17930         encoding in MethodImpl table.
17931
17932 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17933
17934         * reflection.c: fix entry point patching (thanks Serge!).
17935
17936 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
17937
17938         * verify.c: add check for System.Exception
17939
17940 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17941
17942         * image.c, class.c: minifix for code just c&p'ed.
17943         * reflection.c: warning fix.
17944         * object.h, loader.h, domain.c: load also StringBuilder.
17945
17946 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17947
17948         * marshal.h, marshal.c: some support code to handle complex marshaling.
17949
17950 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17951
17952         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
17953         Better signatures with vtable error dump.
17954
17955 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
17956
17957         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
17958
17959 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
17960
17961         * icall.c (ves_icall_Type_GetField): impl.
17962
17963 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17964
17965         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
17966         to retrieve a marshal description blob for a field or param.
17967
17968 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17969
17970         * reflection.h, reflection.c: change order of nested type emission
17971         to avoid table corruption. The NestedTypes table is sorted.
17972         * icall.c: change order of GetConstructor results to workaround mcs bug.
17973
17974 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17975
17976         * reflection.h, reflection.c: handle field and param marshal
17977         information.
17978
17979 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17980
17981         * icall.c, marshal.c marshal.h: more Marshal class implementation.
17982
17983 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17984
17985         * reflection.c: fix call convention.
17986
17987 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17988
17989         * reflection.h, reflection.c: mono_image_get_memberref_token()
17990         takes a type instead of a class, now. Added
17991         mono_image_get_array_token() to create tokens for the special
17992         multi-dim array methods.
17993
17994 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17995
17996         * assembly.c: handle modules (no assembly table). Split
17997         loading references in its own function.
17998         * class.c: handle moduleref resolution scope.
17999         * image.c, image.h: cache module name in image.
18000
18001 2002-06-07  Martin Baulig  <martin@gnome.org>
18002
18003         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18004         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18005
18006 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18007
18008         * icall.c: more signature fixes that used uint instead of int.
18009
18010 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18011
18012         * reflection.c: fixed signature of field refs.
18013
18014 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18015
18016         * class.c, reflection.c: handle typerefs of nested types
18017         (both on read and when writing files).
18018
18019 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18020
18021         * icall.c: fix method signatures that tried to workaround the previous
18022         typo, d'oh!
18023
18024 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18025
18026         * debug-helpers.c: fix typo.
18027
18028 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18029
18030         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18031         rewrote the PE/COFF writing code (our programs are understood by the
18032         ms runtime, now).
18033
18034 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18035
18036         * gc.c, gc.h, icall.c: weakreference support.
18037
18038 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18039
18040         * Makefile.am, mono-config.c: use $(sysconfdir).
18041
18042 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * icall.c: changed default precision of Double.ToString() to 15.
18045         Fixed memory leak. Unified with Single.ToString.
18046
18047 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18048
18049         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18050
18051 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18052
18053         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18054         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18055         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18056         and myself.
18057
18058 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18059
18060         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18061
18062 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18063
18064         * reflection.c, socket-io.c: more compilation fixes.
18065
18066 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18067
18068         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18069         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18070         unicode.c: warning and compiler compatibility fixes.
18071
18072 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18073
18074         * class.h, metadata.c: fixed warnings/compilation errors.
18075
18076 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18077
18078         * Makefile.am, mono-config.c, mono-config.h: configuration file
18079         support routines.
18080         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18081         config file. Export methods to insert and lookup mappings.
18082
18083 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18084
18085         * reflection.c: handle types and boxed objects in custom attr
18086         constructors.
18087
18088 2002-05-30  Martin Baulig  <martin@gnome.org>
18089
18090         * debug-symfile.c
18091         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18092
18093 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18094
18095         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18096         to lookup the implmap row for a P/Invoke method.
18097         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18098         P/Invoke method from the runtime on an as needed basis.
18099
18100 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18101
18102         * metadata.c (mono_metadata_parse_signature): impl.
18103
18104 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18105
18106         * class.c: handle .pack directive.
18107
18108 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18109
18110         * object.c: initialize static fields with RVA data.
18111
18112 2002-05-25  Martin Baulig  <martin@gnome.org>
18113
18114         * debug-symfile.c
18115         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18116
18117 2002-05-24  Martin Baulig  <martin@gnome.org>
18118
18119         * debug-symfile.c
18120         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18121         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18122         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18123
18124 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18125
18126         * object.c: special case string ctros in invoke.
18127         * gc.c: silly whitespace changes.
18128
18129 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18130
18131         * threadpool.[ch]: impl. a threadpool that can
18132         be used by mint and mono.
18133
18134 2002-05-22  Martin Baulig  <martin@gnome.org>
18135
18136         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18137         The first argument is now a `MonoReflectionModuleBuilder *', the return
18138         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18139         `methods' field to get the method builder.  The `token' argument is the
18140         unfixed token.
18141
18142         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18143         invalid characters instead of g_assert_not_reached()ing.  This seems
18144         to be the behaviour of mscorlib.
18145
18146 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18147
18148         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18149         Hestilow to fix bug #25104
18150
18151 2002-05-21  Martin Baulig  <martin@gnome.org>
18152
18153         * debug-symfile.c (mono_debug_find_source_location): New function.
18154         Looks up an IL offset in the line number table and returns the source
18155         location as a string.
18156
18157 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18158
18159         * icall.c:
18160         (mono_double_ToStringImpl): changed %f by %g until we have something
18161         better.
18162
18163 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18164
18165         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18166         parameters first in C#.
18167
18168 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18169
18170         * icall.c, reflection.h: added icall to get info about an event.
18171
18172 2002-05-20  Radek Doulik  <rodo@ximian.com>
18173
18174         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18175         endian
18176         (mono_value_box): don't use memcpy for small sizes on
18177         architectures with unaligned access
18178
18179 2002-05-20  Martin Baulig  <martin@gnome.org>
18180
18181         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18182         if `tb->parent == NULL'.
18183         (mono_reflection_create_internal_class): New function.  This is
18184         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18185         for enum types.
18186
18187         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18188         New interncall.
18189
18190 2002-05-19  Martin Baulig  <martin@gnome.org>
18191
18192         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18193         argument to get the length, don't default to the array length.
18194
18195 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18196
18197         * assembly.c (mono_assembly_setrootdir): New function used to
18198         override the MONO_ASSEMBLIES directory.
18199
18200 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18201
18202         * icall.c: ValueType_GetHashCode() initialize local var.
18203
18204 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18205
18206         * reflection.c: sort custom attributes table.
18207
18208 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18209
18210         * reflection.c: support named args in custom attributes (write support).
18211
18212 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18213
18214         * reflection.c: fix finally position calculation.
18215
18216 2002-05-15  Radek Doulik  <rodo@ximian.com>
18217
18218         * reflection.c: fixed endianess at many places
18219
18220         * icall.c (ves_icall_InitializeArray): comment out debug msg
18221
18222 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18223
18224         * object.c (mono_unhandled_exception): new function to handle
18225         unhandled exceptions.
18226         (mono_unhandled_exception): call the UnhandledException event.
18227         (mono_runtime_delegate_invoke): impl.
18228
18229 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18230
18231         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18232         returns the RVA, not the direct pointer to the data. Handle the case
18233         when the class size is fixed.
18234
18235 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18236
18237         * reflection.c: fix some endianess issues.
18238
18239 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18240
18241         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18242
18243         * threads.c (mono_thread_init): added a callback which is invoked
18244         at thread start.
18245
18246 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18247         
18248         * icall.c: make GetHashCode return non-negative values.
18249
18250 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18251
18252         * object.c, icall.c, gc.c: revert to address-based hashcode.
18253
18254 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18255
18256         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18257
18258 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18259
18260         * icall.c, class.c: special case <Module>.
18261
18262 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18263
18264         * icall.c: fix bug in GetNow().
18265
18266 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18267
18268         * object.c (mono_runtime_class_init): make sure that we call all
18269         static class constructors.
18270
18271 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18272
18273         * reflection.c: sort methodsemantics table.
18274
18275 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18276
18277         * reflection.h, reflection.c: honour init locals setting.
18278
18279 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18280
18281         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18282
18283 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18284
18285         * reflection.c: support ContructorBuilders in attribute blob creation.
18286
18287 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18288
18289         * reflection.c: some changes to build a binary that can be run
18290         directly in windows.
18291
18292 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18293
18294         * loader.c: print a big message when an icall can't be found.
18295
18296 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18297
18298         * string-icalls.c: fix bug 24248.
18299
18300 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18301
18302         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18303         icall.c, reflection.h: separate assembly loading by pathname and by
18304         assembly name. Use the MONO_PATH env var to search for assemblies.
18305
18306 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18307
18308         * assembly.c, image.h: add some support for assemblies
18309         with multiple modules.
18310         * class.c, class.h: export mono_class_from_typeref().
18311         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18312         instead.
18313
18314 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18315
18316         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18317         documentation says (the ECMA one is correct).
18318
18319 2002-05-02  Dick Porter  <dick@ximian.com>
18320
18321         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18322         Don't name the synchronisation mutex.
18323
18324 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18325
18326         * rand.c
18327         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18328         Make the prototypes match.
18329         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18330         Same.
18331
18332         * icall.c
18333         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18334         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18335         all systems have tm.tm_zone, so use strftime() with %Z to print
18336         the timezone abreviation into a temp string.
18337
18338         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18339         rather than mono_array_addr() on a MonoString on Big Endian
18340         machines.
18341
18342 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18343
18344         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18345         fix bug 24041
18346
18347 2002-04-30  Dick Porter  <dick@ximian.com>
18348
18349         * socket-io.c: Cope with SOCKET being an integer rather than a
18350         pointer now.
18351
18352         * threads.c: Added Thread_free_internal, to deal with thread
18353         handle cleanup.  Moved calls to handle_store() and handle_remove()
18354         to start_wrapper(), so each can only be called once.  Allocate
18355         synchronisation blocks with GC_malloc(), and use GC finalisation
18356         to close the handles.
18357
18358         * icall.c: added System.Threading.Thread::Thread_free_internal
18359
18360 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18361
18362         * icall.c: support Environment.Exit, CommandLineArgs().
18363
18364 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18365
18366         * object.c, object.h: added mono_runtime_run_main () and
18367         mono_runtime_get_main_args () for use in System.Environment.
18368
18369 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18370
18371         * gc.c: fix thinko, enable actual finalization since the jit is now
18372         fixed.
18373
18374 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18375
18376         * gc.c, object.c: take into account that an object may be offset wrt the address
18377         returned by GC_malloc().
18378
18379 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18380
18381         * image.c: handle files without entries in the assembly table (modules).
18382
18383 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18384
18385         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18386         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18387         allowed to be null when it's System.Object class setup.
18388
18389 2002-04-27  Martin Baulig  <martin@gnome.org>
18390
18391         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18392         if `tb->parent == NULL' rather than crashing.
18393
18394 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18395
18396         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18397         calling acos() where asin() should have been called.
18398
18399 2002-04-26  Martin Baulig  <martin@gnome.org>
18400
18401         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18402         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18403         there's a subdirectory called `System', but we don't want to read that
18404         subdirectory as an assembly.
18405
18406 2002-04-25  Martin Baulig  <martin@gnome.org>
18407
18408         * debug-symfile.c: Reflect latest MonoString changes.
18409
18410 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18411
18412         * rand.c, rand.h: instance method icalls need to have an explicit
18413         this pointer as first argument in the C implementation.
18414
18415 2002-04-25  Nick Drochak <ndrochak@gol.com>
18416
18417         * icall.c: Fix typo in map for GetNonZeroBytes
18418
18419 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18420
18421         * string-icalls.c : String does now passes unit tests without any 
18422         errors, the following changes has been made:
18423         
18424         Implemented replace methods.
18425         Renaming of methods to (try) follow the standard.
18426         Fixed compare ordinal
18427         Made all memory allocated directly to function instead of via icall function.
18428         Small performance fix in is_in_array function
18429                         
18430  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18431
18432         c (mono_string_Internal_ctor_charp_int_int):
18433         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18434         sindex < 0, throw ArgumentOutOfRangeException instead of
18435         ArgumentNullException.
18436
18437         Added new check for length == 0, however
18438         I need to make it return String.Empty from the C code.
18439         
18440         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18441         that calculate the length for us here.
18442         
18443         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18444         mono_string_new_utf16 with mono_string_new, since value is utf8.
18445
18446 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18447
18448         * object.c: register the object for finalization if needed.
18449         Allocate one more char in the string for the terminating 0 char.
18450
18451 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18452
18453         * class.c, class.h, image.c: check if a type implemenst a destructor.
18454         Use the proper key for array class lookups.
18455         * icall.c: register the icalls in the System.GC class.
18456         * gc.c, gc.h: GC-related functions and icalls.
18457
18458 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18459
18460         * icall.c:
18461         * socket-io.c:
18462         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18463         changed a couple of free () by g_free ().
18464
18465         * decimal.c: one-liner in the comments for decimal2string ().
18466
18467 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18468
18469         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18470
18471 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18472
18473         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18474         * object.c (mono_runtime_invoke_array) : handle null in params
18475
18476 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18477
18478         * string-icalls.c: fixed bug in split (one off bug)
18479
18480 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18481
18482         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18483         * icalls.c: added String::Equals as internal method
18484
18485 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18486
18487         * threads.c: fixed bug in the double interlocked functions
18488
18489 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18490
18491         * threads.c: implemented all of the new interlocked icalls.
18492         * string-icalls.c: fix a bug in insert.
18493         * icalls.c: added the icalls for interlocked, removed old string functions.
18494         
18495 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18496
18497         * loader.c: fix off-by-one error when reading argument names.
18498
18499 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18500
18501         * profiler.c: win32 counter implementation (untested).
18502         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18503         (the latter needs testing and more complete impl. from win32 folks).
18504
18505 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18506
18507         * object.c: mono_array_new_full workaround mono_array_class_get
18508         problem.
18509
18510 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18511
18512         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18513         * object.h (mono_string_chars): Changed casting type.
18514
18515 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18516
18517         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18518                            method signatures to use gunichar2 instead of gint16.
18519
18520 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18521
18522         * object.h, object.c: domain-specific versions of mono_object_new and
18523         mono_array_new.
18524
18525 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18526
18527         * object.c: changed String layout
18528
18529         * string-icalls.c (mono_string_Internal_ctor_chara): added
18530         internal string constructors.
18531
18532 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18533
18534         * threads.c: pass 'this' to the thread start routine.
18535
18536 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18537
18538         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18539         InternalCompareStr don't call twice mono_string_cmp_char for the last
18540         character. Improved performance in mono_string_cmp_char.
18541
18542 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18543
18544         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18545         code into its own library: libmonoruntime.
18546
18547 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18548
18549         * object.h, object.c: changed array format so that szarrays do not
18550         require a bounds structure.
18551         * icall.c, appdomain.c: support for new szarray format.
18552
18553 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18554
18555         * metadata.c: compare also the retuns type when comparing signatures:
18556         we didn't do this as an optimization since really overloaded methods
18557         must differ also in the arguments, but this doesn't work with
18558         low-level IL code (or when using explicit conversion operators: see
18559         bug#23498 for an example).
18560
18561 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18562
18563         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18564
18565 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18566
18567         * icall.c: make MonoType::GetElementType its own icall.
18568
18569 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18570
18571         * icall.c: remove MonoMethod_get_Name().
18572         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18573         object.
18574
18575 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18576
18577         * string-icalls.c: optimized a few methods.
18578
18579 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18580
18581         * icall.c: added all new string internal calls
18582         * string-icalls.c: added, new string internal call implementation.
18583         * object.c: added mono_string_new_size for allocating a string a size
18584
18585 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18586
18587         * object.c (mono_object_isinst): use the same code as in the
18588         optimized x86 version.
18589
18590 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18591
18592         * profiler.c: TSC-based timer code (faster and more accurate).
18593         Not hooked up in configure, yet (set USE_X86TSC to 1).
18594
18595 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18596
18597         * profiler.c, profiler.h: track time spent compiling methods.
18598         * threads.c: track thread creation/destruction.
18599
18600 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18601
18602         * profiler.c, profiler.h, profiler-private.h: profiling interface
18603         and sample implementation. Moved here so that it can be used also by
18604         the jit.
18605
18606 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18607
18608         * reflection.c, reflection.h: keep types and other handles separate in
18609         the hash tables for referred tokens. Add guid for modules.
18610
18611 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18612
18613         * assembly.c: fix bugs found with valgrind.
18614         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18615
18616 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18617
18618         * threads: added icall support for getting current domain for
18619                    the thread.
18620  
18621 2002-04-13  Martin Baulig  <martin@gnome.org>
18622
18623         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18624         (MonoDebugVarInfo): Added `index' field for register based addresses.
18625         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18626         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18627         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18628         `MonoDebugVarInfo *this_var'.
18629
18630         * debug-symfile.c (relocate_variable): New static function to write
18631         a location description for a local variable or method parameter.
18632
18633 2002-04-12  Martin Baulig  <martin@gnome.org>
18634
18635         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
18636         stack offset and begin/end scope address of a local variable.
18637         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
18638         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
18639         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
18640
18641         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
18642         Added new relocation types for start/end scope of a local variable.
18643
18644 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18645
18646         * object.h: add mono_object_domain() macro.
18647         * reflection.c: handle typespecs.
18648         * icall.c: MonoMethod::get_Name() implementation.
18649
18650 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18651
18652         * icall.c: String::GetHashCode() icall implementation.
18653
18654 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18655
18656         * icall.c: String::IndexOfAny icall.
18657         * object.c, object.h: make array->max_length more useful.
18658         Intrduced mono_object_class() and mono_string_length() macros.
18659
18660 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18661
18662         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
18663         instead of g_unichar_isdigit.
18664
18665 2002-04-11  Nick Drochak  <ndrochak@gol.com>
18666
18667         * icall.c: Implement a simple Double.ToString().
18668
18669 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18670
18671         * appdomain.h: only io-layer.h is supposed to be included.
18672         * icall.c: explicitly import environ. Fix warning.
18673
18674 2002-04-10  Nick Drochak  <ndrochak@gol.com>
18675
18676         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
18677                 return true even if it's not Daylight Savings time.
18678                 Only return false for the case where the function isn't
18679                 implemented for a plaform (read Windows).
18680
18681 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18682
18683         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
18684         data with a mutex.
18685
18686 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
18687
18688         * mempool.c (mono_mempool_alloc): only use g_malloc when
18689         absolutely necessary.
18690
18691 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18692
18693         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
18694
18695         * class.c (mono_class_vtable): use domain mempool to allocate vtable
18696         (mono_class_proxy_vtable): use domain mempool
18697
18698 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18699
18700         * appdomain.h, appdomain.c: split initialization that requires the
18701         execution engine support into mono_runtime_init().
18702
18703 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
18704
18705         * class.c (mono_class_init): don't include vtable inside MonoClass
18706         to save some memory, gather some statistics.
18707         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
18708
18709 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18710
18711         * icall.c: internalcall implementation for ValueType.Equals().
18712
18713 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
18714
18715         * object.c (mono_message_init): moved 
18716         (mono_runtime_exec_main): new arch. independent impl.
18717         (mono_runtime_invoke_array): new method - like
18718         mono_runtime_invoke, but you can pass an array of objects.
18719         (mono_remoting_invoke): new arch. independent impl.
18720         (mono_message_invoke): new arch. independent impl.
18721         (mono_runtime_class_init): new arch. independent impl.
18722         (mono_runtime_object_init): new arch. independent impl.
18723
18724 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18725
18726         * metadata.c, object.c, reflection.c: documented the exported
18727         functions.
18728
18729 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18730
18731         * icall.c: simpler code to pass the assembly builder data to corlib.
18732         Implement GetNestedTypes() internalcall.
18733
18734 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18735
18736         * class.c: warn if a type can't be loaded.
18737
18738 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
18739
18740         * image.h: typedef MonoImageOpenStatus
18741         * types.h: removed unused file
18742         
18743 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
18744
18745         * icall.c: Enum_ToObject accepts enum value arguments.
18746
18747 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18748
18749         * class.c: move initialization of properties, events and nested
18750         classes, so that they happen for interfaces, too.
18751
18752 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18753
18754         * icall.c: cleanup some ugly casts in Array_SetValue*.
18755
18756 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18757
18758         * icall.c: the values array fro enums is of the correct type, now.
18759         Implement (correctly) getFullName instead of assQualifiedName for
18760         MonoType.
18761         * reflection.h, reflection.c: added mono_type_get_name ().
18762
18763 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18764
18765         * assembly.c, image.h: for each MonoImage, record from wich assembly
18766         it was loaded.
18767         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
18768         Make Type.Assembly work.
18769
18770 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
18771
18772         * debug-symfile.h: use char* instead of gpointer to avoid
18773         unnecessary casts.
18774
18775         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
18776
18777         * icall.c (ves_icall_InternalExecute): impl. FielSetter
18778         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
18779
18780 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
18781
18782         * icall.c (mono_message_init): impl. (code cleanup)
18783         (ves_icall_InternalExecute): impl. FieldGetter
18784
18785         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
18786         defined we call all (non-static)methods through the vtable. 
18787
18788 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
18789
18790         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
18791         finalizer even though the memory is still referenced (and the chunk of
18792         memory is not freed).
18793
18794 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18795
18796         * assembly.c: fix brokeness.
18797
18798 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
18799
18800         * class.c: kill some warnings. Check explicit interface method
18801         implementation also without considering the namespace.
18802         Load also literal strings in static class data.
18803
18804 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
18805
18806         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
18807         (default_assembly_name_resolver): Make the resolver take the
18808         "base" directory where the assembly was originally defined, so we
18809         can load DLLs that are in the same directory as the assembly that
18810         is being referenced.
18811
18812 2002-03-28  Dick Porter  <dick@ximian.com>
18813
18814         * file-io.h: 
18815         * file-io.c:
18816         * socket-io.c: 
18817         * unicode.h: 
18818         * unicode.c: Warning cleanups
18819
18820 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
18821
18822         * object.h, reflection.h: use the correct type instead of MonoObject.
18823
18824 2002-03-28  Martin Baulig  <martin@gnome.org>
18825
18826         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
18827         (mono_debug_update_symbol_file): Initialize classes if necessary.
18828
18829 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
18830
18831         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
18832         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
18833
18834 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
18835
18836         * assembly.h: fix function prototype.
18837         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
18838         * mono-endian.h: use const cast.
18839
18840 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
18841
18842         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
18843
18844 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18845
18846         * loader.c: don't assert when a typeref can't be loaded, give
18847         a chance to the runtime to trow an exception instead.
18848         * loader.h: fix warning.
18849
18850 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
18851
18852         * class.c (mono_class_proxy_vtable): added proxy support
18853
18854 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
18855
18856         * icall.c: removed last of PAL calls, added System.Environment
18857         * file-io.h, file-io.c: MonoIO implementation
18858         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
18859
18860 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18861
18862         * appdomain.c: do not use the byte marker in ldstr table lookup.
18863         * debug-helpers.c: allow two ':' to separate class and method name.
18864         * object.c: allocate arrays bounds with the GC, too.
18865         * verify: add a few more checks.
18866
18867 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
18868
18869         * reflection.c: output also literal strings. Allocate parameter data
18870         with GC_malloc() (thanks, Martin, for catching this!).
18871
18872 2002-03-26  Martin Baulig  <martin@gnome.org>
18873
18874         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
18875         include the `this' offset in the `param_offsets'.
18876
18877 2002-03-25  Martin Baulig  <martin@gnome.org>
18878
18879         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
18880         mono_debug_get_class() function to get the classes. Added new
18881         relocation types for arrays and strings.
18882         (mono_debug_get_class): New static function to search in all
18883         referenced assemblies for a metadata token.
18884
18885         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
18886
18887 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18888
18889         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
18890         hold gc-allocated objects. Make the string heap a stream like the
18891         others. Removed duplicated code when writing stream info.
18892         Added asserts to catch possible buffer overflows. Set the sorted map
18893         for tables that need sorting. Added some documentation.
18894
18895 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
18896
18897         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
18898         for interned strings and vtables.
18899
18900 2002-03-24  Martin Baulig  <martin@gnome.org>
18901
18902         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
18903         it in the array since it was created with g_slist_prepend().
18904
18905 2002-03-24  Martin Baulig  <martin@gnome.org>
18906
18907         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
18908         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
18909         (mono_debug_method_from_token): Renamed to
18910         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
18911         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
18912
18913         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
18914         relocation types.
18915
18916         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
18917
18918 2002-03-24  Martin Baulig  <martin@gnome.org>
18919
18920         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
18921         (mono_debug_method_from_token): New func.
18922
18923         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
18924         New interncall, calls mono_debug_local_type_from_signature().
18925         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
18926         calls mono_debug_method_from_token().
18927
18928 2002-03-23  Martin Baulig  <martin@gnome.org>
18929
18930         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
18931         specifies the number of bytes to be converted, not the array size.
18932         Return the number of chars, not the number of bytes.
18933         (ves_icall_iconv_get_chars): The `byteCount' argument
18934         specifies the number of bytes to be converted, not the array size.
18935
18936 2002-03-23  Martin Baulig  <martin@gnome.org>
18937
18938         * reflection.h (MonoReflectionSigHelper): New type.
18939
18940         * reflection.c (mono_reflection_sighelper_get_signature_local),
18941         (mono_reflection_sighelper_get_signature_local): New functions.
18942
18943         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
18944         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
18945         interncalls.
18946
18947 2002-03-23  Martin Baulig  <martin@gnome.org>
18948
18949         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
18950         is_writeable is set.
18951         (mono_raw_buffer_update): New function to write the modified map
18952         back to disk.
18953
18954         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
18955
18956         * debug-symfile.c (mono_debug_update_symbol_file): Call
18957         mono_raw_buffer_update() when done writing.
18958
18959 2002-03-23  Martin Baulig  <martin@gnome.org>
18960
18961         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
18962
18963         * debug-symfile.c: Added support for arguments and local variables.
18964
18965 2002-03-23  Dick Porter  <dick@ximian.com>
18966
18967         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
18968         protected by ifdefs, hence breaking the w32 build.
18969
18970 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18971
18972         * object.c: implement is_interned() the right way.
18973
18974 2002-03-21  Martin Baulig  <martin@gnome.org>
18975
18976         * debug-symfile.[ch]: New files to handle debugging information
18977         files. There's also support to dynamically update these symbol
18978         files to include machine dependent information.
18979
18980 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
18981
18982         * threads.c (mono_thread_create): new function to create thread
18983         from C
18984
18985 2002-03-20  Martin Baulig  <martin@gnome.org>
18986
18987         * icall.c (ves_icall_InternalInvoke): Create a new object if the
18988         method is a constructor.
18989         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
18990         points to ves_icall_InternalInvoke().
18991
18992 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
18993
18994         * file-io.c: Flush shouldn't throw exceptions.
18995
18996 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
18997
18998         * file-io.c: FileStream flush support; FileSetLength now
18999         restores file pointer.
19000
19001 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19002
19003         * class.c: set image for pointer classes.
19004
19005 2002/03/19  Nick Drochak <ndrochak@gol.com>
19006
19007         * sysmath.c: Forgot one.
19008
19009 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19010
19011         * sysmath.c: Avoid redefining existing names.
19012
19013 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19014
19015         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19016         handled by runtime as icall rather than dllimport from libm.so
19017         * file-io.c, file-io.h: fixed handle argument type.
19018
19019 2002-03-18  Dick Porter  <dick@ximian.com>
19020
19021         * reflection.c (mono_image_get_type_info): rename interface to
19022         iface, because of "#define interface struct" on windows.
19023
19024 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19025
19026         * class.c, class.h: rename and export mono_ptr_class_get().
19027         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19028         * reflection.c, reflection.h, icall.c: better/saner type name
19029         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19030         method signatures.
19031
19032 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19033
19034         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19035
19036         * icall.c (ves_icall_InternalInvoke): impl.
19037
19038 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19039
19040         * reflection.c: output the interface map table, too.
19041
19042 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19043
19044         * class.c (class_compute_field_layout): separate computation of 
19045         static field layout
19046
19047 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19048
19049         * icall.c: added System.Buffer support.
19050         * file-io.c: moved file icalls from PAL to FileStream.
19051
19052 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19053
19054         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19055
19056 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19057
19058         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19059
19060 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19061
19062         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19063
19064 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19065
19066         * debug-helpers.{c,h}: moved here from monograph some useful functions
19067         to locate a method by name/signature in a class or image. Included
19068         also a small and flexible IL disassembler.
19069
19070 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19071
19072         * reflection.c: fixup tokens in methods with small header size, too.
19073
19074 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19075
19076         * object.c (mono_string_to_utf8): remove assert(!error), instead
19077         print a warning. 
19078
19079 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19080
19081         * icall.c: update to the new mono_Array_class_get interface.
19082
19083 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19084
19085         * appdomain.c, object.c: Boehm-GC enable.
19086         * icall.c: make get_data_chunk() support split data requests.
19087         Ensure a class is initialized in more cases. Return only the first
19088         property found in GetProperties() or the compiler gets confused. 
19089         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19090         * reflection.h, reflection.c: add fixup mechanism for field and method
19091         tokens. Initialize assembly->typeref in a single place. Output
19092         properties after events. Support custom attributes for events, too.
19093         Typo fix for paramter custom attrs.
19094
19095 2002-03-07  Martin Baulig  <martin@gnome.org>
19096
19097         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19098
19099 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19100
19101         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19102
19103 2002-03-06  Martin Baulig  <martin@gnome.org>
19104
19105         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19106         non-zero lower bounds. See testcases #F10-#F13.
19107
19108 2002-03-05  Martin Baulig  <martin@gnome.org>
19109
19110         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19111
19112         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19113         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19114         here.
19115         (ves_icall_System_Array_SetValue): Likewise.
19116         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19117         as argument and does the actual work. This function is used when copying a
19118         multi-dimensional array.
19119         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19120         now do all the widening conversions of value types.
19121         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19122
19123 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19124
19125         * class.c: remove some magic numbers and use the smbolic names,
19126         instead. Added init_events() to load event info at class init time.
19127         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19128         and mono_metadata_methods_from_event().
19129         * reflection.h, reflection.c: added support for writing out the evnets
19130         related information.
19131
19132 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19133
19134         * reflection.h, icall.c: use a different method (GetInterfaces)
19135         to gather interface info and add isbyref, isprimitive and
19136         ispointer to the ves_icall_get_type_info() return value.
19137
19138 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19139
19140         * class.h: stared adding support for events.
19141         * icall.c: split find_members implementation. Added debug icall to get
19142         the address of an object.
19143         * reflection.c: handle TypeBuilders in mono_type_get_object().
19144
19145 2002-03-01  Martin Baulig  <martin@gnome.org>
19146
19147         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19148         ArgumentOutOfRangeException(), not an ArgumentException().
19149         (ves_icall_System_Array_GetLowerBound): Likewise.
19150         (ves_icall_System_Array_GetValue): Improved argument checking.
19151         (ves_icall_System_Array_SetValue): Improved argument checking.
19152
19153 2002-03-01  Martin Baulig  <martin@gnome.org>
19154
19155         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19156         called with invalid arguments rather than just dying with g_assert().
19157         (ves_icall_System_Array_SetValue): Likewise.
19158         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19159         raise a NotImplementedException instead.
19160         (ves_icall_System_Array_GetLength): Added argument checking.
19161         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19162
19163 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19164
19165         * object.h (mono_assert): new macros mono_assert and
19166         mono_assert_not_reached
19167
19168 2002-02-28  Martin Baulig  <martin@gnome.org>
19169
19170         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19171         and "System::String::IsInterned" to "System::String::_IsInterned".
19172
19173 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19174
19175         * icall.c: remove hacks for typebuilder. Added icall to create a
19176         modified type from a tybebuilder.
19177         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19178         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19179         to create a backing MonoClass for a TypeBuilder.
19180
19181 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19182
19183         * class.c, class.h: more refactoring of class init.
19184         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19185
19186 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19187
19188         * marshal.c, marshal.h: start of marshaling interface.
19189
19190 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19191
19192         * icall.c: fix order in assembly qualified name icall.
19193
19194 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19195
19196         * class.c: do not free str, since we store it in the hash table.
19197         * reflection.h: add label field to MonoILExceptionInfo.
19198         * reflection.c: handle references to more than one assembly. Handle
19199         case when there isn't a module created in the assembly.
19200
19201 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19202
19203         * class.c: Fix typo. Start refactoring of class init code.
19204
19205 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19206
19207         * appdomain.c: exit with 1 on error.
19208         * class.c: we already have the name in MonoClassField.
19209         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19210         MonoStreamHeader instead of an offset of image->raw_metadata.
19211
19212 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19213
19214         * appdomain.c (mono_init): Be even more descriptive about the error.
19215
19216 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19217
19218         * appdomain.c: give the user an informative message when corlib can't
19219         be loaded.
19220
19221 2002-02-26  Martin Baulig  <martin@gnome.org>
19222
19223         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19224         New icall to get the time zone data.
19225
19226 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19227
19228         * reflection.c: set virtual and raw size of section correctly.
19229         * threads.c: transfer domain information to newly created threads.
19230
19231 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19232
19233         * class.c: when instancing a class in a domain, load the default
19234         vaules for static fields from the constant table. Fix System.Enum to
19235         not be an enum.
19236         * icall.c: implement Object::GetType() internalcall. Implemented
19237         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19238         Fixed checking of binding flags in find_members().
19239         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19240         * reflection.c: handle enumerations when writing to the constant
19241         table. Use a different object cache for types.
19242
19243
19244 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19245
19246         * object.c (mono_object_isinst): fix for arrays
19247
19248         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19249
19250 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19251
19252         * object.c: don't use mprotect ()  and fix intern pool hash table
19253         lookup for big endian systems.
19254
19255 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19256
19257         * icall.c: change type_is_subtype_of () signature.
19258
19259 2002-02-21  Mark Crichton  <crichton@gimp.org>
19260
19261         * rand.c, rand.h: Added random number generator for
19262         System.Security.Cryptography classes.
19263
19264         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19265
19266         * icall.c: Added System.Security.Cryptography calls.
19267
19268 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19269
19270         * class.c, icall.c, metadata.c: better support for pointer types.
19271         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19272         * reflection.c: Add support for getting custom attrs for properties
19273         and simplify some code.
19274
19275 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19276
19277         * icall.c: change getToken () and add custom attribute GetBlob()helper
19278         method.
19279         * reflection.h: add custom attrs array to the reflection builder structures.
19280         * reflection.c: encode and emit custom attributes for all the relevant
19281         reflection objects. Cache fieldref and methodref tokens. Change
19282         mono_image_create_token() interface to take a MonoDynamicAssembly.
19283         More complete custom attributes decoder. Load custom attributes for
19284         Assembly, Field, Method and Constructor objects, too. Make the
19285         returned array an Attribute[] one, not object[]. Added
19286         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19287         custom attribute constructor.
19288
19289 2002-02-20  Dick Porter  <dick@ximian.com>
19290
19291         * icall.c:
19292         * rawbuffer.c:
19293         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19294         problem code out for now).
19295
19296 2002-02-19  Radek Doulik  <rodo@ximian.com>
19297
19298         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19299
19300 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19301
19302         * icall.c: register the GetCustomAttributes method.
19303         * object.c, object.h: add mono_string_new_len ().
19304         * reflection.h, reflection.c: added mono_runtime_invoke(),
19305         mono_install_runtime_invoke(). Added
19306         mono_reflection_get_custom_attrs () to load custom attributes and
19307         create the attribute objects.
19308
19309 2002-02-19  Dick Porter  <dick@ximian.com>
19310         * threads-dummy-types.c:
19311         * threads-dummy-types.h:
19312         * threads-dummy.c:
19313         * threads-dummy.h:
19314         * threads-pthread-types.c:
19315         * threads-pthread-types.h:
19316         * threads-pthread.c:
19317         * threads-pthread.h:  Deleted obsolete files
19318
19319 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19320
19321         * class.c (mono_class_vtable): runtime init the class when we
19322         allocate static class data.
19323
19324         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19325
19326         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19327         and String - but we will need generic marshalling support in the
19328         future. 
19329         (mono_init): set the domain name in a ms compatible way
19330
19331         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19332         String[].
19333
19334 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19335
19336         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19337         for sizes
19338
19339         * appdomain.c (mono_domain_unload): impl.
19340
19341 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19342
19343         * appdomain.c, object.c: fix intern pool implementation.
19344         * class.c: fix alignment code.
19345
19346 2002-02-16  Radek Doulik  <rodo@ximian.com>
19347
19348         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19349         and s2 > s1, just copy lower bytes to be compatible with little
19350         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19351         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19352
19353         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19354         force big_endian to be 1 for big endian machines 
19355         (ves_icall_iconv_new_decoder): ditto
19356
19357 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19358
19359         * socket-io.c (convert_sockopt_level_and_name): If the system
19360         doesn't define SOL_IP or SOL_TCP, get them by hand using
19361         getprotobyname() and caching the values (because this could be a
19362         slow operation).
19363         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19364         Use the appropriate struct when the system does support it. Ie,
19365         not all systems have struct ip_mreqn so use struct ip_mreq when
19366         appropriate.
19367
19368 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19369
19370         * reflection.c: handle finally clauses.
19371
19372 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19373
19374         * socket-io.c: use g_snprintf() instead of snprintf.
19375
19376 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19377
19378         * reflection.c (mono_param_get_objects): Cast second argument to
19379         mono_method_get_param_names to a const char** to silence the
19380         compiler warning.
19381
19382         * appdomain.c (mono_domain_assembly_open): Put parens around the
19383         truth statement in the for-loop.
19384
19385         * unicode.c (iconv_convert): Got rid of a compiler warning about
19386         int i being unused when the system has a new iconv.
19387         (iconv_get_length): Same.
19388
19389         * image.c (load_class_names): Cast the second argument to
19390         g_hash_table_insert() to char* to hush compiler warnings about the
19391         arg being a const.
19392         (mono_image_open): Same here.
19393
19394         * socket-io.c: Don't conditionally include sys/filio.h or
19395         sys/sockio.h here anymore since we now get them from
19396         io-layer/io-layer.h
19397         (inet_pton): If the system doesn't support inet_aton, implement
19398         using inet_addr and also #define INADDR_NONE if it isn't defined
19399         by the system.
19400
19401 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19402
19403         * metadata.c, metadata.h: added function to get packing and size info
19404         of a typedef.
19405         * reflection.h, reflection.c: handle field RVA data. Save info about
19406         the table layout if needed. Assign typedef indexes to all the types
19407         before dumping the info about them to avoid forward reference problems.
19408
19409 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19410
19411         * socket-io.c (convert_sockopt_level_and_name): ifdef
19412         SO_ACCEPTCONN because it is not defined on my system (old debian)
19413
19414 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19415
19416         * opcode.c: use stddef.h to get NULL.
19417
19418 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19419
19420         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19421         for FIONBIO, FIONREAD and SIOCATMARK.
19422         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19423         define INADDR_NONE and besides, inet_addr() is deprecated and
19424         should not be used. Use inet_pton() instead - it also has the
19425         added bonus that it can easily handle IPv6 addresses as well.
19426         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19427
19428 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19429
19430         * decimal.c: remove _MSC_VER conditional.
19431
19432 2002-02-13  Dick Porter  <dick@ximian.com>
19433
19434         * socket-io.c: 
19435         * icall.c: Internal calls for Blocking, Select, Shutdown,
19436         GetSocketOption and SetSocketOption
19437
19438 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19439
19440         * assembly.cs: better resolver: use it instead of some kludgy
19441         code.
19442
19443 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * reflection.c: the best way to speed-up the compiler is to avoid
19446         infinite loops.
19447
19448 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19449
19450         * class.c (mono_class_vtable): changed the object layout
19451         (obj->vtable->class). 
19452         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19453
19454 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19455
19456         * assembly.c: look for assemblies in the assembly dir, too.
19457
19458 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19459
19460         * class.c: fix thinko in mono_class_from_type().
19461
19462 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19463
19464         * exception.h, exception.c: added TypeLoadException.
19465         * object.h, object.c: added mono_array_clone ().
19466         * icall.c: handle throwOnError in AssemblyGetType().
19467         Added Array.Clone().
19468         * opcode.h, opcode.c: use a single value for the opcode val.
19469         Compile fix for non-gcc compilers.
19470
19471 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19472
19473         * opcodes.c, opcodes.h: export interesting info about opcodes.
19474
19475 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19476
19477         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19478         icalls. 
19479
19480         * class.c (class_compute_field_layout): set element_class for enums
19481         (mono_class_create_from_typedef): set element_class for normal classes
19482
19483         * icall.c (ves_icall_System_Enum_get_value): impl.
19484
19485         * class.c (mono_class_create_from_typedef): do not set valuetype
19486         flag for System.ValueType and System.Enum
19487
19488 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19489
19490         * unicode.c (iconv_convert): fix big endian problem.
19491
19492 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19493
19494         * class.c: add asserts if we are ever going to scribble over memory.
19495         * socket-io.c: not all systems have AF_IRDA defined.
19496
19497 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19498
19499         * class.c (class_compute_field_layout): do not consider static
19500         fields to compute alignment
19501
19502 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19503
19504         * appdomain.c (mono_appdomain_get): impl.
19505         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19506
19507 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19508
19509         * icall.c: ignore "file://" prefix when loading an assembly.
19510
19511 2002-01-23  Dick Porter  <dick@ximian.com>
19512
19513         * socket-io.c:
19514         * icall.c:
19515         * Makefile.am: Added socket support
19516
19517 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19518
19519         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19520         code back.  This should return the assemblies that are loaded by
19521         the runtime on behalf of an application domain. 
19522
19523         The current implementation is still broken, it just returns every
19524         assembly loaded, but until we get real applications domain this
19525         will do.
19526
19527 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19528
19529         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19530         AppDomain object.
19531
19532 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19533
19534         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19535         the mono_class_from_name lookup.
19536         (ves_icall_get_parameter_info): ditto.
19537         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19538         method.
19539         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19540
19541 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19542
19543         * class.c: load also nested classes on class init.
19544         System.ValueType instance methods gets passed boxed
19545         values, unless methods in derived classed that get a pointer to the
19546         data.
19547         * icall.c: use better name parsing code in GetType().
19548         * image.c, image.h: add mono_image_loaded ().
19549         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19550         * reflection.c, reflection.h: added mono_reflection_parse_type().
19551
19552 2002-01-22  Veronica De Santis <veron78@interfree.it>
19553
19554         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19555         * threads.c : Added the implementation of internal calls for events
19556         * threads.h : Added prototypes of internal calls for events
19557         
19558 2002-01-21  Radek Doulik  <rodo@ximian.com>
19559
19560         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19561
19562 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19563
19564         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19565         (mono_class_value_size): use min_align
19566
19567 2002-01-20  Dick Porter  <dick@ximian.com>
19568
19569         * threads.h:
19570         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19571         so it compiles on w32.
19572
19573 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19574
19575         * metadata.c (mono_type_stack_size): impl.
19576
19577         * class.c (mono_class_get_field): impl. memberref token
19578
19579 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19580
19581         * icall.h : Added the internal calls mapping for CreateMutex_internal
19582                     and ReleaseMutex_internal.
19583         * threads.h : Added the prototype of mutexes internal calls.
19584         * threads.c : Added the implementations of mutexes internal calls.
19585
19586 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19587
19588         * metaparse.h: removed unused file.
19589         * reflection.c, reflection.h: added stream_data_align () function 
19590         to align data in streams and keep stream aligned. Add support for
19591         exception support in method headers.
19592
19593 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19594
19595         * unicode.c: make iconv_convert () return the number of bytess written
19596         in the output buffer.
19597
19598 2002-01-15  Dick Porter  <dick@ximian.com>
19599         * threads.c: Make the runtime's idea of infinite timeouts coincide
19600         with the class library's
19601
19602         Fix a particularly egregious bug in mono_thread_cleanup(). That
19603         code was so utterly bogus it must have been written on a Monday.
19604
19605 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19606
19607         * reflection.h: add subtypes field to TypeBuilder.
19608         * reflection.c: encode constants for literal fields.
19609         Handle subtypes. Fix user string token (and add a zero byte)
19610         at the end.
19611         
19612 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19613
19614         * class.c (mono_class_init): bug fix: assign slot numbers for
19615         abstract methods.
19616
19617 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19618
19619         * reflection.c: don't try to output a code RVA for abstract methods.
19620         Small fixes for method header format. Output parameter info to the
19621         ParamDef table. Save method overriding info to MethodImpl table.
19622         Fix property support. Allow typedef.extends to be a type in the
19623         building assembly.
19624         * verify.c: fix off-by-one error.
19625
19626 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19627
19628         * class.c: fix mono_class_from_mono_type () for szarray types.
19629         Remove unused cache check in mono_class_from_type_spec().
19630         * icall.c: *type_from_name () functions handle simple arrays and byref.
19631         * reflection.c: handle byref and szarray types. Handle methods without
19632         body (gets P/Invoke compilation working). Handle types and fields in
19633         get_token ().
19634         * reflection.h: add rank to MonoTypeInfo.
19635
19636 2002-01-10  Dick Porter  <dick@ximian.com>
19637
19638         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
19639         internal calls
19640
19641 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19642
19643         * icall.c: initialize class in type_from_handle ().
19644         Loop also in parent classes for get_method ().
19645         * reflection.c: properly encode class and valuetype types.
19646         Start on encoding TypeBuilder types. Handle fieldrefs.
19647         Use correct length when registering a user string.
19648         Handle ConstructorBuilder and MonoMethod in get_token ().
19649         Make mono_type_get_object () aware of cached types.
19650         * object.c: back out change to mono_string_new ().
19651
19652 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
19653         * object.c: mono_string_new should return a NULL when the string 
19654         passed in is NULL -- not try to deference it.
19655         
19656 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19657
19658         * icall.c: hack to make IsSubType work for TypeBuilders.
19659         * reflection.c: emit constructors before methods.
19660         Retrieve param names in mono_param_get_objects().
19661
19662 2002/01/05  Nick Drochak  <ndrochak@gol.com>
19663
19664         * Makefile.am: fix list of headers and sources so automake 1.5
19665         doesn't complain. Removed \# at end of list.
19666
19667 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19668
19669         * reflection.c: get token for a method ref. Set return type of
19670         constructor to void.
19671         * loader.c: debug message.
19672         * class.c: typo fix.
19673
19674 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
19675
19676         * icall.c: fix array init with rank > 1. FindMembers
19677         loops in parent class as well.
19678         * image.c: do not insert nested types in name cache.
19679         * reflection.c: warning fix.
19680         * reflection.h: add override method (for interface impl).
19681
19682 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
19683
19684         * metadata.c: fix customattr decoding.
19685
19686 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
19687
19688         * rawbuffer.cs: Added native Win32 implementation, avoids using
19689         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
19690
19691 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
19692
19693         * class.c: make the low-level routines handle the cache.
19694
19695 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
19696
19697         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
19698
19699 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
19700
19701         * class.c: fix mono_array_element_size() for objects.
19702         * class.h, class.c: add properties to MonoClass and load them
19703         at init time.
19704         * icall.c: check with isinst() when assigning a value to an array
19705         instead of requiring the classes to match exactly.
19706         Implemented icall for System.Type::GetType().
19707         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
19708         enums. Handle bindingflags when looking for methods and fields.
19709         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
19710         and mono_metadata_methods_from_property().
19711         * reflection.h, reflection.c: added structures for propreties,
19712         parameters and enums. Implemented mono_property_get_object() and
19713         mono_param_get_objects().
19714
19715 2001-12-18  Dick Porter  <dick@ximian.com>
19716
19717         * file-io.c: Use mono_string_to_utf16() instead of
19718         mono_string_chars()
19719
19720         * object.c: Added mono_string_to_utf16(), which copies the non
19721         NULL-terminated MonoString into a new double-null-terminated
19722         buffer.
19723
19724 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
19725
19726         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
19727
19728 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
19729
19730         * file-io.c: raise exceptions if handle is invalid.
19731
19732 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
19733
19734         * assembly.c: yet another check for mscorlib.
19735         * class.c, class.h: load nesting info for classes.
19736         * icall.c: many new functions to support the Reflection classes.
19737         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
19738         * reflection.h, reflection.c: mono_image_create_token(),
19739         mono_assembly_get_object(), mono_type_get_object(),
19740         mono_method_get_object(), mono_field_get_object(): methods to return
19741         objects that parallel the C representation of assemblies, types,
19742         methods, fields.
19743
19744 2001-12-11  Dick Porter  <dick@ximian.com>
19745
19746         * icall.c:
19747         * file-io.c: Internal calls for file IO.
19748
19749 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
19750
19751         * tabledefs.h: missing FileAttributes.
19752         * verify.h, verify.c: use is_valid_string () to simplify and check for
19753         valid strings more correctly. Fix warnings and speeling.
19754         Check more tables: Filed, File, ModuleRef, StandAloneSig.
19755         Check code: branches, maxstack, method calls.
19756
19757 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
19758
19759         * object.c (mono_object_allocate): removed static, so that the jit
19760         can allocate value types.
19761
19762         * icall.c (ves_icall_System_DateTime_GetNow): impl.
19763
19764 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19765
19766         * class.c: init enum types right away and register the
19767         token->MonoClass map in mono_class_create_from_typedef ().
19768         * verify.h, verify.c: first cut of the verifier.
19769         * pedump.c: add --verify switch to verify metadata tables.
19770         * tabledefs.h: add some missing enums.
19771
19772 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
19773
19774         * class.c (mono_install_runtime_class_init): impl.
19775         (mono_class_init): renamed mono_class_metadata_init to
19776         mono_class_init, also removed the metadata_inited flag
19777
19778         * object.c (mono_object_isinst): use faster algorithm
19779
19780 2001-11-30  Radek Doulik  <rodo@ximian.com>
19781
19782         * mono-endian.h: reverted last change
19783         added function prototypes
19784
19785         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
19786         add mono-endian.c back
19787
19788         * mono-endian.c: returned back, as Paolo pointed out, it's needed
19789         for unaligned access, I've mistaked it with endianess. I am
19790         sorry.
19791         (mono_read16): fix reverted endianess
19792         (mono_read64): ditto
19793         (mono_read32): ditto
19794
19795 2001-11-30  Dick Porter  <dick@ximian.com>
19796
19797         * exception.c: Implement mono_exception_from_name()
19798
19799 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19800
19801         * metadata.h, metadata.c: remove params_size and locals_size and their
19802         calculation from the metadata code: they are only usefult to the
19803         interp.
19804
19805 2001-11-29  Radek Doulik  <rodo@ximian.com>
19806
19807         * object.c (mono_ldstr): swap bytes here, it's probably not the
19808         best place, but works for me now, I'll redo it once I know mono
19809         better, also note that I add PROT_WRITE and don't reset back, also
19810         note that it's only affects big endians, so x86 should be OK
19811
19812         * mono-endian.h (read16): use just glib macros for both endians
19813
19814         * mono-endian.c: removed as glib macros are used in in
19815         mono-endian.h so we don't need to care about endianess for read
19816         macros as glib does that for us already
19817
19818 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
19819
19820         * class.h, class.h: take minimum alignment into consideration so
19821         that the fields of a class remain aligned also when in an array.
19822
19823 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19824
19825         * loader.h, loader.c: add mono_method_get_param_names().
19826         * class.c: 0-init class fields.
19827
19828 2001-11-26  Dick Porter  <dick@ximian.com>
19829
19830         * icall.c:
19831         * threads-types.h:
19832         * threads.c: New file that handles System.Threading on all platforms
19833
19834         * object.c: 
19835         * object.h: Remove the synchronisation struct from MonoObject,
19836         replace it with a pointer that gets initialised on demand
19837
19838         * Makefile.am: Replace all the system-specific threading code with
19839         a single file that uses the new wrapper library
19840
19841 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
19842
19843         * class.c, class.h: add mono_install_trampoline() so that the runtime
19844         can register a function to create a trampoline: removes the ugly
19845         requirement that a runtime needed to export arch_create_jit_trampoline.
19846         * object.h, object.c: added mono_install_handler() so that the runtime
19847         can install an handler for exceptions generated in C code (with
19848         mono_raise_exception()). Added C struct for System.Delegate.
19849         * pedump.c: removed arch_create_jit_trampoline.
19850         * reflection.c: some cleanups to allow registering user strings and
19851         later getting a token for methodrefs and fieldrefs before the assembly
19852         is built.
19853         * row-indexes.h: updates and fixes from the new ECMA specs.
19854
19855 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
19856
19857         * class.h, class.c: add enum_basetype field to MonoClass.
19858         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
19859         to get index in the constant table reated to a field, param or
19860         property.
19861         * reflection.h, reflection.c: handle constructors. Set public-key and
19862         version number of the built assembly to 0.
19863         * row-indexes.h: update from new ECMA spec.
19864
19865 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19866
19867         * class.h, class.c: add a max_interface_id to MonoClass.
19868         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
19869         since it's used to do that. Added mono_type_type_from_obj().
19870         Make GetType() return NULL instead of segfaulting if the type was not
19871         found. Handle simple arrays in assQualifiedName.
19872         * object.h: add a struct to represent an Exception.
19873         * reflection.c: output call convention in method signature.
19874         Add code to support P/Invoke methods and fixed offsets for fields.
19875
19876 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
19877
19878         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
19879         the value.
19880         * icall.c: use mono_array_addr instead of array->vector: fixes the
19881         reflection image writing.
19882         * reflection.c: init call convention byte to 0 in method signature.
19883         Encode the property signature. Don't output property-related methods
19884         twice. Really process the properties for a type (don't cast a field to
19885         a property, my mom always told me that).
19886         Fix 64 bit issues in pointer alignment in a different and more
19887         readable way.
19888
19889 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
19890
19891         * loader.h: Removed type class from MonoDefaults, added monotype
19892
19893         * loader.c: Loaded MonoType, removed loading of Type
19894
19895         * icall.c (my_mono_new_object): Now returns a System.MonoType,
19896         and fills in System.Type._impl with a RuntimeTypeHandle rather
19897         than the actual MonoClass *
19898
19899         (ves_icall_type_from_handle): change from type_class to
19900         monotype_class
19901
19902         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
19903         implemented
19904
19905         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
19906         implemented
19907
19908         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
19909
19910         (ves_icall_System_Reflection_Assembly_GetType): implemented
19911
19912         (ves_icall_System_MonoType_assQualifiedName): implemented
19913
19914         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
19915
19916 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
19917
19918         * assembly.c (mono_assembly_open): Implement a cache for the
19919         assemblies. 
19920
19921         (mono_assembly_close): only destroy the assembly when the last
19922         reference is gone.
19923         
19924 2001-11-09  Dick Porter  <dick@ximian.com>
19925
19926         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
19927
19928 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
19929
19930         * class.c (mono_class_metadata_init): bug fix: compute the right slot
19931
19932 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19933
19934         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
19935         from Martin Weindel.
19936         * object.h: add mono_string_chars ().
19937
19938 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
19939
19940         * reflection.c (build_compressed_metadata): Eliminates warnings
19941         and uses 64-bit clean code.
19942
19943         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
19944         (mono_type_equal): Change signature to eliminate warnings.
19945
19946 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19947
19948         * icall.c, loader.c: remove the internalcall array constructors.
19949         Changes to match the new MonoArray structure.
19950         * object.h, object.c: an array object doesn't allocate an extra
19951         vector. Add mono_array_new_full () to create jagged arrays easily.
19952
19953 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19954
19955         * metadata.h, metadata.c: add mono_metadata_field_info () to
19956         retreive all the info about a field from vairous tables.
19957         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
19958         * class.h, class.c: augment MonoClassField with more info.
19959         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
19960         policy and load a field's RVA if needed.
19961
19962 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
19963
19964         * class.c (mono_class_metadata_init): create a trampoline for all
19965         virtual functions instead of actually compiling them.
19966
19967 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
19968
19969         * class.h, class.c: include name in MonoClassField.
19970         * class.c: fix fundamental type of System.Object and System.String.
19971         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
19972         tokens in ldtoken.
19973         * icall.c: remove internalcalls for the Reflection stuff that is now
19974         done in C# code.
19975         * loader.c: mono_field_from_memberref () implementation.
19976         * mono-endian.c: thinko (s/struct/union/g).
19977         * object.c, object.h: make the mono_string_* prototypes actually use
19978         MonoString instead of MonoObject.
19979         * reflection.c, reflection.h: updates for changes in the reflection
19980         code in corlib: we use C structures that map to the actual C# classes.
19981         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
19982         fat method header if needed and use the info from the ILGenerator for
19983         methods. Handle fields in types. Misc fixes.
19984
19985 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
19986
19987         * class.c (mono_class_metadata_init): bug fix: always allocate
19988         space for static class data
19989
19990 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
19991
19992         * class.c (mono_compute_relative_numbering): use relative
19993         numbering to support fast runtime type checks.
19994
19995 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
19996
19997         * class.c (mono_class_create_from_typeref): added debugging output
19998         to print class name when MonoDummy is returned instead of real class
19999
20000 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20001
20002         * class.c (mono_class_metadata_init): interface offset table now
20003         contains pointers into the vtable - this is more efficient for the jit
20004
20005 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20006
20007         * class.c (mono_class_metadata_init): use a temporary vtable (the
20008         old algorithm only worked for the interpreter, but not for the jit)
20009
20010 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20011
20012         * loader.c (method_from_memberref): use mono_class_get to get the
20013         class of an array instead of using System.Array directly.
20014         (mono_get_method): also add MEMBERREF methods to the method cache
20015         which usefull for arrays.
20016
20017 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20018
20019         * pedump.c (arch_compile_method): added to compute vtable entry
20020
20021         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20022         number of interfaces.
20023         
20024         * class.h: merged MonoArrayClass into MonoClass
20025
20026         * class.c (mono_class_create_from_typedef): compute the vtable size and
20027         allocate space to include the vtable inside MonoClass
20028         (mono_class_metadata_init): initialize the vtable
20029
20030 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20031
20032         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20033         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20034         * image.c: endian fixes by Laurent Rioux.
20035         * object.h, object.c: rename MonoStringObject to MonoString and
20036         MonoArrayObject to MonoArray. Change some function names to conform to
20037         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20038         guint16* as first argument, so don't use char*.
20039         Provide macros to do the interesting things on arrays in a portable way.
20040         * threads-pthread.c: updates for the API changes and #include <sched.h>
20041         (required for sched_yield()).
20042         * icall.c: updates for the API changes above.
20043         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20044         platforms that need them.
20045
20046 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20047
20048         * class.c: set the correct type for all the fundamental
20049         type when loading the class.
20050
20051 2001-10-05  Dick Porter  <dick@ximian.com>
20052
20053         * threads-pthread.c (pthread_mutex_timedlock): Simple
20054         compatibility version for C libraries that lack this call.
20055
20056 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20057
20058         * class.c: MonoTypes stored in MonoClass are stored as
20059         fundamental MonoTypes when the class represents a
20060         fundamental type (System.Int32, ...).
20061         The TypeHandle return by ldtoken is a MonoType*.
20062         * icall.c: ves_icall_get_data_chunk () write out all the
20063         PE/COFF stuff. Implement ves_icall_define_method (),
20064         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20065         * image.c: properly skip unknown streams.
20066         * loader.h, loader.c: add type_class to mono_defaults.
20067         * metadata.c, metadata.h: export compute_size () as
20068         mono_metadata_compute_size () with a better interface.
20069         Typo and C&P fixes.
20070         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20071         * reflection.c, reflection.h: many cleanups, fixes, output method
20072         signatures and headers, typedef and typeref info, compress the metadata
20073         tables, output all the heap streams, cli header etc.
20074         * row-indexes.h: typo fixes.
20075
20076 2001-10-04  Dick Porter  <dick@ximian.com>
20077
20078         * object.h: Add a synchronisation mutex struct to MonoObject
20079
20080         * object.c (mono_new_object): Initialise the object
20081         synchronisation mutexes
20082
20083         * icall.c: System.Threading.Monitor internal calls
20084         
20085         * threads-pthread.h:
20086         * threads-pthread.c: System.Threading.Monitor internal calls
20087
20088         * threads-types.h: New file, includes the system-specific thread
20089         structures
20090         
20091         * threads-pthread-types.h:
20092         * threads-pthread-types.c: New files, handle pthread-specific
20093         synchronisation types
20094
20095         * threads-dummy-types.h: 
20096         * threads-dummy-types.c: New files of dummy support for
20097         thread-specific types
20098
20099         * metadata.c:
20100         * image.c:
20101         * pedump.c: include mono-endian.h not endian.h
20102         
20103         * Makefile.am: More threads files.
20104         Name mono-endian.h not endian.h
20105
20106 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20107
20108         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20109         stuff and implement a few more bits.
20110         * icall.c: a field needs to be dereferenced twice. Do not use the same
20111         name for two variables in the same scope.
20112         * image.c, image.h: cleanups.
20113
20114 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20115
20116         * class.c (mono_class_metadata_init): bug fix: compute the right size
20117
20118 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20119
20120         * icall.c: implemented some of the Reflection internalcalls.
20121         * image.c, image.h: start writing out the PE/COFF image.
20122         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20123         that does the reverse than decode_blob_size ().
20124         * object.c: use mono_metadata_encode_value (). Move here
20125         temporary implementation of mono_string_to_utf8 ().
20126         * rawbuffer.c: make malloc_map static.
20127
20128 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20129
20130         * metadata.c: fix type comparison for arrays.
20131         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20132         Added a couple of new classes to monodefaults.
20133         * icall.c: added a couple of Reflection-related internalcalls.
20134         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20135         Added a byval_arg MonoType to MonoClass.
20136
20137 2001-09-28  Dick Porter  <dick@ximian.com>
20138
20139         * icall.c:
20140         * threads-pthread.h: 
20141         * threads-pthread.c: Implemented internal calls for
20142         LocalDataStoreSlot operations.  Applied mutexes around all shared
20143         data.  Reworked the thread creation and Start() operations to
20144         avoid a race condition.
20145         
20146         * threads-dummy.h:
20147         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20148
20149 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20150
20151         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20152
20153 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20154
20155         * class.c, loader.c: warn and return NULL instead of erroring out.
20156         * icall.c: added System.AppDomain::getCurDomain().
20157         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20158
20159 2001-09-25  Dick Porter  <dick@ximian.com>
20160
20161         * threads-pthread.h:
20162         * threads-pthread.c: Implemented timed thread joining and added
20163         System.Threading.Thread::Join_internal internal call
20164
20165         * icall.c: Added System.Threading.Thread::Join_internal internal call
20166
20167         * threads-dummy.h:
20168         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20169
20170 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20171
20172         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20173         mono_string_intern () to implement the semantics of the ldstr opcode
20174         and the interning of System.Strings.
20175         * icall.c: provide hooks to make String::IsIntern and String::Intern
20176         internalcalls.
20177
20178 2001-09-23  Dick Porter  <dick@ximian.com>
20179
20180         * threads-dummy.c: 
20181         * threads-dummy.h: New files of dummy threading routines
20182
20183         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20184         support code based on system specifics
20185
20186         Rename PTHREAD_LIBS to THREAD_LIBS
20187         
20188 2001-09-23  Dick Porter  <dick@ximian.com>
20189
20190         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20191         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20192         internal calls.
20193         (mono_thread_init): Set up a Thread object instance to return when
20194         the main thread calls Thread.CurrentThread
20195         (mono_thread_cleanup): Wait for all subthreads to exit
20196
20197         * icall.c: New internal calls for System.Threading.Thread::Sleep
20198         (including Schedule) and CurrentThread
20199
20200         * threads.h: New file, to insulate thread-specific stuff from the
20201         rest of the code
20202
20203 2001-09-21  Dick Porter  <dick@ximian.com>
20204
20205         * threads-pthread.h: 
20206         * threads-pthread.c: New file, for handling pthreads-style
20207         threading support.  Start() now starts a new thread and executes
20208         the ThreadStart delegate instance.
20209
20210         * icall.c: Added the internalcall for
20211         System.Threading.Thread::Start_internal
20212
20213         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20214
20215 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20216
20217         * loader.c: work around the different signatures for delegates
20218         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20219
20220 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20221
20222         * class.h, class.c: add mono_class_get_field_from_name ().
20223         * *: Fix C comments and other ANSI C issues.
20224
20225 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20226
20227         * endian.h, assembly.c: fix some endianness issues.
20228
20229 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20230
20231         * loader.h, load.c: add delegate_class to mono_defaults.
20232         Handle runtime provided methods in mono_get_method ().
20233
20234 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20235
20236         * loader.c (mono_get_method): use pinvoke for internal call
20237
20238         * icall.c: use pinvoke for internal call
20239
20240         * loader.c (method_from_memberref): set the method name
20241
20242 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20243
20244         * metadata.c: help the compiler generate better code for
20245         mono_class_from_mono_type ().
20246
20247 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20248
20249         * class.c (mono_class_metadata_init): delayed computing of the
20250         class size to mono_class_metadata_init ()
20251
20252 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20253
20254         * class.c, class.h: add an interfaces member to MonoClass.
20255         * image.c, image.h: add assembly_name field to MonoImage
20256         from the assembly table.
20257         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20258
20259 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20260
20261         * class.c: Handle Array in mono_class_from_mono_type ().
20262         * metadata.c, pedump.c: some endian fixes.
20263
20264 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20265
20266         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20267         * metadata.c: fix small problem introduced with the latest commit.
20268
20269 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20270
20271         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20272         We don't need a MonoMetadata pointer anymore to compare signatures in
20273         mono_metadata_signature_equal (), update callers.
20274         Reduced memory usage an number of allocations for MonoMethodHeader and
20275         MonoMethodSignature.
20276
20277 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20278
20279         * metadata.c: added compare for szarray.
20280
20281 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20282
20283         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20284         and add a couple more types to it and mono_defaults. Give an hint on
20285         classes that need implementing in our corlib and are referenced
20286         in mscorlib.
20287
20288 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20289
20290         * class.h, class.c: keep track if a class is also an Enum.
20291         * loader.c: Implement a couple more types for use in libffi
20292         marshalling. Gives better diagnostics when failing to dlopen
20293         a library. Set method->klass for P/Invoke methods, too.
20294
20295 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20296
20297         * class.c, class.h: add a MonoType this_arg to MonoClass that
20298         represents a pointer to an object of the class' type that
20299         can be used by the interpreter and later the type cache.
20300         Add best guess alignment info for valuetype objects.
20301
20302 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20303
20304         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20305         into MonoType: one less level of indirection and allocation and
20306         simplifies quite a bit of code. Added cache for MonoTypes that are
20307         used frequently, so that we don't need to allocate them all the time.
20308
20309 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20310
20311         * class.c (mono_class_create_from_typedef): System.Enum is also a
20312         value type, although it does not derive from System.ValueType
20313         (maybe a bug in the ms compiler?)
20314
20315         * metadata.c (mono_type_size): return the right size for value types
20316
20317         * loader.c (mono_get_method): only initialize method header if not abstract
20318
20319         * class.c (mono_class_from_mono_type): use mono_default values. 
20320
20321 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20322
20323         * *: use MonoClass pointers instead of <type_tokens>
20324         
20325         * class.h: new flag: metadata_inited.
20326
20327         * class.c (mono_class_metadata_init): impl.
20328         (mono_class_instance_size): impl.
20329         (mono_class_data_size): impl.
20330
20331 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20332
20333         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20334         MonoClass now has the name and name_space fields. 
20335         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20336         mono_get_method () takes and optional MonoClass as argument.
20337         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20338         instead that takes advantage of a map from class names to typedef
20339         tokens in MonoImage.
20340
20341 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20342
20343         * metadata.c: zero is not a valid alignment boundary.
20344         Merge MONO_TYPE_VOID in default decoding code.
20345
20346 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20347
20348         * image.h: merged MonoMetadata into MonoImage
20349
20350         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20351         identify the type of elements.
20352
20353 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20354
20355         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20356         * cil-coff.h: split MonoMSDOSHeader and add size info.
20357         * image.c: add some consistency checks.
20358         * metadata.c: fix row size computation: one programmer
20359         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20360         add explanation for the locator routine.
20361         Fix decoding of size in method header.
20362         
20363 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20364
20365         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20366         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20367         function from gnome-libs.  This uses the right path separator
20368         based on the OS, and also works around a bug in some systems where
20369         a double slash is not allowed. 
20370         (default_assembly_name_resolver): Use g_concat_dir_and_file
20371         (mono_assembly_open): ditto.
20372
20373 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20374
20375         * metadata.c (mono_metadata_signature_equal): impl.
20376
20377         * *: void is now a realy MonoType (instead of using NULL)
20378         
20379         * metadata.c (do_mono_metadata_parse_type): use
20380         mono_metadata_parse_type to parse void value.
20381
20382 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20383
20384         * metadata.c, metadata.h: in the signature and method header store
20385         only the space required for holding the loca vars and incoming arguments.
20386
20387 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20388
20389         * metadata.c (do_mono_metadata_parse_type): treat void like any
20390         other type (instead of assigning NULL);
20391
20392 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20393
20394         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20395
20396 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20397
20398         * image.c (do_mono_image_open): added a cache for arrays.
20399
20400 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20401
20402         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20403         decode a single column from a row in a metadata table and changes
20404         to take advantage of it in the typedef locator (gives a nice speed up).
20405         Store offset info for function params.
20406
20407 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20408
20409         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20410
20411 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20412
20413         * assembly.c: how could mono_assembly_close () had ever worked?
20414         * metadata.c, metadata.h: provide offset info for local vars.
20415         Implement mono_type_size () to take care of alignment as well
20416         as size (it was mono_field_type_size in cli/class.c before).
20417
20418 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20419
20420         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20421
20422         * assembly.h (CORLIB_NAME): set to corlib.dll
20423
20424         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20425
20426 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20427
20428         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20429         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20430         tokentype.h: massive namespace cleanup.
20431
20432 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20433
20434         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20435
20436 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20437
20438         * metadata.c (mono_metadata_free_type): added check for type !=
20439         NULL (void) before calling mono_metadata_free_type()
20440
20441 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20442
20443         * metadata.h, row_indexes.h: added header with enumerations to use
20444         to index in the columns from tables in metadata and to decode coded
20445         tokens: we should start using this instead of embedding magic numbers
20446         all over the code.
20447
20448 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20449
20450         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20451         Move metadata_t info from cli_image_info_t to MonoImage, where
20452         it's easily accessible. Changed all the uses accordingly.
20453         Added the method and class caches to MonoImage.
20454         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20455         and mono_metadata_decode_value () signature to be more consistent
20456         with the other parse functions (and simplify code). Taken advantage
20457         of zero-length array allocation with GCC. Removed reduntant (and
20458         wrong) MonoFieldType struct and use MonoParam instead. Changed
20459         mono_metadata_parse_field_type () to use common code for parsing.
20460         Added mono_metadata_typedef_from_field () and
20461         mono_metadata_typedef_from_method () to lookup a typedef index from a
20462         field or method token.
20463         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20464
20465 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20466
20467         * metadata.c (mono_metadata_parse_field_type): Implement. 
20468         (do_mono_metadata_parse_type): Split engine from
20469         mono_metadata_parse_type, so that we can create smaller structures
20470         for things that just have one pointer to the MonoType (look at
20471         the MonoFieldType)
20472
20473 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20474
20475         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20476         as Jan Gray found out, it is incorrect. 
20477
20478 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20479
20480         * assembly.c: Implement asssembly loading.  This loads an image
20481         and loads all the referenced assemblies.  Come to think of it, we
20482         could always do lazy loading of the assemblies. 
20483
20484         * image.c (mono_image_open): Keep loaded images in a hashtable.
20485
20486         * image.h (MonoImage): Add reference count.
20487
20488 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20489
20490         * assembly.c (mono_assembly_open): Keep track of the file name in
20491         case the assembly has no ASSEMBLY table.
20492
20493         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20494         from get.c here.
20495
20496 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20497
20498         * metadata.c, metadata.h: decode local vars in method header
20499         parse function. Change callers accordingly.
20500
20501 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20502
20503         * metadata.h, cil-coff.h: protect against multiple inclusion.
20504         Added some new structures to hold information decoded from metadata:
20505         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20506         and relevant decoding/free functions.
20507         * metadata.c: implement decoding functions. Add warning for out of bounds
20508         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20509         all the info about a method signature and invocation. Remove check on
20510         uninitialized local var in parse_mh() and fix memory leak.
20511
20512 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20513
20514         * metadata.h: More macros.
20515
20516         * tokentype.h: New file.
20517
20518 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20519
20520         * assembly.c: added a consistency check and initialize
20521         some structures with g_new0().
20522         * metadata.c: fixed a couple more bugs in table size computation
20523         and add other checks for out-of bound access to metadata.
20524
20525 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20526
20527         * metatada.c: fix bugs computing table sizes. Spew a
20528         warning when index in string heap is out of bounds.
20529
20530 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20531
20532         * metadata.h: Add a couple of macros to manipulate tokens. 
20533
20534 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20535
20536         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20537         cli_section_tables).
20538
20539 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20540
20541         * metadata.c (mono_metadata_user_string): New function, provides
20542         access to the UserString heap. 
20543
20544 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20545
20546         * metadata.c: Add inline documentation.
20547
20548 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20549
20550         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20551         files. 
20552
20553 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20554
20555         * typeattr.h: New file, TypeAttribute flags. 
20556
20557 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20558
20559         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20560         mono_assembly_ensure_section): Section loading code.
20561         (load_section_tables): Load the sections.
20562
20563         * mono/metadata/metadata.c (mono_metadata_locate_token,
20564         mono_metadata_locate): Functions to locate the information
20565         definition given a token or a table and an index.
20566         (mono_metadata_compute_table_bases): New.
20567         (compute_size): New function to compute the sizes of the various
20568         tables.
20569
20570         * mono/metadata/metadata.h: Finish listing the different index
20571         types. 
20572
20573         * mono/metadata/pedump.c: Improve to dump new information.
20574
20575 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20576
20577         * mono/metadata/metadata.c: Entered all the tables matching
20578         Beta2. 
20579
20580         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20581
20582
20583