2007-04-04 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-04-04  Martin Baulig  <martin@ximian.com>
2
3         * debug-helpers.c
4         (mono_method_desc_full_match): Add support for nested classes.
5
6 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
7
8         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
9
10 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
11
12         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
13         waiting for too many threads.
14
15 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
16
17         * environment.c: Fix return value check on uname so we can get the 
18         executing version on Solaris operating systems.
19
20 2007-03-28  Jb Evain  <jbevain@gmail.com>
21
22         * class.c (mono_type_get_name_recurse): Complete the
23         fix for the creation of assembly qualified names for
24         pointer types. Fixes #81208.
25
26 2007-03-27  Dick Porter  <dick@ximian.com>
27
28         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
29         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
30         changed.
31
32         * threads.c
33         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
34         the value of ReleaseMutex().
35
36 2007-03-27  Dick Porter  <dick@ximian.com>
37
38         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
39         in little-endian order, not network endian, so must be converted
40         to host endian here.  Fixes bug 80593.
41
42 2007-03-22  Jb Evain  <jbevain@gmail.com>
43
44         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
45         qualified names for pointer types. Fixes #81208.
46
47 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
48
49         * marshal.c: Add support for PreserveSigAttribute. 
50         
51         Code is contributed under MIT/X11 license.
52
53 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
54
55         * process.c: Fix endianness issues. Fixes #81126.
56
57         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
58         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
59
60         * image.c (mono_image_lookup_resource): Make this work on big-endian
61         machines.Change API contract so the caller needs to free the return value.
62         
63         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
64         API change.
65         
66 2007-03-14  Martin Baulig  <martin@ximian.com>
67
68         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
69         mono_type_get_desc() as well.
70
71 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
72
73         * icall.c:  Fix environ access in VS.  
74         
75 2007-03-13  Alp Toker  <alp@atoker.com>
76
77         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
78         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
79         #63841.
80
81 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
82
83         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
84         circular references among dynamic methods. Fixes #81091.
85
86         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
87
88 2007-03-09  Martin Baulig  <martin@ximian.com>
89
90         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
91
92 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
93
94         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
95         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
96         
97         Code is contributed under MIT/X11 license.
98         
99 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
100
101         * loader.c: Reapply patch for bug #79424.
102
103 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
104
105         * metadata.c (mono_type_to_unmanaged): Only convert object to
106         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
107
108 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
109
110         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
111         (and incorrectly set) is_reference field from MonoGenericInst.
112
113 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
114
115         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
116         a little earlier.
117
118         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
119
120         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
121
122 2007-03-05  Miguel de Icaza  <miguel@novell.com>
123
124         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
125         FileOptions.1 value to mean "temporary", map that to
126         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
127
128         Fixes 80688
129
130 2007-03-03  Marek Habersack  <mhabersack@novell.com>
131
132         * appdomain.c: implement MS .Net style shadow copying. Copies of
133         the assemblies are made in a subdirectory of the dynamic base
134         directory, the assembly names are preserved.
135         Copy .mdb and .config files along with the assemblies being shadowed.
136
137 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
138
139         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
140         (emit_marshal_handleref): Ditto.
141
142         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
143         on Visual C++. Fixes #80671.
144
145 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
146
147         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
148         for clone operations.
149
150 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
151
152         * marshal.c: Fix warnings.
153
154 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
155
156         * loader.c: allow case-insensitive matching of the dll name
157         in dllmap handling when prefixed with "i:".
158
159 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
160
161         * threads.c: Fix #ifdef for dummy_apc function for VS.
162
163 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
164
165         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
166
167 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
168         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
169         giving precedence to the methods with a fully qualified name
170         (InterfaceName.MethodName) when building the interface sections
171         of the vtable.
172
173 2007-02-16  Dick Porter  <dick@ximian.com>
174
175         * threadpool.c (append_job): Fix fast-path array handling, so it's
176         less likely the array will grow exponentially when the load is
177         heavy.
178
179 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
180
181         * metadata-internals.h, loader.c: fix dllmap lookup order
182         for non-function maps, too, and prepare for fallback code.
183
184 2007-02-12  Robert Jordan  <robertj@gmx.net>
185
186         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
187         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
188         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
189         GlobalFree. Fixes a part of bug #77075.
190
191 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
192
193         * loader.c: implemented typedef parent in field memberref.
194
195 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
196
197         * marshal.c: Fix warnings and remember to call Release on
198         IUnknown of RCW.
199         
200         Code is contributed under MIT/X11 license.
201
202 2007-02-10  Miguel de Icaza  <miguel@novell.com>
203
204         * class-internals.h: Add MonoHandleRef definition, and
205         handleref_class to mono_defaults. 
206
207         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
208         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
209
210         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
211         (do nothing on this stage)
212         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
213         (emit_marshal_handleref): New method, used for argument handling
214         of HandleRefs. 
215
216 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
217
218         * class.c (mono_class_setup_parent): Lazily init com types.
219         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
220         init com types.
221         * object.c (mono_remote_class_vtable): Lazily init com types.
222         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
223         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
224         * domain-internals.h: Expose mono_init_com_types.
225         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
226         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
227         Add support for COM Callable Wrapper marshalling.
228         * marshal.h: Add icall definitions.
229         * gc.c: Handle freeing of CCWs in finalizer code.
230         
231         Code is contributed under MIT/X11 license.
232
233 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
234
235         * reflection.c: changed all the signature encoding code to use
236         a variable-sized buffer.
237
238 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
239
240         * marshal.c: locking fixes: never take the loader lock
241         or other runtime locks when holding the marshal lock
242         (fixes bug#80664).
243
244 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
245
246         * marshal.c: make the delegate function pointer mapping
247         work for the moving GC.
248
249 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
250
251         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
252         for bug #80618.
253
254 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
255
256         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
257         gmodule.
258
259 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
260
261         * threadpool.c: made the code moving-GC safe.
262
263 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
264
265         * assembly.c, boehm-gc.c, class-internals.h, class.c,
266         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
267         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
268         warning cleanup.
269         * reflection.c: warning cleanup, some threading and moving GC fixes.
270
271 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
272
273         * class.c, loader.c: create the needed Set/Get/Address array methods
274         as well as the .ctors in mono_class_init (), fixes bug #80567.
275
276 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
277
278         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
279         we doesn't decrease its alignment. Should fix the sparc build.
280
281 2007-01-24  Dick Porter  <dick@ximian.com>
282
283         * socket-io.c
284         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
285         Create the returned object if we need to ignore an unsupported
286         socket option.  Fixes a segfault reported by Atsushi.
287
288 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
289
290         * class.c, object.c: restrict GC-tracked fields to
291         UIntPtr fields used inside corlib, so we provide better
292         type info to the GC and also allow broken packing as in
293         bug #80580.
294
295 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
296
297         * sgen-gc.c: removed duplicated function.
298
299 2007-01-19  Miguel de Icaza  <miguel@novell.com>
300
301         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
302         value that means that the value is not supported, but that we
303         should not return a failure, but instead report this as a
304         successful operation.
305
306 2007-01-19  Raja R Harinath  <rharinath@novell.com>
307
308         Fix tests/bug79956.2.il
309         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
310         (mono_generic_class_get_class): If the generic definition in an
311         enum, copy over other fields related to it.
312
313 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
314
315         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
316         genericinst enums (bug #79215).
317
318 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
319         * class.c: Fix bug 80307.
320
321 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
322
323         * image.c: if the file table is not present, try to load
324         all the modules, since we don't have info about them
325         having or not metadata (bug #80517).
326         * assembly.c: allow mono_assembly_load_references () to
327         work for netmodules.
328
329 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
330
331         * image.c, metadata-internals.h, object.c: execute module
332         cctors when running on the 2 runtime if present (bug #80487).
333
334 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
335
336         * icall.c: optimized InitializeArray() on bigendian.
337
338 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
339
340         * icall.c: fix for the broken ARM FPA double format.
341
342 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
343
344         * icall.c: handle endian issues for r4 and r8 types, too, in
345         the InitializeArray() icall.
346
347 2007-01-15  Miguel de Icaza  <miguel@novell.com>
348
349         * loader.c (mono_loader_error_prepare_exception): Clear the error
350         once we have extracted the information from it, do this before we
351         call into the JIT's class loading mechanisms.
352
353         * object.c (mono_class_create_runtime_vtable): Do not clear the
354         loader error before calling mono_class_get_exception_for_failure
355         as the loader error is needed inside
356         mono_class_get_exception_for_failure to throw the error (thinko).
357
358         Fixes #80521
359         
360 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
361
362         * reflection.c: align fields rva data so it's faster to load at
363         runtime.
364
365 2007-01-12  Raja R Harinath  <rharinath@novell.com>
366
367         Prepare to simplify GenericMethod handling.
368         * class-internals.h (mono_method_get_context): New accessor function.
369         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
370         rather than directly accessing '->context' field.
371
372         * class-internals.h (_MonoGenericParam.method): Move ...
373         (_MonoGenericContainer): ... here.  Add into union with klass field.
374         * class.c, icall.c, loader.c, metadata.c, reflection.c:
375         Update to changes.
376
377 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
378
379         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
380         the wrapper type enum and reduce relocations.
381
382 2007-01-12  Raja R Harinath  <rharinath@novell.com>
383
384         * reflection.c (inflate_mono_method): Reuse method instantiation
385         from the generic method, if available.
386
387 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
388
389         * marshal.c (emit_marshal_variant): Fix conv_arg
390         type in last commit, based on whether parameter is byref.
391         
392 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
393
394         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
395         marshalling.
396         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
397         MONO_TYPE_OBJECT back for VARIANT support.
398
399 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
400
401         * marshal.c, marshal.h, icall-def.h: Implement 
402         Marshal.ReAllocCoTaskMem.
403
404 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
405
406         * marshal.c: memory retention fixes: use the proper
407         image cache for runtime_invoke method lookups.
408
409 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
410
411         * mempool.c: added code to help debug mempool allocations.
412
413 2007-01-11  Dick Porter  <dick@ximian.com>
414
415         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
416         support (experimenting with faking it with IP_MTU_DISCOVER for
417         systems that don't have IP_DONTFRAGMENT.)
418         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
419         icall.
420
421         * icall-def.h: new System.Net.Sockets.Disconnect icall.
422
423         * socket-io.h: Add new fields to MonoSocketAsyncResult
424         corresponding to the new ones in Socket.cs.
425
426 2007-01-11  Raja R Harinath  <rharinath@novell.com>
427
428         Fix IronPython regression mentioned in #80249
429         * metadata.c (do_mono_metadata_parse_generic_class): Clear
430         'cached_context' field, since it may have been initialized as a
431         side-effect of metadata parsing.
432
433         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
434         (_MonoGenericClass.cached_class): Move here and rename from lone
435         remaining field of ...
436         (_MonoInflatedGenericClass): ... this.  Remove.
437         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
438         to changes.
439
440         Fix mcs/tests/test-128.cs regression.
441         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
442         2007-01-10 change below.
443         [MONO_TYPE_OBJECT]: Recurse into array case.
444
445 2007-01-11  Raja R Harinath  <harinath@gmail.com>
446
447         * class-internals.h (mono_get_inflated_generic_class): Remove.
448         * class.c (mono_get_inflated_generic_class): Remove.
449         (mono_generic_class_get_class): Rename from
450         mono_class_create_generic.
451         (mono_class_from_mono_type) [GENERICINST]: Use it.
452         * reflection.c, metadata.c: Update to changes.  Use
453         'mono_class_from_mono_type'.
454
455 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
456
457         * reflection.c: use passed type when encoding an array element
458         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
459
460 2007-01-09  Robert Jordan  <robertj@gmx.net>
461
462         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
463         result arguments (someDelegate.EndInvoke (unrelatedAres)).
464         Fixes bug #80392.
465
466 2007-01-09  Raja R Harinath  <rharinath@novell.com>
467
468         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
469
470         * object.c (set_value): Avoid aliasing between type->data.klass
471         and type->data.generic_class.
472
473         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
474
475 2007-01-08  Raja R Harinath  <rharinath@novell.com>
476
477         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
478         between type->data.klass and type->data.generic_class.
479
480 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
481
482         * marshal.c: In MS.NET, StringBuilder objects are not copied by
483         value in out parameters.
484
485 2007-01-08  Raja R Harinath  <rharinath@novell.com>
486
487         Simplify invariant for MonoGenericClass::klass field.
488         * class.c (mono_class_create_generic): Verify 'klass' is null.
489         * metadata.c (do_mono_metadata_parse_generic_class): Don't
490         initialize 'klass' field.
491
492 2007-01-05  Raja R Harinath  <rharinath@novell.com>
493
494         Ongoing work to avoid redundant data and simplify invariants.
495         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
496         'generic_class', and change type to a GenericInst.
497         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
498         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
499
500 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
501
502         * class.c : skip io-layer under PLATFORM_WIN32.
503
504 2007-01-03  Tor Lillqvist  <tml@novell.com>
505
506         Fix #80305: In a bundled executable, look in the bundled exe
507         assembly to determine the runtime version. Add the possibility to
508         bundle also the machine.config file.
509         
510         * assembly.c (mono_assembly_open_from_bundle): Make
511         non-static. Allow being called even if we have no bundled
512         assemblies, and return NULL right away in that case.
513
514         * domain-internals.h: Declare mono_assembly_open_from_bundle()
515         here.
516
517         * domain.c (app_config_parse): Take an assembly exe file name as
518         parameter instead of a config file name. Check for a bundled
519         config file for that assembly by calling
520         mono_config_string_for_assembly_file() (see below) before looking
521         for one in the file system.
522         (get_runtimes_from_exe): Corrsponding change to call of
523         app_config_parse().
524         (get_runtimes_from_exe): Check for bundled assembly exe file first
525         by calling mono_assembly_open_from_bundle(). If no bundled
526         assembly exe file is found, call mono_image_open() as before to
527         look it up in the file system.
528
529         * mono-config.c: Add variable bundled_machinec_onfig.
530         (mono_config_string_for_assembly_file): New function.
531         (mono_config_for_assembly): Move code snippet that looks for a
532         bundled assembly .config file into the above new function. Call
533         it.
534         (mono_register_machine_config, mono_get_machine_config): New
535         functions to set and retrieve
536
537         * assembly.h: Declare mono_register_machine_config().
538
539         * mono-config.h: Declare mono_get_machine_config() and
540         mono_config_string_for_assembly_file().
541
542         * icall.c: No declaration of environ necessary on Win32. It is
543         declared (as a macro expanding to a function call) in stdlib.h.
544         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
545         New internal mono function. Returns the value of
546         mono_get_machine_config() as a Mono string.
547
548         * icall-def.h: Add get_bundled_machine_config().
549
550 2007-01-04  Raja R Harinath  <rharinath@novell.com>
551
552         Remove redundant field
553         * class-internals.h (_MonoGenericContext.container): Remove field.
554         * loader.c (mono_method_get_signature_full): Don't parse a
555         "container" for a signature parse when the signature is inflated
556         immediately.
557         (method_from_methodspec): Likewise, for a generic_inst.
558         * class.c, metadata.c, reflection.c: Update to changes.
559
560 2006-01-04  Raja R Harinath  <rharinath@novell.com>
561
562         * class-internals.h (_MonoGenericClass): Rename 'context' field to
563         'cached_context', and change semantics -- it starts off NULL, and
564         is initialized on demand.
565         * class.c (mono_generic_class_get_context): New accessor to
566         replace 'context' field accesses.
567         (mono_class_get_context): New helper.
568         (*): Update to changes.
569         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
570
571 2007-01-03  Miguel de Icaza  <miguel@novell.com>
572
573         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
574         before the memcpy.   Fixes Marshal2 regression.
575
576 2007-01-02  Jb Evain  <jbevain@gmail.com>
577
578         * blob.h: add a MONO_TYPE_ENUM definition
579         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
580         fix the encoding of arrays of enums in custom attributes.
581
582         Fixes #79666.
583
584 2007-01-01  Miguel de Icaza  <miguel@novell.com>
585
586         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
587         string is null terminated, but only cut the string short if it
588         overflows the buffer.   
589         
590         (mono_string_to_byvalstr): Also fix this routine.   The code here
591         was not properly terminating a string (it was only terminated
592         because of the previous catch-all memset). 
593
594         I left the memset, because I do not know if applications expect
595         the runtime to clear this region. 
596
597         Fixes #79944.
598
599         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
600         Clear the error before returning to unmanaged code to prevent the
601         runtime from being confused later on (fixes  80420).
602         (ves_icall_type_from_name): Always call mono_loader_clear_error
603         after parsing a type that could have failed.
604         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
605
606         * loader.c (mono_loader_clear_error): Fix indentation.
607
608 2006-12-28  Martin Baulig  <martin@ximian.com>
609
610         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
611
612 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
613
614         * reflection.c: patch from Rolf Bjarne Kvinge to fix
615         getting a token for an EnumBuilder.
616
617 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
618
619         * reflection.c: be more careful in case resource generation
620         fails to create the data array.
621
622 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
623
624         * sgen-gc.c: write barrier for clone and fix unregister handles.
625
626 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
627
628         * reflection.c: some fixes needed in the generics code for the moving GC.
629
630 2006-12-22  Robert Jordan  <robertj@gmx.net>
631
632         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
633         account. Fixes bug #80299.
634
635 2006-12-21  Raja R Harinath  <rharinath@novell.com>
636
637         Fix WaitHandle usage in delegates.
638         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
639         * object.c (mono_wait_handle_new): Use the property set method to
640         initialize the handle.
641         (mono_wait_handle_get_handle): New.
642         * threadpool.c (mono_async_invoke): Use it.
643         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
644         Likewise.
645         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
646
647 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
648
649         * marshal.c (emit_marshal): Call emit_marshal_variant and
650         emit_marshal_com_interface when applicable.
651         (emit_marshal_variant, emit_marshal_com_interface): Add
652         methods for this case and remove if's from emit_marshal_object.
653         
654 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
655
656         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
657
658 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
659
660         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
661         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
662         and GlobalFree on Windows. Remove FIXME.
663
664 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
665
666         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
667         implementation for managed objects.
668
669 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
670
671         * object.c: implemented code to be used for checking
672         that no reference field overlaps with non-references.
673
674 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
675
676         * threadpool.c: fix queue code to be compatible with the
677         moving GC.
678
679 2006-12-18  Miguel de Icaza  <miguel@novell.com>
680
681         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
682         in structures by throwing ArgumentNullException.
683
684         (emit_marshal_safehandle): Also when they are null parameters.
685
686         (emit_marshal_safehandle): Add support for ref
687         SafeHandles parameters
688
689 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
690
691         * profiler.c: updated to use the mono-dl API instead of
692         gmodule.
693
694 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
695
696         * profiler.c: updated to use the mono-dl dynamic loading
697         API instead of gmodule.
698
699 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
700
701         * profiler.c: use readlink, older versions of glib don't have
702         g_file_read_link ().
703
704 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
705
706         * profiler.c: try to detect the path to mono if libc fails to provide
707         a useful name (bug #80286).
708
709 2006-12-16  Raja R Harinath  <rharinath@novell.com>
710
711         Fix #80242
712         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
713         instance, use the generic type definition instead.
714         (ves_icall_Type_GetNestedTypes): Likewise.
715         * class.c (mono_class_create_generic): Always set the
716         nested_classes of a generic instance to NULL, even if the generic
717         type definition has nested types.
718
719 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
720
721         * marshal.c (mono_string_from_bstr): Revert previous Windows change
722         and fix on Linux.
723         
724 2006-12-15  Miguel de Icaza  <miguel@novell.com>
725
726         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
727         my arguments were in the wrong order.   I also fixed the Windows
728         version which seems to have had the same issue.
729
730         (mono_free_bstr): On Unix, this is g_free.
731         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
732         conversions (for the tests in corlib to pass).
733
734 2006-12-14  Miguel de Icaza  <miguel@novell.com>
735
736         * marshal.c (emit_ptr_to_object_conv): For now, ignore
737         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
738         exception if a ref SafeHandle in a struct has changed).
739         
740         (emit_struct_conv): Do not perform layout checks for classes
741         derived from SafeHandle, as those are specially handled. 
742
743         (emit_object_to_ptr_conv): Add support for
744         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
745
746         (emit_marshal_safehandle): Implement conversion of return values
747         of safehandles (MARSHAL_ACTION_CONV_RESULT).
748         
749         * threads.c: WaitHandle now is compiled with two different handles
750         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
751         for 2.0.
752         
753         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
754         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
755         these routines to cope with both kinds of fields.
756
757 2006-12-12  Miguel de Icaza  <miguel@novell.com>
758
759         * metadata.c (mono_type_to_unmanaged): Handle the case where
760         type->data.klass is a SafeHandle, and in that case, return the
761         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
762         MONO_MARSHAL_CONV_SAFEHANDLE. 
763
764 2006-12-11  Miguel de Icaza  <miguel@novell.com>
765
766         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
767         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
768         calling emit_marshal_object.
769
770         (emit_marshal_safehandle): Implement marshalling of
771         SafeHandle parameters (no ref support yet).
772
773         (MarshalAction): Document the defines as I implement
774         them for SafeHandle.
775
776         (emit_marshal_object): indentation police.
777
778         * class-internals.h: Define MonoSafeHandle.
779         Add safehandle_class to MonoDefaults type.
780
781         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
782         list of classes to check for fields. 
783
784         * domain.c (mono_init_internal): Add SafeHandle to the list of
785         mono_defaults loaded.
786
787 2006-12-15  Raja R Harinath  <rharinath@novell.com>
788
789         Fix #80253
790         * reflection.c (mono_reflection_bind_generic_parameters): If the
791         generic type definition is a type builder, ensure that it is fully
792         initialized before instantiating it.  Kill some dead code.
793
794 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
795
796         * object.c: clear the loader_error () before loading
797         more metadata stuff (bug #80258).
798
799 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
800
801         * icall.c, icall-defs.h: type modifiers icalls for
802         parameters and properties.
803
804 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
805
806         * object.c, icall.c: fixed warnings.
807
808 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
809
810         * marshal.c: fixed a couple of leaks and coding style in a few places.
811
812 2006-12-08  Dick Porter  <dick@ximian.com>
813
814         * process.c: Cope with NULL ProcessStartInfo arguments on windows
815         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
816         80173.
817
818 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
819
820         * process.c: ProcessStartInfo may have only filename set and
821         arguments can be NULL.
822
823 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
824
825         * icall.c: fix leak found by Robert Jordan.
826
827 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
828
829         * marshal.c, marshal.h: generate managed method to access an element
830         of a multi-dimensional array.
831
832 2006-11-30  Paolo Molaro (lupus@ximian.com)
833
834         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
835
836 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
837
838         * icall.c: back out GetFields () fix until the serialization code is
839         fixed to not depend on the incorrect behaviour.
840
841 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
842
843         * profiler.c: provide defaults if none are set.
844
845 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
846
847         * Makefile.am, attrdefs.h: new public header file with
848         constants for attributes for use by embedders.
849
850 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
851
852         * icall.c: GetFields () fix for bug #80064.
853
854 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
855
856         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
857         removed long unused icalls.
858
859 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
860   
861         * marshal.c: 
862                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
863                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
864                 can be generated without a delegate class.
865                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
866         
867         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
868
869 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
870
871         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
872         #80069.
873
874 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
875
876         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
877         icall-def.h: added icalls needed by System.GC.
878
879 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
880
881         * loader.c: ensure the class in catch clauses is handled
882         correctly for generics methods (fixes bug#79980).
883
884 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
885
886         * monitor.h, monitor.c: added mono_locks_dump () function
887         to help debug deadlocks involving managed locks.
888
889 2006-11-13  Dick Porter  <dick@ximian.com>
890
891         * file-io.c (get_file_attributes): If the file is a symlink try
892         and get the stat data for the target, but also add the
893         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
894         the specs for the windows symlink support, but will probably have
895         to be reworked when I have test data from a vista machine.  Fixes
896         bug 79887.
897
898 2006-11-13  Dick Porter  <dick@ximian.com>
899
900         * gc.c (mono_domain_finalize): 
901         * marshal.c (mono_delegate_begin_invoke): 
902         * threadpool.c (socket_io_init, mono_thread_pool_init)
903         (mono_thread_pool_finish): 
904         * monitor.c (mono_monitor_try_enter_internal): 
905         * threads.c (mono_thread_resume, mono_thread_init)
906         (mono_thread_suspend_all_other_threads)
907         (mono_thread_execute_interruption): 
908         * appdomain.c (mono_domain_unload): Check for NULL error returns
909         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
910         75733.
911
912 2006-11-11  Miguel de Icaza  <miguel@novell.com>
913
914         * process.c
915         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
916         Only close the handle if the value of the handle is not
917         INVALID_HANDLE_VALUE.  This just makes the process a bit more
918         robust.
919
920         Improvement for #75733, so that we do not run into this problem. 
921
922         
923         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
924         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
925         internal variables.  Fixes #79462 
926         
927
928 2006-11-09  Dick Porter  <dick@ximian.com>
929
930         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
931         Use poll() not select().  Fixes bug 79397.
932
933 2006-11-09  Raja R Harinath  <rharinath@novell.com>
934
935         Fix #79872
936         * assembly.c (mono_assembly_load_from_full): Check that the given
937         image has an assembly manifest.
938
939 2006-11-09  Ankit Jain  <jankit@novell.com>
940
941         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
942         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
943         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
944
945 2006-11-07  Dick Porter  <dick@ximian.com>
946
947         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
948         Put the old resolver behaviour back for pre-2.0 profiles.
949
950 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
951
952         * threadpool.c: precise GC and locking fixes.
953
954 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
955
956         * class.c: don't load types that have an explicit unaligned
957         managed reference. Provide better info in the TypeLoad exception.
958         Part of the fix for bug #79744.
959         * object.c: use the correct check for class type load issues.
960
961 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
962
963         * class.c: enforce alignment of fields with managed references
964         even when Pack=1 is forced by the user (bug #77788).
965
966 2006-11-03  Dick Porter  <dick@ximian.com>
967
968         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
969         If the address reverse lookup fails, return it as the hostname
970         anyway.  Fixes bug 79721.
971
972 2006-11-03  Dick Porter  <dick@ximian.com>
973
974         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
975         Fix build on Windows.
976
977 2006-11-02  Dick Porter  <dick@ximian.com>
978
979         * icall-def.h: 
980         * object-internals.h: 
981         * exception.c (mono_get_exception_thread_interrupted): 
982         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
983         Fixes bug 74525.
984
985         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
986         Check for pending Thread.Interrupt.
987
988 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
989         * loader.c: Fixed bug 79684.
990
991 2006-10-27  Dick Porter  <dick@ximian.com>
992
993         * file-io.c (get_file_attributes): Force symlinks to directories
994         to be returned as a regular file.  Fixes bug 79733.
995 2006-10-26  Dick Porter  <dick@ximian.com>
996
997         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
998         CreateFile to open a directory then we need to set the
999         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
1000
1001 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
1002
1003         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1004         friends.
1005
1006 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1007
1008         * sgengc.c: small cleanup of timer code.
1009
1010 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1011
1012         * sgen-gc.c: fix some warnings and start adding support for
1013         complete object removal on domain unload.
1014
1015 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
1016
1017         * assembly.c: build_assembly_name should not consider a version
1018         number without build or revision number invalid. Fixes bug #79715.
1019
1020 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
1021
1022         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1023         call kernel32 function OutputDebugString directly.
1024         
1025         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1026         
1027 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1028
1029         * reflection.c: small cleanup, using a function to insert a MonoString
1030         in the string heap.
1031
1032 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1033
1034         * reflection.c: moving GC fixes.
1035
1036 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1037
1038         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1039         all the objects with finalizers belonging to an unloading appdomain.
1040
1041 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1042
1043         * sgen-gc.c: added ability to allocate even when the nursery is fully
1044         pinned and fixed a couple of bugs.
1045
1046 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1047
1048         * threads.h: Revert the last change for now.
1049
1050         * threads.h (mono_thread_get_pending_exception): Rename this to
1051         mono_thread_get_undeniable_exception ().
1052
1053 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
1054
1055         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1056         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1057         when fname does not refer to valid assembly. This result in a more
1058         meaningful error message.
1059         * exception.c: added mono_get_exception_bad_image_format2 which 
1060         constructs a BadImageFormatException using the ctor taking a custom
1061         message and the file name. Passing in a NULL msg results in a default
1062         message.
1063         * exception.h: define mono_get_exception_bad_image_format2 function.
1064         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
1065         when file name pointed to an invalid IL image. Use 
1066         mono_get_exception_file_not_found2 to construct FileNotFoundException,
1067         as this results in a more meaningful error message.
1068
1069 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1070
1071         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1072         #79465.
1073
1074 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
1075
1076         * metadata.c (mono_type_size): Change the align parameter to guint32 for
1077         consistency with the other _size functions.
1078         (mono_type_stack_size): Ditto.
1079
1080         * class.c object.c icall.c: Fix warnings caused by the above change.
1081
1082         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1083
1084         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1085
1086         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1087
1088 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1089
1090         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1091         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1092         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1093         threadpool.h, threads-types.h: mark more internal functions.
1094
1095 2006-10-11  Dick Porter  <dick@ximian.com>
1096
1097         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1098         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1099         reproduce the bug even before applying the fix.)
1100
1101 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1102
1103         * reflection.c: allow retrieving attributes for arguments in generic
1104         methods (bug #79241).
1105
1106 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1107
1108         * debug-mono-symfile.c: properly check fopen () result (found by
1109         coverity).
1110
1111 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1112
1113         * reflection.c: make error message clearer and fixed two
1114         issuelets found by Coverity.
1115
1116 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1117
1118         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1119
1120 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1121
1122         * object-internals.h, gc-internal.h, profiler-private.h:
1123         mark internal functions.
1124
1125 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1126
1127         * reflection.c: put data in the text section.
1128         * icall.c: recognize more types in type_from_typename ().
1129         * process.c, marshal.c: added some GC FIXMEs.
1130
1131 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1132
1133         * loader.c: check for NULL before initializing.
1134
1135 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1136
1137         * gc.c (finalizer_thread): Use a non-alertable wait here.
1138
1139         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1140         until the correct solution is found.
1141
1142 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1143
1144         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1145         modules with no metadata. Fixes #79596.
1146
1147         * image.c (load_metadata_ptrs): Put back the error message when
1148         the #- heap is encountered since the support is not complete yet.
1149
1150 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1151
1152         * gc.c: do not allow the user to SuppressFinalize () a
1153         delegate because it would leak the trampoline if present.
1154
1155 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1156
1157         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1158         PropertyPtr table.
1159
1160 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1161
1162         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1163
1164         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1165
1166         * row-indexes.h: Add definitions for *Ptr tables.
1167
1168         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1169
1170         * metadata.c (mono_metadata_translate_token_index): New helper function to
1171         translate table indexes used in uncompressed metadata.
1172         (mono_metadata_decode_table_row): Ditto.
1173         (mono_metadata_decode_table_row_col): Ditto.
1174
1175         * metadata.c: Add table schema for *Ptr tables.
1176
1177         * class.c loader.c: Use the new helper function to access the affected metadata
1178         tables.
1179         
1180         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1181         #38532.
1182         
1183 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1184
1185         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1186         sequences which can be unbounded in size. Fixes #79583.
1187
1188 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1189
1190         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1191         static initialization.
1192
1193         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1194
1195         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1196
1197         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1198
1199         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1200         ctor fails, i.e. throw the same exception on subsequent accesses.
1201         
1202 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1203
1204         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1205         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1206         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1207         Handle marshalling of interfaces and VARIANTs contained in structs.
1208         
1209         Code is contributed under MIT/X11 license.
1210         
1211 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1212
1213         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1214         
1215         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1216         mempool.
1217
1218 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1219
1220         * console-io.c: ignore previous SIGINT handler.
1221
1222 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1223
1224         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1225         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1226         #79460, #79461, #79485.
1227
1228         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1229
1230         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1231         #79217.
1232
1233 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1234
1235         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1236         could be generated from it.
1237
1238 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1239
1240         * rand.c: fix read loop to correctly handle EINTR.
1241
1242 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1243
1244         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1245         internal calls are defined to keep methods closer to the declaring
1246         type and allow a significant reduction in runtime relocations and
1247         memory usage.
1248
1249 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1250
1251         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1252         exception message to have FileNotFoundException use the default
1253         assembly load error message. Fixes bug #79426.
1254         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1255
1256 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1257
1258         * threadpool.c: (start_thread_or_queue) use the root domain when
1259         creating the thread instead of the async object one.
1260
1261 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1262
1263         * class.c, object.c, class-internals.h, reflection.c:
1264         for arrays, store element_size inside MonoClass (speedup
1265         for array object creation).
1266
1267 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1268
1269         * icall.c: fixed CodeBase to use the file name and not the module
1270         name (bug #79365).
1271
1272 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1273
1274         * mono-debug.c, mono-debug.h: export find_method as
1275         mono_debug_find_method ().
1276
1277 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1278
1279         * debug-helpers.c, class-internals.h: added a few functions useful
1280         when debugging under gdb.
1281
1282 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1283
1284         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1285         characters that need special handling.
1286
1287 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1288
1289         * mono-config.c: make the os/cpu specification more flexible,
1290         allowing lists and negation.
1291
1292 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1293
1294         * marshal.c: COM Interop fixes. Handle case where method->klass.
1295         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1296         calling convention on non-windows platforms. This is for
1297         compatibility with XPCOM and MainWin COM.
1298         
1299         Code is contributed under MIT/X11 license.
1300         
1301
1302 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1303
1304         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1305         correctly. Fixes #79217.
1306
1307         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1308
1309 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1310
1311         * mono-config.c: allow both an os and cpu attribute for dllmap
1312         and dllentry elemnets to enable a single config file to be used
1313         for multiple architectures.
1314
1315 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1316
1317         * loader.c: MonoLoaderError was cleared too soon on load failure.
1318         Fixes bug #79424.
1319
1320 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1321
1322         * icall.c: use the defining class vtable when accessing a
1323         static field, not a pobblibly derived class.
1324
1325 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1326
1327         * icall.c string-icalls.c: Remove references to unicode.h.
1328
1329         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1330
1331         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1332
1333         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1334         indicating the image where custom marshaller types should be looked up.
1335         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1336         custom marshallers, instead of corlib. Fixes #79425.
1337
1338 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1339
1340         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1341
1342 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1343
1344         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1345         Implement Environment.ProcessorCount.
1346         
1347         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1348         Implement Environment.ProcessorCount.
1349         
1350         * icall.c: 
1351         Add Environment.ProcessorCount icall.
1352         
1353         Patch by Jason McFall.
1354
1355 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1356
1357         * assembly.c: don't append .exe/.dll when the filename already contains
1358         one of those extensions.
1359
1360 2006-09-12  Martin Baulig  <martin@ximian.com>
1361
1362         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1363         to array interfaces.
1364
1365 2006-09-11  Martin Baulig  <martin@ximian.com>
1366
1367         * reflection.c (mono_image_build_metadata): Create the
1368         MethodImpl's after emitting all types and methods, so we don't
1369         need another fixup pass for them.
1370
1371 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1372
1373         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1374         change.
1375
1376 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1377
1378         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1379         unload.
1380
1381 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1382
1383         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1384         args is not set. Fixes #78926.
1385
1386 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1387
1388         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1389
1390         * image.c (load_class_names): Move this to class.c, and rename it to 
1391         'mono_image_init_name_cache'.
1392         (load_modules): Fix a warning.
1393
1394         * class.c icall.c image.c: Initialize image->name_cache lazily.
1395
1396         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1397         on its name using information in the AOT file.
1398
1399         * class.c (mono_class_from_name): Use the new hook function.
1400
1401 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1402
1403         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1404         correctly.
1405
1406         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1407         Fixes #79289.
1408         
1409 2006-09-06  Martin Baulig  <martin@ximian.com>
1410
1411         * icall.c (mono_lookup_internal_call): Small fix.
1412
1413 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1414
1415         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1416         double g_free.
1417
1418 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1419
1420         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1421         when --debug is specified.
1422
1423 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1424
1425         * class.c (setup_generic_array_ifaces): Fix a warning.
1426
1427 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1428
1429         * Temporarily remove the patch to assemly.c that checks the
1430         assembly versions as it breaks our gacutil.
1431
1432 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1433
1434         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1435
1436         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1437         a net 1.0 runtime.
1438
1439         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1440         created using the default ctor. Fixes #79152.
1441         (mono_string_builder_to_utf16): Ditto.
1442
1443 2006-09-01  Martin Baulig  <martin@ximian.com>
1444
1445         Fix handling of the generic array interfaces.
1446
1447         * class-internals.h
1448         (MonoDefaults): Removed `generic_array_class' and added
1449         `generic_ilist' class.
1450
1451         * class.c
1452         (mono_bounded_array_class_get): Add the new generic array interfaces.
1453         (setup_generic_array_ifaces): New static method; create vtable
1454         entries for each method in the generic array interfaces.
1455
1456         * metadata.c
1457         (select_container): Allow "parent-less" generic methods.
1458
1459         * marshal.c
1460         (mono_marshal_get_generic_array_helper): New public method.
1461
1462         * icall.c
1463         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1464         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1465         moved the interncall into System.Array.
1466
1467 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1468
1469         A few more cases of avoiding work on types with ->byref set.
1470         Has the real fix for #79238
1471         * icall.c (is_generic_parameter): New helper.
1472         (ves_icall_Type_GetGenericParameterPosition): Use it.
1473         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1474         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1475         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1476         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1477         reference types.
1478         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1479         reference types.
1480         (ves_icall_Type_get_IsGenericInstance): Likewise.
1481         (ves_icall_Type_get_IsGenericType): Likewise.
1482
1483 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1484
1485         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1486         class if possible.
1487
1488         * mempool.h (mono_mempool_get_allocated): New helper function.
1489
1490         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1491         change.
1492
1493         * mempool.c: Fix warnings and the calculation of stats.
1494
1495         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1496
1497         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1498
1499         * loader.c (mono_get_method_from_token): Update method_count stat.
1500
1501         * class-internals.h (MonoStats): Add some stats.
1502
1503 2006-08-31 Robert Jordan  <robertj@gmx.net>
1504
1505         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1506         with managed variants.
1507         All code is contributed under the MIT/X11 license.
1508         
1509 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1510
1511         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1512         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1513
1514         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1515
1516         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1517         with cycles in classes.
1518
1519         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1520
1521         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1522         missing a [MarshalAs] directive. Fixes #79203.
1523
1524         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1525         klass->marshal_info. Fixes #79217.
1526
1527 2006-08-30  Martin Baulig  <martin@ximian.com>
1528
1529         Committing a patch from Joachim Ante <joe@otee.dk>:
1530         Add support for binary data symbol stores.
1531
1532         * debug-mono-symfile.c
1533         (mono_debug_open_mono_symbol_file): Renamed into
1534         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1535         arguments.
1536
1537         * mono-debug.c
1538         (mono_debug_open_image): Added `raw_contents' and `size' args.
1539         (mono_debug_init_2_memory): New public function.
1540
1541 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1542
1543         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1544
1545 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1546
1547         * appdomain.c: implement support for ShadowCopyFiles.
1548
1549 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1550
1551         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1552         when value is NULL (and should remove CID #51).
1553
1554 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1555
1556         * image.c: moved 2 functions to ../utils.
1557
1558 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1559
1560         * gc.c: cope with the target object of a GC handle being NULL
1561         (bug #78877).
1562
1563 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1564
1565         * class.c: recursively check parent's explicit implementations
1566         of interface methods (fixes bug #79125).
1567
1568 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1569
1570         * filewatcher.c: Avoid warnings when building, do not redefine
1571         constants that are defined.
1572
1573         Remove warnings.
1574
1575 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1576
1577         * image.c: don't fail when the link points to an absolute path.
1578
1579 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1580
1581         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1582         Fix CID #3.
1583
1584 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1585
1586         * image.c (full_path): A new method used to obtain the actual path
1587         of an assembly even in the presence of symbolic links.  
1588
1589         This is necessary for the case where we are running a binary that
1590         has been GACed, but we are using the "published" path name
1591         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1592         file in the GAC.
1593
1594         This was the source of the failure for the `xsp' command with the
1595         recent AppDomain changes, as far as the runtime was concerned,
1596         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1597         $prefix/mono/gac/blah/version/blah.exe.
1598
1599         (do_mono_image_open): use full path
1600
1601 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1602
1603         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1604
1605 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1606
1607         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1608         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1609
1610 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1611
1612         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1613         small structures. Fixes #78990.
1614
1615 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1616
1617         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1618
1619         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1620
1621 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1622
1623         * appdomain.c:
1624         * marshal.c: don't load all the assemblies from a domain into newly
1625         created ones. The new domains might have different rules and load
1626         assemblies from different locations. Fixes bug #76757.
1627
1628         Patch by Lluis. Conflicts resolved by Brian Crowell.
1629
1630 2006-08-16  Alp Toker  <alp@atoker.com>
1631
1632         * socket-io.c: First half of the fix for #79084.
1633         Set sa_size to the length of the content, not that of the struct.
1634         Don't add NULL suffix to the content, this should be done in
1635         managed code if needed.
1636
1637 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1638
1639         Fix part of #79012
1640         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1641         mono_metadata_parse_type returns NULL.
1642
1643 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1644
1645         * normalization-tables.h : new file for string normalization data.
1646         * locales.c, locales.h, icall.c :
1647           added load_normalization_resource() for string normalization,
1648           and icall as well.
1649         * Makefile.am : added normalization-tables.h to the sources.
1650
1651 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1652
1653         * marshal.c: Add more helper functions to reduce code duplication and use them
1654         everywhere.
1655
1656 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1657
1658         * marshal.c: Fix non-x86 stdcall warnings.
1659         
1660         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1661         them everywhere.
1662
1663 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1664
1665         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1666         type check on multi-dimensional arrays. Fixes #79000.
1667
1668 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1669
1670         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1671         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1672         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1673         * class-internals.h: add is_com_object to class structure.
1674         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1675         null checks to COM object marshalling. Fix .ctor call on RCW.
1676         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1677         
1678         All code is contributed under the MIT/X11 license.
1679
1680 2006-08-09  Dick Porter  <dick@ximian.com>
1681
1682         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1683         racing mono_monitor_allocator_lock() somewhere, so don't delete
1684         the critical section for now.  Found by running and exiting
1685         monodevelop.
1686
1687 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1688
1689         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1690         (ves_icall_System_ComObject_FindInterface): Ditto.
1691         (ves_icall_System_ComObject_CacheInterface): Ditto.
1692
1693         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1694         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1695
1696 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1697
1698         * threadpool.c: treat pipes from process asynchronous reads as sockets
1699         when reading from them, so we get select/poll or epoll to wait for
1700         data.
1701
1702 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1703
1704         * loader.c: Fix a typo (CID #233) in the null check.
1705
1706 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1707
1708         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1709         Hopefully fixes #78949.
1710         
1711         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1712         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1713         bytes. Fixes #78972.
1714
1715 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1716
1717         * filewatcher.c: we need to set errno here.
1718
1719 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1720
1721         * filewatcher.c: let Win32Exception get the error value.
1722
1723 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1724
1725         * filewatcher.c: translate errno into win32 errors for Win32Exception
1726         to know what happened.
1727
1728 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1729
1730         * threadpool.c: Fix more warnings.
1731
1732         * assembly.c (search_loaded): Fix warnings.
1733
1734         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1735         (mono_async_invoke): Ditto.
1736
1737 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1738
1739         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1740         entries for __ComObject type in addition to ComImport types.
1741         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1742         about hash table.
1743         
1744         All code is contributed under the MIT/X11 license.
1745
1746 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1747
1748         * image.c: avoid tentative loading of modulerefs that contain
1749         no metadata (P/Invoke library names).
1750
1751 2006-07-28  Dick Porter  <dick@ximian.com>
1752
1753         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1754         mono_loader_lock() somewhere, so don't delete the critical section
1755         for now.  Found by running and exiting monodevelop.
1756
1757 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1758
1759         * filewatcher.c: define the inotify syscalls when we're building on
1760         linux and have sys/syscall.h. The build system might not have support
1761         for inotify but the target system might have it.
1762
1763 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1764
1765         * domain.c: Documentation updates.
1766
1767         * loader.c (mono_free_method): Do not release the method
1768         information if we are being profiled, as profilers will use this
1769         information at shut down to present some data to the user.
1770
1771         This is needed so that the profiler does not crash, as the
1772         profiler tends to keep MonoMethods around, and they might become
1773         invalid if we free these.
1774
1775         (mono_get_method_constrained): Return the original CIL stream
1776         method as well, so verification can be performed against it.
1777
1778 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1779
1780         * filewatcher.[ch]: support for inotify file system watcher.
1781         * icall.c: add new internal calls for the inotify file system watcher.
1782
1783 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1784
1785         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1786         #78888.
1787
1788 2006-07-20  Dick Porter  <dick@ximian.com>
1789
1790         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1791         warning.
1792
1793 2006-07-20  Dick Porter  <dick@ximian.com>
1794
1795         * threads.c (start_wrapper): Do the thread cleanup while we still
1796         hold a reference to its object.  Fixes bug 78123.
1797
1798 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1799
1800         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1801         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1802           "managed-to-managed".
1803         * icall.c: Redirect string constructors that take sbyte* to
1804           ves_icall_System_String_ctor_RedirectToCreateString.
1805         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1806           to CreateString () methods with matching signature.
1807         * reflection.c: Use original security informations for
1808           MONO_WRAPPER_MANAGED_TO_MANAGED.
1809         * security-manager.c: Use original security informations for
1810           MONO_WRAPPER_MANAGED_TO_MANAGED.
1811         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1812           that is a placeholder and only its address should be used.
1813         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1814           that is a placeholder and only its address should be used.
1815
1816 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1817
1818         Begin implementing COM Interop.
1819         * appdomain.c: Increment corlib version.
1820         * class.c: Set ComImport classes' parent to __ComObject.
1821         * loader.c: Mark cominterop methods as such.
1822         * domain.c: Add __ComObject class to MonoDefaults structure.
1823         * image.c: Add 2 hashtables to the image for COM Interop related methods
1824         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
1825         using the mempool allocator
1826         
1827         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
1828         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
1829         declaration for mono_metadata_type_dup_mp.
1830         
1831         * debug-helpers.c: Added strings for two additional wrapper types
1832         * object.c: Create proxy objects for ComImport classes
1833         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
1834         and added __ComObject class to MonoDefaults structure.
1835         
1836         * object-internals.h: Finish MonoRealProxy definition, and add definition of
1837         MonoComInteropProxy and MonoComObject.
1838         
1839         * marshal.c: Added support for COM Interop
1840         (signature_cominterop): Converts managed signature to corresponding
1841         unmanaged COM signature.
1842         (cominterop_get_function_pointer): gets unmanaged function pointer via
1843         COM object vtable
1844         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
1845         (cominterop_get_method_interface): returns interface type that method is defined on
1846         (mono_mb_emit_cominterop_call): emits native call to function pointer
1847         gotten from vtable
1848         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
1849         that matches signature of unmanaged function.
1850         (cominterop_get_native_wrapper): wrapper around adjusted method call.
1851         (cominterop_get_invoke): forwards call from proxy to __ComObject
1852         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
1853         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
1854         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
1855         
1856         * marshal.h: Added Marshal icall declarations.
1857         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
1858         so we can access them in finalizer
1859         
1860 2006-07-14  Dick Porter  <dick@ximian.com>
1861
1862         * object.c (mono_type_initialization_cleanup): Fix a race
1863         condition by temporarily commenting out the critical section
1864         deletion.
1865
1866 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1867
1868         * reflection.c (create_custom_attr): Fix some warnings.
1869         (create_custom_attr_data): Ditto.
1870         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
1871         types. Fixes #78855.
1872
1873 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1874
1875         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
1876
1877         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
1878
1879 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1880
1881         * reflection.c (resolve_object): Add support for DynamicMethod.
1882
1883         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
1884         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
1885
1886 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
1887
1888         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
1889         don't leak GPtrArray's pdata has we have no use (nor free) for it.
1890
1891 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
1892
1893         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
1894         Fixes #77888.
1895
1896 2006-06-30  Raja R Harinath  <rharinath@novell.com>
1897
1898         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
1899         slightly: remove a shadow local variable.
1900
1901 2006-06-29  Raja R Harinath  <rharinath@novell.com>
1902
1903         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
1904         definition that introduces the virtual function slot.
1905         Also fix Coverity #105.
1906
1907 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
1908
1909         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
1910         for dynamic assemblies. Fixes #78724.
1911
1912 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
1913
1914         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
1915         Fixes #78722.
1916
1917 2006-06-21  Martin Baulig  <martin@ximian.com>
1918
1919         * reflection.c
1920         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
1921         fixes #76484.
1922
1923 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
1924
1925         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
1926
1927 2006-06-20  Raja R Harinath  <rharinath@novell.com>
1928
1929         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
1930         nor TYPEREFs.
1931         * class.c (mono_class_create_from_typespec): Add 'context' argument.
1932         Inflate result if necessary.
1933         (mono_class_get_full): Remove old version.  Rename from
1934         'mono_class_get' and add 'context' argument.  Pass it to
1935         ..._create_from_typespec.
1936         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
1937         (mono_ldtoken): Revert change below.
1938
1939 2006-06-20  Martin Baulig  <martin@ximian.com>
1940
1941         * class.c (mono_ldtoken): Don't pass the generic context to
1942         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
1943
1944 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
1945
1946         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
1947         and later freeing it. Fixes #78638.
1948
1949 2006-06-15  Miguel de Icaza  <miguel@novell.com>
1950
1951         * icall.c (mono_class_get_throw): Revert over-zealous error
1952         throwing, the caller for mono_class_get_throw will cope with
1953         errors when classes are not properly initialized already.
1954
1955         The code still copes with loader exceptions though.
1956
1957         Fixes the regression in reftype1 and reftype3 from the CAS tests.
1958         
1959 2006-06-14  Miguel de Icaza  <miguel@novell.com>
1960
1961         Fixes the `make run1' version of RuntimeAbort (to be commited,
1962         source is in Bugzilla).
1963         
1964         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
1965         FALSE on class loading failure instead of returning true.
1966
1967         * class.c (mono_class_create_from_typedef): It is possible for
1968         mono_metadata_interfaces_from_typedef_full to fail if a class is
1969         not found, cope with this.
1970         
1971
1972 2006-06-14  Dick Porter  <dick@ximian.com>
1973
1974         * socket-io.c: 
1975         * process.c: Fix a bunch of signed/unsigned warnings from gcc
1976         4.1.1
1977
1978 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
1979
1980         * culture-info-table.h : oops, forgot to make it nsync with r61548.
1981
1982 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1983
1984         * icall.c: Another fix for building mono in Visual Studio.
1985
1986 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
1987
1988         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
1989         
1990 2006-06-09  Martin Baulig  <martin@ximian.com>
1991
1992         * debug-mono-symfile.c: Put this back and really fix it this
1993         time. Sorry for all the trouble.
1994
1995 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
1996
1997         * icall.c (mono_class_get_throw): Fix a warning.
1998         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
1999         ReflectionTypeLoadException if needed. Fixes #78606.
2000
2001         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2002         (mono_class_init): Ditto.
2003
2004         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2005         ref_only exceptions.
2006         (mono_loader_clear_error): Make this work even if there is no error.
2007
2008 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
2009
2010         * object-internals.h marshal.c marshal.h icall.c: Implement method 
2011         Marshal.GetComSlotForMethodInfo using internal call.
2012
2013 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
2014
2015         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2016         a function for signalling it.
2017
2018         * class.c (mono_class_from_typeref): Use the new kind of loader error when
2019         a referenced assembly is not found.
2020
2021         * loader.c (mono_loader_error_prepare_exception): Add support for 
2022         LOADER_ERROR_ASSEMBLY. Fix formatting.
2023
2024 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
2025
2026         * domain.c appdomain.c class-internals.h marshal.c: Add support 
2027         for VARIANT marshalling on windows and increment corlib version
2028         since Variant struct was added.
2029
2030 2006-06-03  Miguel de Icaza  <miguel@novell.com>
2031
2032         * debug-mono-symfile.c: Revert Martin's previous patch which broke
2033         stack trace line information:
2034
2035         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2036         (Martin) when looking up B which is between A and C, return A not C.
2037
2038         Bug is #78573.
2039
2040         Thanks to Alexander Olk for tracking this down.
2041
2042 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2043
2044         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2045         
2046         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2047         avoid clobbering its value.
2048         (mono_string_to_lpstr): Fix a warning on windows.
2049
2050 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2051
2052         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2053
2054         * reflection.c loader.c: Removed references to 'dummy' flag.
2055
2056         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2057
2058         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2059         it gets GC tracking.
2060
2061         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2062         GC tracking.
2063         
2064         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2065
2066         * marshal.c threadpool.c: Update callers of mono_async_result_new.
2067
2068         * appdomain.c: Bump corlib version.
2069
2070 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2071
2072         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2073         CEE_STIND_REF when working with object references.
2074
2075 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2076
2077         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2078         Fixes #78539.
2079
2080 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2081
2082         * loader.c (method_from_memberref): Fix argument value for
2083         mono_loader_set_error_method_load (I was passing the MonoClass
2084         instead of the class name char *).
2085
2086 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2087
2088         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2089         CEE_STIND_REF when working with object references.
2090
2091 2006-05-30  Martin Baulig  <martin@ximian.com>
2092
2093         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2094         mono_method_full_name() change and replace the ':' with a '.'
2095         here.
2096
2097 2006-05-30  Martin Baulig  <martin@ximian.com>
2098
2099         * debug-mono-symfile.c
2100         (mono_debug_symfile_lookup_location): Fix the algorithm:
2101         when looking up B which is between A and C, return A not C.
2102
2103 2006-05-29  Martin Baulig  <martin@ximian.com>
2104
2105         * mono-debug.h
2106         (MonoDebugMethodInfo): Make the typedef public.
2107         (MonoDebugSourceLocation): New public struct.
2108
2109         * mono-debug.c
2110         (mono_debug_source_location_from_address): Removed.
2111         (mono_debug_source_location_from_il_offset): Removed.
2112         (mono_debug_il_offset_from_address): Removed.
2113         (mono_debug_address_from_il_offset): Removed.
2114         (mono_debug_lookup_method): New public function.
2115         (mono_debug_lookup_source_location): New public function; replaces
2116         the old mono_debug_source_location_from_*() functions; see the
2117         inline documentation.
2118         (mono_debug_free_source_location): New public function.
2119         (mono_debug_print_stack_frame): New public function; see the
2120         inline documentation.
2121
2122         * debug-mono-symfile.c
2123         (mono_debug_find_source_location): Renamed into
2124         mono_debug_symfile_lookup_location(); only take a
2125         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2126         documentation.
2127         (mono_debug_find_method): Renamed into
2128         mono_debug_symfile_lookup_method().
2129
2130 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2131
2132         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2133         returned by mono_image_open_full ().
2134
2135         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2136         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2137         #78517.
2138
2139         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2140         #78518.
2141
2142 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2143
2144         * class.c (mono_class_from_typeref): handle missing images
2145         earlier, deals with bug #78418.   Refactor code; 
2146
2147         Fix a warning introduced in my previous commit (some stale code
2148         from before I revisited my patch).
2149
2150         * class.c (mono_class_create_from_typedef): On failure, remove the
2151         class from the MonoImage->class_cache as the class is not
2152         initialized;   Fixes the leak pointed out by Paolo.
2153
2154 2006-05-25  Dick Porter  <dick@ximian.com>
2155
2156         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2157         DeleteCriticalSections until I figure out which one may still be
2158         sometimes locked when mono_thread_cleanup is called.
2159
2160 2006-05-24  Dick Porter  <dick@ximian.com>
2161
2162         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2163         of mono_thread_manage and back into its own function, so it can be
2164         called after the finalizer thread has finished.
2165
2166         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2167
2168 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2169
2170         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2171         Fixes #78495.
2172
2173         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2174         with non-blittable elements.
2175         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2176
2177 2006-05-24  Martin Baulig  <martin@ximian.com>
2178
2179         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2180         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2181
2182         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2183         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2184         `mono_debugger_event_handler' to NULL.
2185
2186 2006-05-24  Martin Baulig  <martin@ximian.com>
2187
2188         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2189
2190 2006-05-24  Martin Baulig  <martin@ximian.com>
2191
2192         * mono-debug-debugger.h
2193         (mono_debugger_create_notification_function): Added
2194         `MonoCodeManager *' argument.
2195
2196 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2197
2198         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2199
2200 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2201
2202         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2203         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2204         implementation.
2205
2206 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2207
2208         * icall.c: precise GC support: objects can't be stored in unmanaged
2209         memory anymore, even if they are kept alive by other references: since
2210         they can move the GC needs to be able to always find them.
2211
2212 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2213
2214         * object.c: precise GC support for static fields. Support
2215         for moving GCs: write barriers and pinned allocation for interned
2216         strings.
2217
2218 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2219
2220         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2221         structure.
2222
2223 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2224
2225         * class.c, gc.c: sgen and precise GC updates.
2226
2227 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2228
2229         * marshal.h, marshal.c: added write barrier wrapper and precise type
2230         fixes.
2231
2232 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2233
2234         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2235         support.
2236
2237 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2238
2239         * reflection.c: precise and sgen GC updates.
2240
2241 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2242
2243         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2244
2245 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2246
2247         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2248
2249 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2250
2251         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2252         MONO_TYPE_OBJECT. Fixes #78462.
2253
2254 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2255
2256         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2257         and blittable types.
2258
2259 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2260
2261         * class.c (mono_class_get_exception_for_failure): Implement parts
2262         of a TODO: if the loader error is set (instead of the class
2263         error), we return a Loader exception that can be properly thrown
2264         elsewhere.
2265
2266         This was exposed by some Winforms 2.0 code that I tried to run
2267         (Atsushi pointed me to it).
2268
2269 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2270
2271         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2272         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2273         
2274         * marshal.c (emit_marshal_vtype): Add limited support for 
2275         UnmanagedType.LPStruct. Fixes #78427.
2276
2277         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2278         Applied a patch from kangaroo to fix #77523.
2279
2280 2006-05-17  Martin Baulig  <martin@ximian.com>
2281
2282         * threads.c
2283         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2284         (debugger_thread_created): Removed.
2285         (debugger_thread_exited): Removed.
2286
2287 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2288
2289         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2290
2291         * object-internals.h (MonoReflectionResource): Sync with managed version.
2292
2293 2006-05-12  Wade Berrier <wberrier@novell.com>
2294
2295         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2296
2297 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2298
2299         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2300         functions try to allocate from the image mempool.
2301
2302 2006-05-12  Dick Porter  <dick@ximian.com>
2303
2304         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2305
2306 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2307
2308         * object.c: The FieldGetter and FieldSetter methods require the full
2309         name of the class, not only the name. Fixes bug #78277.
2310
2311 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2312
2313         * loader.c (method_from_memberref): Do not pass the NULL klass to
2314         mono_loader_set_error_() methods.  Pass the non-NULL value
2315         (class). 
2316
2317 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2318
2319         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2320         (mono_assembly_close): Null out assembly->image->references after freeing it.
2321
2322         * image.c (mono_image_close): Free image->references.
2323         
2324         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2325
2326 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2327
2328         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2329         before checking if it's NULL (g_assert).
2330
2331 2006-05-10  Martin Baulig  <martin@ximian.com>
2332
2333         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2334         I thought I already killed that two months ago, but now it somehow reappeared.
2335
2336 2006-05-10  Martin Baulig  <martin@ximian.com>
2337
2338         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2339
2340 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2341
2342         * reflection.c: Allocate memory for dynamically created methods in the image
2343         mempools.
2344
2345 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2346
2347         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2348         don't use the ad pointer before checking if it's NULL (g_assert).
2349
2350 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2351
2352         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2353         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2354
2355         * marshal.c: Allocate all signatures from mempools.
2356
2357         * marshal.c: Allocate some more signatures from mempools.
2358
2359 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2360
2361         * object.c (mono_load_remote_field): The code used to provide a
2362         temporary variable for returning results if the user did not
2363         provide a result pointer.  But our temporary variable was allocted
2364         on the satck.
2365
2366         Fix calling code to always pass a result area.   Coverity ID 103.
2367
2368 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2369
2370         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2371         value, not the old. Fixes #78312.
2372         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2373
2374         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2375         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2376         per-image cache.
2377
2378         * assembly.c (mono_assembly_close): Free image->references.
2379
2380         * assembly.c (mono_assembly_names_equal): Fix a warning.
2381         (mono_assemblies_cleanup): Cleanup more global data.
2382
2383         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2384
2385         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2386         ptr_cache and image->modules.
2387
2388         * image.c (mono_image_init): Allocate array_cache lazily.
2389         
2390 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2391
2392         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2393         behavior was changed recently and has bad side effects.
2394
2395 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2396
2397         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2398         
2399         * assembly.c (mono_assembly_close): Remove a debug printf.
2400
2401         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2402
2403         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2404         to also allow for temporary references between mono_image_open ()/close ().
2405
2406         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2407
2408 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2409
2410         * marshal.c: Fix support for dynamic methods.
2411
2412         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2413
2414         * marshal.c (mono_marshal_cleanup): New cleanup function.
2415
2416         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2417         image mempools.
2418
2419         * class.c (mono_class_init): Fix leaking class->nested_classes.
2420
2421         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2422
2423         * image.c (mono_image_init): Initialize the new cashes.
2424
2425         * image.c (mono_image_close): Destroy the new cashes.
2426
2427         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2428
2429         * mempool.c (mono_mempool_strdup): New helper function.
2430
2431         * class-internals.h: Add prototype for mono_loader_unlock ().
2432
2433         * domain.c (mono_jit_info_table_find): Fix a warning.
2434         (mono_debugger_check_runtime_version): Ditto.
2435
2436         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2437         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2438         functions to these modules.
2439
2440         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2441         metadata modules.
2442         
2443         * marshal.c (mono_free_bstr): Fix a warning.
2444
2445         * assembly.c (mono_assembly_open_full): Fix another small leak.
2446
2447         * object.c: Fix some unload leaks in the remoting code.
2448
2449         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2450         function.
2451
2452         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2453
2454         * reflection.c: Fix some unload leaks in dynamic assemblies.
2455
2456 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2457
2458         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2459         * marshal.h: Add BSTR support on Win32
2460         * icall.c: Add BSTR icalls
2461         * metadata.h: Add BSTR enums
2462
2463 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2464
2465         Work to catch the crash from #76795 and turn it into an
2466         exception.   As I stubbed out pieces of the VisualBasic support,
2467         I found a number of places where the code was failing and I added
2468         checks to those places. 
2469         
2470         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2471         function return a status code.  If we fail to parse the signature
2472         from mono_metadata_parse_generic_inst, return FALSE.
2473
2474         * loader.c (mono_get_method_from_token): If we fail to load the
2475         method (mono_class_get) return NULL.   
2476
2477         * (method_from_memberref): Return NULL if we are unable to parse
2478         the method signature
2479
2480         (mono_loader_error_prepare_exception): Since we now use the
2481         loader_error flag internally to stop processing, and obtaining
2482         exceptions that might be thrown will walk this code path the
2483         proper way of going from a MonoLoaderError into a
2484         MonoException was convoluted.   This new routine encapsulates the
2485         process of turning the error into an exception and *clearing* the
2486         error afterwards.
2487         
2488 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2489
2490         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2491         with missing assemblies), and to cope with:
2492
2493                 * Missing fieldref from a non-existing assembly.
2494                 * Missing methodref from a non-existing assembly.
2495
2496         The first batch of work to address *some* of the issues from 76661.
2497         
2498         * object.c (mono_class_create_runtime_vtable): If we fail to
2499         initialize the class raise the exception here. 
2500
2501         * metadata.c (mono_class_get_overrides_full): If any methods fail
2502         to load return the failure to the caller.
2503
2504         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2505         flagging assemblies that failed to load.   
2506
2507         Do not crash if we are unable to load the assembly.
2508
2509         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2510         assemblies. 
2511
2512         * loader.c (mono_loader_set_error_type_load): Change the
2513         convention to always pass unallocated strings, so we make our own
2514         copies (I know our own code had duplicated strings before, but
2515         this keeps the normal conventions).
2516         (method_from_memberref): Call mono_loader_set_error_method_load
2517         for all possible failures of loading the class. 
2518         Remove assert, turn into a loader error.
2519
2520         (mono_loader_error_to_exception): Move this routine from mini
2521         (mini_loader_error_to_exception) there was no need to have that in
2522         mini. 
2523
2524         * class.c (mono_class_from_typeref): If we were not able to load
2525         the assembly with mono_assembly_load_reference, call the
2526         mono_loader_set_error_type_load to register the problem.
2527
2528         (mono_class_setup_fields): If we fail to load the type from
2529         mono_metadata_parse_type_full, call mono_class_set_failure and
2530         break from the loop.
2531
2532         If class->exception_type is set, we do not layout the fields as
2533         that might crash the runtime, and instead return (from breaking
2534         from the previous loop).
2535
2536         (mono_class_setup_vtable): This now returns a boolean indicating
2537         whether the table was properly setup.   The decision is driven by
2538         mono_class_get_overrides_full which might run into non-existing
2539         methods. 
2540         
2541         (mono_class_init): Returns TRUE on success or FALSE if there was a
2542         problem in loading the type (incorrect assemblies, missing
2543         assemblies, methods, etc).
2544
2545         When we call mono_class_setup_fields we also check for a potential
2546         error inside this call (either a class exception or a general
2547         loader exception).
2548
2549         (mono_class_create_from_typedef): If the parent fails to load
2550         (calling mono_class_get_full) return NULL.
2551         
2552         ** Important **
2553
2554         calls to mono_metadata_parse_type_full should be checked
2555         everywhere and set the mono_class_set_failure
2556         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2557
2558         The current patch checks the places where my manually constructed
2559         tests show the errors are showing up, but we should do it
2560         everywhere. 
2561
2562         ** Important2 **
2563
2564         mono_class_init return values should be tested everywhere, like
2565         the previous case this is something that we should audit
2566         everywhere and not only on the cases exposed by the tests I
2567         created. 
2568
2569 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2570
2571         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2572         boolean parameter and instead pass the information on `options'
2573         parameter (FileOptions).
2574
2575         * icall.c: Register the new signature for MonoIO.Open.
2576
2577         * debug-helpers.c (dis_one): Trying to understand how coverity
2578         works.  Fix Run 5, item 78.
2579
2580 2006-04-26  Dick Porter  <dick@ximian.com>
2581
2582         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2583         dereference.
2584
2585 2006-04-25  Martin Baulig  <martin@ximian.com>
2586
2587         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2588
2589         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2590         debugger_thread_created().
2591         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2592         special way.
2593         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2594         (mono_debugger_finalize_threads): New function; undo the effects
2595         of mono_debugger_init_threads().
2596         (mono_debugger_create_all_threads): Removed.
2597
2598 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2599
2600         * image.c (mono_image_close): Tidy up trace messages.
2601
2602         * assembly.c (mono_assembly_close): Ditto.
2603
2604         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2605         no longer references an already freed assembly. Fixes #78168.
2606
2607 2006-04-21  Dick Porter  <dick@ximian.com>
2608
2609         * threads.c (mono_thread_detach): Fix reference counting when
2610         detaching threads.
2611
2612 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2613
2614         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2615         #78155.
2616
2617 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2618
2619         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2620         (mono_type_to_stind): Ditto.
2621
2622         * marshal.c: Use the new helper functions to simplify code.
2623
2624         * image.c (mono_image_close): Add some code for help debug assembly unloading
2625         problems.
2626
2627         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2628         image mempool.
2629
2630         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2631         assembly was already loaded in another appdomain. Fixes #78083.
2632
2633 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2634
2635         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2636         referenced assemblies.
2637         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2638
2639         * domain.c (mono_domain_free): Add a trace message.
2640
2641         * appdomain.c (add_assemblies_to_domain): Ditto.        
2642
2643         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2644         field.  
2645
2646 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2647
2648         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2649
2650 2006-04-12  Martin Baulig  <martin@ximian.com>
2651
2652         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2653         `USE_INCLUDED_LIBGC'.   
2654
2655 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2656
2657         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2658         the patch contains ../ and a small directory name later. Hopefully fixes
2659         #78035.
2660
2661 2006-04-10  Martin Baulig  <martin@ximian.com>
2662
2663         Clean up the debugger's thread-handling code.
2664
2665         The debugger's thread-handling code has been moved from
2666         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2667         over the `threads' hash, keep track of exiting threads and also
2668         use proper locking.
2669
2670         We can now debug XSP and XSP based applications with the debugger.
2671
2672         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2673
2674         * threads.h
2675         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2676         (mono_install_thread_callbacks): Likewise.      
2677
2678         * threads.c (mono_thread_callbacks): Removed.
2679         (debugger_thread_created, debugger_thread_exited): New static functions.
2680         (start_wrapper): Call debugger_thread_created().
2681         (thread_cleanup): Call debugger_thread_exited().
2682         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2683         (mono_debugger_init_threads): New public function.
2684         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2685         iterate directly over the `threads' hash and also use proper locking.
2686
2687         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2688
2689         * mono-debug-debugger.h
2690         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2691
2692 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2695         argument type=array. Fixes #78057.
2696
2697 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2698
2699         * culture-info-table.h : regenerated. Fixed bug #69652.
2700
2701 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2702
2703         * loader.c metadata.c: Reapply a variant r59116.
2704         
2705         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2706
2707         * class.c (mono_class_setup_interface_offsets): New internal function.
2708
2709         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2710         interfaces too. Fixes #77398.
2711
2712         * reflection.c (encode_cattr_value): Add support for 
2713         parameter type=object, argument type=array.
2714         (load_cattr_value): Ditto. Fixes #77916.
2715
2716         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2717         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2718
2719         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2720         a byval char array and CharSet is Ansi.
2721
2722         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2723
2724 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2725
2726         * metadata.c: Add some locking comments.
2727         
2728         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2729         mempool.
2730         (mono_metadata_free_method_signature): Don't free the signature itself.
2731
2732         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2733
2734         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2735         reference the same MonoImage.
2736         (mono_assembly_load_from_full): Add an assert.
2737
2738 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2739
2740         * image.c (mono_image_close): Don't put the image we are about to free into the
2741         loaded_images_guid_hash.
2742
2743         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2744         to reduce code duplication.
2745
2746         * marshal.c: Register the native functions called by this module as icalls, to
2747         somewhat centralize the creation of MonoMethodSignature's.
2748
2749         * loader.c (mono_method_signature): Add a cache for method signatures.
2750
2751         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2752         the parameter attributes of a method.
2753         (mono_metadata_parse_method_signature_full): Refactored the computation of
2754         parameter attributes into a separate function. Also avoid one allocation in
2755         most cases.
2756
2757         * assembly.c (mono_assembly_close): Ditto.
2758
2759         * image.c (mono_image_close): Log trace messages with INFO level.
2760
2761         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2762
2763         * image.c reflection.c: Correct reference counting of image modules.
2764         
2765         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2766         of this function from the image mempool.
2767         
2768         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2769         to allow more cached types to be used.
2770
2771         * mono-debug.c (mono_debug_add_method): Appled patch from
2772         David S. Miller  <davem@sunset.davemloft.net>: Access 
2773         minfo->lexical_blocks[] entry elements using read32().
2774
2775 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2776
2777         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2778         methods as it is allocated from the mempool.
2779
2780         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2781         image mempool.
2782
2783         * metadata-internals.h: Add comments describing the reference counting scheme
2784         used for MonoImage and MonoAssembly.
2785
2786         * image.c assembly.c reflection.c: Rework reference counting of images and 
2787         assemblies so they are freed when the runtime is shut down. Free some 
2788         additional memory structures when an image is unloaded.
2789         
2790 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2791
2792         * class.c loader.c reflection.c: Allocate more data structures in
2793         the image mempool.
2794
2795 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2796
2797         * icall.c
2798         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2799         build on pre glib 2.4 systems.
2800
2801 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2802
2803         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2804
2805         * icall.c: Fix some warnings.
2806
2807 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2808
2809         * culture-info-table.h : regenerated.
2810
2811 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2812
2813         * threads.c, object-internals.h, verify.c: changed the culture caching
2814         code to use a normal MonoArray for storage so the GC can keep track of
2815         them easily. Fixed bits of the cache logic, too and simplified the
2816         code.
2817
2818 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2819
2820         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2821         thread for non-Boehm GCs.
2822
2823 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2824
2825         * domain.c, object.c, domain-internals.h: reduce the amount of memory
2826         needed to keep track of the data for static fields.
2827
2828 2006-03-29  Raja R Harinath  <rharinath@novell.com>
2829
2830         Fix #75172
2831         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
2832         for interface classes.  Use 'num_methods' instead.
2833         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
2834         before using '->vtable_size' field.
2835
2836 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
2837
2838         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
2839         doesn't contain managed pointers, so use a normal hashtable.
2840
2841 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
2842
2843         * reflection.c, class-internals.h, domain.c: fixed handling of types
2844         used as values for objects in custom attributes (bug #77915):
2845
2846 2006-03-24  Martin Baulig  <martin@ximian.com>
2847
2848         * class.c (mono_class_setup_fields): Added support for generic
2849         instances; fixes #77580.
2850
2851 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2852
2853         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
2854
2855 2006-03-24  Dick Porter  <dick@ximian.com>
2856
2857         * file-io.c (get_file_attributes): More stat macro breakage.
2858         Fixes bug 77759.
2859
2860 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
2861
2862         * profiler.c: added the file=filename option in the default profiler
2863         to output the profile data to filename.
2864
2865 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2866
2867         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
2868         bug #77877.
2869
2870 2006-03-22  Martin Baulig  <martin@ximian.com>
2871
2872         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
2873         allocated `MonoClassField *' in `fb->handle'.
2874
2875 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2876
2877         * class.c, image.c, metadata-internals.h: implemented new mechanism to
2878         allocate interface ID to save memory and allow better ID reuse on
2879         appdomain unload. setup_generic_vtable () removal from Martin.
2880
2881 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
2882
2883         * object.h, appdomain.c, domain.c, exception.c, icall.c,
2884         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
2885         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
2886         write barriers for reference stores with managed objects accessed with
2887         C structures in the runtime and in embedding programs.
2888
2889 2006-03-20  Raja R Harinath  <rharinath@novell.com>
2890
2891         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
2892         'interface_id' and 'max_interface_id' fields of MonoClasses
2893         representing open generic types.
2894
2895 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
2896
2897         * object.h, object.c, icall.c: added functions to deal with
2898         storing valuetypes that contain references in managed objects.
2899         * reflection.c, string-icalls.c, threads.c, marshal.c: small
2900         fixes and comments around uses of mono_array_addr ().
2901
2902 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
2903
2904         * object.h, icall.c, monitor.c: object.GetHashCode ()
2905         implementation that supports the moving garbage collector.
2906
2907 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
2908
2909         * icall.c, threads-types.h, threads.c: implemented finalizer for
2910         LocalDataStoreSlot.
2911
2912 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
2913
2914         * metadata.c (mono_type_size): Add a fixme.
2915         (mono_type_stack_size): Ditto.
2916
2917         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
2918         'type_forwarders' field.
2919
2920         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
2921         attribute from net 2.0.
2922
2923         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
2924         from class.c.
2925
2926         * class.c (mono_class_setup_fields): Fix a warning.
2927         
2928         * class.c (mono_class_from_name): Add support for assemblyref entries
2929         in the EXPORTEDTYPE table.
2930
2931         * reflection.c: Add support for handling type forwarders under net 2.0.
2932
2933         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
2934         
2935 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
2936
2937         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
2938         overwriting entries in ModuleBuild->types, also clean up the code
2939         a little. Fixes #77774.
2940
2941 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
2942
2943         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
2944         load friend assembly info when present.
2945
2946 2006-03-14  Raja R Harinath  <rharinath@novell.com>
2947
2948         Fix crasher on gtest-158.cs.
2949         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
2950         the return value if the MonoClass we want is yet in an
2951         inconsistent state.
2952         * class.c (mono_class_create_from_typedef): Add an comment
2953         explaining an order dependency between mono_class_setup_parent and
2954         mono_class_setup_mono_type.
2955
2956 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
2957
2958         * class.c: documentation updates and events bug fix.
2959
2960 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2961
2962         * class.c: some cleanup, locking fixes.
2963
2964 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
2965
2966         * class.c: fix the generics code to setup nested
2967         type info to the instantiated type (bug #77770).
2968
2969 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2970
2971         * marshal.c: fixed a few type correctness issues.
2972
2973 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2974
2975         * loader.c: the Set/Get/Addrtess array methods should be public.
2976
2977 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
2978
2979         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
2980         
2981         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
2982         info->wrapper.
2983
2984 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
2985
2986         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
2987
2988         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
2989
2990         * mempool.c (mono_mempool_alloc): Speed this up a bit.
2991         (mono_mempool_alloc0): Ditto.
2992
2993 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2994
2995         * socket-io.c:
2996         (create_object_from_sockaddr): it was allocating 4 extra bytes
2997         for the AF_UNIX data. Fixes bug #77747.
2998
2999 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
3000
3001         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3002
3003 2006-03-09  Dick Porter  <dick@ximian.com>
3004
3005         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3006         Fixes bug 76966 again.
3007
3008 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3009
3010         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3011         names from r57532
3012         * appdomain.c: Bumped corlib version to 48 (due to r57532)
3013
3014 2006-03-07  Martin Baulig  <martin@ximian.com>
3015
3016         * object.c
3017         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3018
3019 2006-03-07  Martin Baulig  <martin@ximian.com>
3020
3021         * class.c
3022         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3023         regression introduced in r56970; see gtest-252.cs.
3024
3025         * loader.c (mono_get_method_constrained): Correctly handle generic
3026         methods; see gtest-253.cs.
3027
3028 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
3029
3030         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3031
3032 2006-03-04  Martin Baulig  <martin@ximian.com>
3033
3034         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3035         compute the parent type at runtime, just like we're already doing
3036         it for interfaces.
3037
3038         * reflection.c
3039         (mono_reflection_bind_generic_parameters): Don't compute the
3040         parent type anymore.
3041
3042         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3043
3044 2006-03-04  Martin Baulig  <martin@ximian.com>
3045
3046         * mono-debug-debugger.h
3047         (mono_debugger_create_notification_function): Allocate memory at
3048         runtime and return a pointer to it.
3049
3050 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
3051
3052         * assembly.c: Fix windows build.
3053         
3054         * assembly.c: Fix build.
3055
3056         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
3057
3058         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3059         
3060 2006-03-03  Dick Porter  <dick@ximian.com>
3061
3062         * process.c
3063         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3064         Check parameters before dereferencing them.  Fixes Aaron's part of
3065         bug 77393.
3066
3067 2006-03-03  Raja R Harinath  <rharinath@novell.com>
3068
3069         Fix performance regression.
3070         * loader.c (find_method_in_class): Add 'from_class' argument.
3071         Rename 'klass' argument to 'in_class'.  The signature is compared
3072         against the method in 'in_class', and the corresponding method is
3073         returned from 'from_class'.
3074         (find_method): Walk both 'in_class' and 'from_class' in parallel.
3075         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3076         type definition and generic instantiation in parallel.
3077         (mono_get_method_constrained): Update to changes.
3078
3079 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3080
3081         * threads.c: make sure the domain is correct, too when doing
3082         mono_thread_attach ().
3083
3084 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3085
3086         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3087         windows. Fixes #77683.
3088
3089 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3090
3091         * object.h, *: introduced specific way to set elements of an array
3092         of references to be used as write barrier. Still need to audit the
3093         uses of mono_array_addr.
3094
3095 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3096
3097         * object-internals.h: New field to cache the assmebly name, patch
3098         from Tambet Ingo (tambet@ximian.com)
3099
3100 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3101
3102         * decimal.h, class-internals.h, metadata-internals.h,
3103         file-io.h: mark a few function declarations as internal, to
3104         reduce the number of PLT entries.
3105
3106 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3107
3108         * file-io.c: fix typo in warning message.
3109
3110 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3111
3112         * loader.c: on unix, lookup the "*A" version of a function
3113         if charset is auto as a second option before failing.
3114
3115 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3116
3117         * class.h (mono_class_inflate_generic_method): Revert to two
3118         argument version.
3119         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3120         (mono_class_inflate_generic_method_full): Add.
3121         * class.c (mono_class_inflate_generic_method_full): Rename from
3122         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3123         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3124         * loader.c, reflection.c: Update to changes.
3125
3126 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3127
3128         * icall.c: const fixes and small improvements.
3129
3130 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3131
3132         * threadpool.c: for asynchronous connect(), enable the same workaround
3133         for BSD 6 as for the Mac. Fixes bug #77637.
3134
3135 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3136
3137         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3138         formatted classes. Fixes #77524.
3139
3140 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3141
3142         * class.c (inflate_generic_type): Add a couple more
3143         micro-optimizations.
3144         (inflate_generic_context): Don't use the 'gmethod' from
3145         'inflate_with'.
3146         (mono_class_inflate_generic_method): If the method has generic
3147         parameters, but the passed-in context doesn't have a 'gmethod',
3148         create one.  Use the possibly simplified generic instantiation
3149         from the declaring class instead of the one passed in.
3150
3151 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3152
3153         Make generic method signature and method header handling lazy.
3154         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3155         (inflate_generic_header): Likewise.
3156         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3157         parameter to avoid inflating types.
3158         (mono_get_inflated_method): Empty out.
3159         * class.h (mono_class_inflate_generic_method): Update to changes.
3160         * loader.c (mono_get_method_from_token): Don't parse signature for
3161         generic methods, nor methods of generic classes.
3162         (mono_method_signature): Rename from 'mono_method_signature'.
3163         Inflate signature on demand.
3164         (mono_method_get_header): Inflate method header on demand.
3165         * reflection.c: Update to changes.
3166
3167 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3168
3169         * metadata.c (mono_metadata_inflate_generic_inst): If the
3170         instantiation is closed, don't bother expanding it in the new
3171         context.
3172         * class.c (inflate_generic_class): If the generic instantiation
3173         doesn't change after inflation, return the argument itself.
3174         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3175         Add bounds checks.
3176         (inflate_generic_context): If neither the generic class nor the
3177         generic method instantiations change, return the original context.
3178         * reflection.c (mono_method_get_object): Do
3179         'mono_get_inflated_method' before accessing the ->klass field.
3180         (inflate_mono_method): Don't create a MonoGenericMethod unless
3181         necessary.
3182         (inflate_method): Don't pass a constructed type as the declaring
3183         type of a methodbuilder.
3184
3185 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3186
3187         * object.c: fix memory overwrite.
3188
3189 2006-02-22  Dick Porter  <dick@ximian.com>
3190
3191         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3192         it doesn't work any more.
3193         (mono_threads_request_thread_dump): Fix unused variable warnings.
3194
3195 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3196
3197         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3198         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3199         the public header file.
3200
3201 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3202
3203         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3204
3205 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3206
3207         * class-internals.h, object.c: reduce the size of MonoVTable
3208         and store the interface_offsets array at negative offsets.
3209
3210 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3211
3212         * metadata.c: tweak table descriptors data structures to reduce
3213         size and runtime relocations.
3214
3215 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3216
3217         * marshal.c: fix some types and opcodes to be type-safe
3218         in marshaling wrappers.
3219
3220 2006-02-21  Ankit Jain  <jankit@novell.com>
3221
3222         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3223
3224 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3225
3226         * metadata.c (get_constraints): Relax debugging checks for monodis.
3227
3228 2006-02-21  Ankit Jain  <jankit@novell.com>
3229
3230         * metadata.c (mono_metadata_load_generic_params): Move the code
3231         checking for ambiguous generic params from here to mono/dis/get.c
3232         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3233
3234 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3235
3236         Fix assertion triggered when compiling nemerle.
3237         * class.c (mono_get_shared_generic_inst): Rename from
3238         get_shared_inst and make non-static.
3239         * loader.c (mono_get_shared_generic_method): New.  Used to create
3240         the MonoGenericContext-equivalent of a MonoGenericContainer.
3241         (mono_get_method_from_token): Initialize the 'context' field of
3242         the created MonoGenericContainer.
3243         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3244         * metadata.c (get_constraints): Add sanity check.
3245         * class-internals.h: Add new internal methods.
3246
3247         * reflection.c (verify_safe_for_managed_space): New sanity check.
3248         Currently checks that owner-less generic parameters aren't allowed
3249         in managed space.
3250         (mono_type_get_object): Use it.
3251         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3252         that are now in mono_type_get_object.
3253         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3254
3255 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3256
3257         * metadata.c (mono_type_create_from_typespec): Rename from
3258         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3259         argument and caching of types in the generic container.
3260         (unwrap_arrays, find_generic_param): Remove.
3261         * metadata-internals.h: Update.
3262         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3263
3264 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3265
3266         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3267
3268         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3269         return values. Fixes #77581.
3270
3271         * class.c (mono_fnptr_class_get): Switch name and name_space.
3272
3273         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3274         classes and add support for [In, Out] attributes.
3275         (mono_marshal_free_asany): Ditto. Fixes #77524.
3276
3277 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3278
3279         * class.c (mono_class_from_generic_parameter): Make more robust to
3280         incomplete MonoGenericContainers from monodis.
3281
3282 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3283
3284         * class-internals.h: added some more exception types.
3285         * class.c, metadata.c: added a few checks to handle missing
3286         types.
3287
3288 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3289
3290         Use owner-less generic-params some more.
3291         * class.c (my_mono_class_from_generic_parameter): Remove.
3292         (mono_class_from_generic_parameter): Handle null image,
3293         param->name and param->owner.
3294         (mono_class_from_mono_type): Update.
3295         (mono_class_create_from_typespec): Remove 'container' parameter.
3296         If that parameter is non-null, the result is always inflated by
3297         'mono_class_get_full' anyway.
3298         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3299         parameter.
3300         (mono_class_get_full): Update.
3301
3302         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3303         instance is not open, don't bother inflating.
3304         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3305         parse metadata for inflated classes.
3306         (_mono_class_get): Change GenericContext* parameter to
3307         GenericContainer*.
3308         (mono_class_create_from_typespec): Likewise.  Simplify, and
3309         implement trivially.  All the cases are handled in
3310         mono_class_from_mono_type.  Don't inflate returned class.
3311         (mono_class_get_full): Delegate GENERICINST optimization to
3312         inflate_generic_type.
3313         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3314
3315 2006-02-16  Dick Porter  <dick@ximian.com>
3316
3317         * socket-io.c (create_object_from_sockaddr): Fix typo.
3318         (create_sockaddr_from_object): Check array lengths before
3319         potentially accessing items off the end.
3320         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3321         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3322         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3323         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3324         length checks to avoid wraparound overflows.
3325         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3326         contents of the array of sockets
3327         (hostent_to_IPHostEntry2)
3328         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3329         Check return value of inet_ntop ().
3330         (addrinfo_to_IPHostEntry): Fix typo
3331
3332 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3333
3334         Type metadata parsing doesn't use generic-instantiation information.
3335         * metadata.c (mono_metadata_parse_array_full): Change
3336         MonoGenericContext* parameter to MonoGenericContainer*.
3337         (mono_metadata_parse_type_full): Likewise.
3338         (mono_type_create_from_typespec_full): Likewise.
3339         (mono_metadata_parse_mh_full): Likewise.
3340         (mono_metadata_parse_generic_inst): Likewise.
3341         (do_mono_metadata_parse_generic_class): Likewise.
3342         (do_mono_metadata_parse_type): Likewise.
3343         * metadata-internals.h: Update to changes.
3344         * class.c (mono_class_find_enum_basetype): Likewise.
3345         (mono_class_setup_fields): Likewise.
3346         (mono_class_create_from_typespec): Likewise.
3347         * loader.c (method_from_methodspec): Likewise.
3348         (mono_get_method_from_token): Likewise.
3349         (mono_method_get_header): Likewise.
3350
3351 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3352
3353         * marshal.c: handle additional GENERICINST case (patch from
3354         Thong Nguyen <tum@veridicus.com>).
3355         Fix a few cases where LDIND_I/STIND_I was used for references.
3356
3357 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3358
3359         * reflection.c (mono_reflection_get_token): Remove unused variable.
3360
3361 2006-02-16  Martin Baulig  <martin@ximian.com>
3362
3363         * reflection.c (mono_reflection_get_token): Add support for fields
3364         in instantiated generic types.
3365
3366         * icall.c
3367         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3368
3369 2006-02-15  Martin Baulig  <martin@ximian.com>
3370
3371         * icall.c
3372         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3373         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3374         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3375         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3376
3377 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3378
3379         * class.c, metadata.c, metadata.h, object.c, icall.c,
3380         marshal.c: changed mono_type_get_underlying_type () to do
3381         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3382         Fixed handling of instantiated generic valuetypes (bug #75479).
3383
3384 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3385
3386         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3387         Delegate to mono_metadata_decode_value, and work on the returned value.
3388
3389         * icall.c (ves_icall_MonoType_GetGenericArguments):
3390         Add consistency check here too.
3391         
3392 2006-02-15  Ankit Jain  <jankit@novell.com>
3393
3394         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3395         char/short etc.
3396
3397 2006-02-15  Ankit Jain  <jankit@novell.com>
3398
3399         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3400         signed values, used only for representing lower bounds of arrays.
3401         (mono_metadata_parse_array_full): Use new
3402         mono_metadata_decode_signed_value to decode lower bounds.
3403
3404 2006-02-14  Martin Baulig  <martin@ximian.com>
3405
3406         * reflection.c
3407         (mono_reflection_get_token): Support "MonoGenericMethod" and
3408         "MonoGenericCMethod" and allow generic instances / methods.
3409
3410 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3411
3412         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3413         to obtain the terminal size using an ioctl.
3414
3415         * object.c (mono_nullable_init): Revert this as nullable reference
3416         types are not valid.
3417         (mono_nullable_box): Ditto.
3418
3419 2006-02-09  Dick Porter  <dick@ximian.com>
3420
3421         * threads.c (mono_thread_detach): Drop a reference to the thread
3422         we're detaching.
3423
3424 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3425
3426         * object.c (mono_nullable_init): Handle nullable reference types.
3427         (mono_nullable_box): Ditto. Fixes #77446.
3428
3429 2006-02-07  Martin Baulig  <martin@ximian.com>
3430
3431         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3432
3433 2006-02-07  Ankit Jain  <jankit@novell.com>
3434
3435         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3436         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3437         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3438         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3439         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3440         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3441
3442 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3443
3444         * class.c (mono_class_create_generic): Set type_token as well.
3445
3446         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3447         compatible with MS.
3448
3449 2006-02-02  Martin Baulig  <martin@ximian.com>
3450
3451         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3452         has never been used so far.
3453
3454 2006-02-02  Martin Baulig  <martin@ximian.com>
3455
3456         * mono-debug-debugger.h: Changed comment at the top of this file;
3457         the header is not installed, but it's safe to #include it from
3458         within the JIT.
3459
3460         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3461         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3462
3463 2006-02-02  Martin Baulig  <martin@ximian.com>
3464
3465         * mono-debug.h
3466         (MonoSymbolTable): Removed the `metadata_info' field.
3467
3468         * mono-debug.c
3469         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3470
3471         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3472         (mono_debugger_add_builtin_types): Removed.
3473         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3474         (mono_debugger_create_notification_function): We now operate on a
3475         pre-allocated area; take a `gpointer' and return `void'.
3476
3477         * mono-debug-debugger.c
3478         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3479         (mono_debugger_add_builtin_types): Removed.
3480
3481 2006-02-02  Martin Baulig  <martin@ximian.com>
3482
3483         * threads.c (mono_debugger_create_all_threads): New public method.
3484
3485 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3486
3487         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3488         breaks on several platforms.
3489
3490 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3491
3492         * assembly.c: the VS.NET build doesn't supply default values for
3493         MONO_ASSEMBLIES and MONO_CFG_DIR.
3494
3495 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3496
3497         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3498         helper function.
3499
3500         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3501
3502         * loader.c (method_from_memberref): Fix a warning.
3503
3504         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3505
3506         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3507         with explicit layout. Fixes #77433.
3508
3509 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3510
3511         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3512         max_interface_id is initialized before using it. Fixes #77398.
3513         (ves_icall_Type_GetInterfaces): Ditto.
3514
3515 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3516
3517         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3518         allocate memory for parameter attributes when parsing memberref
3519         signatures.
3520         * loader.c (mono_loader_set_error_method_load): Don't warn.
3521         (method_from_memberref): Ensure MissingMethodException gets thrown
3522         if method is not found.  Make warning more informative.
3523
3524 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3525
3526         Fix #77397
3527         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3528         return true if is byref.
3529         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3530         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3531         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3532
3533 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3534
3535         Fix tests/find-method.2.il
3536         * loader.c (find_method, find_method_in_class): Remove is_inflated
3537         argument.  Revert 2006-01-18 change.
3538         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3539         is generic, search for method in its generic definition.
3540         * class.c (mono_class_setup_vtable_general): Print generic
3541         arguments of generic types in debugging printf.
3542
3543 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3544
3545         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3546
3547         * threads.c (mono_threads_request_thread_dump): New helper function.
3548
3549 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3550
3551         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3552
3553 2006-01-25  Ankit Jain  <jankit@novell.com>
3554
3555         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3556         move definition to ..
3557         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3558         
3559 2006-01-25  Ankit Jain  <jankit@novell.com>
3560             Raja R Harinath  <rharinath@novell.com>
3561
3562         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3563         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3564         as necessary.
3565
3566 2006-01-25  Martin Baulig  <martin@ximian.com>
3567
3568         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3569         `MonoDebuggerThread' into debug-debugger.c.
3570
3571 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3572
3573         * profiler.c: fix printing of data.
3574
3575 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3576
3577         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3578           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3579
3580 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3581
3582         * object.c: fix deadlock related to string interning.
3583
3584 2006-01-23  Martin Baulig  <martin@ximian.com>
3585
3586         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3587
3588         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3589
3590 2006-01-23  Martin Baulig  <martin@ximian.com>
3591
3592         * mono-debug.h: Moved the prototypes of some functions which are
3593         used by the JIT here from mono-debug-debugger.h.
3594
3595 2006-01-21  Martin Baulig  <martin@ximian.com>
3596
3597         * Makefile.am: Don't install mono-debug-debugger.h.
3598
3599 2006-01-21  Martin Baulig  <martin@ximian.com>
3600
3601         * mono-debug-debugger.h: Enforce the private status of this header
3602         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3603         Moved some stuff from mono-debugger-jit-wrapper.h here.
3604
3605 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3606
3607         * class.c (mono_class_from_typeref): Add a sanity test to help
3608         catch lack of assembly load/search hooks.
3609
3610 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3611
3612         * marshal.c (emit_struct_conv): Relax the fields with same offset
3613         check even more. Fixes #77230.
3614
3615 2006-01-18  Martin Baulig  <martin@ximian.com>
3616
3617         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3618         argument; if false, we compare the uninstantiated signatures.
3619         (method_from_memberref): Compare the uninstantiated signatures;
3620         fixes #76417.
3621
3622 2006-01-18  Robert Jordan  <robertj@gmx.net>
3623
3624         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3625         Clear the weak link. Fixes bug #77170.
3626
3627         * gc.c (mono_gchandle_free):
3628         Reflect *-gc.c changes (tiny optimization).
3629
3630 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3631
3632         * metadata.c (mono_metadata_signature_dup): Applied patch from
3633         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3634         Fixes #77288.
3635
3636 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3637
3638         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3639         marshalling from native to managed code. Fixes #77230.
3640
3641 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3642
3643         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3644         connect. Fixes bug #77020.
3645
3646 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3647
3648         * class.c: fixed id assignement for nested interfaces (bug #77275).
3649         Added also better info for --print-vtable debugging.
3650
3651 2006-01-12  Martin Baulig  <martin@ximian.com>
3652
3653         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3654         interfaces on-the-fly; fixes #76625.
3655
3656         * class-internals.h
3657         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3658         don't need that anymore.
3659
3660 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3661
3662         * socket-io.c
3663         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3664         To avoid initing the nested_classes when not needed I turned the
3665         PeerCredData as a toplevel internal class, as it has to be shared
3666         anyways. 
3667
3668         Fixes the CASA issue.
3669
3670 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3671
3672         * domain.c: Accessors for MonoJitInfo
3673
3674         * profiler-private.h: Add jitinfo to the end jit hook
3675
3676         * profiler.[ch]: Define new hooks, called after jitting which give
3677         the MonoJitInfo that was compiled
3678
3679 2006-01-10  Martin Baulig  <martin@ximian.com>
3680
3681         * class.c (mono_class_setup_events): Add support for generic
3682         classes; fixes #76440.
3683
3684 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3685
3686         Fix #77160.
3687         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3688         on passed-in method.
3689
3690 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3691
3692         * object.c (mono_runtime_invoke_array): Add Nullable support.
3693
3694         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3695
3696 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3697
3698         * file-io.c: Don't consider sockets as directory and avoid an endless
3699         loop. Fix bug #76966.
3700
3701 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3702
3703         * object.c (mono_nullable_init): New helper function.
3704         (mono_nullable_box): Ditto.
3705
3706         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3707
3708         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3709
3710         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3711         
3712 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3713
3714         * class.c (mono_class_is_assignable_from): Make T assignable to 
3715         Nullable<T>.
3716
3717 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3718
3719         * appdomain.c: Bump corlib version to 46.
3720         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3721         serialization purpose) and changed ves_icall_System_Reflection_
3722         Assembly_get_code_base signature to accept a boolean (to escape, or 
3723         not, the assembly code base).
3724
3725 2005-12-23  Dick Porter  <dick@ximian.com>
3726
3727         * icall.c: 
3728         * threads-types.h: 
3729         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3730         CreateEvent icall now returns "created" boolean parameter.
3731
3732 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3733
3734         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3735         #76967.
3736
3737         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3738         when attr_klass is an interface. Fixes #77045.
3739
3740 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3741
3742         * marshal.c (emit_struct_conv): Fix previous patch.
3743         
3744         * marshal.c (emit_struct_conv): Add a check for fields with the same
3745         offset.
3746
3747 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3748
3749         Fix regression in Mono.C5.
3750         * class.c (mono_class_create_generic): If 'klass' is an interface
3751         set up the interface offsets.
3752         (mono_class_is_assignable_from): Don't throw away generic arguments.
3753
3754 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3755
3756         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3757         type parameters.
3758
3759 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3760
3761         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3762         dead store.
3763         (do_mono_metadata_parse_generic_class): Don't pass the current
3764         generic context when parsing the type being instantiated: it
3765         cannot use it, anyway.
3766
3767         * loader.c (method_from_memberref): Don't inflate a signature if
3768         it doesn't contain any type parameters.
3769
3770 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3771
3772         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3773
3774 2005-12-14  Martin Baulig  <martin@ximian.com>
3775
3776         * class.c
3777         (mono_type_get_name_recurse): Don't return null for type
3778         parameters and open generic classes.
3779         (mono_class_setup_methods): Don't exclude generic instances.
3780         (mono_get_unique_iid): Use different IDs for different
3781         instantiations of the same generic type.
3782         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3783         open generic instances; create a normal vtable for closed generic
3784         instances.
3785         (mono_class_setup_vtable_general): We're now also called for
3786         closed generic instances.
3787
3788         * reflection.c
3789         (mono_reflection_bind_generic_parameters): Correctly use
3790         mono_metadata_lookup_generic_inst() everywhere.
3791
3792 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3793
3794         * object.c (mono_class_create_runtime_vtable): Call 
3795         mono_class_setup_vtable ().
3796
3797         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3798         function.
3799         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3800         #76959.
3801
3802         * loader.c (mono_loader_set_error_type_load): Print the type load
3803         warnings to the console so they are more visible to the user.
3804         (mono_loader_set_error_method_load): Ditto.
3805
3806         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3807         is still broken.
3808         
3809         * reflection.c (ensure_runtime_vtable): Fix build.
3810
3811         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3812         doesn't work in all cases.
3813
3814 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3815
3816         * object.c (mono_array_new_full): Treat a single dimensional array
3817         with 0 lower bounds as an szarray. Fixes #76973.
3818
3819         * reflection.c (custom_attr_visible): Really fix this.
3820
3821 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3822
3823         * reflection.c (custom_attr_visible): Allow nested public attributes
3824         as well.
3825
3826         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
3827         interface check.
3828
3829 2005-12-12  Raja R Harinath  <harinath@gmail.com>
3830
3831         * class.c (set_generic_param_owner): Delete.
3832         (mono_class_create_from_typedef): Don't set ->owner field of
3833         generic parameters to "param containers" of enclosing classes.
3834         * reflection.c (mono_reflection_initialize_generic_parameter):
3835         Likewise.
3836
3837 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
3838
3839         * reflection.c (custom_attr_visible): Fix build.
3840
3841 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
3842
3843         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
3844         private attributes.
3845         
3846         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
3847         handling of null parameter defaults.
3848
3849 2005-12-09  Raja R Harinath  <rharinath@novell.com>
3850
3851         * class.c (mono_class_from_generic_parameter): Don't set
3852         klass->generic_container.
3853         (my_mono_class_from_generic_parameter): Likewise.
3854
3855 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
3856
3857         * reflection.c (load_public_key): Fix a warning.
3858         (method_encode_code): Fix unaligned accesses.
3859
3860 2005-12-07  Martin Baulig  <martin@ximian.com>
3861
3862         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
3863
3864         * reflection.c
3865         (write_generic_param_entry): Encode our custom attrs.
3866
3867         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
3868
3869 2005-12-07  Martin Baulig  <martin@ximian.com>
3870
3871         * reflection.c (encode_new_constraint): Removed; we don't use the
3872         `NewConstraintAttribute' anymore.
3873
3874 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
3875
3876         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
3877         not fire a TypeResolve event when Assembly.GetType () is called.
3878
3879 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
3880
3881         Beginning of support for nullable types in the runtime. Parts of
3882         this patch are from Martin.
3883
3884         * appdomain.c (MONO_CORLIB_VERSION): Bump
3885
3886         * domain.c (mono_init_internal): get the nullable type
3887
3888         * class.c (mono_class_is_nullable): New method
3889         (mono_class_get_nullable_param): New mehod
3890         (mono_class_create_generic): In types T? set cast_class to T
3891
3892         * class-internals.h (MonoDefaults): new nullable default class
3893         (mono_class_get_nullable_param, mono_class_get_nullable_param):
3894         new methods.
3895
3896 2005-12-05  Raja R Harinath  <rharinath@novell.com>
3897
3898         * metadata.c (select_container): New.  Refactor code to select the
3899         appropriate GenericContainer given the type of generic parameter
3900         we are looking for.
3901         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
3902         not a MonoGenericContext.  Use select_container.  Update parameters.
3903         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
3904         and MONO_TYPE_MVAR.
3905         (unwrap_arrays): Remove duplicate tests.
3906         (find_generic_param): Rename from 'has_same_context'.  Now walks a
3907         generic instantiated class to find any arguments that are generic
3908         parameters.
3909         (mono_type_create_from_typespec_full): Use find_generic_param to
3910         avoid evicting some generic instantiations from the typespec
3911         cache.
3912
3913 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
3914
3915         * reflection.c: fixed writing of doubles on ARM FPA.
3916
3917 2005-12-02  Robert Jordan  <robertj@gmx.net>
3918
3919         * icall.c: Fixed EventInfo.ReflectedType (#76829).
3920
3921 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3922
3923         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
3924         least on SUSE 10 they are not the same (on debian, they are just the
3925         same thing).
3926
3927 2005-12-01  Raja R Harinath  <rharinath@novell.com>
3928
3929         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
3930         DeclaringType for VARs and MVARs.
3931         * class.c (set_generic_param_owner): Fix initialization of owner
3932         fields.
3933
3934 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
3935
3936         * icall.c: fixed Enum.ToObject() to correctly convert the values.
3937
3938 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3939
3940         * threadpool.c: workaround for a bug that shows up on the Mac:
3941         select()+connect() on a blocking socket is not like it should
3942         be, so we proceed to connect() in that case, wasting the I/O
3943         threadpool thread until connect succeedes. Fixes bug #75436.
3944
3945 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3946
3947         * threadpool.c: fix typo when setting file descriptor states.
3948
3949 2005-11-28  Raja R Harinath  <rharinath@novell.com>
3950
3951         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
3952         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3953         create a temporary signature container.
3954         (mono_metadata_parse_generic_param): Update to changes.
3955         (mono_type_create_from_typespec_full): Update to changes.
3956         * loader.c (method_from_memberref): Don't use a
3957         MonoGenericContainer while parsing a memberref signature.
3958         (method_from_methodspec): Remove dead-store of the 'container'
3959         variable.  It's overwritten before use.
3960
3961         * metadata.c (mono_type_create_from_typespec_full): Make debugging
3962         checks tighter.
3963         (mono_metadata_parse_generic_param): Likewise.
3964         * loader.c (find_method_in_class): Does not need a
3965         MonoGenericContainer.  Use 'mono_method_signature' rather than
3966         'mono_method_signature_full'.
3967         (find_method, mono_get_method_constrained, method_from_memberref):
3968         Update to changes.
3969
3970         * metadata.c (mono_type_create_from_typespec_full): Ensure that
3971         owner-less generic-parameters are never evicted from the typespec
3972         cache.
3973
3974         * loader.c (method_from_memberref): Don't use the current context
3975         when parsing signatures.
3976         (method_from_methodspec, mono_get_method_from_token): Update to changes.
3977
3978         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
3979         side-effects in g_assert.
3980         * loader.c (mono_get_method_from_token): Resolve klass earlier so
3981         that we don't potentially lose information.
3982
3983 2005-11-26  Dick Porter  <dick@ximian.com>
3984
3985         * icall.c:
3986         * threads.c: icalls to implement basic (ie, not named)
3987         System.Threading.Semaphore.
3988
3989 2005-11-24  Dick Porter  <dick@ximian.com>
3990
3991         * process.c
3992         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3993         Use GetProcessId() if it's available.
3994
3995 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
3996
3997         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
3998
3999 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4000             Ankit Jain  <jankit@novell.com>
4001
4002         * loader.c (mono_get_method_from_token): Initialize 'method' field
4003         of all generic parameters before parsing the signature.  Remove
4004         code that "fixed"-up MVAR references.
4005
4006 2005-11-23  Ankit Jain  <jankit@novell.com>
4007
4008         * metadata.c (mono_metadata_has_generic_params):
4009         (mono_metadata_load_generic_param_constraints):
4010         (mono_metadata_load_generic_params): Move duplicate code ...
4011         (mono_metadata_get_generic_param_row): ... here. Returns the
4012         first row-id in GenericParam table for a given owner (token).
4013         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4014         prototype.
4015
4016 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4017             Ankit Jain  <jankit@novell.com>
4018
4019         * metadata.c (mono_metadata_class_equal): Pass signature_only when
4020         comparing VARs too.
4021         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
4022         type->data.generic_param only if the type is an MVAR.
4023         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4024         leak owner-less VARs and MVARs into managed space.
4025
4026 2005-11-21  Martin Baulig  <martin@ximian.com>
4027
4028         * class-internals.h
4029         (MonoMethod): Moved the `generic_container' here from
4030         `MonoMethodNormal' since we now also need it for
4031         `MonoMethodPInvoke';
4032         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4033         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4034         an union containing both `MonoMethodNormal' and
4035         `MonoMethodPInvoke'.
4036
4037         * loader.c
4038         (mono_get_method_from_token): Allow implementing generic methods
4039         as interncalls.
4040
4041         * threads.c
4042         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4043         icall.
4044
4045 2005-11-17  Dick Porter  <dick@ximian.com>
4046
4047         * icall.c: 
4048         * process.h: 
4049         * process.c: Split the Process Start_internal icall into
4050         ShellExecuteEx_internal and CreateProcess_internal, which are
4051         called depending on whether UseShellExecute is true.  Fixes bug
4052         76670.
4053
4054         * appdomain.c (MONO_CORLIB_VERSION): Incremented
4055
4056 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
4057
4058         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4059         'msize' parameters, use the information in 'mspec' instead.
4060         (emit_object_to_ptr_conv): Ditto.
4061
4062         * marshal.c (emit_struct_conv): Handle explicit layout structs with
4063         fields out of order. Fixes #76733.
4064
4065 2005-11-17  Ankit Jain  <jankit@novell.com>
4066
4067         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4068
4069 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
4070
4071         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4072           bug #76575.
4073
4074 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4075
4076         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4077         for types with non-auto layout. Fixes #76717.
4078
4079 2005-11-16  Ankit Jain  <jankit@novell.com>
4080
4081         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4082         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4083         if generic_context is null.
4084           (mono_metadata_generic_param_equal): param->owner can be null.
4085           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4086         null.
4087
4088 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4089
4090         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4091         the correct value.
4092
4093 2005-11-15  Martin Baulig  <martin@ximian.com>
4094
4095         * object.c (set_value): Use mono_class_from_mono_type() instead of
4096         the hack for generic instances; fixes #76136.
4097
4098 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4099
4100         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4101         fields.
4102
4103         * image.c (load_metadata_ptrs): Initialize the new fields.
4104
4105         * reflection.c (create_dynamic_mono_image): Ditto.
4106
4107         * reflection.c (build_compressed_metadata): Use the new fields.
4108
4109         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4110         icall.
4111
4112         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4113         icall.
4114         
4115 2005-11-15  Ankit Jain  <jankit@novell.com>
4116             Raja R Harinath  <harinath@gmail.com>
4117
4118         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4119         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4120         new per-generic_container cache if the cached MonoType's context matches
4121         the current context.
4122           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4123         to the expected context.
4124           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4125
4126 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4127
4128         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4129         we changed the signature of an icall.
4130         * icall.c: Modify to mono_double_ParseImpl return true/false 
4131         depending on the success, instead of throwing the exception. This will
4132         help us in Double.TryParse methods.
4133         
4134 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4135
4136         * marshal.c (emit_marshal_object): Throw an exception when
4137         marshalling 'object' instead of crashing. Fixes #76696.
4138
4139 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4140
4141         * class-internals.h: Add prototype for mono_type_get_full_name ().
4142
4143 2005-11-11  Dick Porter  <dick@ximian.com>
4144
4145         * threads.c (mono_thread_manage): Make sure the main thread has
4146         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4147
4148 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4149
4150         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4151         console about the missing type.
4152         (mono_loader_set_error_method_load): Ditto.
4153
4154 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4155
4156         * mono-config.c (mono_get_config_dir): Set the system defaults if
4157         none is specified.
4158
4159         * assembly.c (mono_set_dirs): New API entry point to set the
4160         assembly and the config directory in one call
4161
4162 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4163
4164         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4165         the ftnptr was created from a delegate in a domain other than the
4166         current domain. Fixes #75377.
4167
4168         * exception.h exception.c: Add mono_get_exception_not_supported ().
4169
4170 2005-11-08  Martin Baulig  <martin@ximian.com>
4171
4172         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4173
4174 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4175
4176         * security-manager.h: Added definitions to deal with strongname key 
4177         pairs bigger (and smaller) than 1024 bits.
4178         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4179         adjust wrt the public key length being used.
4180
4181 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4182
4183         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4184           Windows build (r51396-51397).
4185
4186 2005-11-03  Martin Baulig  <martin@ximian.com>
4187
4188         * class.c (mono_class_setup_vtable_general): Also add generic
4189         methods to the vtable; fixes #76581.
4190
4191 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4192
4193         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4194         sure that we lookup GetString method from the System.Text.Encoding
4195         class, not the derived class or we get an empty method.
4196
4197         Fixed class #76612.
4198
4199 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4200
4201         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4202         if it has been previously set (embedders). 
4203
4204         Make mono_set_rootdir available also on Unix.
4205
4206 005-10-24  Robert Jordan  <robertj@gmx.net>
4207
4208         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4209
4210 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4211
4212         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4213         only calls which are made to native code use this flag.
4214
4215         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4216
4217 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4218
4219         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4220         Add support for FieldBuilders.
4221
4222 2005-10-29  Martin Baulig  <martin@ximian.com>
4223
4224         * mono-debug.c
4225         (mono_debug_using_mono_debugger): New public method; returns
4226         whether we're running inside the debugger.
4227
4228 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4231         for Method/Constructor/FieldBuilders.
4232
4233 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4234
4235         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4236         and fields as well.
4237
4238 2005-10-26  Martin Baulig  <martin@ximian.com>
4239
4240         * mono-debug-debugger.c
4241         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4242
4243 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4244
4245         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4246         integer to isspace.
4247
4248 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4249
4250         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4251         when passing valuetypes byref. Fixes #76502.
4252
4253 2005-10-19  Jackson Harper  <jackson@ximian.com>
4254
4255         * profiler.c: Don't put a . in front of types that are not in a
4256         namespace.
4257
4258 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4259
4260         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4261
4262 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4263
4264         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4265         #76436.
4266         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4267
4268 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4269
4270         * assembly.c metadata-internals.h icall.c: Define an additional
4271         parameter for mono_assembly_name_parse_full, so we can avoid creating
4272         S.R.AssemblyName.Version when no version info wasn't passed.
4273         
4274 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4275
4276         * class.c (mono_type_get_full_name): Reimplement method that was
4277         removed. 
4278
4279         * image.c: Some docs
4280
4281 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4282
4283         * profiler.c (output_newobj_profile): Fix printing of Total memory
4284         on x86.
4285
4286 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4287
4288         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4289
4290 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4291
4292         * threads.c: remove debug output.
4293
4294 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4295
4296         * threads.c (mono_thread_manage): Fix crashes if more than 64
4297         threads need to be aborted. Hopefully fixes #75899.
4298
4299         * assembly.c (mono_stringify_assembly_name): New helper function.
4300
4301         * class.c: Use mono_stringify_assembly_name instead of the similar
4302         static function.
4303
4304         * assembly.h assembly.c: Add support for calling a postload search 
4305         hook if an assembly cannot be loaded.
4306
4307         * appdomain.c: Register new search hooks which call the AssemblyResolve
4308         events in AppDomain. Fixes #75231
4309
4310 2005-10-07  Martin Baulig  <martin@ximian.com>
4311
4312         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4313         methods without debug info.
4314
4315 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4316
4317         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4318         wrappers.
4319
4320 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4321
4322         * file-io.c: now that we return symlinks, use lstat and, when the file
4323         is a symbolic link, stat, to get the file attributes. Also avoid the
4324         conversion to/from utf16/external.
4325
4326 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4327
4328         * class.c (mono_class_layout_fields): Compute klass->has_references
4329         correctly if an embedded valuetype is not yet initialized. Fixes
4330         #76331.
4331
4332 2005-10-04  Martin Baulig  <martin@ximian.com>
4333
4334         * metadata.c
4335         (mono_metadata_load_generic_param_constraints): New public
4336         function; splitted the constraints loading out from
4337         mono_metadata_load_generic_params().
4338
4339         * class.c (mono_class_create_from_typedef): Call
4340         mono_metadata_load_generic_param_constraints() after setting up
4341         the type and creating our parent; fixes #75329.
4342
4343 2005-10-04  Martin Baulig  <martin@ximian.com>
4344
4345         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4346         non-dynamic parent classes.
4347
4348 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4349
4350         * file-io.c : win32 build fix (ETXTBSY seems not found).
4351
4352 2005-10-04  Martin Baulig  <martin@ximian.com>
4353
4354         * reflection.c
4355         (mono_image_get_methodspec_token): Make the cache actually work;
4356         fixes #75974.
4357
4358 2005-10-04  Martin Baulig  <martin@ximian.com>
4359
4360         * class.c (mono_class_name_from_token): Removed the unneccessary
4361         `MonoGenericContext *' argument.
4362
4363 2005-10-04  Martin Baulig  <martin@ximian.com>
4364
4365         * loader.c
4366         (method_from_methodspec): Make the caching work again; fixes the
4367         performance regression from #76262.
4368
4369 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4370
4371         * file-io.c:
4372         * file-io.h:
4373         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4374         GetFileSystemEntries that performs the same work but without going
4375         into io-layer, locking, etc.
4376
4377 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4378
4379         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4380         ThreadState_Stopped as well. Fixes #76047.
4381
4382 2005-09-29  Martin Baulig  <martin@ximian.com>
4383
4384         * class.c
4385         (inflate_generic_context): If the new context has a `gmethod', set
4386         its `container' that that gmethod's `container'.
4387
4388         * metadata.c
4389         (mono_metadata_parse_generic_param): Simplify things;
4390         `generic_container = generic_context->container;' is just fine.
4391
4392         * loader.c (method_from_methodspec): Code cleanups.
4393
4394 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4395
4396         * decimal.c: fix warning (and let gcc generate correct
4397         code on ARM with optimizations).
4398
4399 2005-09-28  Martin Baulig  <martin@ximian.com>
4400
4401         * loader.c
4402         (method_from_memberref): Added `MonoGenericContext *class_context'
4403         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4404         (method_from_methodspec): If we're a memberref, use the enclosing
4405         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4406
4407 2005-09-28  Martin Baulig  <martin@ximian.com>
4408
4409         * object.c (mono_runtime_invoke_array): Added support for
4410         MONO_TYPE_GENERICINST; fixes #75917.
4411
4412 2005-09-27  Martin Baulig  <martin@ximian.com>
4413
4414         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4415         `k->byval_arg.type' to determine the actual type.
4416
4417         * loader.c (method_from_methodspec): Removed some hacks.
4418
4419 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4420
4421         * class-internals.h (mono_field_is_deleted): Do the test for
4422         rtspecialname before we check the actual name of the field. This
4423         prevents us from dereferencing a pointer into the string table,
4424         saving us from accessing a few pages
4425
4426         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4427         macros. This will allow a deadlock debugger to easily be plugged
4428         in.
4429
4430 2005-09-27  Martin Baulig  <martin@ximian.com>
4431
4432         * loader.c (method_from_methodspec): Create a "signature"
4433         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4434
4435 2005-09-27  Martin Baulig  <martin@ximian.com>
4436
4437         * class.c
4438         (inflate_generic_class): Correctly set the new context's
4439         container.
4440
4441         * loader.c
4442         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4443         instead of a `MonoGenericContext *'.
4444         (mono_method_signature_full): Take a `MonoGenericContainer *'
4445         instead of a `MonoGenericContext *'.
4446
4447         * metadata.c
4448         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4449         instead of a `MonoGenericContext *'.
4450         (mono_metadata_parse_method_signature_full): Likewise.
4451
4452 2005-09-26  Martin Baulig  <martin@ximian.com>
4453
4454         * class.c
4455         (mono_class_from_generic_parameter): Set `klass->generic_container'
4456         (mono_class_from_generic_parameter): Likewise.
4457         (mono_bounded_array_class_get): We inherit the generic container
4458         from the element class.
4459
4460         * loader.c
4461         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4462         argument rather than computing it here.
4463         (method_from_memberref): Correctly set the generic context before
4464         parsing the signature.  Fixes #75681.
4465
4466 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4467
4468         * object.c (mono_class_has_special_static_fields): Fix warnings.
4469
4470 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4471
4472         * assembly.c: Add parse_public_key function, to
4473         par the public keys. Also added mono_assembly_name_parse_full,
4474         to define it the parsed key should be freed or not.
4475         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4476         to parse a long format assembly name.
4477         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4478         private, since calling it to preserve the key requires
4479         freeing it manually.
4480         
4481 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4482
4483         * locales.c : removed HAVE_ICU part.
4484
4485 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4486
4487         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4488         field_is_special_static if the klass has no special static fields.
4489
4490         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4491         (MonoCachedClassInfo): Likewise.
4492
4493         * object.c (mono_class_has_special_static_fields): New helper function.
4494
4495 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4496
4497         * class.c (mono_class_create_from_typedef): Don't call 
4498         interfaces_from_typedef_full for enums.
4499         (mono_class_create_from_typedef): Compute the base types of enums directly
4500         without calling mono_class_setup_fields ().
4501         (mono_class_find_enum_basetype): New helper function.
4502
4503         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4504         one place inside the string heap.
4505         
4506 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4507
4508         * class.c: locking fixes, code cleanups, some docs added.
4509         Allocate some data structures in the image mempool.
4510
4511 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4512
4513         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4514         the example code.
4515         
4516 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4517
4518         * class-internals.h, class.c, reflection.c: reduce memory taken by
4519         MonoClass.
4520
4521 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4522
4523         * metadata.c, metadata.h, loader.h: documentation updates, code and
4524         API cleanups.
4525
4526 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4527
4528         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4529         the example code.
4530
4531         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4532         page faults caused by the runtime while reading metadata.
4533
4534 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4535
4536         * socket-io.c: the field names were changed 3 months ago and no one
4537         realized until bug #76077 got filed!
4538
4539 2005-09-20  Martin Baulig  <martin@ximian.com>
4540
4541         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4542
4543 2005-09-20  Martin Baulig  <martin@ximian.com>
4544
4545         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4546         write the rank into the class entry.
4547
4548 2005-09-20  Martin Baulig  <martin@ximian.com>
4549
4550         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4551
4552 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4553
4554         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4555
4556         * icall.c (custom_attrs_defined_internal): New icall.
4557
4558         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4559         function.
4560         (mono_custom_attrs_construct_by_type): New helper function.
4561
4562 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4563
4564         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4565         terminate the resulting string. Fixes #76123.
4566
4567 2005-09-16  Martin Baulig  <martin@ximian.com>
4568
4569         * mono-debug.c
4570         (mono_debug_add_method): Ignore inflated methods for the moment.
4571
4572 2005-09-14  Martin Baulig  <martin@ximian.com>
4573
4574         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4575
4576 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4577
4578         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4579         return a success/failure indication.
4580         (mono_metadata_interfaces_from_typedef_full): Ditto.
4581         (get_constraints): Ditto.
4582
4583 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4584
4585         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4586         
4587         * marshal.c (emit_marshal_array): Add support for returning string
4588         arrays from delegates. Fixes #76063.
4589
4590         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4591
4592 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4593
4594         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4595         icall.
4596
4597 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4598
4599         * reflection.c icall.c: Fix after mono_get_exception_type_load
4600         signature change.
4601
4602         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4603         (mono_assembly_load_reference): Use the new helper.
4604
4605         * class-internals.h (MonoLoaderError): New structure containing 
4606         information about type loading errors.
4607
4608         * class-internals.h loader.c: Add APIs to store per-thread loader
4609         error information.
4610
4611         * loader.c class.c: Set the loader error if needed.
4612
4613         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4614
4615 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4616
4617         * decimal.c: fixed to handle the broken ARM fp format.
4618
4619 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4620
4621         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4622         broken.
4623
4624 2005-09-06  Martin Baulig  <martin@ximian.com>
4625
4626         * domain.c (supported_runtimes): Added v2.0.50727.
4627
4628 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4629
4630         * culture-info.h: reduce the size of some structures.
4631
4632 2005-09-05  Martin Baulig  <martin@ximian.com>
4633
4634         Reflect latest API changes in the August CTP.
4635
4636         * icall.c
4637         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4638         ("MonoType.HasGenericArguments"): Removed.
4639         ("MonoMethod.BindGenericParameters"): Renamed to
4640         "MakeGenericMethod".
4641         ("MethodBuilder.BindGenericParameters"): Renamed to
4642         "MakeGenericMethod".    
4643
4644 2005-09-05  Martin Baulig  <martin@ximian.com>
4645
4646         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4647
4648 2005-09-05  Martin Baulig  <martin@ximian.com>
4649
4650         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4651
4652         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4653         generic_container is non-NULL.
4654
4655 2005-09-05  Martin Baulig  <martin@ximian.com>
4656
4657         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4658
4659         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4660
4661 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4662
4663         * reflection.c (encode_locals,
4664         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4665         for large generic types.
4666
4667 2005-09-05  Martin Baulig  <martin@ximian.com>
4668
4669         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4670
4671         * class.c (mono_dup_array_type): New public method.
4672         (mono_metadata_signature_deep_dup): New public method.
4673         (dup_type): Correctly duplicate array and function types.
4674
4675 2005-09-05  Martin Baulig  <martin@ximian.com>
4676
4677         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4678
4679         * reflection.c (get_default_param_value_blobs): Handle generic types
4680         and generic methods.
4681
4682 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4683
4684         * class.c: Fixed error reporting (method/class were inversed) for 
4685         inheritance demands.
4686         * security-manager.c|h: Added the AppDomain when calling the managed
4687         System.Security.SecurityManager.InheritanceDemand method.
4688
4689 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4690
4691         * reflection.c (encode_marshal_blob): 'marshaltype' and
4692         'marshaltyperef' are alternate sources for the custom marshaler
4693         name.
4694
4695 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4696
4697         * class.c: fix creation of array classes with rank == 1
4698         (patch by Ankit Jain <jankit@novell.com>).
4699
4700 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4701
4702         * object.c: fix check for creating the bound data for arrays vs
4703         szarrays.
4704
4705 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4706
4707         * object.c: configuration file name is now based on the executable name,
4708         not the image name. Fixes bug #75931.
4709
4710 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4711
4712         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4713         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4714
4715 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4716
4717         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4718
4719 2005-08-24  Ankit Jain  <jankit@novell.com>
4720             Raja R Harinath  <rharinath@novell.com>
4721
4722         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4723           called by it recursively.
4724           (mono_class_init): Remove special case in pending_init handling, since it's
4725           superseded by the fix to mono_class_from_typeref.
4726
4727 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4728
4729         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4730         BROKEN_THREAD_START stuff.
4731
4732 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4733
4734         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4735         trampoline.
4736
4737         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4738         
4739         * object.c (mono_delegate_ctor): Replace the original function address with
4740         a delegate trampoline.
4741
4742 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4743
4744         * icall.c: add boolean argument to base64_to_byte_array and 
4745         InternalFromBase64String to control whether a whitespace-only string
4746         is allowed (or should casue a FormatException to be thrown). We need
4747         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4748         to match the MS behaviour in both profiles.
4749         * appdomain.c: Bump corlib version.
4750
4751 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4752
4753         This patch implements a big portion of publisher policy
4754         support, used to bind assembly versions and redirect
4755         one assembly from version A to version B.
4756
4757         * assembly.c:
4758         New GSList loaded_assembly_bindings, for storing the cached
4759         assembly bindings.
4760         (assembly_binding_maps_name): New static function for checking if a 
4761         assembly binding information maps an assembly name.
4762         (mono_assembly_binding_info_free): New function for freeing
4763         assembly binding information resources.
4764         (get_publisher_policy_info): New static function for retrieving 
4765         assembly binding information from a MonoImage.
4766         (compare_versions): New static function for comparing an assembly
4767         binding information data and the version of an assembly name.
4768         (check_policy_versions): New static function for checking if an
4769         assembly binding info mapping an assembly name is valid for it.
4770         (mono_assembly_load_publisher_policy): New static function for
4771         loading the 'policy.major.minor.MyAssembly' image for an assembly
4772         with an assembly name 'aname'.
4773         (mono_assembly_bind_version): New static function for updating
4774         assembly redirection.
4775         (mono_assembly_apply_binding): New static function for applying
4776         assembly binding.
4777         (search_binding_loaded): New static function for searching 
4778         loaded assembly binding infos in the cache domain.
4779         (mono_assembly_load_full): Don't apply assembly binding for
4780         reflection only assemblies.
4781
4782         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4783         which contains information about assembly binding. Also
4784         declare signature for mono_config_parse_publisher_policy ()
4785         function, used to retrieve pub policy info.
4786         
4787         * mono-config.c:
4788         (publisher_policy_start): New static function used to parse publisher 
4789         policy config files.
4790         (publisher_policy_parser): New static MonoParseHandler containing 
4791         the functions used when parsing config files.
4792         (mono_config_parse_publisher_policy): New function for parsing
4793         publisher policy files.
4794         
4795 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4796
4797         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4798
4799         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4800
4801         * object.c (mono_get_addr_from_ftnptr): New helper function.
4802
4803         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4804
4805         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4806
4807 2005-08-19  Dick Porter  <dick@ximian.com>
4808
4809         * threads.c, threads.h, appdomain.c, appdomain.h,
4810         profiler-private.h, monitor.c, object.c, object-internals.h,
4811         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4812         store the thread ID, so it can hold a 64 bit value if needed.
4813
4814 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4815
4816         * reflection.c (mono_reflection_create_dynamic_method): Store the
4817         handle class into the method references as well so ldtoken works in
4818         dynamic methods.
4819
4820         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4821         types.
4822
4823 2005-08-19  Ankit Jain <jankit@novell.com>
4824
4825         Fix #75847.
4826         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
4827           here rather than using the method signature of a arbitrary function
4828           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
4829           two arguments.
4830           Hack done with Harinath.
4831
4832 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4833
4834         * threadpool.c: disable printing stack traces when we get a exception
4835         in a threadpool thread. I need to do more testing to figure out which
4836         cases actually print this. Fixes bug #75828.
4837
4838 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4839
4840         * icall.c: there might be ignored whitespace after the last '='. This
4841         fixes length computation and bug #75840.
4842
4843 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
4844
4845         * assembly.c (mono_assembly_load_full): Consider .exe extension as
4846         well. Fixes #75809.
4847
4848         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
4849         #75784.
4850         
4851         * reflection.c (create_custom_attr_data): Ditto.
4852
4853 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
4854
4855         * locales.c, culture-info.h : removed RegionLCIDMap.
4856         * culture-info-tables.h : regenerated.
4857
4858 2005-08-16  Martin Baulig  <martin@ximian.com>
4859
4860         * class.c (mono_type_get_name_recurse): Small fix.
4861
4862 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4863
4864         * locales.c : indentation fixie.
4865
4866 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
4867
4868         * object-internals.h,
4869           locales.h,
4870           locales.c,
4871           culture-info.h,
4872           icall.c : added RegionInfo table support.
4873         * culture-info-table.h : regenerated for region support.
4874
4875 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
4876
4877         * reflection.c (resolve_object): handle all kinds of MonoMethod
4878         including generic ones
4879
4880 2005-08-12  Ankit Jain <jankit@novell.com>
4881
4882         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
4883           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
4884
4885 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
4886
4887         * process.c: Don't close a thread handle when it's NULL. This is a
4888         workaround for bug #75733.
4889
4890 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
4891
4892         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
4893
4894 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
4895
4896         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
4897
4898 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4899
4900         * threadpool.c: if a work item in the thread pool has a callback that
4901         catches a exception, don't propagate it after invoking the callback.
4902         Fixes bug #75336.
4903
4904 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
4905
4906         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
4907
4908         * class-internals.h (MonoCachedClassInfo): Add some new fields.
4909
4910         * class.c (mono_class_init): Load field info lazily in the AOT case.    
4911
4912         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
4913
4914 2005-08-03  Ankit Jain  <jankit@novell.com>
4915
4916         Fix #75683.
4917         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
4918           PInvoke calling convention is 0.
4919
4920 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
4921
4922         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
4923         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
4924
4925 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
4926
4927         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
4928         to handle threads not started by the GC (patch by Michael Meeks
4929         <michael.meeks@novell.com>).
4930
4931 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
4932
4933         * reflection.c: Make buffer used in emitting types larger for some
4934         big generic types (patch by Michal Moskal).
4935
4936 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
4937
4938         * mono-debug.c: Fix some (not all) alignment problems.
4939
4940 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4941
4942         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
4943         Invoke mono_image_load_from_data_full passing the refonly
4944         parameter.
4945
4946         * assembly.c
4947         (mono_assembly_open_from_bundle): Add the refonly argument, 
4948         in order to pass it to other methods it calls to.
4949         (do_mono_assembly_open): Add the refonly argument, in order 
4950         to pass it to other methods it calls to.
4951         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
4952         the refonly parameter to it.
4953
4954         * image.c: Add loaded_images_refonly_hash and
4955         loaded_images_refonly_guid_hash to cache the reflection
4956         only loaded images.
4957         (mono_images_init): Initialize the hash tables used for
4958         caching the reflection only images.
4959         (load_modules): Invoke mono_image_open_full passing the refonly
4960         parameter to load the modules the correct way.
4961         (build_guid_table): Add the refonly argument, to re-build the 
4962         correct hash table.
4963         (do_mono_image_open): Added the refonly argument, in order to
4964         define it for the loaded image.
4965         (mono_image_loaded_full): New function, which receives an
4966         additional parameter to look for the image in the refonly or
4967         non-refonly section.
4968         (mono_image_loaded): Updated, using mono_image_loaded_full.
4969         (mono_image_loaded_by_guid_full): The same case that happens
4970         with mono_image_loaded_full.
4971         (mono_image_loaded_by_guid): Likewise.
4972         (register_image): Use the ref_only variable inside MonoImage
4973         to decide in which hash table store the current image.
4974         (mono_image_open_from_data_full): Rename
4975         mono_image_open_from_data to mono_image_open_from_data_full,
4976         adding the refonly argument, to define the ref_only variable 
4977         inside MonoImage.
4978         (mono_image_open_from_data): Return 
4979         mono_image_open_from_data_full.
4980         (mono_image_open_full): Rename mono_image_open to
4981         mono_image_open_full, receiving the new refonly argument,
4982         to pass it to inner methods.
4983         (mono_pe_file_open): Update this function, to open
4984         a MonoImage as a non-refonly image.
4985         (mono_image_close): Use the refonly variable inside
4986         MonoImage to remove the image from the correct caches.
4987
4988         * image.h: Add the signatures of mono_image_open_full,
4989         mono_image_open_from_data_full, mono_image_loaded_full,
4990         mono_image_loaded_by_guid_full.
4991
4992         * metadata-internals.h: Add the ref_only field to 
4993         MonoImage.
4994         
4995 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4996
4997         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
4998         Fix the last behavior, which used to load the assemblies and
4999         extract MonoReflectionAssemblyName information, instead of
5000         extract it from the metadata tables. Needed for Reflection
5001         Only assemblies.
5002         
5003 2005-07-29  Martin Baulig  <martin@ximian.com>
5004
5005         * mono-debug-debugger.c
5006         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5007         not initialized.
5008
5009         * mono-debug.c
5010         (mono_debug_address_from_il_offset): Check whether we have
5011         debugging support before attempting to take the lock.
5012         (mono_debug_source_location_from_address): Likewise.
5013         (mono_debug_source_location_from_il_offset): Likewise.
5014         (mono_debug_il_offset_from_address): Likewise.
5015         (mono_debug_address_from_il_offset): Likewise.
5016
5017 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
5018
5019         * class.c (mono_class_from_name_case): Add support for dynamic images.
5020         Fixes #75650.
5021
5022         * object.c (mono_class_compute_gc_descriptor): Add a workaround
5023         for #75479.
5024
5025 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5026         
5027         * reflection.c (mono_method_get_object): Fix warning.
5028
5029 2005-07-28  Martin Baulig  <martin@ximian.com>
5030
5031         * mono-debug.c
5032         (mono_debug_add_wrapper): Also write the wrapper type.
5033
5034 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5035
5036         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5037         
5038         * class.c (mono_class_init): Avoid reading nested classes if the AOT
5039         data indicates the class has none.
5040
5041 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
5042
5043         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5044         loader lock with the debugger lock. Prevents deadlocks for beagle.
5045
5046         Beagle can now run on an smp box for a weekend without any
5047         issues. Woohoo!
5048
5049 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
5050
5051         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5052         in a module. Fixes #75629.
5053
5054 2005-07-26  Martin Baulig  <martin@ximian.com>
5055
5056         * mono-debug.c (mono_debug_add_wrapper): New static method.
5057         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5058         interncall or a wrapper.
5059
5060         * mono-debug.h (MonoDebugWrapperData): New public typedef.
5061         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5062         (MONO_DEBUGGER_VERSION): Bump to 51.
5063
5064         * mono-debug-debugger.c
5065         (mono_debugger_add_type): Removed this empty function.
5066         (mono_debugger_add_method): Likewise.
5067
5068 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
5069
5070         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
5071         before accessing method->slot.
5072
5073 2005-07-21  Jb Evain  <jbevain@gmail.com>
5074
5075         * reflection.c (method_encode_clauses/class): Handle filters clauses.
5076         Fixes #75010.
5077
5078 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
5079
5080         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5081         #75587.
5082
5083 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5084
5085         * image.h image.c: Add mono_image_get_guid () API function.
5086
5087 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5088
5089         There were issues when multiple threads tried to load
5090         assemblies. A deadlock was created between assemblies_mutex and
5091         mono_domain_assemblies_lock. This fixes the issue by making the
5092         assembly ref counting be lock free. See bug 75586.
5093         
5094         * image.c (mono_image_close): The add ref function here was using
5095         Interlocked operations while the unref was using a mutex and a
5096         --. I don't think this was ever a bug that would be exposed in a
5097         non-pendantic way (ie, by an embedder doing a ref on one thread
5098         and an unref on another), but for the sake of correctness, this is
5099         now Interlocked.
5100
5101         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5102         (mono_assembly_load_reference): Call mono_assembly_addref rather
5103         than touching the refcount ourselves.
5104         (mono_assembly_close): Use InterlockedDecrement to unref the
5105         assembly. Don't acquire the lock unless it is actually needed.
5106
5107 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5108
5109         * class.c (mono_class_layout_fields): Fix calculation of has_references
5110         for generic types.
5111
5112 2005-07-12  Martin Baulig  <martin@ximian.com>
5113
5114         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5115
5116         * metadata.c
5117         (mono_type_hash): Provide better hashing for generic instances.
5118         (mono_generic_inst_hash): Improve hashing.
5119         (mono_generic_class_hash): Likewise.
5120
5121         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5122         generic instances.
5123
5124 2005-07-12  Martin Baulig  <martin@ximian.com>
5125
5126         * reflection.c (mono_reflection_create_runtime_class): Remove the
5127         hack for generic type definitions and non-`Run' assemblies.
5128         (mono_reflection_bind_generic_parameters): Also use
5129         `klass->wastypebuilder' to check for TypeBuilders.
5130
5131 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5132
5133         * class.c (mono_class_layout_fields): Fix calculation of has_references
5134         for generic types.
5135
5136         * class.c (inflate_generic_class): Fix a leak.
5137         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5138         for generic types.
5139
5140 2005-07-11  Martin Baulig  <martin@ximian.com>
5141
5142         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5143         on error.
5144
5145 2005-07-11  Martin Baulig  <martin@ximian.com>
5146
5147         * loader.c (find_method): Also lookup in
5148         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5149
5150 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5151
5152         * appdomain.c (mono_domain_unload): Don't free the error message
5153         before passing it to mono_get_exception_...
5154
5155         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5156         
5157 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5158
5159         * threads.c: try to better guess an available RT signal (bug #75387).
5160
5161 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5162
5163         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5164         and CACHE_OBJECT.
5165
5166 2005-07-07  Martin Baulig  <martin@ximian.com>
5167
5168         * class.c (mono_type_get_name_full): Return NULL for
5169         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5170         fixes #75408.
5171
5172 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5173
5174         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5175         exit the appdomain as well being aborted.
5176
5177         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5178         change back to the root domain after calling managed code. This enables
5179         appdomains using threadpools to be unloaded.
5180
5181 2005-07-07  Martin Baulig  <martin@ximian.com>
5182
5183         * class-internals.h
5184         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5185         into `MonoDynamicGenericClass' since we only need it for dynamic
5186         types.
5187
5188         * reflection.c (mono_class_bind_generic_parameters): We don't need
5189         to compute the `parent' here.
5190
5191 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5192
5193         * culture-info-table.h : regenerated.
5194
5195 2005-07-06  Martin Baulig  <martin@ximian.com>
5196
5197         * icall.c
5198         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5199
5200         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5201
5202 2005-07-06  Martin Baulig  <martin@ximian.com>
5203
5204         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5205         we're doing a signature-only comparision; fixes #74945.
5206
5207 2005-07-06  Martin Baulig  <martin@ximian.com>
5208
5209         * class-internals.h (MonoGenericClass): Moved some things out into
5210         a new `MonoInflatedGenericClass' type.  
5211         (MonoInflatedGenericClass): New type; the `klass' of a
5212         `MonoGenericClass' is now computed lazyly in
5213         mono_get_inflated_generic_class().      
5214
5215         * class.c (mono_get_inflated_generic_class): New public function.
5216         (mono_class_inflate_generic_method): Removed the unused
5217         `MonoClass *' argument.
5218         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5219         all the methods.
5220         (mono_class_create_generic): Make this static and merge it with
5221         mono_class_create_generic_2(); we're now called automatically from
5222         mono_get_inflated_generic_class().
5223
5224         * loader.c (mono_method_signature): Call
5225         mono_get_inflated_method() here.
5226
5227 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5228
5229         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5230         type of fields with RVA.
5231
5232         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5233         for this pseudo class.
5234         (my_mono_class_from_generic_parameter): Likewise.
5235         (mono_class_init): Allow interfaces to have cctors.
5236
5237 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5238
5239         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5240         lazily for AOT methods.
5241
5242 2005-07-05  Martin Baulig  <martin@ximian.com>
5243
5244         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5245         returns FALSE for a successful match, not TRUE.
5246
5247 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5248
5249         * loader.c (mono_method_get_index): Optimize this a bit.
5250
5251 2005-07-04  Martin Baulig  <martin@ximian.com>
5252
5253         * class.c
5254         (class_compute_field_layout): Move the check for generic type
5255         definitions into mono_class_layout_fields().  Fixes #74684.
5256         (mono_class_from_generic_parameter): Correctly compute
5257         `klass->parent'; fixes #75457.
5258
5259         * reflection.c (register_assembly, register_module): Make sure
5260         `domain->rejobject_hash' is already created.
5261
5262 2005-07-02  Martin Baulig  <martin@ximian.com>
5263
5264         * class-internals.h
5265         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5266         `MonoDynamicGenericClass'.      
5267
5268 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5269
5270         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5271         returned by a field getter is null, since null is a valid value.
5272
5273 2005-07-01  Martin Baulig  <martin@ximian.com>
5274
5275         * reflection.c (mono_reflection_generic_class_initialize): Update
5276         the `dgclass->fields [i].parent' to the correct class.
5277         (mono_image_get_fieldref_token): Use the declaring type, not the
5278         reflected type.
5279
5280 2005-07-01  Martin Baulig  <martin@ximian.com>
5281
5282         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5283
5284 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5285
5286         * threads.c (thread_cleanup): assert that thread != NULL
5287         (wait_for_tids_or_state_change): We were using the wrong variable
5288         when accessing wait->threads. `i' was always out of the bounds of
5289         the array.
5290
5291 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5292
5293         * loader.c: map user32 and kernel32 to libMonoSupportW
5294
5295 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5296
5297         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5298
5299 2005-06-28  Martin Baulig  <martin@ximian.com>
5300
5301         * loader.c (method_from_methodspec): Fix #75334.
5302
5303 2005-06-28  Martin Baulig  <martin@ximian.com>
5304
5305         Fix #74953 - Arrays now implement the generic IList<T> interface
5306         on the 2.0 platform.
5307
5308         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5309
5310         * reflection.c (mono_class_bind_generic_parameters): New public
5311         function; similar to mono_reflection_bind_generic_parameters(),
5312         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5313
5314         * domain.c (mono_init_internal): Try to initialize.
5315         `mono_defaults.generic_array_class' here; this'll only succeed if
5316         we're using the 2.0 corlib.
5317
5318         * icall.c
5319         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5320         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5321         (mono_lookup_internal_call): Added support for nested classes.
5322
5323         * loader.c
5324         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5325         we're an interncall and have generic arguments.
5326
5327         * class.c
5328         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5329         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5330         instance of System.Array.InternalArray<T> for arrays, so they
5331         implement the generic IList<T> interface.
5332
5333 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5334
5335         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5336         (chastamar@yahoo.com). Fixes #75374.    
5337
5338 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5339
5340         * culture-info-table.h: regenerated.
5341
5342 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5343
5344         * icall.c: handle spaces correctly for base64 strings.
5345
5346 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5347
5348         * *.c: Kill some warnings.
5349
5350 2005-06-23  Duncan Mak  <duncan@novell.com>
5351
5352         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5353         that this builds on Solaris 10 (x86).
5354
5355 2005-06-23  Martin Baulig  <martin@ximian.com>
5356
5357         * class.c
5358         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5359         generic type definitions.
5360
5361 2005-06-23  Martin Baulig  <martin@ximian.com>
5362
5363         Fix #75331.
5364
5365         * metadata.c (mono_class_get_overrides): Renamed to
5366         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5367         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5368         pass it to mono_get_method_full().
5369
5370 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5371
5372         * reflection.c (mono_reflection_create_runtime_class): take the
5373         mono_domain_lock in this method. Prevents deadlocks
5374
5375 2005-06-22  Martin Baulig  <martin@ximian.com>
5376
5377         * loader.c (method_from_methodspec): Fix #75330.
5378
5379 2005-06-22  Martin Baulig  <martin@ximian.com>
5380
5381         * reflection.c (type_get_qualified_name): Use
5382         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5383         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5384         argument; use it if we don't have an assembly name.
5385
5386 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5387
5388         * object.c: In mono_message_init, set "copy out" flag for in
5389         parameters with the [Out] flag.
5390
5391 2005-06-21  Martin Baulig  <martin@ximian.com>
5392
5393         * class.c
5394         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5395         and MONO_TYPE_PTR.
5396
5397 2005-06-21  Martin Baulig  <martin@ximian.com>
5398
5399         * class.c (mono_class_init): Don't initialize `class->fields' for
5400         generic instances since they're initialized again in
5401         compute_field_layout(). 
5402         (compute_field_layout): Set the field's `generic_info' here; fix
5403         #75320. 
5404
5405 2005-06-21  Martin Baulig  <martin@ximian.com>
5406
5407         * class-internals.h
5408         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5409
5410         * metadata.c (mono_metadata_generic_method_equal): Also
5411         distinguish the `generic_class'; fixes #75334.
5412
5413 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5414
5415         * domain.c:
5416         * appdomain.c:
5417         * domain-internals.h:
5418         * reflection.c: 'domain_assemblies' field is now protected by its own
5419         lock. Don't call into managed code to run the AssemblyLoad event if we
5420         now there are no registered delegates for it.
5421
5422 2005-06-20  Martin Baulig  <martin@ximian.com>
5423
5424         * class.c (mono_class_is_assignable_from): Use a custom version of
5425         mono_class_has_parent() to make things work for generic instances;
5426         fix #75300.
5427
5428 2005-06-20  Martin Baulig  <martin@ximian.com>
5429
5430         * loader.c (method_from_methodspec): Apply a patch from
5431         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5432
5433 2005-06-20  Martin Baulig  <martin@ximian.com>
5434
5435         * class.c (mono_class_init): Reverted Zoltan's last change; it
5436         breaks generics.
5437
5438 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5439
5440         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5441
5442 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5443
5444         * socket-io.c: fix the index in the socket array for writable/error
5445         sockets. Fixes bug #75306.
5446
5447 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5448
5449         * class.c (mono_class_init): Allow interfaces to have static ctors.
5450
5451 2005-06-17  Martin Baulig  <martin@ximian.com>
5452
5453         * loader.c (method_from_methodspec): Use `context->container' when
5454         parsing the `gmethod->inst'.
5455
5456 2005-06-17  Martin Baulig  <martin@ximian.com>
5457
5458         * class.c (mono_type_get_name_recurse): Don't add the assembly
5459         name for type arguments.
5460
5461 2005-06-15  Martin Baulig  <martin@ximian.com>
5462
5463         * reflection.c (mono_image_get_inflated_method_token): Encode
5464         correct klass; fixes #75260.
5465
5466 2005-06-13 Michal Moskal <malekith@nemerle.org>
5467
5468         * icall.c: Make GetCorrespondingMethod/Constructor take
5469         MonoReflectionMethod method not MonoMethod. Removed
5470         MonoType.GetCorrespondingField, and make
5471         MonoGenericType.GetCorrespondingField take name not
5472         MonoClassField.
5473
5474 2005-06-13  Michal Moskal <malekith@nemerle.org>
5475
5476         * reflection.c (field_encode_signature, encode_locals):
5477          Make sizes of buffers for types larger (for big generic types).
5478          (create_generic_typespec,
5479          mono_reflection_sighelper_get_signature_local,
5480          mono_reflection_sighelper_get_signature_field):
5481          Add asserts for too small buffers.
5482
5483 2005-06-15  Martin Baulig  <martin@ximian.com>
5484
5485         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5486         if our parent is not a dynamic type.
5487
5488 2005-06-15  Martin Baulig  <martin@ximian.com>
5489
5490         * class-internals.h (MonoTypeNameFormat): New enum.
5491
5492         * class.c
5493         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5494         (mono_type_get_full_name): Removed.
5495         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5496         argument instead of the boolean's.
5497
5498         * icall.c (ves_icall_System_MonoType_getFullName):
5499         Added `gboolean assembly_qualified'.    
5500
5501         * reflection.h
5502         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5503
5504         * reflection.c (mono_reflection_parse_type): Parse the new type
5505         name format.
5506
5507 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5508
5509         * icall.c: no need to convert from utf16 to utf8 and then back again
5510         after the call to GetLogicalDrives.
5511
5512 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5513
5514         * icall.c: frombase64. Fix problems exposed by new tests.
5515
5516 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5517
5518         * icall.c: added internal calls for converting char [] and strings in
5519         base64 into byte [].
5520
5521 2005-06-10  Martin Baulig  <martin@ximian.com>
5522
5523         * class.c (mono_class_create_generic_2): Read the nested classes
5524         from the metadata rather than from `gklass->nested_classes' since
5525         `gklass' might not be initialized yet.
5526
5527 2005-06-09  Duncan Mak  <duncan@novell.com>
5528
5529         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5530         all public headers. Fixes #74919.
5531
5532 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5533
5534         * domain.c: The key for proxy_vtable_hash is now a pointer
5535         array. Added new GHashFunc and GCompareFunc functions for this.
5536
5537         * class.h: The list of interfaces in MonoRemoteClass is known in
5538         advance and can't grow (we create a new MonoRemoteClass if needed),
5539         so now the interface array can be allocated together with
5540         MonoRemoteClass.
5541         
5542         * object.c: Added a new method create_remote_class_key.
5543         Fixed mono_remote_class so it does not depend on
5544         mono_upgrade_remote_class.
5545         Removed extend_interface_array.
5546         Added new method clone_remote_class(), which makes a copy of a remote
5547         class and adds a new interface or class to it.
5548         mono_upgrade_remote_class() now creates a new remote class (or gets
5549         it from the cache) if an vtable upgrade is needed. In this way
5550         we make sure that other objects sharing the same remote class
5551         don't get the new vtable with unwanted interfaces.
5552         
5553         * object-internals.h:
5554         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5555         
5556         * marshal.c: Track changes in mono_upgrade_remote_class().
5557
5558 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5559         * icall.c: Add runtime methods for obtaining members of inflated
5560         class, which were created from supplied non-inflated members. It
5561         is used in internal Get{Method,Constructor,Field} methods in
5562         System.Type
5563
5564 2005-06-09  Martin Baulig  <martin@ximian.com>
5565
5566         * reflection.c
5567         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5568
5569 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5570         * reflection.c (mono_image_basic_init): Define
5571         Version in MonoDynamicAssembly. 
5572         
5573 2005-06-08  Martin Baulig  <martin@ximian.com>
5574
5575         Fix #75136.
5576
5577         * loader.c
5578         (mono_method_signature_full): New public method; takes a
5579         `MonoGenericContext *'.
5580         (find_method): Use mono_method_signature_full() and pass the
5581         klass'es context to it.
5582
5583         * class.c (mono_class_is_inflated_method): Use
5584         mono_method_signature_full() and pass the context to it.
5585
5586 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5587
5588         * object.c: add proper locking in mono_remote_class_vtable(),
5589         fixes possible memory corruption.
5590
5591 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5592
5593         * marshal.c (mono_remoting_marshal_init): set
5594         initialized after initialization.
5595
5596 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5597
5598         * locales.c : hush.
5599
5600 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5601
5602         * object.c (extend_interface_array): fix really silly
5603         memory corrupting / comparison bug.
5604
5605 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5606
5607         * reflection.c: Functions added to support the creation
5608         of CustomAttributeData, which includes Attribute data
5609         used by ReflectionOnly methods.
5610
5611         * reflection.h:  mono_reflection_get_custom_attrs_data and
5612          mono_custom_attrs_data_construct added (functions exposed).
5613
5614          * icall.c: Added mono_reflection_get_custom_attrs_data
5615          as icall.
5616         
5617 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5618
5619         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5620         lupus's request.
5621
5622 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5623
5624         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5625
5626         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5627         dynamic DllImportAttribute.
5628
5629         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5630         dynamic DllImportAttribute.
5631
5632         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5633         Fixes #75162.
5634
5635 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5636
5637         * threads.c: avoid segfault when an unstarted thread is aborted.
5638
5639 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5640
5641         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5642         Returns the name and version of the runtime for reporting.
5643
5644 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5645
5646         * appdomain.c: bump corlib version.
5647         * object-internals.h: new field in MonoReflectionAssembly.
5648
5649 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5650
5651         * object-internals.h: Carlos forgot to add this field.
5652
5653 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5654
5655         * icall.c: Added create_version to create instances
5656         of Version of MonoReflectionAssemblyName. This change helps
5657         the AssemblyName tests to keep running fine.
5658         
5659 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5660   
5661         * object.c (mono_method_return_message_restore): A somehow less
5662         intrusive fix for #75138.
5663
5664 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5665
5666         * object.c (mono_method_return_message_restore): Fix computation
5667         of expected number of out args.
5668
5669 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5670
5671         * reflection.c (mono_image_get_method_info): Fix the case when the
5672         charset is empty.
5673
5674 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5675
5676         * object.c: Added missing null check in
5677           mono_method_return_message_restore.
5678
5679 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5680
5681         * reflection.c (mono_image_get_method_info): Handle the case when
5682         dllentry is empty.
5683
5684 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5685
5686         * object.c: When creating the vtable for a proxy, take into account
5687         all inherited interfaces, not only the ones registered in
5688         iclass->interfaces. This fixs bug #74996.
5689         Also, in mono_method_return_message_restore, verify that the array
5690         of out args has the expected lengh.
5691
5692 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5693
5694         * socket-io.c: update the timeout in Poll when the call is interrupte.
5695
5696 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5697
5698         * socket-io.c: support abort/suspend in Select_internal after last
5699         change.
5700
5701 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5702
5703         * threadpool.c: remove warning.
5704
5705 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5706
5707         * icall.c:
5708         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5709         removing the 1024 limit from select(). Runtime part of the fix for
5710         bug #71203.
5711
5712 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5713
5714         * socket-io.c: when resolving the addresses for the same
5715         host returned by gethostname(), get the local IPs from the interface
5716         list. Loopback addresses are discarded if the are interfaces up with
5717         non-loopback ones. Fixes bug #63265.
5718
5719 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5720
5721         * appdomain.c, verify.c, object-internals.h, reflection.c:
5722         bumped corlib number to 36, and added new extra_flags field
5723         to ReflectionMethodBuilder and friends.  Fixes #75060.
5724
5725 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5726
5727         * gc.c: register a new weak link only if the object is non-null
5728         (fixes bug#75047).
5729
5730 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5731
5732         * culture-info.h : short time pattern too.
5733
5734 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5735
5736         * culture-info.h : expand long time pattern string length.
5737
5738 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5739
5740         * culture-info-table.h : update (more French date format; #72788).
5741
5742 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5743
5744         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5745         the method is static. Fixes #75029.
5746
5747 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5748
5749         * reflection.c: Update the table_idx field of method builders after
5750         saving the module, since it can change. This is a workaround for
5751         bug #74914. 
5752
5753 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5754
5755         * culture-info-table.h : update (additional French date format).
5756
5757 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5758
5759         * icall.c (ves_icall_type_Equals): Revert last change.
5760         
5761         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5762
5763         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5764
5765 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5766
5767         * class-internals.h: Added executioncontext_class field to 
5768         MonoDefaults structure.
5769         * domain.c: Cache System.Threading.ExecutionContext class in 
5770         mono_defaults.
5771         * object.c: Capture the ExecutionContext for asynchroneous calls in
5772          mono_async_result_new.
5773         * object-internals.h: Added execution_context and original_context 
5774         fields to MonoAsyncResult. Added execution_context to MonoThread.
5775         * security-manager.c|.h: Added mono_get_context_capture_method to 
5776         return the capture method (if required by the security manager or by
5777         the framework version used).
5778         * threadpool.c: Apply capture (if present) ExecutionContext in 
5779         mono_async_invoke and revert to original context after it completes.
5780
5781 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5782
5783         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5784
5785 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5786
5787         * culture-info-table.h : zh-CHT related workaround.
5788
5789 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5790
5791         * marshal.c (emit_marshal_custom): Add some error checking and call the
5792         methods in the ICustomMarshaler interface. Fixes #74875.
5793         
5794         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5795         native->managed wrappers.
5796
5797 2005-05-12  Martin Baulig  <martin@ximian.com>
5798
5799         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5800         here and use the loader lock.
5801
5802         * mono-debug.c: Properly lock when the debugger is not attached.
5803         (mono_debug_init): Release the initial lock if we're not running
5804         in the debugger.
5805
5806 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5807
5808         * marshal.c (emit_marshal_custom): Pass through NULL values without
5809         calling the custom marshalling routines.
5810
5811         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5812         conversion in structures. Fixes #74882.
5813
5814 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5815
5816         * culture-info-table.h : zh-* cultures were missing.
5817
5818 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5819
5820         * threads.c: Added a new event background_change_event which is signaled
5821         when a thread changes its background mode.
5822         Moved here several checks previously done in managed code. The checks
5823         require the thread lock, and using the thread lock in managed code
5824         can result in deadlocks.
5825         Merged Start_internal and Thread_internal into a single method. Now 
5826         Thread_internal does all work of creating and starting a thread.
5827         Added icalls for setting and getting the state of the object. Moved from
5828         managed code to avoid locking there.
5829         Added wait_for_tids_or_state_change() which is called instad of
5830         wait_for_tids when waiting for non-backround threads to end. This method
5831         will return if one of the threads ends or the background_change_event
5832         is signaled.
5833         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
5834         the background mode. This method signals the background_change_event
5835         event.
5836         * icall.c:
5837         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
5838         removed Start_internal.
5839         
5840 2005-05-11  Martin Baulig  <martin@ximian.com>
5841
5842         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
5843         to order of some fields to get proper alignment on 64-bit machines.
5844
5845 2005-05-11  Martin Baulig  <martin@ximian.com>
5846
5847         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
5848         changes as they're broken and completely fuck up the debugger.
5849
5850         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
5851
5852 2005-05-10  Martin Baulig  <martin@ximian.com>
5853
5854         * reflection.c (mono_reflection_generic_class_initialize): Don't
5855         call mono_class_setup_parent() here.
5856
5857 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5858
5859         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
5860         send/receive timeout use an integer in milliseconds. We were using a
5861         struct timeval.
5862
5863 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5864
5865         * locales.c:
5866         (internal_get_cultures): reserve the first slot of the array for the
5867         InvariantCulture, which will be filled in managed code.
5868
5869 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
5870
5871         * reflection.c (mono_image_fill_module_table): Initialize the
5872         GENERATION field as well.
5873
5874 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5875
5876         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
5877         Monitor.Enter on the object.
5878
5879 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
5880
5881         * threads.c: Enable the wait for running threads when exiting.
5882         * icall.c: Suspend all threads before exiting.
5883
5884 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
5885
5886         * assembly.c (mono_assembly_load_reference): Fix warning.
5887
5888 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5889
5890         * threadpool.c: changed the default number of threads per cpu. From now
5891         on, the default will be 20 + (5 * number of cpus) instead of 50.
5892
5893 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
5894
5895         * loader.c (mono_method_get_signature_full): Add locking here.
5896
5897 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
5898
5899         * appdomain.c: Moved methods for parsing and freeing assembly
5900         names to assembly.c.
5901         * assembly.c, domain-internals.h: Created public methods for parsing
5902         assembly names. Fixed mono_assembly_load_with_partial_name:
5903         it now finds the best match, taking into account the version,
5904         token and culture specified in the partial name. Also return
5905         the latest version if no version information is specified.
5906
5907 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
5908
5909         * threadpool.c: replace check for SocketAsyncCall class.
5910
5911 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5912
5913         * threadpool-internals.h:
5914         * Makefile.am: added threadpool-internals.h
5915
5916         * threadpool.c: call mono_unhandled_exception on exceptions not handled
5917         that happen in threadpool threads (tested on MS).
5918         (mono_thread_pool_remove_socket): new function that dispatch any pending
5919         AIO call on a socket that is closing. By now only epoll really needs it,
5920         as select/poll wake up when the socket closes.
5921
5922
5923         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
5924
5925 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
5926
5927         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
5928
5929 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
5930
5931         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
5932
5933 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
5934
5935         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
5936         has an abort request, convert it into a suspend request.
5937
5938 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
5939
5940         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
5941         warning for the usage of `UnmanagedFunctionPointerAttribute' which
5942         is not supported yet.
5943
5944 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5945
5946         * image.c: register assemblies loaded from data (bundles) in the loaded
5947         assemblies hash. Fixes bug #74772.
5948
5949 2005-04-29  Martin Baulig  <martin@ximian.com>
5950
5951         * class.c (mono_type_get_name_recurse): Update to the new naming
5952         schema from the latest .NET 2.x beta2.
5953         (mono_class_setup_vtable_general): If we're a generic instance,
5954         copy the vtable from our generic type definition and inflate all
5955         the methods in it.
5956
5957         * loader.c (find_method): Update to the new naming schema from the
5958         latest .NET 2.x beta2.
5959
5960 2005-04-29  Raja R Harinath  <harinath@gmail.com>
5961
5962         * class.c (mono_class_init): Add a mono_loader_unlock to the
5963         #74734 fix.
5964
5965 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
5966
5967         * icall.c (ves_icall_System_Environment_Exit): Remove the 
5968         suspend_all_other_threads () call for the time being, since it can hang.
5969
5970         * threads.c (mono_thread_manage): Similarly, disable the waiting for
5971         the background threads to exit, since it can also hang.
5972
5973         * class.c (mono_class_init): Applied patch from Ankit Jain 
5974         (radical@gmail.com). Avoid pending init errors when a field refers
5975         to a nested class using a typeref. Fixes #74734.
5976
5977         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
5978         this for dynamic modules.
5979
5980 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5981
5982         * threads.c: don't wait for threads that are in the process of aborting
5983         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
5984         and waiting for background threads to finish. This makes xsp and
5985         mod-mono-server exit without random length delays and/or hangs.
5986
5987 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5988
5989         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
5990
5991 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
5992
5993         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
5994         dynamic types to prevent infinite loops. Fixes #74727.
5995
5996         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
5997         ..._is_assignable_to.
5998
5999 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
6000
6001         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6002
6003 2005-04-25  Martin Baulig  <martin@ximian.com>
6004
6005         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6006
6007         * domain.c
6008         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6009
6010         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6011
6012         * reflection.c (build_compressed_metadata): Set metadata header
6013         version to 2.0.
6014
6015 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
6016
6017         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6018         number into an integral and a decimal part. Fixes #70473.
6019
6020         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6021
6022 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
6023
6024         * culture-info-table.h : reflected the latest locale-builder output.
6025
6026 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6027
6028         * threadpool.c: check for SuspendRequested too when deciding if
6029         mono_thread_interruption_checkpoint should be called.
6030
6031 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6032
6033         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6034         * threads.c: remove interruption_mutex and use Interlocked instead. When
6035         suspending all the threads, wait for all the suspended events at once.
6036         If we're shutting down and get an APC that is going to be queued,
6037         call mono_thread_execute_interruption immediately, as the thread might
6038         be sleeping on a pthread condition or mutex.
6039
6040         * icall.c: call mono_runtime_set_shutting_down before suspending the
6041         threads.
6042
6043         Fixes bug #74693. And now xsp is happier when exiting.
6044
6045 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
6046
6047         * loader.c (mono_stack_walk): Fix #74690.
6048
6049 2005-04-22  Martin Baulig  <martin@ximian.com>
6050
6051         * mono-debug.h (MonoDebugMethodJitInfo): Added
6052         `MonoDebugMethodJitInfo *jit'.
6053
6054         * mono-debug.c (mono_debug_read_method): Cache the
6055         MonoDebugMethodJitInfo in `address->jit'.
6056         (mono_debug_free_method_jit_info): New public method.
6057
6058 2005-04-22  Martin Baulig  <martin@ximian.com>
6059
6060         * class.c (mono_class_is_assignable_from): Disallow
6061         type parameter -> interface.
6062
6063 2005-04-21  Dick Porter  <dick@ximian.com>
6064
6065         * threads.c (mono_thread_create): Turn an assertion into an error.
6066
6067 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
6068
6069         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6070         
6071         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
6072         Fix some gcc 4.0 warnings.
6073
6074 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6075
6076         * file-io.c: fix alt dir separator char on unix systems
6077         and cleanup (fixes bug #71214).
6078
6079 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6080
6081         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6082         a call to a remote domain, since the method may be an
6083         interface method in the client domain. This fixes bug #74192.
6084
6085 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6086
6087         * threadpool.c: recv/send are now performed before going back to managed
6088         code to save one transition.
6089
6090 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6091
6092         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6093
6094         * metadata/threadpool.c: removed hack to workaround the bug above.
6095
6096         Fixes bug #74618.
6097
6098 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6099
6100         * reflection.c reflection.h: Fix handling of parameter defaults in
6101         dynamic methods. Also fixes handling of parameter attributes.
6102         Fixes #74609.
6103
6104         * mono-debug.c (mono_debug_close_image): Fix warning.
6105
6106 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6107
6108         * socket-io.h: replaced old unused field with new 'blocking'.
6109         * threadpool.c: restore socket blocking state on windows(tm).
6110
6111 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6112
6113         * icall.c: don't return the codebase in the AssemblyName[] returned by
6114         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6115         * object-internals.h: Removed FIXME (fields were presents) and fixed
6116         versioncompat declaration.
6117
6118 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6119
6120         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6121         not closed, so don't cleanup when it happens.
6122
6123 2005-04-13  Chris Toshok  <toshok@ximian.com>
6124
6125         * mono-debug-debugger.h: change prototype for
6126         mono_debugger_lookup_type.
6127
6128         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6129         this function, although it should probably be named
6130         mono_debugger_init_type.
6131
6132 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6133
6134         * threadpool.c: fix non-AIO case.
6135
6136 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6137
6138         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6139         the built-in profiler to measure just JIT compilation times.
6140
6141 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6142
6143         * threadpool.c: the epollfd might be closed by another thread at
6144         any time, so ignore EBADF at treat it as a "we're closing" sign.
6145
6146 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6147
6148         * threadpool.c: release the semaphores with a count equals to the number
6149         of working threads in both IO and regular pools. Fixed typo that messed
6150         up the count of IO pool threads. Don't initialize the pipe handles if
6151         we're using epoll.
6152
6153 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6154
6155         * threadpool.c: some systems don't like a NULL when deleting the socket
6156         from epoll.
6157
6158 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6159
6160         * threadpool.c: fix semaphore allocation.
6161
6162 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6163
6164         * threadpool.c: added epoll() based implementation for asynchronous IO
6165         that is used instead of the default poll() when available.
6166         It can be disabled by setting MONO_DISABLE_AIO.
6167
6168 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6169
6170         * threadpool.c: windows needs 'closesocket' and instead of returning
6171         0 when the stream is closed while in select, it returns -1. Fixes bug
6172         #74573.
6173
6174 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6175
6176         * class.c (class_compute_field_layout): Fix the regression caused by
6177         the previous try.
6178
6179 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6180
6181         * threadpool.c: separate pool for socket async. IO.
6182         * threadpool.h: mono_max_worker_threads is not a global any more.
6183
6184 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6185
6186         * class.c (class_compute_field_layout): Fix #74549.
6187
6188 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6189
6190         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6191         use 2 connected sockets instead.
6192
6193 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6194
6195         * mono-config.c: Add new entry point for mkbundle
6196         mono_config_parse_memory. 
6197
6198 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6199
6200         * threadpool.c: removed another unused function.
6201
6202 2005-04-08  Ankit Jain  <radical@corewars.org>
6203
6204         * reflection.c (get_default_param_value_blobs): Add 'types'
6205         parameter to get the types encoded in the constant table.
6206         (mono_param_get_objects): Use the type from the constant table,
6207         not the type of the parameter, when creating default values.
6208         Handle null default values correctly.
6209
6210 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6211
6212         * file-io.c:
6213         * file-io.h:
6214         * threadpool.c:
6215         * threadpool.h:
6216         * icall.c:
6217         * socket-io.c: removed dead code for async IO.
6218
6219 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6220
6221         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6222
6223         * threadpool.c: intercept socket async. calls and pass them to a thread
6224         that is polling and dispatching the job items to the threadpool as
6225         socket become ready. Fixes bugs #71217, #71933.
6226
6227         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6228         between char and short/ushort arrays.
6229
6230         * socket-io.c: remove dead code.
6231
6232 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6233
6234         * locales.c,
6235           icall.c : removed InternalToUpper_Comp() and
6236           InternalToLower_Comp().
6237
6238 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6239
6240         * char-conversions.h : The tables were incorrectly generated. Should
6241           be generated against invariant culture.
6242
6243 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6244
6245         * object.c (mono_runtime_invoke_array): Fix return value when 
6246         passing pre-created valuetype objects to ctors.
6247
6248         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6249         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6250         Fixes #74338.
6251
6252 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6253
6254         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6255         only used with --security and hides the wrong corlib version error.
6256
6257 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6258
6259         * class.c: Changed mono_class_name_from_token so that types
6260         outside of a namespace don't have an initial period.  Improved
6261         the g_warning message used in _mono_class_get when loading
6262         fails.
6263         * assembly.c: In mono_assembly_load_reference, when an assembly
6264         can't be found, "No such file or directory" is misleading and
6265         unhelpful because a few paths were checked for the presence of
6266         the assembly.  When that happens (ENOENT), display a nicer
6267         message indicating the directories that were searched.  In all
6268         cases, the warning is made easier to read for non-hackers.
6269
6270 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6271
6272         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6273         project/solution.
6274         * appdomain.h|domain.c: Removed inline from functions.
6275         * appdomain.c: Reduced warnings when compiling on windows.
6276         * icall.c: Fixed output_debug declaration to gunichar2*.
6277         * mono-config.c: Reduced warnings when compiling on windows.
6278         * rand.c: Added missing "windows.h". Added missing return value.
6279         * rawbuffer.c: Added missing winsock2.h for windows.
6280         * sysmath.h: Added mono-compiler.h header to allow/ease 
6281         compilation with non-GCC compilers.
6282         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6283         Removed cast warnings.
6284
6285         Adapted from the work of J Lothian (for VC6).
6286
6287 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6288
6289         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6290         from default_path.
6291
6292 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6293
6294         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6295         the 2.0 profile.
6296
6297 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6298
6299         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6300         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6301         stuff, and it would probably use $(prefix)/share rather than
6302         $(prefix)/lib.
6303
6304 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6305
6306         * console-io.c: added 2 includes that might be missing.
6307
6308 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6309
6310         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6311         profile.
6312
6313         * reflection.c (create_custom_attr): Allocate the params array using
6314         alloca so it gets GC tracking.
6315
6316 2005-03-23  Chris Toshok  <toshok@ximian.com>
6317
6318         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6319         out some spew.
6320
6321 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6322
6323         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6324         changes to pick up any changes in prefix, etc.
6325
6326 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6327
6328         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6329         
6330         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6331         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6332
6333 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6334
6335         * class-internals.h object-internals.h class.c reflection.c: Extend the
6336         mono_lookup_dynamic_token () function to return the class of the
6337         token as well. 
6338
6339         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6340         well. Fixes #73848.
6341
6342 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6343
6344         * security-manager.c: Skip inheritance checks for intra-corlib
6345         class inheritance and method overrides. This skips a lot of checks
6346         and (anyway) permissions cannot work until corlib is loaded.
6347
6348 2005-03-23  Martin Baulig  <martin@ximian.com>
6349
6350         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6351         MONO_TYPE_GENERICINST.  
6352
6353 2005-03-23  Martin Baulig  <martin@ximian.com>
6354
6355         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6356
6357 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6358
6359         * class.c: added locking comments to some functions.
6360         Cache the interface offsets arrays (saves about 20 KB
6361         of runtime memory in a typical app).
6362         Reduce the time overhead in mono_class_setup_supertypes ().
6363
6364 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6365
6366         * icall.c: speedup and fix leaks in GetMethodsByName and
6367         GetPropertiesByName.
6368
6369 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6370
6371         * reflection.c: some locking fixes.
6372
6373 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6374
6375         * metadata.c: added missing break in case statement.
6376
6377 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6378
6379         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6380         typedbyref return values. Fixes #73941.
6381
6382 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6383
6384         * security-manager.c|h: Added demandunmanaged method and 
6385         suppressunmanagedcodesecurity class to MonoSecurityManager.
6386         Renamed aptc class to allowpartiallytrustedcallers.
6387
6388 2005-03-17  Martin Baulig  <martin@ximian.com>
6389
6390         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6391
6392 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6393
6394         * file-io.c: disabled file async. IO using aio_*. It uses the
6395         threadpool now. Workaround for bug #73718.
6396
6397 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6398
6399         * assembly.h, mono-config.c: added code to deal with bundled configs
6400         for bundled assemblies.
6401
6402 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6403
6404         * *.c, private.h: cleanup, removing old private.h header file.
6405
6406 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6407
6408         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6409         and throw_on_unmappable_char attributes.
6410
6411 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6412
6413         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6414         _ProcessName_internal.
6415
6416 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6417
6418         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6419         #73631.
6420
6421         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6422         are no longer used.
6423
6424 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6425
6426         * object.c (compute_class_bitmap): Add support for generics. Fixes
6427         #73527.
6428
6429 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6430
6431         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6432
6433 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6434
6435         * filewatcher.c: commented out the code for windows watcher, as we don't
6436         use it (we use the managed implementation instead).
6437
6438 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6439
6440         * object-internals.h (MonoThread): Remove 'unused1' field.
6441
6442         * appdomain.c: Bump corlib version.
6443
6444         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6445
6446         * reflection.c (mono_reflection_create_runtime_class): Remove the
6447         AssemblyBuilder.Save optimization since it causes too many problems.
6448
6449 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6450
6451         * exception.c|h: Added mono_get_exception_reflection_type_load to
6452         create a ReflectionTypeLoadException object.
6453         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6454         to return NULL is a InheritanceDemand fails during reflection. Updated
6455         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6456         ReflectionTypeLoadException if an InheritanceDemand fails during 
6457         reflection. Added icall mapping for GetLinkDemandSecurity.
6458         * security-manager.c|h: Added ves_icall_System_Security_
6459         SecurityManager_GetLinkDemandSecurity internal call to return the
6460         class and methods permissions set for a LinkDemand. Removed unused
6461         fields in MonoSecurityManager.
6462
6463 2005-03-10  Martin Baulig  <martin@ximian.com>
6464
6465         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6466         it's a generic instance.
6467
6468 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6469
6470         * reflection.c (mono_get_object_from_blob): Applied patch from
6471         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6472
6473         * class.c (mono_class_is_assignable_from): Another try at fixing 
6474         #73469 without breaking anything.
6475
6476 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6477
6478         * class.c: (mono_class_is_assignable_from): Revert the last changes
6479         since they don't work with generics.
6480         
6481         * class.c (mono_class_is_assignable_from): Fix build bustage.
6482
6483         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6484         the managed IsAssignableFrom method. Fixes #73469.
6485
6486         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6487         function.
6488
6489 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6490
6491         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6492         memory when the remoting callback does not sets the out arguments.
6493         Fixes #73007.
6494
6495         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6496         by mistake.
6497
6498         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6499
6500         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6501
6502         * appdomain.c: Bump corlib version.
6503
6504 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6505
6506         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6507         function.
6508
6509         * threads.c (mono_thread_attach): Detect threads which are not started
6510         by the GC pthread wrappers.
6511
6512 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6513
6514         * icall.c: Added new icall for RNG.
6515         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6516         single handle on Linux to access /dev/urandom and fix #73183.
6517
6518 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6519
6520         * object.c: setting the new vtable in a transparent proxy object must
6521         not change the GC descriptor.
6522
6523 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6524
6525         * object.c: fixed compilation without GCJ support.
6526         * reflection.c: for runtime-created types ensure klass->has_references
6527         is correct (bug #73215).
6528
6529 2005-03-02  Martin Baulig  <martin@ximian.com>
6530
6531         * class.c (mono_class_is_assignable_from): Make this work if
6532         `oklass' is a generic instance; fixes #72831.
6533
6534 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6535
6536         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6537         with hasthis set.
6538         
6539         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6540
6541         * marshal.c: Reorganize native->managed marshalling code to also use
6542         the emit_marshal_... functions.
6543
6544 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6545
6546         * object.c: typed allocs have issues with bitmap sizes > 30,
6547         so check for max_set >= 30.
6548
6549 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6550
6551         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6552         managed code. Fixes #73012.
6553
6554         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6555
6556         * metadata.c reflection.c: Load/Emit elem_mult as well.
6557         
6558         * metadata.h (MonoMarshalSpec): Add comment.
6559
6560         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6561
6562         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6563         num_elem to -1 if not given.
6564
6565         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6566
6567         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6568         given values.
6569
6570 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6571
6572         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6573
6574 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6575
6576         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6577
6578         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6579
6580 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6581
6582         * object.c: generalized the reference bitmap creation
6583         and added hooks for the new GC.
6584         * class-internals.c: removed the gc_bitmap field from MonoClass.
6585
6586 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6587
6588         * domain.c: help the compiler to produce better code
6589         in mono_jit_info_table_find ().
6590
6591 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6592
6593         * object.c: make all allocations look typed.
6594
6595 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6596
6597         * socket-io.c: load Mono.Posix if it's not loaded already
6598         (fixes bug#73033).
6599
6600 2005-02-24  Martin Baulig  <martin@ximian.com>
6601
6602         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6603         * reflection.c (dup_type): Likewise.
6604
6605 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6606
6607         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6608         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6609
6610 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6611
6612         * domain.c, threads.c, object-internals.h: make the critical thread
6613         local vars use the fast access mode (even when we're compiled in
6614         a lib). Provide accessors to be used by the jit during codegen.
6615
6616 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6617
6618         * appdomain.c: Changed hook functios behavior to include
6619         support for the reflection only assemblies. Some icalls were changed
6620         to support the mentioned assemblies too. Signatures of static methods
6621         try_assembly_resolve and real_load now have an additional parameter:
6622         refonly.
6623
6624         * assembly.c: General changes to mono_assembly_ methods to support
6625         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6626         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6627         suffix, to support an additional gbool parameter to specify whether
6628         the assembli is reflection only or not. Created some new hook functions 
6629         to add support for reflection only assemblies. Signatures of static 
6630         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6631         have now an additional parameter: refonly.
6632
6633         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6634         indicating whether the assembly is reflection only or not.
6635
6636         * exception.c: Add mono_get_exception_invalid_operation.
6637
6638         * icall.c: Throw an InvalidOperationException when trying to invoke
6639         a property/method/event, or trying to set/get the value of a field.
6640         Also add an icall to retrieve the ref_only flag to the
6641         MonoReflectionAssembly.
6642
6643 2005-02-23  Chris Toshok  <toshok@ximian.com>
6644
6645         Part of fix for #72827.
6646         * mono-debug.c (mono_debug_add_method): add lexical block data to
6647         the info we write.  Kind of a hack at the moment - we copy the
6648         lexical block info from the MonoDebugMethodInfo to the
6649         MonoDebugMethodJitInfo here, before writing it.
6650         (mono_debug_read_method): read the lexical block info.
6651
6652         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6653
6654         * debug-mono-symfile.h: add lexical block support.
6655
6656         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6657         support.
6658
6659 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6660
6661         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6662
6663         * object.c (mono_runtime_free_method): Call mono_free_method () and
6664         put the TODOs there.
6665
6666         * loader.c (mono_free_method): Free up most memory allocated for 
6667         dynamic methods.
6668
6669 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6670
6671         * reflection.c: properly flag a Type argument to a
6672         named custom attr value (bug #72248).
6673
6674 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6675
6676         * reflection.c: reduce code duplication in named custom
6677         attribute encoding.
6678
6679 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6680
6681         * reflection.c: properly encode custom attrs of type object
6682         (bug #72649).
6683
6684 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6685
6686         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6687
6688 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6689
6690         * socket-io.c: load System.dll if it's not loaded already
6691         (bug #72850 and #70477).
6692
6693 2005-02-21  Martin Baulig  <martin@ximian.com>
6694
6695         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6696         generic instances.
6697
6698 2005-02-21  Martin Baulig  <martin@ximian.com>
6699
6700         * reflection.c (mono_image_build_metadata): We also need to
6701         "fixup" the MethodImpl table after we computed the final method
6702         indices.  Call fixup_methodimpl() to do that.
6703         (fixup_methodimpl): New private method.
6704
6705 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6706
6707         * assembly.c: special case mscorlib.dll (bug#72536),
6708         patch from Carlos Alberto Cortez.
6709
6710 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6711
6712         * threads-types.h threads.c: Fix build bustage.
6713
6714         * threads.c: Use a union for long<->double conversions.
6715
6716         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6717         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6718
6719         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6720         containing the checkpoint call with NOT_TAKEN.
6721         
6722         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6723         checkpoint before pushing the arguments, so they won't have to be
6724         spilled to stack.
6725
6726 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6727
6728         * domain.c, assembly.c, domain-internals.h: make some data
6729         const and relocation-free.
6730
6731 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6732
6733         * object.c, appdomain.c, class-internals.h: introduce the
6734         MonoClassRuntimeInfo structure to hold the info needed to
6735         use a class at runtime. Made mono_class_vtable() lock-free
6736         for all the appdomains.
6737
6738 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6739
6740         * metadata-internals.h, image.c: introduce a per-image mempool to
6741         be used for memory that has the same lifetime as the image.
6742
6743 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6744
6745         * domain.c: In mono_init_internal(), instead of selecting the first
6746         runtime version supported by an executable, get a list of all
6747         supported versions and select the one for which an mscorlib exists
6748         (since even if the runtime supports a given version, it doesn't mean
6749         that the framework for that version is installed).
6750         Modified get_runtimes_from_exe to support this behavior.
6751         In supported_runtimes, added information about additional system
6752         assembly versions.
6753         
6754         * assembly.c: Added support for more than one system assembly version
6755         per runtime version. Updated the assembly list.
6756         In mono_assembly_remap_version, removed the initial version check,
6757         since we don't know to which version we need to compare until we
6758         get the version set on which the assembly is based.
6759         Moved the code for loading corlib into the new method
6760         mono_assembly_load_corlib(), so it can be used by the initialization
6761         code.
6762         
6763         * domain-internals.h: Updated data structures and added declaration
6764         for mono_assembly_load_corlib.
6765
6766 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6767
6768         * reflection.c (resolve_object): Fix the creation of the signature in 
6769         the SignatureHelper case.
6770
6771         * assembly.c (mono_assembly_remap_version): Fix binary search.
6772         
6773 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6774  
6775         * class.c: Added inheritance check when a method is overloaded (from a
6776         virtual method or when implementing an interface) and when a class is
6777         inherited. Added functions to set a failure for a class and to 
6778         retreive the exception from a failure.
6779         * class-internals.h: Added fields to MonoClass to keep the exception
6780         information status for inheritance (or other exceptions) to be thrown
6781         later (i.e. not at load time).
6782         * object.c: Throw the inheritance SecurityException when a type is to 
6783         be created with either class or method inheritance violations.
6784         * reflection.c|h: Fix when getting declsec from a class. Removed 
6785         unrequired code for class. Improved sanity in parameter naming.
6786         * security-manager.c|h: Added functions to check for class and method
6787         inheritance.
6788
6789 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6790
6791         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6792         and has_finalize in dynamic types as well.
6793
6794 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6795
6796         * culture-info-table.h : fixed currency format for en-GB (and so on).
6797
6798 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6799
6800         * gc.c: ensure the GC handles never have 0 as a value.
6801
6802 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6803
6804         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6805         a pointer to a struct to unmanaged code. Fixes #72625.
6806
6807 2005-02-16  Martin Baulig  <martin@ximian.com>
6808
6809         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6810
6811 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6812
6813         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6814
6815 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6816
6817         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6818
6819         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6820         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6821         etc. Fixes #71471.
6822
6823         * reflection.c (mono_custom_attrs_get_attr): New helper function.
6824
6825         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
6826
6827 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
6828
6829         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
6830         changes to make the current context a field in MonoThread.
6831
6832 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6833
6834         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
6835         the last change.
6836         
6837         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
6838         extracted from mono_marshal_get_native_wrapper.
6839
6840         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
6841         to create wrappers around native functions.
6842
6843         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
6844         delegates for arbitrary function pointers. Fixes #71472.
6845
6846 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6847
6848         * threads.c: cleaned up the code a little.
6849
6850 2005-02-15  Martin Baulig  <martin@ximian.com>
6851
6852         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
6853         the data table.
6854
6855         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
6856         allocate larger chunks if needed.
6857
6858 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6859
6860         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
6861         in by mistake.
6862
6863 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
6864
6865         * domain.c: keep the domains in an array and ensure the domain ids
6866         are kept small, so they can be used as indexes to domain-specific data
6867         with a small memory overhead.
6868
6869 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
6870
6871         * icall.c: Handle byref types in Type icalls. Fixes #72544.
6872
6873 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
6874
6875         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
6876
6877 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
6878
6879         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
6880
6881         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
6882         values.
6883
6884         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
6885         
6886 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
6887
6888         * domain-internals.h: add the hashtable here.
6889
6890         * class-internals.h: Remove `info' from MonoMethod
6891
6892         * domain.c: Add a new hashtable, jit_trampoline_hash
6893
6894 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6895
6896         * object.c: don't set the value of static fields
6897         (fixes bug#72494).
6898
6899 2005-02-11  Martin Baulig  <martin@ximian.com>
6900
6901         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
6902         (mono_debug_add_method): Silently ignore the method if it's too big.
6903         (mono_debug_add_type): Likewise.
6904
6905 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
6906
6907         * threads.c, appdomain.c: remove #ifdefs from the code.
6908
6909 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
6910
6911         * metadata-internals.h: Added flags to MonoAssembly to cache the most
6912         common security informations. This allows us to stay in unmanaged code
6913         when doing LinkDemand and it's special cases (except for the first 
6914         time for initialization). The flags a very much used with --security.
6915         * reflection.c|h: Added code to get declarative security attributes 
6916         for LinkDemand and InheritanceDemand. This required to refactor the
6917         existing code for Demand.
6918         * security-manager.c|h: Added new method fields for the special cases
6919         of LinkDemand.
6920
6921 2005-02-10  Martin Baulig  <martin@ximian.com>
6922
6923         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
6924         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
6925
6926 2005-02-10  Martin Baulig  <martin@ximian.com>
6927
6928         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
6929         debugging code; this is almost a complete rewrite.
6930
6931         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
6932
6933 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6934
6935         * domain.c, object.h: expose mono_string_equal () and 
6936         mono_string_hash ().
6937         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
6938         it's implemented in managed code.
6939
6940 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6941
6942         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
6943         lo leak objects between appdomains.
6944
6945 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6946
6947         * assembly.c: old compilers compilation fix from 
6948         robertj@gmx.net (Robert Jordan).
6949
6950 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
6951
6952         * class-internals.h: Little reminder for the future.
6953
6954         * debug-helpers.c: Fix up wrapper_type_names
6955
6956 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6957
6958         * image.c, metadata-internals.h: when loading an image from a file,
6959         mmap all of it and use the same codepaths as when using a
6960         in-memory image: the code is simpler and we use less memory
6961         (both writable and readonly).
6962
6963 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6964
6965         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
6966         API to alloc runtime data structures that need to be tracked by the
6967         GC and contain pointers.
6968         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
6969         make the code more readable and eventually use a different GC.
6970
6971 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
6972
6973         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
6974         for out arguments.
6975         
6976 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
6977
6978         * object.c: In release_type_locks(), don't release the cctor lock
6979         if it has already been released. This fixes a crash in the
6980         thread5 test.
6981
6982 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6983
6984         * gc.c, marshal.c, icall.c: register a delegate for finalization
6985         only when the native function pointer has been allocated for it.
6986
6987 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6988
6989         * object.c: cleaned up some code, allocate objects that are
6990         pointer free with the atomic malloc variant. Allocate memory
6991         for static data from the mempool if it's pointer-free.
6992         Allocate the bounds array at the end of the array data, when needed.
6993         * object-internals.h, object.h: move a private function in a private
6994         header.
6995         * class.c: handle missing case in tracking references in fields.
6996
6997 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
6998
6999         * class.c, class-internals.h: keep track if a type has
7000         reference fields in either the instance or static fields.
7001
7002 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
7003
7004         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7005         and renamed to MonoRuntimeInfo. Added fields to store the expected
7006         framework assembly version. Changed mono_get_framework_version and
7007         mono_get_runtime_version for a single mono_get_runtime_info method.
7008         
7009         * assembly.c: Added method to remap system assembly versions to the
7010         current executing runtime version. Removed old mapping code.
7011         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7012         
7013         * icall.c, reflection.c: Track api changes.
7014
7015 2005-02-06  Miguel de Icaza  <miguel@novell.com>
7016
7017         * loader.c (method_from_memberref): Improve error reporting,
7018         produce the class name instead of the typeref/typedef index. 
7019
7020 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
7021
7022         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7023
7024 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7025
7026         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7027         stdcall and charset name mangling.  Reorganize the code and add
7028         some tracing stuff.
7029
7030 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7031
7032         * monodiet.c: More iters!
7033
7034         * marshal.c: Iter usage.
7035
7036         * icall.c: Iter usage.
7037
7038         * object.c: Use iters.
7039
7040         * debug-helpers.c: More iters
7041
7042 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7043
7044         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7045         under win32.
7046
7047 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7048
7049         * mono-debug-debugger.c: use iters
7050
7051         * class.c, class-internals.h: mono_class_setup_events is static
7052         now
7053
7054         * All callers: use iters
7055
7056 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7057
7058         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7059         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7060
7061 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7062
7063         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7064
7065         * marshal.h: Add prototypes for ldfld/stfld_remote.
7066
7067         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7068         this is called during startup.
7069         
7070 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7071
7072         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7073         MonoThreadsSync struct private in monitor.c. Changed the way
7074         MonoThreadsSync is allocated so it's faster and there is no
7075         need to keep track of it with a finalizer and it uses less memory.
7076         This also finally allows us to allocate mono objects as ptrfree when
7077         there are no reference fields.
7078
7079 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7080
7081         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7082         disappearing link to the GC interface and use them to simplify
7083         the gchandles code.
7084
7085 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7086
7087         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7088         stfld_remote which call mono_load/store_field_new. This allows methods
7089         calling ldfld/stfld wrappers to be AOTed.
7090
7091         * console-io.c: Include sys/filio.h under solaris.
7092         
7093         * console-io.c: Include curses.h if needed correctly.
7094
7095 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7096         
7097         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7098         method->klass as well.
7099
7100         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7101
7102         * class.c (mono_class_init): Switch on lazy initialization of 
7103         methods.
7104
7105         * class.c (mono_class_get_finalizer): Handle the case when the 
7106         finalizer is inherited.
7107
7108 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7109
7110         * console-io.c: <curses.h> is needed by term.h on solaris.
7111
7112 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7113
7114         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7115         mono_class_setup_properties where possible. Remove this ftn from
7116         the header file, and make it static.
7117
7118 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7119
7120         * loader.c: Add missing setup_... call.
7121
7122         * class.c: Add missing setup_... calls.
7123
7124         * class.c (mono_class_init): Switch on lazy initialization of 
7125         the generic vtable.
7126         
7127         * class.c (mono_class_init): Fix generics broken by the recent changes.
7128
7129         * monodiet.c (handle_type): Add missing setup_... calls.
7130
7131         * class.c: Back out garbage in previous patch.
7132         
7133         * class.c: Add missing setup_... calls.
7134
7135         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7136         mono_class_setup_methods () if possible.
7137
7138         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7139
7140         * class-internals.h (MonoCachedClassInfo): New structure.
7141
7142         * class.c: Initialize properties and events fields of MonoClass lazily.
7143
7144         * class.c: Add infrastructure for lazily initializing the methods and
7145         vtable fields of MonoClass. Not yet used.
7146
7147         * class.c (mono_class_get_finalizer): New helper function.
7148
7149         * class.c: Add infrastructure for loading some class related data from
7150         an AOT file.
7151
7152         * object.c: Add infrastructure for initializing the vtable from data
7153         in the AOT file.
7154
7155         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7156
7157         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7158         appropriate initialization function before accessing parts of the
7159         MonoClass structure.
7160
7161         * marshal.c: Fix warnings.
7162         
7163         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7164
7165         * mono-debug-debugger.c (get_exception_message): Use 
7166         mono_class_get_method_from_name_flags ().
7167
7168 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7169
7170         * reflection.c, appdomain.c: Replace a few manual searches that
7171         Zoltan missed. (Paolo approved this part of my initial patch).
7172
7173 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7174
7175         * profiler.c: disable recording statistical events at report time.
7176
7177 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7178
7179         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7180         to byteswap arrays of enum values, too (bug #72080).
7181
7182 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7183
7184         * appdomain.c (set_domain_search_path): Allow this to be called if
7185         domain->setup is not yet set.
7186
7187         * loader.c (mono_method_get_index): New helper function.
7188
7189         * loader.c reflection.c: Use mono_method_get_index ().
7190
7191         * class.c (mono_class_get_method_from_name_flags): New helper method.
7192
7193         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7194         this.
7195
7196         * class.c (mono_class_get_cctor): New helper method.
7197
7198         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7199         mono_class_get_method () to look up methods.
7200
7201 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7202
7203         * console-io.c: Fix the build, this should work on Windows.
7204
7205 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7206
7207         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7208         be set to null to keep things valid
7209
7210 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7211
7212         * icall.c: added Console 2.0 icalls.
7213         * Makefile.am: added console-io.[ch]
7214         * console-io.[ch]: internal calls for Console 2.0 API.
7215
7216 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7217
7218         * class.c: make sure we consider all the interfaces
7219         when calculating max_interface_id (bug found by
7220         Jeroen Frijters running ikvm).
7221
7222 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7223
7224         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7225         valuetype fields to null.
7226
7227         * object.c (set_value): Ditto. Fixes #71669.    
7228
7229 2005-01-31  Martin Baulig  <martin@ximian.com>
7230
7231         * metadata.c (mono_metadata_has_generic_params): New public
7232         function; checks whether something is a generic method.
7233
7234 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7235
7236         * appdomain.c: fix infinite recursion when adding assemblies.
7237
7238 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7239
7240         * object.c: Fix small typo to return all items for Environment.
7241         GetCommandLineArgs.
7242
7243 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7244
7245         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7246         reflection.c: more domain and assembly-unload related fixes
7247         and memory leaks plugs.
7248
7249 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7250
7251         * 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.
7252
7253 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7254
7255         * loader.c (mono_method_signature): Make this method lazy
7256         (mono_get_method_from_token): Don't computate the signature here.
7257
7258         Doing this saves quite a bit of memory. I got 90 kb on starting up
7259         monodoc. It should also save some disk reads on startup.
7260
7261         * *: MonoMethod->signature might be NULL now. You *MUST* use
7262         mono_method_signature.
7263
7264 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7265
7266         * object.c (mono_runtime_get_main_args): Return an array from the
7267         current domain here. Fixes #71938.
7268
7269 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7270
7271         * monitor.c: formatting changes to comply with the
7272         mono coding style and remove #ifdefs from the code.
7273
7274 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7275
7276         * metadata.c, private.h: remove some unneeded data
7277         and use a more compact representation for table schemas.
7278
7279 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7280
7281         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7282         to get a better distribution in hash tables.
7283         * *.c: use mono_aligned_addr_hash() where appropriate.
7284         * assembly.c: make var static.
7285
7286 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7287
7288         * domain-internals.h: Put MonoJitInfo on a diet.
7289
7290         * domain.c: Fix a warning.
7291
7292 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7293
7294         * gc.c: rework the gc handles code to reuse handles
7295         when freed.
7296
7297 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7298
7299         * domain.c: fixed long standing bug in mono_string_equal() which
7300         was brought to light with the ldstr changes.
7301
7302 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7303
7304         * reflection.c: Remove warning by adding missing include for marshal.h
7305
7306 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7307
7308         * domain.c, object.c: change the ldstr_table to hold
7309         MonoString* as keys: makes the runtime isinterned lookup
7310         faster and simplifies memory management.
7311
7312 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7313  
7314         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7315         possible to add imperative security checks before calling the icall.
7316         * reflection.c: Return security attributes on the original MonoMethod
7317         (and not the wrapped one). This fix permissions on icalls.
7318
7319 2005-01-25  Dick Porter  <dick@ximian.com>
7320
7321         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7322         the check for mktime() support actually test the mktime() return
7323         value.  "Fixes" bug 71682, though the output is still different to
7324         MS.
7325
7326 2005-01-25  Martin Baulig  <martin@ximian.com>
7327
7328         * class.c (mono_class_is_assignable_from): Make this work for
7329         generic instances.
7330
7331 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7332
7333         * marshal.c (mono_string_utf8_to_builder)
7334         (mono_string_builder_to_utf16): We might not have ownership of the
7335         string. In thise case, we need to create a new buffer.
7336
7337         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7338         be null, in which case, use the default capacity.
7339
7340 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7341
7342         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7343         GC events to the profiler.
7344
7345 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7346
7347         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7348         if you don't want the GC to run.
7349
7350 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7351
7352         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7353         start providing a GC API and keeping different implementations in
7354         their own file.
7355         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7356
7357 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7358
7359         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7360         mmap rather than allocating a huge buffer.
7361         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7362         above.
7363
7364 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7365
7366         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7367         and CheckExecutionRights.
7368         * reflection.c|h: Keep the index of the declarative security to be 
7369         used, instead of the pointer, when AOT compiler is used. Also add 
7370         class initialization when requesting demands.
7371         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7372         CheckExecutionRights. Both properties are now FALSE by default, and
7373         unmodifiable, unless the --security option is used.
7374
7375 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7376
7377         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7378         reflection.c: properly refcount images and assemblies, many leaks fixed.
7379
7380 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7381
7382         * threadpool.c: increase the timeout for threads in the thread pool to
7383         10s.  Fixes bug #67159.
7384
7385 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7386
7387         * class-internals.h: Sun's compiler insists on explicit
7388         signed on bit fields to handle then correctly.
7389
7390 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7391
7392         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7393         Make the size of the array fit only the number of invalid path
7394         chars that we have.
7395
7396         * class.c (_mono_class_get): Improve the error reporting when a
7397         class referenced is not found, to assist debugging. 
7398
7399 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7400
7401         * threads.c: fix off-by-one error.
7402         * domain.c: free data allocated in the domain.
7403
7404 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7405
7406         * reflection.c (mono_method_body_get_object): Fill out exception info
7407         as well.
7408
7409         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7410         structure.
7411         
7412 2005-01-19  Martin Baulig  <martin@ximian.com>
7413
7414         * loader.c (mono_get_method_constrained): Make this work again.
7415
7416 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7417
7418         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7419         guint16 to match the managed side.
7420
7421         * reflection.c (mono_reflection_body_get_object): Fill out local
7422         variables array.
7423
7424         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7425         as well.
7426
7427         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7428         'local_var_sig_token'.
7429
7430 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7431
7432         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7433         System.Drawing.
7434
7435         * reflection.c (mono_method_body_get_object): Handle abstract and
7436         runtime methods.
7437
7438 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7439
7440         * marshal.c, loader.c, class-internals.h, reflection.c:
7441         store the emthod data for a wrapper in an array instead of a list.
7442
7443 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7444
7445         * marshal.c: change the code to allocate memory more
7446         conservatively for method wrappers.
7447
7448 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7449
7450         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7451         fields from MonoClass to the marshal info structure where they belong.
7452
7453 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7454
7455         * class.c, object.c, class-internals.h, marshal.c: rearrange
7456         some fields and tweak some types to lower memory usage.
7457
7458 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7459
7460         * threads.c (signal_thread_state_change): Handle the case when the
7461         target thread is the current thread.
7462
7463         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7464
7465         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7466         emit_ptr_to_object_conv. 
7467
7468         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7469         marshalling. Fixes #71352.
7470
7471 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7472
7473         * metadata.h, blob.h: move table enum to blob.h so it can be included
7474         in any header.
7475         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7476         cut the size of MonoImage/MonoDynamicImage.
7477
7478 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7479
7480         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7481
7482 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7483
7484         * reflection.c, reflection.h, icall.c: add a function to check
7485         if an attribute type is defined for a metadata object.
7486
7487 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7488
7489         * object-internals.h: Added some needed fields from StringBuilder class.
7490         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7491
7492 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7493
7494         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7495         threads before shutting down the runtime.
7496
7497         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7498
7499 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7500
7501         * object-internal.h, threads.c: implement stacksize and 
7502         parameterized thread start functionality (requires
7503         matching corlib). Marked broken code for later removal.
7504
7505 2005-01-12  Martin Baulig  <martin@ximian.com>
7506
7507         * class-internals.h (MonoGenericClass): Moved the `initialized'
7508         flag to MonoDynamicGenericClass, removed `init_pending'.
7509         (MonoGenericInst): Added `is_reference' flag.
7510
7511 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7512
7513         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7514         inside the MSDOS header. Fixes #71201.
7515
7516         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7517         gc thread.
7518         (mono_domain_finalize): Ditto.
7519
7520 2005-01-12  Martin Baulig  <martin@ximian.com>
7521
7522         * class.c (mono_get_shared_generic_class): Use the cache for
7523         non-dynamic generic classes.
7524
7525         * class-internals.h (mono_class_create_generic_2): Removed
7526         function prototype, this function is now static inside class.c.
7527
7528         * class.c (mono_class_create_generic_2): Made this static, only
7529         call it from mono_class_init() and mono_class_setup_parent().
7530         (collect_implemented_interfaces_aux): Call mono_class_init() on
7531         the interfaces we collect.
7532         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7533
7534 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7535
7536         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7537         it a real thread handle.
7538
7539         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7540         MonoJitExceptionInfo, since each catch clause needs its own variable.
7541         
7542 2005-01-11  Dick Porter  <dick@ximian.com>
7543
7544         * image.c (mono_pe_file_open): New variant on mono_image_open()
7545         that does not set up the CLI metadata; used for FileVersionInfo so
7546         it can get the data for windows binaries too.
7547         
7548         * process.c (process_read_string_block): Don't read off the end of
7549         the StringTable block.
7550
7551         These both fix bug 70766.
7552
7553 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7554
7555         * gc.c: set some fields to NULL at GC cleanup time.
7556         * threads.c: if we quit the main thread, call exit ().
7557
7558 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7559
7560         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7561
7562 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7563
7564         * threads.h, threads.c, object.c: added accessor and settor for
7565         main_thread. Handle it specially when exiting from it: wait
7566         for other foreground threads to exit.
7567
7568 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7569
7570         * process.c, verify.c: remove some bloat.
7571
7572 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7573
7574         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7575         the calling convention to cdecl under win32.
7576
7577 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7578
7579         * object.c (mono_object_get_size): New function to get the size of
7580         an object instance.
7581
7582         * profiler.c (simple_allocation): Use above.
7583
7584 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7585
7586         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7587         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7588         get an appdomain by it's id and we can't assume the root's id is 0).
7589         * domain-internals.h: Change the function prototype to match.
7590         * icall.c: Change the icall table for AppDomain.
7591
7592 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7593
7594         * locales.c (string_invariant_compare_char): Only compute
7595         GUnicodeTypes in the case where we need them.  Test for ordinality
7596         first and return if so.
7597
7598         From the commit:
7599
7600                 /*
7601                  * FIXME: here we must use the information from c1type and c2type
7602                  * to find out the proper collation, even on the InvariantCulture, the
7603                  * sorting is not done by computing the unicode values, but their
7604                  * actual sort order.
7605                  */
7606
7607 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7608
7609         * loader.c: for P/Invoke methods, allow the "Internal" shared
7610         library name to refer to the calling process symbol namespace.
7611
7612 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7613
7614         * Makefile.am: Add the security manager to the build.
7615         * security-manager.c|h: New. Initialization of the security manager.
7616
7617 2005-01-07  Dick Porter  <dick@ximian.com>
7618
7619         * threads.c: 
7620         * monitor.c: Update thread state during Monitor and WaitHandle
7621         waits.  Fixes bug 71031.
7622
7623 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7624
7625         * reflection.c (property_encode_signature): Correctly handle when the
7626         property has no methods.
7627
7628 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7629
7630         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7631         
7632         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7633         fields from mb, not rmb. Fixes #71017.
7634
7635         * marshal.c (emit_ptr_to_str_conv): Add support for 
7636         ByValTStr -> string conversion. Fixes #71015.
7637
7638         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7639
7640         * mempool.c (mono_mempool_contains_addr): New helper function.
7641
7642 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7643
7644         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7645         HasSematics encoded fields.
7646         
7647         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7648         invalid string marshalling.
7649
7650         * metadata.c: Fix warnings.
7651         
7652 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7653
7654         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7655         profiler support.
7656
7657 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7658
7659         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7660         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7661         tests.
7662
7663 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7664
7665         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7666         so methods containing these can be AOTed.
7667
7668 2005-01-03  Martin Baulig  <martin@ximian.com>
7669
7670         * loader.c (find_method): Removed the hack for generic instances.
7671         (method_from_memberref): If our parent is a generic instance, pass
7672         its generic type definition to find_method() and then inflate the
7673         method.
7674         (mono_get_method_constrained): Pass the generic type definition to
7675         find_method() and inflate the method later.
7676
7677         * class-internals.h (MonoStats): Added `generic_class_count'.
7678
7679         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7680         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7681
7682         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7683         generic type definitions.
7684
7685 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7686
7687         * loader.c icall.c: Fix warnings.
7688
7689 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7690
7691         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7692         blittable types. Fixes #70864.
7693
7694 2004-12-29  Martin Baulig  <martin@ximian.com>
7695
7696         * icall.c
7697         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7698
7699         * reflection.c (mono_method_get_object): Create a
7700         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7701         call mono_get_inflated_method().
7702
7703         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7704
7705 2004-12-27  Martin Baulig  <martin@ximian.com>
7706
7707         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7708         (MonoMethodInflated): Added `inflated' field.
7709
7710         * class.c (mono_class_inflate_generic_method): Don't really
7711         inflate the method here; just set the `is_inflated' flag in the
7712         MonoMethod.
7713         (mono_class_get_inflated_method): Actually inflate the method here
7714         if it's not already inflated; we use the MonoMethodInflated's new
7715         `inflated' field as a cache.
7716
7717 2004-12-26  Martin Baulig  <martin@ximian.com>
7718
7719         * class.c
7720         (inflate_generic_class): Moved some code out of inflate_generic_type().
7721         (mono_class_inflate_generic_method): If we're already inflated,
7722         inflate the context and use the declaring method; ie. make sure
7723         the declaring method of an inflated method is always the generic
7724         method definition.
7725         (mono_class_create_from_typedef): Create
7726         `class->generic_container->context->gclass'.
7727
7728 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7729
7730         * metadata-internals.h, marshal.c, reflection.c: More
7731         MonoGHashTable->GHashTable.
7732
7733         * domain-internals.h, class.c: Change MonoGHashTable's into
7734         GHashTables for some cases where no gc stuff is used
7735
7736         All users: update apis
7737
7738 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7739
7740         * metadata.c (builtin_types): Make this `const'. Makes this get
7741         put into the shareable section.
7742         (mono_metadata_init): Casts to make gcc happy.
7743
7744 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7745
7746         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7747
7748 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7749
7750         * icall.c: Added an internal call to retrieve the position and length
7751         of assembly-level declarative security attributes (RequestMinimum, 
7752         RequestOptional and RequestRefuse). This is used by the Assembly class
7753         to re-create the corresponding permission sets.
7754
7755 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7756
7757         * marshal.c: fix the stelemref wrapper to be type correct
7758         (and faster).
7759
7760 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7761
7762         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7763         to do key & 0x7fffffff. Hashtable already does this. It just
7764         results in longer code.
7765
7766 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7767
7768         * appdomain.c: Bump corlib version.
7769         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7770         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7771         * reflection.c|h: Add functions to get declarative security infos
7772         (blob position and length) for assemblies, classes and methods.
7773
7774 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7775
7776         * reflection.c: sort the constant table (bug #70693).
7777
7778 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7779
7780         * object-internals.h, threads.c, domain.c: add accessors for
7781         the MonoThread and MonoDomain tls keys.
7782
7783 2004-12-18  Martin Baulig  <martin@ximian.com>
7784
7785         * class.c (inflate_generic_type): If we're inflating a generic
7786         instance, set `ngclass->context->container = context->container';
7787         ie. the container we inflated into.
7788
7789         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7790         inflate_generic_type() changes.
7791
7792 2004-12-17  Martin Baulig  <martin@ximian.com>
7793
7794         * class-internals.h
7795         (MonoGenericClass): Replaced `MonoType *generic_type' with
7796         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7797         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7798         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7799
7800 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7801
7802         * exception.c (mono_exception_from_token): New helper function.
7803
7804 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7805
7806         * assembly.c (mono_assembly_load_with_partial_name): Call 
7807         mono_assembly_loaded before invoking the preload hooks. Fixes
7808         #70564.
7809
7810         * object-internals.h (MonoThread): Change culture_info and 
7811         ui_culture_info into an array.
7812
7813         * threads.c: Cache culture info objects from more than one appdomain.
7814
7815         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7816         current UI culture.
7817
7818 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7819
7820         * threads.h threads.c appdomain.c: Clear the culture_info field of
7821         all threads during unloading if they point to an object in the dying
7822         appdomain.
7823
7824 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
7825
7826         * culture-info.h (TextInfoEntry): New struct
7827         * object-internals.h: sync with managed
7828         * locales.c: fill the `text_info_data' field
7829         * culture-info-tables.h: update
7830
7831 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
7832
7833         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
7834         collector.
7835
7836 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
7837
7838         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
7839         (ves_icall_ModuleBuilder_getMethodToken): Ditto
7840
7841 2004-12-12  Martin Baulig  <martin@ximian.com>
7842
7843         * mono-debug-debugger.c (write_type): If we're an enum and the
7844         builtin types have already been initialized, call mono_class_init().
7845
7846 2004-12-11  Martin Baulig  <martin@ximian.com>
7847
7848         * metadata.c (mono_metadata_load_generic_params): Added
7849         `MonoGenericContainer *parent_container' argument; automatically
7850         compute `container->is_method'; pass the correct owner to
7851         get_constraints().      
7852
7853         * reflection.c (compare_genericparam): Sort the GenericParam table
7854         according to increasing owners. 
7855
7856 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
7857
7858         * profiler.c: allow disabling the default profiler.
7859
7860 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
7861
7862         * decimal.c, icall.c: allow disabling System.Decimal support.
7863
7864 2004-12-09  Marek Safar <marek.safar@seznam.cz>
7865
7866         * reflection.c: Add support for null attribute arguments.
7867
7868 2004-12-09  Martin Baulig  <martin@ximian.com>
7869
7870         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
7871         names to get rid of compiler warnings.
7872
7873 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7874
7875         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
7876         mono_marshal_load_type_info (). Fixes #69625.
7877         (mono_marshal_get_ptr_to_struct): Likewise.
7878
7879 2004-12-08  Martin Baulig  <martin@ximian.com>
7880
7881         * mono-debug.h: Bumped version number to 47.
7882
7883         * mono-debug-debugger.c
7884         (mono_debugger_event_handler, mono_debugger_event): Take two
7885         guint64 arguments insteed of a gpointer and a guint32.  
7886
7887 2004-12-08  Martin Baulig  <martin@ximian.com>
7888
7889         * debug-mono-symfile.h
7890         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
7891         `address' to `native_offset'.
7892
7893 2004-12-08  Martin Baulig  <martin@ximian.com>
7894
7895         * class.c (mono_class_create_from_typespec): Only inflate if we
7896         either have `context->gclass' or `context->gmethod'.
7897
7898 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
7899
7900         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
7901
7902         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
7903
7904         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
7905
7906         * reflection.c (mono_assembly_get_object): Remove the workaround put
7907         in for the release.
7908         
7909         * appdomain.c: Use the corlib_internal field from MonoAssembly.
7910
7911         * appdomain.c: Bump corlib version.
7912
7913         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
7914         be visible in other appdomains.
7915
7916 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
7917
7918         * threads.c: Interlocked inc and dec for longs were messed up,
7919         use a KISS based impl for this. Fixes 70234
7920
7921 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
7922
7923         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
7924
7925 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
7926
7927         * icall.c: fix to follow policy not to allow struct
7928         arguments in icalls.
7929
7930 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7931
7932         * process.c: make the patch that handles spaces in file paths work
7933         on mono/windows too.
7934
7935 2004-12-06  Martin Baulig  <martin@ximian.com>
7936
7937         * class.c (mono_class_create_generic): Call
7938         mono_class_setup_supertypes() if we're dynamic.
7939         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
7940
7941 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
7942
7943         * object-internals.h: Add new fields to MonoThread.
7944
7945         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7946
7947         * icall.c threads-types.h threads.c: Add new icalls.
7948
7949         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
7950
7951         * object-internals.h (MonoReflectionAssembly): Sync object layout with
7952         managed side.
7953
7954         * appdomain.c: Bump corlib version.
7955
7956         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
7957         internal assemblies. Fixes #69181.
7958
7959 2004-12-05  Martin Baulig  <martin@ximian.com>
7960
7961         * class.c (mono_class_inflate_generic_signature): Make this a
7962         no-op if `context' is NULL or we don't have any type parameters;
7963         also copy `sentinelpos'.        
7964
7965 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
7966
7967         * image.c: Add unbox_wrapper_cache.
7968
7969         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
7970
7971         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
7972         function generator.
7973         
7974         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
7975         Fixes #70173.
7976
7977         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
7978         
7979 2004-12-04  Martin Baulig  <martin@ximian.com>
7980
7981         * loader.c (mono_method_get_signature_full): New public function;
7982         like mono_method_get_signature(), but with an additional
7983         `MonoGenericContext *' argument.
7984
7985         * class.c (mono_class_inflate_generic_signature): Formerly known
7986         as inflate_generic_signature(); make this public.
7987
7988 2004-12-04  Martin Baulig  <martin@ximian.com>
7989
7990         * metadata.c
7991         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
7992         instead of a `MonoGenericContainer *'.  
7993         (mono_metadata_parse_array_full): Likewise.
7994         (mono_metadata_parse_signature_full): Likewise.
7995         (mono_metadata_parse_method_signature_full): Likewise.
7996         (mono_metadata_parse_generic_inst): Likewise.
7997         (mono_metadata_parse_generic_param): Likewise.
7998         (mono_metadata_parse_mh_full): Likewise.
7999         (mono_type_create_from_typespec_full): Likewise.
8000
8001 2004-12-03  Martin Baulig  <martin@ximian.com>
8002
8003         * class-internals.h (MonoGenericContainer): Replaced the
8004         `MonoGenericContext * pointer with a `MonoGenericContext'
8005         structure and made it the first element.
8006
8007 2004-12-03  Martin Baulig  <martin@ximian.com>
8008
8009         * class.c
8010         (inflate_generic_type): Set the `context->container' when creating
8011         a new MonoGenericContext.
8012         (mono_class_inflate_generic_method): Likewise.
8013         (mono_class_create_from_typespec): Just use `context->container'
8014         to get the container.
8015
8016         * loader.c (method_from_methodspec): Set `context->parent' from
8017         `context->container' - and if that's a method container, use its
8018         parent.  Also set the `context->container' when creating a new
8019         MonoGenericContext.
8020         (mono_get_method_from_token): Use just `context->container' to get
8021         the container.
8022
8023         * metadata.c (do_mono_metadata_parse_generic_class): Also set
8024         `gclass->context->container'.
8025
8026         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8027         the `context->container' when creating a new MonoGenericContext.
8028
8029 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
8030
8031         * reflection.c (compare_genericparam): Sort params with identical
8032         owner by their number. Fixes gen-111 on sparc.
8033
8034 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8035
8036         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8037         around the domain changes.
8038
8039         * appdomain.c (mono_domain_unload): Handle the case when the thread
8040         calling Unload is itself being aborted during unloading. Fixes #70022.
8041
8042         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8043
8044         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
8045         checkpoint_func as an icall so it gets a wrapper.
8046         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8047         in the cross-appdomain wrappers too.
8048
8049         * threads.c (mono_thread_has_appdomain_ref): Make this public.
8050
8051         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8052
8053         * reflection.c: Fix some memory leaks.
8054         
8055 2004-12-02  Martin Baulig  <martin@ximian.com>
8056
8057         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8058
8059         * metadata.c (generic_class_cache): New static hashtable.
8060         (mono_metadata_lookup_generic_class): New public method.
8061
8062 2004-12-02  Martin Baulig  <martin@ximian.com>
8063
8064         * class.c (mono_class_create_from_typedef): Call
8065         mono_class_setup_parent() and mono_class_create_mono_type() before
8066         parsing the interfaces.
8067
8068 2004-12-02  Martin Baulig  <martin@ximian.com>
8069
8070         * metadata.c (generic_inst_cache): New static hashtable.
8071         (mono_metadata_lookup_generic_inst): New public function.
8072         (mono_metadata_inflate_generic_inst): New public function.
8073         (mono_metadata_parse_generic_inst): New public function.
8074         (do_mono_metadata_parse_generic_class): Use the new
8075         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8076         since this'll also use the cache.
8077
8078         * reflection.c (mono_reflection_bind_generic_method_parameters):
8079         Use mono_metadata_lookup_generic_inst() to use the new cache.
8080
8081         * class.c (inflate_mono_type): Use
8082         mono_metadata_inflate_generic_inst() to inflate a generic
8083         instance; this'll also use the new cache.
8084
8085         * loader.c (method_from_methodspec): Use
8086         mono_metadata_parse_generic_inst() and
8087         mono_metadata_inflate_generic_inst() rather than parsing it
8088         manually, so we can use the new cache.
8089
8090 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8091
8092         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8093         the wait times out.
8094
8095 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8096
8097         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8098         iter->args based on whether parameters are passed in registers (i.e.
8099         MONO_ARCH_REGPARMS is defined)
8100
8101 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8102
8103         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8104         the exception message. Fixes #70070.
8105         (method_from_methodspec): Fix warnings.
8106
8107 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8108
8109         * process.c: (complete_path) return the path quoted
8110
8111 2004-12-01  Martin Baulig  <martin@ximian.com>
8112
8113         * class-internals.h (MonoGenericInst): New structure.
8114         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8115         `is_open' with `MonoGenericInst *inst'.
8116         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8117         `is_open' with `MonoGenericInst *inst'.
8118
8119 2004-11-30  Martin Baulig  <martin@ximian.com>
8120
8121         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8122
8123         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8124         to `generic_class_cache'.
8125
8126         * metadata.c
8127         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8128         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8129         (mono_generic_inst_is_valuetype): Renamed to
8130         mono_generic_class_is_valuetype().
8131
8132         * class-internals.h
8133         (MonoGenericInst): Renamed to MonoGenericClass.
8134         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8135         (MonoClass): Renamed `generic_inst' to `generic_class'.
8136         (MonoGenericContext): Renamed `ginst' to `gclass'.
8137
8138         * object-internals.h
8139         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8140
8141         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8142         mono_reflection_generic_class_initialize().
8143
8144         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8145         now known as "System.Reflection.MonoGenericClass".
8146         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8147
8148 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8149
8150         * class-internals.h: Added a flag field to MonoClass to cache the
8151         declarative security attributes actions associated with the class.
8152         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8153         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8154         applicable to the JITted method.
8155         * reflection.c|h: Added functions to extract (as flags) which security
8156         actions are available (declaratively) for a method, class or assembly.
8157         * metadata.c|h: Added functions to search the declarative security
8158         table in the metadata.
8159         
8160 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8161
8162         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8163         EXPORTEDTYPES are already in the class name cache, so there is no
8164         need to add extra code here to look at them. Just removes a bit of
8165         cruft.
8166
8167         (ves_icall_System_Environment_get_TickCount): No need for #if
8168         WINDOWS. We already have the code in io-layer.
8169
8170 2004-11-28  Martin Baulig  <martin@ximian.com>
8171
8172         * loader.c
8173         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8174         Fixes gen-112.cs.
8175
8176 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8177
8178         * assembly.c (do_mono_assembly_open): Instead of having a
8179         conditional WITH_BUNDLE, incorporate support for bundles here, by
8180         having a global `bundles' variable holding a pointer to the actual
8181         bundles. 
8182
8183         (mono_register_bundled_assemblies): New API call used by the
8184         bundle code. 
8185
8186         See mkbundle.1 for details.
8187         
8188 2004-11-27  Martin Baulig  <martin@ximian.com>
8189
8190         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8191         the vtable for generic methods.
8192
8193 2004-11-26  Martin Baulig  <martin@ximian.com>
8194
8195         * metadata.c
8196         (mono_metadata_generic_method_hash): New public function.
8197         (mono_metadata_generic_method_equal): Likewise.
8198
8199         * class-internals.h
8200         (MonoGenericContainer): Added `GHashTable *method_hash'.
8201
8202         * reflection.c (ReflectionMethodBuilder): Added
8203         `MonoGenericContainer *generic_container'.
8204         (reflection_methodbuilder_to_mono_method): Don't create a new
8205         MonoGenericContainer each time we're called.
8206         (mono_reflection_bind_generic_method_parameters): Use
8207         `container->method_hash' to cache the results so we don't create a
8208         different method if we're called several times with the same
8209         arguments.
8210
8211         * loader.c (method_from_methodspec): Use the new
8212         `container->method_hash' here, too.
8213
8214 2004-11-26  Martin Baulig  <martin@ximian.com>
8215
8216         * class.c (inflate_generic_signature): Correctly compute
8217         `res->has_type_parameters'.
8218         (mono_class_vtable): Use the `has_type_parameters' flag to
8219         determine whether we're a generic method.
8220
8221         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8222
8223 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8224
8225         * object.c (mono_runtime_run_main): Fix a small memory leak.
8226
8227 2004-11-25  Martin Baulig  <martin@ximian.com>
8228
8229         * class.c (set_generic_param_owner): Fixed the loop.
8230
8231 2004-11-25  Martin Baulig  <martin@ximian.com>
8232
8233         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8234         generic methods.
8235
8236 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8237
8238         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8239         names. Fixes #69787.
8240
8241 2004-11-24  Martin Baulig  <martin@ximian.com>
8242
8243         * class.c (mono_class_create_generic_2): If we don't have a
8244         `ginst->parent', inflate `gklass->parent' to get our parent.
8245
8246 2004-11-24  Martin Baulig  <martin@ximian.com>
8247
8248         * reflection.c (compare_genericparam): Correctly sort the
8249         GenericParam table; fixes #69779.
8250
8251 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8252
8253         * reflection.c: When writing a PE file, don't create a huge
8254         buffer in memory. Just write the arrays we have to the file.
8255         This reduces memory usage.
8256
8257         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8258         globally.
8259
8260 2004-11-17  Martin Baulig  <martin@ximian.com>
8261
8262         * class.c (mono_class_init): Don't setup `class->parent' for
8263         dynamic instances; moved this to mono_class_generic_2().
8264         (mono_class_create_generic): Also set `klass->inited' for dynamic
8265         generic instances.
8266         (mono_class_create_generic_2): Don't do anything for dynamic
8267         generic instances.  Set `klass->parent' here and also call
8268         mono_class_setup_parent() here. 
8269
8270         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8271         `MonoType *parent' argument; set `ginst->parent' before calling
8272         mono_class_create_generic_2(), so we set the correct parent.
8273
8274 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8275
8276         * reflection.c: allow getting attributes from ModuleBuilder
8277         (used by ikvm).
8278
8279 2004-11-17  Martin Baulig  <martin@ximian.com>
8280
8281         * class.c (mono_class_create_from_typedef): If a type parameter is
8282         inherited from an outer class, set its owner to that class.
8283
8284 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8285
8286         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8287           for (int*) written size. This fixes bug #69592.
8288
8289 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8290
8291         * icall.c: Added IsAuthenticodePresnet internal call.
8292         * image.c|h: New function that check a MonoImage for an Authenticode
8293         signature in the certificate PE data directory.
8294         * security.c|h: New internal call to ask the runtime if an 
8295         Authenticode signature seems referenced in the PE header.
8296
8297 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8298
8299         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8300
8301         * reflection.c (mono_image_create_pefile): Free the assembly streams
8302         after writing out the assembly file.
8303
8304         * object.c (mono_runtime_run_main): Fix small memory leak.
8305
8306         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8307         property access modifiers. Fixes #69389.
8308
8309 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8310
8311         * domain.c, object.c, object-internals.h, domain-internals.h,
8312         object.h, marshal.c: keep dynamic code info per domain.
8313
8314 2004-11-15  Martin Baulig  <martin@ximian.com>
8315
8316         * class.c (mono_type_get_name_recurse): Put type arguments in
8317         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8318         see bug #68387.
8319
8320 2004-11-15  Martin Baulig  <martin@ximian.com>
8321
8322         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8323         (mono_class_setup_vtable): When computing `the_cname' for a
8324         generic instance, don't include the namespace since we'd otherwise
8325         add it twice.
8326
8327 2004-11-15  Martin Baulig  <martin@ximian.com>
8328
8329         * class.c (mono_class_create_generic): Changed return type to void.
8330         (mono_class_create_generic_2): New public function; setup
8331         `class->method', `class->field' and `class->interfaces' here
8332         instead of in mono_class_init().
8333
8334         * class.h (mono_class_create_generic): Moved to class-internals.h.
8335
8336 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8337
8338         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8339         rather than writing to memory, write to this file. Right now,
8340         we are just writting into a buffer, and copying that. However
8341         we can avoid the buffer later.
8342
8343         (mono_dynamic_stream_reset): new function
8344
8345         * icall.c, object-internals.h: update for the above.
8346
8347 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8348
8349         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8350         have been using gc'd memory. First it is slower, unlikely
8351         the comment in the source code said, secondly, it increases
8352         our footprint to do it in the gc.
8353
8354         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8355         the method so that it does not have to copy to managed code.
8356
8357 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8358
8359         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8360
8361 2004-11-12  Martin Baulig  <martin@localhost>
8362
8363         * reflection.c (mono_image_create_token): Allow generic method
8364         definitions here, since they may appear in an `.override'; see
8365         gen-98/gen-99 for an example.
8366
8367 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8368
8369         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8370         #69365.
8371
8372         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8373         descriptive.
8374
8375 2004-11-11  Martin Baulig  <martin@ximian.com>
8376
8377         * class.c (mono_class_setup_vtable): In an explicit interface
8378         implementation, the method name now includes the arity.
8379
8380 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8381
8382         * object.c (mono_array_full_copy): Fix warning.
8383
8384 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8385
8386         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8387         mono_class_get_method_from_name() instead.
8388         
8389         * class-internals.h: Added two new types of wrappers. 
8390         Added MonoRemotingTarget enum. Added new trampoline function type, which
8391         takes an additional MonoRemotingTarget value as parameter, so it is
8392         possible to request a trampoline for a specific target.
8393         
8394         * class.c: Added new mono_class_get_method_from_name() method.
8395         
8396         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8397         general remoting sinks and one specific for cross domain calls.
8398         
8399         * debug-helpers.c: Added new wrapper names.
8400         
8401         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8402         of a remote class.
8403         
8404         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8405         
8406         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8407         with several other methods (mono_marshal_get_xappdomain_dispatch,
8408         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8409         and others) can generate a fast remoting wrapper for cross domain calls.
8410         More information can be found in docs/remoting.
8411         Other changes: Removed mono_find_method_by_name, and used
8412         mono_class_get_method_from_name instead.
8413         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8414         is stored in the remoting invoke hashtable.
8415         
8416         * marshal.h: published the new method for getting the xdomain wrapper,
8417         and also added a method for getting the adequate wrapper for a given
8418         method and target.
8419         
8420         * object-internals.h, object.c: Added a couple of methods for capying and
8421         cloning arrays.
8422         Modified mono_install_remoting_trampoline, which takes the new remoting
8423         trampoline that has a remoting target as parameter.
8424         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8425         will return the most suitable vtable for the target.
8426         Added mono_remote_class_vtable, which returns the vtable of a remote class
8427         (which can be the normal remoting vtable or the xdomain vtable).
8428         
8429         * threads.c: the xdomain invoke and dispatch wrappers must also be
8430         protected against interruptions.
8431
8432 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8433
8434         * icall.c: use memmove in BlockCopyInternal when the source and
8435         destination arrays are the same.
8436
8437 2004-11-09  Martin Baulig  <martin@ximian.com>
8438
8439         * class-internals.h (MonoGenericContainer): Removed `method' and
8440         `signature', replaced them with `is_method' and `is_signature'
8441         flags.  Added `context'.
8442
8443         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8444         instead of a `MonoGenericContainer *'.
8445
8446         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8447         for dynamic type parameters.
8448         (mono_metadata_load_generic_params): Setup `container->context'.
8449
8450         * reflection.c (mono_reflection_setup_generic_class): Setup
8451         `tb->generic_container->context'.
8452         (do_mono_reflection_bind_generic_parameters): Use
8453         mono_class_inflate_generic_type() to correctly inflate types,
8454         rather than using our own hack just for MONO_TYPE_VAR.
8455
8456 2004-11-09  Martin Baulig  <martin@ximian.com>
8457
8458         * class.c (mono_class_inflate_generic_method): Small fix; don't
8459         crash here.
8460
8461         * icall.c
8462         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8463         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8464         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8465         (ves_icall_Type_BindGenericParameters): Likewise.
8466         (ves_icall_Type_get_IsGenericInstance): Likewise.
8467         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8468         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8469         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8470         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8471
8472 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8473
8474         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8475         assembly versions and public key tokens. Fixes #69113.
8476
8477 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8478
8479         * metadata.c: fix bug introduced with the type cache changes
8480         on 2004-11-06.
8481
8482 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8483
8484         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8485         the MonoClass pointer instead of the token in exception clauses.
8486         * reflection.c: updates for the above and make the code not depend
8487         on the structure of MonoExceptionClause.
8488
8489 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8490
8491         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8492         Add support for dynamic assemblies. Fixes #69114.
8493
8494         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8495
8496 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8497
8498         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8499         since most only those methods use it. the code member of
8500         MonoMethodPInvoke was dead, so that can be removed too. Also,
8501         remove inline_count (again, not used), and move slot so that it
8502         can share bits with some other flags. This saves 8 bytes in the
8503         structure and gives us about 50 kb back for mcs helloworld.cs
8504
8505         * *.[ch]: Do naming changes for the above.
8506
8507         * loader.c (mono_method_get_header): Lazily init the header
8508         on first access.
8509         (mono_get_method_from_token): don't init the header here
8510         (mono_free_method): the header may never be allocated
8511
8512         Overall, this saves 150 kb of unmanaged allocations
8513         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8514         memory at runtime.
8515         
8516         * loader.c, loader.h (mono_method_get_header): new accessor.
8517
8518         * *.[ch]: use the above method. Prepares us to lazily load
8519         the header.
8520
8521         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8522         three warnings, which are actual bugs (see 69206).
8523
8524         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8525         unused. Saves a cool 4 bytes / method.
8526
8527 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8528
8529         * metadata.c (builtin_types): Add types for System.Object here.
8530         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8531         for a class or valuetype from klass->this_arg or klass->byval_arg.
8532
8533         On mcs for a hello world, this gets us down from 21836 MonoType's
8534         to 14560.
8535
8536         (mono_metadata_free_type): Account for the above change.
8537
8538 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8539
8540         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8541         exception instead of asserting if name is null.
8542         (ves_icall_System_AppDomain_GetData): Ditto.
8543
8544 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8545
8546         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8547         EnumBuilder.
8548
8549         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8550         Return NULL when the domain does not have entry_assembly set.
8551
8552         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8553         Add a 'resource_modules' argument.
8554         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8555
8556         * reflection.c (mono_reflection_create_runtime_class): Move setting
8557         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8558         for enums too.
8559
8560         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8561         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8562         Throw an ArgumentNullException if 'ptr' is null.
8563
8564         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8565         assemblies here. Fixes #69020.
8566
8567 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8568
8569         * reflection.c (build_compressed_metadata): Fix the previous patch for
8570         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8571         the stack.
8572
8573 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8574
8575         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8576         the cultures is false. Fixes #69090.
8577
8578         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8579         detected by valgrind.
8580         
8581         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8582         TypeResolve multiple times for the same type. Fixes #65577.
8583
8584 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8585
8586         * marshal.c: Avoid using ldftn to call managed functions. It is
8587         much slower than just a call.
8588
8589         * reflection.c (mono_module_get_object): free the basename we
8590         allocate here from glib.
8591         
8592         * reflection.c (ensure_runtime_vtable): make sure to free
8593         overrides.  Also, we were allocating an array of MonoMethod not an
8594         array of MonoMethod*.
8595
8596         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8597
8598         * image.c (mono_image_close): free image->guid here.
8599
8600 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8601
8602         * reflection.c: Fix some spec conformance issues with the PE file
8603         structures so mcs compiled apps run on the Net 2.0 beta.
8604
8605 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8606
8607         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8608         Implement this. Fixes #67264.
8609
8610         * debug-helpers.h debug-helpers.c marshal.c: Move 
8611         mono_find_method_by_name to debug-helpers.c.
8612
8613 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8614
8615         * object.c (mono_release_type_locks): type_initialization_hash is
8616         a GHashTable.
8617
8618         * reflection.c object.c object-internals.h: Fix warnings.
8619
8620         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8621         without accessors. Fixes #61561.
8622
8623         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8624         application base from the root domain if not set. Fixes #65641.
8625         (mono_runtime_init): Fix warning.
8626
8627 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8628
8629         * appdomain.c: call mono_thread_pool_init.
8630         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8631         of worker threads based on the number of CPUs and the environment
8632         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8633         for non-windows (windows) systems.
8634
8635 2004-10-27  Chris Toshok  <toshok@ximian.com>
8636
8637         * mono-debug-debugger.c (write_class): don't call mono_class_init
8638         here, as even with the check for (!klass->init_pending), we get
8639         into a situation where we're hitting cycles in class
8640         initialization.  Fixes #68816.
8641
8642 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8643
8644         * image.c: Avoid overwriting values in the loaded_images_hash when an
8645         assembly is loaded multiple times. Fixes #61152.
8646
8647         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8648         so multiple satellite assemblies for the same name can be loaded.
8649         Fixes #68259.
8650
8651         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8652         not NULL.
8653
8654         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8655         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8656
8657         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8658         pending finalizers are not invoked after the appdomain has been 
8659         unloaded. Fixes #67862.
8660
8661 2004-10-22  Martin Baulig  <martin@ximian.com>
8662
8663         * mono-debug-debugger.c
8664         (mono_debugger_runtime_invoke): Don't box valuetypes.
8665
8666 2004-10-22  Chris Toshok  <toshok@ximian.com>
8667
8668         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8669         don't hide private methods.
8670
8671 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8672
8673         * icall.c: Allows the runtime to "share" (when known) the public key
8674         token of an assembly. This avoid the need to recalculate the token 
8675         (from the public key) in managed code.
8676
8677 2004-10-21  Chris Toshok  <toshok@ximian.com>
8678
8679         * debug-helpers.c (append_class_name): argh, revert last patch.
8680         
8681 2004-10-21  Chris Toshok  <toshok@ximian.com>
8682
8683         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8684         not '/', so that it matches what the debugger uses to look up
8685         methods.
8686
8687 2004-10-21  Martin Baulig  <martin@ximian.com>
8688
8689         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8690         public method; this is called each time an exception is thrown and
8691         allows the debugger to use exception catch points.
8692
8693 2004-10-21  Martin Baulig  <martin@ximian.com>
8694
8695         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8696         the stack pointer and the exception object in some struct and pass
8697         that to the debugger.
8698
8699 2004-10-21  Chris Toshok  <toshok@ximian.com>
8700
8701         * mono-debug-debugger.c (do_write_class): add instance/static
8702         event support.  We don't expose "raise" or "other" yet.
8703         (event_is_static): new method.
8704
8705 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8706
8707         * mono-debug-debugger.c
8708         (mono_debugger_handle_exception): Remove
8709         bogus return value for fussy compilers.
8710
8711 2004-10-20  Martin Baulig  <martin@ximian.com>
8712
8713         * mono-debug-debugger.c
8714         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8715         (mono_debugger_handled_exception): Likewise.
8716
8717 2004-10-20  Martin Baulig  <martin@ximian.com>
8718
8719         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8720         MONO_DEBUGGER_EVENT_EXCEPTION.
8721
8722         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8723         public function to send the debugger a notification for an
8724         exception and inform it about a catch/finally clause.
8725
8726 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8727
8728         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8729         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8730         fix 2.95 build. 
8731
8732         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8733
8734 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8735
8736         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8737         marshalled as [In,Out]. Fixes #58325.
8738
8739 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8740
8741         * reflection.c (mono_method_body_get_object): Implement some fields.
8742
8743 2004-10-12  Martin Baulig  <martin@ximian.com>
8744
8745         * reflection.c (mono_reflection_bind_generic_parameters): Small
8746         fix, correctly retrieve our parent from a generic instance.
8747
8748 2004-10-12  Martin Baulig  <martin@ximian.com>
8749
8750         * metadata.c (mono_metadata_generic_param_equal): We always have
8751         an owner.
8752
8753         * class.c
8754         (mono_class_from_generic_parameter): We need to have an owner.
8755         (my_mono_class_from_generic_parameter): Likewise.
8756
8757         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8758         mono_reflection_create_generic_class() and added a new
8759         mono_reflection_setup_generic_class().  
8760         (mono_reflection_initialize_generic_param): If we're a nested
8761         generic type and inherited from the containing class, set our
8762         owner to the outer class.
8763
8764 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8765
8766         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8767
8768         * reflection.c (mono_method_body_get_object): New function to create
8769         a MethodBody object.
8770
8771         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8772
8773 2004-10-11  Martin Baulig  <martin@ximian.com>
8774
8775         * metadata.c (_mono_metadata_type_equal): Renamed to
8776         do_mono_metadata_type_equal() and made static.
8777
8778 2004-10-11  Martin Baulig  <martin@ximian.com>
8779
8780         * appdomain.c: Bump corlib version number to 28.
8781
8782 2004-10-10  Martin Baulig  <martin@ximian.com>
8783
8784         * class-internals.h
8785         (MonoGenericInst): Added `MonoGenericContainer *container'.
8786         (MonoGenericMethod): Likewise.
8787         (MonoGenericContext): Likewise.
8788         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8789
8790         * metadata.c
8791         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8792         (do_mono_metadata_parse_generic_inst): Likewise.
8793         (mono_metadata_parse_type_full): New public method.  This is the actual
8794         mono_metadata_parse_type() implementation - with an additional
8795         `MonoGenericContainer *' argument.
8796         (mono_metadata_parse_array_full): Likewise.
8797         (mono_metadata_parse_signature_full): Likewise.
8798         (mono_metadata_parse_method_signature_full): Likewise.
8799         (mono_metadata_parse_mh_full): Likewise.
8800         (mono_type_create_from_typespec): Likewise.
8801         (mono_metadata_interfaces_from_typedef_full): New public method;
8802         this is similar to the other _full() methods, but we take a
8803         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8804         (mono_metadata_parse_generic_param): Take an additional
8805         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8806         from that container.
8807         (mono_metadata_generic_param_equal): New static method to compare
8808         two type parameters.
8809         (_mono_metadata_type_equal): New static method; takes an
8810         additional `gboolean signature_only' argument - if true, we don't
8811         compare the owners of generic parameters.
8812         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8813         with a TRUE argument - do a signature-only comparision.
8814
8815         * loader.c: Use the new _full() methods and pass the
8816         MonoGenericContainer to them.
8817
8818         * object-internals.h (MonoReflectionTypeBuilder): Added
8819         `MonoGenericContainer *generic_container' field.
8820         (MonoReflectionMethodBuilder): Likewise.
8821
8822 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
8823
8824         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
8825         case initial images of dynamic assemblies.
8826
8827         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
8828
8829         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
8830
8831         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
8832         length of event->other array.
8833         (typebuilder_setup_events): Ditto.
8834
8835         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
8836         'assembly_by_name' and add an 'assemblies' list.
8837
8838         * assembly.h assembly.c: Add a new search hook for determining whenever
8839         an assembly is already loaded. Use this instead of searching in the
8840         loaded_assemblies list.
8841
8842         * domain.c appdomain.c: Implement the new search hook so loaded 
8843         assemblies are now scoped by appdomain. Fixes #67727.
8844
8845 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
8846
8847         * threads.c (mono_thread_attach): Initialize synch_lock field so
8848         mono_thread_detach works again.
8849
8850         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
8851         'lib' too. Fixes #63130.
8852
8853 2004-10-06  Jackson Harper  <jackson@ximian.com>
8854
8855         * culture-info-tables.h: regenerated.
8856
8857 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
8858
8859         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
8860         implemented by other interfaces in the result. Fixes #65764.
8861         
8862         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8863         Handle unloadable modules without crashing.
8864
8865         * image.c (load_modules): Revert the previous patch since modules must
8866         have a fixed index inside the array.
8867         
8868         * image.c (load_modules): Don't include native modules in the modules
8869         array.
8870
8871 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
8872
8873         * reflection.h: Add param_defaults field.
8874
8875         * reflection.c: Add support for parameter defaults in dynamic methods.
8876         Fixes #64595.
8877
8878         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
8879         an empty string when a type has no namespace. Fixes #64230.
8880
8881 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
8882
8883         * tabledefs.h: Added "internal" security actions to support non-CAS
8884         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
8885         Note: they do not seems to be used anymore in 2.0 (new metadata format)
8886
8887 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
8888
8889         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
8890         constructor of abstract class. Fixes #61689.
8891
8892 2004-10-04  Martin Baulig  <martin@ximian.com>
8893
8894         * class-internals.h (MonoGenericContainer): New type.
8895         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
8896         `MonoGenericContainer *generic_container'.
8897         (MonoClass): Replaced `gen_params' and `num_gen_params' with
8898         `MonoGenericContainer *generic_container'.
8899
8900         * metadata.c (mono_metadata_load_generic_params): Return a
8901         `MonoGenericContainer *' instead of a `MonoGenericParam *';
8902         removed the `num' argument.
8903
8904 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
8905
8906         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
8907         for dynamic images.
8908
8909         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
8910         machine fields.
8911
8912         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
8913
8914         * reflection.c: Save pe_kind and machine values into the generated
8915         image file.
8916
8917         * appdomain.c: Bump corlib version number.
8918
8919         * object-internals.h: Reorganize layout of LocalBuilder.
8920
8921         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
8922         New helper function.
8923
8924         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
8925         created MonoType for dynamic types. Fixes #66180.
8926
8927 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
8928
8929         * threadpool.c: the ares hashtable needs a critical section around it.
8930         this prevents some nasty segfaults
8931
8932 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
8933
8934         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
8935         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
8936         bug 67324).
8937         
8938 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8939
8940         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
8941         
8942 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
8943
8944         * image.c: Always canonicalize image file names, to avoid loading
8945         the same assembly twice when referenced using a relative path.
8946
8947 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
8948
8949         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
8950
8951         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
8952
8953         * marshal.c: Fix warnings.
8954
8955 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
8956
8957         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
8958         attempting to marshal the delegate_trampoline as the method_addr.
8959         This patch has a static hashtable of marshalled delegates so that 
8960         we can map delegate_trampoline addresses back to delegates.  This
8961         allows a delegate passed to managed code to be passed back into native
8962         code.  Fixes #67039
8963
8964 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
8965
8966         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
8967
8968         * reflection.c (method_encode_code): Align method headers properly.
8969         Fixes #66025.
8970
8971 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8972
8973         * marshal.c: In the runtime invoke wrapper, reset the abort
8974         exception if it is cached. This avoids the automatic rethrowal of 
8975         the exception after the catch of the wrapper. Also check for pending
8976         interruptions before calling the managed method. This is done using
8977         the new method emit_thread_force_interrupt_checkpoint, since the
8978         normal checkpoint method is ignored when running the invoke wrapper.
8979         * object.c: If the abort exception is rethrown, set the abort_exc
8980         field of the thread, so it will be rethrown aftere every catch.
8981         * threadpool.c: Only run an interruption checkpoint if what has been
8982         requested is a stop of the thread (aborts will be ignored).
8983         * threads.c: By default, a thread will now never be interrumped while
8984         running the runtime invoke wrapper (this ensures that runtime_invoke
8985         will always return to the caller if an exception pointer is provided).
8986         There is a new special method mono_thread_force_interruption_checkpoint()
8987         to force an interruption checkpoint even if running a protected
8988         wrapper, which is used by the same runtime invoke wrapper to do a check
8989         at a safe point.
8990
8991 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
8992
8993         * object.c, object-internals.h: Implemented mono_release_type_locks,
8994         which releases the cctor locks held by a thread.
8995         * threads.c, threads.h: In thread_cleanup, release cctor locks held
8996         by a thread. Added mono_thread_exit() method to be used to safely stop
8997         a thread.
8998
8999 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9000
9001         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9002         Move null check before dereference.  Avoid indexing beyond the end
9003         of the 'modules' array.
9004
9005 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9006
9007         * metadata-internals.h (MonoImage): Add module_count field.
9008         * image.c (load_modules): Set image->module_count.
9009         (mono_image_load_file_for_image): Use image->module_count.
9010         * reflection.c (mono_image_load_module): Append to image->modules array 
9011         of dynamic assembly.
9012         (mono_module_get_object): Fix loop to actually increment index.
9013         Use image->module_count.
9014         * assembly.c (mono_assembly_load_references): Use image->module_count.
9015         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9016         Likewise.
9017
9018 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9019
9020         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
9021         Avoid assert on generic types.
9022
9023 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
9024
9025         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9026
9027         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9028
9029         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
9030         function to convert a MarshalSpec structure to its managed counterpart.
9031
9032         * reflection.c: Fix warnings.
9033         
9034         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9035         field.
9036
9037         * icall.c (mono_create_icall_signature): Fix build.
9038
9039 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
9040
9041         * icall.c: Add MakePointType icall.
9042
9043         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9044         warnings.
9045
9046 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9047
9048         * threadpool.c: reuse allocated slots in the queue.
9049
9050 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
9051
9052         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9053
9054         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9055
9056         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9057         previous change.
9058
9059         * tabledefs.h: Add constants for pinvoke attributes BestFit and
9060         ThrowOnUnmappableChar.
9061
9062         * icall.c (ves_icall_Type_GetPacking): New icall.
9063
9064 2004-09-24  Martin Baulig  <martin@ximian.com>
9065
9066         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9067
9068 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9069
9070         * appdomain.c:
9071         (mono_domain_set): allow setting a domain that is being unloaded.
9072         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9073         being unloaded.
9074
9075 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9076
9077         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9078         the GetCustomAttributes icall.
9079
9080 2004-09-23  Martin Baulig  <martin@ximian.com>
9081
9082         * object-internals.h (MonoReflectionGenericParam): Replaced
9083         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9084         with `guint32 attrs'.
9085
9086 2004-09-23  Martin Baulig  <martin@ximian.com>
9087
9088         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9089
9090 2004-09-23  Martin Baulig  <martin@ximian.com>
9091
9092         * object-internals.h (GenericParameterAttributes): New enum.
9093
9094 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9095
9096         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9097         
9098         * class.c (init_events): Fill out event->other field.
9099
9100         * class.c: Fix warnings.
9101
9102         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9103
9104 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9105
9106         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9107         walk which doesn't supply the IL offset.
9108
9109 2004-09-22  Martin Baulig  <martin@ximian.com>
9110
9111         * reflection.c (mono_reflection_setup_internal_class): If we're
9112         System.ValueType, System.Object or System.Enum, set
9113         `klass->instance_size' and create the vtable.
9114         (mono_reflection_create_internal_class): If we're an enum type,
9115         get the base class from our current corlib.
9116
9117 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9118
9119         * reflection.h (MonoResolveTokenError): New type.
9120
9121         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9122         icall.
9123
9124         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9125
9126 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9127
9128         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9129         Support also calling constructors, but only for already allocated objects.
9130
9131 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9132
9133         * reflection.c (type_get_qualified_name): If the klass is null
9134         return the typename to avoid a NullRefEx.
9135         (encode_cattr_value): Get the qualified name of the boxed type,
9136         not the underlying enumtype.  Fixes #62984.
9137
9138 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9139
9140         * marshal.c: Fix problems with previous checkin.
9141
9142 2004-09-21    <vargaz@freemail.hu>
9143
9144         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9145         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9146
9147         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9148
9149 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9150
9151         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9152         should only return a type for pointers, arrays, and passbyref types.
9153         Fixes bug #63841.
9154
9155 2004-09-21  Martin Baulig  <martin@ximian.com>
9156
9157         * domain.c (mono_debugger_check_runtime_version): New public
9158         function.
9159
9160         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9161
9162 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9163
9164         * reflection.c: Added missing sort to the declarative security 
9165         attributes table. MS implementation stops seeing the attributes if the
9166         token number regress in the table (as shown by ildasm and permview).
9167
9168 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9169
9170         * object-internals.h (MonoReflectionModule): Add 'token' field.
9171         
9172         * reflection.c (mono_reflection_get_token): Add support for Module
9173         and Assembly.
9174         (mono_module_get_object): Set 'token' field.
9175         (mono_module_file_get_object): Set 'token' field.
9176
9177         * icall.c: Add new Assembly and Module icalls.
9178
9179         * appdomain.c: Bump corlib version.
9180
9181 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9182
9183         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9184         tokens of metadata objects.
9185
9186         * reflection.h reflection.c (mono_reflection_get_token): New function
9187         to obtain the token of a metadata object.
9188
9189         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9190
9191 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9192
9193         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9194         
9195         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9196
9197 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9198
9199         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9200         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9201         AssemblyBuilder to access the permissions set in the class lib.
9202         * reflection.c: Added security attributes encoding step in 
9203         mono_image_build_metadata.
9204         * tabledefs.h: Added new security actions defined in 2.0:
9205         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9206
9207 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9208
9209         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9210         macro parameter.
9211
9212 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9213  
9214         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9215           finalized. There where random SIGSEVs at program termination, when
9216           an object being finalized was trying to do a string comparison and
9217           the current culture was already finalized.
9218  
9219 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9220
9221         * threads.c: call thread_cleanup before finishing the thread if we get
9222         there.
9223
9224 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9225
9226         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9227         assemblies from the parent. Fixes #65665.
9228
9229 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9230
9231         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9232         modifiers.
9233
9234 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9235
9236         * reflection.h: add prototype for mono_get_dbnull_object
9237         * reflection.c: add prototypes for get_default_param_value_blobs 
9238         and mono_get_object_from_blob for fussier compilers
9239
9240 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9241  
9242         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9243         false deadlock checks in class initialization.
9244  
9245 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9246
9247         * image.c (mono_image_addref): Fix comment.
9248
9249         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9250         possible.
9251
9252 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9253
9254         * reflection.c (mono_param_get_objects): Modified to return
9255         ParameterInfo.DefaultValue object.
9256
9257         (get_default_param_value_blobs):
9258         (mono_get_object_from_blob):
9259         (mono_get_dbnull_object): New helper routines. 
9260
9261         * object.c (mono_get_constant_value_from_blob): New helper routine
9262         carved out from get_default_field_value ()
9263
9264         * object-internals.h (mono_get_constant_value_from_blob): Added
9265         function declaration.
9266
9267 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9268
9269         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9270         referenced assemblies. Fixes #62135.
9271
9272         * exception.h exception.c (mono_get_exception_file_not_found2): New
9273         helper function.
9274
9275 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9276
9277         * class.h class.c: Add mono_type_get_underlying_type ().
9278
9279 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9280
9281         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9282         Fix GetTypes() to support dynamically created assemblies.
9283
9284 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9285
9286         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9287         
9288         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9289         previous patch.
9290
9291         * reflection.h reflection.c loader.c: Allow dynamic construction of
9292         pinvoke methods. Fixes #65571.
9293         
9294         * reflection.c (mono_reflection_get_type): Revert previous change since
9295         it causes regressions.
9296
9297 2004-09-08  Martin Baulig  <martin@ximian.com>
9298
9299         * class.c (class_compute_field_layout): Don't call
9300         mono_class_layout_fields() for open generic instances.
9301
9302 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9303         * threads.c appdomain.c: fix typo in GC macro
9304
9305 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9306
9307         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9308         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9309
9310 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9311
9312         * image.c (mono_image_close): Applied patch from 
9313         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9314         assembly is loaded multiple times from data.
9315         
9316         * image.c (mono_image_open): Fix warning.
9317
9318 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9319
9320         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9321         once. Fixes #58334.
9322         
9323         * reflection.c (mono_reflection_create_runtime_class): Initialize
9324         klass->nested_classes. Fixes #61224.
9325
9326 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9327
9328         * threads.c: sched_yield() on exit, to allow threads to quit.
9329
9330 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9331
9332         * object.c (mono_unhandled_exception): Remove leftover debug code.
9333
9334 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9335
9336         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9337
9338 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9339
9340         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9341         
9342         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9343
9344 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9345
9346         * marshal.c (emit_marshal_array): Null terminate string arrays.
9347         
9348         * marshal.c (raise_auto_layout_exception): Fix warning.
9349
9350         * reflection.c (mono_param_get_objects): Initialize the default value
9351         with DBNull.Value, not null. Fixes #62123.
9352
9353 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9354
9355         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9356         throw an exception with a cute explanation.
9357
9358 2004-09-06  Dick Porter  <dick@ximian.com>
9359
9360         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9361         Close the new process's thread handle, as we don't use it.  The
9362         handle stays around forever otherwise.
9363
9364 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9365
9366         * object.c (arith_overflow): Fix warning.
9367
9368         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9369         calling conventions in method refs. Fixes #65352.
9370
9371         * reflection.c: Fix warnings.
9372
9373 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9374
9375         * icall.c: Add a new icall for Array.Clear
9376
9377 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9378
9379         * object.c: When allocating an array, we have to throw
9380         an overflow exception if any of the lengths are < 0.
9381
9382 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9383
9384         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9385         properly. Also move implementation of string array marshalling to 
9386         managed code. Fixes #42316.
9387
9388 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9389
9390         * assembly.c: provide more information when loading an assembly fails.
9391
9392 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9393
9394         * filewatcher.c: don't expect the development fam package to be
9395         installed.
9396
9397 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9398
9399         * marshal.c: Make a copy of the signature cookie since it will be
9400         freed by the caller.
9401         
9402         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9403
9404         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9405
9406         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9407         marshal specs.
9408
9409         * marshal.c: More refactoring.
9410         
9411         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9412         smaller functions.
9413
9414 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9415
9416         * object.c: In mono_message_invoke, fill the output parameter array after
9417           calling the managed method (it was done before the call). This fixes
9418           bug #59299.
9419
9420 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9421
9422         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9423         as well.
9424
9425 2004-09-02  Martin Baulig  <martin@ximian.com>
9426
9427         * class.c (mono_class_instance_size): Don't allow generic type
9428         definitions or open generic instances.
9429         (mono_class_array_element_size): If we're a value type, call
9430         mono_class_instance_size() on the original class.
9431
9432         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9433         handle generic instances.
9434
9435         * mono-debug-debugger.c (write_type): Handle generic instances
9436         like classes.
9437
9438 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9439
9440         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9441         the allocation request fails. Fixes #65089.
9442
9443         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9444         
9445         * object.c (mono_runtime_free_method): New function to free a dynamic
9446         method.
9447
9448         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9449         delegate trampoline.
9450
9451         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9452         with hasthis as dynamic,
9453
9454         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9455
9456         * domain.c (mono_jit_info_table_remove): New function to remove an
9457         entry from the jit info table.
9458
9459         * class-internals.h (MonoMethod): Add 'dynamic' field.
9460
9461         * loader.c: Fix warnings.
9462
9463 2004-09-01  Martin Baulig  <martin@ximian.com>
9464
9465         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9466         instead of mono_debugger_lock() because the latter one is a no-op
9467         unless running in the debugger.
9468
9469 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9470
9471         * class.c (class_compute_field_layout): Classes with auto-layout or
9472         reference fields are not blittable.
9473         
9474 2004-09-01  Dick Porter  <dick@ximian.com>
9475
9476         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9477         mono_image_get_filename() to get the assembly location.
9478
9479         * icall.c:
9480         * metadata.h: Fix compile warnings
9481
9482 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9483
9484         * class.c (class_compute_field_layout): System.Object is blittable.
9485
9486         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9487         as in/out. Fixes #59909.
9488
9489 2004-09-01  Martin Baulig  <martin@ximian.com>
9490
9491         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9492         mono_metadata_generic_inst_is_valuetype() if we're a generic
9493         instance to check whether our underlying type is a reference type.
9494
9495 2004-09-01  Martin Baulig  <martin@ximian.com>
9496
9497         * metadata.c (mono_type_size): If we're a generic instance, call
9498         mono_class_value_size() for value types.
9499
9500 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9501
9502         * marshal.c: Implement more custom marshalling functionality. Fixes
9503         #64915.
9504
9505 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9506
9507         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9508
9509 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9510
9511         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9512
9513         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9514
9515         * icall.c: Fix some warnings.
9516
9517         * threads.c (abort_appdomain_thread): Fix unref errors.
9518         (mono_thread_current): Fix THREAD_DEBUG define.
9519
9520 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9521
9522         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9523
9524         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9525
9526 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9527
9528         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9529         string arrays.
9530
9531 2004-08-28  Martin Baulig  <martin@ximian.com>
9532
9533         * metadata.c
9534         (mono_metadata_generic_inst_is_valuetype): New public function.
9535
9536         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9537         mono_metadata_generic_inst_is_valuetype() if we're a generic
9538         instance to check whether our underlying type is a valuetype.
9539
9540 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9541
9542         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9543         #63768.
9544
9545 2004-08-25  Martin Baulig  <martin@ximian.com>
9546
9547         * loader.c (mono_get_method_from_token): Abstract methods can also
9548         be generic and thus have type parameters.
9549
9550         * metadata-internals.h
9551         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9552
9553         * reflection.c (mono_image_get_generic_param_info): Don't create a
9554         metadata row, just add an entry to the `gen_params' array.
9555         (build_compressed_metadata): Sort the `gen_params' array and then
9556         actually create the metadata.
9557
9558 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9559
9560         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9561
9562 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9563
9564         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9565
9566 2004-08-24  Martin Baulig  <martin@ximian.com>
9567
9568         * class.cs (mono_class_is_subclass_of): Like an interface, a
9569         generic instance also derives from System.Object.
9570
9571 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9572
9573         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9574         custom modifiers to be in any order. Fixes #61990.
9575
9576 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9577
9578         * object.c: Register mono_object_new_fast icall.
9579         
9580         * object.c (mono_class_get_allocation_ftn): Return to calling
9581         mono_object_new_fast, since it seems faster to compute the object 
9582         size in unmanaged code than passing it as a parameter.
9583
9584         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9585
9586         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9587         this function with Boehm as the oom handler, so we don't have to check
9588         the result of GC_malloc.
9589
9590         * object.c: Remove checks for oom.
9591
9592         * object.h object.c (mono_class_get_allocation_ftn): New function to
9593         return the icall which can be used to allocate an instance of a given
9594         class. 
9595
9596         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9597
9598         * class-internals.h: Add 'enabled' field.
9599
9600 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9601
9602         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9603
9604 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9605         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9606         value 0x0010.
9607
9608 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9609
9610         * appdomain.c: use the Tls function for appdomain too,
9611         at Zoltan's request. Actually return in mono_context_get
9612
9613         * appdomain.c, profiler.c, threads.c: use __thread
9614
9615 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9616
9617         * appdomain.c threads.c: Call GC_CreateThread on windows.
9618
9619         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9620         multiple libraries since this don't work on windows.
9621
9622 2004-08-18  Martin Baulig  <martin@ximian.com>
9623
9624         * class-internals.h
9625         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9626         MonoMethodHeader.
9627
9628         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9629         MonoMethodNormal since we also need it for abstract and interface
9630         methods.
9631
9632         * reflection.c
9633         (build_compressed_metadata): Sort the GenericParam table.
9634         (mono_image_create_token): Added `gboolean create_methodspec'
9635         argument; this is false when generating a MethodImpl token.
9636         (reflection_methodbuilder_to_mono_method): Abstract and interface
9637         methods may also have generic parameters.
9638
9639 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9640
9641         * appdomain.c: thread local alloc
9642
9643 2004-08-17  Martin Baulig  <martin@ximian.com>
9644
9645         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9646
9647         * icall.c
9648         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9649         argument.
9650
9651         * class.c (mono_type_get_full_name): New public function.
9652         (mono_type_get_name): Don't include the type arguments.
9653
9654 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9655
9656         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9657         for inclusion into the mono executable.
9658
9659 2004-08-16  Martin Baulig  <martin@ximian.com>
9660
9661         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9662         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9663
9664 2004-08-14  Martin Baulig  <martin@ximian.com>
9665
9666         * class.c (dup_type): Also copy the `byref' field.
9667
9668 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9669
9670         * reflection.c (create_dynamic_mono_image): Revert the last change 
9671         since it breaks bootstrap.
9672
9673 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9674
9675         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9676
9677         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9678         not free them with g_free.
9679
9680 2004-08-11  Martin Baulig  <martin@ximian.com>
9681
9682         * reflection.c (mono_reflection_setup_internal_class): Also call
9683         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9684
9685 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9686
9687         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9688         called during default (first) AppDomain creation. Keep track of
9689         Evidence when loading assemblies.
9690
9691 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9692
9693         * opcodes.c, opcodes.h: reduce runtime relocations.
9694
9695 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9696
9697         * culture-info.h, locales.c: fixes and chages to sue the new
9698         optimized format of the locale data.
9699         * culture-info-tables.h: regenerated.
9700
9701 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9702         
9703         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9704
9705 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9706
9707         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9708         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9709         * domain-internals.h: icall declaration.
9710         * icall.c: icall registration.
9711         * object-internals.h: New fields in MonoAssembly for CAS.
9712
9713 2004-08-05  Duncan Mak  <duncan@ximian.com>
9714
9715         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9716         CEE_LDELEM_ANY.
9717
9718 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9719
9720         * reflection.c: fix to deal with object[] arrays in custom ctors
9721         (bug #62550).
9722
9723 2004-08-05  Martin Baulig  <martin@ximian.com>
9724
9725         * class.c (mono_class_array_element_size): Added support for
9726         generic instances and correctly handle "recursive" types.
9727
9728 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9729
9730         * assembly.c: Fix warnings.
9731
9732 2004-08-04  Martin Baulig  <martin@ximian.com>
9733
9734         * class.c
9735         (mono_type_get_name_recurse): Added `gboolean include_arity'
9736         argument specifying whether or not we should include the generic
9737         arity in the type name.
9738         (_mono_type_get_name): New static function.
9739         (mono_class_setup_vtable): If we're a generic instance, don't
9740         include the generic arity in the names of explicit method
9741         implementations.        
9742
9743 2004-08-03  Martin Baulig  <martin@ximian.com>
9744
9745         * class.c (mono_type_get_name_recurse): Enclose the generic type
9746         arguments in `<', '>'.
9747
9748 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9749
9750         * gc.c: make GC warning messages use the trace API, they are just
9751         noise to most of the users.
9752
9753 2004-08-03  Martin Baulig  <martin@ximian.com>
9754
9755         * debug-mono-symfile.c (read_string): Correctly read the string.
9756
9757 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9758
9759         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9760         
9761         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9762         icalls.
9763         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9764
9765 2004-07-30  Martin Baulig  <martin@ximian.com>
9766
9767         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9768         Reflect latest symbol writer changes.   
9769
9770 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9771
9772         * object.c: always create an object if null is passed
9773         to Invoke() where a valuetype is expected.
9774
9775 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9776
9777         * marshal.c (mono_marshal_init): make managed
9778         signatures match native ones better for 64bits.
9779
9780 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9781
9782         * appdomain.c: hack to build correctly the private bin path on windows.
9783         Fixes bug #61991.
9784
9785 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9786
9787         * assembly.c: Load mscorlib from the correct framework directory
9788           (mono/<version>/mscorlib.dll).
9789         * appdomain.h: Added prototypes for new functions.
9790         * internals.h: Added some prototypes.
9791         * domain.c: When initializing the runtime, get from the executable and
9792           the configuration files the runtime version that the app supports.
9793           Added support methods for reading app.exe.config. Added list of versions
9794           supported by the JIT. Added two new methods: mono_init_from_assembly,
9795           which initializes the runtime and determines the required version from
9796           the provided exe file, and mono_init_version, which initializes
9797           the runtime using the provided version.
9798         * icall.c: Get machine.config from version-specific directory.
9799         * reflection.c: When generating an image, embed the version number
9800           of the current runtime.
9801
9802 2004-07-28  Dick Porter  <dick@ximian.com>
9803
9804         * socket-io.c
9805         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9806         returned sockaddr size before creating the remote address object.
9807         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9808         61608.
9809
9810 2004-07-28  Dick Porter  <dick@ximian.com>
9811
9812         * locales.c (string_invariant_compare_char): Fix invariant char
9813         compares between upper and lower cases.  Fixes bug 61458.
9814
9815 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9816         
9817         * marshal.c: actually cache stelem.ref wrappers.
9818         
9819 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9820
9821         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9822         sections and remove the mono_cli_rva_map () function.
9823
9824 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9825
9826         * debug-mono-symfile.c: fix one more endianess issue, from a patch
9827         by Geoff Norton (<gnorton@customerdna.com>).
9828
9829 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9830
9831         * class.c: fix class loads for pointer types (typeof(int) !=
9832         typeof(int*)).
9833
9834 2004-07-27  Martin Baulig  <martin@ximian.com>
9835
9836         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
9837         reading the debugging information from an external ".mdb" file.
9838
9839 2004-07-24  Martin Baulig  <martin@ximian.com>
9840
9841         * reflection.c (mono_image_get_type_info): Only write a class
9842         layout entry if we actually have a size or a packing size.
9843
9844 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9845
9846         * reflection.c (type_get_fully_qualified_name): 
9847         insert cast to get type checking of ?: with non-gcc compilers
9848
9849 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
9850
9851         * rand.c: use g_getenv for both lookups of
9852         MONO_EGD_SOCKET
9853
9854 2004-07-17  Martin Baulig  <martin@ximian.com>
9855
9856         * reflection.c (mono_reflection_bind_generic_method_parameters):
9857         Set `gmethod->reflection_info'.
9858
9859 2004-07-17  Martin Baulig  <martin@ximian.com>
9860
9861         * class.c (mono_class_create_from_typedef): Insert the newly
9862         created class into the hash table before computing the interfaces
9863         since we could be called recursively.
9864
9865 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
9866
9867         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
9868         function to implement stelem.ref in managed code
9869         * class-internals.h, debug-helpers.c: a new wrapper type
9870         for the above.
9871
9872 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9873
9874         * gc.c: allow GC handles to work even when no GC is compiled in.
9875         Fix part of bug #61134 (GetAddrOfPinnedObject).
9876
9877 2004-07-13  Peter Williams  <peter@newton.cx>
9878  
9879         * process.c (complete_path): Make sure we don't attempt to execute
9880         directories.
9881  
9882 2004-07-12  Geoff Norton <gnorton@customerdna.com>
9883
9884         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
9885           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
9886           and will add/subtract the hour if needed
9887
9888 2004-07-12  Martin Baulig  <martin@ximian.com>
9889
9890         * reflection.c (mono_field_get_object): If we have
9891         `field->generic_info', take the attributes from
9892         `field->generic_info->generic_type'.    
9893
9894 2004-07-12  Martin Baulig  <martin@ximian.com>
9895
9896         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
9897         This function must be called before initializing the runtime.
9898         (mono_debug_init_1): New function; call this after initializing
9899         the runtime, but before loading the assembly.  It tells the
9900         debugger to load corlib and the builtin types.
9901
9902         * mono-debug-debugger.c: Did some larger changes in the debugging
9903         code; support recursive class declarations, make sure we actually
9904         add all classes.
9905
9906 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9907
9908         * debug-helpers.c: undo my previous patch and fixed the real issue in
9909         ../mini/exceptions-x86.c
9910
9911 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9912
9913         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
9914         when no HOME env. variable was set and a NullRef was thrown in a .cctor
9915         called from other .cctors.
9916
9917 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
9918
9919         * loader.c: Removed the mono_loader_wine_init hack now that we are
9920         doing a managed version of Windows.Forms.
9921
9922 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
9923
9924         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
9925         threadpool.c, threads.c: remove static data from rootset.
9926
9927 2004-07-09  Dick Porter  <dick@ximian.com>
9928
9929         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
9930         Don't do any more processing if the matched length was 0.  It was
9931         increasing the size of the string before.  Fixes bug 61167.
9932
9933 2004-07-09  Dick Porter  <dick@ximian.com>
9934
9935         * socket-io.h:
9936         * socket-io.c
9937         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9938         Add support for SO_PEERCRED if its available.
9939
9940 2004-07-09  Peter Bartok <pbartok@novell.com>
9941         * loader.c: winelib.exe.so error message is now only displayed if
9942         MONO_DEBUG is set. To help us avoid questions when people are trying
9943         out the new Managed.Windows.Forms.
9944
9945 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
9946
9947         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
9948         for isinst and castclass wrappers.
9949
9950         * class-internals.h icall.c: Move registration and lookup of JIT icalls
9951         to libmetadata from the JIT, so they could be used by the marshalling
9952         code and the interpreter.
9953
9954         * marshal.c: Register marshalling related JIT icalls here instead of
9955         in mini.c. Use CEE_MONO_ICALL instead of the family of 
9956         CEE_MONO_PROC<x> opcodes to call marshalling functions.
9957
9958         * metadata.h: Remove unneeded marshalling conversions.
9959
9960         * opcodes.c: Update for new opcodes.
9961         
9962 2004-07-08  Martin Baulig  <martin@ximian.com>
9963
9964         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
9965         (mono_debug_get_domain_data): Make this function static.
9966
9967 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
9968
9969         * gc.c, object.h: add nice GC handle API for embedders.
9970
9971 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
9972
9973         * reflection.c: more changes for the new api
9974
9975         * object.c: When we reflect on a field w/ a constant value, it
9976         will not have a memory location, so we must access metadata. Also,
9977         allow easier reading of strings so that we can read them from
9978         the constant data.
9979
9980         * class.c (mono_class_layout_fields): no need for literal fields here.
9981
9982         * class-internals.h: api changes for const fields
9983
9984         * icall.c (ves_icall_get_enum_info): use new apis for const fields
9985
9986 2004-07-06  Martin Baulig  <martin@ximian.com>
9987
9988         * mono-debug.h: Increment version number to 44.
9989
9990         * mono-debug.c (mono_debug_add_wrapper): The second argument is
9991         now a gpointer, rewrote this whole method.
9992
9993         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
9994         function.  Add information about the wrapper in a new "misc table".
9995
9996         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
9997         for the new misc table.
9998
9999 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
10000
10001         * metadata-internals.h image.c: Add a cache for helper signatures.
10002
10003         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10004
10005 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
10006
10007         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10008         delegates from a delegate. Fixes #61033.
10009         
10010         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10011         marshalling of stringbuilder arrays. Fixes #59900.
10012
10013 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
10014
10015         * icall.c: Add EnumBuilder:setup_enum_type icall.
10016
10017 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
10018
10019         * icall.c: Added a new icall for the property version of
10020         OffsetOfStringData.
10021
10022 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
10023
10024         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10025         it has a constant size across platforms.
10026
10027         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10028         stack trace.
10029
10030 2004-06-29  Martin Baulig  <martin@ximian.com>
10031
10032         * mono-debug.c (mono_debug_add_method): Protect the whole function
10033         in mono_debugger_lock(), not just parts of it.
10034
10035 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10036
10037         * reflection.c: make sure padding bytes in heaps are zeroed.
10038
10039 2004-06-24  David Waite  <mass@akuma.org>
10040
10041         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10042         image.c, loader.c, locales.c, marshal.c, metadata.c,
10043         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10044         string-icalls.c, threads.c: change to C90-style comments from C99 /
10045         C++ -style
10046
10047 2004-06-24  Dick Porter  <dick@ximian.com>
10048
10049         * threads.c
10050         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10051         return createdNew.  Fixes bug 60412.
10052
10053         * threads-types.h: 
10054         * icall.c: Add createdNew parameter to CreateMutex icall
10055
10056 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10057
10058         * reflection.c, object-internals.h: save default value in params.
10059
10060 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10061
10062         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10063         no need to build a new path combining that with the application base.
10064         Fixes bug #60442.
10065
10066 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10067
10068         * reflection.c: fixed minor standard compliance issues.
10069
10070 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10071
10072         * reflection.c: fixed issue with encoding some custom attributes
10073         (arrays in properties and fields, bug #60411).
10074
10075 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10076
10077         * reflection.c: fix start address when copying the public key token.
10078
10079 2004-06-23  Martin Baulig  <martin@ximian.com>
10080
10081         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10082         the `exc' object in a static object to put it into the GC's root set.
10083
10084 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10085
10086         * reflection.c: make mono_reflection_setup_internal_class ()
10087         callable a second time to setup a new parent class.
10088
10089 2004-06-23  Dick Porter  <dick@ximian.com>
10090
10091         * threads.c: Check for WAIT_IO_COMPLETION return values.
10092
10093 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10094
10095         * appdomain.c: Removed the g_free on the public key token. Now copy 
10096         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10097         * assembly.c: Added public key token string value when loading 
10098         assemblies. Fix bug #60439.
10099         * icall.c: Added missing informations (like public key) in 
10100         GetReferencedAssemblies. Fix #60519.
10101         * image.h: Changed definition for public key token from const char*
10102         public_tok_value to guchar public_key_token [17];
10103         * reflection.c: Updated for changes to public key token.
10104
10105 2004-06-22  Lluis Sanchez Gual
10106
10107         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10108         for the field in base classes.
10109
10110 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10111
10112         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10113         mark headers as not supported, they are installed only for use by the
10114         debugger.
10115
10116 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10117
10118         * *.c, *.h: avoid namespace pollution in public headers.
10119
10120 2004-06-21  Martin Baulig  <martin@ximian.com>
10121
10122         * exception.c (mono_get_exception_security): It's in
10123         "System.Security", not in "System".
10124
10125         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10126         the exception classes.
10127
10128 2004-06-21  Martin Baulig  <martin@ximian.com>
10129
10130         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10131         Protect the exception object from being finalized.
10132
10133 2004-06-21  Martin Baulig  <martin@ximian.com>
10134
10135         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10136         public function.
10137
10138 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10139
10140         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10141         if it was not loaded before. Fix parts of #60439.
10142
10143 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10144
10145         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10146         code that was broken since Ben's change: wrappers are now
10147         dependent on the method signature only again.
10148
10149 2004-06-21  Martin Baulig  <martin@ximian.com>
10150
10151         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10152         added interface support.
10153
10154 2004-06-21  Martin Baulig  <martin@ximian.com>
10155
10156         * class.c (mono_vtable_get_static_field_data): New public method.
10157
10158 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10159
10160         * filewatcher.c : Windows build fix to be compliant with API changes.
10161
10162 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10163
10164         * class.h, class.c: more accessors.
10165         * metadata.h, metadata.c: prepare for hiding MonoType and
10166         MonoMethodSignature: people should use the accessors from now on
10167         outside of the tree.
10168
10169 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10170
10171         * *.c, *.h: more API cleanups.
10172
10173 2004-06-18  Jackson Harper  <jackson@ximian.com>
10174
10175         * assembly.c: Trace loading assemblies.
10176         * loader.c: Trace loading native libraries.
10177         * mono-config.c: Trace loading config files.
10178         
10179 2004-06-18  Dick Porter  <dick@ximian.com>
10180
10181         * locales.c: Tell ICU the lengths of strings, it can cope with
10182         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10183
10184 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10185
10186         * image.c: swapped name/filename;
10187
10188 2004-06-18  Martin Baulig  <martin@ximian.com>
10189
10190         * mono-debug-debugger.c (write_class): Write the parent class at
10191         the end of the header.
10192
10193 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10194
10195         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10196
10197 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10198
10199         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10200         (bundle_obj): New conditional define.
10201         (BUILT_SOURCES): Remove.
10202         ($(bundle_srcs)): Make parallel-make safe.
10203         (libmonoruntime_la_LIBADD): Make unconditional.
10204         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10205         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10206
10207 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10208
10209         * culture-info-tables.h: It was inconsistent with the latest
10210           supp info files.
10211
10212 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10213
10214         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10215         be loaded.
10216
10217         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10218         with gcc 2.95.
10219
10220 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10221
10222         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10223         cleaned up public header threads.h.
10224
10225 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10226
10227         * Makefile.am, *.c, *.h: more API cleanups.
10228
10229 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10230
10231         * Makefile.am: removed monosn from compilation.
10232         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10233         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10234         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10235         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10236         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10237         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10238
10239 2004-06-15  Jackson Harper  <jackson@ximian.com>
10240
10241         * assembly.c: Make locales lower case when searching the GAC for
10242         assemblies. gacutil will always make locales lowercase when
10243         installing so this effectively makes them case insensitive.
10244         
10245 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10246
10247         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10248         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10249           parameter which allows to choose whether the wait can be interrupted or 
10250           not. Also added the method mono_monitor_enter(), which locks the monitor
10251           using an infinite wait and without allowing interruption.
10252           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10253           interrupted.
10254         * object.h: Added new fields in MonoThread. suspend_event holds the event
10255           used to susped/resume the thread. synch_lock is the lock object to use for
10256           modifying the thread state.
10257         * threads.c: Use the new synch_lock object for locking, instead of "this",
10258           which can generate deadlocks.
10259           Moved thread state change in Thread.Sleep and Thread.Join from managed
10260           to unmanaged code. This avoids a deadlock when the thread was suspended
10261           just after acquiring the thread lock.
10262           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10263           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10264           which is not fully implemented in the io-layer.
10265         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10266
10267 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10268
10269         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10270         threads-types.h: more API cleanups.
10271
10272 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10273
10274         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10275         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10276         threadpool.c, threads.c: first pass at the exported API cleanup.
10277
10278 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10279
10280         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10281
10282 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10283
10284         * icall.c: added internalGetHome.
10285
10286 2004-06-14  Dick Porter  <dick@ximian.com>
10287
10288         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10289         possible to return successfully when '.' or '..' were the only
10290         entries in a directory, but were skipped.  The MonoIOStat was not
10291         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10292         Fixes bug 59574.
10293
10294 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10295
10296         * reflection.c: make binaries run on .Net 1.1 by default.
10297
10298 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10299
10300         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10301
10302 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10303
10304         * marshal.c: keep track of struct size with explicit layout
10305         (bug #59979).
10306
10307 2004-06-12  Martin Baulig  <martin@ximian.com>
10308
10309         * mono-debug-debugger.c: Comment out a debugging g_message().
10310
10311 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10312
10313         * reflection.c, reflection.h: do not free custom attrs that are cached.
10314         * icall.c: use braces to make code clearer.
10315
10316 2004-06-11  Martin Baulig  <martin@ximian.com>
10317
10318         * class.h (MonoInflatedField): New type.
10319         (MonoClassField): Replaced `MonoType *generic_type' with
10320         `MonoInflatedField *generic_info'.
10321
10322         * icall.c
10323         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10324
10325 2004-06-11  Martin Baulig  <martin@ximian.com>
10326
10327         * reflection.c (mono_image_create_method_token): Correctly encode
10328         varargs methods.
10329
10330 2004-06-11  Martin Baulig  <martin@ximian.com>
10331
10332         * metadata.c (mono_metadata_parse_method_signature): When parsing
10333         a MethodDef which has VarArgs, also set sentinelpos if we don't
10334         have any parameters.
10335
10336 2004-06-11  Martin Baulig  <martin@ximian.com>
10337
10338         * verify.c (mono_method_verify): In CEE_CALL, use
10339         mono_method_get_signature() to get the method's signature, unless
10340         we're a PInvoke method.
10341
10342 2004-06-10  Jackson Harper  <jackson@ximian.com>
10343
10344         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10345         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10346         logical name as the supplied path is just a prefix to the gac not
10347         the direct path to it.
10348         
10349 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10350
10351         * reflection.c: make the token for a created method match
10352         the token of the MethodBuilder it was created from
10353         (IKVM requires this behaviour now).
10354
10355 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10356
10357         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10358         reflection.c, socket-io.c: leak fixes.
10359
10360 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10361
10362         * icall.c: handle sentinel pos in vararg methods in position different
10363         from 0.
10364
10365 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10366
10367         * culture-info-tables.h: freshly generated.
10368
10369 2004-06-09  Martin Baulig  <martin@ximian.com>
10370
10371         * loader.c (mono_get_method_constrained): Call `mono_class_init
10372         (constrained_class)'.   
10373
10374 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10375
10376         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10377         any methods. Fixes #59629.
10378
10379 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10380
10381         * culture-info-tables.h: reflecting locale-builder updates.
10382
10383 2004-06-08  Dick Porter  <dick@ximian.com>
10384
10385         * object.h:
10386         * locales.c: Fixed compile warnings, including a real bug in
10387         CompareInfo_internal_compare.
10388         
10389 2004-06-08  Dick Porter  <dick@ximian.com>
10390
10391         * locales.c
10392         (ves_icall_System_Globalization_CompareInfo_internal_index):
10393         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10394         Double-check the resuls of usearches, because ICU currently
10395         ignores most of the collator settings here.  Fixes bug 59720.
10396         
10397 2004-06-08  Dick Porter  <dick@ximian.com>
10398
10399         * locales.c
10400         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10401         Fix memory leak and segfault-causing typo.  No idea how this one
10402         lasted so long without being noticed.
10403
10404 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10405
10406         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10407         any methods. Fixes #59629.
10408
10409 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10410
10411         * assembly.c:
10412         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10413         own the critical section before). Removed dead code (that's done
10414         in the preload hook).
10415
10416         (mono_assembly_load_with_partial_name): call the preload hook.
10417
10418 2004-06-08  Martin Baulig  <martin@ximian.com>
10419
10420         * metadata.c (mono_metadata_signature_alloc): Default
10421         `sentinelpos' to -1.
10422
10423         * reflection.c (mono_image_get_array_token): Likewise.
10424
10425 2004-06-08  Martin Baulig  <martin@ximian.com>
10426
10427         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10428
10429         * metadata.c (mono_metadata_parse_method_signature): When parsing
10430         a MethodDef which has VarArgs, set sentinelpos.
10431
10432         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10433         `gint16' since we're using -1 for non-varargs methods.
10434
10435         * reflection.c
10436         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10437         (method_encode_signature): Added varargs support.
10438         (method_builder_encode_signature): Likewise.
10439         (mono_image_get_varargs_method_token): New static method.
10440         (mono_image_create_method_token): New public method; this is
10441         called via an icall instead of mono_image_create_token() when
10442         calling a varargs method.       
10443
10444 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10445
10446         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10447
10448 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10449
10450         * culture-info-tables.h : Reflecting the latest locale-builder that
10451           fixed empty array representation ({} to {0}).
10452
10453 2004-06-07  Jackson Harper  <jackson@ximian.com>
10454
10455         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10456         looking up extra gac paths. This allows MONO_GAC_PATH to act
10457         exactly like a prefix.
10458         
10459 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10460
10461         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10462         type name before modifying it. Fixes #59405.
10463
10464 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10465
10466         * culture-info.h: added fields for "all datetime patterns".
10467         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10468           _construct_datetime_format ()): fill xxx_patterns fields.
10469         * object.h: added fields for "all datetime patterns" to
10470           MonoDateTimeFormatInfo.
10471         * culture-info-tables.h: reflecting locale-builder updates.
10472
10473 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10474
10475         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10476         the event has no add and remove methods. Fixes #59629.
10477
10478 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10479
10480         * object.c: Fixed possible integer overflow when allocating large
10481         strings.
10482
10483 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10484
10485         * culture-info-tables.h: reflecting locale-builder updates.
10486
10487 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10488
10489         * culture-info-tables.h: reflecting locale-builder updates.
10490
10491 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10492
10493         * culture-info-tables.h: reflecting locale-builder updates.
10494
10495 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10496
10497         * threads.c: Made Thread.Sleep abortable.
10498
10499 2004-06-02  Martin Baulig  <martin@ximian.com>
10500
10501         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10502
10503         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10504
10505 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10506
10507         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10508
10509 2004-05-30  Jackson Harper  <jackson@ximian.com>
10510
10511         * reflection.c: Do not hardcode assembly versions or public key
10512         tokens anymore. All of this except the corlib section was dead
10513         code anyways.
10514         
10515 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10516
10517         * object.c (mono_runtime_invoke_array): Automatically create boxed
10518         objects for byref valuetypes if needed. Fixes #59300.
10519         
10520         * object.c (mono_method_return_message_restore): Handle 
10521         MONO_TYPE_OBJECT as well.
10522
10523 2004-05-28  Jackson Harper  <jackson@ximian.com>
10524
10525         * reflection.c: The modified type encoding was causing build
10526         problems. Reverted for now.
10527         
10528 2004-05-28  Jackson Harper  <jackson@ximian.com>
10529
10530         * reflection.c/h: Take an assembly ref so that we dont create
10531         fully qualified names when encoding types in the same assembly as
10532         the custom attribute being emitted.
10533         * appdomain.c: Increment version number.
10534         
10535 2004-05-26  Duncan Mak  <duncan@ximian.com>
10536
10537         * icall.c
10538         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10539         Set the full version number (major, minor, build, revision).
10540
10541 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10542
10543         * marshal.c (emit_struct_conv): increment src/dst after blit
10544         (mono_marshal_get_managed_wrapper,
10545         mono_marshal_get_native_wrapper): make sure we have marshalling
10546         info before marshalling params (info computation affects
10547         blittable)
10548
10549         * class.c (class_compute_field_layout): correctly deal with
10550         blittable
10551         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10552         value types (as per what windows dows by default)
10553         (mono_class_setup_mono_type): System.ValueType is blittable
10554         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10555         blittable
10556
10557         * marshal.c (mono_marshal_load_type_info): flag types  as
10558         non-blittable if the native layout doesn't match the managed
10559         layout
10560
10561 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10562
10563         * appdomain.c: don't add stuff in the private search path that is
10564         above the application base. If application base is not set, there's
10565         no private search path.
10566
10567 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10568
10569         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10570         byref struct arguments in native->managed marshalling.
10571
10572 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10573
10574         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10575         cache methods using signature (special case for methods
10576         that are value type or string class)
10577         
10578         * image.c (mono_image_close): clean up allocated GSList's
10579         in runtime_invoke_cache.
10580
10581 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10582
10583         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10584         there's no MONO_CFG_DIR environment variable defined.
10585
10586 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10587
10588         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10589
10590 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10591
10592         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10593           is interrumped.
10594         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10595           before waiting for it, and call CloseHandle after the wait to unref it.
10596           This will make sure that handles are not disposed too early.
10597
10598 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10599
10600         * appdomain.c:
10601         * appdomain.h:
10602         * icall.c: removed
10603         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10604         needed now.
10605
10606         * object.c: se the application_base only for the domain that runs
10607         Main. Fixes bug #59216,
10608
10609 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10610
10611         * appdomain.c:
10612         * object.c: only the domain in which Main is run have
10613         SetupInformation.ConfigurationFile set, so moved a few lines from
10614         appdomain.c to object.c.
10615
10616 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10617
10618         * appdomain.c: we tried to load [name].(dll|exe), but according
10619         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10620         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10621         There's a test case attached to bug #58922.
10622
10623 2004-05-27  Dick Porter  <dick@ximian.com>
10624
10625         * icall.c:
10626         * file-io.c: Implemented icalls for locking and unlocking regions
10627         in a file.
10628         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10629         FALSE on error (fixes both compiler warning and real bug.)
10630
10631 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10632
10633         * culture-info-tables.h: reflecting locale-builder updates.
10634
10635           (Added missing ChangeLog entry for 05/26)
10636
10637 2004-05-27  Jackson Harper  <jackson@ximian.com>
10638
10639         * locales.c: Fix some cut and paste errors.
10640         
10641 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10642
10643         * mono-config.c: set the correct path for config. directory on windows.
10644
10645 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10646
10647         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10648           on win32.
10649
10650 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10651
10652         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10653         from pinvoke functions.
10654         
10655         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10656
10657 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10658
10659         * culture-info-tables.h: reflecting locale-builder updates.
10660
10661 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10662
10663         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10664         #59086.
10665
10666 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10667
10668         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10669         * icall.c: Modified icalls for RNG.
10670         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10671         Windows (CryptoAPI).
10672
10673 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10674
10675         * locales.c: Fix build.
10676
10677 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10678
10679         * culture-info-tables.h: reflecting locale-builder updates.
10680
10681 2004-05-25  Jackson Harper  <jackson@ximian.com>
10682
10683         * locales.c: When creating the current culture use the $LANGs
10684         specific culture. So DateTimeFormat and NumberFormat entries are created.
10685         
10686 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10687
10688         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10689         a char array as parameter.
10690
10691 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10692
10693         * image.c: In mono_image_open(), always use an absolute path name to
10694           look for already loaded images.
10695
10696 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10697
10698         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10699         missing in the windows build (like older cygwin include files).
10700
10701 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10702
10703         * icall.c: Fixed check for possible integer overflow in Buffer_
10704         BlockCopy icall. Replaced comments style // by /* */.
10705
10706 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10707
10708         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10709         
10710         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10711         check after MONO_VTADDR. Fixes pinvoke2.exe.
10712
10713         * marshal.h marshal.c metadata.h: Add beginnings of support for
10714         ftnptr -> delegate marshalling.
10715
10716 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10717
10718         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10719         * threads.c: Fix warnings.
10720
10721 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10722
10723         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10724         * icall.c: Registered icalls for Suspend and Resume.
10725         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10726           Thread.Abort.
10727         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10728         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10729         * process.c: Use WaitForSingleObjectEx.
10730         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10731           checkpoints.
10732         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10733           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10734           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10735           background threads. Added basic support for Abort in Windows.
10736           Start new threads using a managed delegate invoke wrapper. This wrapper
10737           has an interruption checkpoint that is needed since an interruption
10738           can be requested before the thread leaves the unmanaged code that starts 
10739           the thread.
10740         * marshal.c: Added interruption checkpoint after every native call, and
10741           also before managed calls for wrappers called from unmanaged code to
10742           go into managed code.
10743         * object.h: Added new field in MonoThread to keep track of interruption
10744           requests.
10745
10746 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10747
10748         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10749         calls.
10750
10751 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10752
10753         * appdomain.c:
10754         * assembly.c:
10755         * gc.c:
10756         * locales.c:
10757         * mono-config.c:
10758         * rand.c: getenv -> g_getenv (windows!)
10759
10760         * process.c: complete_path is also used on non-windows platforms.
10761
10762 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10763
10764         * icall.c: new signature for Process_Start.
10765
10766         * process.[ch]: new signature for Process_Start. If we're on windows
10767         and UseShellExecute is false, we have to search for the program by
10768         ourselves if we don't get a full path.
10769
10770 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10771
10772         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10773         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10774
10775 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10776
10777         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10778         Fixes bug #58373.
10779
10780 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10781
10782         * process.c: use double quotes to quote program name and arguments on
10783         windows. Fixes bug #58575.
10784
10785 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10786
10787         * file-io.c: don't return "." and ".." when using windows Find*File.
10788
10789 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10790
10791         * marshal.c: Don't pass wrappers to message init because method 
10792         addressed used to lookup metadata. part of remoting[2|3] fix.
10793
10794 2004-05-15  Jackson Harper  <jackson@ximian.com>
10795
10796         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10797         path is essentially the same as MONO_PATH except that it points to
10798         GACs instead of lib directories.
10799         * loader.h: The user gac is gone so we dont need function to
10800         enable/disable it.
10801         * mono-config.c: user gac option is now gone.
10802         
10803 2004-05-15  Jackson Harper  <jackson@ximian.com>
10804
10805         * culture-info.h: Make defines more consistent, add calendar data
10806         to the culture info table.
10807         * culture-info-tables.h: Add basic calendar data. Basically
10808         everyone gets default gregorian until all the data is
10809         updated.
10810         * locales.c: Use the new consistent defines. Set calendar data for
10811         culture info objects.
10812         * object.h: add a field for calendar data to CultureInfo
10813         
10814 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10815
10816         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10817         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10818         a signature.
10819         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10820         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10821         an extra param that is the pointer of the method to invoke. The IL for
10822         the invoke method is no longer specific to the method, but to the
10823         signature of the method. Thus, we can share the same code for multiple
10824         methods. This reduces the number of methods that have to be compiled.
10825
10826 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
10827
10828         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
10829
10830         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10831
10832         * icall.c: Optimize Buffer.BlockCopy.
10833
10834 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10835
10836         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
10837         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
10838         quote). Changed them to "MMMM yyyy".
10839
10840 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
10841
10842         * rand.c
10843         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
10844
10845 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
10846
10847         * reflection.h: Updated after changes to managed structures.
10848
10849         * appdomain.c: Bump corlib version.
10850
10851 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10852
10853         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
10854         windows.
10855
10856 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10857
10858         * Makefile.am: link to ../os/libmonoos.la on windows.
10859
10860         * assembly.c:
10861                 -If MONO_DEBUG, warn about non-existing directories in
10862                 MONO_PATH.
10863                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
10864                 compile time variable.
10865                 -Removed init_default_path and call mono_set_rootdir from
10866                 libmonoos.a instead (windows only).
10867
10868         * assembly.h: declare mono_assembly_getrootdir().
10869
10870         * domain.c:
10871         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
10872
10873         * loader.c: s/getenv/g_getenv/
10874
10875 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
10876
10877         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
10878
10879         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
10880
10881         * metadata.h: Add new marshalling conversions.
10882
10883         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
10884         function.
10885
10886         * reflection.c (mono_reflection_get_type): Lookup the type in all
10887         modules of a multi-module assembly. Fixes #58291.
10888
10889 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
10890
10891         * threads.c: Before aborting a background, set the StopRequested
10892         state.  This avoids throwing the Abort exception.
10893         In mono_thread_manage, don't continue with the shutdown until all
10894         aborted threads have actually stopped.
10895
10896 2004-05-10  Jackson Harper  <jackson@ximian.com>
10897
10898         * locales.c: Remove the modifier from culture names.
10899         
10900 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10901
10902         * Makefile.am: monosn is not installed any more. It has been deprecated
10903         in favor of sn.
10904
10905 2004-05-07  Jackson Harper  <jackson@ximian.com>
10906
10907         * locales.c
10908         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
10909         Fix array construction, add bailout if the length is 0.
10910
10911 2004-05-07  Dick Porter  <dick@ximian.com>
10912
10913         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
10914         machine doesn't have a DNS entry.  Patch by Urs Muff
10915         (umuff@quark.com), fixes bug 57928.
10916
10917 2004-05-06  Jackson Harper  <jackson@ximian.com>
10918
10919         * reflection.c: Handle null PublicTokens properly. alloc mem for
10920         assembly names culture so we dont crash when freeing it.
10921         
10922 2004-05-06  Jackson Harper  <jackson@ximian.com>
10923
10924         * assembly.c: Check the usergac when loading with partial names.
10925         
10926 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10927
10928         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
10929         does nothing for now (not required for Linux/Windows) but the class
10930         library can call it (and a newer or modified runtime could need it).
10931         * icall.c: Registred icall.
10932
10933 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10934
10935         * loader.c: prints a message on module loading error we set MONO_DEBUG
10936         environment variable.
10937
10938 2004-05-05  Jackson Harper  <jackson@ximian.com>
10939
10940         * appdomain.c: Handle PublicKeyToken=null properly.
10941         
10942 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
10943
10944         * environment.c|h: Added icall ves_icall_System_Environment_
10945         GetOSVersionString to get the current OS version as a string.
10946         * icall.c: Registred icall.
10947
10948 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
10949
10950         * object.c: in mono_object_get_virtual_method(), take into account that
10951         non-virtual methods don't have a slot in the vtable. Check needed when
10952         the object is a proxy.
10953
10954 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
10955
10956         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
10957         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
10958
10959         * object.c (mono_class_compute_gc_descriptor): Fix warning.
10960
10961         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
10962         passed when a valuetype is expected.
10963
10964         * object.c (mono_unhandled_exception): Only set the exit code if the
10965         exception happens in the main thread. Fixes thread5.exe.
10966
10967         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
10968         invalid names. Fixes #58047.
10969
10970 2004-05-03  Jackson Harper  <jackson@ximian.com>
10971
10972         * assembly.c: This line was committed accidently and is unneeded.
10973         
10974 2004-05-03  Jackson Harper  <jackson@ximian.com>
10975
10976         * icall.c: Add new icall for Assembly::LoadWithPartialName
10977         * assembly.c/.h: new function that probes the GAC to load partial
10978         assembly names by Paolo Molaro.
10979         
10980 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10981
10982         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
10983         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
10984         (type_get_fully_qualified_name): Added PublicKeyToken when building a
10985         full type name.
10986
10987 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10988
10989         * appdomain.c: fixed check for 'neutral' culture and removed warning.
10990         * reflection.c: fix bug when parsing a full type name and Version is not
10991         the last thing in the string.
10992
10993 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
10994
10995         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
10996         crashes when it is freed.
10997
10998 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10999
11000         * assembly.c: print the compat warning to stderr.
11001
11002 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
11003
11004         * assembly.c (mono_assembly_load_references): Add a compatibility
11005         hack to run old applications that might be still referencing the
11006         3300-based assemblies, only do this for System.xxx.
11007
11008 2004-05-01  Jackson Harper  <jackson@ximian.com>
11009
11010         * appdomain.c: If the culture is neutral we set it to "".
11011         
11012 2004-04-29  Jackson Harper  <jackson@ximian.com>
11013
11014         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11015
11016 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11017  
11018         * string-icalls.c: added low overhead function for copying chars
11019         * icall.c: added needed icall for the above function
11020  
11021 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11022
11023         * icall.c: fix return value of get_global_assembly_cache.  Implemented
11024         Environment.GetLogicalDrives.
11025
11026 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
11027
11028         * rand.c: try and talk to egd or prngd
11029         for random bytes if opening devices fail.
11030
11031 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
11032
11033         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11034         alignment for the type using the native alignment of its members 
11035         instead of using klass->min_align.
11036
11037         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11038
11039 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11040
11041         * file-io.c:
11042         * socket-io.c: added check for sys/aio.h.
11043
11044 2004-04-28  Dick Porter  <dick@ximian.com>
11045
11046         * threads.c: Don't abort a thread thats already aborting, when
11047         terminating everything.
11048
11049 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11050
11051         * icall.c: added 2 new async calls for Socket.
11052
11053         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11054         IO on *nix systems.
11055
11056         * threadpool.c: removed unused variable.
11057
11058 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
11059
11060         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11061
11062 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11063
11064         * locales.c: put back string_invariant_tolower () and
11065         string_invariant_toupper ().
11066
11067 2004-04-26 David Waite <mass@akuma.org>
11068
11069         * file-io.h:
11070         * socket-io.h:
11071         * threads.h:
11072         * unicode.h: remove comma from end of enumeration declarations
11073
11074 2004-04-26 David Waite <mass@akuma.org>
11075
11076         * debug-mono-symfile.h:
11077         * decimal.c:
11078         * mono_debug.h:
11079         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11080
11081
11082 2004-04-26  Jackson Harper  <jackson@ximian.com>
11083
11084         * appdomain.c: Increment version number.
11085         
11086 2004-04-26  Jackson Harper  <jackson@ximian.com>
11087
11088         * appdomain.c: Set assembly references public token value when
11089         PublicKeyToken is specified, not the hash_value. Free public token
11090         values when free assembly name data. Previously the public key
11091         token was hex decoded, however we are using hex encoded public key
11092         tokens, so this is not neccasary.
11093         * assembly.c: Lookup assemblies in the gac if their public token
11094         value is set. Add function to allow enabling user gac
11095         lookups. Specify whether or not the assembly was loaded from the
11096         GAC. Compare full assembly names when checking the cache for
11097         assemblies (Temporarily disabled see comment in code). Remove
11098         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11099         specifies trace-loader they get extra info to stdout on the
11100         loading of assemblies.
11101         * image.h: Add a field for an assembly references public token
11102         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11103         whether an assembly has been loaded from the GAC.
11104         * image.c: Remove a corlib -> mscorlib name mapping.
11105         * loader.h: Add function to enable/disable the user gac.
11106         * mono-config.c: Check if the usergac is enabled in the config
11107         file.
11108         * icall.c: New icall to determine whether or not an assembly has
11109         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11110         * tabldefs.h: Add constant for assemblyref flag that specifies a
11111         full public key is used instead of a public token.
11112         * reflection.c: Remove mscorlib -> corlib mappings. Set
11113         PublicTokenValue instead of hash value. This value is a hex
11114         string so it does not need to be expanded.
11115
11116 2004-04-26  Martin Baulig  <martin@ximian.com>
11117
11118         * mono-debug-debugger.c (mono_debugger_initialize): Set
11119         `mono_debugger_initialized' before calling mono_debug_lock().
11120
11121 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11122
11123         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11124           InternalToUpper/InternalToLower.
11125         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11126           removed invariant culture shortcut.  This is now done in managed code.
11127         * locales.c: (string_invariant_toupper/tolower) removed.
11128
11129 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11130
11131         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11132         Added Poll internal call.
11133
11134         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11135         call for Poll. Select was too heavy for polling a single socket.
11136
11137         * threadpool.[ch]: added mono_threadpool_cleanup.
11138         * threads.c: use it. Don't use Thread_Abort on windows.
11139
11140 2004-04-23  Martin Baulig  <martin@ximian.com>
11141
11142         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11143
11144 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11145
11146         * icall.c: Registred new icalls for key pair protection and added an
11147         icall for Environment.GetFolderPath on Windows.
11148         * security.c|h: Added new icalls for key pair protection.
11149
11150 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11151
11152         * socket-io.c: don't display the non-supported family warning for known
11153         families. Now this is not displayed on windows when checking support
11154         for IPv4/IPv6.
11155
11156 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11157
11158         * class.c: don't display the layout warning for static fields.
11159
11160 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11161
11162         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11163         * locales.c, locales.h: Added new icalls for culture-specific
11164         Char.ToLower and Char.ToUpper.
11165
11166 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11167
11168         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11169         by David Waite.
11170
11171 2004-04-20  Martin Baulig  <martin@ximian.com>
11172
11173         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11174         of the type name before passing it to mono_reflection_type_from_name().
11175
11176 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11177
11178         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11179         encodings here. Fixes #56965.
11180
11181 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11182
11183         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11184         fix test on strstr result not that I can see anything that
11185         relies on the result.
11186
11187 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11188
11189         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11190         Fixes #57081.
11191
11192         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11193
11194         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11195         function to determine which marshalling to use for strings. Fixes
11196         #56965.
11197
11198         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11199
11200         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11201
11202 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11203
11204         * icall.c: #include mono-config.h
11205
11206 2004-04-15  Jackson Harper  <jackson@ximian.com>
11207
11208         * culture-info-tables.h: Fix date formats for en-US culture.
11209         
11210 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11211
11212         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11213         ThreadPool.SetMinThreads.
11214         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11215         ThreadPool.SetMinThreads.
11216
11217 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11218
11219         * mono-config.c: also load the .config file in the directory
11220         where the assembly was found.
11221
11222 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11223
11224         * assembly.c: load per-assembly config files.
11225         * icall.c: decrapified code to get the config dir and moved to
11226         mono-config.c.
11227         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11228         per-assembly config files. When doing a dll map lookup give precedence
11229         to the per-assembly data.
11230
11231 2004-04-14  Martin Baulig  <martin@ximian.com>
11232
11233         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11234         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11235         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11236
11237         * mono-debugger-debugger.c: While the debugger is locked, remember
11238         whether the symbol tables have changes and send one single
11239         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11240
11241 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11242
11243         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11244
11245         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11246         function.
11247
11248         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11249         account when marshalling string arrays. Fixes #56965.
11250
11251 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11252
11253         * icall.c: Add new icalls mapping for security.
11254         * security.c|h: Add internal calls for WindowsIdentity,
11255         WindowsImpersonationContext and WindowsPrincipal.
11256
11257 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11258
11259         * class.c: Added comment to ensure the System.MonoDummy class
11260         is removed when no longer necessary
11261
11262 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11263
11264         * appdomain.c: Pass arguments to the bootstraping exceptions to
11265         minimize JITed methods at boot
11266
11267         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11268         second string to be null.
11269
11270         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11271         Change the protocol to minimize the JIT methods at startup.  Now
11272         it Returns the internal codepage, if the value of "int_code_page"
11273         is 1 at entry, and we can not compute a suitable code page
11274         number, returns the code page as a string.
11275
11276 2004-04-13  Jackson Harper  <jackson@ximian.com>
11277
11278         * culture-info-tables.h: Fix number of decimal digits for all
11279         english locales.
11280
11281 2004-04-13  Jackson Harper  <jackson@ximian.com>
11282
11283         * icall.c: Clairfy out of sync error message. It is not always
11284         your corlib that is out of sync.
11285
11286 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11287
11288         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11289         properties when only the set accessor is overriden. Fixes #55874.
11290
11291 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11292
11293         * assembly.c (mono_assembly_load_references): Make this thread safe.
11294         Fixes #56327.
11295
11296 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11297
11298         * monosn.c: Add missing initialization calls.
11299
11300 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11301
11302         * locales.c:
11303         ves_icall_System_Globalization_CultureInfo_construct_number_format
11304         Fix g_assert so it compiles on fussier compilers re int/ptr
11305         mismatch
11306
11307 2004-04-08  Dick Porter  <dick@ximian.com>
11308
11309         * socket-io.h:
11310         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11311         53992.  Also rearrange the code so that the internal calls return
11312         an error value and exceptions are thrown from managed code.
11313
11314         * icall.c: Add type info to the socket icalls.
11315
11316 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11317
11318         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11319         owes me a beer.
11320
11321 2004-04-07  Martin Baulig  <martin@ximian.com>
11322
11323         * class.c (mono_class_from_generic_parameter): Don't default
11324         `klass->parent' to `mono_defaults.object_type'.
11325
11326 2004-04-07  Martin Baulig  <martin@ximian.com>
11327
11328         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11329         `param->pklass->reflection_info'.       
11330
11331 2004-04-07  Jackson Harper  <jackson@ximian.com>
11332
11333         * culture-info-tables.h: Fix date separator symbol.
11334         
11335 2004-04-07  Martin Baulig  <martin@ximian.com>
11336
11337         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11338         from System.Type to System.MonoType.
11339
11340 2004-04-07  Martin Baulig  <martin@ximian.com>
11341
11342         * reflection.h
11343         (MonoReflectionGenericParam): Added `has_reference_type' and
11344         `has_value_type' fields.
11345
11346         * reflection.c (mono_image_get_generic_param_info): Encode the
11347         correct flags if we have the `class' or `struct' constraint.
11348
11349 2004-04-07  Martin Baulig  <martin@ximian.com>
11350
11351         * reflection.h
11352         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11353
11354 2004-04-07  Jackson Harper  <jackson@ximian.com>
11355
11356         * appdomain.c: Revert extra patches, just wanted to bump the
11357         version number.
11358         
11359 2004-04-07  Jackson Harper  <jackson@ximian.com>
11360
11361         * Makefile.am: Add culture-info private headers.
11362         * icall.c: Add new icalls for contructing locales.
11363         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11364         * locales.h: Declare new culture info construction methods.
11365         * object.h: Add new fields used to avoid the CultureMap to
11366         MonoCultureInfo.
11367         * culture-info.h: Definition of structs used in the culture info
11368         tables.
11369         * culture-info-tables.h: Autogenerated tables that contain culture
11370         info data. This file was generated with the locale-builder tool.
11371         * appdomain.c: Incement corlib version number.
11372         
11373 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11374
11375         * appdomain.c: (mono_runtime_init) move mono_thread_init
11376         to before mono_object_new calls so critical sections
11377         are initialized before use.
11378
11379 2004-04-07  Martin Baulig  <martin@ximian.com>
11380
11381         * icall.c
11382         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11383         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11384         (ves_icall_MonoGenericParam_initialize): Removed.
11385         (monogenericparam_icalls): Removed.
11386         (generictypeparambuilder_icalls): Added new table for
11387         System.Reflection.Emit.GenericTypeParameterBuilder.
11388
11389         * reflection.c
11390         (mono_reflection_define_generic_parameter): Removed.
11391         (mono_reflection_initialize_generic_parameter): This is now called
11392         from GenericTypeParameterBuilder's .ctor.
11393
11394 2004-04-06  Martin Baulig  <martin@ximian.com>
11395
11396         * class.c (mono_class_init): Don't inflate nested classes in a
11397         generic instance.
11398         (mono_type_get_name_recurse): Include the generic arguments for
11399         generic instances and generic type declarations.
11400         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11401         (_mono_class_get_instantiation_name): Removed.
11402         (mono_class_create_generic): Always use `gklass->name' as our name.
11403
11404         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11405
11406         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11407         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11408         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11409         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11410         closed generic methods here.
11411
11412         * reflection.c
11413         (mono_reflection_generic_inst_get_nested_types): Removed.
11414         (inflate_mono_method): Copy the generic parameters from the
11415         MonoMethodHeader into out MonoGenericMethod.
11416
11417 2004-04-06  Martin Baulig  <martin@ximian.com>
11418
11419         * row-indexes.h
11420         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11421
11422         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11423
11424         * reflection.c (build_compressed_metadata): If we have any entries
11425         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11426         set the header version to 1.1.
11427
11428 2004-04-06  Martin Baulig  <martin@ximian.com>
11429
11430         * class.c (mono_class_init): If we're a generic instance,
11431         initialize our nested classes, too.
11432         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11433         suffix. 
11434
11435 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11436
11437         * process.c: quote the argument passed to the shell on windows.
11438
11439 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11440
11441         * threads.c (mono_alloc_special_static_data): Allow this to be
11442         called during startup.
11443
11444 2004-04-02  Martin Baulig  <martin@ximian.com>
11445
11446         * icall.c
11447         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11448
11449 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11450
11451         * icall.c: Fix build.
11452
11453 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11454
11455         * Makefile.am: Added security.c|h.
11456         * icall.c: Added icall for get_UserName;
11457         * security.c: New file for security related icalls. Added function
11458         get_UserName for System.Environment (fix #56144).
11459         * security.h: New. Header file for security.c
11460
11461 2004-04-02  Dick Porter  <dick@ximian.com>
11462
11463         * icall.c: Deleted the icalls that were obsoleted some time ago
11464         by the ICU string code, and which were mixed into the icall
11465         rearranging.  Fixes bug 55969.
11466
11467         * string-icalls.h: 
11468         * string-icalls.c: Deleted the code that those icalls reference.
11469
11470 2004-04-01  Martin Baulig  <martin@ximian.com>
11471
11472         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11473
11474         * class.c (mono_class_from_generic_parameter): Don't set 
11475         TYPE_ATTRIBUTE_INTERFACE.
11476         (my_mono_class_from_generic_parameter): Likewise.
11477
11478 2004-04-01  Martin Baulig  <martin@ximian.com>
11479
11480         * loader.c (find_method): Added an optional `MonoClass *ic'
11481         argument to search in a specific interface.
11482         (mono_get_method_constrained): New public function.
11483
11484 2004-04-01  Martin Baulig  <martin@ximian.com>
11485
11486         * reflection.c (mono_image_get_generic_field_token): Use the
11487         `handleref' cache here.
11488
11489 2004-04-01  Martin Baulig  <martin@ximian.com>
11490
11491         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11492
11493         * reflection.c (create_generic_typespec): Use the `typespec' hash
11494         here, not the `typeref' one.    
11495
11496 2004-04-01  Martin Baulig  <martin@ximian.com>
11497
11498         * class.c (mono_class_inflate_generic_type): Moved the
11499         functionality into a new static inflate_generic_type() which
11500         returns NULL if it didn't do anything.  Only increment the
11501         `mono_stats.inflated_type_count' if we actually inflated
11502         something.
11503         (mono_class_get_full): Check the classes type to see whether we
11504         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11505
11506 2004-04-01  Jackson Harper  <jackson@ximian.com>
11507
11508         * reflection.c: Set culture for assembly references.
11509         
11510 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11511
11512         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11513
11514 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11515
11516         * assembly.c:
11517         (do_mono_assembly_open): the critical section also covers
11518         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11519
11520 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11521
11522         * threads.c:
11523         (mono_manage_threads): abort the background threads when finishing.
11524         Fixes bug #47232.
11525
11526 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11527
11528         * gc.c: only close the done_event handle if there was no timeout.
11529         C-ified comments.
11530
11531 2004-03-30  Martin Baulig  <martin@ximian.com>
11532
11533         * icall.c (icall_entries): It's called "System.Activator", not
11534         "System.Activation".    
11535
11536 2004-03-30  Martin Baulig  <martin@ximian.com>
11537
11538         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11539         (mono_class_create_from_typespec): Likewise.
11540
11541 2004-03-30  Martin Baulig  <martin@ximian.com>
11542
11543         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11544         `has_ctor_constraint' and `initialized'.
11545
11546 2004-03-30  Martin Baulig  <martin@ximian.com>
11547
11548         * reflection.c (encode_new_constraint): New static function to add
11549         the constructor constraint attribute to a type parameter.
11550         (encode_constraints): Call encode_new_constraint() if necessary.
11551
11552         * reflection.h
11553         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11554
11555         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11556         
11557 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11558
11559         * reflection.c, icall.c: add support for pinning variables. 
11560
11561 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11562
11563         * marshal.c (mono_marshal_get_managed_wrapper):
11564         init bool local with zero rather than null.
11565
11566 2004-03-29  Martin Baulig  <martin@ximian.com>
11567
11568         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11569         the "official" behavior here.
11570         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11571
11572 2004-03-29  Martin Baulig  <martin@ximian.com>
11573
11574         * icall.c: Reflect latest API changes.
11575
11576 2004-03-29  Martin Baulig  <martin@ximian.com>
11577
11578         * loader.c (mono_get_method_from_token): Also call
11579         mono_metadata_load_generic_params () for abstract and interface
11580         methods; replace the type arguments in the method signature with
11581         the ones which are loaded from the metadata.
11582
11583 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11584
11585         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11586         of the lock is not the current thread. MS.NET don't do it, in spite of
11587         what the documentation says. See bug #56157.
11588
11589 2004-03-28  Martin Baulig  <martin@ximian.com>
11590
11591         * class.c (mono_class_init): Don't call init_properties() and
11592         init_events() for generic instances; set `prop->parent' when
11593         inflating properties.
11594
11595         * reflection.c (mono_generic_inst_get_object): Call
11596         `mono_class_init (ginst->klass)'.
11597         (mono_type_get_object): Only create a MonoGenericInst if your
11598         generic type is a TypeBuilder.
11599         (do_mono_reflection_bind_generic_parameters): Only set
11600         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11601
11602 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11603
11604         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11605         Fixes #56091.
11606
11607 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11608
11609         * icall.c: added Kill_internal icall.
11610         * process.[ch]: added Kill_internal icall.
11611
11612 2004-03-25  Martin Baulig  <martin@ximian.com>
11613
11614         * class.h (MonoStats): Added `generic_instance_count',
11615         `inflated_method_count', `inflated_type_count' and
11616         `generics_metadata_size'.       
11617
11618 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11619
11620         * reflection.c: no warnings now.
11621
11622 2004-03-25  Martin Baulig  <martin@ximian.com>
11623
11624         * class.c (mono_class_get_full): New public function; does a
11625         mono_class_get(), but also takes a `MonoGenericContext *'.
11626
11627         * loader.c (mono_field_from_memberref): Renamed to
11628         `field_from_memberref', made static and added `MonoGenericContext *'
11629         argument.
11630         (mono_field_from_token): Added `MonoGenericInst *' argument.
11631         (method_from_memberef): Likewise.
11632         (mono_get_method_from_token): Likewise.
11633         (mono_get_method_full): New public function; does a
11634         mono_get_method(), but also takes a `MonoGenericContext *'.
11635
11636         * verify.c (mono_method_verify): Get the method's generic context
11637         and pass it to mono_field_from_token(), mono_get_method_full() and
11638         mono_class_get_full().
11639
11640 2004-03-25  Martin Baulig  <martin@ximian.com>
11641
11642         * class.c (mono_class_inflate_generic_type): Take a
11643         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11644         `MonoGenericMethod *'.
11645
11646 2004-03-25  Martin Baulig  <martin@ximian.com>
11647
11648         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11649         instead of the MonoGenericMethod here.
11650
11651 2004-03-25  Martin Baulig  <martin@ximian.com>
11652
11653         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11654         each time we create a new MonoGenericInst, we also create a new
11655         context which points back to us.
11656
11657         * class.c (inflate_method): Use `ginst->context' instead of
11658         creating a new context.
11659
11660         * loader.c (method_from_memberref): Use
11661         `klass->generic_inst->context' instead of creating a new context.
11662
11663 2004-03-25  Martin Baulig  <martin@ximian.com>
11664
11665         * class.h (MonoGenericContext): New struct.
11666         (MonoGenericMethod): Removed `generic_inst'.
11667
11668         * class.c (mono_class_inflate_generic_method): Take a
11669         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11670
11671 2004-03-25  Martin Baulig  <martin@ximian.com>
11672
11673         * loader.h (MonoMethodInflated): New typedef.
11674
11675         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11676         `generic_param_count' consume just 30 bits, added `is_inflated'
11677         and `has_type_parameters' flags (one bit each).
11678
11679         * class.c (mono_class_inflate_generic_method): Create a
11680         MonoMethodInflated instead of a MonoMethodNormal and set
11681         `is_inflated' in the method signature.
11682
11683         * class.h (MonoGenericMethod): Removed `generic_method'.
11684
11685 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11686
11687         * image.c: Make sure the name of a MonoImage is always an absolute path.
11688           This fixes bug #54415.
11689
11690 2004-03-24  Martin Baulig  <martin@ximian.com>
11691
11692         * class.c (mono_class_setup_vtable): If we're a generic instance,
11693         use our generic type's vtable size.
11694
11695 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11696
11697         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11698         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11699         problems.
11700
11701 2004-03-23  Martin Baulig  <martin@ximian.com>
11702
11703         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11704         `MonoEvent *events'.
11705
11706         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11707         (typebuilder_icalls): Added "get_event_info"; calls
11708         mono_reflection_event_builder_get_event_info(). 
11709
11710         * reflection.c (mono_reflection_generic_inst_initialize): Added
11711         `MonoArray *events'.
11712         (mono_reflection_event_builder_get_event_info): New function.
11713
11714 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11715
11716         * object.h: add mono_type_initialization_init
11717
11718         * object.c (mono_runtime_class_init): 
11719         implement class constructor synchronization rules
11720         to cope with threading issues.  
11721         add mono_type_initialization_init
11722
11723         * appdomain.c (mono_runtime_init): call 
11724         mono_type_initialization_init
11725
11726         * class.h: removing initializing field from MonoVTable
11727
11728 2004-03-23  Martin Baulig  <martin@ximian.com>
11729
11730         * class.c (my_mono_class_from_generic_parameter): Use
11731         `param->name' if it's not NULL. 
11732
11733 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11734
11735         * class.c: do not insert non-virtual methods in the vtable.
11736         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11737         that means the method is non-virtual. This never would have
11738         happened before.
11739
11740 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11741
11742         * profiler.c: Added lock for accessing coverage_hash.
11743
11744 2004-03-22  Martin Baulig  <martin@ximian.com>
11745
11746         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11747         `method->method->signature->generic_param_count != 0' to make it
11748         work for interface methods.
11749
11750 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11751
11752         * process.c: quote the string passed to the shell using g_shell_quote.
11753
11754 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11755
11756         * threads.c:
11757         (mono_threads_manage): don't remove the finalizer thread and self
11758         from the threads hash table so that mono_thread_manage can be called
11759         more than once.
11760
11761 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11762
11763         * process.c: quote the arguments when UseShellExecute is true. Fixes
11764         bug #55790.
11765
11766 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11767
11768         * threads.c: set mono_thread_detach as a cleanup routine for every
11769         thread. This way it's always executed upon thread termination, either
11770         aborted or finished normally. No more xsp hangs!
11771
11772 2004-03-17  Martin Baulig  <martin@ximian.com>
11773
11774         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11775         `int count_nested' and a `MonoType **nested'.
11776
11777         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11778         most of the functionality into a new static
11779         do_mono_reflection_bind_generic_parameters() and don't take a
11780         `MonoType *nested_in' argument any more.  Don't compute nested
11781         types here.
11782         (mono_reflection_generic_inst_get_nested_types): New public method
11783         to get nested types.
11784
11785         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11786         we're a nested class.
11787
11788         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11789         mono_reflection_generic_inst_get_nested_types() to compute the
11790         nested types.
11791
11792 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11793
11794         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11795         descriptive error message under windows.
11796         
11797 2004-03-17  Martin Baulig  <martin@ximian.com>
11798
11799         * class.c (dup_type): Added `const MonoType *original' argument;
11800         copy the attrs from the original type.
11801
11802 2004-03-17  Martin Baulig  <martin@ximian.com>
11803
11804         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11805         `m->generic_inst_cache' here.
11806
11807 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11808
11809         * exception.h exception.c: Add stack_overflow_exception.
11810
11811 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11812
11813         * threadpool.c:
11814         (overlapped_callback): call SetEvent *after* invoking the callback.
11815         No need to call CloseHandle.
11816
11817 2004-03-16  Martin Baulig  <martin@ximian.com>
11818
11819         * reflection.c (mono_image_get_fieldref_token): Take a
11820         `MonoReflectionField *' instead of a `MonoClassField *' and a
11821         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11822
11823 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11824
11825         * appdomain.c: don't add the culture to the filename we're looking for
11826         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
11827
11828 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11829
11830         * locales.c: don't ignore symbols when doing case insensitive compares.
11831         Thanks Dick! Fixes bug #54046.
11832
11833         * threads.c: surround 'threads' usage with enter/leave in
11834         mono_thread_manage.
11835
11836 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
11837
11838         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
11839         implicitly marshalled as [Out]. Fixes #55450.
11840
11841         (mono_marshal_get_runtime_invoke): Zero out the result if there is
11842         an exception.
11843
11844 2004-03-16  Martin Baulig  <martin@ximian.com>
11845
11846         * class.c (mono_class_from_generic_parameter): Use the actual
11847         parameter name. 
11848
11849 2004-03-16  Martin Baulig  <martin@ximian.com>
11850
11851         * reflection.c (type_get_signature_size): New static function.
11852         Compues the size of the type in a method signature.
11853         (method_get_signature_size): New static function; calls
11854         type_get_signature_size() to compute the actual size of the
11855         method's signature.
11856         (method_encode_signature): Use method_get_signature_size() to get
11857         the signature's size rather than using `nparams * 10'.
11858
11859 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11860
11861         * file-io.h: define here WapiOverlapped on windows. I don't want the
11862         regular OVERLAPPED one.
11863
11864         * file-io.c:
11865         * threadpool.c: somehow, BindIoCompletionCallback is not found.
11866         Disabling AIO on windows.
11867
11868 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11869
11870         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
11871         bug #55385.
11872
11873 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11874
11875         * appdomain.c: upgraded corlib version.
11876
11877         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
11878         and BeginWrite. Allow opening files for asynchrnous operations.
11879
11880         * file-io.h: new struct that maps FileStreamAsyncResult.
11881         * icall.c: added new icalls.
11882         * process.[ch]: support setting child process environment variables
11883         and use the SHELL or COMSPEC when UseShellExecute is true.
11884
11885         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
11886         callback for async. IO is here and also BindHandle.
11887
11888         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
11889         from here.
11890
11891 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
11892
11893         * reflection.c (create_custom_attr): Allow len == 0.
11894
11895         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
11896         computation on big-endian machines.
11897
11898 2004-03-13  Martin Baulig  <martin@ximian.com>
11899
11900         * class.h (MonoGenericInst): Added `int count_ifaces'.
11901
11902         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
11903         `ginst->count_ifaces' instead `klass->interface_count' since we
11904         may get called before the vtable is created.
11905
11906         * loader.c (mono_method_get_param_names): If we're a generic
11907         instance, return and don't initialize the class.
11908
11909         * reflection.c (mono_reflection_setup_generic_class): Don't call
11910         ensure_runtime_vtable().
11911         (mono_reflection_bind_generic_parameters): Set
11912         `ginst->count_ifaces'.
11913
11914 2004-03-11  Jackson Harper <jackson@ximian.com>
11915
11916         * icall.c:
11917         * unicode.c:
11918         * unicode.h: Remove unused System.Char icalls.
11919         
11920 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
11921
11922         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
11923         code when we P/Invoke the first library in Windows.Forms, instead
11924         of when we first open the assembly.
11925
11926         * assembly.c: Drop the lookup from here.
11927
11928 2004-03-10  Martin Baulig  <martin@ximian.com>
11929
11930         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
11931         class for properties, fields and events.  Finally fixes #54945.
11932
11933 2004-03-10  Martin Baulig  <martin@ximian.com>
11934
11935         * metadata.c (mono_metadata_class_equal): New static function;
11936         checks whether two generic instances or two generic parameters are
11937         equal.
11938         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
11939         compare classes.        
11940
11941 2004-03-10  Martin Baulig  <martin@ximian.com>
11942
11943         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
11944
11945         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
11946         argument and write it into the `reflection_info' field.
11947
11948         * icall.c
11949         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
11950         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
11951
11952 2004-03-09  Jackson Harper  <jackson@ximian.com>
11953
11954         * char-conversions.h: use 8 bits for numeric data its all we need
11955         * icall.c: numeric data is only 8 bits now.
11956
11957 2004-03-09  Martin Baulig  <martin@ximian.com>
11958
11959         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
11960
11961         * class.c (init_properties, init_events): Initialize the new
11962         `parent' field.
11963
11964         * reflection.c (typebuilder_setup_properties): Likewise.
11965         (typebuilder_setup_events): Likewise.
11966
11967         * reflection.h (MonoEventInfo): Replaced `parent with
11968         `declaring_type' and `reflected_type'.
11969
11970         * icall.c (ves_icall_get_property_info): Distinguish between
11971         declaring and reflected type.
11972         (ves_icall_get_event_info): Likewise.
11973
11974 2004-03-09  Martin Baulig  <martin@ximian.com>
11975
11976         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
11977         (ves_icall_Type_GetField): Correctly set field->klass.
11978
11979 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
11980
11981         * loader.h: Fix warning.
11982
11983 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
11984
11985         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
11986         library routine if present.  Notice that it will still continue
11987         executing even if its missing, for those working on the Gtk#
11988         edition of Windows.Forms.
11989
11990         * assembly.c (do_mono_assembly_open): If loading the
11991         System.Windows.Forms call mono_loader_wini_init.
11992
11993 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
11994
11995         * class.h: Added MonoRemoteClass struct.
11996         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
11997         function for MonoStrings.
11998         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
11999         Added internal call for getting the proxy type.
12000         * marshal.c: Get the type of transparent proxies from its remote_class.
12001         Added methods that generate the IL for type checks and casts:
12002         mono_marshal_get_isinst, mono_marshal_get_castclass, 
12003         mono_marshal_get_proxy_cancast.
12004         * marshal.h: Declaration of the previous new methods.
12005         * object.c: Added new moethods for creating and updating MonoRemoteClass
12006         instances: mono_remote_class, mono_upgrade_remote_class, 
12007         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12008         * verify.c: FIx transparent_proxy_fields layout.
12009         * appdomain.c: Bump corlib version.
12010
12011 2004-03-04  Jackson Harper  <jackson@ximian.com>
12012
12013         * icall.c: Add icall to access char conversion tables.
12014         * char-conversions.h: Character conversion tables.
12015         * Makefile.am: Add char-conversions.h private header file.
12016         
12017 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
12018
12019         * appdomain.c (unload_thread_main): Increase unloading timeout to
12020         10 sec as a temporary workaround for Nant problems.
12021
12022 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
12023
12024         * gc.c: Add checks for GC_enable and GC_disable.
12025
12026         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12027         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
12028         (bug #54988).
12029         
12030 2004-02-27  Martin Baulig  <martin@ximian.com>
12031
12032         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12033         `MonoReflectionType *' instead of a `MonoType *'.
12034
12035 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
12036
12037         * gc.c (run_finalize): Avoid finalizing the object representing the
12038         finalizer thread.
12039         (finalizer_thread): Fix warning.
12040
12041 2004-02-25  Martin Baulig  <martin@ximian.com>
12042
12043         * class.c (_mono_class_get_instantiation_name): Added `int offset'
12044         argument for nested types.
12045         (mono_class_create_generic): Added support for nested generictypes.
12046
12047         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12048         `GList *nested'.
12049
12050         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12051
12052         * reflection.c (method_encode_signature): Increase the minimum
12053         value of `size' from 10 to 11.
12054         (mono_reflection_bind_generic_parameters): Take `int type_argc'
12055         and `MonoType **types' arguments instead of the `MonoArray
12056         *types'; added `MonoType *nested_in'.  Recursively instantiate
12057         nested classes. 
12058
12059 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
12060
12061         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
12062         stack_overflow_ex members which are used by exception handling.
12063
12064         * appdomain.c (mono_runtime_init): Initialize the new members.
12065
12066         * gc.c (mono_gc_enable): New helper function.
12067         * gc.c (mono_gc_disable): New helper function.
12068
12069 2004-02-23  Martin Baulig  <martin@ximian.com>
12070
12071         * icall.c: I must have been really stupid - make it actually work
12072         this time ;-)
12073
12074 2004-02-23  Martin Baulig  <martin@ximian.com>
12075
12076         * loader.c (method_from_memberref): Only inflate the method if
12077         it's in another klass.
12078
12079 2004-02-23  Martin Baulig  <martin@ximian.com>
12080
12081         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12082         (mono_class_init): If we're a generic instance and an interface,
12083         compute `class->interface_id'; also create `class->interfaces'
12084         here and inflate them.
12085
12086         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12087         `ginst->is_open'.
12088         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12089
12090         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12091
12092 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12093
12094         * reflection.c (method_encode_code): Improved the error message
12095         generated by the exception.
12096
12097 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12098
12099         * icall.c: Martin did not do what he said in the ChangeLog for
12100         2004-02-18, but put back the changes for properties and events.
12101         Commenting those changes out again and adding comment to bug #54518.
12102         
12103         * process.c: removed warning.
12104
12105 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12106
12107         * marshal.c (emit_struct_conv): Print an error message instead of
12108         asserting when a type does not have the StructLayout attribute.
12109
12110 2004-02-20  Martin Baulig  <martin@ximian.com>
12111
12112         * reflection.c (mono_type_get_object): Also use the cache for
12113         generic instances.
12114         (mono_reflection_bind_generic_parameters): Always compute
12115         `ginst->ifaces'.        
12116
12117 2004-02-20  Martin Baulig  <martin@ximian.com>
12118
12119         * class.h (MonoGenericMethod): Removed `klass'.
12120
12121         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12122         *klass' argument.
12123
12124 2004-02-20  Martin Baulig  <martin@ximian.com>
12125
12126         * reflection.c (method_encode_methodspec): Actually use the
12127         uninflated signature for the memberref.
12128
12129 2004-02-20  Martin Baulig  <martin@ximian.com>
12130
12131         * class.h (MonoGenericMethod): Removed `declaring'.
12132
12133         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12134         is NULL, compute it here.
12135
12136 2004-02-20  Martin Baulig  <martin@ximian.com>
12137
12138         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12139
12140         * metadata.c (mono_metadata_generic_inst_hash): New method.
12141         (mono_metadata_generic_inst_equal): New method.
12142
12143         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12144         `klass->image->generic_inst_cache' cache to avoid creating
12145         duplicate MonoGenericInst's.
12146
12147         * class.c (mono_class_inflate_generic_type): Use the cache.
12148
12149 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12150
12151         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12152
12153 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12154
12155         * icall.c: added Socket.WSAIoctl icall.
12156
12157         * socket-io.[ch]: implemented
12158         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12159
12160 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12161
12162         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12163
12164 2004-02-18  Urs C Muff  <umuff@quark.com>
12165
12166         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12167         this work on PPC and other big-endian architectures.
12168
12169         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12170         fields with an underscore to make sure they're only accessed by
12171         the read32() macro.
12172
12173 2004-02-18  Martin Baulig  <martin@ximian.com>
12174
12175         * icall.c: Put the klass->refclass changes back for methods and
12176         fields, but not for properties and events.  We're currently not
12177         distinguishing between DeclaringType and ReflectedType for
12178         properties and events, that's what caused the regressions.
12179
12180 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12181
12182         * object.c:
12183         (mono_async_result_new): the handle can be NULL.
12184
12185         * threadpool.c: Use an event instead of a semaphore, don't initialize
12186         it until needed. This saves quite a few semaphores from being created
12187         when using the threadpool.
12188
12189 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12190
12191         * object.c (mono_string_is_interned_lookup): Fix interning of long
12192         strings. Fixes #54473.
12193
12194         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12195
12196         * icall.c: Revert the klass->refclass changes since they introduce
12197         regressions (bug #54518).
12198
12199 2004-02-18  Martin Baulig  <martin@ximian.com>
12200
12201         * class.c (mono_class_init): If we're a generic instance and don't
12202         come from a TypeBuilder, inflate our members here.
12203         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12204         (mono_class_create_generic): New public method.
12205         (mono_class_initialize_generic): Removed.
12206         (get_instantiation_name): Renamed to
12207         _mono_class_get_instantiation_name() and made it public.
12208
12209 2004-02-18  Martin Baulig  <martin@ximian.com>
12210
12211         * class.c (mono_class_inflate_generic_type): Clear the new
12212         instance's `nginst->klass' when inflating a generic instance.
12213         (mono_class_is_subclass_of): Added (basic) support for generic
12214         instances.
12215
12216 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12217
12218         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12219         MonoMempool to hold compiled native code.
12220
12221 2004-02-17  Martin Baulig  <martin@ximian.com>
12222
12223         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12224         `properties'.
12225
12226         * reflection.c (mono_reflection_generic_inst_initialize): Added
12227         `MonoArray *properties' argument.
12228
12229         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12230
12231 2004-02-17  Martin Baulig  <martin@ximian.com>
12232
12233         * icall.c (ves_icall_Type_GetFields): Renamed to
12234         ves_icall_Type_GetFields_internal() and added a
12235         `MonoReflectionType *rtype' argument; pass it to
12236         mono_field_get_object() to set the field's "reflected" type.
12237         (ves_icall_Type_GetConstructors): Likewise.
12238         (ves_icall_Type_GetEvents): Likewise.
12239         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12240         argument; pass it to mono_method_get_object() to set the method's
12241         "reflected" type.       
12242
12243 2004-02-17  Martin Baulig  <martin@ximian.com>
12244
12245         * class.h (MonoDynamicGenericInst): New type.
12246         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12247
12248         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12249         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12250         (ves_icall_MonoGenericInst_GetFields): New interncall.
12251
12252         * class.c (mono_class_from_generic): Don't call
12253         mono_class_initialize_generic() if this is a dynamic instance;
12254         ie. it's being created from a TypeBuilder.
12255         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12256         `class->byval_arg.type'.
12257
12258         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12259         to `inflate_method' and made static.
12260         (mono_reflection_inflate_field): Removed.
12261         (mono_reflection_generic_inst_initialize): New public method.
12262
12263         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12264         `ctors' and `fields'; added `initialized'.
12265
12266 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12267
12268         * debug-helpers.c (mono_method_full_name): Fix output for empty
12269         namespaces.
12270
12271 2004-02-12  Martin Baulig  <martin@ximian.com>
12272
12273         * class.h (MonoClassField): Added `MonoType *generic_type'.
12274
12275         * reflection.c (mono_image_get_fieldref_token): Added support for
12276         instantiated generic types.
12277         (field_encode_inflated_field): Removed.
12278         (mono_image_get_inflated_field_token): Removed.
12279         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12280
12281         * reflection.h (MonoReflectionInflatedField): Removed.
12282
12283 2004-02-12  Martin Baulig  <martin@ximian.com>
12284
12285         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12286         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12287
12288         * reflection.c (mono_image_get_methodspec_token): Take a
12289         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12290         (mono_image_create_token): Check whether we have a
12291         `method->signature->gen_method' and call
12292         mono_image_get_methodspec_token() if appropriate.
12293         (inflated_method_get_object): Removed.
12294         (mono_reflection_bind_generic_method_parameters): Return a
12295         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12296         (mono_reflection_inflate_method_or_ctor): Likewise.
12297
12298         * reflection.h (MonoReflectionInflatedMethod): Removed.
12299
12300 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12301
12302         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12303         for custom valuetype marshalling.
12304
12305         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12306
12307 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12308
12309         * icall.c: fixed WSAGetLastError_internal name.
12310
12311 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12312
12313         * threads.c (mono_thread_attach): Allow this to be called multiple
12314         times for a thread.
12315         
12316         * threads.c (build_wait_tids): Do not wait for ourselves.
12317
12318         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12319         appdomain list is empty.
12320
12321         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12322         memory returned by mono_string_builder_to_utf16, since it points into
12323         managed memory. Thanks to Bernie Solomon for noticing this.
12324
12325         * icall.c: Add AppDomainSetup icalls.
12326
12327         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12328
12329         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12330         types.
12331
12332         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12333         custom attributes to the method_aux struct. Also fix array indexes etc.
12334
12335         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12336         
12337 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12338
12339         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12340         (both static and runtime) and reduce startup time.
12341
12342 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12343
12344         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12345         AsAny marshalling conversion instead of crashing.
12346
12347         * marshal.c: Fix warnings.
12348
12349 2004-02-09  Martin Baulig  <martin@ximian.com>
12350
12351         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12352
12353         * reflection.h (MonoReflectionInflatedMethod): Removed the
12354         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12355
12356         * reflection.c (method_encode_methodspec): Removed the `method'
12357         argument; we get it from `gmethod->declaring'.
12358         (inflated_method_get_object): Removed the `declaring' argument.
12359
12360 2004-02-09  Martin Baulig  <martin@ximian.com>
12361
12362         * class.h (MonoGenericMethod): New type.
12363         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12364         `generic_method'.
12365
12366         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12367         a `MonoGenericMethod *gen_method' one.
12368
12369         * class.c (mono_class_inflate_generic_type): Take an additional
12370         `MonoGenericMethod * argument.  This is only non-NULL if we're
12371         inflating types for a generic method.   
12372         (mono_class_inflate_generic_signature): Renamed to
12373         inflate_generic_signature() and made static; take a
12374         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12375         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12376         instead of a `MonoGenericInst *' one.
12377         (mono_class_inflate_generic_method): Likewise.
12378
12379         * reflection.c (encode_generic_method_sig): Take a
12380         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12381         (method_encode_methodspec): Likewise.
12382         (inflated_method_get_object): Likewise. 
12383
12384         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12385         field with a `MonoGenericMethod *gmethod' one.  
12386
12387 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12388
12389         * class.h (mono_class_has_parent): add parens to expansion
12390         so you can ! this.
12391
12392 2004-02-08  Martin Baulig  <martin@ximian.com>
12393
12394         * image.h (MonoImage): Removed `generics_cache'.
12395
12396         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12397         instead of a `MonoType *' argument; removed the `inflate_methods'
12398         argument.  Don't inflate methods here.
12399
12400         * loader.c (find_method): If it's a generic instance, call
12401         mono_class_init() on the `sclass->generic_inst->generic_type'.
12402
12403         * metadata.c (mono_type_size): Make this work on uninitialized
12404         generic instances; call it on the `ginst->generic_type's class.
12405
12406         * reflection.c (mono_reflection_bind_generic_parameters): Call
12407         mono_class_from_generic() to create the `ginst->klass'.
12408
12409 2004-02-08  Martin Baulig  <martin@ximian.com>
12410
12411         * class.h (MonoClass): Changed type of `generic_inst' from
12412         `MonoType *' to `MonoGenericInst *'.
12413
12414 2004-02-08  Martin Baulig  <martin@ximian.com>
12415
12416         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12417         mono_type_get_object(), this is now creating a `MonoGenericInst'
12418         for MONO_TYPE_GENERICINST.
12419         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12420         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12421
12422         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12423         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12424         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12425         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12426         and reflected type.
12427
12428         * reflection.h (MonoReflectionInflatedMethod): Removed
12429         `declaring_type' and `reflected_type'.
12430
12431 2004-02-08  Martin Baulig  <martin@ximian.com>
12432
12433         * class.h (MonoGenericInst): Added `MonoType *parent' and
12434         `MonoType **ifaces'.
12435
12436         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12437         `parent' and `interfaces'.
12438
12439         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12440         `MonoType *' argument and return a `MonoType *'.
12441
12442         * icall.c
12443         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12444         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12445
12446 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12447
12448         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12449         valuetype marshalling.
12450
12451 2004-02-06  Martin Baulig  <martin@ximian.com>
12452
12453         * class.c
12454         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12455         (my_mono_class_from_generic_parameter): Likewise.
12456
12457 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12458
12459         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12460         contents of the symbol files lazily.
12461
12462         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12463
12464         * threads.h threads.c icall.c: New icalls for getting and setting the
12465         threads name.
12466
12467 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12468
12469         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12470         Raise an exception when the domain is not found.
12471
12472 2004-02-03  Martin Baulig  <martin@ximian.com>
12473
12474         * reflection.c (mono_image_get_methodspec_token): Use the
12475         uninflated signature; fixes gen-33.
12476
12477 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12478
12479         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12480         the finalizer code can use thread functionality.
12481
12482         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12483         the finalizer thread.
12484
12485         * threads.c: Make some functions more robust.
12486
12487         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12488
12489         * metadata.h: Add new marshalling conventions.
12490
12491         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12492         stringbuilder marshalling. Fixes #53700.
12493
12494         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12495
12496         * reflection.c (mono_image_get_type_info): Save declarative security
12497         info.
12498
12499         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12500         unmanaged fields as well.
12501
12502         * appdomain.c: Bump corlib version.
12503
12504 2004-02-01  Martin Baulig  <martin@ximian.com>
12505
12506         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12507         method type arguments.  
12508
12509 2004-01-30  Duncan Mak  <duncan@ximian.com>
12510
12511         * marshal.h: Add prototype for
12512         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12513         and
12514         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12515         fix the build.
12516
12517 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12518
12519         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12520         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12521
12522 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12523
12524         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12525         custom marshalling of valuetypes.
12526
12527         * marshal.c: Fix some warnings.
12528
12529 2004-01-29  Martin Baulig  <martin@ximian.com>
12530
12531         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12532         for generic method parameters.
12533
12534         * reflection.c (method_encode_methodspec): Write the uninflated
12535         signature into the methodspec table.
12536         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12537         is always the uninflated method.
12538         (reflection_methodbuilder_to_mono_method): Copy the generic
12539         parameters from the MethodBuilder into `header->gen_params'.
12540
12541 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12542
12543         * class.c (mono_class_from_generic_parameter): Fix warning.
12544
12545 2004-01-27  Martin Baulig  <martin@ximian.com>
12546
12547         * class.c (mono_class_from_generic_parameter): Don't create
12548         `klass->methods' here.  
12549
12550 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12551
12552         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12553         extension since it does not work with libraries named lib<FOO>.dll.so.
12554
12555 2004-01-25  Martin Baulig  <martin@ximian.com>
12556
12557         * class.c (mono_class_inflate_generic_type): Added support for
12558         MONO_TYPE_GENERICINST.
12559
12560         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12561         inflate methods on open constructed types.      
12562
12563 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12564
12565         * object.c: fire ProcessExit event in the root AppDomain after running
12566         Main. Fixes bug #53299.
12567
12568 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12569
12570         * socket-io.c: include the new socket-wrappers.h header.
12571         Use the wrappers instead of the unix socket functions to make the code
12572         more clear.
12573
12574 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12575
12576         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12577
12578         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12579         Fixes #22532.
12580
12581 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12582
12583         * reflection.c (mono_image_create_pefile): Handle the case when the
12584         entry point is not a MethodBuilder.
12585
12586         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12587         field to ReflectionMethod since it is not allways a builder.
12588
12589         * reflection.c (type_get_fully_qualified_name): New helper function to
12590         return the fully qualified name of a type.
12591
12592         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12593         type name for custom marshallers.
12594
12595         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12596
12597         * class.c (mono_class_setup_vtable): If a parent class already 
12598         implements an interface, use the implementing methods from that class.
12599         Fixes #53148.
12600
12601 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12602
12603         * threadpool.c: just return instead of ExitThread to allow for thread
12604         clean up earlier.
12605
12606 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12607
12608         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12609         when closing resource modules.
12610
12611         * reflection.c (mono_image_create_pefile): Handle the case when the
12612         entry point is not a MethodBuilder.
12613
12614         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12615         field to ReflectionMethod since it is not allways a builder.
12616
12617 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12618
12619         * marshal.c (mono_marshal_get_managed_wrapper): 
12620         mono_marshal_alloc takes native int so CONV_I
12621         the arg for 64bits.
12622
12623 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12624
12625         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12626         tokens in the cattr table. Fixes #53108.
12627
12628 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12629
12630         * loader.c: don't trim ".dll" before looking up in the config file.
12631         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12632
12633 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12634
12635         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12636         Return the module which contains the resource as well.
12637         (ves_icall_System_Reflection_Module_Close): New icall.
12638
12639         * appdomain.c: Bump corlib version number.
12640
12641         * image.c (mono_image_addref): New public function.
12642
12643         * assembly.c: Call mono_image_addref.
12644
12645         * reflection.c (mono_module_get_object): Increase reference count of 
12646         the image.
12647
12648         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12649         Fixes #22532.
12650
12651         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12652         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12653         proper exceptions on DllImport problems.
12654
12655 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12656
12657         * class.c, metadata.c: eliminate CSIZE macro.
12658
12659 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12660
12661         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12662         * object.h: Added async_callback field in MonoAsyncResult.
12663         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12664         * verify.c: Added async_callback in MonoAsyncResult layout.
12665
12666 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12667
12668         * reflection.c (mono_reflection_get_custom_attrs): Add support
12669         for Modules.
12670
12671 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12672
12673         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12674         marshalling.
12675         (mono_marshal_method_from_wrapper): Add null pointer check.
12676
12677 2004-01-16  Martin Baulig  <martin@ximian.com>
12678
12679         * debug-mono-symfile.h: Set version number to 36 and reflect
12680         latest symbol writer changes.
12681
12682 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12683
12684         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12685         multi-dimensional arrays.
12686         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12687         (mono_class_from_mono_type): Use bounded_array_class_get.
12688         
12689         * class.c (mono_bounded_array_class_get): New function which takes
12690         a 'bounded' bool argument to distinguish vectors from one dimensional
12691         arrays.
12692
12693         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12694         bounded_array_class_get if the array has bounds.
12695
12696         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12697         Search modules loaded using AssemblyBuilder:AddModule as well.
12698
12699 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12700
12701         * appdomain.c: increased corlib version.
12702         * filewatcher.c: removed g_print.
12703         * icall.c:
12704         (get_property_info): only allocate what is actually requested.
12705         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12706
12707 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12708
12709         * Makefile.am: added filewatcher.[ch]
12710         * filewatcher.[ch]: FileSystemWatcher runtime support.
12711         * icall.c: added new FSW icalls.
12712
12713 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12714
12715         * string-icalls.c: fix stringbuilder regression as suggested by
12716         Iain McCoy <iain@mccoy.id.au>.
12717
12718 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12719
12720         * process.c (process_read_stringtable_block): Recognize '007f' as
12721         a language neutral stringtable block.
12722
12723 2004-01-12  Patrik Torstensson
12724
12725         * object.h (MonoStringBuilder) : Changed layout to support our
12726         new stringbuilder class.
12727         * marshal.c: Change marshalling to support the new layout of 
12728         string builder.
12729         * appdomain.c: increased version number because new layout of
12730         string builder.
12731
12732 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12733
12734         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12735         assembly name as an string instead of an AssemblyName, since it is
12736         easier to extract info from it.
12737
12738         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12739         the culture subdirectories too. Fixes #52231.
12740
12741 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12742
12743         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12744         It takes 2 new parameters with an optional name for the method to look
12745         for and case ignoring info.
12746
12747         * threadpool.c: removed unused variable.
12748
12749 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12750
12751         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12752         It takes 2 new parameters with an optional name for the property to look
12753         for and case ignoring info.
12754         Fixes bug #52753.
12755
12756 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12757
12758         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12759         Fix #52451.
12760
12761 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12762
12763         * appdomain.c:
12764         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12765         Fixes bug #52630.
12766
12767 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12768
12769         * reflection.c: Add support for more than one unmanaged resource.
12770
12771         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12772         in field->def_value, as done in all other cases.
12773
12774         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12775         TypeBuilders.
12776
12777         * reflection.c (mono_reflection_create_runtime_class): Remove 
12778         errorneous assignment to klass->element_class, since it is already
12779         done in mono_reflection_setup_internal_class.
12780
12781 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12782
12783         * gc.c: added missing LeaveCriticalSection.
12784         * icall.c: indented a couple of lines.
12785         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12786         if we call EndInvoke inside a callback. Fixes bug #52601.
12787
12788 2004-01-07  Martin Baulig  <martin@ximian.com>
12789
12790         * mono-debug-debugger.h
12791         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12792
12793 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12794
12795         * appdomain.c: Use messages in NotImplementedException.
12796
12797         * exception.c (mono_get_exception_not_implemented): Now this takes
12798         a message argument.
12799
12800         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12801         exception instead of g_asserting an aborting when something is not
12802         implemented.
12803
12804         Add some inline docs.
12805
12806 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12807
12808         * reflection.h: Update after changes to object layout.
12809
12810         * reflection.c: Implement saving of unmanaged aka win32 resources.
12811
12812         * appdomain.c: Bump version number.
12813
12814         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12815         Handle missing domains gracefully.
12816
12817 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12818
12819         * file-io.c : On Windows, there are much more invalid_path_chars.
12820
12821 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12822
12823         * class.h, object.c: prepare for GetType () speedup.
12824
12825 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
12826
12827         * profiler.c: workaround for --profile null reference exception on
12828           cygwin. Patch by Patrik Torstensson.
12829
12830 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
12831
12832         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
12833         make work for unaligned access.
12834
12835 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
12836
12837         * class.c: small cleanup (class->fields [i] -> field).
12838         * image.c: check address of metadata is valid.
12839
12840 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
12841
12842         * assembly.h assembly.c (mono_assembly_loaded): New public function to
12843         search the list of loaded assemblies.
12844
12845         * reflection.c (mono_reflection_type_from_name): Use 
12846         mono_assembly_loaded instead of mono_image_loaded.
12847
12848         * reflection.c: Fix warnings.
12849
12850 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
12851
12852         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
12853         is dynamic. This is needed since an assembly can contain both dynamic and
12854         non-dynamic images.
12855
12856         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
12857         assembly->dynamic.
12858
12859         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
12860
12861         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
12862         to store modules loaded using AddModule.
12863
12864         * reflection.c (mono_image_fill_file_table): Generalize this so it works
12865         on Modules.
12866
12867         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
12868
12869         * reflection.c (mono_image_fill_export_table_from_module): New function to
12870         fill out the EXPORTEDTYPES table from a module.
12871
12872         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
12873         into a separate function. Also handle loaded non-dynamic modules.
12874
12875         * reflection.c (mono_image_basic_init): Fix memory allocation.
12876
12877         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12878
12879         * assembly.c (mono_assembly_load_references): Make this public.
12880
12881 2003-12-19  Martin Baulig  <martin@ximian.com>
12882
12883         * class.c (mono_class_initialize_generic): Made this static, take
12884         a `MonoGenericInst *' instead of a `MonoClass *'.
12885         (mono_class_from_generic): Call mono_class_initialize_generic()
12886         unless we're already initialized or being called from
12887         do_mono_metadata_parse_generic_inst().
12888
12889         * class.h (MonoGenericInst): Added `initialized' and
12890         `init_pending' flags.
12891
12892         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
12893         `mono_class_init (gklass)' or mono_class_initialize_generic()
12894         here; set `generic_inst->init_pending' while parsing the
12895         `type_argv'.
12896
12897 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
12898
12899         * locales.c: include string.h for memxxx prototypes
12900
12901 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
12902
12903         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
12904         constructor when accessing literal fields.
12905
12906 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
12907
12908         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12909
12910         * reflection.c (assembly_add_resource_manifest): New function to fill
12911         the MANIFESTRESOURCE table.
12912
12913         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
12914
12915         * reflection.h: Update to changes in class layout.
12916
12917         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
12918         Reenable call to mono_runtime_is_shutting_down ().
12919
12920         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
12921         determine if the runtime is shutting down.
12922
12923 2003-12-16  Jackson Harper <jackson@ximian.com>
12924
12925         * icall.c: comment out call to mono_runtime_is_shutting_down to
12926         fix build.
12927         
12928 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
12929
12930         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
12931         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
12932
12933 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
12934
12935         * reflection.c: move definition of swap_with_size
12936         to before its first call
12937
12938 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
12939
12940         * appdomain.c (mono_runtime_is_shutting_down): New public function.
12941
12942         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
12943         icall.
12944
12945         * object.c: Fix warnings.
12946
12947         * icall.c (ves_icall_Type_Get...): Only consider inherited static
12948         members if FlattenHierarchy is set.
12949
12950         * reflection.c (mono_image_add_decl_security): New function to emit
12951         declarative security.
12952
12953         * reflection.h reflection.c: Add support for declarative security.
12954
12955         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12956         
12957 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
12958
12959         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
12960         
12961         * appdomain.c verify.c: Moved corlib version checking into its own
12962         function in appdomain.c since it needs to create vtables etc.
12963
12964 2003-12-13  Patrik Torstensson <p@rxc.se>
12965
12966         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
12967         instead of unwrapped server.
12968
12969 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
12970
12971         * verify.c (check_corlib): Fix field index.
12972
12973 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
12974
12975         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
12976         GetGacPath icall.
12977
12978 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
12979
12980         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
12981         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
12982         cope with sizeof(size_t) != sizeof(guint32).
12983
12984 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12985
12986         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
12987         in case of failure.
12988
12989 2003-12-10  Mark Crichton <crichton@gimp.org>
12990
12991         * icall.c: removed the GetNonZeroBytes.  We now handle this case
12992         in managed code.
12993
12994         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
12995
12996 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
12997
12998         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
12999         marked as deleted.
13000
13001 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
13002
13003         * verify.c (check_corlib): Handle the case when the version field is 
13004         initialized by a static constructor.
13005
13006 2003-12-08  Patrik Torstensson  <p@rxc.se>
13007
13008     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13009
13010 2003-12-08  Martin Baulig  <martin@ximian.com>
13011
13012         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13013         a MonoReflectionGenericParameter, also take the parameter index
13014         and name as arguments.
13015         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13016         (ves_icall_MonoGenericParam_initialize): New interncall.
13017         (ves_icall_Type_make_byref_type): New interncall.
13018
13019         * reflection.h (MonoReflectionGenericParam): Derive from
13020         MonoReflectionType, not just from MonoObject.  Added `refobj' and
13021         `index' fields.
13022
13023         * reflection.c (mono_reflection_define_generic_parameter): Create
13024         and return a new MonoReflectionGenericParam; don't initialize the
13025         constraints here.
13026         (mono_reflection_initialize_generic_parameter): New public method;
13027         initializes the constraints and creates the `param->pklass'.
13028
13029 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
13030
13031         * reflection.h reflection.c: Use the new fields 'num_types', 
13032         'num_fields' and 'num_methods' to track the number of types etc.
13033
13034         * verify.c (check_corlib): Check corlib version number.
13035
13036 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
13037
13038         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13039         function works on all methods.
13040
13041 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
13042
13043         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13044         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13045         the custom_type_info flag of the transparent proxy.
13046         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13047         objects that supports IRemotingTypeInfo.
13048         * object.h: Added custom_type_info field in transparent proxy.
13049
13050 2003-12-06  Martin Baulig  <martin@ximian.com>
13051
13052         * class.c (mono_class_create_from_generic): Removed.
13053         (mono_class_from_generic): Check `ginst->klass' before doing
13054         anything else.  This is important to fully support "recursive"
13055         generic types.
13056
13057         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13058         empty `generic_inst->klass' before doing anything else.
13059
13060 2003-12-06  Dick Porter  <dick@ximian.com>
13061
13062         * verify.c: 
13063         * object.h:
13064         * icall.c:
13065         * locales.c: Use C structs to access class fields.  Don't do a
13066         conversion between MonoString and UChar because both are
13067         platform-endian UTF-16.  Compare now takes startindex and count
13068         parameters.  Add a char overload for IndexOf.  Speed up the
13069         invariant string IndexOf.
13070
13071 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
13072
13073         * Makefile.am (monosn_LDADD): Fix parallel build.
13074
13075 2003-12-04  Martin Baulig  <martin@ximian.com>
13076
13077         * icall.c
13078         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13079         (ves_icall_Type_make_array_type): New interncall.       
13080
13081 2003-12-04  Martin Baulig  <martin@ximian.com>
13082
13083         * locales.c: also change it in the !HAVE_ICU case.
13084
13085 2003-12-04  Dick Porter  <dick@ximian.com>
13086
13087         * icall.c:
13088         * locales.c: construct_compareinfo is now in CompareInfo, not
13089         CultureInfo.
13090
13091 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13092
13093         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13094         image->files array.
13095
13096         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13097         table as well.
13098
13099         * assembly.c (mono_assembly_load_references): Only load references
13100         once.
13101
13102         * class.c (mono_class_from_name): Avoid linear search of the 
13103         EXPORTEDTYPE table.
13104
13105         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13106
13107 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * image.h (MonoImage): Add 'field_cache' field.
13110
13111         * loader.c (mono_field_from_token): Cache field lookups.
13112         
13113         * reflection.c (mono_module_get_object): Fix name property.
13114
13115         * icall.c (ves_icall_get_enum_info): Update after changes to 
13116         mono_metadata_get_constant_index ().
13117
13118         * icall.c: Get rid of get_type_info icall, use a separate icall for
13119         each type property to avoid needless memory allocations. Fixes #51514.
13120
13121         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13122         to avoid needless binary searches.
13123
13124         * class.c (class_compute_field_layout): Move the initialization of
13125         field->def_value to mono_class_vtable ().
13126
13127         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13128         non-corlib types.
13129
13130         * object.c (mono_object_allocate): Make it inline.
13131
13132         * object.c (mono_object_allocate_spec): Make it inline.
13133         
13134 2003-12-02  Dick Porter  <dick@ximian.com>
13135
13136         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13137         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13138
13139 2003-12-01  Dick Porter  <dick@ximian.com>
13140
13141         * threads.c: Fix signature and call in CreateMutex and
13142         CreateEvent.
13143
13144 2003-12-01  Dick Porter  <dick@ximian.com>
13145
13146         * icall.c: 
13147         * locales.c: Implement string compares and searching
13148
13149         * object.h: Add extra Thread field
13150
13151 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13152
13153         * reflection.c (fixup_method): Add support for MonoCMethod.
13154
13155 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13156
13157         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13158
13159         * reflection.c (assembly_name_to_aname): Allow extra characters in
13160         assembly names. Fixes #51468.
13161
13162 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13163
13164         * exception.c (mono_exception_from_name_domain): New helper function.
13165
13166         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13167         exception object in the correct domain.
13168
13169         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13170         formatting + make a copy a the input data.
13171
13172         * loader.c (mono_get_method_from_token): Methods which contain
13173         native code do not have entries in the ImplMap.
13174
13175         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13176         Thanks to Gonzalo for spotting this.
13177         
13178         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13179         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13180
13181         * assembly.h (mono_assembly_load_from): Split the second part of 
13182         assembly loading into a new public function.
13183
13184         * exception.h (mono_get_exception_bad_image_format): New function.
13185
13186 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13187
13188         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13189         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13190         
13191         * icall.c: Add new icall for creating dynamic methods.
13192
13193         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13194
13195         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13196
13197         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13198         create a dynamic method.
13199
13200         * reflection.c (resolve_object): New helper function.
13201
13202         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13203         which manipulate it so they can also work on dynamic methods.
13204
13205         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13206         creating the MonoReflectionMethodAux structure if it is not needed.
13207         
13208         * reflection.h verify.c: Update after changes to object layout.
13209
13210         * reflection.c (method_builder_encode_signature): Fix compilation on
13211         gcc 2.95.x.
13212
13213 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13214
13215         * appdomain.h: Added support for context static fields. Added static_data
13216           field to MonoAppContext and renamed thread_static_fields to a more
13217           generic special_static_fields in MonoAppDomain, since it can now contain
13218           context static fields.
13219         * domain.c: Updated hashtable name.
13220         * object.c: Replaced field_is_thread_static() for a more generic
13221           field_is_special_static() which also checks for context static attribute.
13222           In mono_class_vtable(), added support for static context fields.
13223         * threads.c: Changed methods that manage thread static fields to more
13224           generic methods so they can be reused both for thread and context static
13225           data.
13226         * threads.h: Declared some new methods.
13227
13228 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13229
13230         * reflection.h: Update after changes to the managed types.
13231
13232         * reflection.c (encode_custom_modifiers): New helper function.
13233
13234         * reflection.c (method_encode_signature): Emit custom modifiers.
13235
13236         * reflection.c (field_encode_signature): Emit custom modifiers.
13237
13238 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13239
13240         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13241
13242         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13243         implementation.
13244
13245         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13246         icall.
13247
13248         * object.c (mono_field_get_value_object): New function.
13249
13250         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13251         specific.
13252
13253 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13254
13255         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13256         return a preallocated out-of-memory exception instance.
13257
13258         * object.c (out_of_memory): Use the new function.
13259
13260         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13261         flag is before the custom modifiers. Fixes #49802.
13262
13263 2003-11-16  Martin Baulig  <martin@ximian.com>
13264
13265         * class.c (mono_class_is_open_constructed_type): Implemented the
13266         MONO_TYPE_GENERICINST case.
13267
13268 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13269
13270         * assembly.c (mono_assembly_fill_assembly_name): New function to
13271         fill out the MonoAssemblyName structure.
13272         (mono_assembly_open): Use the new function.
13273
13274         * icall.c (fill_reflection_assembly_name): New helper function.
13275
13276         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13277         new function.
13278
13279         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13280
13281 2003-11-15  Martin Baulig  <martin@ximian.com>
13282
13283         * class.c (mono_class_is_open_constructed_type): New public
13284         function; checks whether a type is an open constructed type,
13285         ie. whether it still contains type parameters.
13286         (mono_class_inflate_generic_type): If we're a type parameter and
13287         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13288         type.
13289
13290         * class.h (MonoGenericInst): Added `guint32 is_open'.
13291
13292         * loader.c (method_from_methodspec): Check whether we're an open
13293         or closed constructed type and set `ginst->is_open'.
13294
13295         * reflection.c (mono_reflection_bind_generic_parameters): Check
13296         whether we're an open or closed constructed type and set
13297         `ginst->is_open'.
13298         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13299         from open constructed types.
13300
13301 2003-11-15  Martin Baulig  <martin@ximian.com>
13302
13303         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13304         a generic instance (instead of a generic type declaration) with
13305         unbound generic parameters, bind them to our actual types.
13306
13307 2003-11-14  Martin Baulig  <martin@ximian.com>
13308
13309         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13310
13311         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13312         an interface type, populate `res->interfaces' with instantiated
13313         versions of all the interfaces we inherit.
13314
13315 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13316
13317         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13318         when MONO_PATH is set but doesn't contain the install dir.
13319
13320 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13321
13322         * icall.c:
13323         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13324         it's also implemented in base classes. Fixes bug #50927.
13325
13326 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13327
13328         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13329         if this method is called from a finalizer. Fixes #50913.
13330
13331 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13332
13333         * threads.c: Implement VolatileRead/VolatileWrite
13334
13335         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13336
13337 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13338
13339         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13340         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13341         2.95.3.
13342
13343         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13344         from Peter Ross (pro@missioncriticalit.com).
13345         
13346 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13347
13348         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13349
13350 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13351
13352         * assembly.c (mono_assembly_load_references): Disable check because it
13353         triggers on older corlibs which lots of people have.
13354
13355 2003-11-12  Jackson Harper  <jackson@ximian.com>
13356
13357         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13358         load corlib.dll if mscorlib.dll is not found.
13359         * assembly.h: Remove corlib name define.
13360         * class.c:
13361         * domain.c:
13362         * image.c: Change corlib name to mscorlib.
13363         
13364 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13365
13366         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13367
13368 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13369
13370         * appdomain.h: Added loader_optimization here to sync with the C#
13371         code, and add disallow_binding_redirects field.
13372
13373 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13374
13375         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13376
13377         * reflection.c (mono_image_build_metadata): Fix crash on modules
13378         with no types.
13379
13380         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13381
13382         * icall.c (ves_icall_get_method_info): Return callingConvention as
13383         well.
13384
13385         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13386         namespaces from the EXPORTEDTYPE table as well.
13387
13388         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13389         from all modules inside the assembly.
13390         
13391 2003-11-11  Martin Baulig  <martin@ximian.com>
13392
13393         * reflection.c (mono_reflection_bind_generic_parameters): Make
13394         this work for interfaces.
13395
13396 2003-11-11  Martin Baulig  <martin@ximian.com>
13397
13398         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13399
13400 2003-11-11  Martin Baulig  <martin@ximian.com>
13401
13402         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13403         "MonoInflatedMethod" and "MonoInflatedCtor".
13404
13405 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13406
13407         * reflection.c (resolution_scope_from_image): Use the assembly table
13408         from the manifest module, since other modules don't have it.
13409
13410         * debug-helpers.c (mono_type_full_name): New helper function.
13411
13412         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13413
13414         * image.c (mono_image_load_file_for_image): New public function which
13415         is a replacement for the load_file_for_image in class.c.
13416
13417         * assembly.c (mono_assembly_load_module): A wrapper for the function
13418         above which does assembly association and reference loading too.
13419
13420         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13421
13422 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13423
13424         * appdomain.c: not all of the attributes for the full assembly name
13425         are required and the order doesn't matter. Fixes bug #50787.
13426
13427 2003-11-10  Dick Porter  <dick@ximian.com>
13428
13429         * locales.c: Use platform-endian UTF16
13430
13431 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13432
13433         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13434         
13435 2003-11-10  Martin Baulig  <martin@ximian.com>
13436
13437         * metadata.c
13438         (mono_metadata_load_generic_params): Make this actually work.
13439
13440         * reflection.c (mono_reflection_bind_generic_parameters): If our
13441         parent is a generic instance, pass all the `types' to it, no
13442         matter whether it has the same number of type parameters or not.
13443
13444 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13445
13446         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13447
13448         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13449         assignment code to this function so it gets called recursively for all
13450         modules.
13451
13452         * image.c (load_modules): Remove the assembly assignment since it is
13453         now done by mono_assembly_load_references.
13454         
13455         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13456         Add 'module' argument.
13457         (mono_module_get_types): New helper function.
13458         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13459
13460 2003-11-08  Martin Baulig  <martin@ximian.com>
13461
13462         * class.c (mono_class_inflate_generic_method): Interface method
13463         don't have a header.
13464
13465         * reflection.c (mono_image_get_methodspec_token): Take an
13466         additional `MonoGenericInst *' argument instead of reading it from
13467         the header; this is necessary to support interfaces.
13468         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13469         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13470         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13471         argument.
13472
13473         * reflection.h (MonoReflectionInflatedMethod): Added
13474         `MonoGenericInst *ginst'.
13475
13476 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13477
13478         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13479
13480 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13481
13482         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13483
13484 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13485
13486         * reflection.c 
13487         (reflection_methodbuilder_from_method_builder):
13488         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13489         initialize a ReflectionMethodBuilder structure.
13490         (mono_image_get_methodbuilder_token):
13491         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13492         tokens which point to types in another module inside the same assembly.
13493
13494         * reflection.c: Use the new helper functions.
13495         
13496         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13497
13498         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13499         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13500
13501         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13502         neccesary.
13503
13504         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13505         current module. Emit the manifest only for the main module.
13506
13507         * reflection.c (mono_image_create_token): Add assertion when a 
13508         memberref needs to be created.
13509
13510         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13511
13512         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13513         larger buffer for the custom attribute blob. Fixes #50637.
13514         
13515 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13516
13517         * threadpool.c: notify listener on async processing handles after
13518         invoking the async callback. Thanks to Zoltan.
13519
13520 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13521
13522         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13523         avoid code duplication.
13524
13525         * reflection.h (MonoDynamicImage): New type which is currently unused,
13526         but will be used through the ref.emit code in place of 
13527         MonoDynamicAssembly.
13528
13529         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13530         object layout.
13531
13532         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13533         a MonoDynamicImage instead of just a MonoImage.
13534         
13535         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13536         icalls to ModuleBuilder but keep their semantics, so they will work
13537         with moduleb->assemblyb. This will change later.
13538         
13539 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13540
13541         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13542         object layout.
13543
13544         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13545         main module, since it is now done by the managed code.
13546
13547 2003-11-03  Martin Baulig  <martin@ximian.com>
13548
13549         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13550         `ginst->klass' here.
13551         (method_encode_methodspec): Don't use the `ginst->generic_method's
13552         klass if it's a generic instance, use `ginst->klass' in this case.
13553
13554 2003-11-03  Martin Baulig  <martin@ximian.com>
13555
13556         * reflection.c (mono_image_get_generic_method_param_info):
13557         Removed, use mono_image_get_generic_param_info() instead.
13558         (mono_image_get_type_info): Write the GenericParam table before
13559         the Method table.  This is neccessary because in the GenericParam
13560         table, type parameters of the class (ie. '!0' etc.) must come
13561         before the ones from its generic methods (ie. '!!0' etc).
13562
13563 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13564
13565         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13566
13567 2003-11-02  Martin Baulig  <martin@ximian.com>
13568
13569         * reflection.c (create_generic_typespec): Take a
13570         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13571         the generic parameters from it.
13572
13573 2003-11-02  Martin Baulig  <martin@ximian.com>
13574
13575         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13576         instead of a `MonoClassField *' since we just need the type.
13577         (create_generic_typespec): New static function.  Creates a
13578         TypeSpec token for a generic type declaration.
13579         (mono_image_get_generic_field_token): New static function.
13580         (mono_image_create_token): If we're a FieldBuilder in a generic
13581         type declaration, call mono_image_get_generic_field_token() to get
13582         the token.
13583
13584 2003-11-02  Martin Baulig  <martin@ximian.com>
13585
13586         * reflection.h
13587         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13588         `MonoReflectionGenericInst *declaring_type' and
13589         `MonoReflectionGenericInst *reflected_type' fields.
13590
13591         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13592         `MonoReflectionGenericInst *declaring_type' and a
13593         `MonoReflectionGenericInst *reflected_type' argument instead of a
13594         single `MonoReflectionGenericInst *type' one.  Set
13595         `res->declaring_type' and `res->reflected_type' from them.
13596         (mono_reflection_inflate_field): Likewise.      
13597
13598 2003-11-02  Martin Baulig  <martin@ximian.com>
13599
13600         * class.c (mono_class_setup_vtable): Don't store generic methods
13601         in the vtable.  
13602
13603 2003-11-02  Martin Baulig  <martin@ximian.com>
13604
13605         * reflection.h (MonoReflectionGenericInst): Added
13606         `MonoReflectionType *declaring_type'.
13607
13608         * reflection.c (mono_reflection_bind_generic_parameters): Use
13609         `if (tb->parent)' instead of `klass->parent'.
13610
13611 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13612
13613         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13614         with an empty ASSEMBLY table.
13615
13616         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13617         variable in the inner and outer loops.
13618
13619 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13620
13621         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13622         argument.
13623
13624         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13625         
13626         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13627         icalls. Instead, do everything in managed code. This is needed since
13628         it is hard to restore the original domain etc. in unmanaged code in the
13629         presence of undeniable exceptions.
13630
13631         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13632         New icalls to push and pop appdomain refs.
13633
13634 2003-10-31  Martin Baulig  <martin@ximian.com>
13635
13636         * class.c (inflate_generic_type): Renamed to
13637         mono_class_inflate_generic_type() and made it public.
13638
13639         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13640         New interncall.
13641
13642         * loader.c (mono_field_from_memberref): Also set the retklass for
13643         typespecs.
13644
13645         * fielder.c (mono_image_get_inflated_field_token): New static
13646         method; creates a metadata token for an inflated field.
13647         (mono_image_create_token, fixup_method): Added support for
13648         "MonoInflatedField".
13649         (fieldbuilder_to_mono_class_field): New static function.
13650         (mono_reflection_inflate_field): New public function.
13651
13652         * reflection.h
13653         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13654         (MonoReflectionInflatedField): New typedef.     
13655
13656 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13657
13658         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13659         for Solaris and other platforms without s6_addr16
13660
13661 2003-10-30  Martin Baulig  <martin@ximian.com>
13662
13663         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13664         argument instead of two.
13665         (mono_class_inflate_generic_signature): Likewise.
13666         (inflate_generic_header): Likewise.
13667         (mono_class_inflate_generic_method): Likewise.  In addition, if
13668         `ginst->klass' is set, it becomes the new `method->klass'.
13669
13670         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13671         field.
13672
13673         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13674         first byte. [FIXME]
13675         (method_encode_methodspec): If we have generic parameters, create
13676         a MethodSpec instead of a MethodRef.
13677         (fixup_method): Added support for "MonoInflatedMethod" and
13678         "MonoInflatedCtor".
13679         (mono_image_create_token): Added support for "MonoInflatedMethod"
13680         and "MonoInflatedCtor".
13681         (inflated_method_get_object): New static function; returns a
13682         managed "System.Reflection.MonoInflatedMethod" object.
13683         (mono_reflection_bind_generic_method_parameters): Return a
13684         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13685         (mono_reflection_inflate_method_or_ctor): Likewise.
13686         (mono_image_get_generic_method_param_info): Initialize unused
13687         fields to zero.
13688         (mono_image_get_generic_param_info): Likewise.
13689
13690         * reflection.h (MonoReflectionInflatedMethod): New public
13691         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13692         "S.R.MonoInflatedCtor" classes.
13693
13694         * loader.c (method_from_memberref): If we're a TypeSpec and it
13695         resolves to a generic instance, inflate the method.
13696
13697 2003-10-28  Dick Porter  <dick@ximian.com>
13698
13699         * object.c (mono_runtime_run_main): Convert command-line arguments
13700         into utf8, falling back to the user's locale encoding to do so.
13701
13702 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13703
13704         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13705         at this time.
13706
13707         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13708
13709         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13710         up icalls at method definition time. Partially fixes #33569.
13711
13712 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13713
13714         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13715         marshalling of arrays. Fixes #50116.
13716
13717         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13718
13719         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13720         points to a vtable in the dying appdomain.
13721
13722         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13723         listeners into unmanaged code inside the lock.
13724
13725         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13726         domains and add some comments.
13727
13728 2003-10-25  Martin Baulig  <martin@ximian.com>
13729
13730         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13731
13732         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13733
13734         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13735         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13736         currently parsing.  Create the generic class and store it in
13737         `generic_inst->klass' before parsing the type arguments.  This is
13738         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13739         for an example.
13740         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13741         to support recursive typespec entries.
13742
13743         * class.c (mono_class_setup_parent): If our parent is a generic
13744         instance, we may get called before it has its name set.
13745         (mono_class_from_generic): Splitted into
13746         mono_class_create_from_generic() and mono_class_initialize_generic().
13747
13748 2003-10-25  Martin Baulig  <martin@ximian.com>
13749
13750         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13751         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13752         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13753         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13754
13755         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13756         (create_typespec): Likewise.
13757         (mono_reflection_bind_generic_parameters): Return a
13758         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13759         (mono_reflection_inflate_method_or_ctor): New public function.
13760
13761         * reflection.h (MonoReflectionGenericInst): New typedef.        
13762
13763 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13764
13765         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13766         inside the domain lock. Fixes #49993.
13767         
13768         * object.c (mono_class_vtable): When typed allocation is used, 
13769         allocate vtables in the GC heap instead of in the mempool, since the
13770         vtables contain GC descriptors which are used by the collector even
13771         after the domain owning the mempool is unloaded.
13772
13773         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13774
13775         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13776         reflect what it does. Also invalidate mempools instead of freeing
13777         them if a define is set.
13778
13779         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13780         of the appdomain.
13781         
13782         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13783         hold the finalizable objects in this domain.
13784
13785         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13786         appdomain.
13787
13788         * appdomain.c (mono_domain_set): New function to set the current
13789         appdomain, but only if it is not being unloaded.
13790
13791         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13792         appdomain which is being unloaded.
13793         
13794         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13795         unloading of the root appdomain.
13796
13797         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13798         icall to execute a method in another appdomain. Intended as a 
13799         replacement for InternalSetDomain, which can confuse the code 
13800         generation in the JIT.
13801
13802         * appdomain.c (mono_domain_is_unloading): New function to determine
13803         whenever an appdomain is unloading.
13804
13805         * appdomain.c (mono_domain_unload): New function to correctly unload
13806         an appdomain.
13807
13808         * assembly.c (mono_assembly_load_references): Check that an assembly
13809         does not references itself.
13810
13811         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13812         domain manually, it asks the finalizer thread to do it, then waits for
13813         the result. Also added a timeout.
13814
13815         * icall.c: Register the new icalls.
13816
13817         * threads.h threads.c: Export the mono_gc_stop_world and 
13818         mono_gc_start_world functions.
13819         
13820         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13821         function to fill out the mempool with 0x2a.
13822
13823 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
13824
13825         * reflection.h (MonoReflectionMethodAux): New structure to store
13826         information which is rarely used, thus is not in the MonoMethod
13827         structure.
13828
13829         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
13830         store the aux info.
13831
13832         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
13833         and marshalling info into the aux structure.
13834
13835         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
13836         from the aux structure.
13837
13838         * loader.c (mono_method_get_param_names): Retrieve the param names from
13839         the aux structure.
13840         
13841 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
13842
13843         * exception.h exception.c: Add AppDomainUnloadedException && fix 
13844         warning.
13845
13846 2003-10-21  Dick Porter  <dick@ximian.com>
13847
13848         * socket-io.c
13849         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
13850         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
13851
13852 2003-10-21  Martin Baulig  <martin@ximian.com>
13853
13854         * reflection.c (mono_reflection_bind_generic_parameters):
13855         `klass->parent' is NULL for interfaces.
13856
13857 2003-10-21  Martin Baulig  <martin@ximian.com>
13858
13859         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13860
13861 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
13862
13863         * exception.c (mono_exception_from_name_msg): New helper function for
13864         creating exceptions and initializing their message field.
13865
13866         * exception.c: Simplify functions using the new helper.
13867
13868         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
13869         New function.
13870
13871         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
13872         mono_raise_exception, since otherwise gcc doesn't generate the function
13873         epilog for raise_exception, confusing the stack unwinding in the JIT.
13874         Fixes #45043.
13875
13876         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
13877         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
13878         Fixes #49499.
13879
13880 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13881
13882         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
13883         utf8.
13884
13885 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
13886
13887         * icall.c: Removed GetUninitializedObject method because
13888           AllocateUninitializedClassInstance does the same.
13889
13890 2003-10-18  Martin Baulig  <martin@ximian.com>
13891
13892         * class.c (inflate_generic_signature): Renamed to
13893         mono_class_inflate_generic_signature() and made it public.
13894         (my_mono_class_from_generic_parameter): New static function; if we
13895         don't already have the generic parameter's MonoClass, create a
13896         very simple one which is just used internally in the runtime and
13897         not passed back to managed code.
13898
13899         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
13900
13901         * metadata.h (MonoMethodSignature): Moved the
13902         `MonoGenericParam *gen_params' to the MonoMethodHeader.
13903         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
13904
13905         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
13906         ves_icall_MonoMethod_GetGenericArguments(); this is now an
13907         interncall on the MonoMethod class, not on MethodInfo.
13908         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
13909         calling mono_reflection_bind_generic_method_parameters() directly.
13910
13911         * loader.c (mono_method_get_signature): If this is a MethodSpec;
13912         return the already computed `method->signature'.
13913         (method_from_methodspec): New static function to load a method
13914         from a MethodSpec entry.
13915         (mono_get_method_from_token): Call the new method_from_methodspec()
13916         for MethodSpec tokens.  
13917         (mono_get_method_from_token): If we're a generic method, load the
13918         type parameters.
13919
13920         * reflection.c (mono_image_get_memberref_token): Allow
13921         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
13922         table.
13923         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
13924         (mono_image_create_token): First check whether it's a generic
13925         method (so we'd need to create a MethodSpec), then do the other
13926         two alternatives.
13927         (mono_reflection_bind_generic_method_parameters): Return a
13928         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
13929         called directly from the interncall.
13930
13931 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
13932
13933         * reflection.c (load_public_key): Move loading of the public key
13934         into managed code.
13935
13936         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
13937
13938         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
13939         fields.
13940
13941         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
13942         culture, hash_alg and public_key. Fixes #49555.
13943
13944 2003-10-17  Martin Baulig  <martin@ximian.com>
13945
13946         * class.h (MonoGenericInst): Moved this declaration here and added
13947         `MonoMethod *generic_method'.
13948
13949         * icall.c
13950         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
13951         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
13952
13953         * metadata.c (mono_metadata_type_equal): Two types of
13954         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
13955         index; ie. don't compare the address of the `MonoGenericParam'
13956         structure.
13957         (mono_metadata_load_generic_params): Removed the `MonoMethod
13958         *method' argument.
13959
13960         * metadata.h (MonoGenericInst): Moved declaration to class.h.
13961         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
13962
13963         * reflection.c (method_encode_signature): Encode the number of
13964         generic parameters.
13965         (encode_generic_method_sig): New static function.
13966         (method_encode_methodspec): New static function; creates an entry
13967         in the MethodSpec table for a generic method.
13968         (mono_image_get_methodspec_token): New static function.
13969         (mono_image_create_token): Call mono_image_get_methodspec_token()
13970         for generic methods.
13971         (mono_reflection_bind_generic_method_parameters): New public
13972         function.  Instantiates a generic method.
13973
13974 2003-10-16  Martin Baulig  <martin@ximian.com>
13975
13976         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
13977         *gen_params' here from MonoMethodHeader.
13978
13979         * metadata.c (mono_metadata_parse_method_signature): If we have
13980         generic parameters, initialize `method->gen_params' and then set
13981         the correct `type->data.generic_param' in all the parameters.
13982
13983 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
13984
13985         * threads.c (mono_threads_get_default_stacksize): New function to 
13986         return the default stacksize.
13987
13988         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
13989         termination of the finalizer thread, since the previous method had
13990         race conditions. Fixes #49628.
13991
13992         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
13993         as for the other managed threads.
13994
13995 2003-10-16  Martin Baulig  <martin@ximian.com>
13996
13997         * class.c (inflate_generic_signature): Copy `generic_param_count'
13998         and `gen_params'.
13999
14000         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14001         New interncall.
14002
14003         * metadata.c (mono_metadata_parse_method_signature): Actually set
14004         the `method->generic_param_count' here.
14005         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14006
14007 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
14008
14009         * object.h: Add a new field to TypedRef to simplify the implementation
14010         of the REFANY opcodes in the JIT.
14011
14012         * icall.c: Make use of the new field.
14013
14014         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14015         dynamically.
14016
14017 2003-10-15  Martin Baulig  <martin@ximian.com>
14018
14019         * class.c (mono_class_from_gen_param): Renamed to
14020         mono_class_from_generic_parameter() and moved most of the
14021         functionality from mono_reflection_define_generic_parameter()
14022         here; ie. we create a "real" class here.
14023         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14024         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14025         previously been called.
14026
14027         * class.h (MonoGenericParam): Moved the declaration of this struct
14028         here from metadata.h and added `MonoMethod *method'.
14029
14030         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14031         interncall.
14032
14033         * loader.c (mono_get_method_from_token): If we have any generic
14034         parameters, call mono_metadata_load_generic_params() to read them
14035         from the MONO_TABLE_GENERICPAR.
14036
14037         * metadata.c (mono_metadata_load_generic_params): Added
14038         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14039
14040         * metadata.h (MonoMethodSignature): Replaced
14041         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14042         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14043
14044         * reflection.c (mono_reflection_define_generic_parameter): Moved
14045         most of the functionality into the new
14046         mono_class_from_generic_parameter(); set the `method' field if
14047         we're a method parameter.       
14048
14049 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
14050
14051         * marshal.c (emit_struct_conv): if native size is 0
14052         emit no code.
14053
14054 2003-10-14  Martin Baulig  <martin@ximian.com>
14055
14056         * icall.c: The generics API has changed in the spec since it was
14057         added to System.Type; these modifications make it match the spec
14058         again.
14059         (ves_icall_Type_GetGenericParameters): Renamed to
14060         `ves_icall_Type_GetGenericArguments'.
14061         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14062         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14063         `ves_icall_MonoType_get_HasGenericArguments'.
14064         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14065         `ves_icall_MonoType_get_IsGenericParameter'.
14066         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14067         this is no interncall anymore.
14068         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14069         `ves_icall_TypeBuilder_get_IsGenericParameter'.
14070
14071 2003-10-14  Martin Baulig  <martin@ximian.com>
14072
14073         * reflection.c (mono_reflection_bind_generic_parameters): Also
14074         inflate generic methods if we're reading the class from IL.
14075
14076 2003-10-13  Martin Baulig  <martin@ximian.com>
14077
14078         * reflection.c (mono_reflection_define_generic_parameter): This
14079         method isn't called directly from the icall anymore; take a
14080         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14081         method generic parameters.
14082         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14083         (method_builder_encode_signature): Encode generic parameters.
14084         (mono_image_get_method_info): Write generic params to the
14085         MONO_TABLE_GENERICPARAM table.
14086
14087         * reflection.h (MonoReflectionMethodBuilder): Added
14088         `MonoArray *generic_params'.
14089
14090         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14091
14092         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14093         wrapper for mono_reflection_define_generic_parameter().
14094         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14095
14096 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14097
14098         * marshal.h: Add missing function to fix build.
14099
14100         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14101         the SetLastError pinvoke attribute.
14102
14103         * marshal.c (mono_marshal_set_last_error): New helper function called
14104         by the generated code.
14105         
14106         * marshal.c (mono_mb_emit_branch): New helper function.
14107
14108         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14109
14110         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14111         classes as parameters and return values of delegates. Fixes #29256. 
14112
14113 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14114
14115         * locales.c: use gint32 in non HAVE_ICU case
14116
14117 2003-10-11  Martin Baulig  <martin@ximian.com>
14118
14119         * mono-debug.c (mono_debug_add_method): Added a workaround for
14120         bug #48591.
14121
14122 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14123
14124         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14125         delegates passed to native code must use the STDCALL calling 
14126         convention. Fixes #35987.
14127
14128 2003-10-10  Martin Baulig  <martin@ximian.com>
14129
14130         * class.c (inflate_generic_type): If we're inflating for a generic
14131         type instance (and not for a generic method), return
14132         MONO_TYPE_MVAR unchanged.
14133
14134 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14135
14136         * string-icalls.c: Join ignores null strings in the source array.
14137         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14138         * threads.c: GetAvailableTheads is slightly more accurate.
14139
14140 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14141
14142         * threads.h threads.c : add mono_threads_set_default_stacksize
14143         and pass default to CreateThread calls.
14144
14145 2003-10-09  Dick Porter  <dick@ximian.com>
14146
14147         * icall.c:
14148         * locales.h:
14149         * locales.c: Internal calls for constructing CultureInfo and
14150         related objects from libicu (if its available.)
14151
14152 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14153
14154         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14155
14156 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14157
14158         * threadpool.c: added an argument to async_invoke_thread that is the
14159         item to process, pass the MonoAsyncResult to the thread start function
14160         when creating a new thread. This way we don't need to acquire any lock
14161         when we're creating a new thread. Readded a semaphore for faster
14162         response times (instead of that Sleep i added).
14163
14164 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14165
14166         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14167         get daylight change dates better on Windows, fix handling
14168         of platforms without tm_gmtoff.
14169
14170 2003-10-06  Martin Baulig  <martin@ximian.com>
14171
14172         * class.c (inflate_generic_method): Renamed to
14173         mono_class_inflate_generic_method() and made public.
14174         (mono_class_init): Don't inflate the generic methods here.
14175         (mono_class_from_generic): Added `gboolean inflate_methods'
14176         argument.  Inflate the methods here.
14177
14178         * loader.c (mono_method_get_param_names): Ignore instances of
14179         generic types for the moment.
14180
14181         * reflection.c (fixup_method): Added support for inflated methods.
14182         (mono_image_create_token): Use mono_image_get_methodref_token()
14183         for inflated methods.
14184         (mono_custom_attrs_from_param): Ignore instances of generic types
14185         for the moment.
14186         (mono_reflection_bind_generic_parameters): New public function.
14187         Moved all the functionality from
14188         ves_icall_Type_BindGenericParameters() here and added support for
14189         dynamic types.
14190         (mono_reflection_define_generic_parameter): Initialize
14191         `klass->methods' here.
14192
14193         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14194         functionality into mono_reflection_define_generic_parameter().
14195         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14196         TypeBuilder, return that TypeBuilder.
14197
14198 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14199
14200         * appdomain.c: removed mono_delegate_semaphore.
14201
14202         * threadpool.c:
14203         (mono_thread_pool_add): moved hash table creation inside and the thread 
14204         creation outside of the critical region.
14205         (mono_thread_pool_finish): removed obsolete code.
14206         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14207         continue or exit the thread depending on the queue.
14208
14209 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14210
14211         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14212         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14213         handle more bool marshalling options
14214
14215 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14216
14217         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14218         arrays of structs. Also add a more descriptive error message when
14219         a structure member is marshalled as LPArray.
14220
14221 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14222
14223         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14224         marshalling arrays of complex types. Fixes #29098. Also remove an
14225         usused and incomplete function.
14226
14227 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14228
14229         * gc.c: report heap_size - free_bytes as total memory allocated
14230         (bug#49362).
14231
14232 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14233
14234         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14235         fix timezone handling problems on Windows.
14236         
14237         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14238         asserts when the year is outside the range handled by ms the functions.
14239
14240         * class.c (setup_interface_offsets): If the class is an interface,
14241         fill out its interface_offsets slot.
14242
14243 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14244
14245         * threadpool.c: mark threadpool threads as background.
14246
14247 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14248
14249         * decimal.c - define DECINLINE to nothing if not using GCC
14250
14251 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14252
14253         * assembly.c: More refcount fixes.
14254
14255 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14256
14257         * string-icalls.c: if we're not trimming, return the same string.
14258         When not splitting, don't create a new string.
14259
14260 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14261
14262         * image.c:
14263         (mono_image_open): increment the ref_count inside the critical section.
14264
14265 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14266
14267         * image.c (mono_image_open): Fix reference counting bug.
14268
14269 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14270
14271         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14272         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14273         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14274         mono_lookup_pinvoke_call throws.        
14275
14276 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14277
14278         * reflection.c (mono_reflection_parse_type): Fix #49114.
14279
14280         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14281         temporary workaround for cygwin header problem.
14282
14283         * object.c (mono_object_isinst): Synchronize this with the code
14284         generated by the JIT for casts.
14285
14286 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14287
14288         * reflection.c (encode_type): Fix #38332.
14289
14290 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14291
14292         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14293         the original method from the wrapper method.
14294
14295 2003-09-25  Martin Baulig  <martin@ximian.com>
14296
14297         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14298         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14299         (ves_icall_Type_get_IsGenericInstance): New interncall.
14300
14301 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14302
14303         * object.c: fix cast warning in big endian code.
14304
14305 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14306
14307         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14308         
14309 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14310
14311         * assembly.c: don't call check_env from mono_assembly_load. It's
14312         already done once in mono_assemblies_init and may cause headaches when
14313         multiple threads are loading assemblies.
14314
14315 2003-09-19  Martin Baulig  <martin@ximian.com>
14316
14317         * reflection.c (mono_reflection_define_generic_parameter): Don't
14318         allocate `klass->methods', set `klass->flags' to
14319         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14320
14321 2003-09-18  Martin Baulig  <martin@ximian.com>
14322
14323         * class.c (mono_class_init): Don't create `class->methods' if it's
14324         already initialized.
14325
14326         * metadata.c (mono_metadata_load_generic_params): Make this
14327         actually work.
14328
14329         * reflection.c (mono_reflection_define_generic_parameter): Set
14330         parent class and interfaces from the constraints.
14331
14332         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14333         to keep this struct in sync with the declaration in TypeBuilder.cs.
14334
14335 2003-09-17  Martin Baulig  <martin@ximian.com>
14336
14337         * metadata.h (MonoType): Replaced the data's `int type_param'
14338         field with `MonoGenericParam *generic_param'.
14339         (MonoGenericParam): Added `MonoClass *klass'.
14340
14341         * class.c (mono_class_from_gen_param): Removed the
14342         `MonoImage *image' and `int type_num' arguments.
14343
14344         * metadata.c (mono_metadata_parse_generic_param): New static
14345         method; creates a MonoGenericParam which just contains the index.
14346         (do_mono_metadata_parse_type): Call
14347         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14348         MONO_TYPE_MVAR.
14349
14350         * reflection.c (mono_image_typedef_or_ref): Generic type
14351         parameters may be in the same assembly, but never use a typedef
14352         for them.
14353         (mono_reflection_define_generic_parameter): We're now creating a
14354         "real" class for the type parameter; it's now safe to call
14355         mono_class_from_mono_type() on the class'es type, it'll do the
14356         right thing.
14357
14358 2003-09-16  Martin Baulig  <martin@ximian.com>
14359
14360         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14361         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14362         the `symfile' data structure must be fully initialized before it
14363         gets added to the table.
14364
14365 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14366
14367         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14368
14369         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14370         class init trampolines.
14371
14372 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14373
14374         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14375         to the built-in profiler to turn off time and allocation profiling
14376         respectively.
14377
14378 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14379
14380         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14381         g_direct_equal.
14382
14383         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14384         in human readable form.
14385
14386 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14387
14388         * reflection.c icall.c: Fixed warnings.
14389
14390         * image.c (load_class_names): Use a temporary hash table to hold the
14391         namespaces in order to avoid doing many string comparisons.
14392
14393         * image.h: Fix typo.
14394
14395         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14396         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14397         since the NULL case is short-circuited inside g_hash_table_lookup, 
14398         leading to better performance.  
14399
14400         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14401         obtain the first custom attribute for a given index. Depends on the
14402         CustomAttribute table being sorted by the parent field.
14403
14404         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14405         for better performance.
14406
14407 2003-09-07  Martin Baulig  <martin@ximian.com>
14408
14409         * class.c (mono_class_init): If we're a generic instance, inflate
14410         all our methods instead of loading them from the image.
14411         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14412
14413 2003-09-07  Martin Baulig  <martin@ximian.com>
14414
14415         * mono-debug-debugger.c: Added support for constructors.
14416
14417 2003-09-06  Martin Baulig  <martin@ximian.com>
14418
14419         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14420         New interncall.
14421
14422         * reflection.c (mono_reflection_setup_generic_class): Call
14423         ensure_runtime_vtable() to create the vtable.
14424
14425 2003-09-05  Martin Baulig  <martin@ximian.com>
14426
14427         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14428         MONO_TYPE_MVAR.
14429
14430 2003-09-04  Martin Baulig  <martin@ximian.com>
14431
14432         * reflection.c (mono_reflection_define_generic_parameter): Generic
14433         parameters start with zero.
14434
14435 2003-09-04  Martin Baulig  <martin@ximian.com>
14436
14437         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14438
14439         * reflection.h (MonoReflectionGenericParam): New typedef.
14440         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14441         the generic parameters from the managed TypeBuilder.
14442
14443         * reflection.c (mono_reflection_define_generic_parameter): New function.
14444         (mono_reflection_create_runtime_class): Encode generic parameters.
14445         (mono_reflection_setup_generic_class): New function; this is
14446         called after adding adding all generic params to the TypeBuilder.
14447         (encode_type): Added MONO_TYPE_VAR.
14448
14449 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14450
14451         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14452         here from the JIT.
14453
14454         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14455         load hook.
14456
14457 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14458
14459         * reflection.h reflection.c class.h class.c: Delete duplicate 
14460         definition of mono_type_get_name () from reflection.c and export the
14461         one in class.c.
14462
14463         * class.c: Class loading fixes from Bernie Solomon 
14464         (bernard@ugsolutions.com).
14465
14466         * reflection.c: Endianness fixes from Bernie Solomon 
14467         (bernard@ugsolutions.com).
14468         
14469 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14470
14471         * assembly.h assembly.c: Define a file format version for AOT
14472         libraries.
14473         
14474         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14475
14476         * appdomain.h (MonoJitInfo): New field to determine whenever the
14477         code is domain neutral.
14478         
14479 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14480
14481         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14482
14483 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14484
14485         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14486         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14487         Avoid caching the result since strings must be domain specific. Fixes
14488         #48050.
14489
14490 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * marshal.c (mono_marshal_init): Make this callable multiple times
14493         since it is hard to find a correct place to call it.
14494
14495         * object.c (mono_runtime_class_init): Execute static constructors in
14496         the correct appdomain.
14497
14498         * image.c (build_guid_table): Handle the case when multiple images have
14499         the same GUID.
14500
14501 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14502
14503         * icall.c: added a couple of icalls for System.Web.
14504
14505 2003-08-28  Martin Baulig  <martin@ximian.com>
14506
14507         * icall.c (ves_icall_Type_BindGenericParameters): Use
14508         `klass->generic_inst' instead of `&klass->byval_arg' in the
14509         mono_type_get_object() call.  The returned type must be
14510         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14511
14512 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14513
14514         * NOTES: New file.
14515
14516         * object.c (mono_class_proxy_vtable): Make it thread safe.
14517
14518         * pedump.c: Fix warning.
14519
14520         * object.c appdomain.h: Get rid of metadata_section. 
14521         It is no longer needed and it was causing deadlocks with domain->lock.
14522
14523         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14524
14525 2003-08-26  Martin Baulig  <martin@ximian.com>
14526
14527         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14528
14529 2003-08-26  Martin Baulig  <martin@ximian.com>
14530
14531         * pedump.c (main): Call mono_metadata_init(),
14532         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14533         and mono_loader_init().
14534
14535 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14536
14537         * loader.h: Add missing include to fix build.
14538
14539         * image.h: mono_image_load_references is no more.
14540
14541         * assembly.c: Reworked assembly loading to make it really thread safe.
14542         After these changes, the assembly returned by mono_assembly_open is
14543         fully initialized, i.e. all its references assemblies are loaded.
14544
14545         * assembly.c (mono_image_load_references): Renamed to 
14546         mono_assembly_load_references, and made private, since clients no
14547         longer need to call it.
14548
14549         * class.c: Removed calls to mono_assembly_load_references, since it was
14550         a source of deadlocks.
14551
14552         * loader.h loader.c class.h class.c: Protect data structures using a 
14553         new lock, the loader lock.
14554
14555         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14556         GPtrArrays only when needed.
14557
14558         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14559         into empty structures by mcs. Fixes pinvoke7.cs.
14560         
14561         * domain.c (mono_init): Call a new initialization function.
14562
14563         * appdomain.c (mono_runtime_init): Call the new initializer function
14564         of the marshal module.
14565
14566         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14567         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14568
14569         * marshal.h marshal.c: Added locks around the wrapper caches to make
14570         this module thread safe.
14571
14572         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14573         this argument. Fixes pinvoke1.exe.
14574
14575 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14576
14577         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14578         enumeration of values. Removed fields to store remote call output values in
14579         MonoAsyncResult. Not needed any more.
14580         * object.c: Initialize call_type and async_result fields in mono_message_init.
14581         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14582         dispatching the message.
14583         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14584         async call to finish. To do it use a message with EndInvoke call type.
14585
14586 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14587
14588         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14589         determines whenever a method has marshalling info.
14590
14591 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14592
14593         * assembly.c: fix the build on windows.
14594
14595 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14596
14597         * object.cs: Fixed bug #47785.
14598
14599 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14600
14601         * string-icalls.c (StringReplace): If their are no occurances of
14602         the old string found return a reference to the supplied
14603         string. This saves some memory and matches MS behavoir.
14604         
14605 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14606
14607         * socket-io.c: fixed compilation for systems that define AF_INET6
14608         and don't define SOL_IP/SOL_IPV6.
14609
14610 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14611
14612         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14613         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14614
14615         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14616
14617         * domain.c: Make this module thread safe.
14618
14619         * domain.c (mono_init): Call new initialization function.
14620
14621         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14622         reference types too. Fixes #38812.
14623
14624         * image.c (mono_image_init): Fixed warnings.
14625
14626         * class.c (mono_class_from_typeref): Handle assembly load failure
14627         correctly.
14628
14629         * appdomain.c (add_assemblies_to_domain): Handle the case when
14630         the references of an assembly are not yet loaded.
14631
14632         * metadata.c image.c assembly.c: Moved initialization of global
14633         variables to a separate function called at startup since lazy 
14634         initialization of these variables is not thread safe.
14635         
14636         * image.c assembly.c: Made this module thread safe by adding locks in 
14637         the appropriate places.
14638
14639         * domain.c (mono_init): Call the new initialization functions of the
14640         three modules.
14641
14642 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14643
14644         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14645           make a direct call. It is proxy's work to make the call asynchronous.
14646           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14647           the return values.
14648         * object.cs: mono_method_call_message_new(): read AsyncResult and
14649           state object from parameters list, if this info is requested.
14650         * object.h: Added fields to store remote call output values in
14651           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14652
14653 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14654
14655         * object.h: add needed fields to MonoThread.
14656         * threads.c, threads.h: allow registering a function to cleanup data
14657         allocated per thread by the JIT.
14658
14659 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14660
14661         * loader.h: portability fix by Bernie Solomon
14662         * <bernard@ugsolutions.com>.
14663
14664 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14665
14666         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14667         return a MonoArray. This simplifies the code and also ensures that
14668         the cache allways contains an object reference as a value.
14669
14670         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14671         function.
14672
14673 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14674
14675         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14676         fixes a problem with byte ordering when getting the address family for
14677         a socket.
14678
14679 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14680
14681         * .cvsignore: Added monosn.
14682
14683         * reflection.h reflection.c loader.c: Added support for parameter
14684         marshalling to dynamically created types. Fixes #47295.
14685
14686 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14687
14688         * rand.c: remove useless warnings.
14689
14690 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14691
14692         * class.c: implemented ldtoken for methods and fieldrefs.
14693
14694 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14695
14696         * threadpool.c: when mono_async_invoke was called, no one took care of
14697         monitoring the queue. So if the method invoked took some time and we
14698         got new async invoke requests after 500 ms (the thread created waited
14699         that long in WaitForSingleObject), the new async invoke was not called
14700         until the previous one finished.
14701
14702         This is fixed now. Thanks to Totte for helping with it.
14703
14704 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14705
14706         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14707
14708 2003-08-11  Martin Baulig  <martin@ximian.com>
14709
14710         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14711
14712 2003-08-06  Martin Baulig  <martin@ximian.com>
14713
14714         * mono-debug-debugger.c: Added support for static fields,
14715         properties and methods.
14716
14717 2003-08-06  Martin Baulig  <martin@ximian.com>
14718
14719         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14720         make this work for applications with multiple application domains.
14721
14722 2003-08-04  Martin Baulig  <martin@ximian.com>
14723
14724         * mono-debug-debugger.c: Completely reworked the type support; the
14725         most important thing is that we're now just using one single
14726         `MonoType' instance per type.
14727
14728 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14729
14730         * mono-endian.h, mono-endian.c, icall.c: Added icall
14731         ves_icall_System_Double_AssertEndianity to assert double word endianity
14732         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14733
14734 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14735
14736         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14737         support, icalls and fixes.
14738
14739 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14740
14741         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14742         classes that are a punctuation character in .NET is not the same a
14743         g_unichar_ispunct.
14744
14745 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14746
14747         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14748
14749 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14750
14751         * icall.c: Add new MemCopy internalcall.
14752         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14753         Simplified code; It is not necessary to handle all the cases here,
14754         as the C# code takes care of it.  Only handle the case of the name
14755         resource embedded into the assembly.
14756
14757         Changed signature to return the data pointer and the size of the
14758         data. 
14759
14760 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14761
14762         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14763         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14764
14765 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14766
14767         * socket-io.c: ignore EINTR error in select.
14768
14769 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14770
14771         * class.h, class.c: removed unused subclasses field in MonoClass.
14772
14773 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14774
14775         * icall.c: improve fix of get_base_definition(). If the parent class
14776           doesn't have the mehod, look at the parent of the parent.
14777         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14778           to check if a parameter is an in or out parameter
14779           (PARAM_ATTRIBUTE_IN is not set by default).
14780           mono_method_return_message_restore(): Use mono_class_value_size to
14781           get the size of a value type. mono_type_stack_size (parameterType)
14782           does not return the correct value if parameterType is byRef.
14783           mono_load_remote_field(), mono_load_remote_field_new(),
14784           mono_store_remote_field(), mono_store_remote_field_new():
14785           raise exception if the remote call returns an exception.
14786
14787 2003-07-28  Martin Baulig  <martin@ximian.com>
14788
14789         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14790         method.  This is a wrapper around mono_runtime_invoke() which
14791         boxes the instance object if neccessary.
14792
14793 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14794
14795         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14796         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14797
14798 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14799
14800         * icall.c: disable mcs bug workaround.
14801
14802 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14803
14804         * object.c (mono_runtime_class_init): Take the metadata_section
14805         mutex before obtaining the domain mutex.
14806
14807         * appdomain.h: Added definition of metadata_section mutex here. 
14808
14809         * object.c: define metadata_mutex here.
14810
14811 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14812
14813         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14814         fixed.
14815
14816 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14817
14818         * reflection.c: Fix bug #46669
14819
14820 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14821
14822         * exception.c:
14823         * exception.h:
14824         * icall.c:
14825         * object.h: fill in the type name for TypeLoadException.
14826
14827 2003-07-23  Ravi Pratap  <ravi@ximian.com>
14828
14829         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
14830         relationship between TypeBuilders while compiling corlib) and bug
14831         45993 (Array types returned from the runtime while compiling
14832         corlib were from the loaded corlib).
14833
14834 2003-07-22  Martin Baulig  <martin@ximian.com>
14835
14836         * mono-debug-debugger.c: Reworked the type support a bit more;
14837         distinguish between types and classes.
14838
14839 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
14840
14841         * icall.c: add IsArrayImpl icall.
14842
14843 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
14844
14845         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
14846         initializing real_size only once. Also fix bug #46602.
14847
14848 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
14849
14850         * object.c: Renamed mono_metadata_section to metadata_section.
14851
14852 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
14853
14854         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
14855           empty array if the type is an array. Fixed.
14856           ves_icall_MonoMethod_get_base_definition: if the base method
14857           is abstract, get the MethodInfo from the list of methods of
14858           the class.
14859         * reflection.c: ParameterInfo.PositionImpl should be zero-based
14860           and it was 1-based. Fixed in mono_param_get_objects.
14861
14862 2003-07-20  Martin Baulig  <martin@ximian.com>
14863
14864         * mono-debug.h: Set version number to 31.
14865         (mono_debug_init): Added `MonoDomain *' argument.
14866
14867         * mono-debug-debugger.c: Reworked the type support; explicitly
14868         tell the debugger about builtin types; pass the `klass' address to
14869         the debugger.
14870
14871 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
14872
14873         * image.c: Allow new metadata tables to be loaded without a
14874         warning. Also update the warning message to give the new constant value.
14875                 
14876 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
14877
14878         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
14879         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
14880         array type representation changes.
14881
14882 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
14883
14884         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
14885         on Environment.Exit () call.
14886
14887 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14888
14889         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
14890         requires a matching corlib.
14891
14892 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14893
14894         * Changelog: My editor decided to add a CR to each line. Sorry about that.
14895           Committed again without the CRs.
14896         
14897 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
14898
14899         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
14900           getting it from the "this" socket instance. Did not work
14901           if the socket is a subclass of Socket.
14902           Also fixed bug #35371.
14903
14904 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
14905
14906         * metadata.c: fixed size for TypedByRef.
14907         * loader.c: when searching for a method, consider the vararg amrker.
14908         * unicode.c, decimal.c: constify some arrays.
14909
14910 2003-07-15  Dick Porter  <dick@ximian.com>
14911
14912         * socket-io.c: Fixed compilation for gcc < 3.2.
14913
14914         Fixed compilation for machines that don't have AF_INET6 (thanks to
14915         Bernie Solomon <bernard@ugsolutions.com> for that part.)
14916
14917         Fixed compile warnings.
14918         
14919         Fixed formatting and line endings.
14920
14921 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
14922
14923         * socket-io.h:
14924         * socket-io.c: Added IPv6 support.
14925
14926 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
14927
14928         * class.c (mono_class_is_assignable_from): New function to implement
14929         the is_assignable_from logic. Used by mono_object_isinst, 
14930         Type::IsAssignableFrom () and the interpreter.
14931
14932         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
14933         Object, even interfaces.
14934         
14935         * object.c (mono_object_isinst): Implement in terms of 
14936         is_assignable_from.
14937
14938         * icall.c (ves_icall_type_is_assignable_from): New icall.
14939
14940 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
14941
14942         * domain.c (foreach_domain): fix compiler warning.
14943
14944 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
14945
14946         * image.c (load_metadata_ptrs): use g_strndup because strndup is
14947         not available on all plattforms
14948
14949 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
14950
14951         * image.h image.c: Store the metadata version string in MonoImage.
14952         * icall.c: New icall to retrieve the image version.
14953         * reflection.c (create_dynamic_image): Fill in the image version field
14954         * reflection.c (build_compressed_metadata): Use the image version
14955         from the image structure.
14956
14957 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14958
14959         * appdomain.c: modified comment.
14960         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
14961         That will be its last iteration when mono_gc_cleanup is called from
14962         mono_runtime_cleanup and before the domain is unloaded.
14963
14964         Fixes bug #45962.
14965
14966 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
14967
14968         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
14969         attributes.
14970
14971 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14972
14973         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
14974         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
14975         Bernie Solomon <bernard@ugsolutions.com>.
14976
14977 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14978
14979         * object.c, object.h: provide mono_object_new_fast() for faster
14980         allocation in some special cases.
14981
14982 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
14983
14984         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
14985         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
14986
14987 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
14988
14989         * threadpool.c: fix leaks.
14990
14991 2003-07-01  Dick Porter  <dick@ximian.com>
14992
14993         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
14994         using MonoGHashTables.  Fixes threadpool bug posted to list.
14995
14996 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14997
14998         * image.h, image.c: added support to load an assembly from a byte array.
14999         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
15000         assembly bundle support.
15001
15002 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
15003
15004         * threadpool.c (mono_thread_pool_add): keep a reference to the
15005         AsyncResult to prevent GC
15006
15007 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15008
15009         * class.c: leak fix.
15010
15011 2003-06-25  Dick Porter  <dick@ximian.com>
15012
15013         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15014         for the async object, the WaitHandle object will close the handle.
15015         Fixes bug 45321.
15016
15017 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15018
15019         * class.c: in mono_array_class_get (), lookup from the hash with the
15020         same type we insert: this works around a bug in
15021         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15022         lluis. The real fix will have to wait for after the release.
15023
15024 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15025
15026         * icall.c: fix memory leak when getting type members.
15027
15028 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15029
15030         * reflection.c: added more pubtoken special cases.
15031
15032 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15033
15034         * class.c: handle field offset correctly when class size
15035         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15036
15037 2003-06-20  Martin Baulig  <martin@ximian.com>
15038
15039         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15040         *image' field.
15041
15042 2003-06-20  Martin Baulig  <martin@ximian.com>
15043
15044         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15045
15046 2003-06-20  Martin Baulig  <martin@ximian.com>
15047
15048         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
15049         just distinguish between variables in registers and variables at
15050         an offset relative to a register.
15051
15052 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15053
15054         * icall.c: #ifdef out latest changes until mcs is fixed.
15055
15056 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15057
15058         * icall.c: return members in metadata order.
15059
15060 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15061
15062         * icall.c: avoid infinite loop in GetTimeZoneData.
15063
15064 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15065
15066         * icall.c: added Marshal.Prelink/All icalls.
15067
15068 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15069
15070         * object.c, object.h: fix warnings and do some overflow checking
15071         when creating arrays.
15072
15073 2003-06-17  Dick Porter  <dick@ximian.com>
15074
15075         * file-io.h:
15076         * file-io.c: File attributes need to be tweaked slightly when
15077         passed from the managed to the w32 world.
15078
15079 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15080         * profiler.h profiler-private.h profiler.c: Rework last patch
15081         based on suggestion by Paolo.
15082         
15083 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15084
15085         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15086         instruction level coverage data collection.
15087         * profiler.h profiler.c (: Added new callback function which can be
15088         used by the profiler to limit which functions should have coverage
15089         instrumentation.
15090         * profiler.c (mono_profiler_load): Call g_module_build_path to
15091         generate the file name of the profiler library.
15092
15093 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15094
15095         * profiler.c, profiler.h, profiler-private.h: added basic block 
15096         coverage profiling API.
15097
15098 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15099
15100         * reflection.c (mono_reflection_create_runtime_class): Add support
15101         for events in dynamically generated code.
15102
15103         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15104         not allocated.
15105
15106 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15107
15108         * icall.c: when getting timezone info, return reasonable values if we
15109         can't get the actual data.
15110
15111 2003-06-14  Dick Porter  <dick@ximian.com>
15112
15113         * threads.c (start_wrapper): Remove the reference to the thread
15114         object in the TLS data, so the thread object can be finalized.
15115         This won't be reached if the thread threw an uncaught exception,
15116         so those thread handles will stay referenced :-( (This is due to
15117         missing support for scanning thread-specific data in the Boehm GC
15118         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15119
15120 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15121
15122         * reflection.c: ensure streams and tables are first allocated with
15123         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15124
15125 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15126
15127         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15128
15129 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15130
15131         * reflection.c (mono_reflection_create_runtime_class): Add support for
15132         properties to dynamically created classes.
15133         * reflection.c: Fix a few places where non-MonoObjects were inserted
15134         into the tokens hashtable.
15135
15136 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15137
15138         * object.c: some support to handle out of memory exceptions.
15139
15140 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15141
15142         * marshal.c (mono_marshal_get_native_wrapper): support reference
15143         return types
15144
15145 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15146
15147         * object.h, object.c: more portability stuff from Bernie Solomon.
15148         Unexport mono_object_allocate(). Added mono_object_unbox ().
15149         Set exitcode when an unhandled exception is thrown.
15150
15151 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15152
15153         * marshal.c (mono_marshal_get_native_wrapper): use custom
15154         marshaler for return types.
15155
15156 2003-06-10  Dick Porter  <dick@ximian.com>
15157
15158         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15159         ip_mreq is available
15160
15161 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15162
15163         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15164         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15165         by Bernie Solomon <bernard@ugsolutions.com>.
15166
15167 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15168
15169         * gc.c (mono_gc_init): Avoid error message on shutdown when
15170         GC_DONT_GC=1 is used.
15171
15172         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15173         New icall to return the GUID of a module.
15174
15175 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15176
15177         * class.c: ensure instance size always includes the parent's size
15178         even whem class size is set explicitly (fixes bug#44294).
15179
15180 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15181
15182         * profiler.h, profiler.c: made the simple profiler thread-safe,
15183         get more accurate timing info. Allow the loading of an
15184         externally-developed profiler module.
15185
15186 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15187
15188         * marshal.c (mono_marshal_get_native_wrapper): improved
15189         class/byref arguments.
15190         (mono_marshal_get_native_wrapper): better string marshaling support.
15191
15192 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15193
15194         * class.c: ensure .pack and .size are handled correctly and
15195         simplified layout of static fields.
15196
15197 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15198
15199         * appdomain.c
15200         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15201
15202         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15203         current directory (fix bug 44008)
15204
15205 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15206
15207         * marshal.c (mono_marshal_get_native_wrapper): started support for
15208         custom marshalers.
15209         (mono_delegate_to_ftnptr): consider marshalling specifications
15210
15211 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15212
15213         * reflection.c, reflection.h: emit custom marshal info.
15214
15215 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15216
15217         * object.c: free the GError.
15218         * icall.c: added CloseEvent_internal.
15219         * threads.[ch]:
15220         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15221         call.
15222
15223 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15224
15225         * loader.c (mono_method_get_signature): Add support for dynamic
15226         assemblies.
15227
15228 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15229
15230         * reflection.c: fixed bug #43905.
15231
15232 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15233
15234         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15235         handling TypedReference and ArgIterator.
15236         * loader.c, loader.h: added function to get signature at call site.
15237
15238 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15239
15240         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15241         data readonly. Buglets and warning fixes. Some MethodSpec support.
15242
15243 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15244
15245         * class.h, class.c, object.c: remove relative numbering support.
15246
15247 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15248
15249         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15250         free the string, until we get a chance to fix Gtk#
15251
15252 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15253
15254         * marshal.c: revert last patch.
15255
15256 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15257
15258         * icall.c: updates for new mono_class_vtable() not calling
15259         the type constructor anymore.
15260
15261 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15262
15263         * object.h, object.c: separate vtable creation from type
15264         initialization. Make running the .cctor thread safe.
15265
15266 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15267
15268         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15269
15270 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15271
15272         * loader.c (mono_get_method): consider calling convention
15273
15274 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15275
15276         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15277         to return the invisible global type for a module.
15278
15279         * reflection.c (mono_image_build_metadata): Emit global fields too.
15280
15281 2003-05-20  Peter Williams  <peterw@ximian.com>
15282
15283         * loader.c (mono_lookup_internal_call): Add a few newlines.
15284
15285 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15286
15287         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15288         literal strings.
15289
15290         * appdomain.c (set_domain_search_path): Recalculate search path when
15291         AppDomainSetup.PrivateBinPath changes.
15292
15293         * object.c (mono_class_compute_gc_descriptor): It turns out some
15294         parts of the class libs (like System.Thread) holds pointers to
15295         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15296         to treat native int a pointer type here.
15297         
15298 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15299
15300         * appdomain.h, domain.c: add hashtable for jump target resolution.
15301
15302 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15303
15304         * reflection.h reflection.c icall.c: Added new icalls 
15305         GetManifestResourceInfoInternal, GetModulesInternal and support
15306         infrastructure.
15307
15308 2003-05-16  Dick Porter  <dick@ximian.com>
15309
15310         * icall.c:
15311         * file-io.h:
15312         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15313
15314 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15315
15316         * object.c: mono_store_remote_field: little fix to previous patch.
15317
15318 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15319
15320         * class.c: add constructors to array classes.
15321         * icall.c: special case array construction for InternalInvoke (),
15322
15323 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15324
15325         * class.h class.c reflection.c object.c: Added support for field
15326         defaults in dynamically generated classes.
15327
15328 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15329
15330         * reflection.c: properly encode charset for ddlimport.
15331
15332 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15333
15334         * threads.c: allow compiling without GC.
15335
15336 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15337
15338         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15339         handling of thread static data.
15340
15341 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15342
15343         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15344
15345 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15346
15347         * class.c (mono_array_class_get): always set the serializable flags
15348         (mono_array_class_get): always set the SEALED attribute for array types
15349
15350 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15351
15352         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15353         attributes (fix for bug 42021).
15354
15355 2003-05-12  Dick Porter  <dick@ximian.com>
15356
15357         * gc.c: Don't run finalizers when the finalizer thread is
15358         finishing up, because the default domain has already been
15359         destroyed.
15360
15361 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15362
15363         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15364         value is null, we should throw an exception.   This is slightly
15365         different than the other conventions used for the constructor.
15366
15367 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15368
15369         * socket-io.c: fixed windows build.
15370
15371 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15372
15373         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15374
15375 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15376
15377         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15378         compilers.
15379
15380 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15381
15382         * class.c (mono_class_layout_fields): Add experimental GC aware
15383         auto layout facility. Requires class library changes to work correctly.
15384
15385         (mono_class_setup_vtable): Avoid overriding explicit interface
15386         method implementations. Fixes iface3.exe test.
15387
15388         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15389         object reference.
15390         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15391         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15392
15393         * metadata.h: Add new type classification macro which determines
15394         whenever the type holds an object reference.
15395
15396 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15397
15398         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15399
15400 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15401
15402         * gc.c (finalizer_thread): Work around a GC bug.
15403
15404 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15405
15406         * marshal.c (emit_struct_conv): allow unions
15407
15408         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15409
15410 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15411
15412         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15413
15414 2003-05-06  Martin Baulig  <martin@ximian.com>
15415
15416         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15417
15418 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15419
15420         * socket-io.c:
15421         (Select_internal): allow NULLs, don't create arrays if not needed.
15422         Coupled with Socket.cs changes.
15423
15424         * threadpool.c:
15425         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15426         register a finalizer for it that will close the semaphore handle. This
15427         fixes the leak and make Lupus' test run with > 4080 loops.
15428
15429 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15430
15431         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15432         Jerome Laban (bug #42287)
15433
15434 2003-05-02  Martin Baulig  <martin@ximian.com>
15435
15436         * debug-mono-symfile.h
15437         (MonoSymbolFile): Moved declaration into mono-debug.h.
15438         (MonoDebugMethodJitInfo): Likewise.
15439         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15440         argument.
15441         (_mono_debug_address_from_il_offset): Take a
15442         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15443
15444         * mono-debug.h
15445         (MonoDebugDomainData): New struct.
15446         (mono_debug_get_domain_data): New function.
15447         (mono_debug_add_method): Take an additional `MonoDomain *'
15448         argument.
15449         (mono_debug_source_location_from_address): Likewise.
15450         (mono_debug_il_offset_from_address): Likewise.
15451         (mono_debug_address_from_il_offset): Likewise.
15452
15453 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15454
15455         * reflection.c: one more check for null type in custom attrs.
15456
15457 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15458
15459         * reflection.c: avoid warning (comparison is always false due to limited
15460         range of data type).
15461
15462 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15463
15464         * icall.c: throw an exception in Type.GetField if the argument 'name'
15465         is NULL.
15466
15467 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15468
15469         * reflection.c: fixed handling of enums in named arguments to custom
15470         attributes (bug #42123).
15471
15472 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15473
15474         * reflection.c: use the right array element type and handle
15475         a null for a Type argument, too.
15476
15477 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15478
15479         * reflection.c: handle arrays as arguments to custom attributes.
15480
15481 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15482
15483         * reflection.c: handle a string value in a custom attr
15484         ctor that takes an object.
15485
15486 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15487
15488         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15489         (fix bug #42063)
15490
15491 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15492
15493         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15494
15495 2003-04-27  Martin Baulig  <martin@ximian.com>
15496
15497         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15498         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15499         MONO_DEBUGGER_EVENT_BREAKPOINT.
15500         (mono_breakpoint_trampoline_code): Removed.
15501         (mono_debugger_event_handler): The last argument is now a
15502         `guint32'.
15503         (mono_debugger_insert_breakpoint_full): Removed the
15504         `use_trampoline' argument.
15505         (mono_debugger_method_has_breakpoint): Likewise.
15506         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15507         mono_debugger_breakpoint_callback(); take the method and
15508         breakpoint number as arguments.
15509
15510 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15511
15512         * metadata.c: fix off by one when loading parameters attributes.
15513
15514 2003-04-24  Martin Baulig  <martin@ximian.com>
15515
15516         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15517
15518 2003-04-24  Martin Baulig  <martin@ximian.com>
15519
15520         * mono-debug-debugger.c: Moved all code which interacts with the
15521         Mono Debugger here.
15522
15523         * debug-mono-symfile.c: This code now just deals with the symbol
15524         file itself, the debugger code is now in mono-debug-debugger.c.
15525
15526 2003-04-23  Martin Baulig  <martin@ximian.com>
15527
15528         * mono-debug.c (mono_debug_source_location_from_il_offset):
15529         New method; like mono_debug_source_location_from_address(), but
15530         takes an IL offset instead of a machine address.
15531
15532 2003-04-23  Martin Baulig  <martin@ximian.com>
15533
15534         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15535         `line' field; this is now computed by the debugger.
15536
15537 2003-04-23  Martin Baulig  <martin@ximian.com>
15538
15539         * mono-debug.[ch]: New files.  This is the new debugging interface.
15540
15541         * mono-debug-debugger.[ch]: New files.  Moved all code which
15542         interacts with the Mono Debugger here.
15543
15544 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15545
15546         * domain.c (mono_init): initialize mono_defaults.monitor_class
15547
15548 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15549
15550         * reflection.c (method_encode_code): Add a spicy exception to help
15551         future compiler authors.
15552
15553 2003-04-21  Martin Baulig  <martin@ximian.com>
15554
15555         * icall.c
15556         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15557         Make this work with relative pathnames; g_filename_to_uri() needs
15558         an absolute filename.
15559
15560 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15561
15562         * icall.c: Track name changes in Object and ValueType.
15563
15564 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15565
15566         * metadata.c (mono_type_stack_size): size should be a multiple of
15567         sizeof (gpointer)
15568
15569 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15570
15571         * gc.c:
15572         (internal_domain_finalize): moved into mono_domain_finalize. No need
15573         to create another thread because the finalizers will be run in the
15574         finalizer thread.
15575         
15576         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15577         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15578         to be run (MS does this too).
15579
15580 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15581
15582         * object.c (mono_class_compute_gc_descriptor): Update comment.
15583
15584         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15585
15586         * image.h: Add synchronized wrapper cache.
15587
15588         * image.c (do_mono_image_open): Initialize cache.
15589
15590         * reflection.c (create_dynamic_mono_image): Initialize cache.
15591
15592 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15593
15594         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15595         ves_icall_System_Buffer_ByteLengthInternal.
15596
15597 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15598
15599         * reflection.c: setup klass->nested_in earlier. Allow
15600         a dash in the assembly name.
15601
15602 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15603
15604         * metadata.c (mono_type_to_unmanaged): dont access
15605         type->data.klass for MONO_TYPE_OBJECT
15606         (mono_type_to_unmanaged): consider System.Delegate class
15607
15608 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15609
15610         * class.c: just setup supertypes in the proper place instead of
15611         initializing the full element class for arrays.
15612
15613 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15614
15615         * class.c: ensure the element class of arrays is initialized.
15616         Setup the supertype info for array classes, too.
15617
15618 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15619
15620         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15621
15622 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15623
15624         * Makefile.am: re-added -m option when running cygpath. This way,
15625         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15626         separator.
15627         * mono-config.c: same codepath for locating mono config file for WIN32
15628         and the rest.
15629         * assembly.c: if mono_assembly_setrootdir is called, don't override
15630         the value set.
15631
15632 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15633
15634         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15635         MONO_ASSEMBLIES variable.
15636
15637 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15638
15639         * icall.c: added Assembly::GetNamespaces() icall.
15640
15641 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15642
15643         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15644
15645 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15646
15647         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15648         * object.c: fixed bug in the construction of vtable for proxies
15649
15650 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15651
15652         * object.c (mono_array_new): Mark mono_array_new as an icall.
15653
15654 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15655
15656         * class.c: fixed test for public method when overriding interfaces.
15657         Closes bug #40970.
15658
15659 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15660
15661         * appdomain.h, domain.c: added mono_domain_foreach() to
15662         be able to access the currently loaded appdomains.
15663         * object.c: make string interning work across sppdomains.
15664         Mark some functions for use as icalls.
15665
15666 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15667
15668         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15669
15670         * reflection.h reflection.c: Allocate long living data using 
15671         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15672
15673         * reflection.c: Double the allocation size in streams instead of
15674         increasing it, to prevent unneccesary copying on large assemblies.
15675         
15676         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15677         creation if the assembly does not have the Run flag set.
15678
15679 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15680
15681         * class.h: avoid the C++ keywords in header files (Jerome Laban
15682         spotted and fixed this).
15683
15684 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15685
15686         * object.c:
15687         (mono_unhandled_exception): fill in the arguments for the
15688         UnhandledException event. Only trigger that event for the default
15689         domain (as MS does).
15690
15691 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15692
15693         * object.c: Improve typed allocation stuff based on suggestions from
15694         Paolo. Also turn it on if the GC library supports it.
15695
15696 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15697
15698         * object.c object.h class.h: Added experimental typed allocation
15699         facility using the interfaces in gc_gcj.h.
15700
15701         * os/gc_wrapper.h: Added new include files.
15702         
15703 2003-04-03  Martin Baulig  <martin@ximian.com>
15704
15705         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15706         which is not yet enabled by default.
15707
15708         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15709         functions.
15710         (mono_gc_lock, mono_gc_unlock): New static functions.
15711
15712         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15713         functions; stop/start the world for the garbage collector.  This
15714         is using the windows API; we need to complete the SuspendThread()/
15715         ResumeThread() implementation in the io-layer to make this work on Unix.
15716         (mono_gc_push_all_stacks): New public function; tells the garbage
15717         collector about the stack pointers from all managed threads.
15718
15719 2003-04-03  Martin Baulig  <martin@ximian.com>
15720
15721         * object.h (MonoThread): Added `gpointer stack_ptr'.
15722
15723         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15724
15725 2003-04-03  Martin Baulig  <martin@ximian.com>
15726
15727         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15728
15729 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15730
15731         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15732         field.last.
15733
15734 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15735
15736         * loader.c (mono_lookup_internal_call): Report the corlib that is
15737         out of sync.
15738
15739 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15740
15741         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15742         System.DBNull (it's class not valuetype).
15743
15744 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15745
15746         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15747         if the array method was already assigned a token (fixes bug#40646).
15748
15749 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15750
15751         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15752         if no assembly is given.
15753
15754 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15755
15756         * metadata.h: Added the new tables.
15757
15758         * row-indexes.h: Added definitions for new tables.
15759
15760         * metadata.c: Add schemas for new tables, and add support for
15761         computing the sizes of them.
15762
15763         * class.c: Update for handling the new type cases.
15764
15765 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15766
15767         * metadata.h (MONO_TYPE_IS_VOID): new macro
15768
15769 2003-03-31  Martin Baulig  <martin@ximian.com>
15770
15771         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15772
15773         * threads.c (mono_thread_new_init): Call `thread_created' in the
15774         mono_thread_callbacks.
15775
15776 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15777
15778         * loader.h: added marshalbyrefobject_class to mono_defaults
15779         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15780         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15781           generation of output parameters.
15782           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15783         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15784           contextbound and the target object belongs to the context of the caller.
15785         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15786         * object.c: Implemented support for interfaces and abstract classes
15787           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15788           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15789
15790 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15791
15792         * class.h class.c (mono_class_is_subclass_of): New function.
15793         
15794         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15795         routines for most common case (calls from ArrayList::ToArray).
15796
15797         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15798         routine so programs which call Environment::Exit() can be profiled.
15799
15800         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15801         Added MONO_ARCH_SAVE_REGS.
15802
15803         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15804
15805 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15806
15807         * blob.h: Add a couple of new MonoType types definitions.
15808
15809         * tabledefs.h: Add a couple of new call convs.
15810
15811 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15812
15813         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15814         the layout of the class.
15815
15816         * reflection.c (alloc_table): double the size on overflow to avoid
15817         unnecessary copying.
15818
15819         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15820         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15821         null so it can be garbage collected.
15822         
15823 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
15824
15825         * reflection.c (mono_reflection_get_type): Return the resolved type
15826         only if it is in the assembly we searched.
15827
15828         * reflection.c (ensure_runtime_vtable): Initialize method slots.
15829
15830         * class.c (mono_class_setup_vtable): Set the slot of the overriding
15831         method.
15832
15833 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15834
15835         * appdomain.c:
15836         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
15837         the right one is 'file:///blah', but MS allows it.
15838         * assembly.c:
15839         (mono_assembly_open): allow 'file://blah'
15840
15841         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
15842
15843 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
15844
15845         * socket-io.c: fixes bug #40310.
15846
15847 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
15848
15849         * reflection.c (mono_reflection_parse_type): handle deeply nested
15850         types correctly.
15851
15852         * reflection.c (mono_image_create_token): Use unique token values
15853         since they will be put into a hash table.
15854
15855         * class.c (mono_class_setup_vtable): If a method occurs in more than
15856         one place in the vtable, and it gets overriden, then change the
15857         other occurances too.
15858
15859         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15860         object as return type.
15861
15862 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15863
15864         * icall.c: Deleted "ToString" implementation for double and float
15865         because they are full implemented in managed code.
15866
15867 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15868
15869         * reflection.c, reflection.h: implemented and exported functions
15870         to retrieve info about custom attributes.
15871
15872 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15873
15874         * appdomain.c: moved Uri handling to assembly.c
15875         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
15876         work when using a file Uri in *nix and windows.
15877
15878         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
15879         GetReferencedAssemblies.
15880
15881 2003-03-18  Dick Porter  <dick@ximian.com>
15882
15883         * icall.c: Rename a couple of internal calls
15884
15885         * threads.c: Set the thread state to Stopped when a thread exits.
15886         Fixes bug 39377.
15887
15888 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
15889
15890         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
15891         New icall.
15892
15893         * object.c (mono_class_vtable): fix warning.
15894
15895 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
15896
15897         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
15898
15899         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
15900         memory.
15901         (method_encode_clauses): Create exception info structures in the right
15902         order.
15903         (mono_reflection_setup_internal_class): Initialize supertypes field.
15904
15905         * class.c object.c: Handle interfaces which implement other interfaces 
15906         correctly.
15907
15908         * class.h class.c: Move the supertypes array initialization code into 
15909         a separate function so it can be used for dynamic types too. Also call
15910         it earlier, in mono_class_init(), since it can be used before the
15911         type is initialized.
15912
15913 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15914
15915         * Makefile.am:
15916         * assembly.c:
15917         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
15918
15919         * appdomain.c:
15920         * appdomain.h:
15921         * marshal.c:
15922         * object.c: remove warnings.
15923
15924 2003-03-13  Martin Baulig  <martin@ximian.com>
15925
15926         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
15927         (MonoDebugLexicalBlockEntry): New types.
15928
15929         * debug-mono-symfile.c
15930         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
15931
15932 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15933
15934         * process.c: ret can be any non-zero value accroding to MS doc.
15935
15936 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
15937
15938         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
15939         fixing a warning for a miss-used prototype, would have cause
15940         random memory corruption.
15941
15942 2003-03-07  Martin Baulig  <martin@ximian.com>
15943
15944         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
15945         getting really annoying ....
15946
15947 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
15948
15949         * reflection.c (fixup_method): added support for array methods.
15950
15951 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
15952
15953         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
15954         (pointed out by Michael Adams).
15955
15956 2003-03-04  Dick Porter  <dick@ximian.com>
15957
15958         * icall.c: Temporarily reverted the Double and Single ToString()
15959         change, because it broke nunit.
15960
15961 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
15962
15963         * object.h, threads.h: make include files compatible with C++
15964         (patch by Jerome Laban <jlaban@wanadoo.fr>).
15965
15966 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
15967
15968         * icall.c: Erased ToString helper functions for Double and Single.
15969         Now, that implementations ar all in managed code (Double and Single
15970         Formatters).
15971
15972 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
15973
15974         * appdomain.c: Added method for initializing the default context of
15975         a domain. Added internal call for getting the default context.
15976         * appdomain.h: Added context variable in MonoDomain struct.
15977         * domain.c: mono_domain_set also sets the default context of the domain
15978         * icall.c: Mapped internal method InternalGetDefaultContext.
15979         * object.c: mono_object_get_virtual_method returns always a remoting
15980         wrapper if the object is a transparent proxy.
15981         mono_runtime_invoke_array: when creating an object by calling the
15982         constructor, if the created object is a proxy, then the constructor should
15983         be called using the a remoting wrapper.
15984
15985 2003-03-03  Dick Porter  <dick@ximian.com>
15986
15987         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
15988         variable so it compiles on solaris.  Problem spotted by
15989         Christopher Taylor <ct@cs.clemson.edu>
15990
15991 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15992
15993         * appdomain.c:
15994         (get_info_from_assembly_name): don't leak value.
15995
15996         * icall.c:
15997         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
15998         result.
15999
16000 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16001
16002         * assembly.c: export mono_image_load_references ().
16003         * class.c: handle function pointers. mono_class_from_name() now
16004         supports nested type names directly.
16005
16006 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
16007
16008         * reflection.h reflection.c: Encode already created dynamic methods 
16009         and fields correctly as a DEF instead of a REF.
16010
16011         * reflection.c: Get rid of the force_ref argument to 
16012         mono_image_typedef_or_ref since it was wrong in the first place.
16013
16014         * string-icalls.c: add error checking to string constructors according
16015         to the MSDN docs.
16016
16017         * reflection.c: Emit types in the order their TypeBuilders were 
16018         created. Previously, a new table index was assigned to each type before
16019         the tables were emitted. This was wrong because the signature blob
16020         might already refer to a type by its original table index.
16021
16022 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
16023
16024         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16025         change.
16026         
16027 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16028
16029         * Makefile.am: make assemblies dir have \ instead of / on windows.
16030
16031 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
16032
16033         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16034         iterate over the NESTEDCLASS table using a linear search since the
16035         table is not guaranteed to be sorted by the secondary key.
16036
16037         * class.c (mono_class_create_from_typedef): fixed up call to
16038         mono_metadata_nesting_typedef.
16039         
16040 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
16041
16042         * marshal.c (mono_string_to_byvalstr): clear the memory as
16043         suggested by Jerome Laban <jlaban@wanadoo.fr>
16044
16045 2003-02-26  Dick Porter  <dick@ximian.com>
16046
16047         * process.c: Cope with padding in .rsrc blocks
16048
16049 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16050
16051         * metadata.h: reverted the filter_len change, it breaks reflection
16052         
16053 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16054
16055         * metadata.h: added a new field to store the filter_len
16056         
16057
16058 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16059
16060         * reflection.c: handle custom attributes for types and members
16061         created with Reflection.Emit (bug#38422).
16062
16063 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
16064
16065         * reflection.c: define RTSpecialName automatically for constructors for
16066         compatibility with MS.NET.
16067
16068         * reflection.c (mono_reflection_create_runtime_class): initialize
16069         nested_in field of dynamically created classes.
16070
16071 2003-02-22  Martin Baulig  <martin@ximian.com>
16072
16073         * debug-mono-symfile.h: Incremented version number.
16074
16075 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16076
16077         * object.h icall.c process.c: fix warnings.
16078
16079 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16080
16081         * appdomain.h appdomain.c:
16082         (mono_domain_try_type_resolve): split the 
16083         name_or_tb argument into a name and a tb argument.
16084         (mono_domain_has_type_resolve): new function to check whenever the
16085         application has registered a TypeResolve event handler.
16086         
16087         * icall.c reflection.h reflection.c: move the type resolve logic into
16088         mono_reflection_get_type () so it will be invoked when 
16089         Assembly::GetType () is called.
16090
16091         * reflection.c:
16092         (mono_reflection_get_type): renamed to get_type_internal.
16093         (mono_reflection_get_type): fixed type name generation so it works 
16094         for nested types too.
16095         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16096         costly type name generation if there is no resolve event handler.
16097
16098 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16099
16100         * class.c, image.c: load exported types from file references.
16101
16102 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16103
16104         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16105           used to cache the managed methods used to create proxies and make 
16106           remote invocation of methods.
16107         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16108           to be remotely created.
16109         * object.c: Modified the method mono_class_vtable(). It now initializes 
16110           the remote flag of the vtable. Modified mono_object_new_specific(), 
16111           so now it checks the remote flag.
16112         * icall.c: Added a couple of internal methods, one for enabling instance 
16113           creation interception for a type, and one for creating objects bypassing
16114           the remote check.
16115
16116 2003-02-18  Martin Baulig  <martin@ximian.com>
16117
16118         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16119         New interncall to get a method's metadata token.
16120
16121         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16122         New interncall for the debugger.
16123
16124 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16125
16126         * class.c (mono_class_setup_vtable): allocate supertype array
16127
16128 2003-02-18  Martin Baulig  <martin@ximian.com>
16129
16130         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16131
16132 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16133
16134         * reflection.c:
16135         (assembly_name_to_aname): jump over unknown properties (i've found
16136         something like: 'type, assembly, version=xxx, custom=null, public...',
16137         so now will ignore custom=null and still get the rest of the values).
16138
16139 2003-02-17  Dick Porter  <dick@ximian.com>
16140
16141         * threads.c: Have Thread.Start() wait for a semaphore to signal
16142         that the thread has set up all its local data.  This fixes bug
16143         34323, where Abort() raced the new thread's TLS data.
16144
16145         Also removes the handle_store() call from start_wrapper, because
16146         threads are now always created suspended and there is no longer a
16147         race between the parent and child threads to store the info.
16148
16149 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16150
16151         * image.c: explain the #- heap issue in a message, hopefully
16152         avoiding FAQs on mono-list.
16153
16154 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16155
16156         * icall.c:
16157         (GetEntryAssembly): if the domain has not invoked
16158         AppDomain.ExecuteAssembly yet, return the assembly of the default
16159         AppDomain.
16160
16161 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16162
16163         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16164
16165 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16166
16167         * metadata.c, reflection.c: simple speedup to type hash
16168         and equals code.
16169
16170 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16171
16172         * image.c, image.h, class.c, assembly.c: move module loading
16173         to MonoImage. When loading metadata, consider alignemnet from
16174         the start of metadata, not from the metadata address in memory.
16175
16176 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16177
16178         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16179         AssemblyBuilder objects. Factored out custom attribute creation into
16180         a separate function.
16181         (create_custom_attr): new function to create custom attributes.
16182
16183 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16184
16185         * Makefile.am: Got tired of typing the full pathname to pedump.
16186         Until there is another option, am installing this.
16187
16188 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16189
16190         * class.c (class_compute_field_layout): always set field->parent 
16191         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16192
16193 2003-02-11  Dick Porter  <dick@ximian.com>
16194
16195         * threads-types.h:
16196         * monitor.c: Rewrote Monitor, making lock much faster and
16197         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16198         creates them as needed.
16199
16200         * exception.c: Added SynchronizationLockException
16201
16202         * threads.c: Deleted old Monitor implementation.  The new one is
16203         in a new file.
16204
16205 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16206
16207         * class.c: handled TypedReference type code. Set the correct size for
16208         class data. Setup interface_offsets for interface classes, too.
16209
16210 2003-02-09  Martin Baulig  <martin@ximian.com>
16211
16212         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16213
16214 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16215
16216         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16217         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16218         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16219         * verify.c: check for code that runs after the end of the method.
16220
16221 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16222
16223         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16224         "System.Math::Round2".
16225         * sysmath.h: Added Floor, Round and Round2 definitions.
16226         * sysmath.c: Modified certain functions that were not 100% compliant
16227         with MS.NET (math precision) and added the implementation of Floor,
16228         Round and Round2.
16229
16230 2003-02-07  Martin Baulig  <martin@ximian.com>
16231
16232         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16233
16234 2003-02-07  Martin Baulig  <martin@ximian.com>
16235
16236         * debug-mono-symfile.c: Reflected latest symwriter changes.
16237         (mono_debug_create_mono_symbol_file): Removed.
16238         (mono_debug_open_mono_symbol_file): Take an argument which
16239         specifies whether to create a dynamic symbol file.
16240
16241 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16242
16243         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16244
16245 2003-02-05  Martin Baulig  <martin@ximian.com>
16246
16247         * reflection.c (mono_image_build_metadata): Make this public,
16248         protect it against being called multiple times, don't create
16249         resources and don't build the compressed metadata here.
16250         (mono_image_create_pefile): Do this here.
16251
16252         * icall.c
16253         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16254
16255 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16256
16257         * socket-io.c: fixed bug #36322.
16258
16259 2003-02-06  Piers Haken <piersh@friskit.com>
16260
16261         * appdomain.[ch]:
16262         * class.h:
16263         * debug-mono-symfile.c:
16264         * icall.c:
16265         * loader.c:
16266         * mono-config.c:
16267         * monosn.c:
16268         * reflection.c:
16269         * socket-io.c: warning cleanups
16270
16271 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16272
16273         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16274         function. works like remoting invoke, but does a check for the Proxy first.
16275
16276 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16277
16278         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16279
16280 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16281
16282         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16283         array of pointers.
16284         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16285         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16286
16287         * object.c (mono_store_remote_field_new): used by the new jit
16288         instead of mono_store_remote_field
16289         (mono_load_remote_field_new): used by the new jit
16290         instead of mono_load_remote_field
16291
16292 2003-02-05  Patrik Torstensson
16293
16294         * appdomain.c: changed unload to take the domain id instead
16295         of domain
16296         
16297         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16298
16299
16300 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16301
16302         * appdomain.c: don't look for assemblies in ApplicationBase if
16303         PrivateBinPathProbe is set.
16304
16305 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16306
16307         * object.c: make the first argument in main_args contain the absolute
16308         path to the assembly. Fixes bug #37511.
16309
16310 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16311
16312         * icall.c: get correct UTC offset for countries not using daylight
16313         time saving. Fixes bug #30030.
16314
16315 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16316
16317         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16318         and 1 are the family).
16319
16320 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16321
16322         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16323
16324         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16325
16326 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16327
16328         * reflection.c: added support for SignatureHelper tokens, which is
16329         needed by the Calli opcode.
16330
16331         * reflection.h: track changes to SignatureHelper class.
16332
16333         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16334
16335 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16336
16337         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16338
16339 2003-02-03  Patrik Torstensson
16340         * appdomain.[c|h], domain.c : 
16341          - Added support for getting a domain via domain id
16342          - Support for setting and getting domain from System.AppDomain 
16343            (used in cross appdomain channel)
16344          - Added support for get/set for a MonoAppContext on a thread 
16345            (Context class in System.Runtime.Remoting.Contexts),
16346          - Removed hack in Get/SetData and ExecuteAssembly.
16347         
16348         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16349         the managed world to get control when a proxy is created.
16350
16351         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16352         
16353 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16354
16355         * icall.c
16356         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16357         Populate the codebase field as well.
16358
16359 2003-02-02  Martin Baulig  <martin@ximian.com>
16360
16361         * debug-mono-symfile.c
16362         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16363         (mono_debug_symfile_add_method): Allow interncalls.
16364
16365 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16366
16367         * icall.c: throw parse exception if strtod fails or the string is empty.
16368
16369 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16370
16371         * marshal.c: handle object type separately from defined
16372         class types.
16373
16374 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16375
16376         * marshal.c: handle NATIVE_LPSTR for strings when it's
16377         explicitly specified.
16378
16379 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16380
16381         * reflection.c, reflection.h, icall.c: setup the reflection
16382         handle cache for ModuleBuilders and AssemblyBuilders.
16383
16384 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16385
16386         * reflection.c (reflection_methodbuilder_to_mono_method): set
16387         pinvoke flag
16388
16389 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16390
16391         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16392
16393 2003-01-29  Dick Porter  <dick@ximian.com>
16394
16395         * threads.c: No need for the fake_thread kludge now that Thread
16396         doesn't run a class constructor
16397         
16398 2003-01-29  Dick Porter  <dick@ximian.com>
16399
16400         * threads.c: Use g_direct_hash instead of the rather bogus
16401         g_int_hash
16402
16403 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16404
16405         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16406         (fix pinvoke12.exe)
16407         (mono_marshal_get_struct_to_ptr): generate valid IL code
16408         (mono_marshal_get_ptr_to_struct): generate valid IL code
16409         (*): correctly set sig->pinvoke, we need to memdup the signature
16410         to do that
16411
16412 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16413
16414         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16415         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16416
16417 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16418
16419         * profiler.c: provide more callers information.
16420
16421 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16422
16423         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16424
16425         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16426
16427         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16428
16429 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16430
16431         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16432         exception instead of going into an infinite loop on dates which it 
16433         can't yet handle.
16434
16435         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16436         out-of-range exception if needed.
16437
16438         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16439         an implementation for an interface method and to override an inherited
16440         method at the same time. 
16441         Imagine a scenario when a virtual method is used to override a
16442         virtual abstract method in a parent class, and this same method 
16443         provides an implementation for an method inherited from an interface. 
16444         In this case, the interface resolution code will set im->slot, which 
16445         means that the virtual method override pass will skip this method 
16446         which means a pointer to the abstract method inherited from the parent
16447         will remain in the vtable of this non-abstract class.
16448
16449         * class.c: (mono_class_setup_vtable): continue search for a real 
16450         method if only an abstract method is found.     
16451
16452 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16453
16454         * reflection.c: add size to encoding for ByValStr and ByValArray
16455         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16456
16457 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16458
16459         * class.c (mono_class_setup_vtable): pass the override info as an
16460         argument.
16461
16462         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16463         correctly.
16464         
16465         * reflection.c (ensure_runtime_vtable); add support for method 
16466         overrides.
16467         
16468 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16469
16470         * reflection.c (resolution_scope_from_image): Hack to work to work with
16471         dynamic assemblies.
16472
16473         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16474         added a 'force_ref' argument to force this function to allways return 
16475         a TypeRef. This is needed by mono_image_get_memberref_token ().
16476         
16477 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16478
16479         * reflection.c (mono_image_get_type_info): interfaces really don't have
16480         a parent.
16481
16482         * reflection.c (mono_image_basic_init): fill out missing fields of
16483         image structure.
16484
16485         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16486         dynamic assemblies. This is required so dynamic assemblies show up in
16487         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16488         Type::GetType() etc. This is consistent with MS behaviour.
16489
16490         * image.c image.h reflection.c: add newly created classes to the name 
16491         cache so mono_class_get () will find them.      
16492
16493 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16494
16495         First part of changes to get IKVM.NET running under mono.
16496         
16497         * appdomain.h, appdomain.c: added new function 
16498         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16499         This function will call AppDomain::DoTypeResolve to do the actual work.
16500
16501         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16502         moved existing code dealing with dynamic tokens to a new function 
16503         called mono_reflection_lookup_dynamic_token (). This function will 
16504         raise TypeResolve events when appropriate. Since reflection.c is not 
16505         part of libmetadata, a new hook function called 
16506         mono_lookup_dynamic_token() is added to class.c which will call this.
16507
16508         * assembly.h assembly.c: make the invoke_load_hook function public,
16509         so it can be called for dynamic assemblies.
16510
16511         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16512
16513         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16514         type isn't found.
16515
16516         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16517         MonoGHashTable, since it contains pointers to objects which the GC 
16518         needs to track.
16519
16520         * assembly.c (search_loaded): remove unused variable.
16521         
16522 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16523
16524         * object.c: fixed issue exposed by gcc-generated IL programs
16525         that use RVA data for pointers.
16526
16527 2003-01-25  Martin Baulig  <martin@ximian.com>
16528
16529         * threads.c (start_wrapper): Moved the initialization of
16530         `start_func' above the mono_new_thread_init() call to which we
16531         pass it as argument.
16532
16533 2003-01-24  Martin Baulig  <martin@ximian.com>
16534
16535         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16536         the MonoThread pointer.
16537
16538 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16539
16540         * icall.c: Rename `PowImpl' to Pow.
16541
16542 2003-01-23  Dick Porter  <dick@ximian.com>
16543
16544         * threads.c (start_wrapper): Create a Thread object if needed, so
16545         the Main() thread can do the class initialisation in a subthread
16546         that has been set up to allow managed code execution.
16547
16548         Pass the thread ID instead of the MonoThread pointer to the thread
16549         start and attach callbacks.  This change is required, because the
16550         jit thread start callback must be called _before_ the Thread
16551         object can be created.
16552         
16553         (mono_thread_init): Removed much object creation code that is no
16554         longer needed.  No managed code is called from here now.
16555
16556         * object.c (mono_runtime_exec_managed_code): Create a subthread
16557         for Main, and call back to the runtime to use it.
16558         Set the exit code when Main exits.
16559
16560         * gc.c: Make sure domain finalisation happens in a subthread.
16561         Re-enable threaded GC, fixing bug 31333 (again).
16562
16563         * environment.c: System.Environment internall calls (so far just
16564         ExitCode is here, the others are still in icall.c)
16565
16566         * appdomain.c (mono_runtime_cleanup): All threads running managed
16567         code should have finished before mono_runtime_cleanup() is
16568         reached, so no need to clean up threads.
16569
16570 2003-01-22  Martin Baulig  <martin@ximian.com>
16571
16572         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16573         `gpointer func' arguments.      
16574         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16575         but added `MonoThread *thread' argument.
16576         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16577
16578         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16579         and pass it to the mono_thread_start_cb callback.
16580         (mono_install_thread_callbacks): New public function to install a
16581         set of callbacks which are set by the debugger.
16582         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16583
16584 2003-01-22  Martin Baulig  <martin@ximian.com>
16585
16586         * Makefile.am: Install debug-mono-symfile.h.
16587
16588 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16589
16590         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16591
16592 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16593
16594         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16595         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16596         (mono_array_class_get): correctly set access levels of arrays
16597
16598 2003-01-20      Patrik Torstensson
16599         * image.h (MonoAssemblyName): changed major, minor, build, revision
16600         from signed to unsigned.
16601
16602 2003-01-20  sean kasun <skasun@azstarnet.com>
16603
16604         * reflection.c (load_cattr_value): Now this handles
16605         MONO_TYPE_SZARRAY.  Fixes bug #35629
16606
16607 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16608
16609         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16610         integer value
16611
16612 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16613
16614         * decimal.c: fixed bug #26056.
16615
16616 2003-01-17  Martin Baulig  <martin@ximian.com>
16617
16618         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16619
16620 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16621
16622         * exception.[ch]:
16623         (mono_get_exception_type_initialization): new function.
16624
16625         * object.c: throw a TypeInitializationException when an exception is
16626         thrown invoking the class constructor.
16627
16628 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16629
16630         * reflection.c: fixed attribute reading.
16631
16632 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16633
16634         * icall.c:
16635         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16636         provided, look for the type in the calling assembly and then in
16637         mscorlib; if the assembly name is provided, only try that one.
16638
16639 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16640
16641         * object.c: register the vtable before there is a chance it's
16642         queried again recursively.
16643
16644 2003-01-13  Duncan Mak  <duncan@ximian.com>
16645
16646         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16647         gc-internal.h. 
16648         
16649 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16650
16651         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16652
16653 2003-01-11  Martin Baulig  <martin@ximian.com>
16654
16655         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16656         this to 20 for the release.
16657
16658 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16659
16660         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16661
16662         * loader.c (mono_method_get_marshal_info): bug fix
16663
16664         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16665         structures with explicit layout
16666
16667 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16668
16669         * profiler.c: made the output more readable (and sorted). 
16670         Added caller information for the allocation profiler.
16671
16672 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16673
16674         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16675
16676 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16677
16678         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16679         to get value types.
16680         
16681 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16682
16683         * object.c, profiler.h, profiler.c, profiler-private.h:
16684         Added object allocation profiler.
16685
16686 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16687
16688         * reflection.h, reflection.c: handle global methods.
16689         Compress blob entries.
16690
16691 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16692
16693         * marshal.c: fix compilation.
16694
16695 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16696
16697         * loader.c (mono_method_get_marshal_info): impl.
16698
16699         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16700
16701 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16702
16703         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16704         for reference types.
16705
16706 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16707
16708         * loader.c: fixed off by one error in loaded parameter names.
16709
16710 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16711
16712         * marshal.c (mono_marshal_get_icall_wrapper): like
16713         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16714         instead of a MonoMethod.
16715
16716 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16717
16718         * decimal.c: fixed bug #36537.
16719
16720 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16721
16722         * marshal.c: throw a missing method exception if a
16723         P/Invoke method is not found.
16724
16725 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16726
16727         * icall.c: allow a null this for constructors.
16728
16729 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16730
16731         * icall.c: raise the proper exceptions if the arguments to the
16732         internal Invoke are incorrect.
16733
16734 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16735
16736         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16737
16738 2003-01-03  Martin Baulig  <martin@ximian.com>
16739
16740         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16741
16742 2002-12-31  Martin Baulig  <martin@ximian.com>
16743
16744         * debug-mono-symfile.c: Completely rewrote the type section.
16745         Instead of using individual malloc()ed fields, we use one big
16746         continuous memory area and offsets into this area.
16747         See the comments in the source code for details.
16748
16749 2002-12-30  Martin Baulig  <martin@ximian.com>
16750
16751         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16752
16753 2002-12-30  Martin Baulig  <martin@ximian.com>
16754
16755         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16756         line number table in this data blob instead of using an external
16757         pointer.
16758
16759 2002-12-28  Martin Baulig  <martin@ximian.com>
16760
16761         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16762
16763 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16764
16765         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16766         as a boxed return type.
16767
16768 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16769
16770         * appdomain.c
16771         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16772         g_build_filename to properly get separators on the filename created.
16773
16774         * object.h: Small change, introduce MonoMarshalByRefObject to
16775         track the layout of that structure in the C# universe as we make
16776         changes there.
16777
16778 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16779
16780         * object.c: removed assert to allow static fields on interfaces.
16781         * loader.c: a TypeSpec may be used for any type, not just arrays.
16782
16783 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16784
16785         * class.c, class.h: added mono_class_array_element_size ().
16786         Ignore static methods in interfaces.
16787
16788 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16789
16790         * threads.c: fixed the build under cygwin.
16791
16792 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16793
16794         * reflection.c: handle nullref constants. Allocate keys for
16795         reflection handles with the GC.
16796
16797 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16798
16799         * threads.c, threads.h: added mono_thread_get_abort_signal()
16800         to get a suitable signal for thread abort.
16801
16802 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16803
16804         * metadata.c: fix handling of ExportedType table.
16805
16806 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16807
16808         * icall.c: added WriteWindowsDebugString internal call.
16809
16810 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16811
16812         * reflection.h: added fields to match C# implementation.
16813
16814 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16815
16816         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16817
16818 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16819
16820         * gc.h, gc-internal.h: Rename header for GC internal calls to
16821         gc-internal.h from gc.h as to not clash with Boehm GC having its
16822         header installed as <gc.h> in outside include paths.
16823         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
16824         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
16825
16826 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16827
16828         * icall.c: assign minor, build and revision in FillName.
16829
16830 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
16831
16832         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
16833         Added support for running code generated by Reflection.Emit.
16834
16835 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16836
16837         * appdomain.c: check for NULL argument in LoadFrom.
16838
16839 2002-12-10  Dick Porter  <dick@ximian.com>
16840
16841         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
16842
16843 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16844
16845         * appdomain.c: fix buglet when building exe file name.  Handle full
16846         assembly name (needed after latest changes to AssemblyName).
16847         * image.c:
16848         (mono_image_close): free some hashtables.
16849
16850 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
16851
16852         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
16853         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
16854         on some systems (redhat 7.3) 
16855
16856 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
16857
16858         * threads.c: delete the critical section of a sync block,
16859         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
16860
16861 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
16862
16863         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
16864
16865 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16866
16867         * appdomain.[ch]: handle the assembly preload event to try loading the
16868         assemblies using the paths we have in the current domain.
16869
16870         * assembly.[ch]: created an assembly preload hook that is called to try
16871         loading the assembly by other means that the ones provided here.
16872
16873         * domain.c: initialize the domain search path.
16874
16875         From now on, assemblies (TODO: except corlib and System) are loaded
16876         according to these rules when using mono_assembly_load ():
16877
16878                 1. It tries to load the assembly from the ApplicationBase
16879                 of the current domain appending .dll and .exe (TODO: have to
16880                 try loading from name/name.dll and name/name.exe).
16881
16882                 2. It tries the search path specified in PrivateBinPath for the
16883                 current domain (if any).
16884
16885                 3. Previous behavior.
16886
16887 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
16888
16889         * icall.c: implemented GetInterfaceMap() related icall.
16890         * domain.c, loader.h: load MethodInfo in mono_defaults.
16891
16892 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
16893
16894         * gc.c: disable the finalizer thread for now, untill all the issues
16895         with it are resolved.
16896
16897 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
16898
16899         * string-icalls.c: handle embedded nulls in string ctor when the
16900         length is specified.
16901
16902 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
16903
16904         * class.c: look for explicit interface implementation in parent
16905         classes, too.
16906
16907 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
16908
16909         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
16910
16911 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
16912
16913         * gc.c: protect handles with a critical section.
16914
16915 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16916
16917         * icall.c:
16918         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
16919         parameters. If no assembly specified, try getting the type from all
16920         the assemblies in the current domain, else, load the assembly and get
16921         the type from it.
16922
16923 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16924
16925         * marshal.c: applied patch from Aleksey Demakov that fixes
16926         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
16927
16928 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16929
16930         * icall.c: fixed get_location.
16931
16932 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
16933
16934         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
16935         declarations to make it work with older gcc. 
16936
16937         * loader.c (mono_get_method): set signature->pinvoke for native calls
16938
16939 2002-11-20  Dick Porter  <dick@ximian.com>
16940
16941         * threads.c (mono_thread_init): Set the main thread's handle
16942
16943 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
16944
16945         * gc.c: allow compilation without GC support. Changed to match the
16946         mono coding style.
16947
16948 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
16949
16950         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
16951
16952 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
16953
16954         * reflection.c: set a public key token on the core assemblies.
16955
16956 2002-11-18  Dick Porter  <dick@ximian.com>
16957
16958         * threads.c: Split out some thread initialisation so that other
16959         files can set the start callback function.
16960
16961         * gc.c: Run finalisers in a separate thread, to avoid stack
16962         overflow.  Fixes bug 31333.
16963
16964         * appdomain.c: Set up GC finalisation thread.
16965
16966         * reflection.c: 
16967         * object.c: 
16968         * domain.c: Use gc.h macros for GC_malloc
16969         
16970 2002-11-15  Dick Porter  <dick@ximian.com>
16971
16972         * threadpool.c: 
16973         * threads.c:
16974         * appdomain.c: Removed mono_runtime_init_with_attach(),
16975         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
16976         merging the extra parameter with the existing function.  Removed
16977         unneeded code in mono_thread_attach().
16978
16979 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
16980
16981         * image.c (mono_image_loaded_by_guid): a method to get loaded
16982         images by guid. 
16983         (load_metadata_ptrs): we store the guid as string.
16984
16985 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
16986
16987         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
16988
16989         * metadata.c (mono_guid_to_string): imported method form Zoltan
16990         Varga (slightly modified)
16991
16992         * assembly.c (mono_assembly_open): load precompiled code
16993
16994         * loader.h (MonoMethod): we store the method token for use in the
16995         aot compiler. 
16996
16997 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16998
16999         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17000         the hook function called when an assembly is loaded.
17001         
17002         * domain.c: Modified file.
17003         (mono_domain_assembly_load): removed hash table insertion of assemblies.
17004
17005         Fixes bug #33196.
17006
17007 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
17008
17009         * reflection.c: Map PEFileKind to the value expected by the WinNT
17010         image loader. 
17011
17012 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17013
17014         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17015         Read until the buffer is filled completely.
17016
17017 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17018
17019         * icall.c: implemented MonoType.InternalGetEvent ().
17020
17021 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17022
17023         * appdomain.c: implemented InitAppDomainSetup. Delayed
17024         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17025         the entry_assembly.
17026
17027         * assembly.c: base_dir is now an absolute path ending with
17028         G_DIR_SEPARATOR.
17029
17030         * icall.c: modified get_location according to the above changes.
17031
17032         * object.c: init AppDomain.SetupInformation for the default domain after
17033         we have the entry assembly.
17034
17035         * domain.c: when unloading a domain, setup = NULL.
17036
17037 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
17038
17039         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17040
17041 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17042
17043         * object.h, object.c: introduced mono_object_get_virtual_method ()
17044         to lookup the method invoked on an object when a callvirt is done on
17045         a method.
17046         * icall.c: make MethodInfo::Invoke() always do a virtual call.
17047
17048 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17049
17050         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17051         current domain when loaded an assembly and failed to load it.
17052
17053         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17054
17055 2002-10-31  Dick Porter  <dick@ximian.com>
17056
17057         * icall.c: 
17058         * file-io.h: 
17059         * file-io.c: Return the error status in a parameter, as the
17060         GetLastError() value has long since been blown away if we try and
17061         look it up in a subsequent internal call invocation.  Delete the
17062         GetLastError() internal call, because it's useless.
17063
17064 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
17065
17066         * class.[ch]: added cast_class to fix bug 29517
17067
17068 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17069
17070         * marshal.c: create valid IL code in the filter clause:
17071         the new JIT is less forgiving:-)
17072
17073 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17074
17075         * icall.c: removed get_property internal call.
17076
17077 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
17078
17079         * appdomain.h domain.c: Added an ID to appdomains.
17080         
17081         * threads.c threads.h icall.c: Implement icall
17082         Thread:GetDomainID(), and remove unused icall 
17083         CurrentThreadDomain_internal.
17084
17085 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17086
17087         * icall.c: Don't recurse through the base types in GetConstructor.
17088         Fixes bug #32063. 
17089
17090 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17091
17092         * mempool.h, mempool.c: added mono_mempool_empty() and
17093         mono_mempool_stats().
17094
17095 2002-10-23  Dick Porter  <dick@ximian.com>
17096
17097         * file-io.c: 
17098         * file-io.h: 
17099         * icall.c: Added MonoIO.GetFileType internal call
17100
17101 2002-10-17  Dick Porter  <dick@ximian.com>
17102
17103         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17104         delegate semaphore before waiting for all threads to finish,
17105         because new threads can also call async delegates.  Fixes bug
17106         32004.
17107
17108         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17109         of 3 seconds, in case another async job is queued.  (This part is
17110         needed because the bug fix reintroduced the 3s exit lag.)  This
17111         makes the mono_runtime_shutdown flag superfluous.
17112
17113 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17114
17115         * reflection.c: include ehader size in method section headers.
17116         Really check for suplicated modules entries.
17117
17118 2002-10-17  Martin Baulig  <martin@gnome.org>
17119
17120         * debug-mono-symfile.c: Added back support for locals.
17121
17122 2002-10-14  Martin Baulig  <martin@gnome.org>
17123
17124         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17125         MONO_TYPE_VOID.
17126
17127 2002-10-14  Martin Baulig  <martin@gnome.org>
17128
17129         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17130         mono_class_get() instead of looking in the class cache. 
17131
17132 2002-10-13  Martin Baulig  <martin@gnome.org>
17133
17134         * debug-mono-symfile.c: Set version number to 28, include the
17135         signature in method names.
17136
17137 2002-10-13  Martin Baulig  <martin@gnome.org>
17138
17139         * debug-mono-symfile.h: Set version number to 27.
17140
17141 2002-10-11  Martin Baulig  <martin@gnome.org>
17142
17143         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17144
17145 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17146
17147         * metadata.c, metadata.h: added helper function to allocate signatures.
17148
17149 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17150
17151         * icall.c: added internal call to get the location of machine.config.
17152
17153 2002-10-08  Martin Baulig  <martin@gnome.org>
17154
17155         * debug-mono-symfile.c: Ignore classes with a pending init for the
17156         moment.
17157
17158 2002-10-03  Dick Porter  <dick@ximian.com>
17159
17160         * threads.c: Freebsd pthread_t is a pointer
17161
17162 2002-10-03  Dick Porter  <dick@ximian.com>
17163
17164         * socket-io.c: Implemented GetHostName_internal
17165
17166 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17167
17168         * mono-config.c:
17169         (mono_config_parse_file): don't leak the text.
17170
17171 2002-10-02  Martin Baulig  <martin@gnome.org>
17172
17173         * debug-mono-symfile.c: Added support for methods.
17174
17175 2002-10-01  Martin Baulig  <martin@gnome.org>
17176
17177         * debug-mono-symfile.c: Don't emit methods and line numbers for
17178         the dynamic symbol file, just write the type table.  We can easily
17179         have an external helper program which creates a symbol file for an
17180         IL file.        
17181
17182 2002-10-01  Dick Porter  <dick@ximian.com>
17183
17184         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17185         Only add the handle to the cleanup array when we're about to
17186         launch the thread.  Bug 31425 deadlocked when the test was run on
17187         mono under w32.
17188
17189 2002-10-01  Martin Baulig  <martin@gnome.org>
17190
17191         * debug-mono-symfile.c: Added support for properties.
17192
17193 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17194
17195         * reflection.c: unaligned store fix from Mark Crichton
17196         <crichton@gimp.org>.
17197
17198 2002-09-27  Martin Baulig  <martin@gnome.org>
17199
17200         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17201         New interncall.
17202
17203 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17204
17205         * assembly.h, assembly.c: use a sane API to hook into the assembly
17206         loading process instead of a useless special-purpouse hack
17207         (ngen needs a hook, too, for example).
17208
17209 2002-09-27  Dick Porter  <dick@ximian.com>
17210
17211         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17212         io-layer can set up some process handle info.  Not needed on w32,
17213         but doesn't hurt either.
17214
17215         * process.c: Pass the program name in the second parameter to
17216         CreateProcess, so the path is searched.  Include the working
17217         directory. Implemented process name, process enumeration, and some
17218         process detail internal calls.
17219         
17220         * icall.c: Added internal calls for process lookup, and some
17221         process details
17222
17223 2002-09-26  Martin Baulig  <martin@gnome.org>
17224
17225         * assembly.c (mono_install_open_assembly_hook): New global
17226         function to install a function to be invoked each time a new
17227         assembly is loaded.
17228         (mono_assembly_open): Run this callback function if set.
17229
17230         * debug-mono-symfile.c: Put back line numbers for the dynamic
17231         symbol file and also record the .il file as source file.  This
17232         allows us to install the temporary symbol file as `file.dbg' just
17233         like a compiler-generated one.
17234
17235 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17236
17237         * Corrected typo in gc.c (BOHEM vs BOEHM).
17238
17239 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17240
17241         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17242         GetProperties. Also avoid calling g_slist_length in GetProperties and
17243         GetMethods.
17244
17245 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17246
17247         * reflection.c: avoid unaligned stores (bug spotted by
17248         Mark Crichton  <crichton@gimp.org>).
17249
17250 2002-09-25  Martin Baulig  <martin@gnome.org>
17251
17252         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17253         instead of guint64 for addresses and added prologue/epilogue info.
17254
17255 2002-09-25  Martin Baulig  <martin@gnome.org>
17256
17257         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17258         store line number info.  For the dynamic symbol file, we only need
17259         to provide the JIT generated dynamic line number info for the dynamic
17260         symbol file.
17261
17262 2002-09-25  Martin Baulig  <martin@gnome.org>
17263
17264         * debug-mono-symfile.h: Incremented version number.
17265
17266 2002-09-24  Martin Baulig  <martin@gnome.org>
17267
17268         * class.c (mono_debugger_class_init_func): New global function
17269         pointer variable.
17270         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17271         call it.
17272
17273         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17274         function.  This is called via the mono_debugger_class_init_func
17275         hook to add all types to the dynamic type table.
17276         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17277         from its metadata token.
17278
17279         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17280         New interncall for the debugger.
17281
17282 2002-09-24  Nick Drochak <ndrochak@gol.com>
17283
17284         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17285         before using it in case it is null.
17286         
17287 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17288
17289         * metadata.c: allow custom modifiers in local var signatures
17290         (bug spotted by Zoltan Varga).
17291
17292 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17293
17294         * class.c: deal with the <Module> class that may have a NULL vtable.
17295         Eliminate warnings.
17296
17297 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17298
17299         * image.c, image.h: more strong name helpers.
17300         * monosn.c: more work: convert pem keys to cryptoapi format.
17301
17302 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17303
17304         * string-icalls.c: speedup IndexOf.
17305
17306 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17307
17308         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17309
17310 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17311
17312         * icall.c: cleanup: use mono_object_domain ().
17313
17314 2002-09-23  Martin Baulig  <martin@gnome.org>
17315
17316         * debug-mono-symfile.c: Improved type support.
17317
17318 2002-09-22  Martin Baulig  <martin@gnome.org>
17319
17320         * debug-mono-symfile.c: Added support for reference types and strings.
17321
17322 2002-09-22  Martin Baulig  <martin@gnome.org>
17323
17324         * debug-mono-symfile.c: Started to work on the type table.
17325
17326 2002-09-21  Martin Baulig  <martin@gnome.org>
17327
17328         * debug-mono-symfile.c: Largely reworked the symbol table format.
17329         The symbol table is now incrementally updated each time a new
17330         method is added.  We're now also using our own magic and version
17331         so that you don't need to recompile all your classes if the
17332         dynamic table changes.
17333         (mono_debug_update_mono_symbol_file): Removed.
17334         (mono_debug_symfile_add_method): New function to add a method.
17335
17336 2002-09-21  Martin Baulig  <martin@gnome.org>
17337
17338         * icall.c
17339         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17340         New interncall.
17341
17342         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17343         New interncall to get a method from its metadata token.
17344
17345 2002-09-21  Martin Baulig  <martin@gnome.org>
17346
17347         * debug-mono-symfile.c: Create type table.
17348
17349 2002-09-20  Martin Baulig  <martin@gnome.org>
17350
17351         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17352
17353 2002-09-20  Martin Baulig  <martin@gnome.org>
17354
17355         * debug-mono-symfile.c: Provide information about params and locals.
17356
17357 2002-09-20  Martin Baulig  <martin@gnome.org>
17358
17359         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17360         New interncall.
17361
17362         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17363         interncall to get a method from its metadata token.
17364
17365 2002-09-20  Martin Baulig  <martin@gnome.org>
17366
17367         * debug-mono-symfile.c: Added a few checks for method->header
17368         being non-NULL.  This should never happen, but for the moment
17369         let's use a g_warning() rather than a g_assert().
17370
17371 2002-09-19  Mark Crichton  <crichton@gimp.org>
17372
17373         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17374         even if support for it isn't present.  Added an #ifdef to fix this.
17375
17376         * socket-io.c: Added checks back for Solaris support.
17377
17378 2002-09-19  Martin Baulig  <martin@gnome.org>
17379
17380         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17381         changes in the symbol file format.
17382
17383 2002-09-18  Martin Baulig  <martin@gnome.org>
17384
17385         * debug-mono-symfile.c: Set version number to 21.
17386
17387 2002-09-18  Dick Porter  <dick@ximian.com>
17388
17389         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17390         on netbsd.  Fixes bug 30051.
17391
17392 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17393
17394         * reflection.c:
17395         (set_version_from_string): little fix.
17396
17397 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17398
17399         * monosn.c, Makefile.am: added strong name utility.
17400         * reflection.h, reflection.c: implemented delayed signing,
17401         locale, version and hash id assembly attributes.
17402
17403 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17404
17405         * loader.c, metadata.c: load param attributes in signatures.
17406
17407 2002-09-16  Martin Baulig  <martin@gnome.org>
17408
17409         * debug-mono-symfile.c: Added string table with all method names.
17410
17411 2002-09-14  Martin Baulig  <martin@gnome.org>
17412
17413         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17414         fast method lookup.
17415
17416 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17417
17418         * reflection.c: record the public key token of referenced assemblies.
17419
17420 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17421
17422         * image.c, image.h: added functions to get the strong name and the
17423         public key of an assembly.
17424         * pedump.c: use them.
17425
17426 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17427
17428         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17429
17430 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17431
17432         * marshal.c (mono_marshal_get_managed_wrapper): Added
17433         MONO_TYPE_BOOLEAN 
17434
17435 2002-09-11  Martin Baulig  <martin@gnome.org>
17436
17437         * gc.c: Call GC_unregister_disappearing_link() on all links when
17438         finalizing them, this is necessary to aviod a crash in boehm's
17439         finalize handler.
17440
17441 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17442
17443         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17444         nick@chemlab.org.
17445
17446 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17447
17448         * icall.c: implemented MonoType::Module.
17449         * reflection.c, reflection.h: mono_module_get_object () from
17450         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17451
17452 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17453
17454         * icall.c: ignore overridden methods in GetMethods ().
17455         Fix for FieldInfo::SetValue().
17456         * object.c: handle float/double in runtime invoke.
17457
17458 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17459
17460         * object.c: allow a constructor to be called again on an object.
17461
17462 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17463
17464         * class.h, class.c: move field layout code to it's own function and
17465         export it. Get an interface id earlier. Move fields in MonoClass
17466         so they are more cache friendly and align the bitfields.
17467         * loader.c: temporary handle get_param_names() for a runtime method.
17468         * reflection.c, reflection.h: more code to handle runtime creation of
17469         types.
17470
17471 2002-09-09  Martin Baulig  <martin@gnome.org>
17472
17473         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17474         signature with the pinvoke field being set for the actual call.
17475
17476 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17477
17478         * icall.c: removed some unused icalls. Start of map of glib charsets
17479         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17480
17481 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17482
17483         * debug-helpers.c: break infinite loop (found and fixed by
17484         Holger Arnold <harnold@gmx.de>).
17485
17486 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17487
17488         * icall.c: target may be null in create_delegate.
17489
17490 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17491
17492         * marshal.c: handle a boolean return type.
17493
17494 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17495
17496         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17497
17498 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17499
17500         * gc.c: fix weakreferences.
17501
17502 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17503
17504         * icall.c: added icall to get default codepage.
17505
17506 2002-09-03  Dick Porter  <dick@ximian.com>
17507
17508         * threads.h: 
17509         * threads.c: Use MonoThread instead of MonoObject where
17510         apropriate.
17511
17512         Store running thread objects in a hash table, so that we have all
17513         the info to hand when waiting for them to finish
17514         (means we don't need OpenThread() any more, so mingw builds should
17515         be fully functional again.)
17516
17517         * verify.c:
17518         * object.h: Added thread ID to MonoThread
17519
17520 2002-09-03  Martin Baulig  <martin@gnome.org>
17521
17522         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17523
17524 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17525
17526         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17527
17528 2002-09-03  Martin Baulig  <martin@gnome.org>
17529
17530         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17531         argument to store the end address of the disassembled instruction.
17532
17533         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17534         here from debug-symfile.h.
17535         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17536         JIT into this struct.
17537         (MonoSymbolFile): Added `char *image_file' field.
17538         (MonoDebugGetMethodFunc): Removed.
17539         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17540         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17541         (mono_debug_find_method): New method.
17542
17543         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17544         create a full symbol file.
17545         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17546         and static symbol files.
17547         (mono_debug_find_method): The symbol file keeps an internal method hash,
17548         call this to get a MonoDebugMethodInfo from a MonoMethod.
17549
17550         * debug-symfile.[ch]: Removed.
17551
17552 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17553
17554         * image.c (do_mono_image_open): Remove linker version check.
17555
17556 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17557
17558         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17559         wrappers for instance methods.
17560         
17561 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17562
17563         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17564
17565 2002-08-28  Dick Porter  <dick@ximian.com>
17566
17567         * Makefile.am: Export HOST_CC for w32 builds
17568
17569 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17570
17571         * file-io.c process.c: MonoString are null terminated, no
17572         need for mono_string_to_utf16() anymore.
17573
17574 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17575
17576         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17577
17578 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17579
17580         * icall.c, reflection.h: speedup System.MonoType.
17581
17582 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17583
17584         * reflection.c: allow null as the value of a string argument in
17585         custom attributes constructors.
17586
17587 2002-08-27  Martin Baulig  <martin@gnome.org>
17588
17589         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17590         `trampoline_address' field.
17591
17592 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17593
17594         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17595         check (fixes bug #29486) 
17596
17597 2002-08-27  Martin Baulig  <martin@gnome.org>
17598
17599         * debug-mono-symfile.c: Changed the file format in a way that allows us
17600         open it read-only and to use a specially malloced area for all the
17601         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17602         debugging IL code and there is no MCS generated symbol file for it.
17603
17604 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17605
17606         * object.c: added a define for a good string and array
17607         creation speedup (not enabled by default because we need to deal with
17608         the synch stuff).
17609
17610 2002-08-26  Martin Baulig  <martin@gnome.org>
17611
17612         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17613         function to create a dynamic symbol file.  This is used by the
17614         debugger to create a symbol file for IL code on-the-fly.
17615
17616 2002-08-26  Martin Baulig  <martin@gnome.org>
17617
17618         * loader.c (mono_lookup_pinvoke_call): Include the error message
17619         from g_module_error() in the error message.
17620
17621 2002-08-24  Martin Baulig  <martin@gnome.org>
17622
17623         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17624         function to update the symbol file.  The symbol file is mmap()ed
17625         writable, but private.  This allows us to install the symbol file
17626         together with the assembly.
17627
17628 2002-08-24  Martin Baulig  <martin@gnome.org>
17629
17630         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17631         but they can read the new symbol file format which mcs is now creating.
17632
17633         * debug-symfile.c (mono_debug_find_source_location): Moved to
17634         debug-mono-symfile.c; this is now operating on the new symbol file.
17635
17636 2002-08-23  Martin Baulig  <martin@gnome.org>
17637
17638         * debug-helpers.c (mono_method_desc_from_method): New function to get
17639         a MonoMethodDesc from a MonoMethod.
17640
17641 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17642
17643         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17644         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17645
17646 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17647
17648         * string-icalls.[ch]: make helper methods static.
17649
17650 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17651
17652         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17653         types to it and to SetValueInternal.
17654
17655         * object.c: Moved handle_enum label to its proper place. This was the
17656         f... bug! ;-)
17657
17658         This time i compiled mcs and gtk-sharp and they both work.
17659
17660 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17661
17662         * icall.c: reverted partially my previous patch until 
17663         object.c:set_value handles enums correcly.
17664
17665 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17666
17667         * icall.c:
17668         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17669         (ves_icall_System_Environment_get_MachineName): removed warning when
17670         compiling under cygwin.
17671
17672 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17673
17674         * object.c: fixed field_get_value() for reference types.
17675
17676 2002-08-22  Dick Porter  <dick@ximian.com>
17677
17678         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17679         Don't free a buffer while it's still needed.  Patch from Jonathan
17680         Liger <Jonathan.liger@wanadoo.fr>
17681
17682 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17683
17684         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17685         internal call.
17686
17687 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17688
17689         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17690         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17691
17692         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17693         we call unmanaged code which throws exceptions.
17694
17695 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17696
17697         * appdomain.h: added per-domain entry_assembly.
17698         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17699         arguments.
17700         * icall.c: Assembly::GetEntryAssembly icall.
17701         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17702         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17703
17704 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17705
17706         * appdomain.h, gc.c: added mono_domain_finalize ().
17707
17708 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17709
17710         * object.c:
17711         (mono_print_unhandled_exception): changed g_warning by g_printerr
17712         because g_log has a 1024 characters limit (yeah, i got a big stack
17713         trace). Don't print exception name, that should be in ToString 
17714         returned string.
17715
17716 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17717
17718         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17719         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17720
17721 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17722
17723         * object.c:
17724         (mono_print_unhandled_exception): after previous commit, i realized
17725         that MS calls ToString on the exception. I changed this function to
17726         do that. This way we get stack_trace for free.
17727
17728 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17729
17730         * object.c:
17731         (mono_print_unhandled_exception): invoke Message property instead of
17732         getting 'message' field from Exception. Don't allocate memory for
17733         'trace' and 'message' if not needed.
17734
17735 2002-08-18  Dick Porter  <dick@ximian.com>
17736
17737         * unicode.c: Fix asserts to match Encoder.cs checks
17738
17739 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17740
17741         * marshal.c: fix unaligned store issue and a few wrong
17742         opcode argument types.
17743
17744 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17745
17746         * icall.c: added GetUninitializedObjectInternal internal call.
17747
17748 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17749
17750         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17751         to the right domain.
17752
17753 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17754
17755         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17756
17757         * class.c (class_compute_field_layout): set blittable to false for Strings
17758
17759         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17760
17761 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17762
17763         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17764         first chunk of code to create types at runtime. Code to
17765         handle ReflectedType/DeclaringType. Make reflection handles
17766         domain specific.
17767
17768 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17769
17770         * class.c: set correct name in arrays.
17771
17772 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17773
17774         * appdomain.c (mono_domain_transfer_object): make it work with
17775         valuetypes. bug fixes.
17776
17777 2002-08-12  Dick Porter  <dick@ximian.com>
17778
17779         * object.h: Rename some parameters to avoid c++ keywords (Patch
17780         from Joseph Wenninger <kde@jowenn.at>)
17781
17782 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17783
17784         * icall.c: added icall to implement Assembly.GetFile*.
17785
17786 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17787
17788         * reflection.h, reflection.c: code to embed managed resources.
17789
17790 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17791
17792         * class.c: move all the type size stuff into
17793         class_compute_field_layout().
17794
17795 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17796
17797         * class.c: ensure enums have always the correct instance size.
17798         * unicode.c: remove wrong assert.
17799
17800 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17801
17802         * assembly.c: fix mem corruption issue.
17803         * image.h, image.c: added mono_image_get_resource () to access
17804         managed resources.
17805         * icall.c: implemented Assembly.EntryPoint property and some
17806         Managed Resources related internalcalls.
17807
17808
17809 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17810
17811         * image.c, image.h: impemented mono_image_get_entry_point ().
17812         * appdomain.c: use mono_image_get_entry_point.
17813
17814 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17815
17816         * reflection.c: support the object type argument when loading
17817         custom attributes.
17818
17819 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17820
17821         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17822         String as return type.
17823
17824 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
17825
17826         * reflection.c: fix encoding of named args for custom attrs to match
17827         the ms implementation. Read them back when instantiating custom
17828         attributes.
17829
17830 2002-08-02  Radek Doulik  <rodo@ximian.com>
17831
17832         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
17833         by Dietmar as quick fix
17834         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
17835         16 as stack size, used on more places as quick fix before Dietmar
17836         will fix it properly
17837
17838 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17839
17840         * object.h, object.c: added accessors for fields and properties.
17841
17842 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17843
17844         * class.c, class.h: made mono_class_get_field_from_name ()
17845         loop on parent types.
17846         Added mono_class_get_property_from_name ().
17847
17848 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17849
17850         * class.c, class.h: move the code to setup the type vtable in its own
17851         function so that it can be reused also for types created at runtime.
17852         Eliminate the "class" identifier from the header file.
17853         * reflection.c: setup the vtable for enums so that we can create
17854         objects for use in SetConstant ().
17855
17856 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
17857
17858         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
17859         instead of the delegate itself as this pointer (bug #28383)
17860
17861 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
17862
17863         * marshal.c (mono_marshal_get_managed_wrapper): added return type
17864         conversions.
17865
17866 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17867
17868         * loader.c: don't set the pinvoke bit on icalls.
17869
17870 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
17871
17872         * debug-helpers.c (mono_method_full_name): only print a number to
17873         indicate wrapper type (so that the output is more readable in traces).
17874
17875 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
17876
17877         * class.c (mono_class_init): include method override patch from Paolo
17878
17879 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
17880
17881         * icall.c: fixed GetTypeCode().
17882
17883 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
17884
17885         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
17886         use real delegate invoke function to make it work with multicast
17887         delegates (fix bug# 28291).
17888
17889 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17890
17891         * object.c: load constant strings.
17892
17893 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17894
17895         * reflection.c: no magic numbers.
17896         * tabledefs.h: security action enum.
17897
17898 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17899
17900         * assembly.c: fix possible memory corruption.
17901
17902 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17903
17904         * reflection.h, reflection.c: added support for linking resources.
17905         * verify.c: check we have an updated corlib.
17906
17907 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
17908
17909         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
17910         string arrays.
17911         (mono_marshal_string_array): null terminate unmanaged string arrays.
17912         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
17913
17914 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17915
17916         * icall.c: Type.GetType () can now return also types from the
17917         calling assembly.
17918
17919 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17920
17921         * loader.h, loader.c: stack walking support.
17922         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
17923         GetCallingAssembly.
17924
17925 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
17926
17927         * marshal.c: added optimisations for blittable types 
17928
17929         * class.c (mono_array_class_get): do not set blittable attribute on arrays
17930         (mono_class_setup_mono_type): set blittable attribute for single
17931         and double.
17932
17933         * marshal.c (mono_string_utf8_to_builder): impl.
17934         (mono_string_builder_to_utf8): impl.
17935         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
17936
17937 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
17938
17939         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
17940         (mono_marshal_get_managed_wrapper): impl. byref types
17941
17942 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17943
17944         * icall.c:
17945         (search_method): don't display debug message. 
17946
17947 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17948
17949         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
17950
17951 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
17952
17953         * appdomain.c: set the missing filename when throwing exception.
17954
17955 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
17956
17957         * metadata.c (mono_type_size): code cleanup
17958         (mono_type_stack_size): removed some test code
17959
17960 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
17961
17962         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
17963         mono_get_exception_file_not_found now.
17964
17965         * exception.c (mono_exception_from_name_two_strings): New version
17966         that will call a constructor with two string arguments. 
17967         (mono_get_exception_file_not_found): New helper routine, used to
17968         report file-not-found errors.
17969
17970 2002-07-20  Dick Porter  <dick@ximian.com>
17971
17972         * process.h:
17973         * process.c: Pass file handles to CreateProcess
17974         
17975         * icall.c:
17976         * file-io.h:
17977         * file-io.c: Implemented CreatePipe
17978
17979 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17980
17981         * metadata.c (mono_get_param_info): set alignment for value types
17982
17983 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17984
17985         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
17986         Constify mono_domain_assembly_open().
17987         * loader.c: handle null namespace in icalls.
17988
17989 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
17990
17991         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
17992         (emit_str_to_ptr_conv): marshal object as structs
17993
17994         * metadata.c (mono_type_to_unmanaged): marshal object as structs
17995
17996         * marshal.c (mono_marshal_get_runtime_invoke): support value types
17997
17998 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
17999
18000         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18001         (mono_marshal_get_native_wrapper): we an now return value types
18002
18003 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18004
18005         * verify.c: more checks implemented.
18006
18007 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
18008
18009         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18010         (fix bug #27695)
18011         (mono_marshal_get_native_wrapper): allow byref arguments
18012         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18013         impl. PtrToStringXXX methods
18014         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18015         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18016         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18017         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18018         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18019
18020 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18021
18022         * reflection.c: fix buglet in parsing an assembly name.
18023
18024 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18025
18026         * marshal.c (emit_ptr_to_str_conv): first impl.
18027
18028 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18029
18030         * object.c, class.h: cache the vtable in the class as suggested by
18031         vargaz@freemail.hu (Zoltan Varga).
18032
18033 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18034
18035         * class.h, loader.c: added mono_field_from_token().
18036         * verify.c: first cut of type checking code.
18037
18038 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18039
18040         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18041
18042 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
18043
18044         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18045         (fix bug #27782)
18046         (mono_marshal_get_remoting_invoke): impl.
18047         (mono_delegate_begin_invoke): impl.
18048         (mono_mb_emit_save_args): impl.
18049         (mono_delegate_end_invoke): impl.
18050         (mono_marshal_get_delegate_begin_invoke):
18051         (mono_marshal_get_delegate_end_invoke):
18052         (mono_marshal_get_delegate_invoke): generate a special name for
18053         those methods (including the signature) and associate them whith
18054         the delegate class. 
18055
18056 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18057
18058         * reflection.[ch]: 
18059         (mono_reflection_type_from_name): now it has a MonoImage parameter
18060         which is used as the default image to search the type in. If the image
18061         is NULL or getting the type from it fails, it defaults to corlib.
18062
18063         * icall.c: changed 1 call to mono_reflection_type_from_name to match
18064         new parameter.
18065
18066 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18067
18068         * reflection.c: update the parameter table index.
18069
18070 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18071
18072         * domain.c: don't include the mark byte in the string hash.
18073
18074 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18075
18076         * icall.cs: icall for Type.GetTypeCode ().
18077         * verify: a couple of fixes and disabled local initialization checks.
18078
18079 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18080
18081         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18082
18083         * debug-helpers.c (mono_method_full_name): print the type of the
18084         runtime wrapper
18085
18086         * metadata.c (mono_signature_hash): a hash function for signatures
18087         (mono_signature_hash): better hash algorithm
18088
18089         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18090
18091         * debug-helpers.c (mono_method_full_name): this can now generate
18092         method names with signatures
18093
18094         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18095         method dont have this pointers.
18096
18097 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18098
18099         * reflection.c: fixup typebuilder tokens.
18100         * image.c: fix buglet.
18101         * marshal.h: remove whitespace.
18102         * metadata.h, metadata.c: reinstate code that was removed.
18103         * verify.c: handle catch directives and fix another couple of bugs.
18104
18105 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18106
18107         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18108         (mono_marshal_get_native_wrapper): make it comp. with the old code
18109         (mono_marshal_get_native_wrapper): support boolean
18110         (mono_marshal_get_managed_wrapper): support more types
18111
18112 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18113
18114         * class.c (class_compute_field_layout): compute class->blittable attribute.
18115
18116 2002-07-09  Dick Porter  <dick@ximian.com>
18117
18118         * threads.c: Make the thread cleaning up cope with threads that
18119         call ExitThread()
18120
18121 2002-07-08  Radek Doulik  <rodo@ximian.com>
18122
18123         * reflection.c (method_encode_code): use non-translated values to
18124         compute finally_start, this fixes exception handling on ppc, yay!
18125
18126         * decimal.h (struct signscale): fix endianess
18127
18128 2002-07-07  Radek Doulik  <rodo@ximian.com>
18129
18130         * reflection.c: swap box_val and not val
18131
18132 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18133
18134         * reflection.c, reflection.h: handle full assembly info in type name.
18135         Handle Type arguments when loading custom attributes.
18136         * icall.c: updated to use new mono_reflection_type_from_name () method.
18137
18138 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18139
18140         * loader.c:
18141         (method_from_memberref): also print assembly name when method not found.
18142
18143 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18144
18145         * icall.c:
18146         (ves_icall_TypeGetProperties): fixed bug #27473. 
18147
18148 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18149
18150         * reflection.c: display image name and token when cannot find the
18151         .ctor for an attribute.
18152
18153 2002-07-05  Martin Baulig  <martin@gnome.org>
18154
18155         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18156
18157 2002-07-04  Dick Porter  <dick@ximian.com>
18158
18159         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18160         compile on mingw.  This will cause mingw builds to not wait for
18161         subthreads to terminate after the main thread does.  I've lodged a
18162         bug with the mingw developers for them to wrap OpenThread().
18163
18164 2002-07-03  Dick Porter  <dick@ximian.com>
18165
18166         * threads.c: Store thread IDs instead of handles, because
18167         GetCurrentThread() returns a pseudohandle and therefore stores
18168         useless values.  mono_thread_cleanup() continues checking the
18169         array of threads until it is empty, to cope with subthreads
18170         spawning new threads after the main thread has finished.
18171
18172         * profiler.h:
18173         * profiler.c:
18174         * profiler-private.h: Pass the thread ID to thread profiler
18175         functions, instead of a handle
18176
18177 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18178
18179         * verify.c: fixes to make it more usable.
18180         * pedump.c: added --verify code to verify IL code in an assembly.
18181
18182 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18183
18184         * reflection.c: turn errors into warnings to allow compiling corlib.
18185
18186 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18187
18188         * reflection.c: add special cases to compile corlib.
18189
18190 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18191
18192         * reflection.c: handle properties with only a set method.
18193
18194 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18195
18196         * opcodes.h: add enum with opcodes in opval order.
18197
18198 2002-07-01  Dick Porter  <dick@ximian.com>
18199         
18200         * object.h:
18201         * object.c (mono_runtime_run_main): Removed unneeded argument
18202
18203 2002-06-28  Martin Baulig  <martin@gnome.org>
18204
18205         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18206
18207 2002-06-27  Dick Porter  <dick@ximian.com>
18208
18209         * threads.c: Store the handle in both the parent thread and in the
18210         subthread, to minimise the time between starting a new thread and
18211         storing its ID.
18212
18213 2002-06-26  Dick Porter  <dick@ximian.com>
18214
18215         * appdomain.c (mono_runtime_cleanup): Close the socket library
18216         after all the threads have finished, not before
18217
18218 2002-06-26  Martin Baulig  <martin@gnome.org>
18219
18220         * debug-symfile.c (mono_debug_find_source_location): Added
18221         `guint32 *line_number' argument.  If it's not NULL, store the line number
18222         there and return the file name without the line number.
18223
18224 2002-06-25  Dick Porter  <dick@ximian.com>
18225
18226         * icall.c:
18227         * process.h:
18228         * process.c: Process forking and other support functions
18229
18230 2002-06-25  Dick Porter  <dick@ximian.com>
18231
18232         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18233         things dont happen when the image is closed.
18234         (mono_image_lookup_resource): Walk the resource section looking
18235         for a particular entry
18236
18237         * cil-coff.h: PE resource section decoding
18238
18239 2002-06-25  Dick Porter  <dick@ximian.com>
18240         
18241         * assembly.h:
18242         * assembly.c: 
18243         (mono_assembly_foreach): Accessor functions to walk the list of
18244         loaded assemblies
18245         (mono_assembly_set_main):
18246         (mono_assembly_get_main): Process methods need to know which
18247         assembly is the "main" one
18248
18249         * object.c (mono_runtime_run_main): Record the main assembly
18250
18251         * debug-helpers.c: Fix typo
18252
18253 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18254
18255         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18256         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18257
18258 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18259
18260         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18261
18262 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18263
18264         * image.c (do_mono_image_open): Initialize reference count,
18265         otherwise we leak the MonoImage.
18266
18267 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * reflection.c: small tweak to handle self-hosting.
18270
18271 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18272
18273         * reflection.c: fix type name parse code.
18274
18275 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18276
18277         * reflection.c: break out of the loop.
18278         * image.c: special case corlib.
18279
18280 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18281
18282         * reflection.c: add all the custom attrs at the end to ensure the
18283         ctors have been properly initialized when the attributes are defined
18284         in the current assembly.
18285
18286 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18287
18288         * reflection.c: handle correctly multiple-nested types.
18289
18290 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18291
18292         * row-indexes.h: fix typos.
18293         * reflection.c: adjust for typos and fix method_def_or_ref
18294         encoding in MethodImpl table.
18295
18296 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18297
18298         * reflection.c: fix entry point patching (thanks Serge!).
18299
18300 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18301
18302         * verify.c: add check for System.Exception
18303
18304 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18305
18306         * image.c, class.c: minifix for code just c&p'ed.
18307         * reflection.c: warning fix.
18308         * object.h, loader.h, domain.c: load also StringBuilder.
18309
18310 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18311
18312         * marshal.h, marshal.c: some support code to handle complex marshaling.
18313
18314 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18315
18316         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18317         Better signatures with vtable error dump.
18318
18319 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18320
18321         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18322
18323 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18324
18325         * icall.c (ves_icall_Type_GetField): impl.
18326
18327 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18328
18329         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18330         to retrieve a marshal description blob for a field or param.
18331
18332 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18333
18334         * reflection.h, reflection.c: change order of nested type emission
18335         to avoid table corruption. The NestedTypes table is sorted.
18336         * icall.c: change order of GetConstructor results to workaround mcs bug.
18337
18338 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18339
18340         * reflection.h, reflection.c: handle field and param marshal
18341         information.
18342
18343 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18344
18345         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18346
18347 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18348
18349         * reflection.c: fix call convention.
18350
18351 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18352
18353         * reflection.h, reflection.c: mono_image_get_memberref_token()
18354         takes a type instead of a class, now. Added
18355         mono_image_get_array_token() to create tokens for the special
18356         multi-dim array methods.
18357
18358 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18359
18360         * assembly.c: handle modules (no assembly table). Split
18361         loading references in its own function.
18362         * class.c: handle moduleref resolution scope.
18363         * image.c, image.h: cache module name in image.
18364
18365 2002-06-07  Martin Baulig  <martin@gnome.org>
18366
18367         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18368         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18369
18370 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18371
18372         * icall.c: more signature fixes that used uint instead of int.
18373
18374 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18375
18376         * reflection.c: fixed signature of field refs.
18377
18378 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18379
18380         * class.c, reflection.c: handle typerefs of nested types
18381         (both on read and when writing files).
18382
18383 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18384
18385         * icall.c: fix method signatures that tried to workaround the previous
18386         typo, d'oh!
18387
18388 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18389
18390         * debug-helpers.c: fix typo.
18391
18392 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18393
18394         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18395         rewrote the PE/COFF writing code (our programs are understood by the
18396         ms runtime, now).
18397
18398 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18399
18400         * gc.c, gc.h, icall.c: weakreference support.
18401
18402 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18403
18404         * Makefile.am, mono-config.c: use $(sysconfdir).
18405
18406 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18407
18408         * icall.c: changed default precision of Double.ToString() to 15.
18409         Fixed memory leak. Unified with Single.ToString.
18410
18411 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18412
18413         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18414
18415 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18416
18417         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18418         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18419         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18420         and myself.
18421
18422 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18423
18424         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18425
18426 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18427
18428         * reflection.c, socket-io.c: more compilation fixes.
18429
18430 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18431
18432         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18433         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18434         unicode.c: warning and compiler compatibility fixes.
18435
18436 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18437
18438         * class.h, metadata.c: fixed warnings/compilation errors.
18439
18440 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18441
18442         * Makefile.am, mono-config.c, mono-config.h: configuration file
18443         support routines.
18444         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18445         config file. Export methods to insert and lookup mappings.
18446
18447 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18448
18449         * reflection.c: handle types and boxed objects in custom attr
18450         constructors.
18451
18452 2002-05-30  Martin Baulig  <martin@gnome.org>
18453
18454         * debug-symfile.c
18455         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18456
18457 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18458
18459         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18460         to lookup the implmap row for a P/Invoke method.
18461         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18462         P/Invoke method from the runtime on an as needed basis.
18463
18464 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18465
18466         * metadata.c (mono_metadata_parse_signature): impl.
18467
18468 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18469
18470         * class.c: handle .pack directive.
18471
18472 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18473
18474         * object.c: initialize static fields with RVA data.
18475
18476 2002-05-25  Martin Baulig  <martin@gnome.org>
18477
18478         * debug-symfile.c
18479         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18480
18481 2002-05-24  Martin Baulig  <martin@gnome.org>
18482
18483         * debug-symfile.c
18484         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18485         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18486         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18487
18488 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18489
18490         * object.c: special case string ctros in invoke.
18491         * gc.c: silly whitespace changes.
18492
18493 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18494
18495         * threadpool.[ch]: impl. a threadpool that can
18496         be used by mint and mono.
18497
18498 2002-05-22  Martin Baulig  <martin@gnome.org>
18499
18500         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18501         The first argument is now a `MonoReflectionModuleBuilder *', the return
18502         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18503         `methods' field to get the method builder.  The `token' argument is the
18504         unfixed token.
18505
18506         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18507         invalid characters instead of g_assert_not_reached()ing.  This seems
18508         to be the behaviour of mscorlib.
18509
18510 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18511
18512         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18513         Hestilow to fix bug #25104
18514
18515 2002-05-21  Martin Baulig  <martin@gnome.org>
18516
18517         * debug-symfile.c (mono_debug_find_source_location): New function.
18518         Looks up an IL offset in the line number table and returns the source
18519         location as a string.
18520
18521 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18522
18523         * icall.c:
18524         (mono_double_ToStringImpl): changed %f by %g until we have something
18525         better.
18526
18527 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18528
18529         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18530         parameters first in C#.
18531
18532 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18533
18534         * icall.c, reflection.h: added icall to get info about an event.
18535
18536 2002-05-20  Radek Doulik  <rodo@ximian.com>
18537
18538         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18539         endian
18540         (mono_value_box): don't use memcpy for small sizes on
18541         architectures with unaligned access
18542
18543 2002-05-20  Martin Baulig  <martin@gnome.org>
18544
18545         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18546         if `tb->parent == NULL'.
18547         (mono_reflection_create_internal_class): New function.  This is
18548         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18549         for enum types.
18550
18551         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18552         New interncall.
18553
18554 2002-05-19  Martin Baulig  <martin@gnome.org>
18555
18556         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18557         argument to get the length, don't default to the array length.
18558
18559 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18560
18561         * assembly.c (mono_assembly_setrootdir): New function used to
18562         override the MONO_ASSEMBLIES directory.
18563
18564 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18565
18566         * icall.c: ValueType_GetHashCode() initialize local var.
18567
18568 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18569
18570         * reflection.c: sort custom attributes table.
18571
18572 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18573
18574         * reflection.c: support named args in custom attributes (write support).
18575
18576 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18577
18578         * reflection.c: fix finally position calculation.
18579
18580 2002-05-15  Radek Doulik  <rodo@ximian.com>
18581
18582         * reflection.c: fixed endianess at many places
18583
18584         * icall.c (ves_icall_InitializeArray): comment out debug msg
18585
18586 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18587
18588         * object.c (mono_unhandled_exception): new function to handle
18589         unhandled exceptions.
18590         (mono_unhandled_exception): call the UnhandledException event.
18591         (mono_runtime_delegate_invoke): impl.
18592
18593 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18594
18595         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18596         returns the RVA, not the direct pointer to the data. Handle the case
18597         when the class size is fixed.
18598
18599 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18600
18601         * reflection.c: fix some endianess issues.
18602
18603 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18604
18605         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18606
18607         * threads.c (mono_thread_init): added a callback which is invoked
18608         at thread start.
18609
18610 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18611         
18612         * icall.c: make GetHashCode return non-negative values.
18613
18614 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18615
18616         * object.c, icall.c, gc.c: revert to address-based hashcode.
18617
18618 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18619
18620         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18621
18622 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18623
18624         * icall.c, class.c: special case <Module>.
18625
18626 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18627
18628         * icall.c: fix bug in GetNow().
18629
18630 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18631
18632         * object.c (mono_runtime_class_init): make sure that we call all
18633         static class constructors.
18634
18635 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18636
18637         * reflection.c: sort methodsemantics table.
18638
18639 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18640
18641         * reflection.h, reflection.c: honour init locals setting.
18642
18643 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18644
18645         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18646
18647 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18648
18649         * reflection.c: support ContructorBuilders in attribute blob creation.
18650
18651 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18652
18653         * reflection.c: some changes to build a binary that can be run
18654         directly in windows.
18655
18656 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18657
18658         * loader.c: print a big message when an icall can't be found.
18659
18660 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18661
18662         * string-icalls.c: fix bug 24248.
18663
18664 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18665
18666         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18667         icall.c, reflection.h: separate assembly loading by pathname and by
18668         assembly name. Use the MONO_PATH env var to search for assemblies.
18669
18670 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18671
18672         * assembly.c, image.h: add some support for assemblies
18673         with multiple modules.
18674         * class.c, class.h: export mono_class_from_typeref().
18675         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18676         instead.
18677
18678 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18679
18680         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18681         documentation says (the ECMA one is correct).
18682
18683 2002-05-02  Dick Porter  <dick@ximian.com>
18684
18685         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18686         Don't name the synchronisation mutex.
18687
18688 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18689
18690         * rand.c
18691         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18692         Make the prototypes match.
18693         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18694         Same.
18695
18696         * icall.c
18697         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18698         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18699         all systems have tm.tm_zone, so use strftime() with %Z to print
18700         the timezone abreviation into a temp string.
18701
18702         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18703         rather than mono_array_addr() on a MonoString on Big Endian
18704         machines.
18705
18706 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18707
18708         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18709         fix bug 24041
18710
18711 2002-04-30  Dick Porter  <dick@ximian.com>
18712
18713         * socket-io.c: Cope with SOCKET being an integer rather than a
18714         pointer now.
18715
18716         * threads.c: Added Thread_free_internal, to deal with thread
18717         handle cleanup.  Moved calls to handle_store() and handle_remove()
18718         to start_wrapper(), so each can only be called once.  Allocate
18719         synchronisation blocks with GC_malloc(), and use GC finalisation
18720         to close the handles.
18721
18722         * icall.c: added System.Threading.Thread::Thread_free_internal
18723
18724 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18725
18726         * icall.c: support Environment.Exit, CommandLineArgs().
18727
18728 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18729
18730         * object.c, object.h: added mono_runtime_run_main () and
18731         mono_runtime_get_main_args () for use in System.Environment.
18732
18733 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18734
18735         * gc.c: fix thinko, enable actual finalization since the jit is now
18736         fixed.
18737
18738 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18739
18740         * gc.c, object.c: take into account that an object may be offset wrt the address
18741         returned by GC_malloc().
18742
18743 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18744
18745         * image.c: handle files without entries in the assembly table (modules).
18746
18747 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18748
18749         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18750         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18751         allowed to be null when it's System.Object class setup.
18752
18753 2002-04-27  Martin Baulig  <martin@gnome.org>
18754
18755         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18756         if `tb->parent == NULL' rather than crashing.
18757
18758 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18759
18760         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18761         calling acos() where asin() should have been called.
18762
18763 2002-04-26  Martin Baulig  <martin@gnome.org>
18764
18765         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18766         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18767         there's a subdirectory called `System', but we don't want to read that
18768         subdirectory as an assembly.
18769
18770 2002-04-25  Martin Baulig  <martin@gnome.org>
18771
18772         * debug-symfile.c: Reflect latest MonoString changes.
18773
18774 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18775
18776         * rand.c, rand.h: instance method icalls need to have an explicit
18777         this pointer as first argument in the C implementation.
18778
18779 2002-04-25  Nick Drochak <ndrochak@gol.com>
18780
18781         * icall.c: Fix typo in map for GetNonZeroBytes
18782
18783 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18784
18785         * string-icalls.c : String does now passes unit tests without any 
18786         errors, the following changes has been made:
18787         
18788         Implemented replace methods.
18789         Renaming of methods to (try) follow the standard.
18790         Fixed compare ordinal
18791         Made all memory allocated directly to function instead of via icall function.
18792         Small performance fix in is_in_array function
18793                         
18794  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18795
18796         c (mono_string_Internal_ctor_charp_int_int):
18797         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18798         sindex < 0, throw ArgumentOutOfRangeException instead of
18799         ArgumentNullException.
18800
18801         Added new check for length == 0, however
18802         I need to make it return String.Empty from the C code.
18803         
18804         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18805         that calculate the length for us here.
18806         
18807         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18808         mono_string_new_utf16 with mono_string_new, since value is utf8.
18809
18810 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18811
18812         * object.c: register the object for finalization if needed.
18813         Allocate one more char in the string for the terminating 0 char.
18814
18815 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18816
18817         * class.c, class.h, image.c: check if a type implemenst a destructor.
18818         Use the proper key for array class lookups.
18819         * icall.c: register the icalls in the System.GC class.
18820         * gc.c, gc.h: GC-related functions and icalls.
18821
18822 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18823
18824         * icall.c:
18825         * socket-io.c:
18826         * unicode.c: free some strings gotten from mono_string_to_utf8 and
18827         changed a couple of free () by g_free ().
18828
18829         * decimal.c: one-liner in the comments for decimal2string ().
18830
18831 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18832
18833         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
18834
18835 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18836
18837         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
18838         * object.c (mono_runtime_invoke_array) : handle null in params
18839
18840 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18841
18842         * string-icalls.c: fixed bug in split (one off bug)
18843
18844 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18845
18846         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
18847         * icalls.c: added String::Equals as internal method
18848
18849 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
18850
18851         * threads.c: fixed bug in the double interlocked functions
18852
18853 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
18854
18855         * threads.c: implemented all of the new interlocked icalls.
18856         * string-icalls.c: fix a bug in insert.
18857         * icalls.c: added the icalls for interlocked, removed old string functions.
18858         
18859 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18860
18861         * loader.c: fix off-by-one error when reading argument names.
18862
18863 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18864
18865         * profiler.c: win32 counter implementation (untested).
18866         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
18867         (the latter needs testing and more complete impl. from win32 folks).
18868
18869 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
18870
18871         * object.c: mono_array_new_full workaround mono_array_class_get
18872         problem.
18873
18874 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18875
18876         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
18877         * object.h (mono_string_chars): Changed casting type.
18878
18879 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18880
18881         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
18882                            method signatures to use gunichar2 instead of gint16.
18883
18884 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
18885
18886         * object.h, object.c: domain-specific versions of mono_object_new and
18887         mono_array_new.
18888
18889 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
18890
18891         * object.c: changed String layout
18892
18893         * string-icalls.c (mono_string_Internal_ctor_chara): added
18894         internal string constructors.
18895
18896 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
18897
18898         * threads.c: pass 'this' to the thread start routine.
18899
18900 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18901
18902         * string-icalls.c: fix IndexOf and LastIndexOf. Now
18903         InternalCompareStr don't call twice mono_string_cmp_char for the last
18904         character. Improved performance in mono_string_cmp_char.
18905
18906 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18907
18908         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
18909         code into its own library: libmonoruntime.
18910
18911 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
18912
18913         * object.h, object.c: changed array format so that szarrays do not
18914         require a bounds structure.
18915         * icall.c, appdomain.c: support for new szarray format.
18916
18917 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18918
18919         * metadata.c: compare also the retuns type when comparing signatures:
18920         we didn't do this as an optimization since really overloaded methods
18921         must differ also in the arguments, but this doesn't work with
18922         low-level IL code (or when using explicit conversion operators: see
18923         bug#23498 for an example).
18924
18925 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18926
18927         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
18928
18929 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18930
18931         * icall.c: make MonoType::GetElementType its own icall.
18932
18933 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18934
18935         * icall.c: remove MonoMethod_get_Name().
18936         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
18937         object.
18938
18939 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18940
18941         * string-icalls.c: optimized a few methods.
18942
18943 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
18944
18945         * icall.c: added all new string internal calls
18946         * string-icalls.c: added, new string internal call implementation.
18947         * object.c: added mono_string_new_size for allocating a string a size
18948
18949 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
18950
18951         * object.c (mono_object_isinst): use the same code as in the
18952         optimized x86 version.
18953
18954 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18955
18956         * profiler.c: TSC-based timer code (faster and more accurate).
18957         Not hooked up in configure, yet (set USE_X86TSC to 1).
18958
18959 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
18960
18961         * profiler.c, profiler.h: track time spent compiling methods.
18962         * threads.c: track thread creation/destruction.
18963
18964 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
18965
18966         * profiler.c, profiler.h, profiler-private.h: profiling interface
18967         and sample implementation. Moved here so that it can be used also by
18968         the jit.
18969
18970 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
18971
18972         * reflection.c, reflection.h: keep types and other handles separate in
18973         the hash tables for referred tokens. Add guid for modules.
18974
18975 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18976
18977         * assembly.c: fix bugs found with valgrind.
18978         * metadata.h, metadata.c: added mono_metadata_guid_heap().
18979
18980 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
18981
18982         * threads: added icall support for getting current domain for
18983                    the thread.
18984  
18985 2002-04-13  Martin Baulig  <martin@gnome.org>
18986
18987         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
18988         (MonoDebugVarInfo): Added `index' field for register based addresses.
18989         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
18990         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
18991         `MonoDebugVarInfo *params' and `guint32 this_offset' with
18992         `MonoDebugVarInfo *this_var'.
18993
18994         * debug-symfile.c (relocate_variable): New static function to write
18995         a location description for a local variable or method parameter.
18996
18997 2002-04-12  Martin Baulig  <martin@gnome.org>
18998
18999         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19000         stack offset and begin/end scope address of a local variable.
19001         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19002         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19003         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19004
19005         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19006         Added new relocation types for start/end scope of a local variable.
19007
19008 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19009
19010         * object.h: add mono_object_domain() macro.
19011         * reflection.c: handle typespecs.
19012         * icall.c: MonoMethod::get_Name() implementation.
19013
19014 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19015
19016         * icall.c: String::GetHashCode() icall implementation.
19017
19018 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19019
19020         * icall.c: String::IndexOfAny icall.
19021         * object.c, object.h: make array->max_length more useful.
19022         Intrduced mono_object_class() and mono_string_length() macros.
19023
19024 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19025
19026         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19027         instead of g_unichar_isdigit.
19028
19029 2002-04-11  Nick Drochak  <ndrochak@gol.com>
19030
19031         * icall.c: Implement a simple Double.ToString().
19032
19033 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19034
19035         * appdomain.h: only io-layer.h is supposed to be included.
19036         * icall.c: explicitly import environ. Fix warning.
19037
19038 2002-04-10  Nick Drochak  <ndrochak@gol.com>
19039
19040         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19041                 return true even if it's not Daylight Savings time.
19042                 Only return false for the case where the function isn't
19043                 implemented for a plaform (read Windows).
19044
19045 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19046
19047         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19048         data with a mutex.
19049
19050 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
19051
19052         * mempool.c (mono_mempool_alloc): only use g_malloc when
19053         absolutely necessary.
19054
19055 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19056
19057         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19058
19059         * class.c (mono_class_vtable): use domain mempool to allocate vtable
19060         (mono_class_proxy_vtable): use domain mempool
19061
19062 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19063
19064         * appdomain.h, appdomain.c: split initialization that requires the
19065         execution engine support into mono_runtime_init().
19066
19067 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19068
19069         * class.c (mono_class_init): don't include vtable inside MonoClass
19070         to save some memory, gather some statistics.
19071         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19072
19073 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19074
19075         * icall.c: internalcall implementation for ValueType.Equals().
19076
19077 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
19078
19079         * object.c (mono_message_init): moved 
19080         (mono_runtime_exec_main): new arch. independent impl.
19081         (mono_runtime_invoke_array): new method - like
19082         mono_runtime_invoke, but you can pass an array of objects.
19083         (mono_remoting_invoke): new arch. independent impl.
19084         (mono_message_invoke): new arch. independent impl.
19085         (mono_runtime_class_init): new arch. independent impl.
19086         (mono_runtime_object_init): new arch. independent impl.
19087
19088 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19089
19090         * metadata.c, object.c, reflection.c: documented the exported
19091         functions.
19092
19093 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19094
19095         * icall.c: simpler code to pass the assembly builder data to corlib.
19096         Implement GetNestedTypes() internalcall.
19097
19098 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19099
19100         * class.c: warn if a type can't be loaded.
19101
19102 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19103
19104         * image.h: typedef MonoImageOpenStatus
19105         * types.h: removed unused file
19106         
19107 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19108
19109         * icall.c: Enum_ToObject accepts enum value arguments.
19110
19111 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19112
19113         * class.c: move initialization of properties, events and nested
19114         classes, so that they happen for interfaces, too.
19115
19116 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19117
19118         * icall.c: cleanup some ugly casts in Array_SetValue*.
19119
19120 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19121
19122         * icall.c: the values array fro enums is of the correct type, now.
19123         Implement (correctly) getFullName instead of assQualifiedName for
19124         MonoType.
19125         * reflection.h, reflection.c: added mono_type_get_name ().
19126
19127 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19128
19129         * assembly.c, image.h: for each MonoImage, record from wich assembly
19130         it was loaded.
19131         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19132         Make Type.Assembly work.
19133
19134 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19135
19136         * debug-symfile.h: use char* instead of gpointer to avoid
19137         unnecessary casts.
19138
19139         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19140
19141         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19142         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19143
19144 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19145
19146         * icall.c (mono_message_init): impl. (code cleanup)
19147         (ves_icall_InternalExecute): impl. FieldGetter
19148
19149         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19150         defined we call all (non-static)methods through the vtable. 
19151
19152 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19153
19154         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19155         finalizer even though the memory is still referenced (and the chunk of
19156         memory is not freed).
19157
19158 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19159
19160         * assembly.c: fix brokeness.
19161
19162 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19163
19164         * class.c: kill some warnings. Check explicit interface method
19165         implementation also without considering the namespace.
19166         Load also literal strings in static class data.
19167
19168 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19169
19170         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19171         (default_assembly_name_resolver): Make the resolver take the
19172         "base" directory where the assembly was originally defined, so we
19173         can load DLLs that are in the same directory as the assembly that
19174         is being referenced.
19175
19176 2002-03-28  Dick Porter  <dick@ximian.com>
19177
19178         * file-io.h: 
19179         * file-io.c:
19180         * socket-io.c: 
19181         * unicode.h: 
19182         * unicode.c: Warning cleanups
19183
19184 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19185
19186         * object.h, reflection.h: use the correct type instead of MonoObject.
19187
19188 2002-03-28  Martin Baulig  <martin@gnome.org>
19189
19190         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19191         (mono_debug_update_symbol_file): Initialize classes if necessary.
19192
19193 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19194
19195         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19196         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19197
19198 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19199
19200         * assembly.h: fix function prototype.
19201         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19202         * mono-endian.h: use const cast.
19203
19204 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19205
19206         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19207
19208 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19209
19210         * loader.c: don't assert when a typeref can't be loaded, give
19211         a chance to the runtime to trow an exception instead.
19212         * loader.h: fix warning.
19213
19214 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19215
19216         * class.c (mono_class_proxy_vtable): added proxy support
19217
19218 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19219
19220         * icall.c: removed last of PAL calls, added System.Environment
19221         * file-io.h, file-io.c: MonoIO implementation
19222         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19223
19224 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19225
19226         * appdomain.c: do not use the byte marker in ldstr table lookup.
19227         * debug-helpers.c: allow two ':' to separate class and method name.
19228         * object.c: allocate arrays bounds with the GC, too.
19229         * verify: add a few more checks.
19230
19231 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19232
19233         * reflection.c: output also literal strings. Allocate parameter data
19234         with GC_malloc() (thanks, Martin, for catching this!).
19235
19236 2002-03-26  Martin Baulig  <martin@gnome.org>
19237
19238         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19239         include the `this' offset in the `param_offsets'.
19240
19241 2002-03-25  Martin Baulig  <martin@gnome.org>
19242
19243         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19244         mono_debug_get_class() function to get the classes. Added new
19245         relocation types for arrays and strings.
19246         (mono_debug_get_class): New static function to search in all
19247         referenced assemblies for a metadata token.
19248
19249         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19250
19251 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19252
19253         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19254         hold gc-allocated objects. Make the string heap a stream like the
19255         others. Removed duplicated code when writing stream info.
19256         Added asserts to catch possible buffer overflows. Set the sorted map
19257         for tables that need sorting. Added some documentation.
19258
19259 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19260
19261         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19262         for interned strings and vtables.
19263
19264 2002-03-24  Martin Baulig  <martin@gnome.org>
19265
19266         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19267         it in the array since it was created with g_slist_prepend().
19268
19269 2002-03-24  Martin Baulig  <martin@gnome.org>
19270
19271         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19272         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19273         (mono_debug_method_from_token): Renamed to
19274         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19275         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19276
19277         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19278         relocation types.
19279
19280         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19281
19282 2002-03-24  Martin Baulig  <martin@gnome.org>
19283
19284         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19285         (mono_debug_method_from_token): New func.
19286
19287         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19288         New interncall, calls mono_debug_local_type_from_signature().
19289         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19290         calls mono_debug_method_from_token().
19291
19292 2002-03-23  Martin Baulig  <martin@gnome.org>
19293
19294         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19295         specifies the number of bytes to be converted, not the array size.
19296         Return the number of chars, not the number of bytes.
19297         (ves_icall_iconv_get_chars): The `byteCount' argument
19298         specifies the number of bytes to be converted, not the array size.
19299
19300 2002-03-23  Martin Baulig  <martin@gnome.org>
19301
19302         * reflection.h (MonoReflectionSigHelper): New type.
19303
19304         * reflection.c (mono_reflection_sighelper_get_signature_local),
19305         (mono_reflection_sighelper_get_signature_local): New functions.
19306
19307         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19308         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19309         interncalls.
19310
19311 2002-03-23  Martin Baulig  <martin@gnome.org>
19312
19313         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19314         is_writeable is set.
19315         (mono_raw_buffer_update): New function to write the modified map
19316         back to disk.
19317
19318         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19319
19320         * debug-symfile.c (mono_debug_update_symbol_file): Call
19321         mono_raw_buffer_update() when done writing.
19322
19323 2002-03-23  Martin Baulig  <martin@gnome.org>
19324
19325         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19326
19327         * debug-symfile.c: Added support for arguments and local variables.
19328
19329 2002-03-23  Dick Porter  <dick@ximian.com>
19330
19331         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19332         protected by ifdefs, hence breaking the w32 build.
19333
19334 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19335
19336         * object.c: implement is_interned() the right way.
19337
19338 2002-03-21  Martin Baulig  <martin@gnome.org>
19339
19340         * debug-symfile.[ch]: New files to handle debugging information
19341         files. There's also support to dynamically update these symbol
19342         files to include machine dependent information.
19343
19344 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19345
19346         * threads.c (mono_thread_create): new function to create thread
19347         from C
19348
19349 2002-03-20  Martin Baulig  <martin@gnome.org>
19350
19351         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19352         method is a constructor.
19353         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19354         points to ves_icall_InternalInvoke().
19355
19356 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19357
19358         * file-io.c: Flush shouldn't throw exceptions.
19359
19360 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19361
19362         * file-io.c: FileStream flush support; FileSetLength now
19363         restores file pointer.
19364
19365 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19366
19367         * class.c: set image for pointer classes.
19368
19369 2002/03/19  Nick Drochak <ndrochak@gol.com>
19370
19371         * sysmath.c: Forgot one.
19372
19373 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19374
19375         * sysmath.c: Avoid redefining existing names.
19376
19377 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19378
19379         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19380         handled by runtime as icall rather than dllimport from libm.so
19381         * file-io.c, file-io.h: fixed handle argument type.
19382
19383 2002-03-18  Dick Porter  <dick@ximian.com>
19384
19385         * reflection.c (mono_image_get_type_info): rename interface to
19386         iface, because of "#define interface struct" on windows.
19387
19388 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19389
19390         * class.c, class.h: rename and export mono_ptr_class_get().
19391         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19392         * reflection.c, reflection.h, icall.c: better/saner type name
19393         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19394         method signatures.
19395
19396 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19397
19398         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19399
19400         * icall.c (ves_icall_InternalInvoke): impl.
19401
19402 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19403
19404         * reflection.c: output the interface map table, too.
19405
19406 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19407
19408         * class.c (class_compute_field_layout): separate computation of 
19409         static field layout
19410
19411 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19412
19413         * icall.c: added System.Buffer support.
19414         * file-io.c: moved file icalls from PAL to FileStream.
19415
19416 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19417
19418         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19419
19420 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19421
19422         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19423
19424 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19425
19426         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19427
19428 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19429
19430         * debug-helpers.{c,h}: moved here from monograph some useful functions
19431         to locate a method by name/signature in a class or image. Included
19432         also a small and flexible IL disassembler.
19433
19434 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19435
19436         * reflection.c: fixup tokens in methods with small header size, too.
19437
19438 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19439
19440         * object.c (mono_string_to_utf8): remove assert(!error), instead
19441         print a warning. 
19442
19443 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19444
19445         * icall.c: update to the new mono_Array_class_get interface.
19446
19447 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19448
19449         * appdomain.c, object.c: Boehm-GC enable.
19450         * icall.c: make get_data_chunk() support split data requests.
19451         Ensure a class is initialized in more cases. Return only the first
19452         property found in GetProperties() or the compiler gets confused. 
19453         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19454         * reflection.h, reflection.c: add fixup mechanism for field and method
19455         tokens. Initialize assembly->typeref in a single place. Output
19456         properties after events. Support custom attributes for events, too.
19457         Typo fix for paramter custom attrs.
19458
19459 2002-03-07  Martin Baulig  <martin@gnome.org>
19460
19461         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19462
19463 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19464
19465         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19466
19467 2002-03-06  Martin Baulig  <martin@gnome.org>
19468
19469         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19470         non-zero lower bounds. See testcases #F10-#F13.
19471
19472 2002-03-05  Martin Baulig  <martin@gnome.org>
19473
19474         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19475
19476         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19477         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19478         here.
19479         (ves_icall_System_Array_SetValue): Likewise.
19480         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19481         as argument and does the actual work. This function is used when copying a
19482         multi-dimensional array.
19483         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19484         now do all the widening conversions of value types.
19485         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19486
19487 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * class.c: remove some magic numbers and use the smbolic names,
19490         instead. Added init_events() to load event info at class init time.
19491         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19492         and mono_metadata_methods_from_event().
19493         * reflection.h, reflection.c: added support for writing out the evnets
19494         related information.
19495
19496 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19497
19498         * reflection.h, icall.c: use a different method (GetInterfaces)
19499         to gather interface info and add isbyref, isprimitive and
19500         ispointer to the ves_icall_get_type_info() return value.
19501
19502 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19503
19504         * class.h: stared adding support for events.
19505         * icall.c: split find_members implementation. Added debug icall to get
19506         the address of an object.
19507         * reflection.c: handle TypeBuilders in mono_type_get_object().
19508
19509 2002-03-01  Martin Baulig  <martin@gnome.org>
19510
19511         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19512         ArgumentOutOfRangeException(), not an ArgumentException().
19513         (ves_icall_System_Array_GetLowerBound): Likewise.
19514         (ves_icall_System_Array_GetValue): Improved argument checking.
19515         (ves_icall_System_Array_SetValue): Improved argument checking.
19516
19517 2002-03-01  Martin Baulig  <martin@gnome.org>
19518
19519         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19520         called with invalid arguments rather than just dying with g_assert().
19521         (ves_icall_System_Array_SetValue): Likewise.
19522         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19523         raise a NotImplementedException instead.
19524         (ves_icall_System_Array_GetLength): Added argument checking.
19525         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19526
19527 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19528
19529         * object.h (mono_assert): new macros mono_assert and
19530         mono_assert_not_reached
19531
19532 2002-02-28  Martin Baulig  <martin@gnome.org>
19533
19534         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19535         and "System::String::IsInterned" to "System::String::_IsInterned".
19536
19537 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19538
19539         * icall.c: remove hacks for typebuilder. Added icall to create a
19540         modified type from a tybebuilder.
19541         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19542         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19543         to create a backing MonoClass for a TypeBuilder.
19544
19545 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19546
19547         * class.c, class.h: more refactoring of class init.
19548         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19549
19550 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19551
19552         * marshal.c, marshal.h: start of marshaling interface.
19553
19554 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19555
19556         * icall.c: fix order in assembly qualified name icall.
19557
19558 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19559
19560         * class.c: do not free str, since we store it in the hash table.
19561         * reflection.h: add label field to MonoILExceptionInfo.
19562         * reflection.c: handle references to more than one assembly. Handle
19563         case when there isn't a module created in the assembly.
19564
19565 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19566
19567         * class.c: Fix typo. Start refactoring of class init code.
19568
19569 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19570
19571         * appdomain.c: exit with 1 on error.
19572         * class.c: we already have the name in MonoClassField.
19573         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19574         MonoStreamHeader instead of an offset of image->raw_metadata.
19575
19576 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19577
19578         * appdomain.c (mono_init): Be even more descriptive about the error.
19579
19580 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19581
19582         * appdomain.c: give the user an informative message when corlib can't
19583         be loaded.
19584
19585 2002-02-26  Martin Baulig  <martin@gnome.org>
19586
19587         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19588         New icall to get the time zone data.
19589
19590 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19591
19592         * reflection.c: set virtual and raw size of section correctly.
19593         * threads.c: transfer domain information to newly created threads.
19594
19595 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19596
19597         * class.c: when instancing a class in a domain, load the default
19598         vaules for static fields from the constant table. Fix System.Enum to
19599         not be an enum.
19600         * icall.c: implement Object::GetType() internalcall. Implemented
19601         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19602         Fixed checking of binding flags in find_members().
19603         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19604         * reflection.c: handle enumerations when writing to the constant
19605         table. Use a different object cache for types.
19606
19607
19608 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19609
19610         * object.c (mono_object_isinst): fix for arrays
19611
19612         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19613
19614 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19615
19616         * object.c: don't use mprotect ()  and fix intern pool hash table
19617         lookup for big endian systems.
19618
19619 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19620
19621         * icall.c: change type_is_subtype_of () signature.
19622
19623 2002-02-21  Mark Crichton  <crichton@gimp.org>
19624
19625         * rand.c, rand.h: Added random number generator for
19626         System.Security.Cryptography classes.
19627
19628         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19629
19630         * icall.c: Added System.Security.Cryptography calls.
19631
19632 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19633
19634         * class.c, icall.c, metadata.c: better support for pointer types.
19635         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19636         * reflection.c: Add support for getting custom attrs for properties
19637         and simplify some code.
19638
19639 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19640
19641         * icall.c: change getToken () and add custom attribute GetBlob()helper
19642         method.
19643         * reflection.h: add custom attrs array to the reflection builder structures.
19644         * reflection.c: encode and emit custom attributes for all the relevant
19645         reflection objects. Cache fieldref and methodref tokens. Change
19646         mono_image_create_token() interface to take a MonoDynamicAssembly.
19647         More complete custom attributes decoder. Load custom attributes for
19648         Assembly, Field, Method and Constructor objects, too. Make the
19649         returned array an Attribute[] one, not object[]. Added
19650         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19651         custom attribute constructor.
19652
19653 2002-02-20  Dick Porter  <dick@ximian.com>
19654
19655         * icall.c:
19656         * rawbuffer.c:
19657         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19658         problem code out for now).
19659
19660 2002-02-19  Radek Doulik  <rodo@ximian.com>
19661
19662         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19663
19664 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19665
19666         * icall.c: register the GetCustomAttributes method.
19667         * object.c, object.h: add mono_string_new_len ().
19668         * reflection.h, reflection.c: added mono_runtime_invoke(),
19669         mono_install_runtime_invoke(). Added
19670         mono_reflection_get_custom_attrs () to load custom attributes and
19671         create the attribute objects.
19672
19673 2002-02-19  Dick Porter  <dick@ximian.com>
19674         * threads-dummy-types.c:
19675         * threads-dummy-types.h:
19676         * threads-dummy.c:
19677         * threads-dummy.h:
19678         * threads-pthread-types.c:
19679         * threads-pthread-types.h:
19680         * threads-pthread.c:
19681         * threads-pthread.h:  Deleted obsolete files
19682
19683 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19684
19685         * class.c (mono_class_vtable): runtime init the class when we
19686         allocate static class data.
19687
19688         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19689
19690         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19691         and String - but we will need generic marshalling support in the
19692         future. 
19693         (mono_init): set the domain name in a ms compatible way
19694
19695         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19696         String[].
19697
19698 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19699
19700         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19701         for sizes
19702
19703         * appdomain.c (mono_domain_unload): impl.
19704
19705 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19706
19707         * appdomain.c, object.c: fix intern pool implementation.
19708         * class.c: fix alignment code.
19709
19710 2002-02-16  Radek Doulik  <rodo@ximian.com>
19711
19712         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19713         and s2 > s1, just copy lower bytes to be compatible with little
19714         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19715         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19716
19717         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19718         force big_endian to be 1 for big endian machines 
19719         (ves_icall_iconv_new_decoder): ditto
19720
19721 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19722
19723         * socket-io.c (convert_sockopt_level_and_name): If the system
19724         doesn't define SOL_IP or SOL_TCP, get them by hand using
19725         getprotobyname() and caching the values (because this could be a
19726         slow operation).
19727         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19728         Use the appropriate struct when the system does support it. Ie,
19729         not all systems have struct ip_mreqn so use struct ip_mreq when
19730         appropriate.
19731
19732 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19733
19734         * reflection.c: handle finally clauses.
19735
19736 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19737
19738         * socket-io.c: use g_snprintf() instead of snprintf.
19739
19740 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19741
19742         * reflection.c (mono_param_get_objects): Cast second argument to
19743         mono_method_get_param_names to a const char** to silence the
19744         compiler warning.
19745
19746         * appdomain.c (mono_domain_assembly_open): Put parens around the
19747         truth statement in the for-loop.
19748
19749         * unicode.c (iconv_convert): Got rid of a compiler warning about
19750         int i being unused when the system has a new iconv.
19751         (iconv_get_length): Same.
19752
19753         * image.c (load_class_names): Cast the second argument to
19754         g_hash_table_insert() to char* to hush compiler warnings about the
19755         arg being a const.
19756         (mono_image_open): Same here.
19757
19758         * socket-io.c: Don't conditionally include sys/filio.h or
19759         sys/sockio.h here anymore since we now get them from
19760         io-layer/io-layer.h
19761         (inet_pton): If the system doesn't support inet_aton, implement
19762         using inet_addr and also #define INADDR_NONE if it isn't defined
19763         by the system.
19764
19765 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19766
19767         * metadata.c, metadata.h: added function to get packing and size info
19768         of a typedef.
19769         * reflection.h, reflection.c: handle field RVA data. Save info about
19770         the table layout if needed. Assign typedef indexes to all the types
19771         before dumping the info about them to avoid forward reference problems.
19772
19773 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19774
19775         * socket-io.c (convert_sockopt_level_and_name): ifdef
19776         SO_ACCEPTCONN because it is not defined on my system (old debian)
19777
19778 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19779
19780         * opcode.c: use stddef.h to get NULL.
19781
19782 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19783
19784         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19785         for FIONBIO, FIONREAD and SIOCATMARK.
19786         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19787         define INADDR_NONE and besides, inet_addr() is deprecated and
19788         should not be used. Use inet_pton() instead - it also has the
19789         added bonus that it can easily handle IPv6 addresses as well.
19790         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19791
19792 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19793
19794         * decimal.c: remove _MSC_VER conditional.
19795
19796 2002-02-13  Dick Porter  <dick@ximian.com>
19797
19798         * socket-io.c: 
19799         * icall.c: Internal calls for Blocking, Select, Shutdown,
19800         GetSocketOption and SetSocketOption
19801
19802 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19803
19804         * assembly.cs: better resolver: use it instead of some kludgy
19805         code.
19806
19807 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19808
19809         * reflection.c: the best way to speed-up the compiler is to avoid
19810         infinite loops.
19811
19812 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19813
19814         * class.c (mono_class_vtable): changed the object layout
19815         (obj->vtable->class). 
19816         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19817
19818 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19819
19820         * assembly.c: look for assemblies in the assembly dir, too.
19821
19822 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19823
19824         * class.c: fix thinko in mono_class_from_type().
19825
19826 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19827
19828         * exception.h, exception.c: added TypeLoadException.
19829         * object.h, object.c: added mono_array_clone ().
19830         * icall.c: handle throwOnError in AssemblyGetType().
19831         Added Array.Clone().
19832         * opcode.h, opcode.c: use a single value for the opcode val.
19833         Compile fix for non-gcc compilers.
19834
19835 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
19836
19837         * opcodes.c, opcodes.h: export interesting info about opcodes.
19838
19839 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
19840
19841         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
19842         icalls. 
19843
19844         * class.c (class_compute_field_layout): set element_class for enums
19845         (mono_class_create_from_typedef): set element_class for normal classes
19846
19847         * icall.c (ves_icall_System_Enum_get_value): impl.
19848
19849         * class.c (mono_class_create_from_typedef): do not set valuetype
19850         flag for System.ValueType and System.Enum
19851
19852 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
19853
19854         * unicode.c (iconv_convert): fix big endian problem.
19855
19856 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19857
19858         * class.c: add asserts if we are ever going to scribble over memory.
19859         * socket-io.c: not all systems have AF_IRDA defined.
19860
19861 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
19862
19863         * class.c (class_compute_field_layout): do not consider static
19864         fields to compute alignment
19865
19866 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
19867
19868         * appdomain.c (mono_appdomain_get): impl.
19869         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
19870
19871 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19872
19873         * icall.c: ignore "file://" prefix when loading an assembly.
19874
19875 2002-01-23  Dick Porter  <dick@ximian.com>
19876
19877         * socket-io.c:
19878         * icall.c:
19879         * Makefile.am: Added socket support
19880
19881 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19882
19883         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
19884         code back.  This should return the assemblies that are loaded by
19885         the runtime on behalf of an application domain. 
19886
19887         The current implementation is still broken, it just returns every
19888         assembly loaded, but until we get real applications domain this
19889         will do.
19890
19891 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
19892
19893         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
19894         AppDomain object.
19895
19896 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
19897
19898         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
19899         the mono_class_from_name lookup.
19900         (ves_icall_get_parameter_info): ditto.
19901         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
19902         method.
19903         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
19904
19905 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
19906
19907         * class.c: load also nested classes on class init.
19908         System.ValueType instance methods gets passed boxed
19909         values, unless methods in derived classed that get a pointer to the
19910         data.
19911         * icall.c: use better name parsing code in GetType().
19912         * image.c, image.h: add mono_image_loaded ().
19913         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
19914         * reflection.c, reflection.h: added mono_reflection_parse_type().
19915
19916 2002-01-22  Veronica De Santis <veron78@interfree.it>
19917
19918         * icall.c : Added mapping of internal calls for Manual and Auto reset events
19919         * threads.c : Added the implementation of internal calls for events
19920         * threads.h : Added prototypes of internal calls for events
19921         
19922 2002-01-21  Radek Doulik  <rodo@ximian.com>
19923
19924         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
19925
19926 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
19927
19928         * class.c (mono_class_init): set min_align to 1 (instead of 0)
19929         (mono_class_value_size): use min_align
19930
19931 2002-01-20  Dick Porter  <dick@ximian.com>
19932
19933         * threads.h:
19934         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
19935         so it compiles on w32.
19936
19937 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
19938
19939         * metadata.c (mono_type_stack_size): impl.
19940
19941         * class.c (mono_class_get_field): impl. memberref token
19942
19943 2002-01-16 Veronica De Santis <veron78@@interfree.it>
19944
19945         * icall.h : Added the internal calls mapping for CreateMutex_internal
19946                     and ReleaseMutex_internal.
19947         * threads.h : Added the prototype of mutexes internal calls.
19948         * threads.c : Added the implementations of mutexes internal calls.
19949
19950 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19951
19952         * metaparse.h: removed unused file.
19953         * reflection.c, reflection.h: added stream_data_align () function 
19954         to align data in streams and keep stream aligned. Add support for
19955         exception support in method headers.
19956
19957 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
19958
19959         * unicode.c: make iconv_convert () return the number of bytess written
19960         in the output buffer.
19961
19962 2002-01-15  Dick Porter  <dick@ximian.com>
19963         * threads.c: Make the runtime's idea of infinite timeouts coincide
19964         with the class library's
19965
19966         Fix a particularly egregious bug in mono_thread_cleanup(). That
19967         code was so utterly bogus it must have been written on a Monday.
19968
19969 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19970
19971         * reflection.h: add subtypes field to TypeBuilder.
19972         * reflection.c: encode constants for literal fields.
19973         Handle subtypes. Fix user string token (and add a zero byte)
19974         at the end.
19975         
19976 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
19977
19978         * class.c (mono_class_init): bug fix: assign slot numbers for
19979         abstract methods.
19980
19981 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19982
19983         * reflection.c: don't try to output a code RVA for abstract methods.
19984         Small fixes for method header format. Output parameter info to the
19985         ParamDef table. Save method overriding info to MethodImpl table.
19986         Fix property support. Allow typedef.extends to be a type in the
19987         building assembly.
19988         * verify.c: fix off-by-one error.
19989
19990 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
19991
19992         * class.c: fix mono_class_from_mono_type () for szarray types.
19993         Remove unused cache check in mono_class_from_type_spec().
19994         * icall.c: *type_from_name () functions handle simple arrays and byref.
19995         * reflection.c: handle byref and szarray types. Handle methods without
19996         body (gets P/Invoke compilation working). Handle types and fields in
19997         get_token ().
19998         * reflection.h: add rank to MonoTypeInfo.
19999
20000 2002-01-10  Dick Porter  <dick@ximian.com>
20001
20002         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20003         internal calls
20004
20005 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20006
20007         * icall.c: initialize class in type_from_handle ().
20008         Loop also in parent classes for get_method ().
20009         * reflection.c: properly encode class and valuetype types.
20010         Start on encoding TypeBuilder types. Handle fieldrefs.
20011         Use correct length when registering a user string.
20012         Handle ConstructorBuilder and MonoMethod in get_token ().
20013         Make mono_type_get_object () aware of cached types.
20014         * object.c: back out change to mono_string_new ().
20015
20016 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20017         * object.c: mono_string_new should return a NULL when the string 
20018         passed in is NULL -- not try to deference it.
20019         
20020 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20021
20022         * icall.c: hack to make IsSubType work for TypeBuilders.
20023         * reflection.c: emit constructors before methods.
20024         Retrieve param names in mono_param_get_objects().
20025
20026 2002/01/05  Nick Drochak  <ndrochak@gol.com>
20027
20028         * Makefile.am: fix list of headers and sources so automake 1.5
20029         doesn't complain. Removed \# at end of list.
20030
20031 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20032
20033         * reflection.c: get token for a method ref. Set return type of
20034         constructor to void.
20035         * loader.c: debug message.
20036         * class.c: typo fix.
20037
20038 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20039
20040         * icall.c: fix array init with rank > 1. FindMembers
20041         loops in parent class as well.
20042         * image.c: do not insert nested types in name cache.
20043         * reflection.c: warning fix.
20044         * reflection.h: add override method (for interface impl).
20045
20046 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20047
20048         * metadata.c: fix customattr decoding.
20049
20050 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
20051
20052         * rawbuffer.cs: Added native Win32 implementation, avoids using
20053         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20054
20055 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20056
20057         * class.c: make the low-level routines handle the cache.
20058
20059 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20060
20061         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20062
20063 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20064
20065         * class.c: fix mono_array_element_size() for objects.
20066         * class.h, class.c: add properties to MonoClass and load them
20067         at init time.
20068         * icall.c: check with isinst() when assigning a value to an array
20069         instead of requiring the classes to match exactly.
20070         Implemented icall for System.Type::GetType().
20071         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20072         enums. Handle bindingflags when looking for methods and fields.
20073         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20074         and mono_metadata_methods_from_property().
20075         * reflection.h, reflection.c: added structures for propreties,
20076         parameters and enums. Implemented mono_property_get_object() and
20077         mono_param_get_objects().
20078
20079 2001-12-18  Dick Porter  <dick@ximian.com>
20080
20081         * file-io.c: Use mono_string_to_utf16() instead of
20082         mono_string_chars()
20083
20084         * object.c: Added mono_string_to_utf16(), which copies the non
20085         NULL-terminated MonoString into a new double-null-terminated
20086         buffer.
20087
20088 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20089
20090         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20091
20092 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20093
20094         * file-io.c: raise exceptions if handle is invalid.
20095
20096 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20097
20098         * assembly.c: yet another check for mscorlib.
20099         * class.c, class.h: load nesting info for classes.
20100         * icall.c: many new functions to support the Reflection classes.
20101         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20102         * reflection.h, reflection.c: mono_image_create_token(),
20103         mono_assembly_get_object(), mono_type_get_object(),
20104         mono_method_get_object(), mono_field_get_object(): methods to return
20105         objects that parallel the C representation of assemblies, types,
20106         methods, fields.
20107
20108 2001-12-11  Dick Porter  <dick@ximian.com>
20109
20110         * icall.c:
20111         * file-io.c: Internal calls for file IO.
20112
20113 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20114
20115         * tabledefs.h: missing FileAttributes.
20116         * verify.h, verify.c: use is_valid_string () to simplify and check for
20117         valid strings more correctly. Fix warnings and speeling.
20118         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20119         Check code: branches, maxstack, method calls.
20120
20121 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20122
20123         * object.c (mono_object_allocate): removed static, so that the jit
20124         can allocate value types.
20125
20126         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20127
20128 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20129
20130         * class.c: init enum types right away and register the
20131         token->MonoClass map in mono_class_create_from_typedef ().
20132         * verify.h, verify.c: first cut of the verifier.
20133         * pedump.c: add --verify switch to verify metadata tables.
20134         * tabledefs.h: add some missing enums.
20135
20136 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20137
20138         * class.c (mono_install_runtime_class_init): impl.
20139         (mono_class_init): renamed mono_class_metadata_init to
20140         mono_class_init, also removed the metadata_inited flag
20141
20142         * object.c (mono_object_isinst): use faster algorithm
20143
20144 2001-11-30  Radek Doulik  <rodo@ximian.com>
20145
20146         * mono-endian.h: reverted last change
20147         added function prototypes
20148
20149         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20150         add mono-endian.c back
20151
20152         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20153         for unaligned access, I've mistaked it with endianess. I am
20154         sorry.
20155         (mono_read16): fix reverted endianess
20156         (mono_read64): ditto
20157         (mono_read32): ditto
20158
20159 2001-11-30  Dick Porter  <dick@ximian.com>
20160
20161         * exception.c: Implement mono_exception_from_name()
20162
20163 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20164
20165         * metadata.h, metadata.c: remove params_size and locals_size and their
20166         calculation from the metadata code: they are only usefult to the
20167         interp.
20168
20169 2001-11-29  Radek Doulik  <rodo@ximian.com>
20170
20171         * object.c (mono_ldstr): swap bytes here, it's probably not the
20172         best place, but works for me now, I'll redo it once I know mono
20173         better, also note that I add PROT_WRITE and don't reset back, also
20174         note that it's only affects big endians, so x86 should be OK
20175
20176         * mono-endian.h (read16): use just glib macros for both endians
20177
20178         * mono-endian.c: removed as glib macros are used in in
20179         mono-endian.h so we don't need to care about endianess for read
20180         macros as glib does that for us already
20181
20182 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20183
20184         * class.h, class.h: take minimum alignment into consideration so
20185         that the fields of a class remain aligned also when in an array.
20186
20187 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20188
20189         * loader.h, loader.c: add mono_method_get_param_names().
20190         * class.c: 0-init class fields.
20191
20192 2001-11-26  Dick Porter  <dick@ximian.com>
20193
20194         * icall.c:
20195         * threads-types.h:
20196         * threads.c: New file that handles System.Threading on all platforms
20197
20198         * object.c: 
20199         * object.h: Remove the synchronisation struct from MonoObject,
20200         replace it with a pointer that gets initialised on demand
20201
20202         * Makefile.am: Replace all the system-specific threading code with
20203         a single file that uses the new wrapper library
20204
20205 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20206
20207         * class.c, class.h: add mono_install_trampoline() so that the runtime
20208         can register a function to create a trampoline: removes the ugly
20209         requirement that a runtime needed to export arch_create_jit_trampoline.
20210         * object.h, object.c: added mono_install_handler() so that the runtime
20211         can install an handler for exceptions generated in C code (with
20212         mono_raise_exception()). Added C struct for System.Delegate.
20213         * pedump.c: removed arch_create_jit_trampoline.
20214         * reflection.c: some cleanups to allow registering user strings and
20215         later getting a token for methodrefs and fieldrefs before the assembly
20216         is built.
20217         * row-indexes.h: updates and fixes from the new ECMA specs.
20218
20219 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20220
20221         * class.h, class.c: add enum_basetype field to MonoClass.
20222         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20223         to get index in the constant table reated to a field, param or
20224         property.
20225         * reflection.h, reflection.c: handle constructors. Set public-key and
20226         version number of the built assembly to 0.
20227         * row-indexes.h: update from new ECMA spec.
20228
20229 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20230
20231         * class.h, class.c: add a max_interface_id to MonoClass.
20232         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20233         since it's used to do that. Added mono_type_type_from_obj().
20234         Make GetType() return NULL instead of segfaulting if the type was not
20235         found. Handle simple arrays in assQualifiedName.
20236         * object.h: add a struct to represent an Exception.
20237         * reflection.c: output call convention in method signature.
20238         Add code to support P/Invoke methods and fixed offsets for fields.
20239
20240 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20241
20242         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20243         the value.
20244         * icall.c: use mono_array_addr instead of array->vector: fixes the
20245         reflection image writing.
20246         * reflection.c: init call convention byte to 0 in method signature.
20247         Encode the property signature. Don't output property-related methods
20248         twice. Really process the properties for a type (don't cast a field to
20249         a property, my mom always told me that).
20250         Fix 64 bit issues in pointer alignment in a different and more
20251         readable way.
20252
20253 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20254
20255         * loader.h: Removed type class from MonoDefaults, added monotype
20256
20257         * loader.c: Loaded MonoType, removed loading of Type
20258
20259         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20260         and fills in System.Type._impl with a RuntimeTypeHandle rather
20261         than the actual MonoClass *
20262
20263         (ves_icall_type_from_handle): change from type_class to
20264         monotype_class
20265
20266         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20267         implemented
20268
20269         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20270         implemented
20271
20272         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20273
20274         (ves_icall_System_Reflection_Assembly_GetType): implemented
20275
20276         (ves_icall_System_MonoType_assQualifiedName): implemented
20277
20278         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20279
20280 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20281
20282         * assembly.c (mono_assembly_open): Implement a cache for the
20283         assemblies. 
20284
20285         (mono_assembly_close): only destroy the assembly when the last
20286         reference is gone.
20287         
20288 2001-11-09  Dick Porter  <dick@ximian.com>
20289
20290         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20291
20292 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20293
20294         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20295
20296 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20297
20298         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20299         from Martin Weindel.
20300         * object.h: add mono_string_chars ().
20301
20302 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20303
20304         * reflection.c (build_compressed_metadata): Eliminates warnings
20305         and uses 64-bit clean code.
20306
20307         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20308         (mono_type_equal): Change signature to eliminate warnings.
20309
20310 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20311
20312         * icall.c, loader.c: remove the internalcall array constructors.
20313         Changes to match the new MonoArray structure.
20314         * object.h, object.c: an array object doesn't allocate an extra
20315         vector. Add mono_array_new_full () to create jagged arrays easily.
20316
20317 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20318
20319         * metadata.h, metadata.c: add mono_metadata_field_info () to
20320         retreive all the info about a field from vairous tables.
20321         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20322         * class.h, class.c: augment MonoClassField with more info.
20323         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20324         policy and load a field's RVA if needed.
20325
20326 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20327
20328         * class.c (mono_class_metadata_init): create a trampoline for all
20329         virtual functions instead of actually compiling them.
20330
20331 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20332
20333         * class.h, class.c: include name in MonoClassField.
20334         * class.c: fix fundamental type of System.Object and System.String.
20335         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20336         tokens in ldtoken.
20337         * icall.c: remove internalcalls for the Reflection stuff that is now
20338         done in C# code.
20339         * loader.c: mono_field_from_memberref () implementation.
20340         * mono-endian.c: thinko (s/struct/union/g).
20341         * object.c, object.h: make the mono_string_* prototypes actually use
20342         MonoString instead of MonoObject.
20343         * reflection.c, reflection.h: updates for changes in the reflection
20344         code in corlib: we use C structures that map to the actual C# classes.
20345         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20346         fat method header if needed and use the info from the ILGenerator for
20347         methods. Handle fields in types. Misc fixes.
20348
20349 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20350
20351         * class.c (mono_class_metadata_init): bug fix: always allocate
20352         space for static class data
20353
20354 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20355
20356         * class.c (mono_compute_relative_numbering): use relative
20357         numbering to support fast runtime type checks.
20358
20359 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20360
20361         * class.c (mono_class_create_from_typeref): added debugging output
20362         to print class name when MonoDummy is returned instead of real class
20363
20364 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20365
20366         * class.c (mono_class_metadata_init): interface offset table now
20367         contains pointers into the vtable - this is more efficient for the jit
20368
20369 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20370
20371         * class.c (mono_class_metadata_init): use a temporary vtable (the
20372         old algorithm only worked for the interpreter, but not for the jit)
20373
20374 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20375
20376         * loader.c (method_from_memberref): use mono_class_get to get the
20377         class of an array instead of using System.Array directly.
20378         (mono_get_method): also add MEMBERREF methods to the method cache
20379         which usefull for arrays.
20380
20381 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20382
20383         * pedump.c (arch_compile_method): added to compute vtable entry
20384
20385         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20386         number of interfaces.
20387         
20388         * class.h: merged MonoArrayClass into MonoClass
20389
20390         * class.c (mono_class_create_from_typedef): compute the vtable size and
20391         allocate space to include the vtable inside MonoClass
20392         (mono_class_metadata_init): initialize the vtable
20393
20394 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20395
20396         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20397         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20398         * image.c: endian fixes by Laurent Rioux.
20399         * object.h, object.c: rename MonoStringObject to MonoString and
20400         MonoArrayObject to MonoArray. Change some function names to conform to
20401         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20402         guint16* as first argument, so don't use char*.
20403         Provide macros to do the interesting things on arrays in a portable way.
20404         * threads-pthread.c: updates for the API changes and #include <sched.h>
20405         (required for sched_yield()).
20406         * icall.c: updates for the API changes above.
20407         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20408         platforms that need them.
20409
20410 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20411
20412         * class.c: set the correct type for all the fundamental
20413         type when loading the class.
20414
20415 2001-10-05  Dick Porter  <dick@ximian.com>
20416
20417         * threads-pthread.c (pthread_mutex_timedlock): Simple
20418         compatibility version for C libraries that lack this call.
20419
20420 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20421
20422         * class.c: MonoTypes stored in MonoClass are stored as
20423         fundamental MonoTypes when the class represents a
20424         fundamental type (System.Int32, ...).
20425         The TypeHandle return by ldtoken is a MonoType*.
20426         * icall.c: ves_icall_get_data_chunk () write out all the
20427         PE/COFF stuff. Implement ves_icall_define_method (),
20428         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20429         * image.c: properly skip unknown streams.
20430         * loader.h, loader.c: add type_class to mono_defaults.
20431         * metadata.c, metadata.h: export compute_size () as
20432         mono_metadata_compute_size () with a better interface.
20433         Typo and C&P fixes.
20434         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20435         * reflection.c, reflection.h: many cleanups, fixes, output method
20436         signatures and headers, typedef and typeref info, compress the metadata
20437         tables, output all the heap streams, cli header etc.
20438         * row-indexes.h: typo fixes.
20439
20440 2001-10-04  Dick Porter  <dick@ximian.com>
20441
20442         * object.h: Add a synchronisation mutex struct to MonoObject
20443
20444         * object.c (mono_new_object): Initialise the object
20445         synchronisation mutexes
20446
20447         * icall.c: System.Threading.Monitor internal calls
20448         
20449         * threads-pthread.h:
20450         * threads-pthread.c: System.Threading.Monitor internal calls
20451
20452         * threads-types.h: New file, includes the system-specific thread
20453         structures
20454         
20455         * threads-pthread-types.h:
20456         * threads-pthread-types.c: New files, handle pthread-specific
20457         synchronisation types
20458
20459         * threads-dummy-types.h: 
20460         * threads-dummy-types.c: New files of dummy support for
20461         thread-specific types
20462
20463         * metadata.c:
20464         * image.c:
20465         * pedump.c: include mono-endian.h not endian.h
20466         
20467         * Makefile.am: More threads files.
20468         Name mono-endian.h not endian.h
20469
20470 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20471
20472         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20473         stuff and implement a few more bits.
20474         * icall.c: a field needs to be dereferenced twice. Do not use the same
20475         name for two variables in the same scope.
20476         * image.c, image.h: cleanups.
20477
20478 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20479
20480         * class.c (mono_class_metadata_init): bug fix: compute the right size
20481
20482 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20483
20484         * icall.c: implemented some of the Reflection internalcalls.
20485         * image.c, image.h: start writing out the PE/COFF image.
20486         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20487         that does the reverse than decode_blob_size ().
20488         * object.c: use mono_metadata_encode_value (). Move here
20489         temporary implementation of mono_string_to_utf8 ().
20490         * rawbuffer.c: make malloc_map static.
20491
20492 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20493
20494         * metadata.c: fix type comparison for arrays.
20495         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20496         Added a couple of new classes to monodefaults.
20497         * icall.c: added a couple of Reflection-related internalcalls.
20498         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20499         Added a byval_arg MonoType to MonoClass.
20500
20501 2001-09-28  Dick Porter  <dick@ximian.com>
20502
20503         * icall.c:
20504         * threads-pthread.h: 
20505         * threads-pthread.c: Implemented internal calls for
20506         LocalDataStoreSlot operations.  Applied mutexes around all shared
20507         data.  Reworked the thread creation and Start() operations to
20508         avoid a race condition.
20509         
20510         * threads-dummy.h:
20511         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20512
20513 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20514
20515         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20516
20517 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20518
20519         * class.c, loader.c: warn and return NULL instead of erroring out.
20520         * icall.c: added System.AppDomain::getCurDomain().
20521         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20522
20523 2001-09-25  Dick Porter  <dick@ximian.com>
20524
20525         * threads-pthread.h:
20526         * threads-pthread.c: Implemented timed thread joining and added
20527         System.Threading.Thread::Join_internal internal call
20528
20529         * icall.c: Added System.Threading.Thread::Join_internal internal call
20530
20531         * threads-dummy.h:
20532         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20533
20534 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20535
20536         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20537         mono_string_intern () to implement the semantics of the ldstr opcode
20538         and the interning of System.Strings.
20539         * icall.c: provide hooks to make String::IsIntern and String::Intern
20540         internalcalls.
20541
20542 2001-09-23  Dick Porter  <dick@ximian.com>
20543
20544         * threads-dummy.c: 
20545         * threads-dummy.h: New files of dummy threading routines
20546
20547         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20548         support code based on system specifics
20549
20550         Rename PTHREAD_LIBS to THREAD_LIBS
20551         
20552 2001-09-23  Dick Porter  <dick@ximian.com>
20553
20554         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20555         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20556         internal calls.
20557         (mono_thread_init): Set up a Thread object instance to return when
20558         the main thread calls Thread.CurrentThread
20559         (mono_thread_cleanup): Wait for all subthreads to exit
20560
20561         * icall.c: New internal calls for System.Threading.Thread::Sleep
20562         (including Schedule) and CurrentThread
20563
20564         * threads.h: New file, to insulate thread-specific stuff from the
20565         rest of the code
20566
20567 2001-09-21  Dick Porter  <dick@ximian.com>
20568
20569         * threads-pthread.h: 
20570         * threads-pthread.c: New file, for handling pthreads-style
20571         threading support.  Start() now starts a new thread and executes
20572         the ThreadStart delegate instance.
20573
20574         * icall.c: Added the internalcall for
20575         System.Threading.Thread::Start_internal
20576
20577         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20578
20579 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20580
20581         * loader.c: work around the different signatures for delegates
20582         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20583
20584 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20585
20586         * class.h, class.c: add mono_class_get_field_from_name ().
20587         * *: Fix C comments and other ANSI C issues.
20588
20589 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20590
20591         * endian.h, assembly.c: fix some endianness issues.
20592
20593 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20594
20595         * loader.h, load.c: add delegate_class to mono_defaults.
20596         Handle runtime provided methods in mono_get_method ().
20597
20598 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20599
20600         * loader.c (mono_get_method): use pinvoke for internal call
20601
20602         * icall.c: use pinvoke for internal call
20603
20604         * loader.c (method_from_memberref): set the method name
20605
20606 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20607
20608         * metadata.c: help the compiler generate better code for
20609         mono_class_from_mono_type ().
20610
20611 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20612
20613         * class.c (mono_class_metadata_init): delayed computing of the
20614         class size to mono_class_metadata_init ()
20615
20616 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20617
20618         * class.c, class.h: add an interfaces member to MonoClass.
20619         * image.c, image.h: add assembly_name field to MonoImage
20620         from the assembly table.
20621         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20622
20623 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20624
20625         * class.c: Handle Array in mono_class_from_mono_type ().
20626         * metadata.c, pedump.c: some endian fixes.
20627
20628 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20629
20630         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20631         * metadata.c: fix small problem introduced with the latest commit.
20632
20633 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20634
20635         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20636         We don't need a MonoMetadata pointer anymore to compare signatures in
20637         mono_metadata_signature_equal (), update callers.
20638         Reduced memory usage an number of allocations for MonoMethodHeader and
20639         MonoMethodSignature.
20640
20641 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20642
20643         * metadata.c: added compare for szarray.
20644
20645 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20646
20647         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20648         and add a couple more types to it and mono_defaults. Give an hint on
20649         classes that need implementing in our corlib and are referenced
20650         in mscorlib.
20651
20652 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20653
20654         * class.h, class.c: keep track if a class is also an Enum.
20655         * loader.c: Implement a couple more types for use in libffi
20656         marshalling. Gives better diagnostics when failing to dlopen
20657         a library. Set method->klass for P/Invoke methods, too.
20658
20659 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20660
20661         * class.c, class.h: add a MonoType this_arg to MonoClass that
20662         represents a pointer to an object of the class' type that
20663         can be used by the interpreter and later the type cache.
20664         Add best guess alignment info for valuetype objects.
20665
20666 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20667
20668         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20669         into MonoType: one less level of indirection and allocation and
20670         simplifies quite a bit of code. Added cache for MonoTypes that are
20671         used frequently, so that we don't need to allocate them all the time.
20672
20673 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20674
20675         * class.c (mono_class_create_from_typedef): System.Enum is also a
20676         value type, although it does not derive from System.ValueType
20677         (maybe a bug in the ms compiler?)
20678
20679         * metadata.c (mono_type_size): return the right size for value types
20680
20681         * loader.c (mono_get_method): only initialize method header if not abstract
20682
20683         * class.c (mono_class_from_mono_type): use mono_default values. 
20684
20685 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20686
20687         * *: use MonoClass pointers instead of <type_tokens>
20688         
20689         * class.h: new flag: metadata_inited.
20690
20691         * class.c (mono_class_metadata_init): impl.
20692         (mono_class_instance_size): impl.
20693         (mono_class_data_size): impl.
20694
20695 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20696
20697         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20698         MonoClass now has the name and name_space fields. 
20699         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20700         mono_get_method () takes and optional MonoClass as argument.
20701         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20702         instead that takes advantage of a map from class names to typedef
20703         tokens in MonoImage.
20704
20705 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20706
20707         * metadata.c: zero is not a valid alignment boundary.
20708         Merge MONO_TYPE_VOID in default decoding code.
20709
20710 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20711
20712         * image.h: merged MonoMetadata into MonoImage
20713
20714         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20715         identify the type of elements.
20716
20717 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20718
20719         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20720         * cil-coff.h: split MonoMSDOSHeader and add size info.
20721         * image.c: add some consistency checks.
20722         * metadata.c: fix row size computation: one programmer
20723         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20724         add explanation for the locator routine.
20725         Fix decoding of size in method header.
20726         
20727 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20728
20729         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20730         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20731         function from gnome-libs.  This uses the right path separator
20732         based on the OS, and also works around a bug in some systems where
20733         a double slash is not allowed. 
20734         (default_assembly_name_resolver): Use g_concat_dir_and_file
20735         (mono_assembly_open): ditto.
20736
20737 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20738
20739         * metadata.c (mono_metadata_signature_equal): impl.
20740
20741         * *: void is now a realy MonoType (instead of using NULL)
20742         
20743         * metadata.c (do_mono_metadata_parse_type): use
20744         mono_metadata_parse_type to parse void value.
20745
20746 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20747
20748         * metadata.c, metadata.h: in the signature and method header store
20749         only the space required for holding the loca vars and incoming arguments.
20750
20751 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20752
20753         * metadata.c (do_mono_metadata_parse_type): treat void like any
20754         other type (instead of assigning NULL);
20755
20756 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20757
20758         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20759
20760 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20761
20762         * image.c (do_mono_image_open): added a cache for arrays.
20763
20764 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20765
20766         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20767         decode a single column from a row in a metadata table and changes
20768         to take advantage of it in the typedef locator (gives a nice speed up).
20769         Store offset info for function params.
20770
20771 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20772
20773         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20774
20775 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20776
20777         * assembly.c: how could mono_assembly_close () had ever worked?
20778         * metadata.c, metadata.h: provide offset info for local vars.
20779         Implement mono_type_size () to take care of alignment as well
20780         as size (it was mono_field_type_size in cli/class.c before).
20781
20782 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20783
20784         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20785
20786         * assembly.h (CORLIB_NAME): set to corlib.dll
20787
20788         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20789
20790 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20791
20792         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20793         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20794         tokentype.h: massive namespace cleanup.
20795
20796 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20797
20798         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20799
20800 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20801
20802         * metadata.c (mono_metadata_free_type): added check for type !=
20803         NULL (void) before calling mono_metadata_free_type()
20804
20805 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20806
20807         * metadata.h, row_indexes.h: added header with enumerations to use
20808         to index in the columns from tables in metadata and to decode coded
20809         tokens: we should start using this instead of embedding magic numbers
20810         all over the code.
20811
20812 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20813
20814         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20815         Move metadata_t info from cli_image_info_t to MonoImage, where
20816         it's easily accessible. Changed all the uses accordingly.
20817         Added the method and class caches to MonoImage.
20818         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20819         and mono_metadata_decode_value () signature to be more consistent
20820         with the other parse functions (and simplify code). Taken advantage
20821         of zero-length array allocation with GCC. Removed reduntant (and
20822         wrong) MonoFieldType struct and use MonoParam instead. Changed
20823         mono_metadata_parse_field_type () to use common code for parsing.
20824         Added mono_metadata_typedef_from_field () and
20825         mono_metadata_typedef_from_method () to lookup a typedef index from a
20826         field or method token.
20827         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
20828
20829 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
20830
20831         * metadata.c (mono_metadata_parse_field_type): Implement. 
20832         (do_mono_metadata_parse_type): Split engine from
20833         mono_metadata_parse_type, so that we can create smaller structures
20834         for things that just have one pointer to the MonoType (look at
20835         the MonoFieldType)
20836
20837 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
20838
20839         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
20840         as Jan Gray found out, it is incorrect. 
20841
20842 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
20843
20844         * assembly.c: Implement asssembly loading.  This loads an image
20845         and loads all the referenced assemblies.  Come to think of it, we
20846         could always do lazy loading of the assemblies. 
20847
20848         * image.c (mono_image_open): Keep loaded images in a hashtable.
20849
20850         * image.h (MonoImage): Add reference count.
20851
20852 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
20853
20854         * assembly.c (mono_assembly_open): Keep track of the file name in
20855         case the assembly has no ASSEMBLY table.
20856
20857         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
20858         from get.c here.
20859
20860 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
20861
20862         * metadata.c, metadata.h: decode local vars in method header
20863         parse function. Change callers accordingly.
20864
20865 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
20866
20867         * metadata.h, cil-coff.h: protect against multiple inclusion.
20868         Added some new structures to hold information decoded from metadata:
20869         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
20870         and relevant decoding/free functions.
20871         * metadata.c: implement decoding functions. Add warning for out of bounds
20872         index in mono_metadata_locate(). Implement mono_get_method () to retreive
20873         all the info about a method signature and invocation. Remove check on
20874         uninitialized local var in parse_mh() and fix memory leak.
20875
20876 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
20877
20878         * metadata.h: More macros.
20879
20880         * tokentype.h: New file.
20881
20882 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
20883
20884         * assembly.c: added a consistency check and initialize
20885         some structures with g_new0().
20886         * metadata.c: fixed a couple more bugs in table size computation
20887         and add other checks for out-of bound access to metadata.
20888
20889 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
20890
20891         * metatada.c: fix bugs computing table sizes. Spew a
20892         warning when index in string heap is out of bounds.
20893
20894 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
20895
20896         * metadata.h: Add a couple of macros to manipulate tokens. 
20897
20898 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20899
20900         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
20901         cli_section_tables).
20902
20903 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
20904
20905         * metadata.c (mono_metadata_user_string): New function, provides
20906         access to the UserString heap. 
20907
20908 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
20909
20910         * metadata.c: Add inline documentation.
20911
20912 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
20913
20914         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
20915         files. 
20916
20917 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
20918
20919         * typeattr.h: New file, TypeAttribute flags. 
20920
20921 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
20922
20923         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
20924         mono_assembly_ensure_section): Section loading code.
20925         (load_section_tables): Load the sections.
20926
20927         * mono/metadata/metadata.c (mono_metadata_locate_token,
20928         mono_metadata_locate): Functions to locate the information
20929         definition given a token or a table and an index.
20930         (mono_metadata_compute_table_bases): New.
20931         (compute_size): New function to compute the sizes of the various
20932         tables.
20933
20934         * mono/metadata/metadata.h: Finish listing the different index
20935         types. 
20936
20937         * mono/metadata/pedump.c: Improve to dump new information.
20938
20939 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
20940
20941         * mono/metadata/metadata.c: Entered all the tables matching
20942         Beta2. 
20943
20944         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
20945
20946
20947