2007-05-08 Robert Jordan <robertj@gmx.net>
[mono.git] / mono / metadata / ChangeLog
1 2007-05-08  Robert Jordan  <robertj@gmx.net>
2
3         * process.c (CreateProcess_internal):
4         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
5         .CreateNoWindow was specified. Fixes #81496.
6
7 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
8
9         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
10         step in implementing IMT, replaced it with two compact arrays
11         (interfaces_packed and interface_offsets_packed) and a bitmap that
12         is used for isinst checks (interface_bitmap).
13
14         * class.c: (compare_interface_ids): compare function to pass to
15         bsearch when looking for an interface with a given id.
16         (mono_class_interface_offset): reimplemented using bsearch on
17         interfaces_packed, getting the offset from interface_offsets_packed.
18         (print_implemented_interfaces): utility debugging function.
19         (setup_interface_offsets): reworked to initialize interfaces_packed,
20         interface_offsets_packed and interface_bitmap.
21
22         * object.c: replaced all accesses to "MonoClass.interface_offsets"
23         with uses of interfaces_packed and interface_offsets_packed.
24
25 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
26
27         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
28         mono_class_interface_offset prototype to wrap all accesses to
29         "MonoClass.interface_offsets".
30
31         * class.c: Implemented mono_class_interface_offset, and wrapped all
32         accesses to "MonoClass.interface_offsets".
33
34         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
35         "MonoClass.interface_offsets".
36
37 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
38
39         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
40         GetMethodFromHandle overloads (bug #78637).
41
42 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
43
44         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
45         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
46
47 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
48
49         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
50         #81498.
51
52         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
53         gracefully.
54         (mono_custom_attrs_from_index): Ditto.
55
56         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
57         Fixes #81501.
58
59 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
60
61         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
62         is now allocated from a mempool.
63
64 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
65
66         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
67         caller holds threads_lock, leading to deadlocks. Fixes #81476.
68
69 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
70
71         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
72         mono_loader_clear_error () too late. Fixes #81463.
73
74 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
75
76         * culture-info-table.h : regenerated.
77
78 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
79
80         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
81         is missing.
82
83 2007-04-25  Dick Porter  <dick@ximian.com>
84
85         * Makefile.am: Put the mingw enforced-optimisation back into the
86         PLATFORM_WIN32 section.
87
88 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
89
90         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
91         patch.
92
93         * image.c (mono_image_load_module): New API function to load a module reference.
94
95         * image.c (load_modules): Load modules lazily. Fixes #80812.
96
97         * class.c (mono_class_from_typeref): Use mono_image_load_module.
98         
99         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
100
101         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
102         to mono_image_load_module_dynamic.
103
104 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
105
106         * marshal.c: Fix calling convention for CCW on non-windows
107         platforms. STDCALL on windows, CDECL everywhere else to work 
108         with XPCOM and MainWin COM.
109         
110         Code is contributed under MIT/X11 license.
111
112 2007-04-23  Martin Baulig  <martin@ximian.com>
113
114         Fix #80969.
115
116         * loader.c
117         (method_from_memberref): Added `gboolean *used_context' argument.
118         (mono_get_method_from_token): Likewise.
119         (mono_get_method_full): Don't insert the method in the cache when
120         `used_context' is true.
121
122 2007-04-23  Raja R Harinath  <rharinath@novell.com>
123
124         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
125
126         * reflection.c (mono_reflection_bind_generic_parameters): Don't
127         create new MonoTypes for returned types.
128         * class.c (mono_generic_class_get_class): Export mono-internal.
129         * class-internals.h: Update to changes.
130
131 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
132
133         * threadpool.c, threadpool.h, icall-def.h: patch from
134         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
135
136 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
137
138         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
139         
140         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
141
142         * threads.c (mono_thread_get_stack_bounds): New helper function.
143
144         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
145         Correctly compute stack bounds when attaching. Fixes #81394.
146
147 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
148
149         * reflection.c: fix handling of doubles in custom attributes
150         for the arm-fpa format (bug #81368).
151
152 2007-04-18  Raja R Harinath  <rharinath@novell.com>
153
154         * reflection.c (assembly_add_win32_resources): Mildly relax an
155         bounds check to let the end pointer point just past the end of the
156         allocated buffer.  (may fix #81384)
157
158 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
159
160         * culture-info-table.h : regenerated.
161
162 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
163
164         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
165         the thread is aborted early.
166
167 2007-04-05  Dick Porter  <dick@ximian.com>
168
169         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
170         FindFirstFile()/FindNextFile() to find entries.  This lets the
171         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
172         81038.
173
174         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
175         the parameters of
176         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
177
178 2007-04-04  Martin Baulig  <martin@ximian.com>
179
180         * debug-helpers.c
181         (mono_method_desc_full_match): Add support for nested classes.
182
183 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
184
185         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
186
187 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
188
189         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
190         waiting for too many threads.
191
192 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
193
194         * environment.c: Fix return value check on uname so we can get the 
195         executing version on Solaris operating systems.
196
197 2007-03-28  Jb Evain  <jbevain@gmail.com>
198
199         * class.c (mono_type_get_name_recurse): Complete the
200         fix for the creation of assembly qualified names for
201         pointer types. Fixes #81208.
202
203 2007-03-27  Dick Porter  <dick@ximian.com>
204
205         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
206         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
207         changed.
208
209         * threads.c
210         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
211         the value of ReleaseMutex().
212
213 2007-03-27  Dick Porter  <dick@ximian.com>
214
215         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
216         in little-endian order, not network endian, so must be converted
217         to host endian here.  Fixes bug 80593.
218
219 2007-03-22  Jb Evain  <jbevain@gmail.com>
220
221         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
222         qualified names for pointer types. Fixes #81208.
223
224 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
225
226         * marshal.c: Add support for PreserveSigAttribute. 
227         
228         Code is contributed under MIT/X11 license.
229
230 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
231
232         * process.c: Fix endianness issues. Fixes #81126.
233
234         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
235         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
236
237         * image.c (mono_image_lookup_resource): Make this work on big-endian
238         machines.Change API contract so the caller needs to free the return value.
239         
240         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
241         API change.
242         
243 2007-03-14  Martin Baulig  <martin@ximian.com>
244
245         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
246         mono_type_get_desc() as well.
247
248 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
249
250         * icall.c:  Fix environ access in VS.  
251         
252 2007-03-13  Alp Toker  <alp@atoker.com>
253
254         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
255         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
256         #63841.
257
258 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
259
260         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
261         circular references among dynamic methods. Fixes #81091.
262
263         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
264
265 2007-03-09  Martin Baulig  <martin@ximian.com>
266
267         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
268
269 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
270
271         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
272         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
273         
274         Code is contributed under MIT/X11 license.
275         
276 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
277
278         * loader.c: Reapply patch for bug #79424.
279
280 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
281
282         * metadata.c (mono_type_to_unmanaged): Only convert object to
283         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
284
285 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
286
287         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
288         (and incorrectly set) is_reference field from MonoGenericInst.
289
290 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
291
292         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
293         a little earlier.
294
295         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
296
297         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
298
299 2007-03-05  Miguel de Icaza  <miguel@novell.com>
300
301         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
302         FileOptions.1 value to mean "temporary", map that to
303         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
304
305         Fixes 80688
306
307 2007-03-03  Marek Habersack  <mhabersack@novell.com>
308
309         * appdomain.c: implement MS .Net style shadow copying. Copies of
310         the assemblies are made in a subdirectory of the dynamic base
311         directory, the assembly names are preserved.
312         Copy .mdb and .config files along with the assemblies being shadowed.
313
314 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
315
316         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
317         (emit_marshal_handleref): Ditto.
318
319         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
320         on Visual C++. Fixes #80671.
321
322 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
323
324         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
325         for clone operations.
326
327 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
328
329         * marshal.c: Fix warnings.
330
331 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
332
333         * loader.c: allow case-insensitive matching of the dll name
334         in dllmap handling when prefixed with "i:".
335
336 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
337
338         * threads.c: Fix #ifdef for dummy_apc function for VS.
339
340 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
341
342         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
343
344 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
345         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
346         giving precedence to the methods with a fully qualified name
347         (InterfaceName.MethodName) when building the interface sections
348         of the vtable.
349
350 2007-02-16  Dick Porter  <dick@ximian.com>
351
352         * threadpool.c (append_job): Fix fast-path array handling, so it's
353         less likely the array will grow exponentially when the load is
354         heavy.
355
356 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
357
358         * metadata-internals.h, loader.c: fix dllmap lookup order
359         for non-function maps, too, and prepare for fallback code.
360
361 2007-02-12  Robert Jordan  <robertj@gmx.net>
362
363         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
364         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
365         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
366         GlobalFree. Fixes a part of bug #77075.
367
368 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
369
370         * loader.c: implemented typedef parent in field memberref.
371
372 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
373
374         * marshal.c: Fix warnings and remember to call Release on
375         IUnknown of RCW.
376         
377         Code is contributed under MIT/X11 license.
378
379 2007-02-10  Miguel de Icaza  <miguel@novell.com>
380
381         * class-internals.h: Add MonoHandleRef definition, and
382         handleref_class to mono_defaults. 
383
384         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
385         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
386
387         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
388         (do nothing on this stage)
389         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
390         (emit_marshal_handleref): New method, used for argument handling
391         of HandleRefs. 
392
393 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
394
395         * class.c (mono_class_setup_parent): Lazily init com types.
396         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
397         init com types.
398         * object.c (mono_remote_class_vtable): Lazily init com types.
399         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
400         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
401         * domain-internals.h: Expose mono_init_com_types.
402         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
403         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
404         Add support for COM Callable Wrapper marshalling.
405         * marshal.h: Add icall definitions.
406         * gc.c: Handle freeing of CCWs in finalizer code.
407         
408         Code is contributed under MIT/X11 license.
409
410 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
411
412         * reflection.c: changed all the signature encoding code to use
413         a variable-sized buffer.
414
415 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
416
417         * marshal.c: locking fixes: never take the loader lock
418         or other runtime locks when holding the marshal lock
419         (fixes bug#80664).
420
421 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
422
423         * marshal.c: make the delegate function pointer mapping
424         work for the moving GC.
425
426 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
427
428         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
429         for bug #80618.
430
431 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
432
433         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
434         gmodule.
435
436 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
437
438         * threadpool.c: made the code moving-GC safe.
439
440 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
441
442         * assembly.c, boehm-gc.c, class-internals.h, class.c,
443         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
444         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
445         warning cleanup.
446         * reflection.c: warning cleanup, some threading and moving GC fixes.
447
448 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
449
450         * class.c, loader.c: create the needed Set/Get/Address array methods
451         as well as the .ctors in mono_class_init (), fixes bug #80567.
452
453 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
454
455         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
456         we doesn't decrease its alignment. Should fix the sparc build.
457
458 2007-01-24  Dick Porter  <dick@ximian.com>
459
460         * socket-io.c
461         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
462         Create the returned object if we need to ignore an unsupported
463         socket option.  Fixes a segfault reported by Atsushi.
464
465 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
466
467         * class.c, object.c: restrict GC-tracked fields to
468         UIntPtr fields used inside corlib, so we provide better
469         type info to the GC and also allow broken packing as in
470         bug #80580.
471
472 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
473
474         * sgen-gc.c: removed duplicated function.
475
476 2007-01-19  Miguel de Icaza  <miguel@novell.com>
477
478         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
479         value that means that the value is not supported, but that we
480         should not return a failure, but instead report this as a
481         successful operation.
482
483 2007-01-19  Raja R Harinath  <rharinath@novell.com>
484
485         Fix tests/bug79956.2.il
486         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
487         (mono_generic_class_get_class): If the generic definition in an
488         enum, copy over other fields related to it.
489
490 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
491
492         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
493         genericinst enums (bug #79215).
494
495 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
496         * class.c: Fix bug 80307.
497
498 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
499
500         * image.c: if the file table is not present, try to load
501         all the modules, since we don't have info about them
502         having or not metadata (bug #80517).
503         * assembly.c: allow mono_assembly_load_references () to
504         work for netmodules.
505
506 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
507
508         * image.c, metadata-internals.h, object.c: execute module
509         cctors when running on the 2 runtime if present (bug #80487).
510
511 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
512
513         * icall.c: optimized InitializeArray() on bigendian.
514
515 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
516
517         * icall.c: fix for the broken ARM FPA double format.
518
519 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
520
521         * icall.c: handle endian issues for r4 and r8 types, too, in
522         the InitializeArray() icall.
523
524 2007-01-15  Miguel de Icaza  <miguel@novell.com>
525
526         * loader.c (mono_loader_error_prepare_exception): Clear the error
527         once we have extracted the information from it, do this before we
528         call into the JIT's class loading mechanisms.
529
530         * object.c (mono_class_create_runtime_vtable): Do not clear the
531         loader error before calling mono_class_get_exception_for_failure
532         as the loader error is needed inside
533         mono_class_get_exception_for_failure to throw the error (thinko).
534
535         Fixes #80521
536         
537 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
538
539         * reflection.c: align fields rva data so it's faster to load at
540         runtime.
541
542 2007-01-12  Raja R Harinath  <rharinath@novell.com>
543
544         Prepare to simplify GenericMethod handling.
545         * class-internals.h (mono_method_get_context): New accessor function.
546         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
547         rather than directly accessing '->context' field.
548
549         * class-internals.h (_MonoGenericParam.method): Move ...
550         (_MonoGenericContainer): ... here.  Add into union with klass field.
551         * class.c, icall.c, loader.c, metadata.c, reflection.c:
552         Update to changes.
553
554 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
555
556         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
557         the wrapper type enum and reduce relocations.
558
559 2007-01-12  Raja R Harinath  <rharinath@novell.com>
560
561         * reflection.c (inflate_mono_method): Reuse method instantiation
562         from the generic method, if available.
563
564 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
565
566         * marshal.c (emit_marshal_variant): Fix conv_arg
567         type in last commit, based on whether parameter is byref.
568         
569 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
570
571         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
572         marshalling.
573         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
574         MONO_TYPE_OBJECT back for VARIANT support.
575
576 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
577
578         * marshal.c, marshal.h, icall-def.h: Implement 
579         Marshal.ReAllocCoTaskMem.
580
581 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
582
583         * marshal.c: memory retention fixes: use the proper
584         image cache for runtime_invoke method lookups.
585
586 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
587
588         * mempool.c: added code to help debug mempool allocations.
589
590 2007-01-11  Dick Porter  <dick@ximian.com>
591
592         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
593         support (experimenting with faking it with IP_MTU_DISCOVER for
594         systems that don't have IP_DONTFRAGMENT.)
595         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
596         icall.
597
598         * icall-def.h: new System.Net.Sockets.Disconnect icall.
599
600         * socket-io.h: Add new fields to MonoSocketAsyncResult
601         corresponding to the new ones in Socket.cs.
602
603 2007-01-11  Raja R Harinath  <rharinath@novell.com>
604
605         Fix IronPython regression mentioned in #80249
606         * metadata.c (do_mono_metadata_parse_generic_class): Clear
607         'cached_context' field, since it may have been initialized as a
608         side-effect of metadata parsing.
609
610         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
611         (_MonoGenericClass.cached_class): Move here and rename from lone
612         remaining field of ...
613         (_MonoInflatedGenericClass): ... this.  Remove.
614         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
615         to changes.
616
617         Fix mcs/tests/test-128.cs regression.
618         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
619         2007-01-10 change below.
620         [MONO_TYPE_OBJECT]: Recurse into array case.
621
622 2007-01-11  Raja R Harinath  <harinath@gmail.com>
623
624         * class-internals.h (mono_get_inflated_generic_class): Remove.
625         * class.c (mono_get_inflated_generic_class): Remove.
626         (mono_generic_class_get_class): Rename from
627         mono_class_create_generic.
628         (mono_class_from_mono_type) [GENERICINST]: Use it.
629         * reflection.c, metadata.c: Update to changes.  Use
630         'mono_class_from_mono_type'.
631
632 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
633
634         * reflection.c: use passed type when encoding an array element
635         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
636
637 2007-01-09  Robert Jordan  <robertj@gmx.net>
638
639         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
640         result arguments (someDelegate.EndInvoke (unrelatedAres)).
641         Fixes bug #80392.
642
643 2007-01-09  Raja R Harinath  <rharinath@novell.com>
644
645         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
646
647         * object.c (set_value): Avoid aliasing between type->data.klass
648         and type->data.generic_class.
649
650         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
651
652 2007-01-08  Raja R Harinath  <rharinath@novell.com>
653
654         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
655         between type->data.klass and type->data.generic_class.
656
657 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
658
659         * marshal.c: In MS.NET, StringBuilder objects are not copied by
660         value in out parameters.
661
662 2007-01-08  Raja R Harinath  <rharinath@novell.com>
663
664         Simplify invariant for MonoGenericClass::klass field.
665         * class.c (mono_class_create_generic): Verify 'klass' is null.
666         * metadata.c (do_mono_metadata_parse_generic_class): Don't
667         initialize 'klass' field.
668
669 2007-01-05  Raja R Harinath  <rharinath@novell.com>
670
671         Ongoing work to avoid redundant data and simplify invariants.
672         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
673         'generic_class', and change type to a GenericInst.
674         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
675         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
676
677 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
678
679         * class.c : skip io-layer under PLATFORM_WIN32.
680
681 2007-01-03  Tor Lillqvist  <tml@novell.com>
682
683         Fix #80305: In a bundled executable, look in the bundled exe
684         assembly to determine the runtime version. Add the possibility to
685         bundle also the machine.config file.
686         
687         * assembly.c (mono_assembly_open_from_bundle): Make
688         non-static. Allow being called even if we have no bundled
689         assemblies, and return NULL right away in that case.
690
691         * domain-internals.h: Declare mono_assembly_open_from_bundle()
692         here.
693
694         * domain.c (app_config_parse): Take an assembly exe file name as
695         parameter instead of a config file name. Check for a bundled
696         config file for that assembly by calling
697         mono_config_string_for_assembly_file() (see below) before looking
698         for one in the file system.
699         (get_runtimes_from_exe): Corrsponding change to call of
700         app_config_parse().
701         (get_runtimes_from_exe): Check for bundled assembly exe file first
702         by calling mono_assembly_open_from_bundle(). If no bundled
703         assembly exe file is found, call mono_image_open() as before to
704         look it up in the file system.
705
706         * mono-config.c: Add variable bundled_machinec_onfig.
707         (mono_config_string_for_assembly_file): New function.
708         (mono_config_for_assembly): Move code snippet that looks for a
709         bundled assembly .config file into the above new function. Call
710         it.
711         (mono_register_machine_config, mono_get_machine_config): New
712         functions to set and retrieve
713
714         * assembly.h: Declare mono_register_machine_config().
715
716         * mono-config.h: Declare mono_get_machine_config() and
717         mono_config_string_for_assembly_file().
718
719         * icall.c: No declaration of environ necessary on Win32. It is
720         declared (as a macro expanding to a function call) in stdlib.h.
721         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
722         New internal mono function. Returns the value of
723         mono_get_machine_config() as a Mono string.
724
725         * icall-def.h: Add get_bundled_machine_config().
726
727 2007-01-04  Raja R Harinath  <rharinath@novell.com>
728
729         Remove redundant field
730         * class-internals.h (_MonoGenericContext.container): Remove field.
731         * loader.c (mono_method_get_signature_full): Don't parse a
732         "container" for a signature parse when the signature is inflated
733         immediately.
734         (method_from_methodspec): Likewise, for a generic_inst.
735         * class.c, metadata.c, reflection.c: Update to changes.
736
737 2006-01-04  Raja R Harinath  <rharinath@novell.com>
738
739         * class-internals.h (_MonoGenericClass): Rename 'context' field to
740         'cached_context', and change semantics -- it starts off NULL, and
741         is initialized on demand.
742         * class.c (mono_generic_class_get_context): New accessor to
743         replace 'context' field accesses.
744         (mono_class_get_context): New helper.
745         (*): Update to changes.
746         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
747
748 2007-01-03  Miguel de Icaza  <miguel@novell.com>
749
750         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
751         before the memcpy.   Fixes Marshal2 regression.
752
753 2007-01-02  Jb Evain  <jbevain@gmail.com>
754
755         * blob.h: add a MONO_TYPE_ENUM definition
756         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
757         fix the encoding of arrays of enums in custom attributes.
758
759         Fixes #79666.
760
761 2007-01-01  Miguel de Icaza  <miguel@novell.com>
762
763         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
764         string is null terminated, but only cut the string short if it
765         overflows the buffer.   
766         
767         (mono_string_to_byvalstr): Also fix this routine.   The code here
768         was not properly terminating a string (it was only terminated
769         because of the previous catch-all memset). 
770
771         I left the memset, because I do not know if applications expect
772         the runtime to clear this region. 
773
774         Fixes #79944.
775
776         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
777         Clear the error before returning to unmanaged code to prevent the
778         runtime from being confused later on (fixes  80420).
779         (ves_icall_type_from_name): Always call mono_loader_clear_error
780         after parsing a type that could have failed.
781         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
782
783         * loader.c (mono_loader_clear_error): Fix indentation.
784
785 2006-12-28  Martin Baulig  <martin@ximian.com>
786
787         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
788
789 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
790
791         * reflection.c: patch from Rolf Bjarne Kvinge to fix
792         getting a token for an EnumBuilder.
793
794 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
795
796         * reflection.c: be more careful in case resource generation
797         fails to create the data array.
798
799 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
800
801         * sgen-gc.c: write barrier for clone and fix unregister handles.
802
803 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
804
805         * reflection.c: some fixes needed in the generics code for the moving GC.
806
807 2006-12-22  Robert Jordan  <robertj@gmx.net>
808
809         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
810         account. Fixes bug #80299.
811
812 2006-12-21  Raja R Harinath  <rharinath@novell.com>
813
814         Fix WaitHandle usage in delegates.
815         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
816         * object.c (mono_wait_handle_new): Use the property set method to
817         initialize the handle.
818         (mono_wait_handle_get_handle): New.
819         * threadpool.c (mono_async_invoke): Use it.
820         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
821         Likewise.
822         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
823
824 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
825
826         * marshal.c (emit_marshal): Call emit_marshal_variant and
827         emit_marshal_com_interface when applicable.
828         (emit_marshal_variant, emit_marshal_com_interface): Add
829         methods for this case and remove if's from emit_marshal_object.
830         
831 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
832
833         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
834
835 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
836
837         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
838         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
839         and GlobalFree on Windows. Remove FIXME.
840
841 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
842
843         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
844         implementation for managed objects.
845
846 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
847
848         * object.c: implemented code to be used for checking
849         that no reference field overlaps with non-references.
850
851 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
852
853         * threadpool.c: fix queue code to be compatible with the
854         moving GC.
855
856 2006-12-18  Miguel de Icaza  <miguel@novell.com>
857
858         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
859         in structures by throwing ArgumentNullException.
860
861         (emit_marshal_safehandle): Also when they are null parameters.
862
863         (emit_marshal_safehandle): Add support for ref
864         SafeHandles parameters
865
866 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
867
868         * profiler.c: updated to use the mono-dl API instead of
869         gmodule.
870
871 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
872
873         * profiler.c: updated to use the mono-dl dynamic loading
874         API instead of gmodule.
875
876 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
877
878         * profiler.c: use readlink, older versions of glib don't have
879         g_file_read_link ().
880
881 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
882
883         * profiler.c: try to detect the path to mono if libc fails to provide
884         a useful name (bug #80286).
885
886 2006-12-16  Raja R Harinath  <rharinath@novell.com>
887
888         Fix #80242
889         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
890         instance, use the generic type definition instead.
891         (ves_icall_Type_GetNestedTypes): Likewise.
892         * class.c (mono_class_create_generic): Always set the
893         nested_classes of a generic instance to NULL, even if the generic
894         type definition has nested types.
895
896 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
897
898         * marshal.c (mono_string_from_bstr): Revert previous Windows change
899         and fix on Linux.
900         
901 2006-12-15  Miguel de Icaza  <miguel@novell.com>
902
903         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
904         my arguments were in the wrong order.   I also fixed the Windows
905         version which seems to have had the same issue.
906
907         (mono_free_bstr): On Unix, this is g_free.
908         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
909         conversions (for the tests in corlib to pass).
910
911 2006-12-14  Miguel de Icaza  <miguel@novell.com>
912
913         * marshal.c (emit_ptr_to_object_conv): For now, ignore
914         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
915         exception if a ref SafeHandle in a struct has changed).
916         
917         (emit_struct_conv): Do not perform layout checks for classes
918         derived from SafeHandle, as those are specially handled. 
919
920         (emit_object_to_ptr_conv): Add support for
921         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
922
923         (emit_marshal_safehandle): Implement conversion of return values
924         of safehandles (MARSHAL_ACTION_CONV_RESULT).
925         
926         * threads.c: WaitHandle now is compiled with two different handles
927         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
928         for 2.0.
929         
930         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
931         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
932         these routines to cope with both kinds of fields.
933
934 2006-12-12  Miguel de Icaza  <miguel@novell.com>
935
936         * metadata.c (mono_type_to_unmanaged): Handle the case where
937         type->data.klass is a SafeHandle, and in that case, return the
938         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
939         MONO_MARSHAL_CONV_SAFEHANDLE. 
940
941 2006-12-11  Miguel de Icaza  <miguel@novell.com>
942
943         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
944         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
945         calling emit_marshal_object.
946
947         (emit_marshal_safehandle): Implement marshalling of
948         SafeHandle parameters (no ref support yet).
949
950         (MarshalAction): Document the defines as I implement
951         them for SafeHandle.
952
953         (emit_marshal_object): indentation police.
954
955         * class-internals.h: Define MonoSafeHandle.
956         Add safehandle_class to MonoDefaults type.
957
958         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
959         list of classes to check for fields. 
960
961         * domain.c (mono_init_internal): Add SafeHandle to the list of
962         mono_defaults loaded.
963
964 2006-12-15  Raja R Harinath  <rharinath@novell.com>
965
966         Fix #80253
967         * reflection.c (mono_reflection_bind_generic_parameters): If the
968         generic type definition is a type builder, ensure that it is fully
969         initialized before instantiating it.  Kill some dead code.
970
971 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
972
973         * object.c: clear the loader_error () before loading
974         more metadata stuff (bug #80258).
975
976 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
977
978         * icall.c, icall-defs.h: type modifiers icalls for
979         parameters and properties.
980
981 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
982
983         * object.c, icall.c: fixed warnings.
984
985 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
986
987         * marshal.c: fixed a couple of leaks and coding style in a few places.
988
989 2006-12-08  Dick Porter  <dick@ximian.com>
990
991         * process.c: Cope with NULL ProcessStartInfo arguments on windows
992         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
993         80173.
994
995 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
996
997         * process.c: ProcessStartInfo may have only filename set and
998         arguments can be NULL.
999
1000 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1001
1002         * icall.c: fix leak found by Robert Jordan.
1003
1004 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1005
1006         * marshal.c, marshal.h: generate managed method to access an element
1007         of a multi-dimensional array.
1008
1009 2006-11-30  Paolo Molaro (lupus@ximian.com)
1010
1011         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
1012
1013 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1014
1015         * icall.c: back out GetFields () fix until the serialization code is
1016         fixed to not depend on the incorrect behaviour.
1017
1018 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
1019
1020         * profiler.c: provide defaults if none are set.
1021
1022 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
1023
1024         * Makefile.am, attrdefs.h: new public header file with
1025         constants for attributes for use by embedders.
1026
1027 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
1028
1029         * icall.c: GetFields () fix for bug #80064.
1030
1031 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
1032
1033         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
1034         removed long unused icalls.
1035
1036 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
1037   
1038         * marshal.c: 
1039                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
1040                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
1041                 can be generated without a delegate class.
1042                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
1043         
1044         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1045
1046 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1047
1048         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
1049         #80069.
1050
1051 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1052
1053         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
1054         icall-def.h: added icalls needed by System.GC.
1055
1056 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
1057
1058         * loader.c: ensure the class in catch clauses is handled
1059         correctly for generics methods (fixes bug#79980).
1060
1061 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
1062
1063         * monitor.h, monitor.c: added mono_locks_dump () function
1064         to help debug deadlocks involving managed locks.
1065
1066 2006-11-13  Dick Porter  <dick@ximian.com>
1067
1068         * file-io.c (get_file_attributes): If the file is a symlink try
1069         and get the stat data for the target, but also add the
1070         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
1071         the specs for the windows symlink support, but will probably have
1072         to be reworked when I have test data from a vista machine.  Fixes
1073         bug 79887.
1074
1075 2006-11-13  Dick Porter  <dick@ximian.com>
1076
1077         * gc.c (mono_domain_finalize): 
1078         * marshal.c (mono_delegate_begin_invoke): 
1079         * threadpool.c (socket_io_init, mono_thread_pool_init)
1080         (mono_thread_pool_finish): 
1081         * monitor.c (mono_monitor_try_enter_internal): 
1082         * threads.c (mono_thread_resume, mono_thread_init)
1083         (mono_thread_suspend_all_other_threads)
1084         (mono_thread_execute_interruption): 
1085         * appdomain.c (mono_domain_unload): Check for NULL error returns
1086         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
1087         75733.
1088
1089 2006-11-11  Miguel de Icaza  <miguel@novell.com>
1090
1091         * process.c
1092         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
1093         Only close the handle if the value of the handle is not
1094         INVALID_HANDLE_VALUE.  This just makes the process a bit more
1095         robust.
1096
1097         Improvement for #75733, so that we do not run into this problem. 
1098
1099         
1100         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
1101         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
1102         internal variables.  Fixes #79462 
1103         
1104
1105 2006-11-09  Dick Porter  <dick@ximian.com>
1106
1107         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1108         Use poll() not select().  Fixes bug 79397.
1109
1110 2006-11-09  Raja R Harinath  <rharinath@novell.com>
1111
1112         Fix #79872
1113         * assembly.c (mono_assembly_load_from_full): Check that the given
1114         image has an assembly manifest.
1115
1116 2006-11-09  Ankit Jain  <jankit@novell.com>
1117
1118         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
1119         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
1120         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
1121
1122 2006-11-07  Dick Porter  <dick@ximian.com>
1123
1124         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1125         Put the old resolver behaviour back for pre-2.0 profiles.
1126
1127 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1128
1129         * threadpool.c: precise GC and locking fixes.
1130
1131 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
1132
1133         * class.c: don't load types that have an explicit unaligned
1134         managed reference. Provide better info in the TypeLoad exception.
1135         Part of the fix for bug #79744.
1136         * object.c: use the correct check for class type load issues.
1137
1138 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1139
1140         * class.c: enforce alignment of fields with managed references
1141         even when Pack=1 is forced by the user (bug #77788).
1142
1143 2006-11-03  Dick Porter  <dick@ximian.com>
1144
1145         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
1146         If the address reverse lookup fails, return it as the hostname
1147         anyway.  Fixes bug 79721.
1148
1149 2006-11-03  Dick Porter  <dick@ximian.com>
1150
1151         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
1152         Fix build on Windows.
1153
1154 2006-11-02  Dick Porter  <dick@ximian.com>
1155
1156         * icall-def.h: 
1157         * object-internals.h: 
1158         * exception.c (mono_get_exception_thread_interrupted): 
1159         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
1160         Fixes bug 74525.
1161
1162         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
1163         Check for pending Thread.Interrupt.
1164
1165 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
1166         * loader.c: Fixed bug 79684.
1167
1168 2006-10-27  Dick Porter  <dick@ximian.com>
1169
1170         * file-io.c (get_file_attributes): Force symlinks to directories
1171         to be returned as a regular file.  Fixes bug 79733.
1172 2006-10-26  Dick Porter  <dick@ximian.com>
1173
1174         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
1175         CreateFile to open a directory then we need to set the
1176         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
1177
1178 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
1179
1180         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
1181         friends.
1182
1183 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1184
1185         * sgengc.c: small cleanup of timer code.
1186
1187 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
1188
1189         * sgen-gc.c: fix some warnings and start adding support for
1190         complete object removal on domain unload.
1191
1192 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
1193
1194         * assembly.c: build_assembly_name should not consider a version
1195         number without build or revision number invalid. Fixes bug #79715.
1196
1197 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
1198
1199         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
1200         call kernel32 function OutputDebugString directly.
1201         
1202         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
1203         
1204 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
1205
1206         * reflection.c: small cleanup, using a function to insert a MonoString
1207         in the string heap.
1208
1209 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
1210
1211         * reflection.c: moving GC fixes.
1212
1213 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
1214
1215         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
1216         all the objects with finalizers belonging to an unloading appdomain.
1217
1218 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
1219
1220         * sgen-gc.c: added ability to allocate even when the nursery is fully
1221         pinned and fixed a couple of bugs.
1222
1223 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1224
1225         * threads.h: Revert the last change for now.
1226
1227         * threads.h (mono_thread_get_pending_exception): Rename this to
1228         mono_thread_get_undeniable_exception ().
1229
1230 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
1231
1232         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
1233         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
1234         when fname does not refer to valid assembly. This result in a more
1235         meaningful error message.
1236         * exception.c: added mono_get_exception_bad_image_format2 which 
1237         constructs a BadImageFormatException using the ctor taking a custom
1238         message and the file name. Passing in a NULL msg results in a default
1239         message.
1240         * exception.h: define mono_get_exception_bad_image_format2 function.
1241         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
1242         when file name pointed to an invalid IL image. Use 
1243         mono_get_exception_file_not_found2 to construct FileNotFoundException,
1244         as this results in a more meaningful error message.
1245
1246 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
1247
1248         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
1249         #79465.
1250
1251 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
1252
1253         * metadata.c (mono_type_size): Change the align parameter to guint32 for
1254         consistency with the other _size functions.
1255         (mono_type_stack_size): Ditto.
1256
1257         * class.c object.c icall.c: Fix warnings caused by the above change.
1258
1259         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
1260
1261         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
1262
1263         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
1264
1265 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1266
1267         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
1268         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
1269         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
1270         threadpool.h, threads-types.h: mark more internal functions.
1271
1272 2006-10-11  Dick Porter  <dick@ximian.com>
1273
1274         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
1275         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
1276         reproduce the bug even before applying the fix.)
1277
1278 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
1279
1280         * reflection.c: allow retrieving attributes for arguments in generic
1281         methods (bug #79241).
1282
1283 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
1284
1285         * debug-mono-symfile.c: properly check fopen () result (found by
1286         coverity).
1287
1288 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
1289
1290         * reflection.c: make error message clearer and fixed two
1291         issuelets found by Coverity.
1292
1293 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
1294
1295         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
1296
1297 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
1298
1299         * object-internals.h, gc-internal.h, profiler-private.h:
1300         mark internal functions.
1301
1302 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
1303
1304         * reflection.c: put data in the text section.
1305         * icall.c: recognize more types in type_from_typename ().
1306         * process.c, marshal.c: added some GC FIXMEs.
1307
1308 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1309
1310         * loader.c: check for NULL before initializing.
1311
1312 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
1313
1314         * gc.c (finalizer_thread): Use a non-alertable wait here.
1315
1316         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
1317         until the correct solution is found.
1318
1319 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1320
1321         * reflection.c (mono_module_get_object): Avoid an assert when operating on
1322         modules with no metadata. Fixes #79596.
1323
1324         * image.c (load_metadata_ptrs): Put back the error message when
1325         the #- heap is encountered since the support is not complete yet.
1326
1327 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
1328
1329         * gc.c: do not allow the user to SuppressFinalize () a
1330         delegate because it would leak the trampoline if present.
1331
1332 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
1333
1334         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
1335         PropertyPtr table.
1336
1337 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
1338
1339         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
1340
1341         * metadata.c (mono_metadata_get_param_attrs): Ditto.
1342
1343         * row-indexes.h: Add definitions for *Ptr tables.
1344
1345         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
1346
1347         * metadata.c (mono_metadata_translate_token_index): New helper function to
1348         translate table indexes used in uncompressed metadata.
1349         (mono_metadata_decode_table_row): Ditto.
1350         (mono_metadata_decode_table_row_col): Ditto.
1351
1352         * metadata.c: Add table schema for *Ptr tables.
1353
1354         * class.c loader.c: Use the new helper function to access the affected metadata
1355         tables.
1356         
1357         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
1358         #38532.
1359         
1360 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
1361
1362         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
1363         sequences which can be unbounded in size. Fixes #79583.
1364
1365 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
1366
1367         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
1368         static initialization.
1369
1370         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
1371
1372         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
1373
1374         * domain.c (mono_domain_free): Free up type_init_exception_hash.
1375
1376         * object.c (mono_runtime_class_init): Implement correct semantics when a static
1377         ctor fails, i.e. throw the same exception on subsequent accesses.
1378         
1379 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
1380
1381         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
1382         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
1383         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
1384         Handle marshalling of interfaces and VARIANTs contained in structs.
1385         
1386         Code is contributed under MIT/X11 license.
1387         
1388 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
1389
1390         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
1391         
1392         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
1393         mempool.
1394
1395 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1396
1397         * console-io.c: ignore previous SIGINT handler.
1398
1399 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
1400
1401         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
1402         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
1403         #79460, #79461, #79485.
1404
1405         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
1406
1407         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
1408         #79217.
1409
1410 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
1411
1412         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
1413         could be generated from it.
1414
1415 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
1416
1417         * rand.c: fix read loop to correctly handle EINTR.
1418
1419 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1420
1421         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
1422         internal calls are defined to keep methods closer to the declaring
1423         type and allow a significant reduction in runtime relocations and
1424         memory usage.
1425
1426 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
1427
1428         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
1429         exception message to have FileNotFoundException use the default
1430         assembly load error message. Fixes bug #79426.
1431         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
1432
1433 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1434
1435         * threadpool.c: (start_thread_or_queue) use the root domain when
1436         creating the thread instead of the async object one.
1437
1438 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
1439
1440         * class.c, object.c, class-internals.h, reflection.c:
1441         for arrays, store element_size inside MonoClass (speedup
1442         for array object creation).
1443
1444 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
1445
1446         * icall.c: fixed CodeBase to use the file name and not the module
1447         name (bug #79365).
1448
1449 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1450
1451         * mono-debug.c, mono-debug.h: export find_method as
1452         mono_debug_find_method ().
1453
1454 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
1455
1456         * debug-helpers.c, class-internals.h: added a few functions useful
1457         when debugging under gdb.
1458
1459 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1460
1461         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
1462         characters that need special handling.
1463
1464 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
1465
1466         * mono-config.c: make the os/cpu specification more flexible,
1467         allowing lists and negation.
1468
1469 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
1470
1471         * marshal.c: COM Interop fixes. Handle case where method->klass.
1472         is interface. Handle BSTR/MonoString when null. Use CDECL as 
1473         calling convention on non-windows platforms. This is for
1474         compatibility with XPCOM and MainWin COM.
1475         
1476         Code is contributed under MIT/X11 license.
1477         
1478
1479 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
1480
1481         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
1482         correctly. Fixes #79217.
1483
1484         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
1485
1486 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
1487
1488         * mono-config.c: allow both an os and cpu attribute for dllmap
1489         and dllentry elemnets to enable a single config file to be used
1490         for multiple architectures.
1491
1492 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
1493
1494         * loader.c: MonoLoaderError was cleared too soon on load failure.
1495         Fixes bug #79424.
1496
1497 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
1498
1499         * icall.c: use the defining class vtable when accessing a
1500         static field, not a pobblibly derived class.
1501
1502 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
1503
1504         * icall.c string-icalls.c: Remove references to unicode.h.
1505
1506         * unicode.h unicode.c Makefile.am: Remove these unused source files.
1507
1508         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
1509
1510         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
1511         indicating the image where custom marshaller types should be looked up.
1512         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
1513         custom marshallers, instead of corlib. Fixes #79425.
1514
1515 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
1516
1517         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
1518
1519 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
1520
1521         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
1522         Implement Environment.ProcessorCount.
1523         
1524         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
1525         Implement Environment.ProcessorCount.
1526         
1527         * icall.c: 
1528         Add Environment.ProcessorCount icall.
1529         
1530         Patch by Jason McFall.
1531
1532 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1533
1534         * assembly.c: don't append .exe/.dll when the filename already contains
1535         one of those extensions.
1536
1537 2006-09-12  Martin Baulig  <martin@ximian.com>
1538
1539         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
1540         to array interfaces.
1541
1542 2006-09-11  Martin Baulig  <martin@ximian.com>
1543
1544         * reflection.c (mono_image_build_metadata): Create the
1545         MethodImpl's after emitting all types and methods, so we don't
1546         need another fixup pass for them.
1547
1548 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
1549
1550         * class.c (mono_class_from_name_case): Fix regression introduced by the last
1551         change.
1552
1553 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
1554
1555         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
1556         unload.
1557
1558 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
1559
1560         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
1561         args is not set. Fixes #78926.
1562
1563 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
1564
1565         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
1566
1567         * image.c (load_class_names): Move this to class.c, and rename it to 
1568         'mono_image_init_name_cache'.
1569         (load_modules): Fix a warning.
1570
1571         * class.c icall.c image.c: Initialize image->name_cache lazily.
1572
1573         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
1574         on its name using information in the AOT file.
1575
1576         * class.c (mono_class_from_name): Use the new hook function.
1577
1578 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
1579
1580         * reflection.c (mono_param_get_objects): Handle enum default parameter values
1581         correctly.
1582
1583         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
1584         Fixes #79289.
1585         
1586 2006-09-06  Martin Baulig  <martin@ximian.com>
1587
1588         * icall.c (mono_lookup_internal_call): Small fix.
1589
1590 2006-09-05  Raja R Harinath  <rharinath@novell.com>
1591
1592         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
1593         double g_free.
1594
1595 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
1596
1597         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
1598         when --debug is specified.
1599
1600 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
1601
1602         * class.c (setup_generic_array_ifaces): Fix a warning.
1603
1604 2006-09-04  Miguel de Icaza  <miguel@novell.com>
1605
1606         * Temporarily remove the patch to assemly.c that checks the
1607         assembly versions as it breaks our gacutil.
1608
1609 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
1610
1611         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
1612
1613         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
1614         a net 1.0 runtime.
1615
1616         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
1617         created using the default ctor. Fixes #79152.
1618         (mono_string_builder_to_utf16): Ditto.
1619
1620 2006-09-01  Martin Baulig  <martin@ximian.com>
1621
1622         Fix handling of the generic array interfaces.
1623
1624         * class-internals.h
1625         (MonoDefaults): Removed `generic_array_class' and added
1626         `generic_ilist' class.
1627
1628         * class.c
1629         (mono_bounded_array_class_get): Add the new generic array interfaces.
1630         (setup_generic_array_ifaces): New static method; create vtable
1631         entries for each method in the generic array interfaces.
1632
1633         * metadata.c
1634         (select_container): Allow "parent-less" generic methods.
1635
1636         * marshal.c
1637         (mono_marshal_get_generic_array_helper): New public method.
1638
1639         * icall.c
1640         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
1641         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
1642         moved the interncall into System.Array.
1643
1644 2006-09-01  Raja R Harinath  <rharinath@novell.com>
1645
1646         A few more cases of avoiding work on types with ->byref set.
1647         Has the real fix for #79238
1648         * icall.c (is_generic_parameter): New helper.
1649         (ves_icall_Type_GetGenericParameterPosition): Use it.
1650         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
1651         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1652         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1653         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
1654         reference types.
1655         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
1656         reference types.
1657         (ves_icall_Type_get_IsGenericInstance): Likewise.
1658         (ves_icall_Type_get_IsGenericType): Likewise.
1659
1660 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
1661
1662         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
1663         class if possible.
1664
1665         * mempool.h (mono_mempool_get_allocated): New helper function.
1666
1667         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
1668         change.
1669
1670         * mempool.c: Fix warnings and the calculation of stats.
1671
1672         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
1673
1674         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
1675
1676         * loader.c (mono_get_method_from_token): Update method_count stat.
1677
1678         * class-internals.h (MonoStats): Add some stats.
1679
1680 2006-08-31 Robert Jordan  <robertj@gmx.net>
1681
1682         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
1683         with managed variants.
1684         All code is contributed under the MIT/X11 license.
1685         
1686 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
1687
1688         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
1689         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
1690
1691         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
1692
1693         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
1694         with cycles in classes.
1695
1696         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
1697
1698         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
1699         missing a [MarshalAs] directive. Fixes #79203.
1700
1701         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
1702         klass->marshal_info. Fixes #79217.
1703
1704 2006-08-30  Martin Baulig  <martin@ximian.com>
1705
1706         Committing a patch from Joachim Ante <joe@otee.dk>:
1707         Add support for binary data symbol stores.
1708
1709         * debug-mono-symfile.c
1710         (mono_debug_open_mono_symbol_file): Renamed into
1711         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
1712         arguments.
1713
1714         * mono-debug.c
1715         (mono_debug_open_image): Added `raw_contents' and `size' args.
1716         (mono_debug_init_2_memory): New public function.
1717
1718 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
1719
1720         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
1721
1722 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1723
1724         * appdomain.c: implement support for ShadowCopyFiles.
1725
1726 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
1727
1728         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
1729         when value is NULL (and should remove CID #51).
1730
1731 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1732
1733         * image.c: moved 2 functions to ../utils.
1734
1735 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
1736
1737         * gc.c: cope with the target object of a GC handle being NULL
1738         (bug #78877).
1739
1740 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
1741
1742         * class.c: recursively check parent's explicit implementations
1743         of interface methods (fixes bug #79125).
1744
1745 2006-08-19  Miguel de Icaza  <miguel@novell.com>
1746
1747         * filewatcher.c: Avoid warnings when building, do not redefine
1748         constants that are defined.
1749
1750         Remove warnings.
1751
1752 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1753
1754         * image.c: don't fail when the link points to an absolute path.
1755
1756 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
1757
1758         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
1759         Fix CID #3.
1760
1761 2006-08-17  Miguel de Icaza  <miguel@novell.com>
1762
1763         * image.c (full_path): A new method used to obtain the actual path
1764         of an assembly even in the presence of symbolic links.  
1765
1766         This is necessary for the case where we are running a binary that
1767         has been GACed, but we are using the "published" path name
1768         ($prefix/mono/1.0/blah.exe) which happens to point to the real
1769         file in the GAC.
1770
1771         This was the source of the failure for the `xsp' command with the
1772         recent AppDomain changes, as far as the runtime was concerned,
1773         there were two different assemblies: $prefix/mono/1.0/blah.exe and
1774         $prefix/mono/gac/blah/version/blah.exe.
1775
1776         (do_mono_image_open): use full path
1777
1778 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1779
1780         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
1781
1782 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
1783
1784         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
1785         domain_id is supplied. Fix CID #241 and corlib's unit tests.
1786
1787 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1788
1789         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
1790         small structures. Fixes #78990.
1791
1792 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
1793
1794         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
1795
1796         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
1797
1798 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1799
1800         * appdomain.c:
1801         * marshal.c: don't load all the assemblies from a domain into newly
1802         created ones. The new domains might have different rules and load
1803         assemblies from different locations. Fixes bug #76757.
1804
1805         Patch by Lluis. Conflicts resolved by Brian Crowell.
1806
1807 2006-08-16  Alp Toker  <alp@atoker.com>
1808
1809         * socket-io.c: First half of the fix for #79084.
1810         Set sa_size to the length of the content, not that of the struct.
1811         Don't add NULL suffix to the content, this should be done in
1812         managed code if needed.
1813
1814 2006-08-14  Raja R Harinath  <rharinath@novell.com>
1815
1816         Fix part of #79012
1817         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
1818         mono_metadata_parse_type returns NULL.
1819
1820 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
1821
1822         * normalization-tables.h : new file for string normalization data.
1823         * locales.c, locales.h, icall.c :
1824           added load_normalization_resource() for string normalization,
1825           and icall as well.
1826         * Makefile.am : added normalization-tables.h to the sources.
1827
1828 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
1829
1830         * marshal.c: Add more helper functions to reduce code duplication and use them
1831         everywhere.
1832
1833 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
1834
1835         * marshal.c: Fix non-x86 stdcall warnings.
1836         
1837         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
1838         them everywhere.
1839
1840 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
1841
1842         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
1843         type check on multi-dimensional arrays. Fixes #79000.
1844
1845 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
1846
1847         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
1848         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
1849         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
1850         * class-internals.h: add is_com_object to class structure.
1851         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
1852         null checks to COM object marshalling. Fix .ctor call on RCW.
1853         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
1854         
1855         All code is contributed under the MIT/X11 license.
1856
1857 2006-08-09  Dick Porter  <dick@ximian.com>
1858
1859         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
1860         racing mono_monitor_allocator_lock() somewhere, so don't delete
1861         the critical section for now.  Found by running and exiting
1862         monodevelop.
1863
1864 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
1865
1866         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
1867         (ves_icall_System_ComObject_FindInterface): Ditto.
1868         (ves_icall_System_ComObject_CacheInterface): Ditto.
1869
1870         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
1871         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
1872
1873 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1874
1875         * threadpool.c: treat pipes from process asynchronous reads as sockets
1876         when reading from them, so we get select/poll or epoll to wait for
1877         data.
1878
1879 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
1880
1881         * loader.c: Fix a typo (CID #233) in the null check.
1882
1883 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
1884
1885         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
1886         Hopefully fixes #78949.
1887         
1888         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
1889         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
1890         bytes. Fixes #78972.
1891
1892 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1893
1894         * filewatcher.c: we need to set errno here.
1895
1896 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1897
1898         * filewatcher.c: let Win32Exception get the error value.
1899
1900 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1901
1902         * filewatcher.c: translate errno into win32 errors for Win32Exception
1903         to know what happened.
1904
1905 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
1906
1907         * threadpool.c: Fix more warnings.
1908
1909         * assembly.c (search_loaded): Fix warnings.
1910
1911         * threadpool.c (mono_thread_pool_finish): Fix warnings.
1912         (mono_async_invoke): Ditto.
1913
1914 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
1915
1916         * object.c (mono_remote_class_vtable): Need to create proxy vtable
1917         entries for __ComObject type in addition to ComImport types.
1918         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
1919         about hash table.
1920         
1921         All code is contributed under the MIT/X11 license.
1922
1923 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
1924
1925         * image.c: avoid tentative loading of modulerefs that contain
1926         no metadata (P/Invoke library names).
1927
1928 2006-07-28  Dick Porter  <dick@ximian.com>
1929
1930         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
1931         mono_loader_lock() somewhere, so don't delete the critical section
1932         for now.  Found by running and exiting monodevelop.
1933
1934 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1935
1936         * filewatcher.c: define the inotify syscalls when we're building on
1937         linux and have sys/syscall.h. The build system might not have support
1938         for inotify but the target system might have it.
1939
1940 2006-07-26  Miguel de Icaza  <miguel@novell.com>
1941
1942         * domain.c: Documentation updates.
1943
1944         * loader.c (mono_free_method): Do not release the method
1945         information if we are being profiled, as profilers will use this
1946         information at shut down to present some data to the user.
1947
1948         This is needed so that the profiler does not crash, as the
1949         profiler tends to keep MonoMethods around, and they might become
1950         invalid if we free these.
1951
1952         (mono_get_method_constrained): Return the original CIL stream
1953         method as well, so verification can be performed against it.
1954
1955 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1956
1957         * filewatcher.[ch]: support for inotify file system watcher.
1958         * icall.c: add new internal calls for the inotify file system watcher.
1959
1960 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1961
1962         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
1963         #78888.
1964
1965 2006-07-20  Dick Porter  <dick@ximian.com>
1966
1967         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
1968         warning.
1969
1970 2006-07-20  Dick Porter  <dick@ximian.com>
1971
1972         * threads.c (start_wrapper): Do the thread cleanup while we still
1973         hold a reference to its object.  Fixes bug 78123.
1974
1975 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
1976
1977         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
1978         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
1979           "managed-to-managed".
1980         * icall.c: Redirect string constructors that take sbyte* to
1981           ves_icall_System_String_ctor_RedirectToCreateString.
1982         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
1983           to CreateString () methods with matching signature.
1984         * reflection.c: Use original security informations for
1985           MONO_WRAPPER_MANAGED_TO_MANAGED.
1986         * security-manager.c: Use original security informations for
1987           MONO_WRAPPER_MANAGED_TO_MANAGED.
1988         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
1989           that is a placeholder and only its address should be used.
1990         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
1991           that is a placeholder and only its address should be used.
1992
1993 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
1994
1995         Begin implementing COM Interop.
1996         * appdomain.c: Increment corlib version.
1997         * class.c: Set ComImport classes' parent to __ComObject.
1998         * loader.c: Mark cominterop methods as such.
1999         * domain.c: Add __ComObject class to MonoDefaults structure.
2000         * image.c: Add 2 hashtables to the image for COM Interop related methods
2001         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
2002         using the mempool allocator
2003         
2004         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
2005         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
2006         declaration for mono_metadata_type_dup_mp.
2007         
2008         * debug-helpers.c: Added strings for two additional wrapper types
2009         * object.c: Create proxy objects for ComImport classes
2010         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
2011         and added __ComObject class to MonoDefaults structure.
2012         
2013         * object-internals.h: Finish MonoRealProxy definition, and add definition of
2014         MonoComInteropProxy and MonoComObject.
2015         
2016         * marshal.c: Added support for COM Interop
2017         (signature_cominterop): Converts managed signature to corresponding
2018         unmanaged COM signature.
2019         (cominterop_get_function_pointer): gets unmanaged function pointer via
2020         COM object vtable
2021         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
2022         (cominterop_get_method_interface): returns interface type that method is defined on
2023         (mono_mb_emit_cominterop_call): emits native call to function pointer
2024         gotten from vtable
2025         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
2026         that matches signature of unmanaged function.
2027         (cominterop_get_native_wrapper): wrapper around adjusted method call.
2028         (cominterop_get_invoke): forwards call from proxy to __ComObject
2029         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
2030         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
2031         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
2032         
2033         * marshal.h: Added Marshal icall declarations.
2034         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
2035         so we can access them in finalizer
2036         
2037 2006-07-14  Dick Porter  <dick@ximian.com>
2038
2039         * object.c (mono_type_initialization_cleanup): Fix a race
2040         condition by temporarily commenting out the critical section
2041         deletion.
2042
2043 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
2044
2045         * reflection.c (create_custom_attr): Fix some warnings.
2046         (create_custom_attr_data): Ditto.
2047         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
2048         types. Fixes #78855.
2049
2050 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
2051
2052         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
2053
2054         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
2055
2056 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
2057
2058         * reflection.c (resolve_object): Add support for DynamicMethod.
2059
2060         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
2061         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
2062
2063 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
2064
2065         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
2066         don't leak GPtrArray's pdata has we have no use (nor free) for it.
2067
2068 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
2069
2070         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
2071         Fixes #77888.
2072
2073 2006-06-30  Raja R Harinath  <rharinath@novell.com>
2074
2075         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
2076         slightly: remove a shadow local variable.
2077
2078 2006-06-29  Raja R Harinath  <rharinath@novell.com>
2079
2080         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
2081         definition that introduces the virtual function slot.
2082         Also fix Coverity #105.
2083
2084 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
2085
2086         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
2087         for dynamic assemblies. Fixes #78724.
2088
2089 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
2090
2091         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
2092         Fixes #78722.
2093
2094 2006-06-21  Martin Baulig  <martin@ximian.com>
2095
2096         * reflection.c
2097         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
2098         fixes #76484.
2099
2100 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
2101
2102         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
2103
2104 2006-06-20  Raja R Harinath  <rharinath@novell.com>
2105
2106         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
2107         nor TYPEREFs.
2108         * class.c (mono_class_create_from_typespec): Add 'context' argument.
2109         Inflate result if necessary.
2110         (mono_class_get_full): Remove old version.  Rename from
2111         'mono_class_get' and add 'context' argument.  Pass it to
2112         ..._create_from_typespec.
2113         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
2114         (mono_ldtoken): Revert change below.
2115
2116 2006-06-20  Martin Baulig  <martin@ximian.com>
2117
2118         * class.c (mono_ldtoken): Don't pass the generic context to
2119         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
2120
2121 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
2122
2123         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
2124         and later freeing it. Fixes #78638.
2125
2126 2006-06-15  Miguel de Icaza  <miguel@novell.com>
2127
2128         * icall.c (mono_class_get_throw): Revert over-zealous error
2129         throwing, the caller for mono_class_get_throw will cope with
2130         errors when classes are not properly initialized already.
2131
2132         The code still copes with loader exceptions though.
2133
2134         Fixes the regression in reftype1 and reftype3 from the CAS tests.
2135         
2136 2006-06-14  Miguel de Icaza  <miguel@novell.com>
2137
2138         Fixes the `make run1' version of RuntimeAbort (to be commited,
2139         source is in Bugzilla).
2140         
2141         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
2142         FALSE on class loading failure instead of returning true.
2143
2144         * class.c (mono_class_create_from_typedef): It is possible for
2145         mono_metadata_interfaces_from_typedef_full to fail if a class is
2146         not found, cope with this.
2147         
2148
2149 2006-06-14  Dick Porter  <dick@ximian.com>
2150
2151         * socket-io.c: 
2152         * process.c: Fix a bunch of signed/unsigned warnings from gcc
2153         4.1.1
2154
2155 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
2156
2157         * culture-info-table.h : oops, forgot to make it nsync with r61548.
2158
2159 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2160
2161         * icall.c: Another fix for building mono in Visual Studio.
2162
2163 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
2164
2165         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
2166         
2167 2006-06-09  Martin Baulig  <martin@ximian.com>
2168
2169         * debug-mono-symfile.c: Put this back and really fix it this
2170         time. Sorry for all the trouble.
2171
2172 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
2173
2174         * icall.c (mono_class_get_throw): Fix a warning.
2175         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
2176         ReflectionTypeLoadException if needed. Fixes #78606.
2177
2178         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
2179         (mono_class_init): Ditto.
2180
2181         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
2182         ref_only exceptions.
2183         (mono_loader_clear_error): Make this work even if there is no error.
2184
2185 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
2186
2187         * object-internals.h marshal.c marshal.h icall.c: Implement method 
2188         Marshal.GetComSlotForMethodInfo using internal call.
2189
2190 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
2191
2192         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
2193         a function for signalling it.
2194
2195         * class.c (mono_class_from_typeref): Use the new kind of loader error when
2196         a referenced assembly is not found.
2197
2198         * loader.c (mono_loader_error_prepare_exception): Add support for 
2199         LOADER_ERROR_ASSEMBLY. Fix formatting.
2200
2201 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
2202
2203         * domain.c appdomain.c class-internals.h marshal.c: Add support 
2204         for VARIANT marshalling on windows and increment corlib version
2205         since Variant struct was added.
2206
2207 2006-06-03  Miguel de Icaza  <miguel@novell.com>
2208
2209         * debug-mono-symfile.c: Revert Martin's previous patch which broke
2210         stack trace line information:
2211
2212         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
2213         (Martin) when looking up B which is between A and C, return A not C.
2214
2215         Bug is #78573.
2216
2217         Thanks to Alexander Olk for tracking this down.
2218
2219 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
2220
2221         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
2222         
2223         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
2224         avoid clobbering its value.
2225         (mono_string_to_lpstr): Fix a warning on windows.
2226
2227 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2228
2229         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
2230
2231         * reflection.c loader.c: Removed references to 'dummy' flag.
2232
2233         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
2234
2235         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
2236         it gets GC tracking.
2237
2238         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
2239         GC tracking.
2240         
2241         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
2242
2243         * marshal.c threadpool.c: Update callers of mono_async_result_new.
2244
2245         * appdomain.c: Bump corlib version.
2246
2247 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2248
2249         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2250         CEE_STIND_REF when working with object references.
2251
2252 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
2253
2254         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
2255         Fixes #78539.
2256
2257 2006-05-30  Miguel de Icaza  <miguel@novell.com>
2258
2259         * loader.c (method_from_memberref): Fix argument value for
2260         mono_loader_set_error_method_load (I was passing the MonoClass
2261         instead of the class name char *).
2262
2263 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
2264
2265         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
2266         CEE_STIND_REF when working with object references.
2267
2268 2006-05-30  Martin Baulig  <martin@ximian.com>
2269
2270         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
2271         mono_method_full_name() change and replace the ':' with a '.'
2272         here.
2273
2274 2006-05-30  Martin Baulig  <martin@ximian.com>
2275
2276         * debug-mono-symfile.c
2277         (mono_debug_symfile_lookup_location): Fix the algorithm:
2278         when looking up B which is between A and C, return A not C.
2279
2280 2006-05-29  Martin Baulig  <martin@ximian.com>
2281
2282         * mono-debug.h
2283         (MonoDebugMethodInfo): Make the typedef public.
2284         (MonoDebugSourceLocation): New public struct.
2285
2286         * mono-debug.c
2287         (mono_debug_source_location_from_address): Removed.
2288         (mono_debug_source_location_from_il_offset): Removed.
2289         (mono_debug_il_offset_from_address): Removed.
2290         (mono_debug_address_from_il_offset): Removed.
2291         (mono_debug_lookup_method): New public function.
2292         (mono_debug_lookup_source_location): New public function; replaces
2293         the old mono_debug_source_location_from_*() functions; see the
2294         inline documentation.
2295         (mono_debug_free_source_location): New public function.
2296         (mono_debug_print_stack_frame): New public function; see the
2297         inline documentation.
2298
2299         * debug-mono-symfile.c
2300         (mono_debug_find_source_location): Renamed into
2301         mono_debug_symfile_lookup_location(); only take a
2302         `MonoDebugMethodInfo *' and an `offset' argument; added inline
2303         documentation.
2304         (mono_debug_find_method): Renamed into
2305         mono_debug_symfile_lookup_method().
2306
2307 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
2308
2309         * assembly.c (mono_assembly_open_full): Dont overwrite the status
2310         returned by mono_image_open_full ().
2311
2312         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
2313         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
2314         #78517.
2315
2316         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
2317         #78518.
2318
2319 2006-05-27  Miguel de Icaza  <miguel@novell.com>
2320
2321         * class.c (mono_class_from_typeref): handle missing images
2322         earlier, deals with bug #78418.   Refactor code; 
2323
2324         Fix a warning introduced in my previous commit (some stale code
2325         from before I revisited my patch).
2326
2327         * class.c (mono_class_create_from_typedef): On failure, remove the
2328         class from the MonoImage->class_cache as the class is not
2329         initialized;   Fixes the leak pointed out by Paolo.
2330
2331 2006-05-25  Dick Porter  <dick@ximian.com>
2332
2333         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
2334         DeleteCriticalSections until I figure out which one may still be
2335         sometimes locked when mono_thread_cleanup is called.
2336
2337 2006-05-24  Dick Porter  <dick@ximian.com>
2338
2339         * threads.c (mono_thread_cleanup): Move the threading cleanup out
2340         of mono_thread_manage and back into its own function, so it can be
2341         called after the finalizer thread has finished.
2342
2343         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
2344
2345 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
2346
2347         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
2348         Fixes #78495.
2349
2350         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
2351         with non-blittable elements.
2352         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
2353
2354 2006-05-24  Martin Baulig  <martin@ximian.com>
2355
2356         * mono-debug-debugger.h (MonoDebuggerEvent): Added
2357         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
2358
2359         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
2360         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
2361         `mono_debugger_event_handler' to NULL.
2362
2363 2006-05-24  Martin Baulig  <martin@ximian.com>
2364
2365         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
2366
2367 2006-05-24  Martin Baulig  <martin@ximian.com>
2368
2369         * mono-debug-debugger.h
2370         (mono_debugger_create_notification_function): Added
2371         `MonoCodeManager *' argument.
2372
2373 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
2374
2375         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
2376
2377 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
2378
2379         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
2380         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
2381         implementation.
2382
2383 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
2384
2385         * icall.c: precise GC support: objects can't be stored in unmanaged
2386         memory anymore, even if they are kept alive by other references: since
2387         they can move the GC needs to be able to always find them.
2388
2389 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2390
2391         * object.c: precise GC support for static fields. Support
2392         for moving GCs: write barriers and pinned allocation for interned
2393         strings.
2394
2395 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2396
2397         * domain.c, domain-internals.h: precise GC support for the MonoDomain
2398         structure.
2399
2400 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2401
2402         * class.c, gc.c: sgen and precise GC updates.
2403
2404 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
2405
2406         * marshal.h, marshal.c: added write barrier wrapper and precise type
2407         fixes.
2408
2409 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
2410
2411         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
2412         support.
2413
2414 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
2415
2416         * reflection.c: precise and sgen GC updates.
2417
2418 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
2419
2420         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
2421
2422 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
2423
2424         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
2425
2426 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
2427
2428         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
2429         MONO_TYPE_OBJECT. Fixes #78462.
2430
2431 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
2432
2433         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
2434         and blittable types.
2435
2436 2006-05-17  Miguel de Icaza  <miguel@novell.com>
2437
2438         * class.c (mono_class_get_exception_for_failure): Implement parts
2439         of a TODO: if the loader error is set (instead of the class
2440         error), we return a Loader exception that can be properly thrown
2441         elsewhere.
2442
2443         This was exposed by some Winforms 2.0 code that I tried to run
2444         (Atsushi pointed me to it).
2445
2446 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
2447
2448         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
2449         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
2450         
2451         * marshal.c (emit_marshal_vtype): Add limited support for 
2452         UnmanagedType.LPStruct. Fixes #78427.
2453
2454         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
2455         Applied a patch from kangaroo to fix #77523.
2456
2457 2006-05-17  Martin Baulig  <martin@ximian.com>
2458
2459         * threads.c
2460         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
2461         (debugger_thread_created): Removed.
2462         (debugger_thread_exited): Removed.
2463
2464 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
2465
2466         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2467
2468         * object-internals.h (MonoReflectionResource): Sync with managed version.
2469
2470 2006-05-12  Wade Berrier <wberrier@novell.com>
2471
2472         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
2473
2474 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
2475
2476         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
2477         functions try to allocate from the image mempool.
2478
2479 2006-05-12  Dick Porter  <dick@ximian.com>
2480
2481         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
2482
2483 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
2484
2485         * object.c: The FieldGetter and FieldSetter methods require the full
2486         name of the class, not only the name. Fixes bug #78277.
2487
2488 2006-05-11  Miguel de Icaza  <miguel@novell.com>
2489
2490         * loader.c (method_from_memberref): Do not pass the NULL klass to
2491         mono_loader_set_error_() methods.  Pass the non-NULL value
2492         (class). 
2493
2494 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
2497         (mono_assembly_close): Null out assembly->image->references after freeing it.
2498
2499         * image.c (mono_image_close): Free image->references.
2500         
2501         * reflection.c (mono_image_basic_init): Fix a small memory leak.
2502
2503 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2504
2505         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
2506         before checking if it's NULL (g_assert).
2507
2508 2006-05-10  Martin Baulig  <martin@ximian.com>
2509
2510         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
2511         I thought I already killed that two months ago, but now it somehow reappeared.
2512
2513 2006-05-10  Martin Baulig  <martin@ximian.com>
2514
2515         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
2516
2517 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
2518
2519         * reflection.c: Allocate memory for dynamically created methods in the image
2520         mempools.
2521
2522 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
2523
2524         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
2525         don't use the ad pointer before checking if it's NULL (g_assert).
2526
2527 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
2528
2529         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
2530         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
2531
2532         * marshal.c: Allocate all signatures from mempools.
2533
2534         * marshal.c: Allocate some more signatures from mempools.
2535
2536 2006-05-09  Miguel de Icaza  <miguel@novell.com>
2537
2538         * object.c (mono_load_remote_field): The code used to provide a
2539         temporary variable for returning results if the user did not
2540         provide a result pointer.  But our temporary variable was allocted
2541         on the satck.
2542
2543         Fix calling code to always pass a result area.   Coverity ID 103.
2544
2545 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
2546
2547         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
2548         value, not the old. Fixes #78312.
2549         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
2550
2551         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
2552         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
2553         per-image cache.
2554
2555         * assembly.c (mono_assembly_close): Free image->references.
2556
2557         * assembly.c (mono_assembly_names_equal): Fix a warning.
2558         (mono_assemblies_cleanup): Cleanup more global data.
2559
2560         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
2561
2562         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
2563         ptr_cache and image->modules.
2564
2565         * image.c (mono_image_init): Allocate array_cache lazily.
2566         
2567 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2568
2569         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
2570         behavior was changed recently and has bad side effects.
2571
2572 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
2573
2574         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
2575         
2576         * assembly.c (mono_assembly_close): Remove a debug printf.
2577
2578         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
2579
2580         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
2581         to also allow for temporary references between mono_image_open ()/close ().
2582
2583         * domain.c (get_runtimes_from_exe): Add a FIXME.        
2584
2585 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
2586
2587         * marshal.c: Fix support for dynamic methods.
2588
2589         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
2590
2591         * marshal.c (mono_marshal_cleanup): New cleanup function.
2592
2593         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
2594         image mempools.
2595
2596         * class.c (mono_class_init): Fix leaking class->nested_classes.
2597
2598         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
2599
2600         * image.c (mono_image_init): Initialize the new cashes.
2601
2602         * image.c (mono_image_close): Destroy the new cashes.
2603
2604         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
2605
2606         * mempool.c (mono_mempool_strdup): New helper function.
2607
2608         * class-internals.h: Add prototype for mono_loader_unlock ().
2609
2610         * domain.c (mono_jit_info_table_find): Fix a warning.
2611         (mono_debugger_check_runtime_version): Ditto.
2612
2613         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
2614         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
2615         functions to these modules.
2616
2617         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
2618         metadata modules.
2619         
2620         * marshal.c (mono_free_bstr): Fix a warning.
2621
2622         * assembly.c (mono_assembly_open_full): Fix another small leak.
2623
2624         * object.c: Fix some unload leaks in the remoting code.
2625
2626         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
2627         function.
2628
2629         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
2630
2631         * reflection.c: Fix some unload leaks in dynamic assemblies.
2632
2633 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
2634
2635         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
2636         * marshal.h: Add BSTR support on Win32
2637         * icall.c: Add BSTR icalls
2638         * metadata.h: Add BSTR enums
2639
2640 2006-04-28  Miguel de Icaza  <miguel@novell.com>
2641
2642         Work to catch the crash from #76795 and turn it into an
2643         exception.   As I stubbed out pieces of the VisualBasic support,
2644         I found a number of places where the code was failing and I added
2645         checks to those places. 
2646         
2647         * metadata.c (do_mono_metadata_parse_generic_class): Make this
2648         function return a status code.  If we fail to parse the signature
2649         from mono_metadata_parse_generic_inst, return FALSE.
2650
2651         * loader.c (mono_get_method_from_token): If we fail to load the
2652         method (mono_class_get) return NULL.   
2653
2654         * (method_from_memberref): Return NULL if we are unable to parse
2655         the method signature
2656
2657         (mono_loader_error_prepare_exception): Since we now use the
2658         loader_error flag internally to stop processing, and obtaining
2659         exceptions that might be thrown will walk this code path the
2660         proper way of going from a MonoLoaderError into a
2661         MonoException was convoluted.   This new routine encapsulates the
2662         process of turning the error into an exception and *clearing* the
2663         error afterwards.
2664         
2665 2006-04-27  Miguel de Icaza  <miguel@novell.com>
2666
2667         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
2668         with missing assemblies), and to cope with:
2669
2670                 * Missing fieldref from a non-existing assembly.
2671                 * Missing methodref from a non-existing assembly.
2672
2673         The first batch of work to address *some* of the issues from 76661.
2674         
2675         * object.c (mono_class_create_runtime_vtable): If we fail to
2676         initialize the class raise the exception here. 
2677
2678         * metadata.c (mono_class_get_overrides_full): If any methods fail
2679         to load return the failure to the caller.
2680
2681         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
2682         flagging assemblies that failed to load.   
2683
2684         Do not crash if we are unable to load the assembly.
2685
2686         (mono_assembly_close): Do nothing with REFERENCE_MISSING
2687         assemblies. 
2688
2689         * loader.c (mono_loader_set_error_type_load): Change the
2690         convention to always pass unallocated strings, so we make our own
2691         copies (I know our own code had duplicated strings before, but
2692         this keeps the normal conventions).
2693         (method_from_memberref): Call mono_loader_set_error_method_load
2694         for all possible failures of loading the class. 
2695         Remove assert, turn into a loader error.
2696
2697         (mono_loader_error_to_exception): Move this routine from mini
2698         (mini_loader_error_to_exception) there was no need to have that in
2699         mini. 
2700
2701         * class.c (mono_class_from_typeref): If we were not able to load
2702         the assembly with mono_assembly_load_reference, call the
2703         mono_loader_set_error_type_load to register the problem.
2704
2705         (mono_class_setup_fields): If we fail to load the type from
2706         mono_metadata_parse_type_full, call mono_class_set_failure and
2707         break from the loop.
2708
2709         If class->exception_type is set, we do not layout the fields as
2710         that might crash the runtime, and instead return (from breaking
2711         from the previous loop).
2712
2713         (mono_class_setup_vtable): This now returns a boolean indicating
2714         whether the table was properly setup.   The decision is driven by
2715         mono_class_get_overrides_full which might run into non-existing
2716         methods. 
2717         
2718         (mono_class_init): Returns TRUE on success or FALSE if there was a
2719         problem in loading the type (incorrect assemblies, missing
2720         assemblies, methods, etc).
2721
2722         When we call mono_class_setup_fields we also check for a potential
2723         error inside this call (either a class exception or a general
2724         loader exception).
2725
2726         (mono_class_create_from_typedef): If the parent fails to load
2727         (calling mono_class_get_full) return NULL.
2728         
2729         ** Important **
2730
2731         calls to mono_metadata_parse_type_full should be checked
2732         everywhere and set the mono_class_set_failure
2733         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
2734
2735         The current patch checks the places where my manually constructed
2736         tests show the errors are showing up, but we should do it
2737         everywhere. 
2738
2739         ** Important2 **
2740
2741         mono_class_init return values should be tested everywhere, like
2742         the previous case this is something that we should audit
2743         everywhere and not only on the cases exposed by the tests I
2744         created. 
2745
2746 2006-04-26  Miguel de Icaza  <miguel@novell.com>
2747
2748         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
2749         boolean parameter and instead pass the information on `options'
2750         parameter (FileOptions).
2751
2752         * icall.c: Register the new signature for MonoIO.Open.
2753
2754         * debug-helpers.c (dis_one): Trying to understand how coverity
2755         works.  Fix Run 5, item 78.
2756
2757 2006-04-26  Dick Porter  <dick@ximian.com>
2758
2759         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
2760         dereference.
2761
2762 2006-04-25  Martin Baulig  <martin@ximian.com>
2763
2764         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
2765
2766         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
2767         debugger_thread_created().
2768         (debugger_gc_push_all_stacks): Don't handle the main thread in any
2769         special way.
2770         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
2771         (mono_debugger_finalize_threads): New function; undo the effects
2772         of mono_debugger_init_threads().
2773         (mono_debugger_create_all_threads): Removed.
2774
2775 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
2776
2777         * image.c (mono_image_close): Tidy up trace messages.
2778
2779         * assembly.c (mono_assembly_close): Ditto.
2780
2781         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
2782         no longer references an already freed assembly. Fixes #78168.
2783
2784 2006-04-21  Dick Porter  <dick@ximian.com>
2785
2786         * threads.c (mono_thread_detach): Fix reference counting when
2787         detaching threads.
2788
2789 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
2790
2791         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
2792         #78155.
2793
2794 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
2795
2796         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
2797         (mono_type_to_stind): Ditto.
2798
2799         * marshal.c: Use the new helper functions to simplify code.
2800
2801         * image.c (mono_image_close): Add some code for help debug assembly unloading
2802         problems.
2803
2804         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
2805         image mempool.
2806
2807         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
2808         assembly was already loaded in another appdomain. Fixes #78083.
2809
2810 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
2811
2812         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
2813         referenced assemblies.
2814         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
2815
2816         * domain.c (mono_domain_free): Add a trace message.
2817
2818         * appdomain.c (add_assemblies_to_domain): Ditto.        
2819
2820         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
2821         field.  
2822
2823 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2824
2825         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
2826
2827 2006-04-12  Martin Baulig  <martin@ximian.com>
2828
2829         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
2830         `USE_INCLUDED_LIBGC'.   
2831
2832 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
2833
2834         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
2835         the patch contains ../ and a small directory name later. Hopefully fixes
2836         #78035.
2837
2838 2006-04-10  Martin Baulig  <martin@ximian.com>
2839
2840         Clean up the debugger's thread-handling code.
2841
2842         The debugger's thread-handling code has been moved from
2843         ../mini/debug-debugger.c to threads.c.  We now iterate directly
2844         over the `threads' hash, keep track of exiting threads and also
2845         use proper locking.
2846
2847         We can now debug XSP and XSP based applications with the debugger.
2848
2849         * object-internals.h (MonoThread): Added `gpointer end_stack'.
2850
2851         * threads.h
2852         (MonoThreadCallbacks): Removed; this was only used by the debugger.
2853         (mono_install_thread_callbacks): Likewise.      
2854
2855         * threads.c (mono_thread_callbacks): Removed.
2856         (debugger_thread_created, debugger_thread_exited): New static functions.
2857         (start_wrapper): Call debugger_thread_created().
2858         (thread_cleanup): Call debugger_thread_exited().
2859         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
2860         (mono_debugger_init_threads): New public function.
2861         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
2862         iterate directly over the `threads' hash and also use proper locking.
2863
2864         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
2865
2866         * mono-debug-debugger.h
2867         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
2868
2869 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
2870
2871         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
2872         argument type=array. Fixes #78057.
2873
2874 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
2875
2876         * culture-info-table.h : regenerated. Fixed bug #69652.
2877
2878 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
2879
2880         * loader.c metadata.c: Reapply a variant r59116.
2881         
2882         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
2883
2884         * class.c (mono_class_setup_interface_offsets): New internal function.
2885
2886         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
2887         interfaces too. Fixes #77398.
2888
2889         * reflection.c (encode_cattr_value): Add support for 
2890         parameter type=object, argument type=array.
2891         (load_cattr_value): Ditto. Fixes #77916.
2892
2893         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
2894         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
2895
2896         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
2897         a byval char array and CharSet is Ansi.
2898
2899         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
2900
2901 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
2902
2903         * metadata.c: Add some locking comments.
2904         
2905         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
2906         mempool.
2907         (mono_metadata_free_method_signature): Don't free the signature itself.
2908
2909         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
2910
2911         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
2912         reference the same MonoImage.
2913         (mono_assembly_load_from_full): Add an assert.
2914
2915 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
2916
2917         * image.c (mono_image_close): Don't put the image we are about to free into the
2918         loaded_images_guid_hash.
2919
2920         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
2921         to reduce code duplication.
2922
2923         * marshal.c: Register the native functions called by this module as icalls, to
2924         somewhat centralize the creation of MonoMethodSignature's.
2925
2926         * loader.c (mono_method_signature): Add a cache for method signatures.
2927
2928         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
2929         the parameter attributes of a method.
2930         (mono_metadata_parse_method_signature_full): Refactored the computation of
2931         parameter attributes into a separate function. Also avoid one allocation in
2932         most cases.
2933
2934         * assembly.c (mono_assembly_close): Ditto.
2935
2936         * image.c (mono_image_close): Log trace messages with INFO level.
2937
2938         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
2939
2940         * image.c reflection.c: Correct reference counting of image modules.
2941         
2942         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
2943         of this function from the image mempool.
2944         
2945         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
2946         to allow more cached types to be used.
2947
2948         * mono-debug.c (mono_debug_add_method): Appled patch from
2949         David S. Miller  <davem@sunset.davemloft.net>: Access 
2950         minfo->lexical_blocks[] entry elements using read32().
2951
2952 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
2953
2954         * loader.c (mono_free_method): No longer free the method header for non-dynamic
2955         methods as it is allocated from the mempool.
2956
2957         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
2958         image mempool.
2959
2960         * metadata-internals.h: Add comments describing the reference counting scheme
2961         used for MonoImage and MonoAssembly.
2962
2963         * image.c assembly.c reflection.c: Rework reference counting of images and 
2964         assemblies so they are freed when the runtime is shut down. Free some 
2965         additional memory structures when an image is unloaded.
2966         
2967 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
2968
2969         * class.c loader.c reflection.c: Allocate more data structures in
2970         the image mempool.
2971
2972 2006-03-31  Miguel de Icaza  <miguel@novell.com>
2973
2974         * icall.c
2975         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
2976         build on pre glib 2.4 systems.
2977
2978 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
2979
2980         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
2981
2982         * icall.c: Fix some warnings.
2983
2984 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
2985
2986         * culture-info-table.h : regenerated.
2987
2988 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
2989
2990         * threads.c, object-internals.h, verify.c: changed the culture caching
2991         code to use a normal MonoArray for storage so the GC can keep track of
2992         them easily. Fixed bits of the cache logic, too and simplified the
2993         code.
2994
2995 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
2996
2997         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
2998         thread for non-Boehm GCs.
2999
3000 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3001
3002         * domain.c, object.c, domain-internals.h: reduce the amount of memory
3003         needed to keep track of the data for static fields.
3004
3005 2006-03-29  Raja R Harinath  <rharinath@novell.com>
3006
3007         Fix #75172
3008         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
3009         for interface classes.  Use 'num_methods' instead.
3010         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
3011         before using '->vtable_size' field.
3012
3013 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
3014
3015         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
3016         doesn't contain managed pointers, so use a normal hashtable.
3017
3018 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
3019
3020         * reflection.c, class-internals.h, domain.c: fixed handling of types
3021         used as values for objects in custom attributes (bug #77915):
3022
3023 2006-03-24  Martin Baulig  <martin@ximian.com>
3024
3025         * class.c (mono_class_setup_fields): Added support for generic
3026         instances; fixes #77580.
3027
3028 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3029
3030         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
3031
3032 2006-03-24  Dick Porter  <dick@ximian.com>
3033
3034         * file-io.c (get_file_attributes): More stat macro breakage.
3035         Fixes bug 77759.
3036
3037 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
3038
3039         * profiler.c: added the file=filename option in the default profiler
3040         to output the profile data to filename.
3041
3042 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3043
3044         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
3045         bug #77877.
3046
3047 2006-03-22  Martin Baulig  <martin@ximian.com>
3048
3049         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
3050         allocated `MonoClassField *' in `fb->handle'.
3051
3052 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
3053
3054         * class.c, image.c, metadata-internals.h: implemented new mechanism to
3055         allocate interface ID to save memory and allow better ID reuse on
3056         appdomain unload. setup_generic_vtable () removal from Martin.
3057
3058 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3059
3060         * object.h, appdomain.c, domain.c, exception.c, icall.c,
3061         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
3062         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
3063         write barriers for reference stores with managed objects accessed with
3064         C structures in the runtime and in embedding programs.
3065
3066 2006-03-20  Raja R Harinath  <rharinath@novell.com>
3067
3068         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
3069         'interface_id' and 'max_interface_id' fields of MonoClasses
3070         representing open generic types.
3071
3072 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
3073
3074         * object.h, object.c, icall.c: added functions to deal with
3075         storing valuetypes that contain references in managed objects.
3076         * reflection.c, string-icalls.c, threads.c, marshal.c: small
3077         fixes and comments around uses of mono_array_addr ().
3078
3079 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
3080
3081         * object.h, icall.c, monitor.c: object.GetHashCode ()
3082         implementation that supports the moving garbage collector.
3083
3084 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
3085
3086         * icall.c, threads-types.h, threads.c: implemented finalizer for
3087         LocalDataStoreSlot.
3088
3089 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
3090
3091         * metadata.c (mono_type_size): Add a fixme.
3092         (mono_type_stack_size): Ditto.
3093
3094         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
3095         'type_forwarders' field.
3096
3097         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
3098         attribute from net 2.0.
3099
3100         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
3101         from class.c.
3102
3103         * class.c (mono_class_setup_fields): Fix a warning.
3104         
3105         * class.c (mono_class_from_name): Add support for assemblyref entries
3106         in the EXPORTEDTYPE table.
3107
3108         * reflection.c: Add support for handling type forwarders under net 2.0.
3109
3110         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
3111         
3112 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
3113
3114         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
3115         overwriting entries in ModuleBuild->types, also clean up the code
3116         a little. Fixes #77774.
3117
3118 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
3119
3120         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
3121         load friend assembly info when present.
3122
3123 2006-03-14  Raja R Harinath  <rharinath@novell.com>
3124
3125         Fix crasher on gtest-158.cs.
3126         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
3127         the return value if the MonoClass we want is yet in an
3128         inconsistent state.
3129         * class.c (mono_class_create_from_typedef): Add an comment
3130         explaining an order dependency between mono_class_setup_parent and
3131         mono_class_setup_mono_type.
3132
3133 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
3134
3135         * class.c: documentation updates and events bug fix.
3136
3137 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
3138
3139         * class.c: some cleanup, locking fixes.
3140
3141 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
3142
3143         * class.c: fix the generics code to setup nested
3144         type info to the instantiated type (bug #77770).
3145
3146 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
3147
3148         * marshal.c: fixed a few type correctness issues.
3149
3150 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3151
3152         * loader.c: the Set/Get/Addrtess array methods should be public.
3153
3154 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
3155
3156         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
3157         
3158         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
3159         info->wrapper.
3160
3161 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
3162
3163         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
3164
3165         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
3166
3167         * mempool.c (mono_mempool_alloc): Speed this up a bit.
3168         (mono_mempool_alloc0): Ditto.
3169
3170 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3171
3172         * socket-io.c:
3173         (create_object_from_sockaddr): it was allocating 4 extra bytes
3174         for the AF_UNIX data. Fixes bug #77747.
3175
3176 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
3177
3178         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
3179
3180 2006-03-09  Dick Porter  <dick@ximian.com>
3181
3182         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
3183         Fixes bug 76966 again.
3184
3185 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
3186
3187         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
3188         names from r57532
3189         * appdomain.c: Bumped corlib version to 48 (due to r57532)
3190
3191 2006-03-07  Martin Baulig  <martin@ximian.com>
3192
3193         * object.c
3194         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
3195
3196 2006-03-07  Martin Baulig  <martin@ximian.com>
3197
3198         * class.c
3199         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
3200         regression introduced in r56970; see gtest-252.cs.
3201
3202         * loader.c (mono_get_method_constrained): Correctly handle generic
3203         methods; see gtest-253.cs.
3204
3205 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
3206
3207         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
3208
3209 2006-03-04  Martin Baulig  <martin@ximian.com>
3210
3211         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
3212         compute the parent type at runtime, just like we're already doing
3213         it for interfaces.
3214
3215         * reflection.c
3216         (mono_reflection_bind_generic_parameters): Don't compute the
3217         parent type anymore.
3218
3219         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
3220
3221 2006-03-04  Martin Baulig  <martin@ximian.com>
3222
3223         * mono-debug-debugger.h
3224         (mono_debugger_create_notification_function): Allocate memory at
3225         runtime and return a pointer to it.
3226
3227 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
3228
3229         * assembly.c: Fix windows build.
3230         
3231         * assembly.c: Fix build.
3232
3233         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
3234
3235         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
3236         
3237 2006-03-03  Dick Porter  <dick@ximian.com>
3238
3239         * process.c
3240         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
3241         Check parameters before dereferencing them.  Fixes Aaron's part of
3242         bug 77393.
3243
3244 2006-03-03  Raja R Harinath  <rharinath@novell.com>
3245
3246         Fix performance regression.
3247         * loader.c (find_method_in_class): Add 'from_class' argument.
3248         Rename 'klass' argument to 'in_class'.  The signature is compared
3249         against the method in 'in_class', and the corresponding method is
3250         returned from 'from_class'.
3251         (find_method): Walk both 'in_class' and 'from_class' in parallel.
3252         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
3253         type definition and generic instantiation in parallel.
3254         (mono_get_method_constrained): Update to changes.
3255
3256 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
3257
3258         * threads.c: make sure the domain is correct, too when doing
3259         mono_thread_attach ().
3260
3261 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
3262
3263         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
3264         windows. Fixes #77683.
3265
3266 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
3267
3268         * object.h, *: introduced specific way to set elements of an array
3269         of references to be used as write barrier. Still need to audit the
3270         uses of mono_array_addr.
3271
3272 2006-03-01  Miguel de Icaza  <miguel@novell.com>
3273
3274         * object-internals.h: New field to cache the assmebly name, patch
3275         from Tambet Ingo (tambet@ximian.com)
3276
3277 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
3278
3279         * decimal.h, class-internals.h, metadata-internals.h,
3280         file-io.h: mark a few function declarations as internal, to
3281         reduce the number of PLT entries.
3282
3283 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3284
3285         * file-io.c: fix typo in warning message.
3286
3287 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
3288
3289         * loader.c: on unix, lookup the "*A" version of a function
3290         if charset is auto as a second option before failing.
3291
3292 2006-02-28  Raja R Harinath  <rharinath@novell.com>
3293
3294         * class.h (mono_class_inflate_generic_method): Revert to two
3295         argument version.
3296         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
3297         (mono_class_inflate_generic_method_full): Add.
3298         * class.c (mono_class_inflate_generic_method_full): Rename from
3299         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
3300         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
3301         * loader.c, reflection.c: Update to changes.
3302
3303 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
3304
3305         * icall.c: const fixes and small improvements.
3306
3307 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3308
3309         * threadpool.c: for asynchronous connect(), enable the same workaround
3310         for BSD 6 as for the Mac. Fixes bug #77637.
3311
3312 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
3313
3314         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
3315         formatted classes. Fixes #77524.
3316
3317 2006-02-24  Raja R Harinath  <rharinath@novell.com>
3318
3319         * class.c (inflate_generic_type): Add a couple more
3320         micro-optimizations.
3321         (inflate_generic_context): Don't use the 'gmethod' from
3322         'inflate_with'.
3323         (mono_class_inflate_generic_method): If the method has generic
3324         parameters, but the passed-in context doesn't have a 'gmethod',
3325         create one.  Use the possibly simplified generic instantiation
3326         from the declaring class instead of the one passed in.
3327
3328 2006-02-24  Raja R Harinath  <harinath@gmail.com>
3329
3330         Make generic method signature and method header handling lazy.
3331         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
3332         (inflate_generic_header): Likewise.
3333         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
3334         parameter to avoid inflating types.
3335         (mono_get_inflated_method): Empty out.
3336         * class.h (mono_class_inflate_generic_method): Update to changes.
3337         * loader.c (mono_get_method_from_token): Don't parse signature for
3338         generic methods, nor methods of generic classes.
3339         (mono_method_signature): Rename from 'mono_method_signature'.
3340         Inflate signature on demand.
3341         (mono_method_get_header): Inflate method header on demand.
3342         * reflection.c: Update to changes.
3343
3344 2006-02-23  Raja R Harinath  <rharinath@novell.com>
3345
3346         * metadata.c (mono_metadata_inflate_generic_inst): If the
3347         instantiation is closed, don't bother expanding it in the new
3348         context.
3349         * class.c (inflate_generic_class): If the generic instantiation
3350         doesn't change after inflation, return the argument itself.
3351         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
3352         Add bounds checks.
3353         (inflate_generic_context): If neither the generic class nor the
3354         generic method instantiations change, return the original context.
3355         * reflection.c (mono_method_get_object): Do
3356         'mono_get_inflated_method' before accessing the ->klass field.
3357         (inflate_mono_method): Don't create a MonoGenericMethod unless
3358         necessary.
3359         (inflate_method): Don't pass a constructed type as the declaring
3360         type of a methodbuilder.
3361
3362 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
3363
3364         * object.c: fix memory overwrite.
3365
3366 2006-02-22  Dick Porter  <dick@ximian.com>
3367
3368         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
3369         it doesn't work any more.
3370         (mono_threads_request_thread_dump): Fix unused variable warnings.
3371
3372 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
3373
3374         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
3375         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
3376         the public header file.
3377
3378 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
3379
3380         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
3381
3382 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
3383
3384         * class-internals.h, object.c: reduce the size of MonoVTable
3385         and store the interface_offsets array at negative offsets.
3386
3387 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
3388
3389         * metadata.c: tweak table descriptors data structures to reduce
3390         size and runtime relocations.
3391
3392 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3393
3394         * marshal.c: fix some types and opcodes to be type-safe
3395         in marshaling wrappers.
3396
3397 2006-02-21  Ankit Jain  <jankit@novell.com>
3398
3399         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
3400
3401 2006-02-21  Raja R Harinath  <rharinath@novell.com>
3402
3403         * metadata.c (get_constraints): Relax debugging checks for monodis.
3404
3405 2006-02-21  Ankit Jain  <jankit@novell.com>
3406
3407         * metadata.c (mono_metadata_load_generic_params): Move the code
3408         checking for ambiguous generic params from here to mono/dis/get.c
3409         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
3410
3411 2006-02-21  Raja R Harinath  <harinath@gmail.com>
3412
3413         Fix assertion triggered when compiling nemerle.
3414         * class.c (mono_get_shared_generic_inst): Rename from
3415         get_shared_inst and make non-static.
3416         * loader.c (mono_get_shared_generic_method): New.  Used to create
3417         the MonoGenericContext-equivalent of a MonoGenericContainer.
3418         (mono_get_method_from_token): Initialize the 'context' field of
3419         the created MonoGenericContainer.
3420         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
3421         * metadata.c (get_constraints): Add sanity check.
3422         * class-internals.h: Add new internal methods.
3423
3424         * reflection.c (verify_safe_for_managed_space): New sanity check.
3425         Currently checks that owner-less generic parameters aren't allowed
3426         in managed space.
3427         (mono_type_get_object): Use it.
3428         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
3429         that are now in mono_type_get_object.
3430         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
3431
3432 2006-02-19  Raja R Harinath  <harinath@gmail.com>
3433
3434         * metadata.c (mono_type_create_from_typespec): Rename from
3435         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
3436         argument and caching of types in the generic container.
3437         (unwrap_arrays, find_generic_param): Remove.
3438         * metadata-internals.h: Update.
3439         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
3440
3441 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
3442
3443         * class.c (mono_class_get_exception_for_failure): Fix a warning.
3444
3445         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
3446         return values. Fixes #77581.
3447
3448         * class.c (mono_fnptr_class_get): Switch name and name_space.
3449
3450         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
3451         classes and add support for [In, Out] attributes.
3452         (mono_marshal_free_asany): Ditto. Fixes #77524.
3453
3454 2006-02-18  Raja R Harinath  <harinath@gmail.com>
3455
3456         * class.c (mono_class_from_generic_parameter): Make more robust to
3457         incomplete MonoGenericContainers from monodis.
3458
3459 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3460
3461         * class-internals.h: added some more exception types.
3462         * class.c, metadata.c: added a few checks to handle missing
3463         types.
3464
3465 2006-02-17  Raja R Harinath  <rharinath@novell.com>
3466
3467         Use owner-less generic-params some more.
3468         * class.c (my_mono_class_from_generic_parameter): Remove.
3469         (mono_class_from_generic_parameter): Handle null image,
3470         param->name and param->owner.
3471         (mono_class_from_mono_type): Update.
3472         (mono_class_create_from_typespec): Remove 'container' parameter.
3473         If that parameter is non-null, the result is always inflated by
3474         'mono_class_get_full' anyway.
3475         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
3476         parameter.
3477         (mono_class_get_full): Update.
3478
3479         * class.c (inflate_generic_type) [GENERICINST]: If the generic
3480         instance is not open, don't bother inflating.
3481         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
3482         parse metadata for inflated classes.
3483         (_mono_class_get): Change GenericContext* parameter to
3484         GenericContainer*.
3485         (mono_class_create_from_typespec): Likewise.  Simplify, and
3486         implement trivially.  All the cases are handled in
3487         mono_class_from_mono_type.  Don't inflate returned class.
3488         (mono_class_get_full): Delegate GENERICINST optimization to
3489         inflate_generic_type.
3490         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
3491
3492 2006-02-16  Dick Porter  <dick@ximian.com>
3493
3494         * socket-io.c (create_object_from_sockaddr): Fix typo.
3495         (create_sockaddr_from_object): Check array lengths before
3496         potentially accessing items off the end.
3497         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
3498         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
3499         (ves_icall_System_Net_Sockets_Socket_Send_internal)
3500         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
3501         length checks to avoid wraparound overflows.
3502         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
3503         contents of the array of sockets
3504         (hostent_to_IPHostEntry2)
3505         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
3506         Check return value of inet_ntop ().
3507         (addrinfo_to_IPHostEntry): Fix typo
3508
3509 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3510
3511         Type metadata parsing doesn't use generic-instantiation information.
3512         * metadata.c (mono_metadata_parse_array_full): Change
3513         MonoGenericContext* parameter to MonoGenericContainer*.
3514         (mono_metadata_parse_type_full): Likewise.
3515         (mono_type_create_from_typespec_full): Likewise.
3516         (mono_metadata_parse_mh_full): Likewise.
3517         (mono_metadata_parse_generic_inst): Likewise.
3518         (do_mono_metadata_parse_generic_class): Likewise.
3519         (do_mono_metadata_parse_type): Likewise.
3520         * metadata-internals.h: Update to changes.
3521         * class.c (mono_class_find_enum_basetype): Likewise.
3522         (mono_class_setup_fields): Likewise.
3523         (mono_class_create_from_typespec): Likewise.
3524         * loader.c (method_from_methodspec): Likewise.
3525         (mono_get_method_from_token): Likewise.
3526         (mono_method_get_header): Likewise.
3527
3528 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3529
3530         * marshal.c: handle additional GENERICINST case (patch from
3531         Thong Nguyen <tum@veridicus.com>).
3532         Fix a few cases where LDIND_I/STIND_I was used for references.
3533
3534 2006-02-16  Raja R Harinath  <rharinath@novell.com>
3535
3536         * reflection.c (mono_reflection_get_token): Remove unused variable.
3537
3538 2006-02-16  Martin Baulig  <martin@ximian.com>
3539
3540         * reflection.c (mono_reflection_get_token): Add support for fields
3541         in instantiated generic types.
3542
3543         * icall.c
3544         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
3545
3546 2006-02-15  Martin Baulig  <martin@ximian.com>
3547
3548         * icall.c
3549         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
3550         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
3551         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
3552         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
3553
3554 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3555
3556         * class.c, metadata.c, metadata.h, object.c, icall.c,
3557         marshal.c: changed mono_type_get_underlying_type () to do
3558         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
3559         Fixed handling of instantiated generic valuetypes (bug #75479).
3560
3561 2006-02-15  Raja R Harinath  <rharinath@novell.com>
3562
3563         * metadata.c (mono_metadata_decode_signed_value): Simplify.
3564         Delegate to mono_metadata_decode_value, and work on the returned value.
3565
3566         * icall.c (ves_icall_MonoType_GetGenericArguments):
3567         Add consistency check here too.
3568         
3569 2006-02-15  Ankit Jain  <jankit@novell.com>
3570
3571         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
3572         char/short etc.
3573
3574 2006-02-15  Ankit Jain  <jankit@novell.com>
3575
3576         * metadata.c (mono_metadata_decode_signed_value): New function to decode
3577         signed values, used only for representing lower bounds of arrays.
3578         (mono_metadata_parse_array_full): Use new
3579         mono_metadata_decode_signed_value to decode lower bounds.
3580
3581 2006-02-14  Martin Baulig  <martin@ximian.com>
3582
3583         * reflection.c
3584         (mono_reflection_get_token): Support "MonoGenericMethod" and
3585         "MonoGenericCMethod" and allow generic instances / methods.
3586
3587 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
3588
3589         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
3590         to obtain the terminal size using an ioctl.
3591
3592         * object.c (mono_nullable_init): Revert this as nullable reference
3593         types are not valid.
3594         (mono_nullable_box): Ditto.
3595
3596 2006-02-09  Dick Porter  <dick@ximian.com>
3597
3598         * threads.c (mono_thread_detach): Drop a reference to the thread
3599         we're detaching.
3600
3601 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
3602
3603         * object.c (mono_nullable_init): Handle nullable reference types.
3604         (mono_nullable_box): Ditto. Fixes #77446.
3605
3606 2006-02-07  Martin Baulig  <martin@ximian.com>
3607
3608         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
3609
3610 2006-02-07  Ankit Jain  <jankit@novell.com>
3611
3612         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
3613         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
3614         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
3615         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
3616         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
3617         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
3618
3619 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
3620
3621         * class.c (mono_class_create_generic): Set type_token as well.
3622
3623         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
3624         compatible with MS.
3625
3626 2006-02-02  Martin Baulig  <martin@ximian.com>
3627
3628         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
3629         has never been used so far.
3630
3631 2006-02-02  Martin Baulig  <martin@ximian.com>
3632
3633         * mono-debug-debugger.h: Changed comment at the top of this file;
3634         the header is not installed, but it's safe to #include it from
3635         within the JIT.
3636
3637         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
3638         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
3639
3640 2006-02-02  Martin Baulig  <martin@ximian.com>
3641
3642         * mono-debug.h
3643         (MonoSymbolTable): Removed the `metadata_info' field.
3644
3645         * mono-debug.c
3646         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
3647
3648         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3649         (mono_debugger_add_builtin_types): Removed.
3650         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
3651         (mono_debugger_create_notification_function): We now operate on a
3652         pre-allocated area; take a `gpointer' and return `void'.
3653
3654         * mono-debug-debugger.c
3655         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
3656         (mono_debugger_add_builtin_types): Removed.
3657
3658 2006-02-02  Martin Baulig  <martin@ximian.com>
3659
3660         * threads.c (mono_debugger_create_all_threads): New public method.
3661
3662 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
3663
3664         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
3665         breaks on several platforms.
3666
3667 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
3668
3669         * assembly.c: the VS.NET build doesn't supply default values for
3670         MONO_ASSEMBLIES and MONO_CFG_DIR.
3671
3672 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
3673
3674         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
3675         helper function.
3676
3677         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
3678
3679         * loader.c (method_from_memberref): Fix a warning.
3680
3681         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
3682
3683         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
3684         with explicit layout. Fixes #77433.
3685
3686 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
3687
3688         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
3689         max_interface_id is initialized before using it. Fixes #77398.
3690         (ves_icall_Type_GetInterfaces): Ditto.
3691
3692 2006-01-30  Raja R Harinath  <rharinath@novell.com>
3693
3694         * metadata.c (mono_metadata_parse_method_signature_full): Don't
3695         allocate memory for parameter attributes when parsing memberref
3696         signatures.
3697         * loader.c (mono_loader_set_error_method_load): Don't warn.
3698         (method_from_memberref): Ensure MissingMethodException gets thrown
3699         if method is not found.  Make warning more informative.
3700
3701 2006-01-29  Raja R Harinath  <harinath@gmail.com>
3702
3703         Fix #77397
3704         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
3705         return true if is byref.
3706         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3707         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
3708         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3709
3710 2006-01-27  Raja R Harinath  <rharinath@novell.com>
3711
3712         Fix tests/find-method.2.il
3713         * loader.c (find_method, find_method_in_class): Remove is_inflated
3714         argument.  Revert 2006-01-18 change.
3715         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
3716         is generic, search for method in its generic definition.
3717         * class.c (mono_class_setup_vtable_general): Print generic
3718         arguments of generic types in debugging printf.
3719
3720 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
3721
3722         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
3723
3724         * threads.c (mono_threads_request_thread_dump): New helper function.
3725
3726 2006-01-25  Raja R Harinath  <rharinath@novell.com>
3727
3728         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
3729
3730 2006-01-25  Ankit Jain  <jankit@novell.com>
3731
3732         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
3733         move definition to ..
3734         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
3735         
3736 2006-01-25  Ankit Jain  <jankit@novell.com>
3737             Raja R Harinath  <rharinath@novell.com>
3738
3739         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
3740         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
3741         as necessary.
3742
3743 2006-01-25  Martin Baulig  <martin@ximian.com>
3744
3745         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
3746         `MonoDebuggerThread' into debug-debugger.c.
3747
3748 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
3749
3750         * profiler.c: fix printing of data.
3751
3752 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
3753
3754         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
3755           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
3756
3757 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
3758
3759         * object.c: fix deadlock related to string interning.
3760
3761 2006-01-23  Martin Baulig  <martin@ximian.com>
3762
3763         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
3764
3765         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
3766
3767 2006-01-23  Martin Baulig  <martin@ximian.com>
3768
3769         * mono-debug.h: Moved the prototypes of some functions which are
3770         used by the JIT here from mono-debug-debugger.h.
3771
3772 2006-01-21  Martin Baulig  <martin@ximian.com>
3773
3774         * Makefile.am: Don't install mono-debug-debugger.h.
3775
3776 2006-01-21  Martin Baulig  <martin@ximian.com>
3777
3778         * mono-debug-debugger.h: Enforce the private status of this header
3779         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
3780         Moved some stuff from mono-debugger-jit-wrapper.h here.
3781
3782 2006-01-20  Raja R Harinath  <rharinath@novell.com>
3783
3784         * class.c (mono_class_from_typeref): Add a sanity test to help
3785         catch lack of assembly load/search hooks.
3786
3787 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
3788
3789         * marshal.c (emit_struct_conv): Relax the fields with same offset
3790         check even more. Fixes #77230.
3791
3792 2006-01-18  Martin Baulig  <martin@ximian.com>
3793
3794         * loader.c (find_method_in_class): Added `gboolean is_inflated'
3795         argument; if false, we compare the uninstantiated signatures.
3796         (method_from_memberref): Compare the uninstantiated signatures;
3797         fixes #76417.
3798
3799 2006-01-18  Robert Jordan  <robertj@gmx.net>
3800
3801         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
3802         Clear the weak link. Fixes bug #77170.
3803
3804         * gc.c (mono_gchandle_free):
3805         Reflect *-gc.c changes (tiny optimization).
3806
3807 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
3808
3809         * metadata.c (mono_metadata_signature_dup): Applied patch from
3810         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
3811         Fixes #77288.
3812
3813 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
3814
3815         * marshal.c (emit_struct_conv): Allow fields with the same offset when
3816         marshalling from native to managed code. Fixes #77230.
3817
3818 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3819
3820         * threadpool.c: fix problem (Mac only) when more than one asynchronous
3821         connect. Fixes bug #77020.
3822
3823 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3824
3825         * class.c: fixed id assignement for nested interfaces (bug #77275).
3826         Added also better info for --print-vtable debugging.
3827
3828 2006-01-12  Martin Baulig  <martin@ximian.com>
3829
3830         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
3831         interfaces on-the-fly; fixes #76625.
3832
3833         * class-internals.h
3834         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
3835         don't need that anymore.
3836
3837 2006-01-12  Miguel de Icaza  <miguel@novell.com>
3838
3839         * socket-io.c
3840         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
3841         To avoid initing the nested_classes when not needed I turned the
3842         PeerCredData as a toplevel internal class, as it has to be shared
3843         anyways. 
3844
3845         Fixes the CASA issue.
3846
3847 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
3848
3849         * domain.c: Accessors for MonoJitInfo
3850
3851         * profiler-private.h: Add jitinfo to the end jit hook
3852
3853         * profiler.[ch]: Define new hooks, called after jitting which give
3854         the MonoJitInfo that was compiled
3855
3856 2006-01-10  Martin Baulig  <martin@ximian.com>
3857
3858         * class.c (mono_class_setup_events): Add support for generic
3859         classes; fixes #76440.
3860
3861 2006-01-06  Raja R Harinath  <rharinath@novell.com>
3862
3863         Fix #77160.
3864         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
3865         on passed-in method.
3866
3867 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3868
3869         * object.c (mono_runtime_invoke_array): Add Nullable support.
3870
3871         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
3872
3873 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
3874
3875         * file-io.c: Don't consider sockets as directory and avoid an endless
3876         loop. Fix bug #76966.
3877
3878 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
3879
3880         * object.c (mono_nullable_init): New helper function.
3881         (mono_nullable_box): Ditto.
3882
3883         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
3884
3885         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
3886
3887         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
3888         
3889 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
3890
3891         * class.c (mono_class_is_assignable_from): Make T assignable to 
3892         Nullable<T>.
3893
3894 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
3895
3896         * appdomain.c: Bump corlib version to 46.
3897         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
3898         serialization purpose) and changed ves_icall_System_Reflection_
3899         Assembly_get_code_base signature to accept a boolean (to escape, or 
3900         not, the assembly code base).
3901
3902 2005-12-23  Dick Porter  <dick@ximian.com>
3903
3904         * icall.c: 
3905         * threads-types.h: 
3906         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
3907         CreateEvent icall now returns "created" boolean parameter.
3908
3909 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
3910
3911         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
3912         #76967.
3913
3914         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
3915         when attr_klass is an interface. Fixes #77045.
3916
3917 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
3918
3919         * marshal.c (emit_struct_conv): Fix previous patch.
3920         
3921         * marshal.c (emit_struct_conv): Add a check for fields with the same
3922         offset.
3923
3924 2005-12-20  Raja R Harinath  <rharinath@novell.com>
3925
3926         Fix regression in Mono.C5.
3927         * class.c (mono_class_create_generic): If 'klass' is an interface
3928         set up the interface offsets.
3929         (mono_class_is_assignable_from): Don't throw away generic arguments.
3930
3931 2005-12-19  Raja R Harinath  <rharinath@novell.com>
3932
3933         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
3934         type parameters.
3935
3936 2005-12-15  Raja R Harinath  <rharinath@novell.com>
3937
3938         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
3939         dead store.
3940         (do_mono_metadata_parse_generic_class): Don't pass the current
3941         generic context when parsing the type being instantiated: it
3942         cannot use it, anyway.
3943
3944         * loader.c (method_from_memberref): Don't inflate a signature if
3945         it doesn't contain any type parameters.
3946
3947 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
3948
3949         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
3950
3951 2005-12-14  Martin Baulig  <martin@ximian.com>
3952
3953         * class.c
3954         (mono_type_get_name_recurse): Don't return null for type
3955         parameters and open generic classes.
3956         (mono_class_setup_methods): Don't exclude generic instances.
3957         (mono_get_unique_iid): Use different IDs for different
3958         instantiations of the same generic type.
3959         (mono_class_setup_vtable): Only use setup_generic_vtable() for
3960         open generic instances; create a normal vtable for closed generic
3961         instances.
3962         (mono_class_setup_vtable_general): We're now also called for
3963         closed generic instances.
3964
3965         * reflection.c
3966         (mono_reflection_bind_generic_parameters): Correctly use
3967         mono_metadata_lookup_generic_inst() everywhere.
3968
3969 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
3970
3971         * object.c (mono_class_create_runtime_vtable): Call 
3972         mono_class_setup_vtable ().
3973
3974         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
3975         function.
3976         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
3977         #76959.
3978
3979         * loader.c (mono_loader_set_error_type_load): Print the type load
3980         warnings to the console so they are more visible to the user.
3981         (mono_loader_set_error_method_load): Ditto.
3982
3983         * reflection.c (ensure_runtime_vtable): Revert the last change as it
3984         is still broken.
3985         
3986         * reflection.c (ensure_runtime_vtable): Fix build.
3987
3988         * reflection.c (ensure_runtime_vtable): Disable an optimization which
3989         doesn't work in all cases.
3990
3991 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
3992
3993         * object.c (mono_array_new_full): Treat a single dimensional array
3994         with 0 lower bounds as an szarray. Fixes #76973.
3995
3996         * reflection.c (custom_attr_visible): Really fix this.
3997
3998 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
3999
4000         * reflection.c (custom_attr_visible): Allow nested public attributes
4001         as well.
4002
4003         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
4004         interface check.
4005
4006 2005-12-12  Raja R Harinath  <harinath@gmail.com>
4007
4008         * class.c (set_generic_param_owner): Delete.
4009         (mono_class_create_from_typedef): Don't set ->owner field of
4010         generic parameters to "param containers" of enclosing classes.
4011         * reflection.c (mono_reflection_initialize_generic_parameter):
4012         Likewise.
4013
4014 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
4015
4016         * reflection.c (custom_attr_visible): Fix build.
4017
4018 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
4019
4020         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
4021         private attributes.
4022         
4023         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
4024         handling of null parameter defaults.
4025
4026 2005-12-09  Raja R Harinath  <rharinath@novell.com>
4027
4028         * class.c (mono_class_from_generic_parameter): Don't set
4029         klass->generic_container.
4030         (my_mono_class_from_generic_parameter): Likewise.
4031
4032 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
4033
4034         * reflection.c (load_public_key): Fix a warning.
4035         (method_encode_code): Fix unaligned accesses.
4036
4037 2005-12-07  Martin Baulig  <martin@ximian.com>
4038
4039         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
4040
4041         * reflection.c
4042         (write_generic_param_entry): Encode our custom attrs.
4043
4044         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
4045
4046 2005-12-07  Martin Baulig  <martin@ximian.com>
4047
4048         * reflection.c (encode_new_constraint): Removed; we don't use the
4049         `NewConstraintAttribute' anymore.
4050
4051 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
4052
4053         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
4054         not fire a TypeResolve event when Assembly.GetType () is called.
4055
4056 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
4057
4058         Beginning of support for nullable types in the runtime. Parts of
4059         this patch are from Martin.
4060
4061         * appdomain.c (MONO_CORLIB_VERSION): Bump
4062
4063         * domain.c (mono_init_internal): get the nullable type
4064
4065         * class.c (mono_class_is_nullable): New method
4066         (mono_class_get_nullable_param): New mehod
4067         (mono_class_create_generic): In types T? set cast_class to T
4068
4069         * class-internals.h (MonoDefaults): new nullable default class
4070         (mono_class_get_nullable_param, mono_class_get_nullable_param):
4071         new methods.
4072
4073 2005-12-05  Raja R Harinath  <rharinath@novell.com>
4074
4075         * metadata.c (select_container): New.  Refactor code to select the
4076         appropriate GenericContainer given the type of generic parameter
4077         we are looking for.
4078         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
4079         not a MonoGenericContext.  Use select_container.  Update parameters.
4080         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
4081         and MONO_TYPE_MVAR.
4082         (unwrap_arrays): Remove duplicate tests.
4083         (find_generic_param): Rename from 'has_same_context'.  Now walks a
4084         generic instantiated class to find any arguments that are generic
4085         parameters.
4086         (mono_type_create_from_typespec_full): Use find_generic_param to
4087         avoid evicting some generic instantiations from the typespec
4088         cache.
4089
4090 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
4091
4092         * reflection.c: fixed writing of doubles on ARM FPA.
4093
4094 2005-12-02  Robert Jordan  <robertj@gmx.net>
4095
4096         * icall.c: Fixed EventInfo.ReflectedType (#76829).
4097
4098 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4099
4100         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
4101         least on SUSE 10 they are not the same (on debian, they are just the
4102         same thing).
4103
4104 2005-12-01  Raja R Harinath  <rharinath@novell.com>
4105
4106         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
4107         DeclaringType for VARs and MVARs.
4108         * class.c (set_generic_param_owner): Fix initialization of owner
4109         fields.
4110
4111 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
4112
4113         * icall.c: fixed Enum.ToObject() to correctly convert the values.
4114
4115 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4116
4117         * threadpool.c: workaround for a bug that shows up on the Mac:
4118         select()+connect() on a blocking socket is not like it should
4119         be, so we proceed to connect() in that case, wasting the I/O
4120         threadpool thread until connect succeedes. Fixes bug #75436.
4121
4122 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4123
4124         * threadpool.c: fix typo when setting file descriptor states.
4125
4126 2005-11-28  Raja R Harinath  <rharinath@novell.com>
4127
4128         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
4129         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4130         create a temporary signature container.
4131         (mono_metadata_parse_generic_param): Update to changes.
4132         (mono_type_create_from_typespec_full): Update to changes.
4133         * loader.c (method_from_memberref): Don't use a
4134         MonoGenericContainer while parsing a memberref signature.
4135         (method_from_methodspec): Remove dead-store of the 'container'
4136         variable.  It's overwritten before use.
4137
4138         * metadata.c (mono_type_create_from_typespec_full): Make debugging
4139         checks tighter.
4140         (mono_metadata_parse_generic_param): Likewise.
4141         * loader.c (find_method_in_class): Does not need a
4142         MonoGenericContainer.  Use 'mono_method_signature' rather than
4143         'mono_method_signature_full'.
4144         (find_method, mono_get_method_constrained, method_from_memberref):
4145         Update to changes.
4146
4147         * metadata.c (mono_type_create_from_typespec_full): Ensure that
4148         owner-less generic-parameters are never evicted from the typespec
4149         cache.
4150
4151         * loader.c (method_from_memberref): Don't use the current context
4152         when parsing signatures.
4153         (method_from_methodspec, mono_get_method_from_token): Update to changes.
4154
4155         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
4156         side-effects in g_assert.
4157         * loader.c (mono_get_method_from_token): Resolve klass earlier so
4158         that we don't potentially lose information.
4159
4160 2005-11-26  Dick Porter  <dick@ximian.com>
4161
4162         * icall.c:
4163         * threads.c: icalls to implement basic (ie, not named)
4164         System.Threading.Semaphore.
4165
4166 2005-11-24  Dick Porter  <dick@ximian.com>
4167
4168         * process.c
4169         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4170         Use GetProcessId() if it's available.
4171
4172 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
4173
4174         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
4175
4176 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4177             Ankit Jain  <jankit@novell.com>
4178
4179         * loader.c (mono_get_method_from_token): Initialize 'method' field
4180         of all generic parameters before parsing the signature.  Remove
4181         code that "fixed"-up MVAR references.
4182
4183 2005-11-23  Ankit Jain  <jankit@novell.com>
4184
4185         * metadata.c (mono_metadata_has_generic_params):
4186         (mono_metadata_load_generic_param_constraints):
4187         (mono_metadata_load_generic_params): Move duplicate code ...
4188         (mono_metadata_get_generic_param_row): ... here. Returns the
4189         first row-id in GenericParam table for a given owner (token).
4190         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
4191         prototype.
4192
4193 2005-11-23  Raja R Harinath  <rharinath@novell.com>
4194             Ankit Jain  <jankit@novell.com>
4195
4196         * metadata.c (mono_metadata_class_equal): Pass signature_only when
4197         comparing VARs too.
4198         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
4199         type->data.generic_param only if the type is an MVAR.
4200         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
4201         leak owner-less VARs and MVARs into managed space.
4202
4203 2005-11-21  Martin Baulig  <martin@ximian.com>
4204
4205         * class-internals.h
4206         (MonoMethod): Moved the `generic_container' here from
4207         `MonoMethodNormal' since we now also need it for
4208         `MonoMethodPInvoke';
4209         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
4210         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
4211         an union containing both `MonoMethodNormal' and
4212         `MonoMethodPInvoke'.
4213
4214         * loader.c
4215         (mono_get_method_from_token): Allow implementing generic methods
4216         as interncalls.
4217
4218         * threads.c
4219         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
4220         icall.
4221
4222 2005-11-17  Dick Porter  <dick@ximian.com>
4223
4224         * icall.c: 
4225         * process.h: 
4226         * process.c: Split the Process Start_internal icall into
4227         ShellExecuteEx_internal and CreateProcess_internal, which are
4228         called depending on whether UseShellExecute is true.  Fixes bug
4229         76670.
4230
4231         * appdomain.c (MONO_CORLIB_VERSION): Incremented
4232
4233 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
4234
4235         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
4236         'msize' parameters, use the information in 'mspec' instead.
4237         (emit_object_to_ptr_conv): Ditto.
4238
4239         * marshal.c (emit_struct_conv): Handle explicit layout structs with
4240         fields out of order. Fixes #76733.
4241
4242 2005-11-17  Ankit Jain  <jankit@novell.com>
4243
4244         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
4245
4246 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
4247
4248         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
4249           bug #76575.
4250
4251 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4252
4253         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
4254         for types with non-auto layout. Fixes #76717.
4255
4256 2005-11-16  Ankit Jain  <jankit@novell.com>
4257
4258         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
4259         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
4260         if generic_context is null.
4261           (mono_metadata_generic_param_equal): param->owner can be null.
4262           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
4263         null.
4264
4265 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
4266
4267         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
4268         the correct value.
4269
4270 2005-11-15  Martin Baulig  <martin@ximian.com>
4271
4272         * object.c (set_value): Use mono_class_from_mono_type() instead of
4273         the hack for generic instances; fixes #76136.
4274
4275 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
4276
4277         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
4278         fields.
4279
4280         * image.c (load_metadata_ptrs): Initialize the new fields.
4281
4282         * reflection.c (create_dynamic_mono_image): Ditto.
4283
4284         * reflection.c (build_compressed_metadata): Use the new fields.
4285
4286         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
4287         icall.
4288
4289         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
4290         icall.
4291         
4292 2005-11-15  Ankit Jain  <jankit@novell.com>
4293             Raja R Harinath  <harinath@gmail.com>
4294
4295         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
4296         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
4297         new per-generic_container cache if the cached MonoType's context matches
4298         the current context.
4299           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
4300         to the expected context.
4301           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
4302
4303 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4304
4305         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
4306         we changed the signature of an icall.
4307         * icall.c: Modify to mono_double_ParseImpl return true/false 
4308         depending on the success, instead of throwing the exception. This will
4309         help us in Double.TryParse methods.
4310         
4311 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
4312
4313         * marshal.c (emit_marshal_object): Throw an exception when
4314         marshalling 'object' instead of crashing. Fixes #76696.
4315
4316 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4317
4318         * class-internals.h: Add prototype for mono_type_get_full_name ().
4319
4320 2005-11-11  Dick Porter  <dick@ximian.com>
4321
4322         * threads.c (mono_thread_manage): Make sure the main thread has
4323         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
4324
4325 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
4326
4327         * loader.c (mono_loader_set_error_type_load): Log a warning to the
4328         console about the missing type.
4329         (mono_loader_set_error_method_load): Ditto.
4330
4331 2005-11-09  Miguel de Icaza  <miguel@novell.com>
4332
4333         * mono-config.c (mono_get_config_dir): Set the system defaults if
4334         none is specified.
4335
4336         * assembly.c (mono_set_dirs): New API entry point to set the
4337         assembly and the config directory in one call
4338
4339 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
4340
4341         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
4342         the ftnptr was created from a delegate in a domain other than the
4343         current domain. Fixes #75377.
4344
4345         * exception.h exception.c: Add mono_get_exception_not_supported ().
4346
4347 2005-11-08  Martin Baulig  <martin@ximian.com>
4348
4349         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
4350
4351 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
4352
4353         * security-manager.h: Added definitions to deal with strongname key 
4354         pairs bigger (and smaller) than 1024 bits.
4355         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
4356         adjust wrt the public key length being used.
4357
4358 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4359
4360         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
4361           Windows build (r51396-51397).
4362
4363 2005-11-03  Martin Baulig  <martin@ximian.com>
4364
4365         * class.c (mono_class_setup_vtable_general): Also add generic
4366         methods to the vtable; fixes #76581.
4367
4368 2005-11-01  Miguel de Icaza  <miguel@novell.com>
4369
4370         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
4371         sure that we lookup GetString method from the System.Text.Encoding
4372         class, not the derived class or we get an empty method.
4373
4374         Fixed class #76612.
4375
4376 2005-10-25  Miguel de Icaza  <miguel@novell.com>
4377
4378         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
4379         if it has been previously set (embedders). 
4380
4381         Make mono_set_rootdir available also on Unix.
4382
4383 005-10-24  Robert Jordan  <robertj@gmx.net>
4384
4385         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
4386
4387 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
4388
4389         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
4390         only calls which are made to native code use this flag.
4391
4392         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
4393
4394 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
4395
4396         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
4397         Add support for FieldBuilders.
4398
4399 2005-10-29  Martin Baulig  <martin@ximian.com>
4400
4401         * mono-debug.c
4402         (mono_debug_using_mono_debugger): New public method; returns
4403         whether we're running inside the debugger.
4404
4405 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
4406
4407         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
4408         for Method/Constructor/FieldBuilders.
4409
4410 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
4411
4412         * reflection.c (module_add_cattrs): Save custom attributes for global methods
4413         and fields as well.
4414
4415 2005-10-26  Martin Baulig  <martin@ximian.com>
4416
4417         * mono-debug-debugger.c
4418         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
4419
4420 2005-10-24  Raja R Harinath  <harinath@gmail.com>
4421
4422         * icall.c (base64_to_byte_array): Don't pass an out-of-range
4423         integer to isspace.
4424
4425 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
4426
4427         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
4428         when passing valuetypes byref. Fixes #76502.
4429
4430 2005-10-19  Jackson Harper  <jackson@ximian.com>
4431
4432         * profiler.c: Don't put a . in front of types that are not in a
4433         namespace.
4434
4435 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
4436
4437         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
4438
4439 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
4440
4441         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
4442         #76436.
4443         (mono_marshal_get_ldflda_wrapper): Fix a warning.
4444
4445 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4446
4447         * assembly.c metadata-internals.h icall.c: Define an additional
4448         parameter for mono_assembly_name_parse_full, so we can avoid creating
4449         S.R.AssemblyName.Version when no version info wasn't passed.
4450         
4451 2005-10-09  Miguel de Icaza  <miguel@novell.com>
4452
4453         * class.c (mono_type_get_full_name): Reimplement method that was
4454         removed. 
4455
4456         * image.c: Some docs
4457
4458 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
4459
4460         * profiler.c (output_newobj_profile): Fix printing of Total memory
4461         on x86.
4462
4463 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4464
4465         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
4466
4467 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
4468
4469         * threads.c: remove debug output.
4470
4471 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
4472
4473         * threads.c (mono_thread_manage): Fix crashes if more than 64
4474         threads need to be aborted. Hopefully fixes #75899.
4475
4476         * assembly.c (mono_stringify_assembly_name): New helper function.
4477
4478         * class.c: Use mono_stringify_assembly_name instead of the similar
4479         static function.
4480
4481         * assembly.h assembly.c: Add support for calling a postload search 
4482         hook if an assembly cannot be loaded.
4483
4484         * appdomain.c: Register new search hooks which call the AssemblyResolve
4485         events in AppDomain. Fixes #75231
4486
4487 2005-10-07  Martin Baulig  <martin@ximian.com>
4488
4489         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
4490         methods without debug info.
4491
4492 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
4493
4494         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
4495         wrappers.
4496
4497 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4498
4499         * file-io.c: now that we return symlinks, use lstat and, when the file
4500         is a symbolic link, stat, to get the file attributes. Also avoid the
4501         conversion to/from utf16/external.
4502
4503 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
4504
4505         * class.c (mono_class_layout_fields): Compute klass->has_references
4506         correctly if an embedded valuetype is not yet initialized. Fixes
4507         #76331.
4508
4509 2005-10-04  Martin Baulig  <martin@ximian.com>
4510
4511         * metadata.c
4512         (mono_metadata_load_generic_param_constraints): New public
4513         function; splitted the constraints loading out from
4514         mono_metadata_load_generic_params().
4515
4516         * class.c (mono_class_create_from_typedef): Call
4517         mono_metadata_load_generic_param_constraints() after setting up
4518         the type and creating our parent; fixes #75329.
4519
4520 2005-10-04  Martin Baulig  <martin@ximian.com>
4521
4522         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
4523         non-dynamic parent classes.
4524
4525 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4526
4527         * file-io.c : win32 build fix (ETXTBSY seems not found).
4528
4529 2005-10-04  Martin Baulig  <martin@ximian.com>
4530
4531         * reflection.c
4532         (mono_image_get_methodspec_token): Make the cache actually work;
4533         fixes #75974.
4534
4535 2005-10-04  Martin Baulig  <martin@ximian.com>
4536
4537         * class.c (mono_class_name_from_token): Removed the unneccessary
4538         `MonoGenericContext *' argument.
4539
4540 2005-10-04  Martin Baulig  <martin@ximian.com>
4541
4542         * loader.c
4543         (method_from_methodspec): Make the caching work again; fixes the
4544         performance regression from #76262.
4545
4546 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4547
4548         * file-io.c:
4549         * file-io.h:
4550         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
4551         GetFileSystemEntries that performs the same work but without going
4552         into io-layer, locking, etc.
4553
4554 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
4555
4556         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
4557         ThreadState_Stopped as well. Fixes #76047.
4558
4559 2005-09-29  Martin Baulig  <martin@ximian.com>
4560
4561         * class.c
4562         (inflate_generic_context): If the new context has a `gmethod', set
4563         its `container' that that gmethod's `container'.
4564
4565         * metadata.c
4566         (mono_metadata_parse_generic_param): Simplify things;
4567         `generic_container = generic_context->container;' is just fine.
4568
4569         * loader.c (method_from_methodspec): Code cleanups.
4570
4571 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
4572
4573         * decimal.c: fix warning (and let gcc generate correct
4574         code on ARM with optimizations).
4575
4576 2005-09-28  Martin Baulig  <martin@ximian.com>
4577
4578         * loader.c
4579         (method_from_memberref): Added `MonoGenericContext *class_context'
4580         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
4581         (method_from_methodspec): If we're a memberref, use the enclosing
4582         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
4583
4584 2005-09-28  Martin Baulig  <martin@ximian.com>
4585
4586         * object.c (mono_runtime_invoke_array): Added support for
4587         MONO_TYPE_GENERICINST; fixes #75917.
4588
4589 2005-09-27  Martin Baulig  <martin@ximian.com>
4590
4591         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
4592         `k->byval_arg.type' to determine the actual type.
4593
4594         * loader.c (method_from_methodspec): Removed some hacks.
4595
4596 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
4597
4598         * class-internals.h (mono_field_is_deleted): Do the test for
4599         rtspecialname before we check the actual name of the field. This
4600         prevents us from dereferencing a pointer into the string table,
4601         saving us from accessing a few pages
4602
4603         * *.c: Replace the use of {Enter,Leave}CriticalSection with
4604         macros. This will allow a deadlock debugger to easily be plugged
4605         in.
4606
4607 2005-09-27  Martin Baulig  <martin@ximian.com>
4608
4609         * loader.c (method_from_methodspec): Create a "signature"
4610         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
4611
4612 2005-09-27  Martin Baulig  <martin@ximian.com>
4613
4614         * class.c
4615         (inflate_generic_class): Correctly set the new context's
4616         container.
4617
4618         * loader.c
4619         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
4620         instead of a `MonoGenericContext *'.
4621         (mono_method_signature_full): Take a `MonoGenericContainer *'
4622         instead of a `MonoGenericContext *'.
4623
4624         * metadata.c
4625         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
4626         instead of a `MonoGenericContext *'.
4627         (mono_metadata_parse_method_signature_full): Likewise.
4628
4629 2005-09-26  Martin Baulig  <martin@ximian.com>
4630
4631         * class.c
4632         (mono_class_from_generic_parameter): Set `klass->generic_container'
4633         (mono_class_from_generic_parameter): Likewise.
4634         (mono_bounded_array_class_get): We inherit the generic container
4635         from the element class.
4636
4637         * loader.c
4638         (find_method, find_method_in_class): Take a `MonoGenericContext *'
4639         argument rather than computing it here.
4640         (method_from_memberref): Correctly set the generic context before
4641         parsing the signature.  Fixes #75681.
4642
4643 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
4644
4645         * object.c (mono_class_has_special_static_fields): Fix warnings.
4646
4647 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4648
4649         * assembly.c: Add parse_public_key function, to
4650         par the public keys. Also added mono_assembly_name_parse_full,
4651         to define it the parsed key should be freed or not.
4652         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
4653         to parse a long format assembly name.
4654         * metadata-internals.h: Keep mono_assembly_name_parse_full as
4655         private, since calling it to preserve the key requires
4656         freeing it manually.
4657         
4658 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
4659
4660         * locales.c : removed HAVE_ICU part.
4661
4662 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
4663
4664         * object.c (mono_class_create_runtime_vtable): Avoid calling 
4665         field_is_special_static if the klass has no special static fields.
4666
4667         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
4668         (MonoCachedClassInfo): Likewise.
4669
4670         * object.c (mono_class_has_special_static_fields): New helper function.
4671
4672 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4673
4674         * class.c (mono_class_create_from_typedef): Don't call 
4675         interfaces_from_typedef_full for enums.
4676         (mono_class_create_from_typedef): Compute the base types of enums directly
4677         without calling mono_class_setup_fields ().
4678         (mono_class_find_enum_basetype): New helper function.
4679
4680         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
4681         one place inside the string heap.
4682         
4683 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
4684
4685         * class.c: locking fixes, code cleanups, some docs added.
4686         Allocate some data structures in the image mempool.
4687
4688 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4689
4690         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4691         the example code.
4692         
4693 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
4694
4695         * class-internals.h, class.c, reflection.c: reduce memory taken by
4696         MonoClass.
4697
4698 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
4699
4700         * metadata.c, metadata.h, loader.h: documentation updates, code and
4701         API cleanups.
4702
4703 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
4704
4705         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
4706         the example code.
4707
4708         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
4709         page faults caused by the runtime while reading metadata.
4710
4711 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4712
4713         * socket-io.c: the field names were changed 3 months ago and no one
4714         realized until bug #76077 got filed!
4715
4716 2005-09-20  Martin Baulig  <martin@ximian.com>
4717
4718         * icall.c (assembly_icalls): Removed some unused debugger icalls.
4719
4720 2005-09-20  Martin Baulig  <martin@ximian.com>
4721
4722         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
4723         write the rank into the class entry.
4724
4725 2005-09-20  Martin Baulig  <martin@ximian.com>
4726
4727         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
4728
4729 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
4730
4731         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4732
4733         * icall.c (custom_attrs_defined_internal): New icall.
4734
4735         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
4736         function.
4737         (mono_custom_attrs_construct_by_type): New helper function.
4738
4739 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
4740
4741         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
4742         terminate the resulting string. Fixes #76123.
4743
4744 2005-09-16  Martin Baulig  <martin@ximian.com>
4745
4746         * mono-debug.c
4747         (mono_debug_add_method): Ignore inflated methods for the moment.
4748
4749 2005-09-14  Martin Baulig  <martin@ximian.com>
4750
4751         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
4752
4753 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
4754
4755         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
4756         return a success/failure indication.
4757         (mono_metadata_interfaces_from_typedef_full): Ditto.
4758         (get_constraints): Ditto.
4759
4760 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
4761
4762         * marshal.c (emit_marshal_array): Fix handling of null arrays.
4763         
4764         * marshal.c (emit_marshal_array): Add support for returning string
4765         arrays from delegates. Fixes #76063.
4766
4767         * marshal.c: Use the emit_ldloc/stloc macros where possible.
4768
4769 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
4770
4771         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
4772         icall.
4773
4774 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
4775
4776         * reflection.c icall.c: Fix after mono_get_exception_type_load
4777         signature change.
4778
4779         * assembly.c (mono_assembly_get_assemblyref): New helper function.
4780         (mono_assembly_load_reference): Use the new helper.
4781
4782         * class-internals.h (MonoLoaderError): New structure containing 
4783         information about type loading errors.
4784
4785         * class-internals.h loader.c: Add APIs to store per-thread loader
4786         error information.
4787
4788         * loader.c class.c: Set the loader error if needed.
4789
4790         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
4791
4792 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
4793
4794         * decimal.c: fixed to handle the broken ARM fp format.
4795
4796 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
4797
4798         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
4799         broken.
4800
4801 2005-09-06  Martin Baulig  <martin@ximian.com>
4802
4803         * domain.c (supported_runtimes): Added v2.0.50727.
4804
4805 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
4806
4807         * culture-info.h: reduce the size of some structures.
4808
4809 2005-09-05  Martin Baulig  <martin@ximian.com>
4810
4811         Reflect latest API changes in the August CTP.
4812
4813         * icall.c
4814         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
4815         ("MonoType.HasGenericArguments"): Removed.
4816         ("MonoMethod.BindGenericParameters"): Renamed to
4817         "MakeGenericMethod".
4818         ("MethodBuilder.BindGenericParameters"): Renamed to
4819         "MakeGenericMethod".    
4820
4821 2005-09-05  Martin Baulig  <martin@ximian.com>
4822
4823         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
4824
4825 2005-09-05  Martin Baulig  <martin@ximian.com>
4826
4827         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4828
4829         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
4830         generic_container is non-NULL.
4831
4832 2005-09-05  Martin Baulig  <martin@ximian.com>
4833
4834         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4835
4836         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
4837
4838 2005-08-29  Michal Moskal  <malekith@nemerle.org>
4839
4840         * reflection.c (encode_locals,
4841         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
4842         for large generic types.
4843
4844 2005-09-05  Martin Baulig  <martin@ximian.com>
4845
4846         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4847
4848         * class.c (mono_dup_array_type): New public method.
4849         (mono_metadata_signature_deep_dup): New public method.
4850         (dup_type): Correctly duplicate array and function types.
4851
4852 2005-09-05  Martin Baulig  <martin@ximian.com>
4853
4854         Applying a patch from Michal Moskal <malekith@nemerle.org>.
4855
4856         * reflection.c (get_default_param_value_blobs): Handle generic types
4857         and generic methods.
4858
4859 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4860
4861         * class.c: Fixed error reporting (method/class were inversed) for 
4862         inheritance demands.
4863         * security-manager.c|h: Added the AppDomain when calling the managed
4864         System.Security.SecurityManager.InheritanceDemand method.
4865
4866 2005-09-01  Raja R Harinath  <rharinath@novell.com>
4867
4868         * reflection.c (encode_marshal_blob): 'marshaltype' and
4869         'marshaltyperef' are alternate sources for the custom marshaler
4870         name.
4871
4872 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
4873
4874         * class.c: fix creation of array classes with rank == 1
4875         (patch by Ankit Jain <jankit@novell.com>).
4876
4877 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
4878
4879         * object.c: fix check for creating the bound data for arrays vs
4880         szarrays.
4881
4882 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4883
4884         * object.c: configuration file name is now based on the executable name,
4885         not the image name. Fixes bug #75931.
4886
4887 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
4888
4889         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
4890         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
4891
4892 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
4893
4894         * rand.c: Use wincrypt.h instead of WinCrypt.h.
4895
4896 2005-08-24  Ankit Jain  <jankit@novell.com>
4897             Raja R Harinath  <rharinath@novell.com>
4898
4899         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
4900           called by it recursively.
4901           (mono_class_init): Remove special case in pending_init handling, since it's
4902           superseded by the fix to mono_class_from_typeref.
4903
4904 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
4905
4906         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
4907         BROKEN_THREAD_START stuff.
4908
4909 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
4910
4911         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
4912         trampoline.
4913
4914         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
4915         
4916         * object.c (mono_delegate_ctor): Replace the original function address with
4917         a delegate trampoline.
4918
4919 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
4920
4921         * icall.c: add boolean argument to base64_to_byte_array and 
4922         InternalFromBase64String to control whether a whitespace-only string
4923         is allowed (or should casue a FormatException to be thrown). We need
4924         this as the behavior has changed between MS.NET 1.x and 2.0, and we
4925         to match the MS behaviour in both profiles.
4926         * appdomain.c: Bump corlib version.
4927
4928 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4929
4930         This patch implements a big portion of publisher policy
4931         support, used to bind assembly versions and redirect
4932         one assembly from version A to version B.
4933
4934         * assembly.c:
4935         New GSList loaded_assembly_bindings, for storing the cached
4936         assembly bindings.
4937         (assembly_binding_maps_name): New static function for checking if a 
4938         assembly binding information maps an assembly name.
4939         (mono_assembly_binding_info_free): New function for freeing
4940         assembly binding information resources.
4941         (get_publisher_policy_info): New static function for retrieving 
4942         assembly binding information from a MonoImage.
4943         (compare_versions): New static function for comparing an assembly
4944         binding information data and the version of an assembly name.
4945         (check_policy_versions): New static function for checking if an
4946         assembly binding info mapping an assembly name is valid for it.
4947         (mono_assembly_load_publisher_policy): New static function for
4948         loading the 'policy.major.minor.MyAssembly' image for an assembly
4949         with an assembly name 'aname'.
4950         (mono_assembly_bind_version): New static function for updating
4951         assembly redirection.
4952         (mono_assembly_apply_binding): New static function for applying
4953         assembly binding.
4954         (search_binding_loaded): New static function for searching 
4955         loaded assembly binding infos in the cache domain.
4956         (mono_assembly_load_full): Don't apply assembly binding for
4957         reflection only assemblies.
4958
4959         * metadata-internals.h: Add MonoAssemblyBindingInfo,
4960         which contains information about assembly binding. Also
4961         declare signature for mono_config_parse_publisher_policy ()
4962         function, used to retrieve pub policy info.
4963         
4964         * mono-config.c:
4965         (publisher_policy_start): New static function used to parse publisher 
4966         policy config files.
4967         (publisher_policy_parser): New static MonoParseHandler containing 
4968         the functions used when parsing config files.
4969         (mono_config_parse_publisher_policy): New function for parsing
4970         publisher policy files.
4971         
4972 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
4973
4974         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
4975
4976         * marshal.c (mono_delegate_free_ftnptr): Ditto.
4977
4978         * object.c (mono_get_addr_from_ftnptr): New helper function.
4979
4980         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
4981
4982         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4983
4984 2005-08-19  Dick Porter  <dick@ximian.com>
4985
4986         * threads.c, threads.h, appdomain.c, appdomain.h,
4987         profiler-private.h, monitor.c, object.c, object-internals.h,
4988         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
4989         store the thread ID, so it can hold a 64 bit value if needed.
4990
4991 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
4992
4993         * reflection.c (mono_reflection_create_dynamic_method): Store the
4994         handle class into the method references as well so ldtoken works in
4995         dynamic methods.
4996
4997         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
4998         types.
4999
5000 2005-08-19  Ankit Jain <jankit@novell.com>
5001
5002         Fix #75847.
5003         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
5004           here rather than using the method signature of a arbitrary function
5005           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
5006           two arguments.
5007           Hack done with Harinath.
5008
5009 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5010
5011         * threadpool.c: disable printing stack traces when we get a exception
5012         in a threadpool thread. I need to do more testing to figure out which
5013         cases actually print this. Fixes bug #75828.
5014
5015 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5016
5017         * icall.c: there might be ignored whitespace after the last '='. This
5018         fixes length computation and bug #75840.
5019
5020 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
5021
5022         * assembly.c (mono_assembly_load_full): Consider .exe extension as
5023         well. Fixes #75809.
5024
5025         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
5026         #75784.
5027         
5028         * reflection.c (create_custom_attr_data): Ditto.
5029
5030 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
5031
5032         * locales.c, culture-info.h : removed RegionLCIDMap.
5033         * culture-info-tables.h : regenerated.
5034
5035 2005-08-16  Martin Baulig  <martin@ximian.com>
5036
5037         * class.c (mono_type_get_name_recurse): Small fix.
5038
5039 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5040
5041         * locales.c : indentation fixie.
5042
5043 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
5044
5045         * object-internals.h,
5046           locales.h,
5047           locales.c,
5048           culture-info.h,
5049           icall.c : added RegionInfo table support.
5050         * culture-info-table.h : regenerated for region support.
5051
5052 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
5053
5054         * reflection.c (resolve_object): handle all kinds of MonoMethod
5055         including generic ones
5056
5057 2005-08-12  Ankit Jain <jankit@novell.com>
5058
5059         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
5060           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
5061
5062 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
5063
5064         * process.c: Don't close a thread handle when it's NULL. This is a
5065         workaround for bug #75733.
5066
5067 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
5068
5069         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
5070
5071 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
5072
5073         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
5074
5075 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5076
5077         * threadpool.c: if a work item in the thread pool has a callback that
5078         catches a exception, don't propagate it after invoking the callback.
5079         Fixes bug #75336.
5080
5081 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
5082
5083         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
5084
5085         * class-internals.h (MonoCachedClassInfo): Add some new fields.
5086
5087         * class.c (mono_class_init): Load field info lazily in the AOT case.    
5088
5089         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
5090
5091 2005-08-03  Ankit Jain  <jankit@novell.com>
5092
5093         Fix #75683.
5094         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
5095           PInvoke calling convention is 0.
5096
5097 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
5098
5099         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
5100         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
5101
5102 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
5103
5104         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
5105         to handle threads not started by the GC (patch by Michael Meeks
5106         <michael.meeks@novell.com>).
5107
5108 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
5109
5110         * reflection.c: Make buffer used in emitting types larger for some
5111         big generic types (patch by Michal Moskal).
5112
5113 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
5114
5115         * mono-debug.c: Fix some (not all) alignment problems.
5116
5117 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5118
5119         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
5120         Invoke mono_image_load_from_data_full passing the refonly
5121         parameter.
5122
5123         * assembly.c
5124         (mono_assembly_open_from_bundle): Add the refonly argument, 
5125         in order to pass it to other methods it calls to.
5126         (do_mono_assembly_open): Add the refonly argument, in order 
5127         to pass it to other methods it calls to.
5128         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
5129         the refonly parameter to it.
5130
5131         * image.c: Add loaded_images_refonly_hash and
5132         loaded_images_refonly_guid_hash to cache the reflection
5133         only loaded images.
5134         (mono_images_init): Initialize the hash tables used for
5135         caching the reflection only images.
5136         (load_modules): Invoke mono_image_open_full passing the refonly
5137         parameter to load the modules the correct way.
5138         (build_guid_table): Add the refonly argument, to re-build the 
5139         correct hash table.
5140         (do_mono_image_open): Added the refonly argument, in order to
5141         define it for the loaded image.
5142         (mono_image_loaded_full): New function, which receives an
5143         additional parameter to look for the image in the refonly or
5144         non-refonly section.
5145         (mono_image_loaded): Updated, using mono_image_loaded_full.
5146         (mono_image_loaded_by_guid_full): The same case that happens
5147         with mono_image_loaded_full.
5148         (mono_image_loaded_by_guid): Likewise.
5149         (register_image): Use the ref_only variable inside MonoImage
5150         to decide in which hash table store the current image.
5151         (mono_image_open_from_data_full): Rename
5152         mono_image_open_from_data to mono_image_open_from_data_full,
5153         adding the refonly argument, to define the ref_only variable 
5154         inside MonoImage.
5155         (mono_image_open_from_data): Return 
5156         mono_image_open_from_data_full.
5157         (mono_image_open_full): Rename mono_image_open to
5158         mono_image_open_full, receiving the new refonly argument,
5159         to pass it to inner methods.
5160         (mono_pe_file_open): Update this function, to open
5161         a MonoImage as a non-refonly image.
5162         (mono_image_close): Use the refonly variable inside
5163         MonoImage to remove the image from the correct caches.
5164
5165         * image.h: Add the signatures of mono_image_open_full,
5166         mono_image_open_from_data_full, mono_image_loaded_full,
5167         mono_image_loaded_by_guid_full.
5168
5169         * metadata-internals.h: Add the ref_only field to 
5170         MonoImage.
5171         
5172 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5173
5174         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
5175         Fix the last behavior, which used to load the assemblies and
5176         extract MonoReflectionAssemblyName information, instead of
5177         extract it from the metadata tables. Needed for Reflection
5178         Only assemblies.
5179         
5180 2005-07-29  Martin Baulig  <martin@ximian.com>
5181
5182         * mono-debug-debugger.c
5183         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
5184         not initialized.
5185
5186         * mono-debug.c
5187         (mono_debug_address_from_il_offset): Check whether we have
5188         debugging support before attempting to take the lock.
5189         (mono_debug_source_location_from_address): Likewise.
5190         (mono_debug_source_location_from_il_offset): Likewise.
5191         (mono_debug_il_offset_from_address): Likewise.
5192         (mono_debug_address_from_il_offset): Likewise.
5193
5194 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
5195
5196         * class.c (mono_class_from_name_case): Add support for dynamic images.
5197         Fixes #75650.
5198
5199         * object.c (mono_class_compute_gc_descriptor): Add a workaround
5200         for #75479.
5201
5202 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5203         
5204         * reflection.c (mono_method_get_object): Fix warning.
5205
5206 2005-07-28  Martin Baulig  <martin@ximian.com>
5207
5208         * mono-debug.c
5209         (mono_debug_add_wrapper): Also write the wrapper type.
5210
5211 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
5212
5213         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
5214         
5215         * class.c (mono_class_init): Avoid reading nested classes if the AOT
5216         data indicates the class has none.
5217
5218 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
5219
5220         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
5221         loader lock with the debugger lock. Prevents deadlocks for beagle.
5222
5223         Beagle can now run on an smp box for a weekend without any
5224         issues. Woohoo!
5225
5226 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
5227
5228         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
5229         in a module. Fixes #75629.
5230
5231 2005-07-26  Martin Baulig  <martin@ximian.com>
5232
5233         * mono-debug.c (mono_debug_add_wrapper): New static method.
5234         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
5235         interncall or a wrapper.
5236
5237         * mono-debug.h (MonoDebugWrapperData): New public typedef.
5238         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
5239         (MONO_DEBUGGER_VERSION): Bump to 51.
5240
5241         * mono-debug-debugger.c
5242         (mono_debugger_add_type): Removed this empty function.
5243         (mono_debugger_add_method): Likewise.
5244
5245 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
5246
5247         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
5248         before accessing method->slot.
5249
5250 2005-07-21  Jb Evain  <jbevain@gmail.com>
5251
5252         * reflection.c (method_encode_clauses/class): Handle filters clauses.
5253         Fixes #75010.
5254
5255 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
5256
5257         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
5258         #75587.
5259
5260 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
5261
5262         * image.h image.c: Add mono_image_get_guid () API function.
5263
5264 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
5265
5266         There were issues when multiple threads tried to load
5267         assemblies. A deadlock was created between assemblies_mutex and
5268         mono_domain_assemblies_lock. This fixes the issue by making the
5269         assembly ref counting be lock free. See bug 75586.
5270         
5271         * image.c (mono_image_close): The add ref function here was using
5272         Interlocked operations while the unref was using a mutex and a
5273         --. I don't think this was ever a bug that would be exposed in a
5274         non-pendantic way (ie, by an embedder doing a ref on one thread
5275         and an unref on another), but for the sake of correctness, this is
5276         now Interlocked.
5277
5278         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
5279         (mono_assembly_load_reference): Call mono_assembly_addref rather
5280         than touching the refcount ourselves.
5281         (mono_assembly_close): Use InterlockedDecrement to unref the
5282         assembly. Don't acquire the lock unless it is actually needed.
5283
5284 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5285
5286         * class.c (mono_class_layout_fields): Fix calculation of has_references
5287         for generic types.
5288
5289 2005-07-12  Martin Baulig  <martin@ximian.com>
5290
5291         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5292
5293         * metadata.c
5294         (mono_type_hash): Provide better hashing for generic instances.
5295         (mono_generic_inst_hash): Improve hashing.
5296         (mono_generic_class_hash): Likewise.
5297
5298         * reflection.c (mymono_metadata_type_hash): Improve hashing for
5299         generic instances.
5300
5301 2005-07-12  Martin Baulig  <martin@ximian.com>
5302
5303         * reflection.c (mono_reflection_create_runtime_class): Remove the
5304         hack for generic type definitions and non-`Run' assemblies.
5305         (mono_reflection_bind_generic_parameters): Also use
5306         `klass->wastypebuilder' to check for TypeBuilders.
5307
5308 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
5309
5310         * class.c (mono_class_layout_fields): Fix calculation of has_references
5311         for generic types.
5312
5313         * class.c (inflate_generic_class): Fix a leak.
5314         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
5315         for generic types.
5316
5317 2005-07-11  Martin Baulig  <martin@ximian.com>
5318
5319         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
5320         on error.
5321
5322 2005-07-11  Martin Baulig  <martin@ximian.com>
5323
5324         * loader.c (find_method): Also lookup in
5325         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
5326
5327 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5328
5329         * appdomain.c (mono_domain_unload): Don't free the error message
5330         before passing it to mono_get_exception_...
5331
5332         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
5333         
5334 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
5335
5336         * threads.c: try to better guess an available RT signal (bug #75387).
5337
5338 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5339
5340         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
5341         and CACHE_OBJECT.
5342
5343 2005-07-07  Martin Baulig  <martin@ximian.com>
5344
5345         * class.c (mono_type_get_name_full): Return NULL for
5346         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
5347         fixes #75408.
5348
5349 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
5350
5351         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
5352         exit the appdomain as well being aborted.
5353
5354         * threadpool.c: Create all threadpool threads inside the root appdomain, and
5355         change back to the root domain after calling managed code. This enables
5356         appdomains using threadpools to be unloaded.
5357
5358 2005-07-07  Martin Baulig  <martin@ximian.com>
5359
5360         * class-internals.h
5361         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
5362         into `MonoDynamicGenericClass' since we only need it for dynamic
5363         types.
5364
5365         * reflection.c (mono_class_bind_generic_parameters): We don't need
5366         to compute the `parent' here.
5367
5368 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
5369
5370         * culture-info-table.h : regenerated.
5371
5372 2005-07-06  Martin Baulig  <martin@ximian.com>
5373
5374         * icall.c
5375         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
5376
5377         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
5378
5379 2005-07-06  Martin Baulig  <martin@ximian.com>
5380
5381         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
5382         we're doing a signature-only comparision; fixes #74945.
5383
5384 2005-07-06  Martin Baulig  <martin@ximian.com>
5385
5386         * class-internals.h (MonoGenericClass): Moved some things out into
5387         a new `MonoInflatedGenericClass' type.  
5388         (MonoInflatedGenericClass): New type; the `klass' of a
5389         `MonoGenericClass' is now computed lazyly in
5390         mono_get_inflated_generic_class().      
5391
5392         * class.c (mono_get_inflated_generic_class): New public function.
5393         (mono_class_inflate_generic_method): Removed the unused
5394         `MonoClass *' argument.
5395         (setup_generic_vtable): Don't call mono_get_inflated_method() on
5396         all the methods.
5397         (mono_class_create_generic): Make this static and merge it with
5398         mono_class_create_generic_2(); we're now called automatically from
5399         mono_get_inflated_generic_class().
5400
5401         * loader.c (mono_method_signature): Call
5402         mono_get_inflated_method() here.
5403
5404 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
5405
5406         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
5407         type of fields with RVA.
5408
5409         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
5410         for this pseudo class.
5411         (my_mono_class_from_generic_parameter): Likewise.
5412         (mono_class_init): Allow interfaces to have cctors.
5413
5414 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5415
5416         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
5417         lazily for AOT methods.
5418
5419 2005-07-05  Martin Baulig  <martin@ximian.com>
5420
5421         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
5422         returns FALSE for a successful match, not TRUE.
5423
5424 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
5425
5426         * loader.c (mono_method_get_index): Optimize this a bit.
5427
5428 2005-07-04  Martin Baulig  <martin@ximian.com>
5429
5430         * class.c
5431         (class_compute_field_layout): Move the check for generic type
5432         definitions into mono_class_layout_fields().  Fixes #74684.
5433         (mono_class_from_generic_parameter): Correctly compute
5434         `klass->parent'; fixes #75457.
5435
5436         * reflection.c (register_assembly, register_module): Make sure
5437         `domain->rejobject_hash' is already created.
5438
5439 2005-07-02  Martin Baulig  <martin@ximian.com>
5440
5441         * class-internals.h
5442         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
5443         `MonoDynamicGenericClass'.      
5444
5445 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
5446
5447         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
5448         returned by a field getter is null, since null is a valid value.
5449
5450 2005-07-01  Martin Baulig  <martin@ximian.com>
5451
5452         * reflection.c (mono_reflection_generic_class_initialize): Update
5453         the `dgclass->fields [i].parent' to the correct class.
5454         (mono_image_get_fieldref_token): Use the declaring type, not the
5455         reflected type.
5456
5457 2005-07-01  Martin Baulig  <martin@ximian.com>
5458
5459         * loader.c (find_method): Also look in the interfaces; fixes #75429.
5460
5461 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
5462
5463         * threads.c (thread_cleanup): assert that thread != NULL
5464         (wait_for_tids_or_state_change): We were using the wrong variable
5465         when accessing wait->threads. `i' was always out of the bounds of
5466         the array.
5467
5468 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5469
5470         * loader.c: map user32 and kernel32 to libMonoSupportW
5471
5472 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
5473
5474         * appdomain.c (unload_thread_main): Mark this as WINAPI.
5475
5476 2005-06-28  Martin Baulig  <martin@ximian.com>
5477
5478         * loader.c (method_from_methodspec): Fix #75334.
5479
5480 2005-06-28  Martin Baulig  <martin@ximian.com>
5481
5482         Fix #74953 - Arrays now implement the generic IList<T> interface
5483         on the 2.0 platform.
5484
5485         * class-internals.h (MonoDefaults): Added `generic_array_class'.
5486
5487         * reflection.c (mono_class_bind_generic_parameters): New public
5488         function; similar to mono_reflection_bind_generic_parameters(),
5489         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
5490
5491         * domain.c (mono_init_internal): Try to initialize.
5492         `mono_defaults.generic_array_class' here; this'll only succeed if
5493         we're using the 2.0 corlib.
5494
5495         * icall.c
5496         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
5497         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
5498         (mono_lookup_internal_call): Added support for nested classes.
5499
5500         * loader.c
5501         (mono_get_method_from_token): Set `result->signature->pinvoke' if
5502         we're an interncall and have generic arguments.
5503
5504         * class.c
5505         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
5506         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
5507         instance of System.Array.InternalArray<T> for arrays, so they
5508         implement the generic IList<T> interface.
5509
5510 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
5511
5512         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
5513         (chastamar@yahoo.com). Fixes #75374.    
5514
5515 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
5516
5517         * culture-info-table.h: regenerated.
5518
5519 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5520
5521         * icall.c: handle spaces correctly for base64 strings.
5522
5523 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
5524
5525         * *.c: Kill some warnings.
5526
5527 2005-06-23  Duncan Mak  <duncan@novell.com>
5528
5529         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
5530         that this builds on Solaris 10 (x86).
5531
5532 2005-06-23  Martin Baulig  <martin@ximian.com>
5533
5534         * class.c
5535         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
5536         generic type definitions.
5537
5538 2005-06-23  Martin Baulig  <martin@ximian.com>
5539
5540         Fix #75331.
5541
5542         * metadata.c (mono_class_get_overrides): Renamed to
5543         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
5544         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
5545         pass it to mono_get_method_full().
5546
5547 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
5548
5549         * reflection.c (mono_reflection_create_runtime_class): take the
5550         mono_domain_lock in this method. Prevents deadlocks
5551
5552 2005-06-22  Martin Baulig  <martin@ximian.com>
5553
5554         * loader.c (method_from_methodspec): Fix #75330.
5555
5556 2005-06-22  Martin Baulig  <martin@ximian.com>
5557
5558         * reflection.c (type_get_qualified_name): Use
5559         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
5560         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
5561         argument; use it if we don't have an assembly name.
5562
5563 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
5564
5565         * object.c: In mono_message_init, set "copy out" flag for in
5566         parameters with the [Out] flag.
5567
5568 2005-06-21  Martin Baulig  <martin@ximian.com>
5569
5570         * class.c
5571         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
5572         and MONO_TYPE_PTR.
5573
5574 2005-06-21  Martin Baulig  <martin@ximian.com>
5575
5576         * class.c (mono_class_init): Don't initialize `class->fields' for
5577         generic instances since they're initialized again in
5578         compute_field_layout(). 
5579         (compute_field_layout): Set the field's `generic_info' here; fix
5580         #75320. 
5581
5582 2005-06-21  Martin Baulig  <martin@ximian.com>
5583
5584         * class-internals.h
5585         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5586
5587         * metadata.c (mono_metadata_generic_method_equal): Also
5588         distinguish the `generic_class'; fixes #75334.
5589
5590 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5591
5592         * domain.c:
5593         * appdomain.c:
5594         * domain-internals.h:
5595         * reflection.c: 'domain_assemblies' field is now protected by its own
5596         lock. Don't call into managed code to run the AssemblyLoad event if we
5597         now there are no registered delegates for it.
5598
5599 2005-06-20  Martin Baulig  <martin@ximian.com>
5600
5601         * class.c (mono_class_is_assignable_from): Use a custom version of
5602         mono_class_has_parent() to make things work for generic instances;
5603         fix #75300.
5604
5605 2005-06-20  Martin Baulig  <martin@ximian.com>
5606
5607         * loader.c (method_from_methodspec): Apply a patch from
5608         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
5609
5610 2005-06-20  Martin Baulig  <martin@ximian.com>
5611
5612         * class.c (mono_class_init): Reverted Zoltan's last change; it
5613         breaks generics.
5614
5615 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
5616
5617         * threads.c (wait_for_tids_or_state_change): Add missing locking.
5618
5619 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5620
5621         * socket-io.c: fix the index in the socket array for writable/error
5622         sockets. Fixes bug #75306.
5623
5624 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
5625
5626         * class.c (mono_class_init): Allow interfaces to have static ctors.
5627
5628 2005-06-17  Martin Baulig  <martin@ximian.com>
5629
5630         * loader.c (method_from_methodspec): Use `context->container' when
5631         parsing the `gmethod->inst'.
5632
5633 2005-06-17  Martin Baulig  <martin@ximian.com>
5634
5635         * class.c (mono_type_get_name_recurse): Don't add the assembly
5636         name for type arguments.
5637
5638 2005-06-15  Martin Baulig  <martin@ximian.com>
5639
5640         * reflection.c (mono_image_get_inflated_method_token): Encode
5641         correct klass; fixes #75260.
5642
5643 2005-06-13 Michal Moskal <malekith@nemerle.org>
5644
5645         * icall.c: Make GetCorrespondingMethod/Constructor take
5646         MonoReflectionMethod method not MonoMethod. Removed
5647         MonoType.GetCorrespondingField, and make
5648         MonoGenericType.GetCorrespondingField take name not
5649         MonoClassField.
5650
5651 2005-06-13  Michal Moskal <malekith@nemerle.org>
5652
5653         * reflection.c (field_encode_signature, encode_locals):
5654          Make sizes of buffers for types larger (for big generic types).
5655          (create_generic_typespec,
5656          mono_reflection_sighelper_get_signature_local,
5657          mono_reflection_sighelper_get_signature_field):
5658          Add asserts for too small buffers.
5659
5660 2005-06-15  Martin Baulig  <martin@ximian.com>
5661
5662         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
5663         if our parent is not a dynamic type.
5664
5665 2005-06-15  Martin Baulig  <martin@ximian.com>
5666
5667         * class-internals.h (MonoTypeNameFormat): New enum.
5668
5669         * class.c
5670         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
5671         (mono_type_get_full_name): Removed.
5672         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
5673         argument instead of the boolean's.
5674
5675         * icall.c (ves_icall_System_MonoType_getFullName):
5676         Added `gboolean assembly_qualified'.    
5677
5678         * reflection.h
5679         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
5680
5681         * reflection.c (mono_reflection_parse_type): Parse the new type
5682         name format.
5683
5684 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5685
5686         * icall.c: no need to convert from utf16 to utf8 and then back again
5687         after the call to GetLogicalDrives.
5688
5689 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5690
5691         * icall.c: frombase64. Fix problems exposed by new tests.
5692
5693 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5694
5695         * icall.c: added internal calls for converting char [] and strings in
5696         base64 into byte [].
5697
5698 2005-06-10  Martin Baulig  <martin@ximian.com>
5699
5700         * class.c (mono_class_create_generic_2): Read the nested classes
5701         from the metadata rather than from `gklass->nested_classes' since
5702         `gklass' might not be initialized yet.
5703
5704 2005-06-09  Duncan Mak  <duncan@novell.com>
5705
5706         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
5707         all public headers. Fixes #74919.
5708
5709 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
5710
5711         * domain.c: The key for proxy_vtable_hash is now a pointer
5712         array. Added new GHashFunc and GCompareFunc functions for this.
5713
5714         * class.h: The list of interfaces in MonoRemoteClass is known in
5715         advance and can't grow (we create a new MonoRemoteClass if needed),
5716         so now the interface array can be allocated together with
5717         MonoRemoteClass.
5718         
5719         * object.c: Added a new method create_remote_class_key.
5720         Fixed mono_remote_class so it does not depend on
5721         mono_upgrade_remote_class.
5722         Removed extend_interface_array.
5723         Added new method clone_remote_class(), which makes a copy of a remote
5724         class and adds a new interface or class to it.
5725         mono_upgrade_remote_class() now creates a new remote class (or gets
5726         it from the cache) if an vtable upgrade is needed. In this way
5727         we make sure that other objects sharing the same remote class
5728         don't get the new vtable with unwanted interfaces.
5729         
5730         * object-internals.h:
5731         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
5732         
5733         * marshal.c: Track changes in mono_upgrade_remote_class().
5734
5735 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
5736         * icall.c: Add runtime methods for obtaining members of inflated
5737         class, which were created from supplied non-inflated members. It
5738         is used in internal Get{Method,Constructor,Field} methods in
5739         System.Type
5740
5741 2005-06-09  Martin Baulig  <martin@ximian.com>
5742
5743         * reflection.c
5744         (mono_reflection_bind_generic_method_parameters): Fix #75169.
5745
5746 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5747         * reflection.c (mono_image_basic_init): Define
5748         Version in MonoDynamicAssembly. 
5749         
5750 2005-06-08  Martin Baulig  <martin@ximian.com>
5751
5752         Fix #75136.
5753
5754         * loader.c
5755         (mono_method_signature_full): New public method; takes a
5756         `MonoGenericContext *'.
5757         (find_method): Use mono_method_signature_full() and pass the
5758         klass'es context to it.
5759
5760         * class.c (mono_class_is_inflated_method): Use
5761         mono_method_signature_full() and pass the context to it.
5762
5763 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
5764
5765         * object.c: add proper locking in mono_remote_class_vtable(),
5766         fixes possible memory corruption.
5767
5768 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
5769
5770         * marshal.c (mono_remoting_marshal_init): set
5771         initialized after initialization.
5772
5773 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5774
5775         * locales.c : hush.
5776
5777 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
5778
5779         * object.c (extend_interface_array): fix really silly
5780         memory corrupting / comparison bug.
5781
5782 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5783
5784         * reflection.c: Functions added to support the creation
5785         of CustomAttributeData, which includes Attribute data
5786         used by ReflectionOnly methods.
5787
5788         * reflection.h:  mono_reflection_get_custom_attrs_data and
5789          mono_custom_attrs_data_construct added (functions exposed).
5790
5791          * icall.c: Added mono_reflection_get_custom_attrs_data
5792          as icall.
5793         
5794 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
5795
5796         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
5797         lupus's request.
5798
5799 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
5800
5801         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
5802
5803         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
5804         dynamic DllImportAttribute.
5805
5806         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
5807         dynamic DllImportAttribute.
5808
5809         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
5810         Fixes #75162.
5811
5812 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5813
5814         * threads.c: avoid segfault when an unstarted thread is aborted.
5815
5816 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
5817
5818         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
5819         Returns the name and version of the runtime for reporting.
5820
5821 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5822
5823         * appdomain.c: bump corlib version.
5824         * object-internals.h: new field in MonoReflectionAssembly.
5825
5826 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5827
5828         * object-internals.h: Carlos forgot to add this field.
5829
5830 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5831
5832         * icall.c: Added create_version to create instances
5833         of Version of MonoReflectionAssemblyName. This change helps
5834         the AssemblyName tests to keep running fine.
5835         
5836 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
5837   
5838         * object.c (mono_method_return_message_restore): A somehow less
5839         intrusive fix for #75138.
5840
5841 2005-06-03  Raja R Harinath  <rharinath@novell.com>
5842
5843         * object.c (mono_method_return_message_restore): Fix computation
5844         of expected number of out args.
5845
5846 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5847
5848         * reflection.c (mono_image_get_method_info): Fix the case when the
5849         charset is empty.
5850
5851 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
5852
5853         * object.c: Added missing null check in
5854           mono_method_return_message_restore.
5855
5856 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
5857
5858         * reflection.c (mono_image_get_method_info): Handle the case when
5859         dllentry is empty.
5860
5861 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
5862
5863         * object.c: When creating the vtable for a proxy, take into account
5864         all inherited interfaces, not only the ones registered in
5865         iclass->interfaces. This fixs bug #74996.
5866         Also, in mono_method_return_message_restore, verify that the array
5867         of out args has the expected lengh.
5868
5869 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5870
5871         * socket-io.c: update the timeout in Poll when the call is interrupte.
5872
5873 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5874
5875         * socket-io.c: support abort/suspend in Select_internal after last
5876         change.
5877
5878 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5879
5880         * threadpool.c: remove warning.
5881
5882 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5883
5884         * icall.c:
5885         * socket-io.[ch]: Select_internal uses poll() now when available, thus
5886         removing the 1024 limit from select(). Runtime part of the fix for
5887         bug #71203.
5888
5889 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5890
5891         * socket-io.c: when resolving the addresses for the same
5892         host returned by gethostname(), get the local IPs from the interface
5893         list. Loopback addresses are discarded if the are interfaces up with
5894         non-loopback ones. Fixes bug #63265.
5895
5896 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
5897
5898         * appdomain.c, verify.c, object-internals.h, reflection.c:
5899         bumped corlib number to 36, and added new extra_flags field
5900         to ReflectionMethodBuilder and friends.  Fixes #75060.
5901
5902 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
5903
5904         * gc.c: register a new weak link only if the object is non-null
5905         (fixes bug#75047).
5906
5907 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5908
5909         * culture-info.h : short time pattern too.
5910
5911 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5912
5913         * culture-info.h : expand long time pattern string length.
5914
5915 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5916
5917         * culture-info-table.h : update (more French date format; #72788).
5918
5919 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
5920
5921         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
5922         the method is static. Fixes #75029.
5923
5924 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
5925
5926         * reflection.c: Update the table_idx field of method builders after
5927         saving the module, since it can change. This is a workaround for
5928         bug #74914. 
5929
5930 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5931
5932         * culture-info-table.h : update (additional French date format).
5933
5934 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
5935
5936         * icall.c (ves_icall_type_Equals): Revert last change.
5937         
5938         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
5939
5940         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
5941
5942 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
5943
5944         * class-internals.h: Added executioncontext_class field to 
5945         MonoDefaults structure.
5946         * domain.c: Cache System.Threading.ExecutionContext class in 
5947         mono_defaults.
5948         * object.c: Capture the ExecutionContext for asynchroneous calls in
5949          mono_async_result_new.
5950         * object-internals.h: Added execution_context and original_context 
5951         fields to MonoAsyncResult. Added execution_context to MonoThread.
5952         * security-manager.c|.h: Added mono_get_context_capture_method to 
5953         return the capture method (if required by the security manager or by
5954         the framework version used).
5955         * threadpool.c: Apply capture (if present) ExecutionContext in 
5956         mono_async_invoke and revert to original context after it completes.
5957
5958 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
5959
5960         * culture-info-table.h : updated (real hacky solution for zh-CHT).
5961
5962 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
5963
5964         * culture-info-table.h : zh-CHT related workaround.
5965
5966 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5967
5968         * marshal.c (emit_marshal_custom): Add some error checking and call the
5969         methods in the ICustomMarshaler interface. Fixes #74875.
5970         
5971         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
5972         native->managed wrappers.
5973
5974 2005-05-12  Martin Baulig  <martin@ximian.com>
5975
5976         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
5977         here and use the loader lock.
5978
5979         * mono-debug.c: Properly lock when the debugger is not attached.
5980         (mono_debug_init): Release the initial lock if we're not running
5981         in the debugger.
5982
5983 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
5984
5985         * marshal.c (emit_marshal_custom): Pass through NULL values without
5986         calling the custom marshalling routines.
5987
5988         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
5989         conversion in structures. Fixes #74882.
5990
5991 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
5992
5993         * culture-info-table.h : zh-* cultures were missing.
5994
5995 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
5996
5997         * threads.c: Added a new event background_change_event which is signaled
5998         when a thread changes its background mode.
5999         Moved here several checks previously done in managed code. The checks
6000         require the thread lock, and using the thread lock in managed code
6001         can result in deadlocks.
6002         Merged Start_internal and Thread_internal into a single method. Now 
6003         Thread_internal does all work of creating and starting a thread.
6004         Added icalls for setting and getting the state of the object. Moved from
6005         managed code to avoid locking there.
6006         Added wait_for_tids_or_state_change() which is called instad of
6007         wait_for_tids when waiting for non-backround threads to end. This method
6008         will return if one of the threads ends or the background_change_event
6009         is signaled.
6010         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
6011         the background mode. This method signals the background_change_event
6012         event.
6013         * icall.c:
6014         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
6015         removed Start_internal.
6016         
6017 2005-05-11  Martin Baulig  <martin@ximian.com>
6018
6019         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
6020         to order of some fields to get proper alignment on 64-bit machines.
6021
6022 2005-05-11  Martin Baulig  <martin@ximian.com>
6023
6024         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
6025         changes as they're broken and completely fuck up the debugger.
6026
6027         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
6028
6029 2005-05-10  Martin Baulig  <martin@ximian.com>
6030
6031         * reflection.c (mono_reflection_generic_class_initialize): Don't
6032         call mono_class_setup_parent() here.
6033
6034 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6035
6036         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
6037         send/receive timeout use an integer in milliseconds. We were using a
6038         struct timeval.
6039
6040 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6041
6042         * locales.c:
6043         (internal_get_cultures): reserve the first slot of the array for the
6044         InvariantCulture, which will be filled in managed code.
6045
6046 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
6047
6048         * reflection.c (mono_image_fill_module_table): Initialize the
6049         GENERATION field as well.
6050
6051 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6052
6053         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
6054         Monitor.Enter on the object.
6055
6056 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
6057
6058         * threads.c: Enable the wait for running threads when exiting.
6059         * icall.c: Suspend all threads before exiting.
6060
6061 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
6062
6063         * assembly.c (mono_assembly_load_reference): Fix warning.
6064
6065 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6066
6067         * threadpool.c: changed the default number of threads per cpu. From now
6068         on, the default will be 20 + (5 * number of cpus) instead of 50.
6069
6070 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
6071
6072         * loader.c (mono_method_get_signature_full): Add locking here.
6073
6074 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
6075
6076         * appdomain.c: Moved methods for parsing and freeing assembly
6077         names to assembly.c.
6078         * assembly.c, domain-internals.h: Created public methods for parsing
6079         assembly names. Fixed mono_assembly_load_with_partial_name:
6080         it now finds the best match, taking into account the version,
6081         token and culture specified in the partial name. Also return
6082         the latest version if no version information is specified.
6083
6084 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
6085
6086         * threadpool.c: replace check for SocketAsyncCall class.
6087
6088 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6089
6090         * threadpool-internals.h:
6091         * Makefile.am: added threadpool-internals.h
6092
6093         * threadpool.c: call mono_unhandled_exception on exceptions not handled
6094         that happen in threadpool threads (tested on MS).
6095         (mono_thread_pool_remove_socket): new function that dispatch any pending
6096         AIO call on a socket that is closing. By now only epoll really needs it,
6097         as select/poll wake up when the socket closes.
6098
6099
6100         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
6101
6102 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
6103
6104         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
6105
6106 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
6107
6108         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
6109
6110 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
6111
6112         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
6113         has an abort request, convert it into a suspend request.
6114
6115 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
6116
6117         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
6118         warning for the usage of `UnmanagedFunctionPointerAttribute' which
6119         is not supported yet.
6120
6121 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6122
6123         * image.c: register assemblies loaded from data (bundles) in the loaded
6124         assemblies hash. Fixes bug #74772.
6125
6126 2005-04-29  Martin Baulig  <martin@ximian.com>
6127
6128         * class.c (mono_type_get_name_recurse): Update to the new naming
6129         schema from the latest .NET 2.x beta2.
6130         (mono_class_setup_vtable_general): If we're a generic instance,
6131         copy the vtable from our generic type definition and inflate all
6132         the methods in it.
6133
6134         * loader.c (find_method): Update to the new naming schema from the
6135         latest .NET 2.x beta2.
6136
6137 2005-04-29  Raja R Harinath  <harinath@gmail.com>
6138
6139         * class.c (mono_class_init): Add a mono_loader_unlock to the
6140         #74734 fix.
6141
6142 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
6143
6144         * icall.c (ves_icall_System_Environment_Exit): Remove the 
6145         suspend_all_other_threads () call for the time being, since it can hang.
6146
6147         * threads.c (mono_thread_manage): Similarly, disable the waiting for
6148         the background threads to exit, since it can also hang.
6149
6150         * class.c (mono_class_init): Applied patch from Ankit Jain 
6151         (radical@gmail.com). Avoid pending init errors when a field refers
6152         to a nested class using a typeref. Fixes #74734.
6153
6154         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
6155         this for dynamic modules.
6156
6157 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6158
6159         * threads.c: don't wait for threads that are in the process of aborting
6160         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
6161         and waiting for background threads to finish. This makes xsp and
6162         mod-mono-server exit without random length delays and/or hangs.
6163
6164 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6165
6166         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
6167
6168 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
6169
6170         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
6171         dynamic types to prevent infinite loops. Fixes #74727.
6172
6173         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
6174         ..._is_assignable_to.
6175
6176 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
6177
6178         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
6179
6180 2005-04-25  Martin Baulig  <martin@ximian.com>
6181
6182         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
6183
6184         * domain.c
6185         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
6186
6187         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
6188
6189         * reflection.c (build_compressed_metadata): Set metadata header
6190         version to 2.0.
6191
6192 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
6193
6194         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
6195         number into an integral and a decimal part. Fixes #70473.
6196
6197         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
6198
6199 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
6200
6201         * culture-info-table.h : reflected the latest locale-builder output.
6202
6203 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6204
6205         * threadpool.c: check for SuspendRequested too when deciding if
6206         mono_thread_interruption_checkpoint should be called.
6207
6208 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6209
6210         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
6211         * threads.c: remove interruption_mutex and use Interlocked instead. When
6212         suspending all the threads, wait for all the suspended events at once.
6213         If we're shutting down and get an APC that is going to be queued,
6214         call mono_thread_execute_interruption immediately, as the thread might
6215         be sleeping on a pthread condition or mutex.
6216
6217         * icall.c: call mono_runtime_set_shutting_down before suspending the
6218         threads.
6219
6220         Fixes bug #74693. And now xsp is happier when exiting.
6221
6222 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
6223
6224         * loader.c (mono_stack_walk): Fix #74690.
6225
6226 2005-04-22  Martin Baulig  <martin@ximian.com>
6227
6228         * mono-debug.h (MonoDebugMethodJitInfo): Added
6229         `MonoDebugMethodJitInfo *jit'.
6230
6231         * mono-debug.c (mono_debug_read_method): Cache the
6232         MonoDebugMethodJitInfo in `address->jit'.
6233         (mono_debug_free_method_jit_info): New public method.
6234
6235 2005-04-22  Martin Baulig  <martin@ximian.com>
6236
6237         * class.c (mono_class_is_assignable_from): Disallow
6238         type parameter -> interface.
6239
6240 2005-04-21  Dick Porter  <dick@ximian.com>
6241
6242         * threads.c (mono_thread_create): Turn an assertion into an error.
6243
6244 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
6245
6246         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
6247         
6248         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
6249         Fix some gcc 4.0 warnings.
6250
6251 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
6252
6253         * file-io.c: fix alt dir separator char on unix systems
6254         and cleanup (fixes bug #71214).
6255
6256 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
6257
6258         * marshal.c: Use CALLVIRT instead of CALL when dispatching
6259         a call to a remote domain, since the method may be an
6260         interface method in the client domain. This fixes bug #74192.
6261
6262 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6263
6264         * threadpool.c: recv/send are now performed before going back to managed
6265         code to save one transition.
6266
6267 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6268
6269         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
6270
6271         * metadata/threadpool.c: removed hack to workaround the bug above.
6272
6273         Fixes bug #74618.
6274
6275 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
6276
6277         * reflection.c reflection.h: Fix handling of parameter defaults in
6278         dynamic methods. Also fixes handling of parameter attributes.
6279         Fixes #74609.
6280
6281         * mono-debug.c (mono_debug_close_image): Fix warning.
6282
6283 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6284
6285         * socket-io.h: replaced old unused field with new 'blocking'.
6286         * threadpool.c: restore socket blocking state on windows(tm).
6287
6288 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6289
6290         * icall.c: don't return the codebase in the AssemblyName[] returned by
6291         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
6292         * object-internals.h: Removed FIXME (fields were presents) and fixed
6293         versioncompat declaration.
6294
6295 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6296
6297         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
6298         not closed, so don't cleanup when it happens.
6299
6300 2005-04-13  Chris Toshok  <toshok@ximian.com>
6301
6302         * mono-debug-debugger.h: change prototype for
6303         mono_debugger_lookup_type.
6304
6305         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
6306         this function, although it should probably be named
6307         mono_debugger_init_type.
6308
6309 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6310
6311         * threadpool.c: fix non-AIO case.
6312
6313 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
6314
6315         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
6316         the built-in profiler to measure just JIT compilation times.
6317
6318 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6319
6320         * threadpool.c: the epollfd might be closed by another thread at
6321         any time, so ignore EBADF at treat it as a "we're closing" sign.
6322
6323 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6324
6325         * threadpool.c: release the semaphores with a count equals to the number
6326         of working threads in both IO and regular pools. Fixed typo that messed
6327         up the count of IO pool threads. Don't initialize the pipe handles if
6328         we're using epoll.
6329
6330 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6331
6332         * threadpool.c: some systems don't like a NULL when deleting the socket
6333         from epoll.
6334
6335 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6336
6337         * threadpool.c: fix semaphore allocation.
6338
6339 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6340
6341         * threadpool.c: added epoll() based implementation for asynchronous IO
6342         that is used instead of the default poll() when available.
6343         It can be disabled by setting MONO_DISABLE_AIO.
6344
6345 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6346
6347         * threadpool.c: windows needs 'closesocket' and instead of returning
6348         0 when the stream is closed while in select, it returns -1. Fixes bug
6349         #74573.
6350
6351 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
6352
6353         * class.c (class_compute_field_layout): Fix the regression caused by
6354         the previous try.
6355
6356 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6357
6358         * threadpool.c: separate pool for socket async. IO.
6359         * threadpool.h: mono_max_worker_threads is not a global any more.
6360
6361 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
6362
6363         * class.c (class_compute_field_layout): Fix #74549.
6364
6365 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6366
6367         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
6368         use 2 connected sockets instead.
6369
6370 2005-04-08  Miguel de Icaza  <miguel@novell.com>
6371
6372         * mono-config.c: Add new entry point for mkbundle
6373         mono_config_parse_memory. 
6374
6375 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6376
6377         * threadpool.c: removed another unused function.
6378
6379 2005-04-08  Ankit Jain  <radical@corewars.org>
6380
6381         * reflection.c (get_default_param_value_blobs): Add 'types'
6382         parameter to get the types encoded in the constant table.
6383         (mono_param_get_objects): Use the type from the constant table,
6384         not the type of the parameter, when creating default values.
6385         Handle null default values correctly.
6386
6387 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6388
6389         * file-io.c:
6390         * file-io.h:
6391         * threadpool.c:
6392         * threadpool.h:
6393         * icall.c:
6394         * socket-io.c: removed dead code for async IO.
6395
6396 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6397
6398         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
6399
6400         * threadpool.c: intercept socket async. calls and pass them to a thread
6401         that is polling and dispatching the job items to the threadpool as
6402         socket become ready. Fixes bugs #71217, #71933.
6403
6404         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
6405         between char and short/ushort arrays.
6406
6407         * socket-io.c: remove dead code.
6408
6409 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6410
6411         * locales.c,
6412           icall.c : removed InternalToUpper_Comp() and
6413           InternalToLower_Comp().
6414
6415 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
6416
6417         * char-conversions.h : The tables were incorrectly generated. Should
6418           be generated against invariant culture.
6419
6420 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
6421
6422         * object.c (mono_runtime_invoke_array): Fix return value when 
6423         passing pre-created valuetype objects to ctors.
6424
6425         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
6426         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
6427         Fixes #74338.
6428
6429 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
6430
6431         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
6432         only used with --security and hides the wrong corlib version error.
6433
6434 2005-03-30  Joshua Tauberer  <tauberer@for.net>
6435
6436         * class.c: Changed mono_class_name_from_token so that types
6437         outside of a namespace don't have an initial period.  Improved
6438         the g_warning message used in _mono_class_get when loading
6439         fails.
6440         * assembly.c: In mono_assembly_load_reference, when an assembly
6441         can't be found, "No such file or directory" is misleading and
6442         unhelpful because a few paths were checked for the presence of
6443         the assembly.  When that happens (ENOENT), display a nicer
6444         message indicating the directories that were searched.  In all
6445         cases, the warning is made easier to read for non-hackers.
6446
6447 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
6448
6449         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
6450         project/solution.
6451         * appdomain.h|domain.c: Removed inline from functions.
6452         * appdomain.c: Reduced warnings when compiling on windows.
6453         * icall.c: Fixed output_debug declaration to gunichar2*.
6454         * mono-config.c: Reduced warnings when compiling on windows.
6455         * rand.c: Added missing "windows.h". Added missing return value.
6456         * rawbuffer.c: Added missing winsock2.h for windows.
6457         * sysmath.h: Added mono-compiler.h header to allow/ease 
6458         compilation with non-GCC compilers.
6459         * threads.c: Fixed declarations to compile with VS.NET C compiler.
6460         Removed cast warnings.
6461
6462         Adapted from the work of J Lothian (for VC6).
6463
6464 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
6465
6466         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
6467         from default_path.
6468
6469 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
6470
6471         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
6472         the 2.0 profile.
6473
6474 2005-03-27  Raja R Harinath  <harinath@gmail.com>
6475
6476         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
6477         has to be in $(exec_prefix).  $(prefix) is for arch-independent
6478         stuff, and it would probably use $(prefix)/share rather than
6479         $(prefix)/lib.
6480
6481 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6482
6483         * console-io.c: added 2 includes that might be missing.
6484
6485 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
6486
6487         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
6488         profile.
6489
6490         * reflection.c (create_custom_attr): Allocate the params array using
6491         alloca so it gets GC tracking.
6492
6493 2005-03-23  Chris Toshok  <toshok@ximian.com>
6494
6495         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
6496         out some spew.
6497
6498 2005-03-24  Raja R Harinath  <rharinath@novell.com>
6499
6500         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
6501         changes to pick up any changes in prefix, etc.
6502
6503 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6504
6505         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
6506         
6507         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
6508         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
6509
6510 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
6511
6512         * class-internals.h object-internals.h class.c reflection.c: Extend the
6513         mono_lookup_dynamic_token () function to return the class of the
6514         token as well. 
6515
6516         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
6517         well. Fixes #73848.
6518
6519 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
6520
6521         * security-manager.c: Skip inheritance checks for intra-corlib
6522         class inheritance and method overrides. This skips a lot of checks
6523         and (anyway) permissions cannot work until corlib is loaded.
6524
6525 2005-03-23  Martin Baulig  <martin@ximian.com>
6526
6527         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
6528         MONO_TYPE_GENERICINST.  
6529
6530 2005-03-23  Martin Baulig  <martin@ximian.com>
6531
6532         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
6533
6534 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6535
6536         * class.c: added locking comments to some functions.
6537         Cache the interface offsets arrays (saves about 20 KB
6538         of runtime memory in a typical app).
6539         Reduce the time overhead in mono_class_setup_supertypes ().
6540
6541 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
6542
6543         * icall.c: speedup and fix leaks in GetMethodsByName and
6544         GetPropertiesByName.
6545
6546 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6547
6548         * reflection.c: some locking fixes.
6549
6550 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6551
6552         * metadata.c: added missing break in case statement.
6553
6554 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
6555
6556         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6557         typedbyref return values. Fixes #73941.
6558
6559 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
6560
6561         * security-manager.c|h: Added demandunmanaged method and 
6562         suppressunmanagedcodesecurity class to MonoSecurityManager.
6563         Renamed aptc class to allowpartiallytrustedcallers.
6564
6565 2005-03-17  Martin Baulig  <martin@ximian.com>
6566
6567         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
6568
6569 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6570
6571         * file-io.c: disabled file async. IO using aio_*. It uses the
6572         threadpool now. Workaround for bug #73718.
6573
6574 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6575
6576         * assembly.h, mono-config.c: added code to deal with bundled configs
6577         for bundled assemblies.
6578
6579 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
6580
6581         * *.c, private.h: cleanup, removing old private.h header file.
6582
6583 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
6584
6585         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
6586         and throw_on_unmappable_char attributes.
6587
6588 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
6589
6590         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
6591         _ProcessName_internal.
6592
6593 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
6594
6595         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
6596         #73631.
6597
6598         * icall.c threads.c threads-types.h: Remove slothash icalls as they
6599         are no longer used.
6600
6601 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
6602
6603         * object.c (compute_class_bitmap): Add support for generics. Fixes
6604         #73527.
6605
6606 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6607
6608         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
6609
6610 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6611
6612         * filewatcher.c: commented out the code for windows watcher, as we don't
6613         use it (we use the managed implementation instead).
6614
6615 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
6616
6617         * object-internals.h (MonoThread): Remove 'unused1' field.
6618
6619         * appdomain.c: Bump corlib version.
6620
6621         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
6622
6623         * reflection.c (mono_reflection_create_runtime_class): Remove the
6624         AssemblyBuilder.Save optimization since it causes too many problems.
6625
6626 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
6627
6628         * exception.c|h: Added mono_get_exception_reflection_type_load to
6629         create a ReflectionTypeLoadException object.
6630         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
6631         to return NULL is a InheritanceDemand fails during reflection. Updated
6632         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
6633         ReflectionTypeLoadException if an InheritanceDemand fails during 
6634         reflection. Added icall mapping for GetLinkDemandSecurity.
6635         * security-manager.c|h: Added ves_icall_System_Security_
6636         SecurityManager_GetLinkDemandSecurity internal call to return the
6637         class and methods permissions set for a LinkDemand. Removed unused
6638         fields in MonoSecurityManager.
6639
6640 2005-03-10  Martin Baulig  <martin@ximian.com>
6641
6642         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
6643         it's a generic instance.
6644
6645 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
6646
6647         * reflection.c (mono_get_object_from_blob): Applied patch from
6648         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
6649
6650         * class.c (mono_class_is_assignable_from): Another try at fixing 
6651         #73469 without breaking anything.
6652
6653 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
6654
6655         * class.c: (mono_class_is_assignable_from): Revert the last changes
6656         since they don't work with generics.
6657         
6658         * class.c (mono_class_is_assignable_from): Fix build bustage.
6659
6660         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
6661         the managed IsAssignableFrom method. Fixes #73469.
6662
6663         * reflection.c (mono_reflection_call_is_assignable_from): New helper
6664         function.
6665
6666 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
6667
6668         * object.c (mono_load_remote_field_new): Fix returning uninitialized
6669         memory when the remoting callback does not sets the out arguments.
6670         Fixes #73007.
6671
6672         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
6673         by mistake.
6674
6675         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
6676
6677         * object-internals.h (MonoStackFrame): Sync with managed object layout.
6678
6679         * appdomain.c: Bump corlib version.
6680
6681 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
6682
6683         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
6684         function.
6685
6686         * threads.c (mono_thread_attach): Detect threads which are not started
6687         by the GC pthread wrappers.
6688
6689 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
6690
6691         * icall.c: Added new icall for RNG.
6692         * rand.c|h: Added new icall to open the RNG. This allows to share a 
6693         single handle on Linux to access /dev/urandom and fix #73183.
6694
6695 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
6696
6697         * object.c: setting the new vtable in a transparent proxy object must
6698         not change the GC descriptor.
6699
6700 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6701
6702         * object.c: fixed compilation without GCJ support.
6703         * reflection.c: for runtime-created types ensure klass->has_references
6704         is correct (bug #73215).
6705
6706 2005-03-02  Martin Baulig  <martin@ximian.com>
6707
6708         * class.c (mono_class_is_assignable_from): Make this work if
6709         `oklass' is a generic instance; fixes #72831.
6710
6711 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6712
6713         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
6714         with hasthis set.
6715         
6716         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
6717
6718         * marshal.c: Reorganize native->managed marshalling code to also use
6719         the emit_marshal_... functions.
6720
6721 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6722
6723         * object.c: typed allocs have issues with bitmap sizes > 30,
6724         so check for max_set >= 30.
6725
6726 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
6727
6728         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
6729         managed code. Fixes #73012.
6730
6731         * metadata.h (MonoMarshalSpec): Add elem_mult field.
6732
6733         * metadata.c reflection.c: Load/Emit elem_mult as well.
6734         
6735         * metadata.h (MonoMarshalSpec): Add comment.
6736
6737         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
6738
6739         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
6740         num_elem to -1 if not given.
6741
6742         * object-internals.h (MonoReflectionMarshal): Add has_size field.
6743
6744         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
6745         given values.
6746
6747 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
6748
6749         * null-gc.c (mono_gc_free_fixed): Was not compilable.
6750
6751 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
6752
6753         * reflection.c (encode_marshal_blob): Encode param_num field as well.
6754
6755         * object-internals.h (MonoReflectionMarshal): Add param_num field.
6756
6757 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
6758
6759         * object.c: generalized the reference bitmap creation
6760         and added hooks for the new GC.
6761         * class-internals.c: removed the gc_bitmap field from MonoClass.
6762
6763 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6764
6765         * domain.c: help the compiler to produce better code
6766         in mono_jit_info_table_find ().
6767
6768 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6769
6770         * object.c: make all allocations look typed.
6771
6772 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
6773
6774         * socket-io.c: load Mono.Posix if it's not loaded already
6775         (fixes bug#73033).
6776
6777 2005-02-24  Martin Baulig  <martin@ximian.com>
6778
6779         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
6780         * reflection.c (dup_type): Likewise.
6781
6782 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
6783
6784         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
6785         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
6786
6787 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6788
6789         * domain.c, threads.c, object-internals.h: make the critical thread
6790         local vars use the fast access mode (even when we're compiled in
6791         a lib). Provide accessors to be used by the jit during codegen.
6792
6793 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6794
6795         * appdomain.c: Changed hook functios behavior to include
6796         support for the reflection only assemblies. Some icalls were changed
6797         to support the mentioned assemblies too. Signatures of static methods
6798         try_assembly_resolve and real_load now have an additional parameter:
6799         refonly.
6800
6801         * assembly.c: General changes to mono_assembly_ methods to support
6802         reflection only api. Functions mono_assembly_open, mono_assembly_load,
6803         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
6804         suffix, to support an additional gbool parameter to specify whether
6805         the assembli is reflection only or not. Created some new hook functions 
6806         to add support for reflection only assemblies. Signatures of static 
6807         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
6808         have now an additional parameter: refonly.
6809
6810         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
6811         indicating whether the assembly is reflection only or not.
6812
6813         * exception.c: Add mono_get_exception_invalid_operation.
6814
6815         * icall.c: Throw an InvalidOperationException when trying to invoke
6816         a property/method/event, or trying to set/get the value of a field.
6817         Also add an icall to retrieve the ref_only flag to the
6818         MonoReflectionAssembly.
6819
6820 2005-02-23  Chris Toshok  <toshok@ximian.com>
6821
6822         Part of fix for #72827.
6823         * mono-debug.c (mono_debug_add_method): add lexical block data to
6824         the info we write.  Kind of a hack at the moment - we copy the
6825         lexical block info from the MonoDebugMethodInfo to the
6826         MonoDebugMethodJitInfo here, before writing it.
6827         (mono_debug_read_method): read the lexical block info.
6828
6829         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
6830
6831         * debug-mono-symfile.h: add lexical block support.
6832
6833         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
6834         support.
6835
6836 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6837
6838         * loader.c (mono_lookup_pinvoke_call): Fix warning.
6839
6840         * object.c (mono_runtime_free_method): Call mono_free_method () and
6841         put the TODOs there.
6842
6843         * loader.c (mono_free_method): Free up most memory allocated for 
6844         dynamic methods.
6845
6846 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6847
6848         * reflection.c: properly flag a Type argument to a
6849         named custom attr value (bug #72248).
6850
6851 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6852
6853         * reflection.c: reduce code duplication in named custom
6854         attribute encoding.
6855
6856 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
6857
6858         * reflection.c: properly encode custom attrs of type object
6859         (bug #72649).
6860
6861 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
6862
6863         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
6864
6865 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
6866
6867         * socket-io.c: load System.dll if it's not loaded already
6868         (bug #72850 and #70477).
6869
6870 2005-02-21  Martin Baulig  <martin@ximian.com>
6871
6872         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
6873         generic instances.
6874
6875 2005-02-21  Martin Baulig  <martin@ximian.com>
6876
6877         * reflection.c (mono_image_build_metadata): We also need to
6878         "fixup" the MethodImpl table after we computed the final method
6879         indices.  Call fixup_methodimpl() to do that.
6880         (fixup_methodimpl): New private method.
6881
6882 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
6883
6884         * assembly.c: special case mscorlib.dll (bug#72536),
6885         patch from Carlos Alberto Cortez.
6886
6887 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
6888
6889         * threads-types.h threads.c: Fix build bustage.
6890
6891         * threads.c: Use a union for long<->double conversions.
6892
6893         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
6894         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
6895
6896         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
6897         containing the checkpoint call with NOT_TAKEN.
6898         
6899         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
6900         checkpoint before pushing the arguments, so they won't have to be
6901         spilled to stack.
6902
6903 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6904
6905         * domain.c, assembly.c, domain-internals.h: make some data
6906         const and relocation-free.
6907
6908 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
6909
6910         * object.c, appdomain.c, class-internals.h: introduce the
6911         MonoClassRuntimeInfo structure to hold the info needed to
6912         use a class at runtime. Made mono_class_vtable() lock-free
6913         for all the appdomains.
6914
6915 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
6916
6917         * metadata-internals.h, image.c: introduce a per-image mempool to
6918         be used for memory that has the same lifetime as the image.
6919
6920 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
6921
6922         * domain.c: In mono_init_internal(), instead of selecting the first
6923         runtime version supported by an executable, get a list of all
6924         supported versions and select the one for which an mscorlib exists
6925         (since even if the runtime supports a given version, it doesn't mean
6926         that the framework for that version is installed).
6927         Modified get_runtimes_from_exe to support this behavior.
6928         In supported_runtimes, added information about additional system
6929         assembly versions.
6930         
6931         * assembly.c: Added support for more than one system assembly version
6932         per runtime version. Updated the assembly list.
6933         In mono_assembly_remap_version, removed the initial version check,
6934         since we don't know to which version we need to compare until we
6935         get the version set on which the assembly is based.
6936         Moved the code for loading corlib into the new method
6937         mono_assembly_load_corlib(), so it can be used by the initialization
6938         code.
6939         
6940         * domain-internals.h: Updated data structures and added declaration
6941         for mono_assembly_load_corlib.
6942
6943 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6944
6945         * reflection.c (resolve_object): Fix the creation of the signature in 
6946         the SignatureHelper case.
6947
6948         * assembly.c (mono_assembly_remap_version): Fix binary search.
6949         
6950 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
6951  
6952         * class.c: Added inheritance check when a method is overloaded (from a
6953         virtual method or when implementing an interface) and when a class is
6954         inherited. Added functions to set a failure for a class and to 
6955         retreive the exception from a failure.
6956         * class-internals.h: Added fields to MonoClass to keep the exception
6957         information status for inheritance (or other exceptions) to be thrown
6958         later (i.e. not at load time).
6959         * object.c: Throw the inheritance SecurityException when a type is to 
6960         be created with either class or method inheritance violations.
6961         * reflection.c|h: Fix when getting declsec from a class. Removed 
6962         unrequired code for class. Improved sanity in parameter naming.
6963         * security-manager.c|h: Added functions to check for class and method
6964         inheritance.
6965
6966 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
6967
6968         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
6969         and has_finalize in dynamic types as well.
6970
6971 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
6972
6973         * culture-info-table.h : fixed currency format for en-GB (and so on).
6974
6975 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
6976
6977         * gc.c: ensure the GC handles never have 0 as a value.
6978
6979 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6980
6981         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
6982         a pointer to a struct to unmanaged code. Fixes #72625.
6983
6984 2005-02-16  Martin Baulig  <martin@ximian.com>
6985
6986         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
6987
6988 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
6989
6990         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
6991
6992 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
6993
6994         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
6995
6996         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
6997         UnmanagedFunctionPointerAttribute, use it for determining calling convention
6998         etc. Fixes #71471.
6999
7000         * reflection.c (mono_custom_attrs_get_attr): New helper function.
7001
7002         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
7003
7004 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
7005
7006         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
7007         changes to make the current context a field in MonoThread.
7008
7009 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7010
7011         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
7012         the last change.
7013         
7014         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
7015         extracted from mono_marshal_get_native_wrapper.
7016
7017         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
7018         to create wrappers around native functions.
7019
7020         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
7021         delegates for arbitrary function pointers. Fixes #71472.
7022
7023 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7024
7025         * threads.c: cleaned up the code a little.
7026
7027 2005-02-15  Martin Baulig  <martin@ximian.com>
7028
7029         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
7030         the data table.
7031
7032         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
7033         allocate larger chunks if needed.
7034
7035 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7036
7037         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
7038         in by mistake.
7039
7040 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
7041
7042         * domain.c: keep the domains in an array and ensure the domain ids
7043         are kept small, so they can be used as indexes to domain-specific data
7044         with a small memory overhead.
7045
7046 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7047
7048         * icall.c: Handle byref types in Type icalls. Fixes #72544.
7049
7050 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
7051
7052         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
7053
7054 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
7055
7056         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
7057
7058         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
7059         values.
7060
7061         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
7062         
7063 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
7064
7065         * domain-internals.h: add the hashtable here.
7066
7067         * class-internals.h: Remove `info' from MonoMethod
7068
7069         * domain.c: Add a new hashtable, jit_trampoline_hash
7070
7071 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7072
7073         * object.c: don't set the value of static fields
7074         (fixes bug#72494).
7075
7076 2005-02-11  Martin Baulig  <martin@ximian.com>
7077
7078         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
7079         (mono_debug_add_method): Silently ignore the method if it's too big.
7080         (mono_debug_add_type): Likewise.
7081
7082 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
7083
7084         * threads.c, appdomain.c: remove #ifdefs from the code.
7085
7086 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
7087
7088         * metadata-internals.h: Added flags to MonoAssembly to cache the most
7089         common security informations. This allows us to stay in unmanaged code
7090         when doing LinkDemand and it's special cases (except for the first 
7091         time for initialization). The flags a very much used with --security.
7092         * reflection.c|h: Added code to get declarative security attributes 
7093         for LinkDemand and InheritanceDemand. This required to refactor the
7094         existing code for Demand.
7095         * security-manager.c|h: Added new method fields for the special cases
7096         of LinkDemand.
7097
7098 2005-02-10  Martin Baulig  <martin@ximian.com>
7099
7100         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
7101         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
7102
7103 2005-02-10  Martin Baulig  <martin@ximian.com>
7104
7105         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
7106         debugging code; this is almost a complete rewrite.
7107
7108         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
7109
7110 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7111
7112         * domain.c, object.h: expose mono_string_equal () and 
7113         mono_string_hash ().
7114         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
7115         it's implemented in managed code.
7116
7117 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7118
7119         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
7120         lo leak objects between appdomains.
7121
7122 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7123
7124         * assembly.c: old compilers compilation fix from 
7125         robertj@gmx.net (Robert Jordan).
7126
7127 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
7128
7129         * class-internals.h: Little reminder for the future.
7130
7131         * debug-helpers.c: Fix up wrapper_type_names
7132
7133 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7134
7135         * image.c, metadata-internals.h: when loading an image from a file,
7136         mmap all of it and use the same codepaths as when using a
7137         in-memory image: the code is simpler and we use less memory
7138         (both writable and readonly).
7139
7140 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7141
7142         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
7143         API to alloc runtime data structures that need to be tracked by the
7144         GC and contain pointers.
7145         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
7146         make the code more readable and eventually use a different GC.
7147
7148 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
7149
7150         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
7151         for out arguments.
7152         
7153 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
7154
7155         * object.c: In release_type_locks(), don't release the cctor lock
7156         if it has already been released. This fixes a crash in the
7157         thread5 test.
7158
7159 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7160
7161         * gc.c, marshal.c, icall.c: register a delegate for finalization
7162         only when the native function pointer has been allocated for it.
7163
7164 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7165
7166         * object.c: cleaned up some code, allocate objects that are
7167         pointer free with the atomic malloc variant. Allocate memory
7168         for static data from the mempool if it's pointer-free.
7169         Allocate the bounds array at the end of the array data, when needed.
7170         * object-internals.h, object.h: move a private function in a private
7171         header.
7172         * class.c: handle missing case in tracking references in fields.
7173
7174 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
7175
7176         * class.c, class-internals.h: keep track if a type has
7177         reference fields in either the instance or static fields.
7178
7179 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
7180
7181         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
7182         and renamed to MonoRuntimeInfo. Added fields to store the expected
7183         framework assembly version. Changed mono_get_framework_version and
7184         mono_get_runtime_version for a single mono_get_runtime_info method.
7185         
7186         * assembly.c: Added method to remap system assembly versions to the
7187         current executing runtime version. Removed old mapping code.
7188         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
7189         
7190         * icall.c, reflection.c: Track api changes.
7191
7192 2005-02-06  Miguel de Icaza  <miguel@novell.com>
7193
7194         * loader.c (method_from_memberref): Improve error reporting,
7195         produce the class name instead of the typeref/typedef index. 
7196
7197 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
7198
7199         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
7200
7201 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7202
7203         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
7204         stdcall and charset name mangling.  Reorganize the code and add
7205         some tracing stuff.
7206
7207 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7208
7209         * monodiet.c: More iters!
7210
7211         * marshal.c: Iter usage.
7212
7213         * icall.c: Iter usage.
7214
7215         * object.c: Use iters.
7216
7217         * debug-helpers.c: More iters
7218
7219 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7220
7221         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
7222         under win32.
7223
7224 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
7225
7226         * mono-debug-debugger.c: use iters
7227
7228         * class.c, class-internals.h: mono_class_setup_events is static
7229         now
7230
7231         * All callers: use iters
7232
7233 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
7234
7235         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
7236         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
7237
7238 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7239
7240         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
7241
7242         * marshal.h: Add prototypes for ldfld/stfld_remote.
7243
7244         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
7245         this is called during startup.
7246         
7247 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
7248
7249         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
7250         MonoThreadsSync struct private in monitor.c. Changed the way
7251         MonoThreadsSync is allocated so it's faster and there is no
7252         need to keep track of it with a finalizer and it uses less memory.
7253         This also finally allows us to allocate mono objects as ptrfree when
7254         there are no reference fields.
7255
7256 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
7257
7258         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
7259         disappearing link to the GC interface and use them to simplify
7260         the gchandles code.
7261
7262 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
7263
7264         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
7265         stfld_remote which call mono_load/store_field_new. This allows methods
7266         calling ldfld/stfld wrappers to be AOTed.
7267
7268         * console-io.c: Include sys/filio.h under solaris.
7269         
7270         * console-io.c: Include curses.h if needed correctly.
7271
7272 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7273         
7274         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
7275         method->klass as well.
7276
7277         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
7278
7279         * class.c (mono_class_init): Switch on lazy initialization of 
7280         methods.
7281
7282         * class.c (mono_class_get_finalizer): Handle the case when the 
7283         finalizer is inherited.
7284
7285 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7286
7287         * console-io.c: <curses.h> is needed by term.h on solaris.
7288
7289 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
7290
7291         * icall.c, class-internals.h, monodiet.c, class.c: Remove
7292         mono_class_setup_properties where possible. Remove this ftn from
7293         the header file, and make it static.
7294
7295 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
7296
7297         * loader.c: Add missing setup_... call.
7298
7299         * class.c: Add missing setup_... calls.
7300
7301         * class.c (mono_class_init): Switch on lazy initialization of 
7302         the generic vtable.
7303         
7304         * class.c (mono_class_init): Fix generics broken by the recent changes.
7305
7306         * monodiet.c (handle_type): Add missing setup_... calls.
7307
7308         * class.c: Back out garbage in previous patch.
7309         
7310         * class.c: Add missing setup_... calls.
7311
7312         * class.c (mono_class_get_method_from_name_flags): Avoid calling
7313         mono_class_setup_methods () if possible.
7314
7315         * class-internals.h (MonoClass): Add 'has_cctor' flag.
7316
7317         * class-internals.h (MonoCachedClassInfo): New structure.
7318
7319         * class.c: Initialize properties and events fields of MonoClass lazily.
7320
7321         * class.c: Add infrastructure for lazily initializing the methods and
7322         vtable fields of MonoClass. Not yet used.
7323
7324         * class.c (mono_class_get_finalizer): New helper function.
7325
7326         * class.c: Add infrastructure for loading some class related data from
7327         an AOT file.
7328
7329         * object.c: Add infrastructure for initializing the vtable from data
7330         in the AOT file.
7331
7332         * gc.c (run_finalize): Use mono_class_get_finalizer ().
7333
7334         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
7335         appropriate initialization function before accessing parts of the
7336         MonoClass structure.
7337
7338         * marshal.c: Fix warnings.
7339         
7340         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
7341
7342         * mono-debug-debugger.c (get_exception_message): Use 
7343         mono_class_get_method_from_name_flags ().
7344
7345 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
7346
7347         * reflection.c, appdomain.c: Replace a few manual searches that
7348         Zoltan missed. (Paolo approved this part of my initial patch).
7349
7350 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
7351
7352         * profiler.c: disable recording statistical events at report time.
7353
7354 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7355
7356         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
7357         to byteswap arrays of enum values, too (bug #72080).
7358
7359 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
7360
7361         * appdomain.c (set_domain_search_path): Allow this to be called if
7362         domain->setup is not yet set.
7363
7364         * loader.c (mono_method_get_index): New helper function.
7365
7366         * loader.c reflection.c: Use mono_method_get_index ().
7367
7368         * class.c (mono_class_get_method_from_name_flags): New helper method.
7369
7370         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
7371         this.
7372
7373         * class.c (mono_class_get_cctor): New helper method.
7374
7375         * string-icalls.c object.c class.c marshal.c reflection.c: Use
7376         mono_class_get_method () to look up methods.
7377
7378 2005-02-01  Miguel de Icaza  <miguel@novell.com>
7379
7380         * console-io.c: Fix the build, this should work on Windows.
7381
7382 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
7383
7384         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
7385         be set to null to keep things valid
7386
7387 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7388
7389         * icall.c: added Console 2.0 icalls.
7390         * Makefile.am: added console-io.[ch]
7391         * console-io.[ch]: internal calls for Console 2.0 API.
7392
7393 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7394
7395         * class.c: make sure we consider all the interfaces
7396         when calculating max_interface_id (bug found by
7397         Jeroen Frijters running ikvm).
7398
7399 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
7400
7401         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
7402         valuetype fields to null.
7403
7404         * object.c (set_value): Ditto. Fixes #71669.    
7405
7406 2005-01-31  Martin Baulig  <martin@ximian.com>
7407
7408         * metadata.c (mono_metadata_has_generic_params): New public
7409         function; checks whether something is a generic method.
7410
7411 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
7412
7413         * appdomain.c: fix infinite recursion when adding assemblies.
7414
7415 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7416
7417         * object.c: Fix small typo to return all items for Environment.
7418         GetCommandLineArgs.
7419
7420 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7421
7422         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
7423         reflection.c: more domain and assembly-unload related fixes
7424         and memory leaks plugs.
7425
7426 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
7427
7428         * 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.
7429
7430 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
7431
7432         * loader.c (mono_method_signature): Make this method lazy
7433         (mono_get_method_from_token): Don't computate the signature here.
7434
7435         Doing this saves quite a bit of memory. I got 90 kb on starting up
7436         monodoc. It should also save some disk reads on startup.
7437
7438         * *: MonoMethod->signature might be NULL now. You *MUST* use
7439         mono_method_signature.
7440
7441 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
7442
7443         * object.c (mono_runtime_get_main_args): Return an array from the
7444         current domain here. Fixes #71938.
7445
7446 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
7447
7448         * monitor.c: formatting changes to comply with the
7449         mono coding style and remove #ifdefs from the code.
7450
7451 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7452
7453         * metadata.c, private.h: remove some unneeded data
7454         and use a more compact representation for table schemas.
7455
7456 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
7457
7458         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
7459         to get a better distribution in hash tables.
7460         * *.c: use mono_aligned_addr_hash() where appropriate.
7461         * assembly.c: make var static.
7462
7463 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
7464
7465         * domain-internals.h: Put MonoJitInfo on a diet.
7466
7467         * domain.c: Fix a warning.
7468
7469 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7470
7471         * gc.c: rework the gc handles code to reuse handles
7472         when freed.
7473
7474 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7475
7476         * domain.c: fixed long standing bug in mono_string_equal() which
7477         was brought to light with the ldstr changes.
7478
7479 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
7480
7481         * reflection.c: Remove warning by adding missing include for marshal.h
7482
7483 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7484
7485         * domain.c, object.c: change the ldstr_table to hold
7486         MonoString* as keys: makes the runtime isinterned lookup
7487         faster and simplifies memory management.
7488
7489 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
7490  
7491         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
7492         possible to add imperative security checks before calling the icall.
7493         * reflection.c: Return security attributes on the original MonoMethod
7494         (and not the wrapped one). This fix permissions on icalls.
7495
7496 2005-01-25  Dick Porter  <dick@ximian.com>
7497
7498         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
7499         the check for mktime() support actually test the mktime() return
7500         value.  "Fixes" bug 71682, though the output is still different to
7501         MS.
7502
7503 2005-01-25  Martin Baulig  <martin@ximian.com>
7504
7505         * class.c (mono_class_is_assignable_from): Make this work for
7506         generic instances.
7507
7508 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
7509
7510         * marshal.c (mono_string_utf8_to_builder)
7511         (mono_string_builder_to_utf16): We might not have ownership of the
7512         string. In thise case, we need to create a new buffer.
7513
7514         * object-internals.h (mono_stringbuilder_capacity): sb->str might
7515         be null, in which case, use the default capacity.
7516
7517 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7518
7519         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
7520         GC events to the profiler.
7521
7522 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7523
7524         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
7525         if you don't want the GC to run.
7526
7527 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
7528
7529         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
7530         start providing a GC API and keeping different implementations in
7531         their own file.
7532         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
7533
7534 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
7535
7536         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
7537         mmap rather than allocating a huge buffer.
7538         (mono_debug_close_mono_symbol_file): Free the buffer allocated
7539         above.
7540
7541 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
7542
7543         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
7544         and CheckExecutionRights.
7545         * reflection.c|h: Keep the index of the declarative security to be 
7546         used, instead of the pointer, when AOT compiler is used. Also add 
7547         class initialization when requesting demands.
7548         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
7549         CheckExecutionRights. Both properties are now FALSE by default, and
7550         unmodifiable, unless the --security option is used.
7551
7552 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7553
7554         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
7555         reflection.c: properly refcount images and assemblies, many leaks fixed.
7556
7557 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7558
7559         * threadpool.c: increase the timeout for threads in the thread pool to
7560         10s.  Fixes bug #67159.
7561
7562 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7563
7564         * class-internals.h: Sun's compiler insists on explicit
7565         signed on bit fields to handle then correctly.
7566
7567 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
7568
7569         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
7570         Make the size of the array fit only the number of invalid path
7571         chars that we have.
7572
7573         * class.c (_mono_class_get): Improve the error reporting when a
7574         class referenced is not found, to assist debugging. 
7575
7576 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
7577
7578         * threads.c: fix off-by-one error.
7579         * domain.c: free data allocated in the domain.
7580
7581 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7582
7583         * reflection.c (mono_method_body_get_object): Fill out exception info
7584         as well.
7585
7586         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
7587         structure.
7588         
7589 2005-01-19  Martin Baulig  <martin@ximian.com>
7590
7591         * loader.c (mono_get_method_constrained): Make this work again.
7592
7593 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
7594
7595         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
7596         guint16 to match the managed side.
7597
7598         * reflection.c (mono_reflection_body_get_object): Fill out local
7599         variables array.
7600
7601         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
7602         as well.
7603
7604         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
7605         'local_var_sig_token'.
7606
7607 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
7608
7609         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
7610         System.Drawing.
7611
7612         * reflection.c (mono_method_body_get_object): Handle abstract and
7613         runtime methods.
7614
7615 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
7616
7617         * marshal.c, loader.c, class-internals.h, reflection.c:
7618         store the emthod data for a wrapper in an array instead of a list.
7619
7620 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
7621
7622         * marshal.c: change the code to allocate memory more
7623         conservatively for method wrappers.
7624
7625 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
7626
7627         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
7628         fields from MonoClass to the marshal info structure where they belong.
7629
7630 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7631
7632         * class.c, object.c, class-internals.h, marshal.c: rearrange
7633         some fields and tweak some types to lower memory usage.
7634
7635 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
7636
7637         * threads.c (signal_thread_state_change): Handle the case when the
7638         target thread is the current thread.
7639
7640         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
7641
7642         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
7643         emit_ptr_to_object_conv. 
7644
7645         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
7646         marshalling. Fixes #71352.
7647
7648 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
7649
7650         * metadata.h, blob.h: move table enum to blob.h so it can be included
7651         in any header.
7652         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
7653         cut the size of MonoImage/MonoDynamicImage.
7654
7655 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
7656
7657         * profiler.c (mono_profiler_install_simple): Fix default arguments.
7658
7659 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
7660
7661         * reflection.c, reflection.h, icall.c: add a function to check
7662         if an attribute type is defined for a metadata object.
7663
7664 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
7665
7666         * object-internals.h: Added some needed fields from StringBuilder class.
7667         * marshal.c: Set the maxCapacity when creating a StringBuilder.
7668
7669 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
7670
7671         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
7672         threads before shutting down the runtime.
7673
7674         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
7675
7676 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7677
7678         * object-internal.h, threads.c: implement stacksize and 
7679         parameterized thread start functionality (requires
7680         matching corlib). Marked broken code for later removal.
7681
7682 2005-01-12  Martin Baulig  <martin@ximian.com>
7683
7684         * class-internals.h (MonoGenericClass): Moved the `initialized'
7685         flag to MonoDynamicGenericClass, removed `init_pending'.
7686         (MonoGenericInst): Added `is_reference' flag.
7687
7688 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
7689
7690         * reflection.c (mono_image_create_pefile): Only set the pe_offset
7691         inside the MSDOS header. Fixes #71201.
7692
7693         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
7694         gc thread.
7695         (mono_domain_finalize): Ditto.
7696
7697 2005-01-12  Martin Baulig  <martin@ximian.com>
7698
7699         * class.c (mono_get_shared_generic_class): Use the cache for
7700         non-dynamic generic classes.
7701
7702         * class-internals.h (mono_class_create_generic_2): Removed
7703         function prototype, this function is now static inside class.c.
7704
7705         * class.c (mono_class_create_generic_2): Made this static, only
7706         call it from mono_class_init() and mono_class_setup_parent().
7707         (collect_implemented_interfaces_aux): Call mono_class_init() on
7708         the interfaces we collect.
7709         (mono_class_setup_vtable): Call mono_class_init (class->parent).
7710
7711 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7712
7713         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
7714         it a real thread handle.
7715
7716         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
7717         MonoJitExceptionInfo, since each catch clause needs its own variable.
7718         
7719 2005-01-11  Dick Porter  <dick@ximian.com>
7720
7721         * image.c (mono_pe_file_open): New variant on mono_image_open()
7722         that does not set up the CLI metadata; used for FileVersionInfo so
7723         it can get the data for windows binaries too.
7724         
7725         * process.c (process_read_string_block): Don't read off the end of
7726         the StringTable block.
7727
7728         These both fix bug 70766.
7729
7730 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
7731
7732         * gc.c: set some fields to NULL at GC cleanup time.
7733         * threads.c: if we quit the main thread, call exit ().
7734
7735 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
7736
7737         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
7738
7739 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
7740
7741         * threads.h, threads.c, object.c: added accessor and settor for
7742         main_thread. Handle it specially when exiting from it: wait
7743         for other foreground threads to exit.
7744
7745 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
7746
7747         * process.c, verify.c: remove some bloat.
7748
7749 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
7750
7751         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
7752         the calling convention to cdecl under win32.
7753
7754 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
7755
7756         * object.c (mono_object_get_size): New function to get the size of
7757         an object instance.
7758
7759         * profiler.c (simple_allocation): Use above.
7760
7761 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
7762
7763         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
7764         ves_icall_System_AppDomain_getRootDomain (as it's not required to
7765         get an appdomain by it's id and we can't assume the root's id is 0).
7766         * domain-internals.h: Change the function prototype to match.
7767         * icall.c: Change the icall table for AppDomain.
7768
7769 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
7770
7771         * locales.c (string_invariant_compare_char): Only compute
7772         GUnicodeTypes in the case where we need them.  Test for ordinality
7773         first and return if so.
7774
7775         From the commit:
7776
7777                 /*
7778                  * FIXME: here we must use the information from c1type and c2type
7779                  * to find out the proper collation, even on the InvariantCulture, the
7780                  * sorting is not done by computing the unicode values, but their
7781                  * actual sort order.
7782                  */
7783
7784 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7785
7786         * loader.c: for P/Invoke methods, allow the "Internal" shared
7787         library name to refer to the calling process symbol namespace.
7788
7789 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
7790
7791         * Makefile.am: Add the security manager to the build.
7792         * security-manager.c|h: New. Initialization of the security manager.
7793
7794 2005-01-07  Dick Porter  <dick@ximian.com>
7795
7796         * threads.c: 
7797         * monitor.c: Update thread state during Monitor and WaitHandle
7798         waits.  Fixes bug 71031.
7799
7800 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
7801
7802         * reflection.c (property_encode_signature): Correctly handle when the
7803         property has no methods.
7804
7805 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
7806
7807         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
7808         
7809         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
7810         fields from mb, not rmb. Fixes #71017.
7811
7812         * marshal.c (emit_ptr_to_str_conv): Add support for 
7813         ByValTStr -> string conversion. Fixes #71015.
7814
7815         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
7816
7817         * mempool.c (mono_mempool_contains_addr): New helper function.
7818
7819 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7820
7821         * metadata.c (mono_metadata_compute_size): Fix size calculation of
7822         HasSematics encoded fields.
7823         
7824         * metadata.c (mono_type_to_unmanaged): Improve error message for 
7825         invalid string marshalling.
7826
7827         * metadata.c: Fix warnings.
7828         
7829 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
7830
7831         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
7832         profiler support.
7833
7834 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
7835
7836         * domain.c object.c domain-internals.h: Revert part of r38077 since the
7837         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
7838         tests.
7839
7840 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
7841
7842         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
7843         so methods containing these can be AOTed.
7844
7845 2005-01-03  Martin Baulig  <martin@ximian.com>
7846
7847         * loader.c (find_method): Removed the hack for generic instances.
7848         (method_from_memberref): If our parent is a generic instance, pass
7849         its generic type definition to find_method() and then inflate the
7850         method.
7851         (mono_get_method_constrained): Pass the generic type definition to
7852         find_method() and inflate the method later.
7853
7854         * class-internals.h (MonoStats): Added `generic_class_count'.
7855
7856         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
7857         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
7858
7859         * reflection.c (mono_custom_attrs_from_params): Don't ignore
7860         generic type definitions.
7861
7862 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
7863
7864         * loader.c icall.c: Fix warnings.
7865
7866 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
7869         blittable types. Fixes #70864.
7870
7871 2004-12-29  Martin Baulig  <martin@ximian.com>
7872
7873         * icall.c
7874         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
7875
7876         * reflection.c (mono_method_get_object): Create a
7877         "System.Reflection.MonoGenericMethod" for inflated methods; don't
7878         call mono_get_inflated_method().
7879
7880         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
7881
7882 2004-12-27  Martin Baulig  <martin@ximian.com>
7883
7884         * class-internals.h (MonoMethod): Added `is_inflated' flag.
7885         (MonoMethodInflated): Added `inflated' field.
7886
7887         * class.c (mono_class_inflate_generic_method): Don't really
7888         inflate the method here; just set the `is_inflated' flag in the
7889         MonoMethod.
7890         (mono_class_get_inflated_method): Actually inflate the method here
7891         if it's not already inflated; we use the MonoMethodInflated's new
7892         `inflated' field as a cache.
7893
7894 2004-12-26  Martin Baulig  <martin@ximian.com>
7895
7896         * class.c
7897         (inflate_generic_class): Moved some code out of inflate_generic_type().
7898         (mono_class_inflate_generic_method): If we're already inflated,
7899         inflate the context and use the declaring method; ie. make sure
7900         the declaring method of an inflated method is always the generic
7901         method definition.
7902         (mono_class_create_from_typedef): Create
7903         `class->generic_container->context->gclass'.
7904
7905 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
7906
7907         * metadata-internals.h, marshal.c, reflection.c: More
7908         MonoGHashTable->GHashTable.
7909
7910         * domain-internals.h, class.c: Change MonoGHashTable's into
7911         GHashTables for some cases where no gc stuff is used
7912
7913         All users: update apis
7914
7915 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
7916
7917         * metadata.c (builtin_types): Make this `const'. Makes this get
7918         put into the shareable section.
7919         (mono_metadata_init): Casts to make gcc happy.
7920
7921 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
7922
7923         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
7924
7925 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
7926
7927         * icall.c: Added an internal call to retrieve the position and length
7928         of assembly-level declarative security attributes (RequestMinimum, 
7929         RequestOptional and RequestRefuse). This is used by the Assembly class
7930         to re-create the corresponding permission sets.
7931
7932 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
7933
7934         * marshal.c: fix the stelemref wrapper to be type correct
7935         (and faster).
7936
7937 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
7938
7939         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
7940         to do key & 0x7fffffff. Hashtable already does this. It just
7941         results in longer code.
7942
7943 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
7944
7945         * appdomain.c: Bump corlib version.
7946         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
7947         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
7948         * reflection.c|h: Add functions to get declarative security infos
7949         (blob position and length) for assemblies, classes and methods.
7950
7951 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
7952
7953         * reflection.c: sort the constant table (bug #70693).
7954
7955 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
7956
7957         * object-internals.h, threads.c, domain.c: add accessors for
7958         the MonoThread and MonoDomain tls keys.
7959
7960 2004-12-18  Martin Baulig  <martin@ximian.com>
7961
7962         * class.c (inflate_generic_type): If we're inflating a generic
7963         instance, set `ngclass->context->container = context->container';
7964         ie. the container we inflated into.
7965
7966         * metadata.c (mono_metadata_parse_generic_param): Reflect above
7967         inflate_generic_type() changes.
7968
7969 2004-12-17  Martin Baulig  <martin@ximian.com>
7970
7971         * class-internals.h
7972         (MonoGenericClass): Replaced `MonoType *generic_type' with
7973         `MonoClass *generic_class'.  Removed `dynamic_info'; if
7974         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
7975         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
7976
7977 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
7978
7979         * exception.c (mono_exception_from_token): New helper function.
7980
7981 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
7982
7983         * assembly.c (mono_assembly_load_with_partial_name): Call 
7984         mono_assembly_loaded before invoking the preload hooks. Fixes
7985         #70564.
7986
7987         * object-internals.h (MonoThread): Change culture_info and 
7988         ui_culture_info into an array.
7989
7990         * threads.c: Cache culture info objects from more than one appdomain.
7991
7992         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
7993         current UI culture.
7994
7995 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
7996
7997         * threads.h threads.c appdomain.c: Clear the culture_info field of
7998         all threads during unloading if they point to an object in the dying
7999         appdomain.
8000
8001 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
8002
8003         * culture-info.h (TextInfoEntry): New struct
8004         * object-internals.h: sync with managed
8005         * locales.c: fill the `text_info_data' field
8006         * culture-info-tables.h: update
8007
8008 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8009
8010         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
8011         collector.
8012
8013 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
8014
8015         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
8016         (ves_icall_ModuleBuilder_getMethodToken): Ditto
8017
8018 2004-12-12  Martin Baulig  <martin@ximian.com>
8019
8020         * mono-debug-debugger.c (write_type): If we're an enum and the
8021         builtin types have already been initialized, call mono_class_init().
8022
8023 2004-12-11  Martin Baulig  <martin@ximian.com>
8024
8025         * metadata.c (mono_metadata_load_generic_params): Added
8026         `MonoGenericContainer *parent_container' argument; automatically
8027         compute `container->is_method'; pass the correct owner to
8028         get_constraints().      
8029
8030         * reflection.c (compare_genericparam): Sort the GenericParam table
8031         according to increasing owners. 
8032
8033 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
8034
8035         * profiler.c: allow disabling the default profiler.
8036
8037 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
8038
8039         * decimal.c, icall.c: allow disabling System.Decimal support.
8040
8041 2004-12-09  Marek Safar <marek.safar@seznam.cz>
8042
8043         * reflection.c: Add support for null attribute arguments.
8044
8045 2004-12-09  Martin Baulig  <martin@ximian.com>
8046
8047         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
8048         names to get rid of compiler warnings.
8049
8050 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8051
8052         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
8053         mono_marshal_load_type_info (). Fixes #69625.
8054         (mono_marshal_get_ptr_to_struct): Likewise.
8055
8056 2004-12-08  Martin Baulig  <martin@ximian.com>
8057
8058         * mono-debug.h: Bumped version number to 47.
8059
8060         * mono-debug-debugger.c
8061         (mono_debugger_event_handler, mono_debugger_event): Take two
8062         guint64 arguments insteed of a gpointer and a guint32.  
8063
8064 2004-12-08  Martin Baulig  <martin@ximian.com>
8065
8066         * debug-mono-symfile.h
8067         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
8068         `address' to `native_offset'.
8069
8070 2004-12-08  Martin Baulig  <martin@ximian.com>
8071
8072         * class.c (mono_class_create_from_typespec): Only inflate if we
8073         either have `context->gclass' or `context->gmethod'.
8074
8075 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
8076
8077         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
8078
8079         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
8080
8081         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
8082
8083         * reflection.c (mono_assembly_get_object): Remove the workaround put
8084         in for the release.
8085         
8086         * appdomain.c: Use the corlib_internal field from MonoAssembly.
8087
8088         * appdomain.c: Bump corlib version.
8089
8090         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
8091         be visible in other appdomains.
8092
8093 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
8094
8095         * threads.c: Interlocked inc and dec for longs were messed up,
8096         use a KISS based impl for this. Fixes 70234
8097
8098 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
8099
8100         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
8101
8102 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
8103
8104         * icall.c: fix to follow policy not to allow struct
8105         arguments in icalls.
8106
8107 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8108
8109         * process.c: make the patch that handles spaces in file paths work
8110         on mono/windows too.
8111
8112 2004-12-06  Martin Baulig  <martin@ximian.com>
8113
8114         * class.c (mono_class_create_generic): Call
8115         mono_class_setup_supertypes() if we're dynamic.
8116         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
8117
8118 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
8119
8120         * object-internals.h: Add new fields to MonoThread.
8121
8122         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8123
8124         * icall.c threads-types.h threads.c: Add new icalls.
8125
8126         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
8127
8128         * object-internals.h (MonoReflectionAssembly): Sync object layout with
8129         managed side.
8130
8131         * appdomain.c: Bump corlib version.
8132
8133         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
8134         internal assemblies. Fixes #69181.
8135
8136 2004-12-05  Martin Baulig  <martin@ximian.com>
8137
8138         * class.c (mono_class_inflate_generic_signature): Make this a
8139         no-op if `context' is NULL or we don't have any type parameters;
8140         also copy `sentinelpos'.        
8141
8142 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
8143
8144         * image.c: Add unbox_wrapper_cache.
8145
8146         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
8147
8148         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
8149         function generator.
8150         
8151         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
8152         Fixes #70173.
8153
8154         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
8155         
8156 2004-12-04  Martin Baulig  <martin@ximian.com>
8157
8158         * loader.c (mono_method_get_signature_full): New public function;
8159         like mono_method_get_signature(), but with an additional
8160         `MonoGenericContext *' argument.
8161
8162         * class.c (mono_class_inflate_generic_signature): Formerly known
8163         as inflate_generic_signature(); make this public.
8164
8165 2004-12-04  Martin Baulig  <martin@ximian.com>
8166
8167         * metadata.c
8168         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
8169         instead of a `MonoGenericContainer *'.  
8170         (mono_metadata_parse_array_full): Likewise.
8171         (mono_metadata_parse_signature_full): Likewise.
8172         (mono_metadata_parse_method_signature_full): Likewise.
8173         (mono_metadata_parse_generic_inst): Likewise.
8174         (mono_metadata_parse_generic_param): Likewise.
8175         (mono_metadata_parse_mh_full): Likewise.
8176         (mono_type_create_from_typespec_full): Likewise.
8177
8178 2004-12-03  Martin Baulig  <martin@ximian.com>
8179
8180         * class-internals.h (MonoGenericContainer): Replaced the
8181         `MonoGenericContext * pointer with a `MonoGenericContext'
8182         structure and made it the first element.
8183
8184 2004-12-03  Martin Baulig  <martin@ximian.com>
8185
8186         * class.c
8187         (inflate_generic_type): Set the `context->container' when creating
8188         a new MonoGenericContext.
8189         (mono_class_inflate_generic_method): Likewise.
8190         (mono_class_create_from_typespec): Just use `context->container'
8191         to get the container.
8192
8193         * loader.c (method_from_methodspec): Set `context->parent' from
8194         `context->container' - and if that's a method container, use its
8195         parent.  Also set the `context->container' when creating a new
8196         MonoGenericContext.
8197         (mono_get_method_from_token): Use just `context->container' to get
8198         the container.
8199
8200         * metadata.c (do_mono_metadata_parse_generic_class): Also set
8201         `gclass->context->container'.
8202
8203         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
8204         the `context->container' when creating a new MonoGenericContext.
8205
8206 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
8207
8208         * reflection.c (compare_genericparam): Sort params with identical
8209         owner by their number. Fixes gen-111 on sparc.
8210
8211 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8212
8213         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
8214         around the domain changes.
8215
8216         * appdomain.c (mono_domain_unload): Handle the case when the thread
8217         calling Unload is itself being aborted during unloading. Fixes #70022.
8218
8219         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
8220
8221         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
8222         checkpoint_func as an icall so it gets a wrapper.
8223         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
8224         in the cross-appdomain wrappers too.
8225
8226         * threads.c (mono_thread_has_appdomain_ref): Make this public.
8227
8228         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
8229
8230         * reflection.c: Fix some memory leaks.
8231         
8232 2004-12-02  Martin Baulig  <martin@ximian.com>
8233
8234         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
8235
8236         * metadata.c (generic_class_cache): New static hashtable.
8237         (mono_metadata_lookup_generic_class): New public method.
8238
8239 2004-12-02  Martin Baulig  <martin@ximian.com>
8240
8241         * class.c (mono_class_create_from_typedef): Call
8242         mono_class_setup_parent() and mono_class_create_mono_type() before
8243         parsing the interfaces.
8244
8245 2004-12-02  Martin Baulig  <martin@ximian.com>
8246
8247         * metadata.c (generic_inst_cache): New static hashtable.
8248         (mono_metadata_lookup_generic_inst): New public function.
8249         (mono_metadata_inflate_generic_inst): New public function.
8250         (mono_metadata_parse_generic_inst): New public function.
8251         (do_mono_metadata_parse_generic_class): Use the new
8252         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
8253         since this'll also use the cache.
8254
8255         * reflection.c (mono_reflection_bind_generic_method_parameters):
8256         Use mono_metadata_lookup_generic_inst() to use the new cache.
8257
8258         * class.c (inflate_mono_type): Use
8259         mono_metadata_inflate_generic_inst() to inflate a generic
8260         instance; this'll also use the new cache.
8261
8262         * loader.c (method_from_methodspec): Use
8263         mono_metadata_parse_generic_inst() and
8264         mono_metadata_inflate_generic_inst() rather than parsing it
8265         manually, so we can use the new cache.
8266
8267 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
8268
8269         * threads.c (wait_for_tids): Do not incorrectly free threads when 
8270         the wait times out.
8271
8272 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
8273
8274         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
8275         iter->args based on whether parameters are passed in registers (i.e.
8276         MONO_ARCH_REGPARMS is defined)
8277
8278 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
8279
8280         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
8281         the exception message. Fixes #70070.
8282         (method_from_methodspec): Fix warnings.
8283
8284 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8285
8286         * process.c: (complete_path) return the path quoted
8287
8288 2004-12-01  Martin Baulig  <martin@ximian.com>
8289
8290         * class-internals.h (MonoGenericInst): New structure.
8291         (MonoGenericClass): Replaced `type_argc', `type_argv' and
8292         `is_open' with `MonoGenericInst *inst'.
8293         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
8294         `is_open' with `MonoGenericInst *inst'.
8295
8296 2004-11-30  Martin Baulig  <martin@ximian.com>
8297
8298         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
8299
8300         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
8301         to `generic_class_cache'.
8302
8303         * metadata.c
8304         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
8305         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
8306         (mono_generic_inst_is_valuetype): Renamed to
8307         mono_generic_class_is_valuetype().
8308
8309         * class-internals.h
8310         (MonoGenericInst): Renamed to MonoGenericClass.
8311         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
8312         (MonoClass): Renamed `generic_inst' to `generic_class'.
8313         (MonoGenericContext): Renamed `ginst' to `gclass'.
8314
8315         * object-internals.h
8316         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
8317
8318         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
8319         mono_reflection_generic_class_initialize().
8320
8321         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
8322         now known as "System.Reflection.MonoGenericClass".
8323         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
8324
8325 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
8326
8327         * class-internals.h: Added a flag field to MonoClass to cache the
8328         declarative security attributes actions associated with the class.
8329         * domain-internals.h: Added booleans to MonoJitInfo to cache the
8330         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
8331         applicable to the JITted method.
8332         * reflection.c|h: Added functions to extract (as flags) which security
8333         actions are available (declaratively) for a method, class or assembly.
8334         * metadata.c|h: Added functions to search the declarative security
8335         table in the metadata.
8336         
8337 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
8338
8339         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
8340         EXPORTEDTYPES are already in the class name cache, so there is no
8341         need to add extra code here to look at them. Just removes a bit of
8342         cruft.
8343
8344         (ves_icall_System_Environment_get_TickCount): No need for #if
8345         WINDOWS. We already have the code in io-layer.
8346
8347 2004-11-28  Martin Baulig  <martin@ximian.com>
8348
8349         * loader.c
8350         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
8351         Fixes gen-112.cs.
8352
8353 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
8354
8355         * assembly.c (do_mono_assembly_open): Instead of having a
8356         conditional WITH_BUNDLE, incorporate support for bundles here, by
8357         having a global `bundles' variable holding a pointer to the actual
8358         bundles. 
8359
8360         (mono_register_bundled_assemblies): New API call used by the
8361         bundle code. 
8362
8363         See mkbundle.1 for details.
8364         
8365 2004-11-27  Martin Baulig  <martin@ximian.com>
8366
8367         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
8368         the vtable for generic methods.
8369
8370 2004-11-26  Martin Baulig  <martin@ximian.com>
8371
8372         * metadata.c
8373         (mono_metadata_generic_method_hash): New public function.
8374         (mono_metadata_generic_method_equal): Likewise.
8375
8376         * class-internals.h
8377         (MonoGenericContainer): Added `GHashTable *method_hash'.
8378
8379         * reflection.c (ReflectionMethodBuilder): Added
8380         `MonoGenericContainer *generic_container'.
8381         (reflection_methodbuilder_to_mono_method): Don't create a new
8382         MonoGenericContainer each time we're called.
8383         (mono_reflection_bind_generic_method_parameters): Use
8384         `container->method_hash' to cache the results so we don't create a
8385         different method if we're called several times with the same
8386         arguments.
8387
8388         * loader.c (method_from_methodspec): Use the new
8389         `container->method_hash' here, too.
8390
8391 2004-11-26  Martin Baulig  <martin@ximian.com>
8392
8393         * class.c (inflate_generic_signature): Correctly compute
8394         `res->has_type_parameters'.
8395         (mono_class_vtable): Use the `has_type_parameters' flag to
8396         determine whether we're a generic method.
8397
8398         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
8399
8400 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
8401
8402         * object.c (mono_runtime_run_main): Fix a small memory leak.
8403
8404 2004-11-25  Martin Baulig  <martin@ximian.com>
8405
8406         * class.c (set_generic_param_owner): Fixed the loop.
8407
8408 2004-11-25  Martin Baulig  <martin@ximian.com>
8409
8410         * object.c (mono_class_vtable): Don't create any JIT wrappers for
8411         generic methods.
8412
8413 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
8414
8415         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
8416         names. Fixes #69787.
8417
8418 2004-11-24  Martin Baulig  <martin@ximian.com>
8419
8420         * class.c (mono_class_create_generic_2): If we don't have a
8421         `ginst->parent', inflate `gklass->parent' to get our parent.
8422
8423 2004-11-24  Martin Baulig  <martin@ximian.com>
8424
8425         * reflection.c (compare_genericparam): Correctly sort the
8426         GenericParam table; fixes #69779.
8427
8428 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
8429
8430         * reflection.c: When writing a PE file, don't create a huge
8431         buffer in memory. Just write the arrays we have to the file.
8432         This reduces memory usage.
8433
8434         * metadata-internals.h: MonoDynamicStream pefile is no longer used
8435         globally.
8436
8437 2004-11-17  Martin Baulig  <martin@ximian.com>
8438
8439         * class.c (mono_class_init): Don't setup `class->parent' for
8440         dynamic instances; moved this to mono_class_generic_2().
8441         (mono_class_create_generic): Also set `klass->inited' for dynamic
8442         generic instances.
8443         (mono_class_create_generic_2): Don't do anything for dynamic
8444         generic instances.  Set `klass->parent' here and also call
8445         mono_class_setup_parent() here. 
8446
8447         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
8448         `MonoType *parent' argument; set `ginst->parent' before calling
8449         mono_class_create_generic_2(), so we set the correct parent.
8450
8451 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
8452
8453         * reflection.c: allow getting attributes from ModuleBuilder
8454         (used by ikvm).
8455
8456 2004-11-17  Martin Baulig  <martin@ximian.com>
8457
8458         * class.c (mono_class_create_from_typedef): If a type parameter is
8459         inherited from an outer class, set its owner to that class.
8460
8461 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
8462
8463         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
8464           for (int*) written size. This fixes bug #69592.
8465
8466 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
8467
8468         * icall.c: Added IsAuthenticodePresnet internal call.
8469         * image.c|h: New function that check a MonoImage for an Authenticode
8470         signature in the certificate PE data directory.
8471         * security.c|h: New internal call to ask the runtime if an 
8472         Authenticode signature seems referenced in the PE header.
8473
8474 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
8475
8476         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
8477
8478         * reflection.c (mono_image_create_pefile): Free the assembly streams
8479         after writing out the assembly file.
8480
8481         * object.c (mono_runtime_run_main): Fix small memory leak.
8482
8483         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
8484         property access modifiers. Fixes #69389.
8485
8486 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
8487
8488         * domain.c, object.c, object-internals.h, domain-internals.h,
8489         object.h, marshal.c: keep dynamic code info per domain.
8490
8491 2004-11-15  Martin Baulig  <martin@ximian.com>
8492
8493         * class.c (mono_type_get_name_recurse): Put type arguments in
8494         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
8495         see bug #68387.
8496
8497 2004-11-15  Martin Baulig  <martin@ximian.com>
8498
8499         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
8500         (mono_class_setup_vtable): When computing `the_cname' for a
8501         generic instance, don't include the namespace since we'd otherwise
8502         add it twice.
8503
8504 2004-11-15  Martin Baulig  <martin@ximian.com>
8505
8506         * class.c (mono_class_create_generic): Changed return type to void.
8507         (mono_class_create_generic_2): New public function; setup
8508         `class->method', `class->field' and `class->interfaces' here
8509         instead of in mono_class_init().
8510
8511         * class.h (mono_class_create_generic): Moved to class-internals.h.
8512
8513 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
8514
8515         * reflection.c (mono_image_create_pefile): take a file HANDLE.
8516         rather than writing to memory, write to this file. Right now,
8517         we are just writting into a buffer, and copying that. However
8518         we can avoid the buffer later.
8519
8520         (mono_dynamic_stream_reset): new function
8521
8522         * icall.c, object-internals.h: update for the above.
8523
8524 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
8525
8526         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
8527         have been using gc'd memory. First it is slower, unlikely
8528         the comment in the source code said, secondly, it increases
8529         our footprint to do it in the gc.
8530
8531         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
8532         the method so that it does not have to copy to managed code.
8533
8534 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
8535
8536         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
8537
8538 2004-11-12  Martin Baulig  <martin@localhost>
8539
8540         * reflection.c (mono_image_create_token): Allow generic method
8541         definitions here, since they may appear in an `.override'; see
8542         gen-98/gen-99 for an example.
8543
8544 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
8545
8546         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
8547         #69365.
8548
8549         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
8550         descriptive.
8551
8552 2004-11-11  Martin Baulig  <martin@ximian.com>
8553
8554         * class.c (mono_class_setup_vtable): In an explicit interface
8555         implementation, the method name now includes the arity.
8556
8557 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
8558
8559         * object.c (mono_array_full_copy): Fix warning.
8560
8561 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
8562
8563         * appdomain.c: Removed look_for_method_by_name(). Use the new method
8564         mono_class_get_method_from_name() instead.
8565         
8566         * class-internals.h: Added two new types of wrappers. 
8567         Added MonoRemotingTarget enum. Added new trampoline function type, which
8568         takes an additional MonoRemotingTarget value as parameter, so it is
8569         possible to request a trampoline for a specific target.
8570         
8571         * class.c: Added new mono_class_get_method_from_name() method.
8572         
8573         * class.h: In MonoRemoteClass, we can have now to vtables, one for
8574         general remoting sinks and one specific for cross domain calls.
8575         
8576         * debug-helpers.c: Added new wrapper names.
8577         
8578         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
8579         of a remote class.
8580         
8581         * image.c: Porperly delete value objects form the remoting invoke hashtable.
8582         
8583         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
8584         with several other methods (mono_marshal_get_xappdomain_dispatch,
8585         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
8586         and others) can generate a fast remoting wrapper for cross domain calls.
8587         More information can be found in docs/remoting.
8588         Other changes: Removed mono_find_method_by_name, and used
8589         mono_class_get_method_from_name instead.
8590         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
8591         is stored in the remoting invoke hashtable.
8592         
8593         * marshal.h: published the new method for getting the xdomain wrapper,
8594         and also added a method for getting the adequate wrapper for a given
8595         method and target.
8596         
8597         * object-internals.h, object.c: Added a couple of methods for capying and
8598         cloning arrays.
8599         Modified mono_install_remoting_trampoline, which takes the new remoting
8600         trampoline that has a remoting target as parameter.
8601         mono_class_proxy_vtable now also takes a remoting target as parameter, and
8602         will return the most suitable vtable for the target.
8603         Added mono_remote_class_vtable, which returns the vtable of a remote class
8604         (which can be the normal remoting vtable or the xdomain vtable).
8605         
8606         * threads.c: the xdomain invoke and dispatch wrappers must also be
8607         protected against interruptions.
8608
8609 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8610
8611         * icall.c: use memmove in BlockCopyInternal when the source and
8612         destination arrays are the same.
8613
8614 2004-11-09  Martin Baulig  <martin@ximian.com>
8615
8616         * class-internals.h (MonoGenericContainer): Removed `method' and
8617         `signature', replaced them with `is_method' and `is_signature'
8618         flags.  Added `context'.
8619
8620         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
8621         instead of a `MonoGenericContainer *'.
8622
8623         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
8624         for dynamic type parameters.
8625         (mono_metadata_load_generic_params): Setup `container->context'.
8626
8627         * reflection.c (mono_reflection_setup_generic_class): Setup
8628         `tb->generic_container->context'.
8629         (do_mono_reflection_bind_generic_parameters): Use
8630         mono_class_inflate_generic_type() to correctly inflate types,
8631         rather than using our own hack just for MONO_TYPE_VAR.
8632
8633 2004-11-09  Martin Baulig  <martin@ximian.com>
8634
8635         * class.c (mono_class_inflate_generic_method): Small fix; don't
8636         crash here.
8637
8638         * icall.c
8639         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
8640         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
8641         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
8642         (ves_icall_Type_BindGenericParameters): Likewise.
8643         (ves_icall_Type_get_IsGenericInstance): Likewise.
8644         (ves_icall_Type_GetGenericParameterPosition): Likewise.
8645         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
8646         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8647         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
8648
8649 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
8650
8651         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
8652         assembly versions and public key tokens. Fixes #69113.
8653
8654 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
8655
8656         * metadata.c: fix bug introduced with the type cache changes
8657         on 2004-11-06.
8658
8659 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
8660
8661         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
8662         the MonoClass pointer instead of the token in exception clauses.
8663         * reflection.c: updates for the above and make the code not depend
8664         on the structure of MonoExceptionClause.
8665
8666 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
8667
8668         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
8669         Add support for dynamic assemblies. Fixes #69114.
8670
8671         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
8672
8673 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
8674
8675         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
8676         since most only those methods use it. the code member of
8677         MonoMethodPInvoke was dead, so that can be removed too. Also,
8678         remove inline_count (again, not used), and move slot so that it
8679         can share bits with some other flags. This saves 8 bytes in the
8680         structure and gives us about 50 kb back for mcs helloworld.cs
8681
8682         * *.[ch]: Do naming changes for the above.
8683
8684         * loader.c (mono_method_get_header): Lazily init the header
8685         on first access.
8686         (mono_get_method_from_token): don't init the header here
8687         (mono_free_method): the header may never be allocated
8688
8689         Overall, this saves 150 kb of unmanaged allocations
8690         for mcs helloworld.cs. That accounts for 10% of the unmanaged
8691         memory at runtime.
8692         
8693         * loader.c, loader.h (mono_method_get_header): new accessor.
8694
8695         * *.[ch]: use the above method. Prepares us to lazily load
8696         the header.
8697
8698         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
8699         three warnings, which are actual bugs (see 69206).
8700
8701         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
8702         unused. Saves a cool 4 bytes / method.
8703
8704 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
8705
8706         * metadata.c (builtin_types): Add types for System.Object here.
8707         (mono_metadata_parse_type_full): Cache MonoType*'s that are
8708         for a class or valuetype from klass->this_arg or klass->byval_arg.
8709
8710         On mcs for a hello world, this gets us down from 21836 MonoType's
8711         to 14560.
8712
8713         (mono_metadata_free_type): Account for the above change.
8714
8715 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
8716
8717         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
8718         exception instead of asserting if name is null.
8719         (ves_icall_System_AppDomain_GetData): Ditto.
8720
8721 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
8722
8723         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
8724         EnumBuilder.
8725
8726         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
8727         Return NULL when the domain does not have entry_assembly set.
8728
8729         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
8730         Add a 'resource_modules' argument.
8731         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
8732
8733         * reflection.c (mono_reflection_create_runtime_class): Move setting
8734         of wastypebuilder here, so mono_get_type_object () returns a MonoType
8735         for enums too.
8736
8737         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
8738         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
8739         Throw an ArgumentNullException if 'ptr' is null.
8740
8741         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
8742         assemblies here. Fixes #69020.
8743
8744 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
8745
8746         * reflection.c (build_compressed_metadata): Fix the previous patch for
8747         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
8748         the stack.
8749
8750 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
8751
8752         * assembly.c (mono_assembly_names_equal): Allow a match if one of
8753         the cultures is false. Fixes #69090.
8754
8755         * reflection.c (build_compressed_metadata): Fix invalid memory read 
8756         detected by valgrind.
8757         
8758         * reflection.c (mono_reflection_get_type): Avoid triggering a 
8759         TypeResolve multiple times for the same type. Fixes #65577.
8760
8761 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
8762
8763         * marshal.c: Avoid using ldftn to call managed functions. It is
8764         much slower than just a call.
8765
8766         * reflection.c (mono_module_get_object): free the basename we
8767         allocate here from glib.
8768         
8769         * reflection.c (ensure_runtime_vtable): make sure to free
8770         overrides.  Also, we were allocating an array of MonoMethod not an
8771         array of MonoMethod*.
8772
8773         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
8774
8775         * image.c (mono_image_close): free image->guid here.
8776
8777 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
8778
8779         * reflection.c: Fix some spec conformance issues with the PE file
8780         structures so mcs compiled apps run on the Net 2.0 beta.
8781
8782 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
8783
8784         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
8785         Implement this. Fixes #67264.
8786
8787         * debug-helpers.h debug-helpers.c marshal.c: Move 
8788         mono_find_method_by_name to debug-helpers.c.
8789
8790 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
8791
8792         * object.c (mono_release_type_locks): type_initialization_hash is
8793         a GHashTable.
8794
8795         * reflection.c object.c object-internals.h: Fix warnings.
8796
8797         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
8798         without accessors. Fixes #61561.
8799
8800         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
8801         application base from the root domain if not set. Fixes #65641.
8802         (mono_runtime_init): Fix warning.
8803
8804 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8805
8806         * appdomain.c: call mono_thread_pool_init.
8807         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
8808         of worker threads based on the number of CPUs and the environment
8809         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
8810         for non-windows (windows) systems.
8811
8812 2004-10-27  Chris Toshok  <toshok@ximian.com>
8813
8814         * mono-debug-debugger.c (write_class): don't call mono_class_init
8815         here, as even with the check for (!klass->init_pending), we get
8816         into a situation where we're hitting cycles in class
8817         initialization.  Fixes #68816.
8818
8819 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
8820
8821         * image.c: Avoid overwriting values in the loaded_images_hash when an
8822         assembly is loaded multiple times. Fixes #61152.
8823
8824         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
8825         so multiple satellite assemblies for the same name can be loaded.
8826         Fixes #68259.
8827
8828         * mono_domain_assembly_preload: Actually return the loaded assembly, 
8829         not NULL.
8830
8831         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
8832         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
8833
8834         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
8835         pending finalizers are not invoked after the appdomain has been 
8836         unloaded. Fixes #67862.
8837
8838 2004-10-22  Martin Baulig  <martin@ximian.com>
8839
8840         * mono-debug-debugger.c
8841         (mono_debugger_runtime_invoke): Don't box valuetypes.
8842
8843 2004-10-22  Chris Toshok  <toshok@ximian.com>
8844
8845         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
8846         don't hide private methods.
8847
8848 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
8849
8850         * icall.c: Allows the runtime to "share" (when known) the public key
8851         token of an assembly. This avoid the need to recalculate the token 
8852         (from the public key) in managed code.
8853
8854 2004-10-21  Chris Toshok  <toshok@ximian.com>
8855
8856         * debug-helpers.c (append_class_name): argh, revert last patch.
8857         
8858 2004-10-21  Chris Toshok  <toshok@ximian.com>
8859
8860         * debug-helpers.c (append_class_name): use '+' as the delimiter,
8861         not '/', so that it matches what the debugger uses to look up
8862         methods.
8863
8864 2004-10-21  Martin Baulig  <martin@ximian.com>
8865
8866         * mono-debug-debugger.c (mono_debugger_throw_exception): New
8867         public method; this is called each time an exception is thrown and
8868         allows the debugger to use exception catch points.
8869
8870 2004-10-21  Martin Baulig  <martin@ximian.com>
8871
8872         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
8873         the stack pointer and the exception object in some struct and pass
8874         that to the debugger.
8875
8876 2004-10-21  Chris Toshok  <toshok@ximian.com>
8877
8878         * mono-debug-debugger.c (do_write_class): add instance/static
8879         event support.  We don't expose "raise" or "other" yet.
8880         (event_is_static): new method.
8881
8882 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
8883
8884         * mono-debug-debugger.c
8885         (mono_debugger_handle_exception): Remove
8886         bogus return value for fussy compilers.
8887
8888 2004-10-20  Martin Baulig  <martin@ximian.com>
8889
8890         * mono-debug-debugger.c
8891         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
8892         (mono_debugger_handled_exception): Likewise.
8893
8894 2004-10-20  Martin Baulig  <martin@ximian.com>
8895
8896         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8897         MONO_DEBUGGER_EVENT_EXCEPTION.
8898
8899         * mono-debug-debugger.c (mono_debugger_handle_exception): New
8900         public function to send the debugger a notification for an
8901         exception and inform it about a catch/finally clause.
8902
8903 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
8904
8905         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
8906         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
8907         fix 2.95 build. 
8908
8909         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
8910
8911 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
8912
8913         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
8914         marshalled as [In,Out]. Fixes #58325.
8915
8916 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
8917
8918         * reflection.c (mono_method_body_get_object): Implement some fields.
8919
8920 2004-10-12  Martin Baulig  <martin@ximian.com>
8921
8922         * reflection.c (mono_reflection_bind_generic_parameters): Small
8923         fix, correctly retrieve our parent from a generic instance.
8924
8925 2004-10-12  Martin Baulig  <martin@ximian.com>
8926
8927         * metadata.c (mono_metadata_generic_param_equal): We always have
8928         an owner.
8929
8930         * class.c
8931         (mono_class_from_generic_parameter): We need to have an owner.
8932         (my_mono_class_from_generic_parameter): Likewise.
8933
8934         * reflection.c (mono_reflection_setup_generic_class): Renamed to
8935         mono_reflection_create_generic_class() and added a new
8936         mono_reflection_setup_generic_class().  
8937         (mono_reflection_initialize_generic_param): If we're a nested
8938         generic type and inherited from the containing class, set our
8939         owner to the outer class.
8940
8941 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
8942
8943         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
8944
8945         * reflection.c (mono_method_body_get_object): New function to create
8946         a MethodBody object.
8947
8948         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
8949
8950 2004-10-11  Martin Baulig  <martin@ximian.com>
8951
8952         * metadata.c (_mono_metadata_type_equal): Renamed to
8953         do_mono_metadata_type_equal() and made static.
8954
8955 2004-10-11  Martin Baulig  <martin@ximian.com>
8956
8957         * appdomain.c: Bump corlib version number to 28.
8958
8959 2004-10-10  Martin Baulig  <martin@ximian.com>
8960
8961         * class-internals.h
8962         (MonoGenericInst): Added `MonoGenericContainer *container'.
8963         (MonoGenericMethod): Likewise.
8964         (MonoGenericContext): Likewise.
8965         (MonoGenericParam): Added `MonoGenericContainer *owner'.
8966
8967         * metadata.c
8968         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
8969         (do_mono_metadata_parse_generic_inst): Likewise.
8970         (mono_metadata_parse_type_full): New public method.  This is the actual
8971         mono_metadata_parse_type() implementation - with an additional
8972         `MonoGenericContainer *' argument.
8973         (mono_metadata_parse_array_full): Likewise.
8974         (mono_metadata_parse_signature_full): Likewise.
8975         (mono_metadata_parse_method_signature_full): Likewise.
8976         (mono_metadata_parse_mh_full): Likewise.
8977         (mono_type_create_from_typespec): Likewise.
8978         (mono_metadata_interfaces_from_typedef_full): New public method;
8979         this is similar to the other _full() methods, but we take a
8980         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
8981         (mono_metadata_parse_generic_param): Take an additional
8982         `MonoGenericContainer *' argument and lookup the MonoGenericParam
8983         from that container.
8984         (mono_metadata_generic_param_equal): New static method to compare
8985         two type parameters.
8986         (_mono_metadata_type_equal): New static method; takes an
8987         additional `gboolean signature_only' argument - if true, we don't
8988         compare the owners of generic parameters.
8989         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
8990         with a TRUE argument - do a signature-only comparision.
8991
8992         * loader.c: Use the new _full() methods and pass the
8993         MonoGenericContainer to them.
8994
8995         * object-internals.h (MonoReflectionTypeBuilder): Added
8996         `MonoGenericContainer *generic_container' field.
8997         (MonoReflectionMethodBuilder): Likewise.
8998
8999 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
9000
9001         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
9002         case initial images of dynamic assemblies.
9003
9004         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
9005
9006         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
9007
9008         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
9009         length of event->other array.
9010         (typebuilder_setup_events): Ditto.
9011
9012         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
9013         'assembly_by_name' and add an 'assemblies' list.
9014
9015         * assembly.h assembly.c: Add a new search hook for determining whenever
9016         an assembly is already loaded. Use this instead of searching in the
9017         loaded_assemblies list.
9018
9019         * domain.c appdomain.c: Implement the new search hook so loaded 
9020         assemblies are now scoped by appdomain. Fixes #67727.
9021
9022 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
9023
9024         * threads.c (mono_thread_attach): Initialize synch_lock field so
9025         mono_thread_detach works again.
9026
9027         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
9028         'lib' too. Fixes #63130.
9029
9030 2004-10-06  Jackson Harper  <jackson@ximian.com>
9031
9032         * culture-info-tables.h: regenerated.
9033
9034 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
9035
9036         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
9037         implemented by other interfaces in the result. Fixes #65764.
9038         
9039         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9040         Handle unloadable modules without crashing.
9041
9042         * image.c (load_modules): Revert the previous patch since modules must
9043         have a fixed index inside the array.
9044         
9045         * image.c (load_modules): Don't include native modules in the modules
9046         array.
9047
9048 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
9049
9050         * reflection.h: Add param_defaults field.
9051
9052         * reflection.c: Add support for parameter defaults in dynamic methods.
9053         Fixes #64595.
9054
9055         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
9056         an empty string when a type has no namespace. Fixes #64230.
9057
9058 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
9059
9060         * tabledefs.h: Added "internal" security actions to support non-CAS
9061         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
9062         Note: they do not seems to be used anymore in 2.0 (new metadata format)
9063
9064 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
9065
9066         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
9067         constructor of abstract class. Fixes #61689.
9068
9069 2004-10-04  Martin Baulig  <martin@ximian.com>
9070
9071         * class-internals.h (MonoGenericContainer): New type.
9072         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
9073         `MonoGenericContainer *generic_container'.
9074         (MonoClass): Replaced `gen_params' and `num_gen_params' with
9075         `MonoGenericContainer *generic_container'.
9076
9077         * metadata.c (mono_metadata_load_generic_params): Return a
9078         `MonoGenericContainer *' instead of a `MonoGenericParam *';
9079         removed the `num' argument.
9080
9081 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
9082
9083         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
9084         for dynamic images.
9085
9086         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
9087         machine fields.
9088
9089         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
9090
9091         * reflection.c: Save pe_kind and machine values into the generated
9092         image file.
9093
9094         * appdomain.c: Bump corlib version number.
9095
9096         * object-internals.h: Reorganize layout of LocalBuilder.
9097
9098         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
9099         New helper function.
9100
9101         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
9102         created MonoType for dynamic types. Fixes #66180.
9103
9104 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
9105
9106         * threadpool.c: the ares hashtable needs a critical section around it.
9107         this prevents some nasty segfaults
9108
9109 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
9110
9111         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
9112         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
9113         bug 67324).
9114         
9115 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9116
9117         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
9118         
9119 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
9120
9121         * image.c: Always canonicalize image file names, to avoid loading
9122         the same assembly twice when referenced using a relative path.
9123
9124 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
9125
9126         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
9127
9128         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
9129
9130         * marshal.c: Fix warnings.
9131
9132 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
9133
9134         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
9135         attempting to marshal the delegate_trampoline as the method_addr.
9136         This patch has a static hashtable of marshalled delegates so that 
9137         we can map delegate_trampoline addresses back to delegates.  This
9138         allows a delegate passed to managed code to be passed back into native
9139         code.  Fixes #67039
9140
9141 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9142
9143         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
9144
9145         * reflection.c (method_encode_code): Align method headers properly.
9146         Fixes #66025.
9147
9148 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9149
9150         * marshal.c: In the runtime invoke wrapper, reset the abort
9151         exception if it is cached. This avoids the automatic rethrowal of 
9152         the exception after the catch of the wrapper. Also check for pending
9153         interruptions before calling the managed method. This is done using
9154         the new method emit_thread_force_interrupt_checkpoint, since the
9155         normal checkpoint method is ignored when running the invoke wrapper.
9156         * object.c: If the abort exception is rethrown, set the abort_exc
9157         field of the thread, so it will be rethrown aftere every catch.
9158         * threadpool.c: Only run an interruption checkpoint if what has been
9159         requested is a stop of the thread (aborts will be ignored).
9160         * threads.c: By default, a thread will now never be interrumped while
9161         running the runtime invoke wrapper (this ensures that runtime_invoke
9162         will always return to the caller if an exception pointer is provided).
9163         There is a new special method mono_thread_force_interruption_checkpoint()
9164         to force an interruption checkpoint even if running a protected
9165         wrapper, which is used by the same runtime invoke wrapper to do a check
9166         at a safe point.
9167
9168 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
9169
9170         * object.c, object-internals.h: Implemented mono_release_type_locks,
9171         which releases the cctor locks held by a thread.
9172         * threads.c, threads.h: In thread_cleanup, release cctor locks held
9173         by a thread. Added mono_thread_exit() method to be used to safely stop
9174         a thread.
9175
9176 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9177
9178         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9179         Move null check before dereference.  Avoid indexing beyond the end
9180         of the 'modules' array.
9181
9182 2004-09-28  Raja R Harinath  <rharinath@novell.com>
9183
9184         * metadata-internals.h (MonoImage): Add module_count field.
9185         * image.c (load_modules): Set image->module_count.
9186         (mono_image_load_file_for_image): Use image->module_count.
9187         * reflection.c (mono_image_load_module): Append to image->modules array 
9188         of dynamic assembly.
9189         (mono_module_get_object): Fix loop to actually increment index.
9190         Use image->module_count.
9191         * assembly.c (mono_assembly_load_references): Use image->module_count.
9192         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
9193         Likewise.
9194
9195 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
9196
9197         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
9198         Avoid assert on generic types.
9199
9200 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
9201
9202         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
9203
9204         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
9205
9206         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
9207         function to convert a MarshalSpec structure to its managed counterpart.
9208
9209         * reflection.c: Fix warnings.
9210         
9211         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
9212         field.
9213
9214         * icall.c (mono_create_icall_signature): Fix build.
9215
9216 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
9217
9218         * icall.c: Add MakePointType icall.
9219
9220         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
9221         warnings.
9222
9223 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9224
9225         * threadpool.c: reuse allocated slots in the queue.
9226
9227 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
9228
9229         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
9230
9231         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
9232
9233         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
9234         previous change.
9235
9236         * tabledefs.h: Add constants for pinvoke attributes BestFit and
9237         ThrowOnUnmappableChar.
9238
9239         * icall.c (ves_icall_Type_GetPacking): New icall.
9240
9241 2004-09-24  Martin Baulig  <martin@ximian.com>
9242
9243         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
9244
9245 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9246
9247         * appdomain.c:
9248         (mono_domain_set): allow setting a domain that is being unloaded.
9249         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
9250         being unloaded.
9251
9252 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9253
9254         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
9255         the GetCustomAttributes icall.
9256
9257 2004-09-23  Martin Baulig  <martin@ximian.com>
9258
9259         * object-internals.h (MonoReflectionGenericParam): Replaced
9260         'has_ctor_constraint', `has_reference_type' and `has_value_type'
9261         with `guint32 attrs'.
9262
9263 2004-09-23  Martin Baulig  <martin@ximian.com>
9264
9265         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
9266
9267 2004-09-23  Martin Baulig  <martin@ximian.com>
9268
9269         * object-internals.h (GenericParameterAttributes): New enum.
9270
9271 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
9272
9273         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
9274         
9275         * class.c (init_events): Fill out event->other field.
9276
9277         * class.c: Fix warnings.
9278
9279         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
9280
9281 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
9282
9283         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
9284         walk which doesn't supply the IL offset.
9285
9286 2004-09-22  Martin Baulig  <martin@ximian.com>
9287
9288         * reflection.c (mono_reflection_setup_internal_class): If we're
9289         System.ValueType, System.Object or System.Enum, set
9290         `klass->instance_size' and create the vtable.
9291         (mono_reflection_create_internal_class): If we're an enum type,
9292         get the base class from our current corlib.
9293
9294 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
9295
9296         * reflection.h (MonoResolveTokenError): New type.
9297
9298         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
9299         icall.
9300
9301         * icall.c: Add an 'error' argument to the ResolveToken icalls.
9302
9303 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
9304
9305         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
9306         Support also calling constructors, but only for already allocated objects.
9307
9308 2004-09-17  Geoff Norton <gnorton@customerdna.com>
9309
9310         * reflection.c (type_get_qualified_name): If the klass is null
9311         return the typename to avoid a NullRefEx.
9312         (encode_cattr_value): Get the qualified name of the boxed type,
9313         not the underlying enumtype.  Fixes #62984.
9314
9315 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
9316
9317         * marshal.c: Fix problems with previous checkin.
9318
9319 2004-09-21    <vargaz@freemail.hu>
9320
9321         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
9322         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
9323
9324         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
9325
9326 2004-09-21  Geoff Norton <gnorton@customerdna.com>
9327
9328         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
9329         should only return a type for pointers, arrays, and passbyref types.
9330         Fixes bug #63841.
9331
9332 2004-09-21  Martin Baulig  <martin@ximian.com>
9333
9334         * domain.c (mono_debugger_check_runtime_version): New public
9335         function.
9336
9337         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
9338
9339 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
9340
9341         * reflection.c: Added missing sort to the declarative security 
9342         attributes table. MS implementation stops seeing the attributes if the
9343         token number regress in the table (as shown by ildasm and permview).
9344
9345 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
9346
9347         * object-internals.h (MonoReflectionModule): Add 'token' field.
9348         
9349         * reflection.c (mono_reflection_get_token): Add support for Module
9350         and Assembly.
9351         (mono_module_get_object): Set 'token' field.
9352         (mono_module_file_get_object): Set 'token' field.
9353
9354         * icall.c: Add new Assembly and Module icalls.
9355
9356         * appdomain.c: Bump corlib version.
9357
9358 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
9359
9360         * loader.h loader.c class.h class.c: Add helper functions for obtaining
9361         tokens of metadata objects.
9362
9363         * reflection.h reflection.c (mono_reflection_get_token): New function
9364         to obtain the token of a metadata object.
9365
9366         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
9367
9368 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
9369
9370         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
9371         
9372         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
9373
9374 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
9375
9376         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
9377         * object-internals.h: Added 3 MonoArray* members to MonoReflection
9378         AssemblyBuilder to access the permissions set in the class lib.
9379         * reflection.c: Added security attributes encoding step in 
9380         mono_image_build_metadata.
9381         * tabledefs.h: Added new security actions defined in 2.0:
9382         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
9383
9384 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9385
9386         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
9387         macro parameter.
9388
9389 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
9390  
9391         * locales.c: nullify the ICU_collator member of CompareInfo when it is
9392           finalized. There where random SIGSEVs at program termination, when
9393           an object being finalized was trying to do a string comparison and
9394           the current culture was already finalized.
9395  
9396 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9397
9398         * threads.c: call thread_cleanup before finishing the thread if we get
9399         there.
9400
9401 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
9402
9403         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
9404         assemblies from the parent. Fixes #65665.
9405
9406 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
9407
9408         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
9409         modifiers.
9410
9411 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
9412
9413         * reflection.h: add prototype for mono_get_dbnull_object
9414         * reflection.c: add prototypes for get_default_param_value_blobs 
9415         and mono_get_object_from_blob for fussier compilers
9416
9417 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
9418  
9419         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
9420         false deadlock checks in class initialization.
9421  
9422 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
9423
9424         * image.c (mono_image_addref): Fix comment.
9425
9426         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
9427         possible.
9428
9429 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9430
9431         * reflection.c (mono_param_get_objects): Modified to return
9432         ParameterInfo.DefaultValue object.
9433
9434         (get_default_param_value_blobs):
9435         (mono_get_object_from_blob):
9436         (mono_get_dbnull_object): New helper routines. 
9437
9438         * object.c (mono_get_constant_value_from_blob): New helper routine
9439         carved out from get_default_field_value ()
9440
9441         * object-internals.h (mono_get_constant_value_from_blob): Added
9442         function declaration.
9443
9444 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
9445
9446         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
9447         referenced assemblies. Fixes #62135.
9448
9449         * exception.h exception.c (mono_get_exception_file_not_found2): New
9450         helper function.
9451
9452 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
9453
9454         * class.h class.c: Add mono_type_get_underlying_type ().
9455
9456 2004-09-09  Geoff Norton <gnorton@customerndna.com>
9457
9458         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
9459         Fix GetTypes() to support dynamically created assemblies.
9460
9461 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
9462
9463         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
9464         
9465         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
9466         previous patch.
9467
9468         * reflection.h reflection.c loader.c: Allow dynamic construction of
9469         pinvoke methods. Fixes #65571.
9470         
9471         * reflection.c (mono_reflection_get_type): Revert previous change since
9472         it causes regressions.
9473
9474 2004-09-08  Martin Baulig  <martin@ximian.com>
9475
9476         * class.c (class_compute_field_layout): Don't call
9477         mono_class_layout_fields() for open generic instances.
9478
9479 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
9480         * threads.c appdomain.c: fix typo in GC macro
9481
9482 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9483
9484         * threads.c: don't call mono_thread_detach() in start_wrapper(),
9485         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
9486
9487 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
9488
9489         * image.c (mono_image_close): Applied patch from 
9490         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
9491         assembly is loaded multiple times from data.
9492         
9493         * image.c (mono_image_open): Fix warning.
9494
9495 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9496
9497         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
9498         once. Fixes #58334.
9499         
9500         * reflection.c (mono_reflection_create_runtime_class): Initialize
9501         klass->nested_classes. Fixes #61224.
9502
9503 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
9504
9505         * threads.c: sched_yield() on exit, to allow threads to quit.
9506
9507 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9508
9509         * object.c (mono_unhandled_exception): Remove leftover debug code.
9510
9511 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
9512
9513         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
9514
9515 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
9516
9517         * marshal.c (emit_marshal_array): Really null terminate string arrays.
9518         
9519         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
9520
9521 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9522
9523         * marshal.c (emit_marshal_array): Null terminate string arrays.
9524         
9525         * marshal.c (raise_auto_layout_exception): Fix warning.
9526
9527         * reflection.c (mono_param_get_objects): Initialize the default value
9528         with DBNull.Value, not null. Fixes #62123.
9529
9530 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
9531
9532         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
9533         throw an exception with a cute explanation.
9534
9535 2004-09-06  Dick Porter  <dick@ximian.com>
9536
9537         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
9538         Close the new process's thread handle, as we don't use it.  The
9539         handle stays around forever otherwise.
9540
9541 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9542
9543         * object.c (arith_overflow): Fix warning.
9544
9545         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
9546         calling conventions in method refs. Fixes #65352.
9547
9548         * reflection.c: Fix warnings.
9549
9550 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9551
9552         * icall.c: Add a new icall for Array.Clear
9553
9554 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
9555
9556         * object.c: When allocating an array, we have to throw
9557         an overflow exception if any of the lengths are < 0.
9558
9559 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
9560
9561         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
9562         properly. Also move implementation of string array marshalling to 
9563         managed code. Fixes #42316.
9564
9565 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9566
9567         * assembly.c: provide more information when loading an assembly fails.
9568
9569 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9570
9571         * filewatcher.c: don't expect the development fam package to be
9572         installed.
9573
9574 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
9575
9576         * marshal.c: Make a copy of the signature cookie since it will be
9577         freed by the caller.
9578         
9579         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
9580
9581         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
9582
9583         * metadata.c (mono_metadata_free_marshal_spec): New function to free
9584         marshal specs.
9585
9586         * marshal.c: More refactoring.
9587         
9588         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
9589         smaller functions.
9590
9591 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
9592
9593         * object.c: In mono_message_invoke, fill the output parameter array after
9594           calling the managed method (it was done before the call). This fixes
9595           bug #59299.
9596
9597 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9598
9599         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
9600         as well.
9601
9602 2004-09-02  Martin Baulig  <martin@ximian.com>
9603
9604         * class.c (mono_class_instance_size): Don't allow generic type
9605         definitions or open generic instances.
9606         (mono_class_array_element_size): If we're a value type, call
9607         mono_class_instance_size() on the original class.
9608
9609         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
9610         handle generic instances.
9611
9612         * mono-debug-debugger.c (write_type): Handle generic instances
9613         like classes.
9614
9615 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
9616
9617         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
9618         the allocation request fails. Fixes #65089.
9619
9620         * object.c (mono_runtime_free_method): Do not call mono_free_method.
9621         
9622         * object.c (mono_runtime_free_method): New function to free a dynamic
9623         method.
9624
9625         * marshal.c (mono_delegate_free_ftnptr): New function to free the
9626         delegate trampoline.
9627
9628         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
9629         with hasthis as dynamic,
9630
9631         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
9632
9633         * domain.c (mono_jit_info_table_remove): New function to remove an
9634         entry from the jit info table.
9635
9636         * class-internals.h (MonoMethod): Add 'dynamic' field.
9637
9638         * loader.c: Fix warnings.
9639
9640 2004-09-01  Martin Baulig  <martin@ximian.com>
9641
9642         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
9643         instead of mono_debugger_lock() because the latter one is a no-op
9644         unless running in the debugger.
9645
9646 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9647
9648         * class.c (class_compute_field_layout): Classes with auto-layout or
9649         reference fields are not blittable.
9650         
9651 2004-09-01  Dick Porter  <dick@ximian.com>
9652
9653         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
9654         mono_image_get_filename() to get the assembly location.
9655
9656         * icall.c:
9657         * metadata.h: Fix compile warnings
9658
9659 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
9660
9661         * class.c (class_compute_field_layout): System.Object is blittable.
9662
9663         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
9664         as in/out. Fixes #59909.
9665
9666 2004-09-01  Martin Baulig  <martin@ximian.com>
9667
9668         * metadata.h (MONO_TYPE_ISREFERENCE): Call
9669         mono_metadata_generic_inst_is_valuetype() if we're a generic
9670         instance to check whether our underlying type is a reference type.
9671
9672 2004-09-01  Martin Baulig  <martin@ximian.com>
9673
9674         * metadata.c (mono_type_size): If we're a generic instance, call
9675         mono_class_value_size() for value types.
9676
9677 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
9678
9679         * marshal.c: Implement more custom marshalling functionality. Fixes
9680         #64915.
9681
9682 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9683
9684         * mono-debug.c, debug-mono-symfile.c: add some locking love.
9685
9686 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
9687
9688         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
9689
9690         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
9691
9692         * icall.c: Fix some warnings.
9693
9694         * threads.c (abort_appdomain_thread): Fix unref errors.
9695         (mono_thread_current): Fix THREAD_DEBUG define.
9696
9697 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
9698
9699         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
9700
9701         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
9702
9703 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
9704
9705         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
9706         string arrays.
9707
9708 2004-08-28  Martin Baulig  <martin@ximian.com>
9709
9710         * metadata.c
9711         (mono_metadata_generic_inst_is_valuetype): New public function.
9712
9713         * metadata.h (MONO_TYPE_ISSTRUCT): Call
9714         mono_metadata_generic_inst_is_valuetype() if we're a generic
9715         instance to check whether our underlying type is a valuetype.
9716
9717 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
9718
9719         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
9720         #63768.
9721
9722 2004-08-25  Martin Baulig  <martin@ximian.com>
9723
9724         * loader.c (mono_get_method_from_token): Abstract methods can also
9725         be generic and thus have type parameters.
9726
9727         * metadata-internals.h
9728         (MonoDynamicImage): Added `GPtrArray *gen_params'.
9729
9730         * reflection.c (mono_image_get_generic_param_info): Don't create a
9731         metadata row, just add an entry to the `gen_params' array.
9732         (build_compressed_metadata): Sort the `gen_params' array and then
9733         actually create the metadata.
9734
9735 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9736
9737         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
9738
9739 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
9740
9741         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
9742
9743 2004-08-24  Martin Baulig  <martin@ximian.com>
9744
9745         * class.cs (mono_class_is_subclass_of): Like an interface, a
9746         generic instance also derives from System.Object.
9747
9748 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
9749
9750         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
9751         custom modifiers to be in any order. Fixes #61990.
9752
9753 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
9754
9755         * object.c: Register mono_object_new_fast icall.
9756         
9757         * object.c (mono_class_get_allocation_ftn): Return to calling
9758         mono_object_new_fast, since it seems faster to compute the object 
9759         size in unmanaged code than passing it as a parameter.
9760
9761         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
9762
9763         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
9764         this function with Boehm as the oom handler, so we don't have to check
9765         the result of GC_malloc.
9766
9767         * object.c: Remove checks for oom.
9768
9769         * object.h object.c (mono_class_get_allocation_ftn): New function to
9770         return the icall which can be used to allocate an instance of a given
9771         class. 
9772
9773         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
9774
9775         * class-internals.h: Add 'enabled' field.
9776
9777 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
9778
9779         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
9780
9781 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
9782         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
9783         value 0x0010.
9784
9785 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
9786
9787         * appdomain.c: use the Tls function for appdomain too,
9788         at Zoltan's request. Actually return in mono_context_get
9789
9790         * appdomain.c, profiler.c, threads.c: use __thread
9791
9792 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
9793
9794         * appdomain.c threads.c: Call GC_CreateThread on windows.
9795
9796         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
9797         multiple libraries since this don't work on windows.
9798
9799 2004-08-18  Martin Baulig  <martin@ximian.com>
9800
9801         * class-internals.h
9802         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
9803         MonoMethodHeader.
9804
9805         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
9806         MonoMethodNormal since we also need it for abstract and interface
9807         methods.
9808
9809         * reflection.c
9810         (build_compressed_metadata): Sort the GenericParam table.
9811         (mono_image_create_token): Added `gboolean create_methodspec'
9812         argument; this is false when generating a MethodImpl token.
9813         (reflection_methodbuilder_to_mono_method): Abstract and interface
9814         methods may also have generic parameters.
9815
9816 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
9817
9818         * appdomain.c: thread local alloc
9819
9820 2004-08-17  Martin Baulig  <martin@ximian.com>
9821
9822         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
9823
9824         * icall.c
9825         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
9826         argument.
9827
9828         * class.c (mono_type_get_full_name): New public function.
9829         (mono_type_get_name): Don't include the type arguments.
9830
9831 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
9832
9833         * Makefile.am: Build static versions of libmetadata and libmonoruntime
9834         for inclusion into the mono executable.
9835
9836 2004-08-16  Martin Baulig  <martin@ximian.com>
9837
9838         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
9839         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
9840
9841 2004-08-14  Martin Baulig  <martin@ximian.com>
9842
9843         * class.c (dup_type): Also copy the `byref' field.
9844
9845 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
9846
9847         * reflection.c (create_dynamic_mono_image): Revert the last change 
9848         since it breaks bootstrap.
9849
9850 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
9851
9852         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
9853
9854         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
9855         not free them with g_free.
9856
9857 2004-08-11  Martin Baulig  <martin@ximian.com>
9858
9859         * reflection.c (mono_reflection_setup_internal_class): Also call
9860         mono_class_setup_mono_type() if we already have a `tb->type.type'.
9861
9862 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
9863
9864         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
9865         called during default (first) AppDomain creation. Keep track of
9866         Evidence when loading assemblies.
9867
9868 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
9869
9870         * opcodes.c, opcodes.h: reduce runtime relocations.
9871
9872 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
9873
9874         * culture-info.h, locales.c: fixes and chages to sue the new
9875         optimized format of the locale data.
9876         * culture-info-tables.h: regenerated.
9877
9878 2004-08-06  Geoff Norton <gnorton@customerdna.com>
9879         
9880         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
9881
9882 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
9883
9884         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
9885         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
9886         * domain-internals.h: icall declaration.
9887         * icall.c: icall registration.
9888         * object-internals.h: New fields in MonoAssembly for CAS.
9889
9890 2004-08-05  Duncan Mak  <duncan@ximian.com>
9891
9892         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
9893         CEE_LDELEM_ANY.
9894
9895 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
9896
9897         * reflection.c: fix to deal with object[] arrays in custom ctors
9898         (bug #62550).
9899
9900 2004-08-05  Martin Baulig  <martin@ximian.com>
9901
9902         * class.c (mono_class_array_element_size): Added support for
9903         generic instances and correctly handle "recursive" types.
9904
9905 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
9906
9907         * assembly.c: Fix warnings.
9908
9909 2004-08-04  Martin Baulig  <martin@ximian.com>
9910
9911         * class.c
9912         (mono_type_get_name_recurse): Added `gboolean include_arity'
9913         argument specifying whether or not we should include the generic
9914         arity in the type name.
9915         (_mono_type_get_name): New static function.
9916         (mono_class_setup_vtable): If we're a generic instance, don't
9917         include the generic arity in the names of explicit method
9918         implementations.        
9919
9920 2004-08-03  Martin Baulig  <martin@ximian.com>
9921
9922         * class.c (mono_type_get_name_recurse): Enclose the generic type
9923         arguments in `<', '>'.
9924
9925 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9926
9927         * gc.c: make GC warning messages use the trace API, they are just
9928         noise to most of the users.
9929
9930 2004-08-03  Martin Baulig  <martin@ximian.com>
9931
9932         * debug-mono-symfile.c (read_string): Correctly read the string.
9933
9934 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
9935
9936         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
9937         
9938         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
9939         icalls.
9940         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
9941
9942 2004-07-30  Martin Baulig  <martin@ximian.com>
9943
9944         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
9945         Reflect latest symbol writer changes.   
9946
9947 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
9948
9949         * object.c: always create an object if null is passed
9950         to Invoke() where a valuetype is expected.
9951
9952 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
9953
9954         * marshal.c (mono_marshal_init): make managed
9955         signatures match native ones better for 64bits.
9956
9957 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9958
9959         * appdomain.c: hack to build correctly the private bin path on windows.
9960         Fixes bug #61991.
9961
9962 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
9963
9964         * assembly.c: Load mscorlib from the correct framework directory
9965           (mono/<version>/mscorlib.dll).
9966         * appdomain.h: Added prototypes for new functions.
9967         * internals.h: Added some prototypes.
9968         * domain.c: When initializing the runtime, get from the executable and
9969           the configuration files the runtime version that the app supports.
9970           Added support methods for reading app.exe.config. Added list of versions
9971           supported by the JIT. Added two new methods: mono_init_from_assembly,
9972           which initializes the runtime and determines the required version from
9973           the provided exe file, and mono_init_version, which initializes
9974           the runtime using the provided version.
9975         * icall.c: Get machine.config from version-specific directory.
9976         * reflection.c: When generating an image, embed the version number
9977           of the current runtime.
9978
9979 2004-07-28  Dick Porter  <dick@ximian.com>
9980
9981         * socket-io.c
9982         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
9983         returned sockaddr size before creating the remote address object.
9984         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
9985         61608.
9986
9987 2004-07-28  Dick Porter  <dick@ximian.com>
9988
9989         * locales.c (string_invariant_compare_char): Fix invariant char
9990         compares between upper and lower cases.  Fixes bug 61458.
9991
9992 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
9993         
9994         * marshal.c: actually cache stelem.ref wrappers.
9995         
9996 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
9997
9998         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
9999         sections and remove the mono_cli_rva_map () function.
10000
10001 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10002
10003         * debug-mono-symfile.c: fix one more endianess issue, from a patch
10004         by Geoff Norton (<gnorton@customerdna.com>).
10005
10006 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10007
10008         * class.c: fix class loads for pointer types (typeof(int) !=
10009         typeof(int*)).
10010
10011 2004-07-27  Martin Baulig  <martin@ximian.com>
10012
10013         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
10014         reading the debugging information from an external ".mdb" file.
10015
10016 2004-07-24  Martin Baulig  <martin@ximian.com>
10017
10018         * reflection.c (mono_image_get_type_info): Only write a class
10019         layout entry if we actually have a size or a packing size.
10020
10021 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10022
10023         * reflection.c (type_get_fully_qualified_name): 
10024         insert cast to get type checking of ?: with non-gcc compilers
10025
10026 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10027
10028         * rand.c: use g_getenv for both lookups of
10029         MONO_EGD_SOCKET
10030
10031 2004-07-17  Martin Baulig  <martin@ximian.com>
10032
10033         * reflection.c (mono_reflection_bind_generic_method_parameters):
10034         Set `gmethod->reflection_info'.
10035
10036 2004-07-17  Martin Baulig  <martin@ximian.com>
10037
10038         * class.c (mono_class_create_from_typedef): Insert the newly
10039         created class into the hash table before computing the interfaces
10040         since we could be called recursively.
10041
10042 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
10043
10044         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
10045         function to implement stelem.ref in managed code
10046         * class-internals.h, debug-helpers.c: a new wrapper type
10047         for the above.
10048
10049 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10050
10051         * gc.c: allow GC handles to work even when no GC is compiled in.
10052         Fix part of bug #61134 (GetAddrOfPinnedObject).
10053
10054 2004-07-13  Peter Williams  <peter@newton.cx>
10055  
10056         * process.c (complete_path): Make sure we don't attempt to execute
10057         directories.
10058  
10059 2004-07-12  Geoff Norton <gnorton@customerdna.com>
10060
10061         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
10062           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
10063           and will add/subtract the hour if needed
10064
10065 2004-07-12  Martin Baulig  <martin@ximian.com>
10066
10067         * reflection.c (mono_field_get_object): If we have
10068         `field->generic_info', take the attributes from
10069         `field->generic_info->generic_type'.    
10070
10071 2004-07-12  Martin Baulig  <martin@ximian.com>
10072
10073         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
10074         This function must be called before initializing the runtime.
10075         (mono_debug_init_1): New function; call this after initializing
10076         the runtime, but before loading the assembly.  It tells the
10077         debugger to load corlib and the builtin types.
10078
10079         * mono-debug-debugger.c: Did some larger changes in the debugging
10080         code; support recursive class declarations, make sure we actually
10081         add all classes.
10082
10083 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10084
10085         * debug-helpers.c: undo my previous patch and fixed the real issue in
10086         ../mini/exceptions-x86.c
10087
10088 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10089
10090         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
10091         when no HOME env. variable was set and a NullRef was thrown in a .cctor
10092         called from other .cctors.
10093
10094 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
10095
10096         * loader.c: Removed the mono_loader_wine_init hack now that we are
10097         doing a managed version of Windows.Forms.
10098
10099 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
10100
10101         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
10102         threadpool.c, threads.c: remove static data from rootset.
10103
10104 2004-07-09  Dick Porter  <dick@ximian.com>
10105
10106         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
10107         Don't do any more processing if the matched length was 0.  It was
10108         increasing the size of the string before.  Fixes bug 61167.
10109
10110 2004-07-09  Dick Porter  <dick@ximian.com>
10111
10112         * socket-io.h:
10113         * socket-io.c
10114         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10115         Add support for SO_PEERCRED if its available.
10116
10117 2004-07-09  Peter Bartok <pbartok@novell.com>
10118         * loader.c: winelib.exe.so error message is now only displayed if
10119         MONO_DEBUG is set. To help us avoid questions when people are trying
10120         out the new Managed.Windows.Forms.
10121
10122 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
10123
10124         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
10125         for isinst and castclass wrappers.
10126
10127         * class-internals.h icall.c: Move registration and lookup of JIT icalls
10128         to libmetadata from the JIT, so they could be used by the marshalling
10129         code and the interpreter.
10130
10131         * marshal.c: Register marshalling related JIT icalls here instead of
10132         in mini.c. Use CEE_MONO_ICALL instead of the family of 
10133         CEE_MONO_PROC<x> opcodes to call marshalling functions.
10134
10135         * metadata.h: Remove unneeded marshalling conversions.
10136
10137         * opcodes.c: Update for new opcodes.
10138         
10139 2004-07-08  Martin Baulig  <martin@ximian.com>
10140
10141         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
10142         (mono_debug_get_domain_data): Make this function static.
10143
10144 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10145
10146         * gc.c, object.h: add nice GC handle API for embedders.
10147
10148 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
10149
10150         * reflection.c: more changes for the new api
10151
10152         * object.c: When we reflect on a field w/ a constant value, it
10153         will not have a memory location, so we must access metadata. Also,
10154         allow easier reading of strings so that we can read them from
10155         the constant data.
10156
10157         * class.c (mono_class_layout_fields): no need for literal fields here.
10158
10159         * class-internals.h: api changes for const fields
10160
10161         * icall.c (ves_icall_get_enum_info): use new apis for const fields
10162
10163 2004-07-06  Martin Baulig  <martin@ximian.com>
10164
10165         * mono-debug.h: Increment version number to 44.
10166
10167         * mono-debug.c (mono_debug_add_wrapper): The second argument is
10168         now a gpointer, rewrote this whole method.
10169
10170         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
10171         function.  Add information about the wrapper in a new "misc table".
10172
10173         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
10174         for the new misc table.
10175
10176 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
10177
10178         * metadata-internals.h image.c: Add a cache for helper signatures.
10179
10180         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
10181
10182 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
10183
10184         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
10185         delegates from a delegate. Fixes #61033.
10186         
10187         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
10188         marshalling of stringbuilder arrays. Fixes #59900.
10189
10190 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
10191
10192         * icall.c: Add EnumBuilder:setup_enum_type icall.
10193
10194 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
10195
10196         * icall.c: Added a new icall for the property version of
10197         OffsetOfStringData.
10198
10199 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
10200
10201         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
10202         it has a constant size across platforms.
10203
10204         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
10205         stack trace.
10206
10207 2004-06-29  Martin Baulig  <martin@ximian.com>
10208
10209         * mono-debug.c (mono_debug_add_method): Protect the whole function
10210         in mono_debugger_lock(), not just parts of it.
10211
10212 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10213
10214         * reflection.c: make sure padding bytes in heaps are zeroed.
10215
10216 2004-06-24  David Waite  <mass@akuma.org>
10217
10218         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
10219         image.c, loader.c, locales.c, marshal.c, metadata.c,
10220         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
10221         string-icalls.c, threads.c: change to C90-style comments from C99 /
10222         C++ -style
10223
10224 2004-06-24  Dick Porter  <dick@ximian.com>
10225
10226         * threads.c
10227         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
10228         return createdNew.  Fixes bug 60412.
10229
10230         * threads-types.h: 
10231         * icall.c: Add createdNew parameter to CreateMutex icall
10232
10233 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10234
10235         * reflection.c, object-internals.h: save default value in params.
10236
10237 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10238
10239         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
10240         no need to build a new path combining that with the application base.
10241         Fixes bug #60442.
10242
10243 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
10244
10245         * reflection.c: fixed minor standard compliance issues.
10246
10247 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
10248
10249         * reflection.c: fixed issue with encoding some custom attributes
10250         (arrays in properties and fields, bug #60411).
10251
10252 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10253
10254         * reflection.c: fix start address when copying the public key token.
10255
10256 2004-06-23  Martin Baulig  <martin@ximian.com>
10257
10258         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
10259         the `exc' object in a static object to put it into the GC's root set.
10260
10261 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
10262
10263         * reflection.c: make mono_reflection_setup_internal_class ()
10264         callable a second time to setup a new parent class.
10265
10266 2004-06-23  Dick Porter  <dick@ximian.com>
10267
10268         * threads.c: Check for WAIT_IO_COMPLETION return values.
10269
10270 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
10271
10272         * appdomain.c: Removed the g_free on the public key token. Now copy 
10273         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
10274         * assembly.c: Added public key token string value when loading 
10275         assemblies. Fix bug #60439.
10276         * icall.c: Added missing informations (like public key) in 
10277         GetReferencedAssemblies. Fix #60519.
10278         * image.h: Changed definition for public key token from const char*
10279         public_tok_value to guchar public_key_token [17];
10280         * reflection.c: Updated for changes to public key token.
10281
10282 2004-06-22  Lluis Sanchez Gual
10283
10284         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
10285         for the field in base classes.
10286
10287 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10288
10289         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
10290         mark headers as not supported, they are installed only for use by the
10291         debugger.
10292
10293 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
10294
10295         * *.c, *.h: avoid namespace pollution in public headers.
10296
10297 2004-06-21  Martin Baulig  <martin@ximian.com>
10298
10299         * exception.c (mono_get_exception_security): It's in
10300         "System.Security", not in "System".
10301
10302         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
10303         the exception classes.
10304
10305 2004-06-21  Martin Baulig  <martin@ximian.com>
10306
10307         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
10308         Protect the exception object from being finalized.
10309
10310 2004-06-21  Martin Baulig  <martin@ximian.com>
10311
10312         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
10313         public function.
10314
10315 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
10316
10317         * reflection.c: Load the assembly in mono_reflection_type_from_name,
10318         if it was not loaded before. Fix parts of #60439.
10319
10320 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
10321
10322         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
10323         code that was broken since Ben's change: wrappers are now
10324         dependent on the method signature only again.
10325
10326 2004-06-21  Martin Baulig  <martin@ximian.com>
10327
10328         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
10329         added interface support.
10330
10331 2004-06-21  Martin Baulig  <martin@ximian.com>
10332
10333         * class.c (mono_vtable_get_static_field_data): New public method.
10334
10335 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
10336
10337         * filewatcher.c : Windows build fix to be compliant with API changes.
10338
10339 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10340
10341         * class.h, class.c: more accessors.
10342         * metadata.h, metadata.c: prepare for hiding MonoType and
10343         MonoMethodSignature: people should use the accessors from now on
10344         outside of the tree.
10345
10346 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
10347
10348         * *.c, *.h: more API cleanups.
10349
10350 2004-06-18  Jackson Harper  <jackson@ximian.com>
10351
10352         * assembly.c: Trace loading assemblies.
10353         * loader.c: Trace loading native libraries.
10354         * mono-config.c: Trace loading config files.
10355         
10356 2004-06-18  Dick Porter  <dick@ximian.com>
10357
10358         * locales.c: Tell ICU the lengths of strings, it can cope with
10359         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
10360
10361 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
10362
10363         * image.c: swapped name/filename;
10364
10365 2004-06-18  Martin Baulig  <martin@ximian.com>
10366
10367         * mono-debug-debugger.c (write_class): Write the parent class at
10368         the end of the header.
10369
10370 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10371
10372         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
10373
10374 2004-06-17  Raja R Harinath  <rharinath@novell.com>
10375
10376         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
10377         (bundle_obj): New conditional define.
10378         (BUILT_SOURCES): Remove.
10379         ($(bundle_srcs)): Make parallel-make safe.
10380         (libmonoruntime_la_LIBADD): Make unconditional.
10381         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
10382         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
10383
10384 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
10385
10386         * culture-info-tables.h: It was inconsistent with the latest
10387           supp info files.
10388
10389 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
10390
10391         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
10392         be loaded.
10393
10394         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
10395         with gcc 2.95.
10396
10397 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10398
10399         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
10400         cleaned up public header threads.h.
10401
10402 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
10403
10404         * Makefile.am, *.c, *.h: more API cleanups.
10405
10406 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
10407
10408         * Makefile.am: removed monosn from compilation.
10409         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
10410         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
10411         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
10412         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
10413         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
10414         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
10415
10416 2004-06-15  Jackson Harper  <jackson@ximian.com>
10417
10418         * assembly.c: Make locales lower case when searching the GAC for
10419         assemblies. gacutil will always make locales lowercase when
10420         installing so this effectively makes them case insensitive.
10421         
10422 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
10423
10424         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
10425         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
10426           parameter which allows to choose whether the wait can be interrupted or 
10427           not. Also added the method mono_monitor_enter(), which locks the monitor
10428           using an infinite wait and without allowing interruption.
10429           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
10430           interrupted.
10431         * object.h: Added new fields in MonoThread. suspend_event holds the event
10432           used to susped/resume the thread. synch_lock is the lock object to use for
10433           modifying the thread state.
10434         * threads.c: Use the new synch_lock object for locking, instead of "this",
10435           which can generate deadlocks.
10436           Moved thread state change in Thread.Sleep and Thread.Join from managed
10437           to unmanaged code. This avoids a deadlock when the thread was suspended
10438           just after acquiring the thread lock.
10439           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
10440           Implemented Thread.Suspend using an event instead of ThreadSuspend,
10441           which is not fully implemented in the io-layer.
10442         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
10443
10444 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
10445
10446         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
10447         threads-types.h: more API cleanups.
10448
10449 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10450
10451         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
10452         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
10453         threadpool.c, threads.c: first pass at the exported API cleanup.
10454
10455 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
10456
10457         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
10458
10459 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10460
10461         * icall.c: added internalGetHome.
10462
10463 2004-06-14  Dick Porter  <dick@ximian.com>
10464
10465         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
10466         possible to return successfully when '.' or '..' were the only
10467         entries in a directory, but were skipped.  The MonoIOStat was not
10468         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
10469         Fixes bug 59574.
10470
10471 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10472
10473         * reflection.c: make binaries run on .Net 1.1 by default.
10474
10475 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
10476
10477         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
10478
10479 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
10480
10481         * marshal.c: keep track of struct size with explicit layout
10482         (bug #59979).
10483
10484 2004-06-12  Martin Baulig  <martin@ximian.com>
10485
10486         * mono-debug-debugger.c: Comment out a debugging g_message().
10487
10488 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
10489
10490         * reflection.c, reflection.h: do not free custom attrs that are cached.
10491         * icall.c: use braces to make code clearer.
10492
10493 2004-06-11  Martin Baulig  <martin@ximian.com>
10494
10495         * class.h (MonoInflatedField): New type.
10496         (MonoClassField): Replaced `MonoType *generic_type' with
10497         `MonoInflatedField *generic_info'.
10498
10499         * icall.c
10500         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
10501
10502 2004-06-11  Martin Baulig  <martin@ximian.com>
10503
10504         * reflection.c (mono_image_create_method_token): Correctly encode
10505         varargs methods.
10506
10507 2004-06-11  Martin Baulig  <martin@ximian.com>
10508
10509         * metadata.c (mono_metadata_parse_method_signature): When parsing
10510         a MethodDef which has VarArgs, also set sentinelpos if we don't
10511         have any parameters.
10512
10513 2004-06-11  Martin Baulig  <martin@ximian.com>
10514
10515         * verify.c (mono_method_verify): In CEE_CALL, use
10516         mono_method_get_signature() to get the method's signature, unless
10517         we're a PInvoke method.
10518
10519 2004-06-10  Jackson Harper  <jackson@ximian.com>
10520
10521         * assembly.c: Use <path>/lib/mono/gac for the extra paths
10522         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
10523         logical name as the supplied path is just a prefix to the gac not
10524         the direct path to it.
10525         
10526 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
10527
10528         * reflection.c: make the token for a created method match
10529         the token of the MethodBuilder it was created from
10530         (IKVM requires this behaviour now).
10531
10532 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
10533
10534         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
10535         reflection.c, socket-io.c: leak fixes.
10536
10537 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
10538
10539         * icall.c: handle sentinel pos in vararg methods in position different
10540         from 0.
10541
10542 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10543
10544         * culture-info-tables.h: freshly generated.
10545
10546 2004-06-09  Martin Baulig  <martin@ximian.com>
10547
10548         * loader.c (mono_get_method_constrained): Call `mono_class_init
10549         (constrained_class)'.   
10550
10551 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
10552
10553         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
10554         any methods. Fixes #59629.
10555
10556 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10557
10558         * culture-info-tables.h: reflecting locale-builder updates.
10559
10560 2004-06-08  Dick Porter  <dick@ximian.com>
10561
10562         * object.h:
10563         * locales.c: Fixed compile warnings, including a real bug in
10564         CompareInfo_internal_compare.
10565         
10566 2004-06-08  Dick Porter  <dick@ximian.com>
10567
10568         * locales.c
10569         (ves_icall_System_Globalization_CompareInfo_internal_index):
10570         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10571         Double-check the resuls of usearches, because ICU currently
10572         ignores most of the collator settings here.  Fixes bug 59720.
10573         
10574 2004-06-08  Dick Porter  <dick@ximian.com>
10575
10576         * locales.c
10577         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
10578         Fix memory leak and segfault-causing typo.  No idea how this one
10579         lasted so long without being noticed.
10580
10581 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
10582
10583         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
10584         any methods. Fixes #59629.
10585
10586 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10587
10588         * assembly.c:
10589         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
10590         own the critical section before). Removed dead code (that's done
10591         in the preload hook).
10592
10593         (mono_assembly_load_with_partial_name): call the preload hook.
10594
10595 2004-06-08  Martin Baulig  <martin@ximian.com>
10596
10597         * metadata.c (mono_metadata_signature_alloc): Default
10598         `sentinelpos' to -1.
10599
10600         * reflection.c (mono_image_get_array_token): Likewise.
10601
10602 2004-06-08  Martin Baulig  <martin@ximian.com>
10603
10604         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
10605
10606         * metadata.c (mono_metadata_parse_method_signature): When parsing
10607         a MethodDef which has VarArgs, set sentinelpos.
10608
10609         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
10610         `gint16' since we're using -1 for non-varargs methods.
10611
10612         * reflection.c
10613         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
10614         (method_encode_signature): Added varargs support.
10615         (method_builder_encode_signature): Likewise.
10616         (mono_image_get_varargs_method_token): New static method.
10617         (mono_image_create_method_token): New public method; this is
10618         called via an icall instead of mono_image_create_token() when
10619         calling a varargs method.       
10620
10621 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
10622
10623         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
10624
10625 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10626
10627         * culture-info-tables.h : Reflecting the latest locale-builder that
10628           fixed empty array representation ({} to {0}).
10629
10630 2004-06-07  Jackson Harper  <jackson@ximian.com>
10631
10632         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
10633         looking up extra gac paths. This allows MONO_GAC_PATH to act
10634         exactly like a prefix.
10635         
10636 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10637
10638         * reflection.c (mono_reflection_type_from_name): Make a copy of the
10639         type name before modifying it. Fixes #59405.
10640
10641 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
10642
10643         * culture-info.h: added fields for "all datetime patterns".
10644         * locales.c: (  ves_icall_System_Globalization_CultureInfo
10645           _construct_datetime_format ()): fill xxx_patterns fields.
10646         * object.h: added fields for "all datetime patterns" to
10647           MonoDateTimeFormatInfo.
10648         * culture-info-tables.h: reflecting locale-builder updates.
10649
10650 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
10651
10652         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
10653         the event has no add and remove methods. Fixes #59629.
10654
10655 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
10656
10657         * object.c: Fixed possible integer overflow when allocating large
10658         strings.
10659
10660 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10661
10662         * culture-info-tables.h: reflecting locale-builder updates.
10663
10664 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
10665
10666         * culture-info-tables.h: reflecting locale-builder updates.
10667
10668 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
10669
10670         * culture-info-tables.h: reflecting locale-builder updates.
10671
10672 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
10673
10674         * threads.c: Made Thread.Sleep abortable.
10675
10676 2004-06-02  Martin Baulig  <martin@ximian.com>
10677
10678         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
10679
10680         * debug-mono-symfile.h: Bumped symbol file version number to 37.
10681
10682 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
10683
10684         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
10685
10686 2004-05-30  Jackson Harper  <jackson@ximian.com>
10687
10688         * reflection.c: Do not hardcode assembly versions or public key
10689         tokens anymore. All of this except the corlib section was dead
10690         code anyways.
10691         
10692 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
10693
10694         * object.c (mono_runtime_invoke_array): Automatically create boxed
10695         objects for byref valuetypes if needed. Fixes #59300.
10696         
10697         * object.c (mono_method_return_message_restore): Handle 
10698         MONO_TYPE_OBJECT as well.
10699
10700 2004-05-28  Jackson Harper  <jackson@ximian.com>
10701
10702         * reflection.c: The modified type encoding was causing build
10703         problems. Reverted for now.
10704         
10705 2004-05-28  Jackson Harper  <jackson@ximian.com>
10706
10707         * reflection.c/h: Take an assembly ref so that we dont create
10708         fully qualified names when encoding types in the same assembly as
10709         the custom attribute being emitted.
10710         * appdomain.c: Increment version number.
10711         
10712 2004-05-26  Duncan Mak  <duncan@ximian.com>
10713
10714         * icall.c
10715         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10716         Set the full version number (major, minor, build, revision).
10717
10718 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
10719
10720         * marshal.c (emit_struct_conv): increment src/dst after blit
10721         (mono_marshal_get_managed_wrapper,
10722         mono_marshal_get_native_wrapper): make sure we have marshalling
10723         info before marshalling params (info computation affects
10724         blittable)
10725
10726         * class.c (class_compute_field_layout): correctly deal with
10727         blittable
10728         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
10729         value types (as per what windows dows by default)
10730         (mono_class_setup_mono_type): System.ValueType is blittable
10731         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
10732         blittable
10733
10734         * marshal.c (mono_marshal_load_type_info): flag types  as
10735         non-blittable if the native layout doesn't match the managed
10736         layout
10737
10738 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10739
10740         * appdomain.c: don't add stuff in the private search path that is
10741         above the application base. If application base is not set, there's
10742         no private search path.
10743
10744 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
10745
10746         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
10747         byref struct arguments in native->managed marshalling.
10748
10749 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
10750
10751         * marshal.c (mono_marshal_get_runtime_invoke): correctly
10752         cache methods using signature (special case for methods
10753         that are value type or string class)
10754         
10755         * image.c (mono_image_close): clean up allocated GSList's
10756         in runtime_invoke_cache.
10757
10758 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10759
10760         * mono-config.c: set the correct path for mono_cfg_dir on windows when
10761         there's no MONO_CFG_DIR environment variable defined.
10762
10763 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10764
10765         * threads.c: windows version must be >= 0x0500 to include OpenThread.
10766
10767 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
10768
10769         * threadpool.c: Really wait for 500ms after the async call, even if the wait
10770           is interrumped.
10771         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
10772           before waiting for it, and call CloseHandle after the wait to unref it.
10773           This will make sure that handles are not disposed too early.
10774
10775 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10776
10777         * appdomain.c:
10778         * appdomain.h:
10779         * icall.c: removed
10780         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
10781         needed now.
10782
10783         * object.c: se the application_base only for the domain that runs
10784         Main. Fixes bug #59216,
10785
10786 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10787
10788         * appdomain.c:
10789         * object.c: only the domain in which Main is run have
10790         SetupInformation.ConfigurationFile set, so moved a few lines from
10791         appdomain.c to object.c.
10792
10793 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10794
10795         * appdomain.c: we tried to load [name].(dll|exe), but according
10796         to bug #57710, we must also try [culture]/[name].(dll|exe) and
10797         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
10798         There's a test case attached to bug #58922.
10799
10800 2004-05-27  Dick Porter  <dick@ximian.com>
10801
10802         * icall.c:
10803         * file-io.c: Implemented icalls for locking and unlocking regions
10804         in a file.
10805         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
10806         FALSE on error (fixes both compiler warning and real bug.)
10807
10808 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
10809
10810         * culture-info-tables.h: reflecting locale-builder updates.
10811
10812           (Added missing ChangeLog entry for 05/26)
10813
10814 2004-05-27  Jackson Harper  <jackson@ximian.com>
10815
10816         * locales.c: Fix some cut and paste errors.
10817         
10818 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10819
10820         * mono-config.c: set the correct path for config. directory on windows.
10821
10822 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10823
10824         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
10825           on win32.
10826
10827 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10828
10829         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
10830         from pinvoke functions.
10831         
10832         * marshal.c (mono_ftnptr_to_delegate): Implement this.
10833
10834 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
10835
10836         * culture-info-tables.h: reflecting locale-builder updates.
10837
10838 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
10839
10840         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
10841         #59086.
10842
10843 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
10844
10845         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
10846         * icall.c: Modified icalls for RNG.
10847         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
10848         Windows (CryptoAPI).
10849
10850 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10851
10852         * locales.c: Fix build.
10853
10854 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
10855
10856         * culture-info-tables.h: reflecting locale-builder updates.
10857
10858 2004-05-25  Jackson Harper  <jackson@ximian.com>
10859
10860         * locales.c: When creating the current culture use the $LANGs
10861         specific culture. So DateTimeFormat and NumberFormat entries are created.
10862         
10863 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
10864
10865         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
10866         a char array as parameter.
10867
10868 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
10869
10870         * image.c: In mono_image_open(), always use an absolute path name to
10871           look for already loaded images.
10872
10873 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
10874
10875         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
10876         missing in the windows build (like older cygwin include files).
10877
10878 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
10879
10880         * icall.c: Fixed check for possible integer overflow in Buffer_
10881         BlockCopy icall. Replaced comments style // by /* */.
10882
10883 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
10884
10885         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
10886         
10887         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
10888         check after MONO_VTADDR. Fixes pinvoke2.exe.
10889
10890         * marshal.h marshal.c metadata.h: Add beginnings of support for
10891         ftnptr -> delegate marshalling.
10892
10893 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
10894
10895         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
10896         * threads.c: Fix warnings.
10897
10898 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
10899
10900         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
10901         * icall.c: Registered icalls for Suspend and Resume.
10902         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
10903           Thread.Abort.
10904         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
10905         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
10906         * process.c: Use WaitForSingleObjectEx.
10907         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
10908           checkpoints.
10909         * threads.c, threads.h: Make use of new Ex wait methods. Improved
10910           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
10911           for Suspend and Resume. Added new mono_thread_stop, used for stoping
10912           background threads. Added basic support for Abort in Windows.
10913           Start new threads using a managed delegate invoke wrapper. This wrapper
10914           has an interruption checkpoint that is needed since an interruption
10915           can be requested before the thread leaves the unmanaged code that starts 
10916           the thread.
10917         * marshal.c: Added interruption checkpoint after every native call, and
10918           also before managed calls for wrappers called from unmanaged code to
10919           go into managed code.
10920         * object.h: Added new field in MonoThread to keep track of interruption
10921           requests.
10922
10923 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
10924
10925         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
10926         calls.
10927
10928 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10929
10930         * appdomain.c:
10931         * assembly.c:
10932         * gc.c:
10933         * locales.c:
10934         * mono-config.c:
10935         * rand.c: getenv -> g_getenv (windows!)
10936
10937         * process.c: complete_path is also used on non-windows platforms.
10938
10939 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10940
10941         * icall.c: new signature for Process_Start.
10942
10943         * process.[ch]: new signature for Process_Start. If we're on windows
10944         and UseShellExecute is false, we have to search for the program by
10945         ourselves if we don't get a full path.
10946
10947 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
10948
10949         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
10950         marshalling and call CleanUpNativeData if needed. Fixes #58646.
10951
10952 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10953
10954         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
10955         Fixes bug #58373.
10956
10957 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10958
10959         * process.c: use double quotes to quote program name and arguments on
10960         windows. Fixes bug #58575.
10961
10962 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10963
10964         * file-io.c: don't return "." and ".." when using windows Find*File.
10965
10966 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
10967
10968         * marshal.c: Don't pass wrappers to message init because method 
10969         addressed used to lookup metadata. part of remoting[2|3] fix.
10970
10971 2004-05-15  Jackson Harper  <jackson@ximian.com>
10972
10973         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
10974         path is essentially the same as MONO_PATH except that it points to
10975         GACs instead of lib directories.
10976         * loader.h: The user gac is gone so we dont need function to
10977         enable/disable it.
10978         * mono-config.c: user gac option is now gone.
10979         
10980 2004-05-15  Jackson Harper  <jackson@ximian.com>
10981
10982         * culture-info.h: Make defines more consistent, add calendar data
10983         to the culture info table.
10984         * culture-info-tables.h: Add basic calendar data. Basically
10985         everyone gets default gregorian until all the data is
10986         updated.
10987         * locales.c: Use the new consistent defines. Set calendar data for
10988         culture info objects.
10989         * object.h: add a field for calendar data to CultureInfo
10990         
10991 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
10992
10993         * image.c: image->runtime_invoke_cache is keyed on signatures now.
10994         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
10995         a signature.
10996         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
10997         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
10998         an extra param that is the pointer of the method to invoke. The IL for
10999         the invoke method is no longer specific to the method, but to the
11000         signature of the method. Thus, we can share the same code for multiple
11001         methods. This reduces the number of methods that have to be compiled.
11002
11003 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
11004
11005         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
11006
11007         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11008
11009         * icall.c: Optimize Buffer.BlockCopy.
11010
11011 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11012
11013         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
11014         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
11015         quote). Changed them to "MMMM yyyy".
11016
11017 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
11018
11019         * rand.c
11020         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
11021
11022 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
11023
11024         * reflection.h: Updated after changes to managed structures.
11025
11026         * appdomain.c: Bump corlib version.
11027
11028 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11029
11030         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
11031         windows.
11032
11033 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11034
11035         * Makefile.am: link to ../os/libmonoos.la on windows.
11036
11037         * assembly.c:
11038                 -If MONO_DEBUG, warn about non-existing directories in
11039                 MONO_PATH.
11040                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
11041                 compile time variable.
11042                 -Removed init_default_path and call mono_set_rootdir from
11043                 libmonoos.a instead (windows only).
11044
11045         * assembly.h: declare mono_assembly_getrootdir().
11046
11047         * domain.c:
11048         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
11049
11050         * loader.c: s/getenv/g_getenv/
11051
11052 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
11053
11054         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
11055
11056         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
11057
11058         * metadata.h: Add new marshalling conversions.
11059
11060         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
11061         function.
11062
11063         * reflection.c (mono_reflection_get_type): Lookup the type in all
11064         modules of a multi-module assembly. Fixes #58291.
11065
11066 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
11067
11068         * threads.c: Before aborting a background, set the StopRequested
11069         state.  This avoids throwing the Abort exception.
11070         In mono_thread_manage, don't continue with the shutdown until all
11071         aborted threads have actually stopped.
11072
11073 2004-05-10  Jackson Harper  <jackson@ximian.com>
11074
11075         * locales.c: Remove the modifier from culture names.
11076         
11077 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11078
11079         * Makefile.am: monosn is not installed any more. It has been deprecated
11080         in favor of sn.
11081
11082 2004-05-07  Jackson Harper  <jackson@ximian.com>
11083
11084         * locales.c
11085         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
11086         Fix array construction, add bailout if the length is 0.
11087
11088 2004-05-07  Dick Porter  <dick@ximian.com>
11089
11090         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
11091         machine doesn't have a DNS entry.  Patch by Urs Muff
11092         (umuff@quark.com), fixes bug 57928.
11093
11094 2004-05-06  Jackson Harper  <jackson@ximian.com>
11095
11096         * reflection.c: Handle null PublicTokens properly. alloc mem for
11097         assembly names culture so we dont crash when freeing it.
11098         
11099 2004-05-06  Jackson Harper  <jackson@ximian.com>
11100
11101         * assembly.c: Check the usergac when loading with partial names.
11102         
11103 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11104
11105         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
11106         does nothing for now (not required for Linux/Windows) but the class
11107         library can call it (and a newer or modified runtime could need it).
11108         * icall.c: Registred icall.
11109
11110 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11111
11112         * loader.c: prints a message on module loading error we set MONO_DEBUG
11113         environment variable.
11114
11115 2004-05-05  Jackson Harper  <jackson@ximian.com>
11116
11117         * appdomain.c: Handle PublicKeyToken=null properly.
11118         
11119 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
11120
11121         * environment.c|h: Added icall ves_icall_System_Environment_
11122         GetOSVersionString to get the current OS version as a string.
11123         * icall.c: Registred icall.
11124
11125 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
11126
11127         * object.c: in mono_object_get_virtual_method(), take into account that
11128         non-virtual methods don't have a slot in the vtable. Check needed when
11129         the object is a proxy.
11130
11131 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
11132
11133         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
11134         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
11135
11136         * object.c (mono_class_compute_gc_descriptor): Fix warning.
11137
11138         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
11139         passed when a valuetype is expected.
11140
11141         * object.c (mono_unhandled_exception): Only set the exit code if the
11142         exception happens in the main thread. Fixes thread5.exe.
11143
11144         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
11145         invalid names. Fixes #58047.
11146
11147 2004-05-03  Jackson Harper  <jackson@ximian.com>
11148
11149         * assembly.c: This line was committed accidently and is unneeded.
11150         
11151 2004-05-03  Jackson Harper  <jackson@ximian.com>
11152
11153         * icall.c: Add new icall for Assembly::LoadWithPartialName
11154         * assembly.c/.h: new function that probes the GAC to load partial
11155         assembly names by Paolo Molaro.
11156         
11157 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11158
11159         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
11160         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
11161         (type_get_fully_qualified_name): Added PublicKeyToken when building a
11162         full type name.
11163
11164 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11165
11166         * appdomain.c: fixed check for 'neutral' culture and removed warning.
11167         * reflection.c: fix bug when parsing a full type name and Version is not
11168         the last thing in the string.
11169
11170 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
11171
11172         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
11173         crashes when it is freed.
11174
11175 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11176
11177         * assembly.c: print the compat warning to stderr.
11178
11179 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
11180
11181         * assembly.c (mono_assembly_load_references): Add a compatibility
11182         hack to run old applications that might be still referencing the
11183         3300-based assemblies, only do this for System.xxx.
11184
11185 2004-05-01  Jackson Harper  <jackson@ximian.com>
11186
11187         * appdomain.c: If the culture is neutral we set it to "".
11188         
11189 2004-04-29  Jackson Harper  <jackson@ximian.com>
11190
11191         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
11192
11193 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
11194  
11195         * string-icalls.c: added low overhead function for copying chars
11196         * icall.c: added needed icall for the above function
11197  
11198 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11199
11200         * icall.c: fix return value of get_global_assembly_cache.  Implemented
11201         Environment.GetLogicalDrives.
11202
11203 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
11204
11205         * rand.c: try and talk to egd or prngd
11206         for random bytes if opening devices fail.
11207
11208 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
11209
11210         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
11211         alignment for the type using the native alignment of its members 
11212         instead of using klass->min_align.
11213
11214         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
11215
11216 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11217
11218         * file-io.c:
11219         * socket-io.c: added check for sys/aio.h.
11220
11221 2004-04-28  Dick Porter  <dick@ximian.com>
11222
11223         * threads.c: Don't abort a thread thats already aborting, when
11224         terminating everything.
11225
11226 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11227
11228         * icall.c: added 2 new async calls for Socket.
11229
11230         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
11231         IO on *nix systems.
11232
11233         * threadpool.c: removed unused variable.
11234
11235 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
11236
11237         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
11238
11239 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11240
11241         * locales.c: put back string_invariant_tolower () and
11242         string_invariant_toupper ().
11243
11244 2004-04-26 David Waite <mass@akuma.org>
11245
11246         * file-io.h:
11247         * socket-io.h:
11248         * threads.h:
11249         * unicode.h: remove comma from end of enumeration declarations
11250
11251 2004-04-26 David Waite <mass@akuma.org>
11252
11253         * debug-mono-symfile.h:
11254         * decimal.c:
11255         * mono_debug.h:
11256         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
11257
11258
11259 2004-04-26  Jackson Harper  <jackson@ximian.com>
11260
11261         * appdomain.c: Increment version number.
11262         
11263 2004-04-26  Jackson Harper  <jackson@ximian.com>
11264
11265         * appdomain.c: Set assembly references public token value when
11266         PublicKeyToken is specified, not the hash_value. Free public token
11267         values when free assembly name data. Previously the public key
11268         token was hex decoded, however we are using hex encoded public key
11269         tokens, so this is not neccasary.
11270         * assembly.c: Lookup assemblies in the gac if their public token
11271         value is set. Add function to allow enabling user gac
11272         lookups. Specify whether or not the assembly was loaded from the
11273         GAC. Compare full assembly names when checking the cache for
11274         assemblies (Temporarily disabled see comment in code). Remove
11275         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
11276         specifies trace-loader they get extra info to stdout on the
11277         loading of assemblies.
11278         * image.h: Add a field for an assembly references public token
11279         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
11280         whether an assembly has been loaded from the GAC.
11281         * image.c: Remove a corlib -> mscorlib name mapping.
11282         * loader.h: Add function to enable/disable the user gac.
11283         * mono-config.c: Check if the usergac is enabled in the config
11284         file.
11285         * icall.c: New icall to determine whether or not an assembly has
11286         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
11287         * tabldefs.h: Add constant for assemblyref flag that specifies a
11288         full public key is used instead of a public token.
11289         * reflection.c: Remove mscorlib -> corlib mappings. Set
11290         PublicTokenValue instead of hash value. This value is a hex
11291         string so it does not need to be expanded.
11292
11293 2004-04-26  Martin Baulig  <martin@ximian.com>
11294
11295         * mono-debug-debugger.c (mono_debugger_initialize): Set
11296         `mono_debugger_initialized' before calling mono_debug_lock().
11297
11298 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
11299
11300         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
11301           InternalToUpper/InternalToLower.
11302         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
11303           removed invariant culture shortcut.  This is now done in managed code.
11304         * locales.c: (string_invariant_toupper/tolower) removed.
11305
11306 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11307
11308         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
11309         Added Poll internal call.
11310
11311         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
11312         call for Poll. Select was too heavy for polling a single socket.
11313
11314         * threadpool.[ch]: added mono_threadpool_cleanup.
11315         * threads.c: use it. Don't use Thread_Abort on windows.
11316
11317 2004-04-23  Martin Baulig  <martin@ximian.com>
11318
11319         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
11320
11321 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
11322
11323         * icall.c: Registred new icalls for key pair protection and added an
11324         icall for Environment.GetFolderPath on Windows.
11325         * security.c|h: Added new icalls for key pair protection.
11326
11327 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11328
11329         * socket-io.c: don't display the non-supported family warning for known
11330         families. Now this is not displayed on windows when checking support
11331         for IPv4/IPv6.
11332
11333 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11334
11335         * class.c: don't display the layout warning for static fields.
11336
11337 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
11338
11339         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
11340         * locales.c, locales.h: Added new icalls for culture-specific
11341         Char.ToLower and Char.ToUpper.
11342
11343 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11344
11345         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
11346         by David Waite.
11347
11348 2004-04-20  Martin Baulig  <martin@ximian.com>
11349
11350         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
11351         of the type name before passing it to mono_reflection_type_from_name().
11352
11353 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
11354
11355         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
11356         encodings here. Fixes #56965.
11357
11358 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
11359
11360         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11361         fix test on strstr result not that I can see anything that
11362         relies on the result.
11363
11364 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
11365
11366         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
11367         Fixes #57081.
11368
11369         * marshal.c (mono_marshal_get_string_encoding): New helper function.
11370
11371         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
11372         function to determine which marshalling to use for strings. Fixes
11373         #56965.
11374
11375         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
11376
11377         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
11378
11379 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
11380
11381         * icall.c: #include mono-config.h
11382
11383 2004-04-15  Jackson Harper  <jackson@ximian.com>
11384
11385         * culture-info-tables.h: Fix date formats for en-US culture.
11386         
11387 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
11388
11389         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
11390         ThreadPool.SetMinThreads.
11391         * threadpool.c: Implemented ThreadPool.GetMinThreads and
11392         ThreadPool.SetMinThreads.
11393
11394 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11395
11396         * mono-config.c: also load the .config file in the directory
11397         where the assembly was found.
11398
11399 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
11400
11401         * assembly.c: load per-assembly config files.
11402         * icall.c: decrapified code to get the config dir and moved to
11403         mono-config.c.
11404         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
11405         per-assembly config files. When doing a dll map lookup give precedence
11406         to the per-assembly data.
11407
11408 2004-04-14  Martin Baulig  <martin@ximian.com>
11409
11410         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
11411         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
11412         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
11413
11414         * mono-debugger-debugger.c: While the debugger is locked, remember
11415         whether the symbol tables have changes and send one single
11416         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
11417
11418 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
11419
11420         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
11421
11422         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
11423         function.
11424
11425         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
11426         account when marshalling string arrays. Fixes #56965.
11427
11428 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
11429
11430         * icall.c: Add new icalls mapping for security.
11431         * security.c|h: Add internal calls for WindowsIdentity,
11432         WindowsImpersonationContext and WindowsPrincipal.
11433
11434 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
11435
11436         * class.c: Added comment to ensure the System.MonoDummy class
11437         is removed when no longer necessary
11438
11439 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
11440
11441         * appdomain.c: Pass arguments to the bootstraping exceptions to
11442         minimize JITed methods at boot
11443
11444         * metadata.c (mono_exception_from_name_two_strings): Allow for the
11445         second string to be null.
11446
11447         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
11448         Change the protocol to minimize the JIT methods at startup.  Now
11449         it Returns the internal codepage, if the value of "int_code_page"
11450         is 1 at entry, and we can not compute a suitable code page
11451         number, returns the code page as a string.
11452
11453 2004-04-13  Jackson Harper  <jackson@ximian.com>
11454
11455         * culture-info-tables.h: Fix number of decimal digits for all
11456         english locales.
11457
11458 2004-04-13  Jackson Harper  <jackson@ximian.com>
11459
11460         * icall.c: Clairfy out of sync error message. It is not always
11461         your corlib that is out of sync.
11462
11463 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
11464
11465         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
11466         properties when only the set accessor is overriden. Fixes #55874.
11467
11468 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
11469
11470         * assembly.c (mono_assembly_load_references): Make this thread safe.
11471         Fixes #56327.
11472
11473 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
11474
11475         * monosn.c: Add missing initialization calls.
11476
11477 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
11478
11479         * locales.c:
11480         ves_icall_System_Globalization_CultureInfo_construct_number_format
11481         Fix g_assert so it compiles on fussier compilers re int/ptr
11482         mismatch
11483
11484 2004-04-08  Dick Porter  <dick@ximian.com>
11485
11486         * socket-io.h:
11487         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
11488         53992.  Also rearrange the code so that the internal calls return
11489         an error value and exceptions are thrown from managed code.
11490
11491         * icall.c: Add type info to the socket icalls.
11492
11493 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11494
11495         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
11496         owes me a beer.
11497
11498 2004-04-07  Martin Baulig  <martin@ximian.com>
11499
11500         * class.c (mono_class_from_generic_parameter): Don't default
11501         `klass->parent' to `mono_defaults.object_type'.
11502
11503 2004-04-07  Martin Baulig  <martin@ximian.com>
11504
11505         * reflection.c (mono_reflection_initialize_generic_parameter): Set
11506         `param->pklass->reflection_info'.       
11507
11508 2004-04-07  Jackson Harper  <jackson@ximian.com>
11509
11510         * culture-info-tables.h: Fix date separator symbol.
11511         
11512 2004-04-07  Martin Baulig  <martin@ximian.com>
11513
11514         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
11515         from System.Type to System.MonoType.
11516
11517 2004-04-07  Martin Baulig  <martin@ximian.com>
11518
11519         * reflection.h
11520         (MonoReflectionGenericParam): Added `has_reference_type' and
11521         `has_value_type' fields.
11522
11523         * reflection.c (mono_image_get_generic_param_info): Encode the
11524         correct flags if we have the `class' or `struct' constraint.
11525
11526 2004-04-07  Martin Baulig  <martin@ximian.com>
11527
11528         * reflection.h
11529         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
11530
11531 2004-04-07  Jackson Harper  <jackson@ximian.com>
11532
11533         * appdomain.c: Revert extra patches, just wanted to bump the
11534         version number.
11535         
11536 2004-04-07  Jackson Harper  <jackson@ximian.com>
11537
11538         * Makefile.am: Add culture-info private headers.
11539         * icall.c: Add new icalls for contructing locales.
11540         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
11541         * locales.h: Declare new culture info construction methods.
11542         * object.h: Add new fields used to avoid the CultureMap to
11543         MonoCultureInfo.
11544         * culture-info.h: Definition of structs used in the culture info
11545         tables.
11546         * culture-info-tables.h: Autogenerated tables that contain culture
11547         info data. This file was generated with the locale-builder tool.
11548         * appdomain.c: Incement corlib version number.
11549         
11550 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
11551
11552         * appdomain.c: (mono_runtime_init) move mono_thread_init
11553         to before mono_object_new calls so critical sections
11554         are initialized before use.
11555
11556 2004-04-07  Martin Baulig  <martin@ximian.com>
11557
11558         * icall.c
11559         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
11560         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
11561         (ves_icall_MonoGenericParam_initialize): Removed.
11562         (monogenericparam_icalls): Removed.
11563         (generictypeparambuilder_icalls): Added new table for
11564         System.Reflection.Emit.GenericTypeParameterBuilder.
11565
11566         * reflection.c
11567         (mono_reflection_define_generic_parameter): Removed.
11568         (mono_reflection_initialize_generic_parameter): This is now called
11569         from GenericTypeParameterBuilder's .ctor.
11570
11571 2004-04-06  Martin Baulig  <martin@ximian.com>
11572
11573         * class.c (mono_class_init): Don't inflate nested classes in a
11574         generic instance.
11575         (mono_type_get_name_recurse): Include the generic arguments for
11576         generic instances and generic type declarations.
11577         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
11578         (_mono_class_get_instantiation_name): Removed.
11579         (mono_class_create_generic): Always use `gklass->name' as our name.
11580
11581         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
11582
11583         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
11584         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
11585         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
11586         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
11587         closed generic methods here.
11588
11589         * reflection.c
11590         (mono_reflection_generic_inst_get_nested_types): Removed.
11591         (inflate_mono_method): Copy the generic parameters from the
11592         MonoMethodHeader into out MonoGenericMethod.
11593
11594 2004-04-06  Martin Baulig  <martin@ximian.com>
11595
11596         * row-indexes.h
11597         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
11598
11599         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
11600
11601         * reflection.c (build_compressed_metadata): If we have any entries
11602         in the GenericParam, MethodSpec or GenericParamConstraint tables,
11603         set the header version to 1.1.
11604
11605 2004-04-06  Martin Baulig  <martin@ximian.com>
11606
11607         * class.c (mono_class_init): If we're a generic instance,
11608         initialize our nested classes, too.
11609         (_mono_class_get_instantiation_name): Deal with the new `!%d'
11610         suffix. 
11611
11612 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11613
11614         * process.c: quote the argument passed to the shell on windows.
11615
11616 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
11617
11618         * threads.c (mono_alloc_special_static_data): Allow this to be
11619         called during startup.
11620
11621 2004-04-02  Martin Baulig  <martin@ximian.com>
11622
11623         * icall.c
11624         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
11625
11626 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
11627
11628         * icall.c: Fix build.
11629
11630 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
11631
11632         * Makefile.am: Added security.c|h.
11633         * icall.c: Added icall for get_UserName;
11634         * security.c: New file for security related icalls. Added function
11635         get_UserName for System.Environment (fix #56144).
11636         * security.h: New. Header file for security.c
11637
11638 2004-04-02  Dick Porter  <dick@ximian.com>
11639
11640         * icall.c: Deleted the icalls that were obsoleted some time ago
11641         by the ICU string code, and which were mixed into the icall
11642         rearranging.  Fixes bug 55969.
11643
11644         * string-icalls.h: 
11645         * string-icalls.c: Deleted the code that those icalls reference.
11646
11647 2004-04-01  Martin Baulig  <martin@ximian.com>
11648
11649         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
11650
11651         * class.c (mono_class_from_generic_parameter): Don't set 
11652         TYPE_ATTRIBUTE_INTERFACE.
11653         (my_mono_class_from_generic_parameter): Likewise.
11654
11655 2004-04-01  Martin Baulig  <martin@ximian.com>
11656
11657         * loader.c (find_method): Added an optional `MonoClass *ic'
11658         argument to search in a specific interface.
11659         (mono_get_method_constrained): New public function.
11660
11661 2004-04-01  Martin Baulig  <martin@ximian.com>
11662
11663         * reflection.c (mono_image_get_generic_field_token): Use the
11664         `handleref' cache here.
11665
11666 2004-04-01  Martin Baulig  <martin@ximian.com>
11667
11668         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
11669
11670         * reflection.c (create_generic_typespec): Use the `typespec' hash
11671         here, not the `typeref' one.    
11672
11673 2004-04-01  Martin Baulig  <martin@ximian.com>
11674
11675         * class.c (mono_class_inflate_generic_type): Moved the
11676         functionality into a new static inflate_generic_type() which
11677         returns NULL if it didn't do anything.  Only increment the
11678         `mono_stats.inflated_type_count' if we actually inflated
11679         something.
11680         (mono_class_get_full): Check the classes type to see whether we
11681         need to inflate it; also inflate MONO_TYPE_(M)VAR.
11682
11683 2004-04-01  Jackson Harper  <jackson@ximian.com>
11684
11685         * reflection.c: Set culture for assembly references.
11686         
11687 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
11688
11689         * reflection.[ch], icall.[ch], Fix support for pinning variables.
11690
11691 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11692
11693         * assembly.c:
11694         (do_mono_assembly_open): the critical section also covers
11695         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
11696
11697 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11698
11699         * threads.c:
11700         (mono_manage_threads): abort the background threads when finishing.
11701         Fixes bug #47232.
11702
11703 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11704
11705         * gc.c: only close the done_event handle if there was no timeout.
11706         C-ified comments.
11707
11708 2004-03-30  Martin Baulig  <martin@ximian.com>
11709
11710         * icall.c (icall_entries): It's called "System.Activator", not
11711         "System.Activation".    
11712
11713 2004-03-30  Martin Baulig  <martin@ximian.com>
11714
11715         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
11716         (mono_class_create_from_typespec): Likewise.
11717
11718 2004-03-30  Martin Baulig  <martin@ximian.com>
11719
11720         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
11721         `has_ctor_constraint' and `initialized'.
11722
11723 2004-03-30  Martin Baulig  <martin@ximian.com>
11724
11725         * reflection.c (encode_new_constraint): New static function to add
11726         the constructor constraint attribute to a type parameter.
11727         (encode_constraints): Call encode_new_constraint() if necessary.
11728
11729         * reflection.h
11730         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
11731
11732         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
11733         
11734 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
11735
11736         * reflection.c, icall.c: add support for pinning variables. 
11737
11738 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
11739
11740         * marshal.c (mono_marshal_get_managed_wrapper):
11741         init bool local with zero rather than null.
11742
11743 2004-03-29  Martin Baulig  <martin@ximian.com>
11744
11745         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
11746         the "official" behavior here.
11747         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
11748
11749 2004-03-29  Martin Baulig  <martin@ximian.com>
11750
11751         * icall.c: Reflect latest API changes.
11752
11753 2004-03-29  Martin Baulig  <martin@ximian.com>
11754
11755         * loader.c (mono_get_method_from_token): Also call
11756         mono_metadata_load_generic_params () for abstract and interface
11757         methods; replace the type arguments in the method signature with
11758         the ones which are loaded from the metadata.
11759
11760 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
11761
11762         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
11763         of the lock is not the current thread. MS.NET don't do it, in spite of
11764         what the documentation says. See bug #56157.
11765
11766 2004-03-28  Martin Baulig  <martin@ximian.com>
11767
11768         * class.c (mono_class_init): Don't call init_properties() and
11769         init_events() for generic instances; set `prop->parent' when
11770         inflating properties.
11771
11772         * reflection.c (mono_generic_inst_get_object): Call
11773         `mono_class_init (ginst->klass)'.
11774         (mono_type_get_object): Only create a MonoGenericInst if your
11775         generic type is a TypeBuilder.
11776         (do_mono_reflection_bind_generic_parameters): Only set
11777         `ginst->is_dynamic' if our generic type is a TypeBuilder.
11778
11779 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
11780
11781         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
11782         Fixes #56091.
11783
11784 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11785
11786         * icall.c: added Kill_internal icall.
11787         * process.[ch]: added Kill_internal icall.
11788
11789 2004-03-25  Martin Baulig  <martin@ximian.com>
11790
11791         * class.h (MonoStats): Added `generic_instance_count',
11792         `inflated_method_count', `inflated_type_count' and
11793         `generics_metadata_size'.       
11794
11795 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11796
11797         * reflection.c: no warnings now.
11798
11799 2004-03-25  Martin Baulig  <martin@ximian.com>
11800
11801         * class.c (mono_class_get_full): New public function; does a
11802         mono_class_get(), but also takes a `MonoGenericContext *'.
11803
11804         * loader.c (mono_field_from_memberref): Renamed to
11805         `field_from_memberref', made static and added `MonoGenericContext *'
11806         argument.
11807         (mono_field_from_token): Added `MonoGenericInst *' argument.
11808         (method_from_memberef): Likewise.
11809         (mono_get_method_from_token): Likewise.
11810         (mono_get_method_full): New public function; does a
11811         mono_get_method(), but also takes a `MonoGenericContext *'.
11812
11813         * verify.c (mono_method_verify): Get the method's generic context
11814         and pass it to mono_field_from_token(), mono_get_method_full() and
11815         mono_class_get_full().
11816
11817 2004-03-25  Martin Baulig  <martin@ximian.com>
11818
11819         * class.c (mono_class_inflate_generic_type): Take a
11820         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
11821         `MonoGenericMethod *'.
11822
11823 2004-03-25  Martin Baulig  <martin@ximian.com>
11824
11825         * loader.h (MonoMethodInflated): Store the MonoGenericContext
11826         instead of the MonoGenericMethod here.
11827
11828 2004-03-25  Martin Baulig  <martin@ximian.com>
11829
11830         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
11831         each time we create a new MonoGenericInst, we also create a new
11832         context which points back to us.
11833
11834         * class.c (inflate_method): Use `ginst->context' instead of
11835         creating a new context.
11836
11837         * loader.c (method_from_memberref): Use
11838         `klass->generic_inst->context' instead of creating a new context.
11839
11840 2004-03-25  Martin Baulig  <martin@ximian.com>
11841
11842         * class.h (MonoGenericContext): New struct.
11843         (MonoGenericMethod): Removed `generic_inst'.
11844
11845         * class.c (mono_class_inflate_generic_method): Take a
11846         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
11847
11848 2004-03-25  Martin Baulig  <martin@ximian.com>
11849
11850         * loader.h (MonoMethodInflated): New typedef.
11851
11852         * metadata.h (MonoMethodSignature): Removed `gen_method', make
11853         `generic_param_count' consume just 30 bits, added `is_inflated'
11854         and `has_type_parameters' flags (one bit each).
11855
11856         * class.c (mono_class_inflate_generic_method): Create a
11857         MonoMethodInflated instead of a MonoMethodNormal and set
11858         `is_inflated' in the method signature.
11859
11860         * class.h (MonoGenericMethod): Removed `generic_method'.
11861
11862 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
11863
11864         * image.c: Make sure the name of a MonoImage is always an absolute path.
11865           This fixes bug #54415.
11866
11867 2004-03-24  Martin Baulig  <martin@ximian.com>
11868
11869         * class.c (mono_class_setup_vtable): If we're a generic instance,
11870         use our generic type's vtable size.
11871
11872 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
11873
11874         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
11875         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
11876         problems.
11877
11878 2004-03-23  Martin Baulig  <martin@ximian.com>
11879
11880         * class.h (MonoDynamicGenericInst): Added `int count_events' and
11881         `MonoEvent *events'.
11882
11883         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
11884         (typebuilder_icalls): Added "get_event_info"; calls
11885         mono_reflection_event_builder_get_event_info(). 
11886
11887         * reflection.c (mono_reflection_generic_inst_initialize): Added
11888         `MonoArray *events'.
11889         (mono_reflection_event_builder_get_event_info): New function.
11890
11891 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
11892
11893         * object.h: add mono_type_initialization_init
11894
11895         * object.c (mono_runtime_class_init): 
11896         implement class constructor synchronization rules
11897         to cope with threading issues.  
11898         add mono_type_initialization_init
11899
11900         * appdomain.c (mono_runtime_init): call 
11901         mono_type_initialization_init
11902
11903         * class.h: removing initializing field from MonoVTable
11904
11905 2004-03-23  Martin Baulig  <martin@ximian.com>
11906
11907         * class.c (my_mono_class_from_generic_parameter): Use
11908         `param->name' if it's not NULL. 
11909
11910 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
11911
11912         * class.c: do not insert non-virtual methods in the vtable.
11913         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
11914         that means the method is non-virtual. This never would have
11915         happened before.
11916
11917 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
11918
11919         * profiler.c: Added lock for accessing coverage_hash.
11920
11921 2004-03-22  Martin Baulig  <martin@ximian.com>
11922
11923         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
11924         `method->method->signature->generic_param_count != 0' to make it
11925         work for interface methods.
11926
11927 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11928
11929         * process.c: quote the string passed to the shell using g_shell_quote.
11930
11931 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11932
11933         * threads.c:
11934         (mono_threads_manage): don't remove the finalizer thread and self
11935         from the threads hash table so that mono_thread_manage can be called
11936         more than once.
11937
11938 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11939
11940         * process.c: quote the arguments when UseShellExecute is true. Fixes
11941         bug #55790.
11942
11943 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11944
11945         * threads.c: set mono_thread_detach as a cleanup routine for every
11946         thread. This way it's always executed upon thread termination, either
11947         aborted or finished normally. No more xsp hangs!
11948
11949 2004-03-17  Martin Baulig  <martin@ximian.com>
11950
11951         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
11952         `int count_nested' and a `MonoType **nested'.
11953
11954         * reflection.c (mono_reflection_bind_generic_parameters): Moved
11955         most of the functionality into a new static
11956         do_mono_reflection_bind_generic_parameters() and don't take a
11957         `MonoType *nested_in' argument any more.  Don't compute nested
11958         types here.
11959         (mono_reflection_generic_inst_get_nested_types): New public method
11960         to get nested types.
11961
11962         * class.c (mono_class_create_generic): Set `klass->nested_in' if
11963         we're a nested class.
11964
11965         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
11966         mono_reflection_generic_inst_get_nested_types() to compute the
11967         nested types.
11968
11969 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11970
11971         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
11972         descriptive error message under windows.
11973         
11974 2004-03-17  Martin Baulig  <martin@ximian.com>
11975
11976         * class.c (dup_type): Added `const MonoType *original' argument;
11977         copy the attrs from the original type.
11978
11979 2004-03-17  Martin Baulig  <martin@ximian.com>
11980
11981         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
11982         `m->generic_inst_cache' here.
11983
11984 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
11985
11986         * exception.h exception.c: Add stack_overflow_exception.
11987
11988 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11989
11990         * threadpool.c:
11991         (overlapped_callback): call SetEvent *after* invoking the callback.
11992         No need to call CloseHandle.
11993
11994 2004-03-16  Martin Baulig  <martin@ximian.com>
11995
11996         * reflection.c (mono_image_get_fieldref_token): Take a
11997         `MonoReflectionField *' instead of a `MonoClassField *' and a
11998         `MonoClass *'; store the `MonoReflectionField *' in the hash.
11999
12000 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12001
12002         * appdomain.c: don't add the culture to the filename we're looking for
12003         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
12004
12005 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12006
12007         * locales.c: don't ignore symbols when doing case insensitive compares.
12008         Thanks Dick! Fixes bug #54046.
12009
12010         * threads.c: surround 'threads' usage with enter/leave in
12011         mono_thread_manage.
12012
12013 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
12014
12015         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
12016         implicitly marshalled as [Out]. Fixes #55450.
12017
12018         (mono_marshal_get_runtime_invoke): Zero out the result if there is
12019         an exception.
12020
12021 2004-03-16  Martin Baulig  <martin@ximian.com>
12022
12023         * class.c (mono_class_from_generic_parameter): Use the actual
12024         parameter name. 
12025
12026 2004-03-16  Martin Baulig  <martin@ximian.com>
12027
12028         * reflection.c (type_get_signature_size): New static function.
12029         Compues the size of the type in a method signature.
12030         (method_get_signature_size): New static function; calls
12031         type_get_signature_size() to compute the actual size of the
12032         method's signature.
12033         (method_encode_signature): Use method_get_signature_size() to get
12034         the signature's size rather than using `nparams * 10'.
12035
12036 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12037
12038         * file-io.h: define here WapiOverlapped on windows. I don't want the
12039         regular OVERLAPPED one.
12040
12041         * file-io.c:
12042         * threadpool.c: somehow, BindIoCompletionCallback is not found.
12043         Disabling AIO on windows.
12044
12045 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12046
12047         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
12048         bug #55385.
12049
12050 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12051
12052         * appdomain.c: upgraded corlib version.
12053
12054         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
12055         and BeginWrite. Allow opening files for asynchrnous operations.
12056
12057         * file-io.h: new struct that maps FileStreamAsyncResult.
12058         * icall.c: added new icalls.
12059         * process.[ch]: support setting child process environment variables
12060         and use the SHELL or COMSPEC when UseShellExecute is true.
12061
12062         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
12063         callback for async. IO is here and also BindHandle.
12064
12065         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
12066         from here.
12067
12068 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
12069
12070         * reflection.c (create_custom_attr): Allow len == 0.
12071
12072         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
12073         computation on big-endian machines.
12074
12075 2004-03-13  Martin Baulig  <martin@ximian.com>
12076
12077         * class.h (MonoGenericInst): Added `int count_ifaces'.
12078
12079         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
12080         `ginst->count_ifaces' instead `klass->interface_count' since we
12081         may get called before the vtable is created.
12082
12083         * loader.c (mono_method_get_param_names): If we're a generic
12084         instance, return and don't initialize the class.
12085
12086         * reflection.c (mono_reflection_setup_generic_class): Don't call
12087         ensure_runtime_vtable().
12088         (mono_reflection_bind_generic_parameters): Set
12089         `ginst->count_ifaces'.
12090
12091 2004-03-11  Jackson Harper <jackson@ximian.com>
12092
12093         * icall.c:
12094         * unicode.c:
12095         * unicode.h: Remove unused System.Char icalls.
12096         
12097 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
12098
12099         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
12100         code when we P/Invoke the first library in Windows.Forms, instead
12101         of when we first open the assembly.
12102
12103         * assembly.c: Drop the lookup from here.
12104
12105 2004-03-10  Martin Baulig  <martin@ximian.com>
12106
12107         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
12108         class for properties, fields and events.  Finally fixes #54945.
12109
12110 2004-03-10  Martin Baulig  <martin@ximian.com>
12111
12112         * metadata.c (mono_metadata_class_equal): New static function;
12113         checks whether two generic instances or two generic parameters are
12114         equal.
12115         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
12116         compare classes.        
12117
12118 2004-03-10  Martin Baulig  <martin@ximian.com>
12119
12120         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
12121
12122         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
12123         argument and write it into the `reflection_info' field.
12124
12125         * icall.c
12126         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
12127         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
12128
12129 2004-03-09  Jackson Harper  <jackson@ximian.com>
12130
12131         * char-conversions.h: use 8 bits for numeric data its all we need
12132         * icall.c: numeric data is only 8 bits now.
12133
12134 2004-03-09  Martin Baulig  <martin@ximian.com>
12135
12136         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
12137
12138         * class.c (init_properties, init_events): Initialize the new
12139         `parent' field.
12140
12141         * reflection.c (typebuilder_setup_properties): Likewise.
12142         (typebuilder_setup_events): Likewise.
12143
12144         * reflection.h (MonoEventInfo): Replaced `parent with
12145         `declaring_type' and `reflected_type'.
12146
12147         * icall.c (ves_icall_get_property_info): Distinguish between
12148         declaring and reflected type.
12149         (ves_icall_get_event_info): Likewise.
12150
12151 2004-03-09  Martin Baulig  <martin@ximian.com>
12152
12153         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
12154         (ves_icall_Type_GetField): Correctly set field->klass.
12155
12156 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
12157
12158         * loader.h: Fix warning.
12159
12160 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
12161
12162         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
12163         library routine if present.  Notice that it will still continue
12164         executing even if its missing, for those working on the Gtk#
12165         edition of Windows.Forms.
12166
12167         * assembly.c (do_mono_assembly_open): If loading the
12168         System.Windows.Forms call mono_loader_wini_init.
12169
12170 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
12171
12172         * class.h: Added MonoRemoteClass struct.
12173         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
12174         function for MonoStrings.
12175         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
12176         Added internal call for getting the proxy type.
12177         * marshal.c: Get the type of transparent proxies from its remote_class.
12178         Added methods that generate the IL for type checks and casts:
12179         mono_marshal_get_isinst, mono_marshal_get_castclass, 
12180         mono_marshal_get_proxy_cancast.
12181         * marshal.h: Declaration of the previous new methods.
12182         * object.c: Added new moethods for creating and updating MonoRemoteClass
12183         instances: mono_remote_class, mono_upgrade_remote_class, 
12184         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
12185         * verify.c: FIx transparent_proxy_fields layout.
12186         * appdomain.c: Bump corlib version.
12187
12188 2004-03-04  Jackson Harper  <jackson@ximian.com>
12189
12190         * icall.c: Add icall to access char conversion tables.
12191         * char-conversions.h: Character conversion tables.
12192         * Makefile.am: Add char-conversions.h private header file.
12193         
12194 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
12195
12196         * appdomain.c (unload_thread_main): Increase unloading timeout to
12197         10 sec as a temporary workaround for Nant problems.
12198
12199 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
12200
12201         * gc.c: Add checks for GC_enable and GC_disable.
12202
12203         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
12204         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
12205         (bug #54988).
12206         
12207 2004-02-27  Martin Baulig  <martin@ximian.com>
12208
12209         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12210         `MonoReflectionType *' instead of a `MonoType *'.
12211
12212 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
12213
12214         * gc.c (run_finalize): Avoid finalizing the object representing the
12215         finalizer thread.
12216         (finalizer_thread): Fix warning.
12217
12218 2004-02-25  Martin Baulig  <martin@ximian.com>
12219
12220         * class.c (_mono_class_get_instantiation_name): Added `int offset'
12221         argument for nested types.
12222         (mono_class_create_generic): Added support for nested generictypes.
12223
12224         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
12225         `GList *nested'.
12226
12227         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
12228
12229         * reflection.c (method_encode_signature): Increase the minimum
12230         value of `size' from 10 to 11.
12231         (mono_reflection_bind_generic_parameters): Take `int type_argc'
12232         and `MonoType **types' arguments instead of the `MonoArray
12233         *types'; added `MonoType *nested_in'.  Recursively instantiate
12234         nested classes. 
12235
12236 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
12237
12238         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
12239         stack_overflow_ex members which are used by exception handling.
12240
12241         * appdomain.c (mono_runtime_init): Initialize the new members.
12242
12243         * gc.c (mono_gc_enable): New helper function.
12244         * gc.c (mono_gc_disable): New helper function.
12245
12246 2004-02-23  Martin Baulig  <martin@ximian.com>
12247
12248         * icall.c: I must have been really stupid - make it actually work
12249         this time ;-)
12250
12251 2004-02-23  Martin Baulig  <martin@ximian.com>
12252
12253         * loader.c (method_from_memberref): Only inflate the method if
12254         it's in another klass.
12255
12256 2004-02-23  Martin Baulig  <martin@ximian.com>
12257
12258         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
12259         (mono_class_init): If we're a generic instance and an interface,
12260         compute `class->interface_id'; also create `class->interfaces'
12261         here and inflate them.
12262
12263         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
12264         `ginst->is_open'.
12265         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
12266
12267         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
12268
12269 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
12270
12271         * reflection.c (method_encode_code): Improved the error message
12272         generated by the exception.
12273
12274 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12275
12276         * icall.c: Martin did not do what he said in the ChangeLog for
12277         2004-02-18, but put back the changes for properties and events.
12278         Commenting those changes out again and adding comment to bug #54518.
12279         
12280         * process.c: removed warning.
12281
12282 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
12283
12284         * marshal.c (emit_struct_conv): Print an error message instead of
12285         asserting when a type does not have the StructLayout attribute.
12286
12287 2004-02-20  Martin Baulig  <martin@ximian.com>
12288
12289         * reflection.c (mono_type_get_object): Also use the cache for
12290         generic instances.
12291         (mono_reflection_bind_generic_parameters): Always compute
12292         `ginst->ifaces'.        
12293
12294 2004-02-20  Martin Baulig  <martin@ximian.com>
12295
12296         * class.h (MonoGenericMethod): Removed `klass'.
12297
12298         * class.c (mono_class_inflate_generic_method): Added `MonoClass
12299         *klass' argument.
12300
12301 2004-02-20  Martin Baulig  <martin@ximian.com>
12302
12303         * reflection.c (method_encode_methodspec): Actually use the
12304         uninflated signature for the memberref.
12305
12306 2004-02-20  Martin Baulig  <martin@ximian.com>
12307
12308         * class.h (MonoGenericMethod): Removed `declaring'.
12309
12310         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
12311         is NULL, compute it here.
12312
12313 2004-02-20  Martin Baulig  <martin@ximian.com>
12314
12315         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
12316
12317         * metadata.c (mono_metadata_generic_inst_hash): New method.
12318         (mono_metadata_generic_inst_equal): New method.
12319
12320         * reflection.c (mono_reflection_bind_generic_parameters): Use the
12321         `klass->image->generic_inst_cache' cache to avoid creating
12322         duplicate MonoGenericInst's.
12323
12324         * class.c (mono_class_inflate_generic_type): Use the cache.
12325
12326 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
12327
12328         * object.c: fixed gc descriptor calculation for embedded valuetypes.
12329
12330 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12331
12332         * icall.c: added Socket.WSAIoctl icall.
12333
12334         * socket-io.[ch]: implemented
12335         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
12336
12337 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
12338
12339         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
12340
12341 2004-02-18  Urs C Muff  <umuff@quark.com>
12342
12343         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
12344         this work on PPC and other big-endian architectures.
12345
12346         * debug-mono-symfile.h: Prepended the names of all the `guint32'
12347         fields with an underscore to make sure they're only accessed by
12348         the read32() macro.
12349
12350 2004-02-18  Martin Baulig  <martin@ximian.com>
12351
12352         * icall.c: Put the klass->refclass changes back for methods and
12353         fields, but not for properties and events.  We're currently not
12354         distinguishing between DeclaringType and ReflectedType for
12355         properties and events, that's what caused the regressions.
12356
12357 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12358
12359         * object.c:
12360         (mono_async_result_new): the handle can be NULL.
12361
12362         * threadpool.c: Use an event instead of a semaphore, don't initialize
12363         it until needed. This saves quite a few semaphores from being created
12364         when using the threadpool.
12365
12366 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
12367
12368         * object.c (mono_string_is_interned_lookup): Fix interning of long
12369         strings. Fixes #54473.
12370
12371         * domain.c (ldstr_equal): Optimize if the two strings are equal.
12372
12373         * icall.c: Revert the klass->refclass changes since they introduce
12374         regressions (bug #54518).
12375
12376 2004-02-18  Martin Baulig  <martin@ximian.com>
12377
12378         * class.c (mono_class_init): If we're a generic instance and don't
12379         come from a TypeBuilder, inflate our members here.
12380         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
12381         (mono_class_create_generic): New public method.
12382         (mono_class_initialize_generic): Removed.
12383         (get_instantiation_name): Renamed to
12384         _mono_class_get_instantiation_name() and made it public.
12385
12386 2004-02-18  Martin Baulig  <martin@ximian.com>
12387
12388         * class.c (mono_class_inflate_generic_type): Clear the new
12389         instance's `nginst->klass' when inflating a generic instance.
12390         (mono_class_is_subclass_of): Added (basic) support for generic
12391         instances.
12392
12393 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
12394
12395         * appdomain.h, domain.c: use a MonoCodeManager instead of a
12396         MonoMempool to hold compiled native code.
12397
12398 2004-02-17  Martin Baulig  <martin@ximian.com>
12399
12400         * class.h (MonoDynamicGenericInst): Added `count_properties' and
12401         `properties'.
12402
12403         * reflection.c (mono_reflection_generic_inst_initialize): Added
12404         `MonoArray *properties' argument.
12405
12406         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
12407
12408 2004-02-17  Martin Baulig  <martin@ximian.com>
12409
12410         * icall.c (ves_icall_Type_GetFields): Renamed to
12411         ves_icall_Type_GetFields_internal() and added a
12412         `MonoReflectionType *rtype' argument; pass it to
12413         mono_field_get_object() to set the field's "reflected" type.
12414         (ves_icall_Type_GetConstructors): Likewise.
12415         (ves_icall_Type_GetEvents): Likewise.
12416         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
12417         argument; pass it to mono_method_get_object() to set the method's
12418         "reflected" type.       
12419
12420 2004-02-17  Martin Baulig  <martin@ximian.com>
12421
12422         * class.h (MonoDynamicGenericInst): New type.
12423         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
12424
12425         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
12426         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
12427         (ves_icall_MonoGenericInst_GetFields): New interncall.
12428
12429         * class.c (mono_class_from_generic): Don't call
12430         mono_class_initialize_generic() if this is a dynamic instance;
12431         ie. it's being created from a TypeBuilder.
12432         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
12433         `class->byval_arg.type'.
12434
12435         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
12436         to `inflate_method' and made static.
12437         (mono_reflection_inflate_field): Removed.
12438         (mono_reflection_generic_inst_initialize): New public method.
12439
12440         * reflection.h (MonoReflectionGenericInst): Removed `methods',
12441         `ctors' and `fields'; added `initialized'.
12442
12443 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
12444
12445         * debug-helpers.c (mono_method_full_name): Fix output for empty
12446         namespaces.
12447
12448 2004-02-12  Martin Baulig  <martin@ximian.com>
12449
12450         * class.h (MonoClassField): Added `MonoType *generic_type'.
12451
12452         * reflection.c (mono_image_get_fieldref_token): Added support for
12453         instantiated generic types.
12454         (field_encode_inflated_field): Removed.
12455         (mono_image_get_inflated_field_token): Removed.
12456         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
12457
12458         * reflection.h (MonoReflectionInflatedField): Removed.
12459
12460 2004-02-12  Martin Baulig  <martin@ximian.com>
12461
12462         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
12463         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
12464
12465         * reflection.c (mono_image_get_methodspec_token): Take a
12466         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
12467         (mono_image_create_token): Check whether we have a
12468         `method->signature->gen_method' and call
12469         mono_image_get_methodspec_token() if appropriate.
12470         (inflated_method_get_object): Removed.
12471         (mono_reflection_bind_generic_method_parameters): Return a
12472         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
12473         (mono_reflection_inflate_method_or_ctor): Likewise.
12474
12475         * reflection.h (MonoReflectionInflatedMethod): Removed.
12476
12477 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
12478
12479         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
12480         for custom valuetype marshalling.
12481
12482         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
12483
12484 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12485
12486         * icall.c: fixed WSAGetLastError_internal name.
12487
12488 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
12489
12490         * threads.c (mono_thread_attach): Allow this to be called multiple
12491         times for a thread.
12492         
12493         * threads.c (build_wait_tids): Do not wait for ourselves.
12494
12495         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
12496         appdomain list is empty.
12497
12498         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
12499         memory returned by mono_string_builder_to_utf16, since it points into
12500         managed memory. Thanks to Bernie Solomon for noticing this.
12501
12502         * icall.c: Add AppDomainSetup icalls.
12503
12504         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
12505
12506         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
12507         types.
12508
12509         * reflection.c (reflection_methodbuilder_to_mono_method): Save
12510         custom attributes to the method_aux struct. Also fix array indexes etc.
12511
12512         * loader.c (mono_method_get_param_names): Make dynamic case work again.
12513         
12514 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
12515
12516         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
12517         (both static and runtime) and reduce startup time.
12518
12519 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
12520
12521         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
12522         AsAny marshalling conversion instead of crashing.
12523
12524         * marshal.c: Fix warnings.
12525
12526 2004-02-09  Martin Baulig  <martin@ximian.com>
12527
12528         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
12529
12530         * reflection.h (MonoReflectionInflatedMethod): Removed the
12531         `declaring' field, it's now in the unmanaged MonoGenericMethod.
12532
12533         * reflection.c (method_encode_methodspec): Removed the `method'
12534         argument; we get it from `gmethod->declaring'.
12535         (inflated_method_get_object): Removed the `declaring' argument.
12536
12537 2004-02-09  Martin Baulig  <martin@ximian.com>
12538
12539         * class.h (MonoGenericMethod): New type.
12540         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
12541         `generic_method'.
12542
12543         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
12544         a `MonoGenericMethod *gen_method' one.
12545
12546         * class.c (mono_class_inflate_generic_type): Take an additional
12547         `MonoGenericMethod * argument.  This is only non-NULL if we're
12548         inflating types for a generic method.   
12549         (mono_class_inflate_generic_signature): Renamed to
12550         inflate_generic_signature() and made static; take a
12551         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12552         (inflate_generic_header): Take a `MonoGenericMethod *' argument
12553         instead of a `MonoGenericInst *' one.
12554         (mono_class_inflate_generic_method): Likewise.
12555
12556         * reflection.c (encode_generic_method_sig): Take a
12557         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
12558         (method_encode_methodspec): Likewise.
12559         (inflated_method_get_object): Likewise. 
12560
12561         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
12562         field with a `MonoGenericMethod *gmethod' one.  
12563
12564 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
12565
12566         * class.h (mono_class_has_parent): add parens to expansion
12567         so you can ! this.
12568
12569 2004-02-08  Martin Baulig  <martin@ximian.com>
12570
12571         * image.h (MonoImage): Removed `generics_cache'.
12572
12573         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
12574         instead of a `MonoType *' argument; removed the `inflate_methods'
12575         argument.  Don't inflate methods here.
12576
12577         * loader.c (find_method): If it's a generic instance, call
12578         mono_class_init() on the `sclass->generic_inst->generic_type'.
12579
12580         * metadata.c (mono_type_size): Make this work on uninitialized
12581         generic instances; call it on the `ginst->generic_type's class.
12582
12583         * reflection.c (mono_reflection_bind_generic_parameters): Call
12584         mono_class_from_generic() to create the `ginst->klass'.
12585
12586 2004-02-08  Martin Baulig  <martin@ximian.com>
12587
12588         * class.h (MonoClass): Changed type of `generic_inst' from
12589         `MonoType *' to `MonoGenericInst *'.
12590
12591 2004-02-08  Martin Baulig  <martin@ximian.com>
12592
12593         * icall.c (ves_icall_Type_BindGenericParameters): Just call
12594         mono_type_get_object(), this is now creating a `MonoGenericInst'
12595         for MONO_TYPE_GENERICINST.
12596         (ves_icall_MonoGenericInst_GetParentType): Likewise.
12597         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
12598
12599         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
12600         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
12601         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12602         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
12603         and reflected type.
12604
12605         * reflection.h (MonoReflectionInflatedMethod): Removed
12606         `declaring_type' and `reflected_type'.
12607
12608 2004-02-08  Martin Baulig  <martin@ximian.com>
12609
12610         * class.h (MonoGenericInst): Added `MonoType *parent' and
12611         `MonoType **ifaces'.
12612
12613         * reflection.h (MonoReflectionGenericInst): Removed `klass',
12614         `parent' and `interfaces'.
12615
12616         * reflection.c (mono_reflection_bind_generic_parameters): Take a
12617         `MonoType *' argument and return a `MonoType *'.
12618
12619         * icall.c
12620         (ves_icall_MonoGenericInst_GetParentType): New interncall.
12621         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
12622
12623 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12624
12625         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
12626         valuetype marshalling.
12627
12628 2004-02-06  Martin Baulig  <martin@ximian.com>
12629
12630         * class.c
12631         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
12632         (my_mono_class_from_generic_parameter): Likewise.
12633
12634 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
12635
12636         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
12637         contents of the symbol files lazily.
12638
12639         * object.h (MonoThread): Add 'name' and 'name_len' fields.
12640
12641         * threads.h threads.c icall.c: New icalls for getting and setting the
12642         threads name.
12643
12644 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
12645
12646         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
12647         Raise an exception when the domain is not found.
12648
12649 2004-02-03  Martin Baulig  <martin@ximian.com>
12650
12651         * reflection.c (mono_image_get_methodspec_token): Use the
12652         uninflated signature; fixes gen-33.
12653
12654 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
12655
12656         * gc.c threads.c: Make the finalizer thread a normal managed thread so
12657         the finalizer code can use thread functionality.
12658
12659         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
12660         the finalizer thread.
12661
12662         * threads.c: Make some functions more robust.
12663
12664         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
12665
12666         * metadata.h: Add new marshalling conventions.
12667
12668         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
12669         stringbuilder marshalling. Fixes #53700.
12670
12671         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
12672
12673         * reflection.c (mono_image_get_type_info): Save declarative security
12674         info.
12675
12676         * reflection.c (mono_image_get_field_info): Handle uninitialized 
12677         unmanaged fields as well.
12678
12679         * appdomain.c: Bump corlib version.
12680
12681 2004-02-01  Martin Baulig  <martin@ximian.com>
12682
12683         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
12684         method type arguments.  
12685
12686 2004-01-30  Duncan Mak  <duncan@ximian.com>
12687
12688         * marshal.h: Add prototype for
12689         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
12690         and
12691         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
12692         fix the build.
12693
12694 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
12695
12696         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
12697         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
12698
12699 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12700
12701         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12702         custom marshalling of valuetypes.
12703
12704         * marshal.c: Fix some warnings.
12705
12706 2004-01-29  Martin Baulig  <martin@ximian.com>
12707
12708         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
12709         for generic method parameters.
12710
12711         * reflection.c (method_encode_methodspec): Write the uninflated
12712         signature into the methodspec table.
12713         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
12714         is always the uninflated method.
12715         (reflection_methodbuilder_to_mono_method): Copy the generic
12716         parameters from the MethodBuilder into `header->gen_params'.
12717
12718 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
12719
12720         * class.c (mono_class_from_generic_parameter): Fix warning.
12721
12722 2004-01-27  Martin Baulig  <martin@ximian.com>
12723
12724         * class.c (mono_class_from_generic_parameter): Don't create
12725         `klass->methods' here.  
12726
12727 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
12728
12729         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
12730         extension since it does not work with libraries named lib<FOO>.dll.so.
12731
12732 2004-01-25  Martin Baulig  <martin@ximian.com>
12733
12734         * class.c (mono_class_inflate_generic_type): Added support for
12735         MONO_TYPE_GENERICINST.
12736
12737         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
12738         inflate methods on open constructed types.      
12739
12740 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12741
12742         * object.c: fire ProcessExit event in the root AppDomain after running
12743         Main. Fixes bug #53299.
12744
12745 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
12746
12747         * socket-io.c: include the new socket-wrappers.h header.
12748         Use the wrappers instead of the unix socket functions to make the code
12749         more clear.
12750
12751 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
12752
12753         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
12754
12755         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12756         Fixes #22532.
12757
12758 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
12759
12760         * reflection.c (mono_image_create_pefile): Handle the case when the
12761         entry point is not a MethodBuilder.
12762
12763         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12764         field to ReflectionMethod since it is not allways a builder.
12765
12766         * reflection.c (type_get_fully_qualified_name): New helper function to
12767         return the fully qualified name of a type.
12768
12769         * reflection.c (encode_marshal_blob): Always emit the fully qualified
12770         type name for custom marshallers.
12771
12772         * reflection.c (mono_marshal_spec_from_builder): Ditto.
12773
12774         * class.c (mono_class_setup_vtable): If a parent class already 
12775         implements an interface, use the implementing methods from that class.
12776         Fixes #53148.
12777
12778 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12779
12780         * threadpool.c: just return instead of ExitThread to allow for thread
12781         clean up earlier.
12782
12783 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
12784
12785         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
12786         when closing resource modules.
12787
12788         * reflection.c (mono_image_create_pefile): Handle the case when the
12789         entry point is not a MethodBuilder.
12790
12791         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
12792         field to ReflectionMethod since it is not allways a builder.
12793
12794 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
12795
12796         * marshal.c (mono_marshal_get_managed_wrapper): 
12797         mono_marshal_alloc takes native int so CONV_I
12798         the arg for 64bits.
12799
12800 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
12801
12802         * reflection.c (fixup_cattrs): New function to fixup the methoddef
12803         tokens in the cattr table. Fixes #53108.
12804
12805 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12806
12807         * loader.c: don't trim ".dll" before looking up in the config file.
12808         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
12809
12810 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
12811
12812         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
12813         Return the module which contains the resource as well.
12814         (ves_icall_System_Reflection_Module_Close): New icall.
12815
12816         * appdomain.c: Bump corlib version number.
12817
12818         * image.c (mono_image_addref): New public function.
12819
12820         * assembly.c: Call mono_image_addref.
12821
12822         * reflection.c (mono_module_get_object): Increase reference count of 
12823         the image.
12824
12825         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
12826         Fixes #22532.
12827
12828         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
12829         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
12830         proper exceptions on DllImport problems.
12831
12832 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
12833
12834         * class.c, metadata.c: eliminate CSIZE macro.
12835
12836 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
12837
12838         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
12839         * object.h: Added async_callback field in MonoAsyncResult.
12840         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
12841         * verify.c: Added async_callback in MonoAsyncResult layout.
12842
12843 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
12844
12845         * reflection.c (mono_reflection_get_custom_attrs): Add support
12846         for Modules.
12847
12848 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12849
12850         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
12851         marshalling.
12852         (mono_marshal_method_from_wrapper): Add null pointer check.
12853
12854 2004-01-16  Martin Baulig  <martin@ximian.com>
12855
12856         * debug-mono-symfile.h: Set version number to 36 and reflect
12857         latest symbol writer changes.
12858
12859 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
12860
12861         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
12862         multi-dimensional arrays.
12863         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
12864         (mono_class_from_mono_type): Use bounded_array_class_get.
12865         
12866         * class.c (mono_bounded_array_class_get): New function which takes
12867         a 'bounded' bool argument to distinguish vectors from one dimensional
12868         arrays.
12869
12870         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
12871         bounded_array_class_get if the array has bounds.
12872
12873         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12874         Search modules loaded using AssemblyBuilder:AddModule as well.
12875
12876 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12877
12878         * appdomain.c: increased corlib version.
12879         * filewatcher.c: removed g_print.
12880         * icall.c:
12881         (get_property_info): only allocate what is actually requested.
12882         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
12883
12884 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12885
12886         * Makefile.am: added filewatcher.[ch]
12887         * filewatcher.[ch]: FileSystemWatcher runtime support.
12888         * icall.c: added new FSW icalls.
12889
12890 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
12891
12892         * string-icalls.c: fix stringbuilder regression as suggested by
12893         Iain McCoy <iain@mccoy.id.au>.
12894
12895 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
12896
12897         * process.c (process_read_stringtable_block): Recognize '007f' as
12898         a language neutral stringtable block.
12899
12900 2004-01-12  Patrik Torstensson
12901
12902         * object.h (MonoStringBuilder) : Changed layout to support our
12903         new stringbuilder class.
12904         * marshal.c: Change marshalling to support the new layout of 
12905         string builder.
12906         * appdomain.c: increased version number because new layout of
12907         string builder.
12908
12909 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
12910
12911         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
12912         assembly name as an string instead of an AssemblyName, since it is
12913         easier to extract info from it.
12914
12915         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
12916         the culture subdirectories too. Fixes #52231.
12917
12918 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12919
12920         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
12921         It takes 2 new parameters with an optional name for the method to look
12922         for and case ignoring info.
12923
12924         * threadpool.c: removed unused variable.
12925
12926 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12927
12928         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
12929         It takes 2 new parameters with an optional name for the property to look
12930         for and case ignoring info.
12931         Fixes bug #52753.
12932
12933 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
12934
12935         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
12936         Fix #52451.
12937
12938 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12939
12940         * appdomain.c:
12941         * assembly.c: escape the uri before passing it to g_filename_from_uri.
12942         Fixes bug #52630.
12943
12944 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
12945
12946         * reflection.c: Add support for more than one unmanaged resource.
12947
12948         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
12949         in field->def_value, as done in all other cases.
12950
12951         * reflection.c (mono_reflection_get_custom_attrs): Add support for
12952         TypeBuilders.
12953
12954         * reflection.c (mono_reflection_create_runtime_class): Remove 
12955         errorneous assignment to klass->element_class, since it is already
12956         done in mono_reflection_setup_internal_class.
12957
12958 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12959
12960         * gc.c: added missing LeaveCriticalSection.
12961         * icall.c: indented a couple of lines.
12962         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
12963         if we call EndInvoke inside a callback. Fixes bug #52601.
12964
12965 2004-01-07  Martin Baulig  <martin@ximian.com>
12966
12967         * mono-debug-debugger.h
12968         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
12969
12970 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
12971
12972         * appdomain.c: Use messages in NotImplementedException.
12973
12974         * exception.c (mono_get_exception_not_implemented): Now this takes
12975         a message argument.
12976
12977         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
12978         exception instead of g_asserting an aborting when something is not
12979         implemented.
12980
12981         Add some inline docs.
12982
12983 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
12984
12985         * reflection.h: Update after changes to object layout.
12986
12987         * reflection.c: Implement saving of unmanaged aka win32 resources.
12988
12989         * appdomain.c: Bump version number.
12990
12991         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
12992         Handle missing domains gracefully.
12993
12994 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
12995
12996         * file-io.c : On Windows, there are much more invalid_path_chars.
12997
12998 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
12999
13000         * class.h, object.c: prepare for GetType () speedup.
13001
13002 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
13003
13004         * profiler.c: workaround for --profile null reference exception on
13005           cygwin. Patch by Patrik Torstensson.
13006
13007 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
13008
13009         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
13010         make work for unaligned access.
13011
13012 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
13013
13014         * class.c: small cleanup (class->fields [i] -> field).
13015         * image.c: check address of metadata is valid.
13016
13017 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
13018
13019         * assembly.h assembly.c (mono_assembly_loaded): New public function to
13020         search the list of loaded assemblies.
13021
13022         * reflection.c (mono_reflection_type_from_name): Use 
13023         mono_assembly_loaded instead of mono_image_loaded.
13024
13025         * reflection.c: Fix warnings.
13026
13027 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
13028
13029         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
13030         is dynamic. This is needed since an assembly can contain both dynamic and
13031         non-dynamic images.
13032
13033         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
13034         assembly->dynamic.
13035
13036         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
13037
13038         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
13039         to store modules loaded using AddModule.
13040
13041         * reflection.c (mono_image_fill_file_table): Generalize this so it works
13042         on Modules.
13043
13044         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
13045
13046         * reflection.c (mono_image_fill_export_table_from_module): New function to
13047         fill out the EXPORTEDTYPES table from a module.
13048
13049         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
13050         into a separate function. Also handle loaded non-dynamic modules.
13051
13052         * reflection.c (mono_image_basic_init): Fix memory allocation.
13053
13054         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13055
13056         * assembly.c (mono_assembly_load_references): Make this public.
13057
13058 2003-12-19  Martin Baulig  <martin@ximian.com>
13059
13060         * class.c (mono_class_initialize_generic): Made this static, take
13061         a `MonoGenericInst *' instead of a `MonoClass *'.
13062         (mono_class_from_generic): Call mono_class_initialize_generic()
13063         unless we're already initialized or being called from
13064         do_mono_metadata_parse_generic_inst().
13065
13066         * class.h (MonoGenericInst): Added `initialized' and
13067         `init_pending' flags.
13068
13069         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
13070         `mono_class_init (gklass)' or mono_class_initialize_generic()
13071         here; set `generic_inst->init_pending' while parsing the
13072         `type_argv'.
13073
13074 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
13075
13076         * locales.c: include string.h for memxxx prototypes
13077
13078 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
13079
13080         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
13081         constructor when accessing literal fields.
13082
13083 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
13084
13085         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13086
13087         * reflection.c (assembly_add_resource_manifest): New function to fill
13088         the MANIFESTRESOURCE table.
13089
13090         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
13091
13092         * reflection.h: Update to changes in class layout.
13093
13094         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
13095         Reenable call to mono_runtime_is_shutting_down ().
13096
13097         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
13098         determine if the runtime is shutting down.
13099
13100 2003-12-16  Jackson Harper <jackson@ximian.com>
13101
13102         * icall.c: comment out call to mono_runtime_is_shutting_down to
13103         fix build.
13104         
13105 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
13106
13107         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
13108         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
13109
13110 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
13111
13112         * reflection.c: move definition of swap_with_size
13113         to before its first call
13114
13115 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
13116
13117         * appdomain.c (mono_runtime_is_shutting_down): New public function.
13118
13119         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
13120         icall.
13121
13122         * object.c: Fix warnings.
13123
13124         * icall.c (ves_icall_Type_Get...): Only consider inherited static
13125         members if FlattenHierarchy is set.
13126
13127         * reflection.c (mono_image_add_decl_security): New function to emit
13128         declarative security.
13129
13130         * reflection.h reflection.c: Add support for declarative security.
13131
13132         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13133         
13134 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
13135
13136         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
13137         
13138         * appdomain.c verify.c: Moved corlib version checking into its own
13139         function in appdomain.c since it needs to create vtables etc.
13140
13141 2003-12-13  Patrik Torstensson <p@rxc.se>
13142
13143         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
13144         instead of unwrapped server.
13145
13146 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
13147
13148         * verify.c (check_corlib): Fix field index.
13149
13150 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
13151
13152         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
13153         GetGacPath icall.
13154
13155 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
13156
13157         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
13158         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
13159         cope with sizeof(size_t) != sizeof(guint32).
13160
13161 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13162
13163         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
13164         in case of failure.
13165
13166 2003-12-10  Mark Crichton <crichton@gimp.org>
13167
13168         * icall.c: removed the GetNonZeroBytes.  We now handle this case
13169         in managed code.
13170
13171         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
13172
13173 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
13174
13175         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
13176         marked as deleted.
13177
13178 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
13179
13180         * verify.c (check_corlib): Handle the case when the version field is 
13181         initialized by a static constructor.
13182
13183 2003-12-08  Patrik Torstensson  <p@rxc.se>
13184
13185     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
13186
13187 2003-12-08  Martin Baulig  <martin@ximian.com>
13188
13189         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
13190         a MonoReflectionGenericParameter, also take the parameter index
13191         and name as arguments.
13192         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
13193         (ves_icall_MonoGenericParam_initialize): New interncall.
13194         (ves_icall_Type_make_byref_type): New interncall.
13195
13196         * reflection.h (MonoReflectionGenericParam): Derive from
13197         MonoReflectionType, not just from MonoObject.  Added `refobj' and
13198         `index' fields.
13199
13200         * reflection.c (mono_reflection_define_generic_parameter): Create
13201         and return a new MonoReflectionGenericParam; don't initialize the
13202         constraints here.
13203         (mono_reflection_initialize_generic_parameter): New public method;
13204         initializes the constraints and creates the `param->pklass'.
13205
13206 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
13207
13208         * reflection.h reflection.c: Use the new fields 'num_types', 
13209         'num_fields' and 'num_methods' to track the number of types etc.
13210
13211         * verify.c (check_corlib): Check corlib version number.
13212
13213 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
13214
13215         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
13216         function works on all methods.
13217
13218 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
13219
13220         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
13221         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
13222         the custom_type_info flag of the transparent proxy.
13223         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
13224         objects that supports IRemotingTypeInfo.
13225         * object.h: Added custom_type_info field in transparent proxy.
13226
13227 2003-12-06  Martin Baulig  <martin@ximian.com>
13228
13229         * class.c (mono_class_create_from_generic): Removed.
13230         (mono_class_from_generic): Check `ginst->klass' before doing
13231         anything else.  This is important to fully support "recursive"
13232         generic types.
13233
13234         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
13235         empty `generic_inst->klass' before doing anything else.
13236
13237 2003-12-06  Dick Porter  <dick@ximian.com>
13238
13239         * verify.c: 
13240         * object.h:
13241         * icall.c:
13242         * locales.c: Use C structs to access class fields.  Don't do a
13243         conversion between MonoString and UChar because both are
13244         platform-endian UTF-16.  Compare now takes startindex and count
13245         parameters.  Add a char overload for IndexOf.  Speed up the
13246         invariant string IndexOf.
13247
13248 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
13249
13250         * Makefile.am (monosn_LDADD): Fix parallel build.
13251
13252 2003-12-04  Martin Baulig  <martin@ximian.com>
13253
13254         * icall.c
13255         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13256         (ves_icall_Type_make_array_type): New interncall.       
13257
13258 2003-12-04  Martin Baulig  <martin@ximian.com>
13259
13260         * locales.c: also change it in the !HAVE_ICU case.
13261
13262 2003-12-04  Dick Porter  <dick@ximian.com>
13263
13264         * icall.c:
13265         * locales.c: construct_compareinfo is now in CompareInfo, not
13266         CultureInfo.
13267
13268 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
13269
13270         * image.c (mono_image_load_file_for_image): Cache loaded images in the
13271         image->files array.
13272
13273         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
13274         table as well.
13275
13276         * assembly.c (mono_assembly_load_references): Only load references
13277         once.
13278
13279         * class.c (mono_class_from_name): Avoid linear search of the 
13280         EXPORTEDTYPE table.
13281
13282         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
13283
13284 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
13285
13286         * image.h (MonoImage): Add 'field_cache' field.
13287
13288         * loader.c (mono_field_from_token): Cache field lookups.
13289         
13290         * reflection.c (mono_module_get_object): Fix name property.
13291
13292         * icall.c (ves_icall_get_enum_info): Update after changes to 
13293         mono_metadata_get_constant_index ().
13294
13295         * icall.c: Get rid of get_type_info icall, use a separate icall for
13296         each type property to avoid needless memory allocations. Fixes #51514.
13297
13298         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
13299         to avoid needless binary searches.
13300
13301         * class.c (class_compute_field_layout): Move the initialization of
13302         field->def_value to mono_class_vtable ().
13303
13304         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
13305         non-corlib types.
13306
13307         * object.c (mono_object_allocate): Make it inline.
13308
13309         * object.c (mono_object_allocate_spec): Make it inline.
13310         
13311 2003-12-02  Dick Porter  <dick@ximian.com>
13312
13313         * locales.c (create_NumberFormat): NumberFormatInfo construction.
13314         Patch by Mohammad DAMT (mdamt@cdl2000.com).
13315
13316 2003-12-01  Dick Porter  <dick@ximian.com>
13317
13318         * threads.c: Fix signature and call in CreateMutex and
13319         CreateEvent.
13320
13321 2003-12-01  Dick Porter  <dick@ximian.com>
13322
13323         * icall.c: 
13324         * locales.c: Implement string compares and searching
13325
13326         * object.h: Add extra Thread field
13327
13328 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
13329
13330         * reflection.c (fixup_method): Add support for MonoCMethod.
13331
13332 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
13333
13334         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
13335
13336         * reflection.c (assembly_name_to_aname): Allow extra characters in
13337         assembly names. Fixes #51468.
13338
13339 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
13340
13341         * exception.c (mono_exception_from_name_domain): New helper function.
13342
13343         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
13344         exception object in the correct domain.
13345
13346         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
13347         formatting + make a copy a the input data.
13348
13349         * loader.c (mono_get_method_from_token): Methods which contain
13350         native code do not have entries in the ImplMap.
13351
13352         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
13353         Thanks to Gonzalo for spotting this.
13354         
13355         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
13356         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
13357
13358         * assembly.h (mono_assembly_load_from): Split the second part of 
13359         assembly loading into a new public function.
13360
13361         * exception.h (mono_get_exception_bad_image_format): New function.
13362
13363 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
13364
13365         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13366         Enumerate all modules inside a dynamic assembly. Fixes #51293.
13367         
13368         * icall.c: Add new icall for creating dynamic methods.
13369
13370         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
13371
13372         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
13373
13374         * reflection.c (mono_reflection_create_dynamic_method): New icall to
13375         create a dynamic method.
13376
13377         * reflection.c (resolve_object): New helper function.
13378
13379         * reflection.c: Generalize ReflectionMethodBuilder and the functions
13380         which manipulate it so they can also work on dynamic methods.
13381
13382         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
13383         creating the MonoReflectionMethodAux structure if it is not needed.
13384         
13385         * reflection.h verify.c: Update after changes to object layout.
13386
13387         * reflection.c (method_builder_encode_signature): Fix compilation on
13388         gcc 2.95.x.
13389
13390 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
13391
13392         * appdomain.h: Added support for context static fields. Added static_data
13393           field to MonoAppContext and renamed thread_static_fields to a more
13394           generic special_static_fields in MonoAppDomain, since it can now contain
13395           context static fields.
13396         * domain.c: Updated hashtable name.
13397         * object.c: Replaced field_is_thread_static() for a more generic
13398           field_is_special_static() which also checks for context static attribute.
13399           In mono_class_vtable(), added support for static context fields.
13400         * threads.c: Changed methods that manage thread static fields to more
13401           generic methods so they can be reused both for thread and context static
13402           data.
13403         * threads.h: Declared some new methods.
13404
13405 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
13406
13407         * reflection.h: Update after changes to the managed types.
13408
13409         * reflection.c (encode_custom_modifiers): New helper function.
13410
13411         * reflection.c (method_encode_signature): Emit custom modifiers.
13412
13413         * reflection.c (field_encode_signature): Emit custom modifiers.
13414
13415 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
13416
13417         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
13418
13419         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
13420         implementation.
13421
13422         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
13423         icall.
13424
13425         * object.c (mono_field_get_value_object): New function.
13426
13427         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
13428         specific.
13429
13430 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
13431
13432         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
13433         return a preallocated out-of-memory exception instance.
13434
13435         * object.c (out_of_memory): Use the new function.
13436
13437         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
13438         flag is before the custom modifiers. Fixes #49802.
13439
13440 2003-11-16  Martin Baulig  <martin@ximian.com>
13441
13442         * class.c (mono_class_is_open_constructed_type): Implemented the
13443         MONO_TYPE_GENERICINST case.
13444
13445 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
13446
13447         * assembly.c (mono_assembly_fill_assembly_name): New function to
13448         fill out the MonoAssemblyName structure.
13449         (mono_assembly_open): Use the new function.
13450
13451         * icall.c (fill_reflection_assembly_name): New helper function.
13452
13453         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
13454         new function.
13455
13456         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
13457
13458 2003-11-15  Martin Baulig  <martin@ximian.com>
13459
13460         * class.c (mono_class_is_open_constructed_type): New public
13461         function; checks whether a type is an open constructed type,
13462         ie. whether it still contains type parameters.
13463         (mono_class_inflate_generic_type): If we're a type parameter and
13464         the inflated type is also a MONO_TYPE_(M)VAR, return the original
13465         type.
13466
13467         * class.h (MonoGenericInst): Added `guint32 is_open'.
13468
13469         * loader.c (method_from_methodspec): Check whether we're an open
13470         or closed constructed type and set `ginst->is_open'.
13471
13472         * reflection.c (mono_reflection_bind_generic_parameters): Check
13473         whether we're an open or closed constructed type and set
13474         `ginst->is_open'.
13475         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
13476         from open constructed types.
13477
13478 2003-11-15  Martin Baulig  <martin@ximian.com>
13479
13480         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13481         a generic instance (instead of a generic type declaration) with
13482         unbound generic parameters, bind them to our actual types.
13483
13484 2003-11-14  Martin Baulig  <martin@ximian.com>
13485
13486         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
13487
13488         * reflection.c (mono_reflection_bind_generic_parameters): If we're
13489         an interface type, populate `res->interfaces' with instantiated
13490         versions of all the interfaces we inherit.
13491
13492 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
13493
13494         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
13495         when MONO_PATH is set but doesn't contain the install dir.
13496
13497 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13498
13499         * icall.c:
13500         (ves_icall_Type_GetInterfaces): don't return an interface twice when
13501         it's also implemented in base classes. Fixes bug #50927.
13502
13503 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
13504
13505         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
13506         if this method is called from a finalizer. Fixes #50913.
13507
13508 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
13509
13510         * threads.c: Implement VolatileRead/VolatileWrite
13511
13512         * icall.c: Add new icalls for VolatileRead/VolatileWrite
13513
13514 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13515
13516         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
13517         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
13518         2.95.3.
13519
13520         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
13521         from Peter Ross (pro@missioncriticalit.com).
13522         
13523 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
13524
13525         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
13526
13527 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13528
13529         * assembly.c (mono_assembly_load_references): Disable check because it
13530         triggers on older corlibs which lots of people have.
13531
13532 2003-11-12  Jackson Harper  <jackson@ximian.com>
13533
13534         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
13535         load corlib.dll if mscorlib.dll is not found.
13536         * assembly.h: Remove corlib name define.
13537         * class.c:
13538         * domain.c:
13539         * image.c: Change corlib name to mscorlib.
13540         
13541 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
13542
13543         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
13544
13545 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
13546
13547         * appdomain.h: Added loader_optimization here to sync with the C#
13548         code, and add disallow_binding_redirects field.
13549
13550 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13551
13552         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
13553
13554         * reflection.c (mono_image_build_metadata): Fix crash on modules
13555         with no types.
13556
13557         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
13558
13559         * icall.c (ves_icall_get_method_info): Return callingConvention as
13560         well.
13561
13562         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
13563         namespaces from the EXPORTEDTYPE table as well.
13564
13565         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
13566         from all modules inside the assembly.
13567         
13568 2003-11-11  Martin Baulig  <martin@ximian.com>
13569
13570         * reflection.c (mono_reflection_bind_generic_parameters): Make
13571         this work for interfaces.
13572
13573 2003-11-11  Martin Baulig  <martin@ximian.com>
13574
13575         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
13576
13577 2003-11-11  Martin Baulig  <martin@ximian.com>
13578
13579         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
13580         "MonoInflatedMethod" and "MonoInflatedCtor".
13581
13582 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
13583
13584         * reflection.c (resolution_scope_from_image): Use the assembly table
13585         from the manifest module, since other modules don't have it.
13586
13587         * debug-helpers.c (mono_type_full_name): New helper function.
13588
13589         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
13590
13591         * image.c (mono_image_load_file_for_image): New public function which
13592         is a replacement for the load_file_for_image in class.c.
13593
13594         * assembly.c (mono_assembly_load_module): A wrapper for the function
13595         above which does assembly association and reference loading too.
13596
13597         * class.c (mono_class_from_name): Call mono_assembly_load_module.
13598
13599 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13600
13601         * appdomain.c: not all of the attributes for the full assembly name
13602         are required and the order doesn't matter. Fixes bug #50787.
13603
13604 2003-11-10  Dick Porter  <dick@ximian.com>
13605
13606         * locales.c: Use platform-endian UTF16
13607
13608 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13609
13610         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13611         
13612 2003-11-10  Martin Baulig  <martin@ximian.com>
13613
13614         * metadata.c
13615         (mono_metadata_load_generic_params): Make this actually work.
13616
13617         * reflection.c (mono_reflection_bind_generic_parameters): If our
13618         parent is a generic instance, pass all the `types' to it, no
13619         matter whether it has the same number of type parameters or not.
13620
13621 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
13622
13623         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
13624
13625         * assembly.c (mono_assembly_load_references): Move the image<->assembly
13626         assignment code to this function so it gets called recursively for all
13627         modules.
13628
13629         * image.c (load_modules): Remove the assembly assignment since it is
13630         now done by mono_assembly_load_references.
13631         
13632         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13633         Add 'module' argument.
13634         (mono_module_get_types): New helper function.
13635         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
13636
13637 2003-11-08  Martin Baulig  <martin@ximian.com>
13638
13639         * class.c (mono_class_inflate_generic_method): Interface method
13640         don't have a header.
13641
13642         * reflection.c (mono_image_get_methodspec_token): Take an
13643         additional `MonoGenericInst *' argument instead of reading it from
13644         the header; this is necessary to support interfaces.
13645         (mono_image_create_token): Pass the `MonoGenericInst *' from the
13646         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
13647         (inflated_method_get_object): Take an additional `MonoGenericInst *'
13648         argument.
13649
13650         * reflection.h (MonoReflectionInflatedMethod): Added
13651         `MonoGenericInst *ginst'.
13652
13653 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
13654
13655         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
13656
13657 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
13658
13659         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
13660
13661 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
13662
13663         * reflection.c 
13664         (reflection_methodbuilder_from_method_builder):
13665         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
13666         initialize a ReflectionMethodBuilder structure.
13667         (mono_image_get_methodbuilder_token):
13668         (mono_image_get_ctorbuilder_token): New functions to emit memberref
13669         tokens which point to types in another module inside the same assembly.
13670
13671         * reflection.c: Use the new helper functions.
13672         
13673         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
13674
13675         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
13676         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
13677
13678         * reflection.c (resolution_scope_from_image): Emit a moduleref if
13679         neccesary.
13680
13681         * reflection.c (mono_image_build_metadata): Emit metadata only for the
13682         current module. Emit the manifest only for the main module.
13683
13684         * reflection.c (mono_image_create_token): Add assertion when a 
13685         memberref needs to be created.
13686
13687         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
13688
13689         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
13690         larger buffer for the custom attribute blob. Fixes #50637.
13691         
13692 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13693
13694         * threadpool.c: notify listener on async processing handles after
13695         invoking the async callback. Thanks to Zoltan.
13696
13697 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13698
13699         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
13700         avoid code duplication.
13701
13702         * reflection.h (MonoDynamicImage): New type which is currently unused,
13703         but will be used through the ref.emit code in place of 
13704         MonoDynamicAssembly.
13705
13706         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13707         object layout.
13708
13709         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
13710         a MonoDynamicImage instead of just a MonoImage.
13711         
13712         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
13713         icalls to ModuleBuilder but keep their semantics, so they will work
13714         with moduleb->assemblyb. This will change later.
13715         
13716 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13717
13718         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
13719         object layout.
13720
13721         * reflection.c (mono_image_build_metadata): Avoid creation of a default
13722         main module, since it is now done by the managed code.
13723
13724 2003-11-03  Martin Baulig  <martin@ximian.com>
13725
13726         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
13727         `ginst->klass' here.
13728         (method_encode_methodspec): Don't use the `ginst->generic_method's
13729         klass if it's a generic instance, use `ginst->klass' in this case.
13730
13731 2003-11-03  Martin Baulig  <martin@ximian.com>
13732
13733         * reflection.c (mono_image_get_generic_method_param_info):
13734         Removed, use mono_image_get_generic_param_info() instead.
13735         (mono_image_get_type_info): Write the GenericParam table before
13736         the Method table.  This is neccessary because in the GenericParam
13737         table, type parameters of the class (ie. '!0' etc.) must come
13738         before the ones from its generic methods (ie. '!!0' etc).
13739
13740 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
13741
13742         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
13743
13744 2003-11-02  Martin Baulig  <martin@ximian.com>
13745
13746         * reflection.c (create_generic_typespec): Take a
13747         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
13748         the generic parameters from it.
13749
13750 2003-11-02  Martin Baulig  <martin@ximian.com>
13751
13752         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
13753         instead of a `MonoClassField *' since we just need the type.
13754         (create_generic_typespec): New static function.  Creates a
13755         TypeSpec token for a generic type declaration.
13756         (mono_image_get_generic_field_token): New static function.
13757         (mono_image_create_token): If we're a FieldBuilder in a generic
13758         type declaration, call mono_image_get_generic_field_token() to get
13759         the token.
13760
13761 2003-11-02  Martin Baulig  <martin@ximian.com>
13762
13763         * reflection.h
13764         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
13765         `MonoReflectionGenericInst *declaring_type' and
13766         `MonoReflectionGenericInst *reflected_type' fields.
13767
13768         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
13769         `MonoReflectionGenericInst *declaring_type' and a
13770         `MonoReflectionGenericInst *reflected_type' argument instead of a
13771         single `MonoReflectionGenericInst *type' one.  Set
13772         `res->declaring_type' and `res->reflected_type' from them.
13773         (mono_reflection_inflate_field): Likewise.      
13774
13775 2003-11-02  Martin Baulig  <martin@ximian.com>
13776
13777         * class.c (mono_class_setup_vtable): Don't store generic methods
13778         in the vtable.  
13779
13780 2003-11-02  Martin Baulig  <martin@ximian.com>
13781
13782         * reflection.h (MonoReflectionGenericInst): Added
13783         `MonoReflectionType *declaring_type'.
13784
13785         * reflection.c (mono_reflection_bind_generic_parameters): Use
13786         `if (tb->parent)' instead of `klass->parent'.
13787
13788 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
13789
13790         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
13791         with an empty ASSEMBLY table.
13792
13793         * reflection.c (mono_image_build_metadata): Avoid using the same loop
13794         variable in the inner and outer loops.
13795
13796 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
13797
13798         * metadata.h (mono_metadata_make_token): Put parentheses around macro
13799         argument.
13800
13801         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
13802         
13803         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
13804         icalls. Instead, do everything in managed code. This is needed since
13805         it is hard to restore the original domain etc. in unmanaged code in the
13806         presence of undeniable exceptions.
13807
13808         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
13809         New icalls to push and pop appdomain refs.
13810
13811 2003-10-31  Martin Baulig  <martin@ximian.com>
13812
13813         * class.c (inflate_generic_type): Renamed to
13814         mono_class_inflate_generic_type() and made it public.
13815
13816         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
13817         New interncall.
13818
13819         * loader.c (mono_field_from_memberref): Also set the retklass for
13820         typespecs.
13821
13822         * fielder.c (mono_image_get_inflated_field_token): New static
13823         method; creates a metadata token for an inflated field.
13824         (mono_image_create_token, fixup_method): Added support for
13825         "MonoInflatedField".
13826         (fieldbuilder_to_mono_class_field): New static function.
13827         (mono_reflection_inflate_field): New public function.
13828
13829         * reflection.h
13830         (MonoReflectionGenericInst): Added `MonoArray *fields'.
13831         (MonoReflectionInflatedField): New typedef.     
13832
13833 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
13834
13835         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
13836         for Solaris and other platforms without s6_addr16
13837
13838 2003-10-30  Martin Baulig  <martin@ximian.com>
13839
13840         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
13841         argument instead of two.
13842         (mono_class_inflate_generic_signature): Likewise.
13843         (inflate_generic_header): Likewise.
13844         (mono_class_inflate_generic_method): Likewise.  In addition, if
13845         `ginst->klass' is set, it becomes the new `method->klass'.
13846
13847         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
13848         field.
13849
13850         * reflection.c (encode_generic_method_sig): Write a 0xa as the
13851         first byte. [FIXME]
13852         (method_encode_methodspec): If we have generic parameters, create
13853         a MethodSpec instead of a MethodRef.
13854         (fixup_method): Added support for "MonoInflatedMethod" and
13855         "MonoInflatedCtor".
13856         (mono_image_create_token): Added support for "MonoInflatedMethod"
13857         and "MonoInflatedCtor".
13858         (inflated_method_get_object): New static function; returns a
13859         managed "System.Reflection.MonoInflatedMethod" object.
13860         (mono_reflection_bind_generic_method_parameters): Return a
13861         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
13862         (mono_reflection_inflate_method_or_ctor): Likewise.
13863         (mono_image_get_generic_method_param_info): Initialize unused
13864         fields to zero.
13865         (mono_image_get_generic_param_info): Likewise.
13866
13867         * reflection.h (MonoReflectionInflatedMethod): New public
13868         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
13869         "S.R.MonoInflatedCtor" classes.
13870
13871         * loader.c (method_from_memberref): If we're a TypeSpec and it
13872         resolves to a generic instance, inflate the method.
13873
13874 2003-10-28  Dick Porter  <dick@ximian.com>
13875
13876         * object.c (mono_runtime_run_main): Convert command-line arguments
13877         into utf8, falling back to the user's locale encoding to do so.
13878
13879 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
13880
13881         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
13882         at this time.
13883
13884         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
13885
13886         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
13887         up icalls at method definition time. Partially fixes #33569.
13888
13889 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
13890
13891         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
13892         marshalling of arrays. Fixes #50116.
13893
13894         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
13895
13896         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
13897         points to a vtable in the dying appdomain.
13898
13899         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
13900         listeners into unmanaged code inside the lock.
13901
13902         * object.c (mono_class_vtable): Turn off typed allocation in non-root
13903         domains and add some comments.
13904
13905 2003-10-25  Martin Baulig  <martin@ximian.com>
13906
13907         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
13908
13909         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
13910
13911         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
13912         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
13913         currently parsing.  Create the generic class and store it in
13914         `generic_inst->klass' before parsing the type arguments.  This is
13915         required to support "recursive" definitions; see mcs/tests/gen-23.cs
13916         for an example.
13917         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
13918         to support recursive typespec entries.
13919
13920         * class.c (mono_class_setup_parent): If our parent is a generic
13921         instance, we may get called before it has its name set.
13922         (mono_class_from_generic): Splitted into
13923         mono_class_create_from_generic() and mono_class_initialize_generic().
13924
13925 2003-10-25  Martin Baulig  <martin@ximian.com>
13926
13927         * icall.c (ves_icall_Type_BindGenericParameters): Return a
13928         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
13929         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
13930         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
13931
13932         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
13933         (create_typespec): Likewise.
13934         (mono_reflection_bind_generic_parameters): Return a
13935         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
13936         (mono_reflection_inflate_method_or_ctor): New public function.
13937
13938         * reflection.h (MonoReflectionGenericInst): New typedef.        
13939
13940 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
13941
13942         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
13943         inside the domain lock. Fixes #49993.
13944         
13945         * object.c (mono_class_vtable): When typed allocation is used, 
13946         allocate vtables in the GC heap instead of in the mempool, since the
13947         vtables contain GC descriptors which are used by the collector even
13948         after the domain owning the mempool is unloaded.
13949
13950         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
13951
13952         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
13953         reflect what it does. Also invalidate mempools instead of freeing
13954         them if a define is set.
13955
13956         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
13957         of the appdomain.
13958         
13959         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
13960         hold the finalizable objects in this domain.
13961
13962         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
13963         appdomain.
13964
13965         * appdomain.c (mono_domain_set): New function to set the current
13966         appdomain, but only if it is not being unloaded.
13967
13968         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
13969         appdomain which is being unloaded.
13970         
13971         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
13972         unloading of the root appdomain.
13973
13974         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
13975         icall to execute a method in another appdomain. Intended as a 
13976         replacement for InternalSetDomain, which can confuse the code 
13977         generation in the JIT.
13978
13979         * appdomain.c (mono_domain_is_unloading): New function to determine
13980         whenever an appdomain is unloading.
13981
13982         * appdomain.c (mono_domain_unload): New function to correctly unload
13983         an appdomain.
13984
13985         * assembly.c (mono_assembly_load_references): Check that an assembly
13986         does not references itself.
13987
13988         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
13989         domain manually, it asks the finalizer thread to do it, then waits for
13990         the result. Also added a timeout.
13991
13992         * icall.c: Register the new icalls.
13993
13994         * threads.h threads.c: Export the mono_gc_stop_world and 
13995         mono_gc_start_world functions.
13996         
13997         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
13998         function to fill out the mempool with 0x2a.
13999
14000 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
14001
14002         * reflection.h (MonoReflectionMethodAux): New structure to store
14003         information which is rarely used, thus is not in the MonoMethod
14004         structure.
14005
14006         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
14007         store the aux info.
14008
14009         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
14010         and marshalling info into the aux structure.
14011
14012         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
14013         from the aux structure.
14014
14015         * loader.c (mono_method_get_param_names): Retrieve the param names from
14016         the aux structure.
14017         
14018 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
14019
14020         * exception.h exception.c: Add AppDomainUnloadedException && fix 
14021         warning.
14022
14023 2003-10-21  Dick Porter  <dick@ximian.com>
14024
14025         * socket-io.c
14026         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
14027         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
14028
14029 2003-10-21  Martin Baulig  <martin@ximian.com>
14030
14031         * reflection.c (mono_reflection_bind_generic_parameters):
14032         `klass->parent' is NULL for interfaces.
14033
14034 2003-10-21  Martin Baulig  <martin@ximian.com>
14035
14036         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14037
14038 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
14039
14040         * exception.c (mono_exception_from_name_msg): New helper function for
14041         creating exceptions and initializing their message field.
14042
14043         * exception.c: Simplify functions using the new helper.
14044
14045         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
14046         New function.
14047
14048         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
14049         mono_raise_exception, since otherwise gcc doesn't generate the function
14050         epilog for raise_exception, confusing the stack unwinding in the JIT.
14051         Fixes #45043.
14052
14053         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
14054         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
14055         Fixes #49499.
14056
14057 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14058
14059         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
14060         utf8.
14061
14062 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
14063
14064         * icall.c: Removed GetUninitializedObject method because
14065           AllocateUninitializedClassInstance does the same.
14066
14067 2003-10-18  Martin Baulig  <martin@ximian.com>
14068
14069         * class.c (inflate_generic_signature): Renamed to
14070         mono_class_inflate_generic_signature() and made it public.
14071         (my_mono_class_from_generic_parameter): New static function; if we
14072         don't already have the generic parameter's MonoClass, create a
14073         very simple one which is just used internally in the runtime and
14074         not passed back to managed code.
14075
14076         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
14077
14078         * metadata.h (MonoMethodSignature): Moved the
14079         `MonoGenericParam *gen_params' to the MonoMethodHeader.
14080         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
14081
14082         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
14083         ves_icall_MonoMethod_GetGenericArguments(); this is now an
14084         interncall on the MonoMethod class, not on MethodInfo.
14085         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
14086         calling mono_reflection_bind_generic_method_parameters() directly.
14087
14088         * loader.c (mono_method_get_signature): If this is a MethodSpec;
14089         return the already computed `method->signature'.
14090         (method_from_methodspec): New static function to load a method
14091         from a MethodSpec entry.
14092         (mono_get_method_from_token): Call the new method_from_methodspec()
14093         for MethodSpec tokens.  
14094         (mono_get_method_from_token): If we're a generic method, load the
14095         type parameters.
14096
14097         * reflection.c (mono_image_get_memberref_token): Allow
14098         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
14099         table.
14100         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
14101         (mono_image_create_token): First check whether it's a generic
14102         method (so we'd need to create a MethodSpec), then do the other
14103         two alternatives.
14104         (mono_reflection_bind_generic_method_parameters): Return a
14105         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
14106         called directly from the interncall.
14107
14108 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
14109
14110         * reflection.c (load_public_key): Move loading of the public key
14111         into managed code.
14112
14113         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
14114
14115         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
14116         fields.
14117
14118         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
14119         culture, hash_alg and public_key. Fixes #49555.
14120
14121 2003-10-17  Martin Baulig  <martin@ximian.com>
14122
14123         * class.h (MonoGenericInst): Moved this declaration here and added
14124         `MonoMethod *generic_method'.
14125
14126         * icall.c
14127         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
14128         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
14129
14130         * metadata.c (mono_metadata_type_equal): Two types of
14131         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
14132         index; ie. don't compare the address of the `MonoGenericParam'
14133         structure.
14134         (mono_metadata_load_generic_params): Removed the `MonoMethod
14135         *method' argument.
14136
14137         * metadata.h (MonoGenericInst): Moved declaration to class.h.
14138         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
14139
14140         * reflection.c (method_encode_signature): Encode the number of
14141         generic parameters.
14142         (encode_generic_method_sig): New static function.
14143         (method_encode_methodspec): New static function; creates an entry
14144         in the MethodSpec table for a generic method.
14145         (mono_image_get_methodspec_token): New static function.
14146         (mono_image_create_token): Call mono_image_get_methodspec_token()
14147         for generic methods.
14148         (mono_reflection_bind_generic_method_parameters): New public
14149         function.  Instantiates a generic method.
14150
14151 2003-10-16  Martin Baulig  <martin@ximian.com>
14152
14153         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
14154         *gen_params' here from MonoMethodHeader.
14155
14156         * metadata.c (mono_metadata_parse_method_signature): If we have
14157         generic parameters, initialize `method->gen_params' and then set
14158         the correct `type->data.generic_param' in all the parameters.
14159
14160 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
14161
14162         * threads.c (mono_threads_get_default_stacksize): New function to 
14163         return the default stacksize.
14164
14165         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
14166         termination of the finalizer thread, since the previous method had
14167         race conditions. Fixes #49628.
14168
14169         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
14170         as for the other managed threads.
14171
14172 2003-10-16  Martin Baulig  <martin@ximian.com>
14173
14174         * class.c (inflate_generic_signature): Copy `generic_param_count'
14175         and `gen_params'.
14176
14177         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
14178         New interncall.
14179
14180         * metadata.c (mono_metadata_parse_method_signature): Actually set
14181         the `method->generic_param_count' here.
14182         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
14183
14184 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
14185
14186         * object.h: Add a new field to TypedRef to simplify the implementation
14187         of the REFANY opcodes in the JIT.
14188
14189         * icall.c: Make use of the new field.
14190
14191         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
14192         dynamically.
14193
14194 2003-10-15  Martin Baulig  <martin@ximian.com>
14195
14196         * class.c (mono_class_from_gen_param): Renamed to
14197         mono_class_from_generic_parameter() and moved most of the
14198         functionality from mono_reflection_define_generic_parameter()
14199         here; ie. we create a "real" class here.
14200         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
14201         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
14202         previously been called.
14203
14204         * class.h (MonoGenericParam): Moved the declaration of this struct
14205         here from metadata.h and added `MonoMethod *method'.
14206
14207         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
14208         interncall.
14209
14210         * loader.c (mono_get_method_from_token): If we have any generic
14211         parameters, call mono_metadata_load_generic_params() to read them
14212         from the MONO_TABLE_GENERICPAR.
14213
14214         * metadata.c (mono_metadata_load_generic_params): Added
14215         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
14216
14217         * metadata.h (MonoMethodSignature): Replaced
14218         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
14219         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
14220
14221         * reflection.c (mono_reflection_define_generic_parameter): Moved
14222         most of the functionality into the new
14223         mono_class_from_generic_parameter(); set the `method' field if
14224         we're a method parameter.       
14225
14226 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
14227
14228         * marshal.c (emit_struct_conv): if native size is 0
14229         emit no code.
14230
14231 2003-10-14  Martin Baulig  <martin@ximian.com>
14232
14233         * icall.c: The generics API has changed in the spec since it was
14234         added to System.Type; these modifications make it match the spec
14235         again.
14236         (ves_icall_Type_GetGenericParameters): Renamed to
14237         `ves_icall_Type_GetGenericArguments'.
14238         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
14239         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
14240         `ves_icall_MonoType_get_HasGenericArguments'.
14241         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
14242         `ves_icall_MonoType_get_IsGenericParameter'.
14243         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
14244         this is no interncall anymore.
14245         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
14246         `ves_icall_TypeBuilder_get_IsGenericParameter'.
14247
14248 2003-10-14  Martin Baulig  <martin@ximian.com>
14249
14250         * reflection.c (mono_reflection_bind_generic_parameters): Also
14251         inflate generic methods if we're reading the class from IL.
14252
14253 2003-10-13  Martin Baulig  <martin@ximian.com>
14254
14255         * reflection.c (mono_reflection_define_generic_parameter): This
14256         method isn't called directly from the icall anymore; take a
14257         `MonoReflectionAssemblyBuilder *' so we can use this for type and
14258         method generic parameters.
14259         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
14260         (method_builder_encode_signature): Encode generic parameters.
14261         (mono_image_get_method_info): Write generic params to the
14262         MONO_TABLE_GENERICPARAM table.
14263
14264         * reflection.h (MonoReflectionMethodBuilder): Added
14265         `MonoArray *generic_params'.
14266
14267         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
14268
14269         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
14270         wrapper for mono_reflection_define_generic_parameter().
14271         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
14272
14273 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
14274
14275         * marshal.h: Add missing function to fix build.
14276
14277         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
14278         the SetLastError pinvoke attribute.
14279
14280         * marshal.c (mono_marshal_set_last_error): New helper function called
14281         by the generated code.
14282         
14283         * marshal.c (mono_mb_emit_branch): New helper function.
14284
14285         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
14286
14287         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14288         classes as parameters and return values of delegates. Fixes #29256. 
14289
14290 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
14291
14292         * locales.c: use gint32 in non HAVE_ICU case
14293
14294 2003-10-11  Martin Baulig  <martin@ximian.com>
14295
14296         * mono-debug.c (mono_debug_add_method): Added a workaround for
14297         bug #48591.
14298
14299 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
14300
14301         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
14302         delegates passed to native code must use the STDCALL calling 
14303         convention. Fixes #35987.
14304
14305 2003-10-10  Martin Baulig  <martin@ximian.com>
14306
14307         * class.c (inflate_generic_type): If we're inflating for a generic
14308         type instance (and not for a generic method), return
14309         MONO_TYPE_MVAR unchanged.
14310
14311 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14312
14313         * string-icalls.c: Join ignores null strings in the source array.
14314         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
14315         * threads.c: GetAvailableTheads is slightly more accurate.
14316
14317 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
14318
14319         * threads.h threads.c : add mono_threads_set_default_stacksize
14320         and pass default to CreateThread calls.
14321
14322 2003-10-09  Dick Porter  <dick@ximian.com>
14323
14324         * icall.c:
14325         * locales.h:
14326         * locales.c: Internal calls for constructing CultureInfo and
14327         related objects from libicu (if its available.)
14328
14329 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
14330
14331         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
14332
14333 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14334
14335         * threadpool.c: added an argument to async_invoke_thread that is the
14336         item to process, pass the MonoAsyncResult to the thread start function
14337         when creating a new thread. This way we don't need to acquire any lock
14338         when we're creating a new thread. Readded a semaphore for faster
14339         response times (instead of that Sleep i added).
14340
14341 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
14342
14343         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14344         get daylight change dates better on Windows, fix handling
14345         of platforms without tm_gmtoff.
14346
14347 2003-10-06  Martin Baulig  <martin@ximian.com>
14348
14349         * class.c (inflate_generic_method): Renamed to
14350         mono_class_inflate_generic_method() and made public.
14351         (mono_class_init): Don't inflate the generic methods here.
14352         (mono_class_from_generic): Added `gboolean inflate_methods'
14353         argument.  Inflate the methods here.
14354
14355         * loader.c (mono_method_get_param_names): Ignore instances of
14356         generic types for the moment.
14357
14358         * reflection.c (fixup_method): Added support for inflated methods.
14359         (mono_image_create_token): Use mono_image_get_methodref_token()
14360         for inflated methods.
14361         (mono_custom_attrs_from_param): Ignore instances of generic types
14362         for the moment.
14363         (mono_reflection_bind_generic_parameters): New public function.
14364         Moved all the functionality from
14365         ves_icall_Type_BindGenericParameters() here and added support for
14366         dynamic types.
14367         (mono_reflection_define_generic_parameter): Initialize
14368         `klass->methods' here.
14369
14370         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
14371         functionality into mono_reflection_define_generic_parameter().
14372         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
14373         TypeBuilder, return that TypeBuilder.
14374
14375 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14376
14377         * appdomain.c: removed mono_delegate_semaphore.
14378
14379         * threadpool.c:
14380         (mono_thread_pool_add): moved hash table creation inside and the thread 
14381         creation outside of the critical region.
14382         (mono_thread_pool_finish): removed obsolete code.
14383         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
14384         continue or exit the thread depending on the queue.
14385
14386 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
14387
14388         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
14389         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
14390         handle more bool marshalling options
14391
14392 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
14393
14394         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
14395         arrays of structs. Also add a more descriptive error message when
14396         a structure member is marshalled as LPArray.
14397
14398 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
14399
14400         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14401         marshalling arrays of complex types. Fixes #29098. Also remove an
14402         usused and incomplete function.
14403
14404 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
14405
14406         * gc.c: report heap_size - free_bytes as total memory allocated
14407         (bug#49362).
14408
14409 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
14410
14411         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
14412         fix timezone handling problems on Windows.
14413         
14414         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
14415         asserts when the year is outside the range handled by ms the functions.
14416
14417         * class.c (setup_interface_offsets): If the class is an interface,
14418         fill out its interface_offsets slot.
14419
14420 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14421
14422         * threadpool.c: mark threadpool threads as background.
14423
14424 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
14425
14426         * decimal.c - define DECINLINE to nothing if not using GCC
14427
14428 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
14429
14430         * assembly.c: More refcount fixes.
14431
14432 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14433
14434         * string-icalls.c: if we're not trimming, return the same string.
14435         When not splitting, don't create a new string.
14436
14437 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14438
14439         * image.c:
14440         (mono_image_open): increment the ref_count inside the critical section.
14441
14442 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
14443
14444         * image.c (mono_image_open): Fix reference counting bug.
14445
14446 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
14447
14448         * marshal.c (mono_marshal_type_size) struct alignment changed for 
14449         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
14450         64bits. Avoid leak in mono_marshal_get_native_wrapper when
14451         mono_lookup_pinvoke_call throws.        
14452
14453 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
14454
14455         * reflection.c (mono_reflection_parse_type): Fix #49114.
14456
14457         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
14458         temporary workaround for cygwin header problem.
14459
14460         * object.c (mono_object_isinst): Synchronize this with the code
14461         generated by the JIT for casts.
14462
14463 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
14464
14465         * reflection.c (encode_type): Fix #38332.
14466
14467 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
14468
14469         * marshal.c (mono_marshal_method_from_wrapper): New function to return
14470         the original method from the wrapper method.
14471
14472 2003-09-25  Martin Baulig  <martin@ximian.com>
14473
14474         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
14475         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
14476         (ves_icall_Type_get_IsGenericInstance): New interncall.
14477
14478 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
14479
14480         * object.c: fix cast warning in big endian code.
14481
14482 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
14483
14484         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
14485         
14486 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14487
14488         * assembly.c: don't call check_env from mono_assembly_load. It's
14489         already done once in mono_assemblies_init and may cause headaches when
14490         multiple threads are loading assemblies.
14491
14492 2003-09-19  Martin Baulig  <martin@ximian.com>
14493
14494         * reflection.c (mono_reflection_define_generic_parameter): Don't
14495         allocate `klass->methods', set `klass->flags' to
14496         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
14497
14498 2003-09-18  Martin Baulig  <martin@ximian.com>
14499
14500         * class.c (mono_class_init): Don't create `class->methods' if it's
14501         already initialized.
14502
14503         * metadata.c (mono_metadata_load_generic_params): Make this
14504         actually work.
14505
14506         * reflection.c (mono_reflection_define_generic_parameter): Set
14507         parent class and interfaces from the constraints.
14508
14509         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
14510         to keep this struct in sync with the declaration in TypeBuilder.cs.
14511
14512 2003-09-17  Martin Baulig  <martin@ximian.com>
14513
14514         * metadata.h (MonoType): Replaced the data's `int type_param'
14515         field with `MonoGenericParam *generic_param'.
14516         (MonoGenericParam): Added `MonoClass *klass'.
14517
14518         * class.c (mono_class_from_gen_param): Removed the
14519         `MonoImage *image' and `int type_num' arguments.
14520
14521         * metadata.c (mono_metadata_parse_generic_param): New static
14522         method; creates a MonoGenericParam which just contains the index.
14523         (do_mono_metadata_parse_type): Call
14524         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
14525         MONO_TYPE_MVAR.
14526
14527         * reflection.c (mono_image_typedef_or_ref): Generic type
14528         parameters may be in the same assembly, but never use a typedef
14529         for them.
14530         (mono_reflection_define_generic_parameter): We're now creating a
14531         "real" class for the type parameter; it's now safe to call
14532         mono_class_from_mono_type() on the class'es type, it'll do the
14533         right thing.
14534
14535 2003-09-16  Martin Baulig  <martin@ximian.com>
14536
14537         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
14538         `symfile->range_entry_size' and `symfile->class_entry_size' here;
14539         the `symfile' data structure must be fully initialized before it
14540         gets added to the table.
14541
14542 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
14543
14544         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
14545
14546         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
14547         class init trampolines.
14548
14549 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
14550
14551         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
14552         to the built-in profiler to turn off time and allocation profiling
14553         respectively.
14554
14555 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
14556
14557         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
14558         g_direct_equal.
14559
14560         * debug-helpers.c (mono_method_full_name): Print the wrapper type
14561         in human readable form.
14562
14563 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
14564
14565         * reflection.c icall.c: Fixed warnings.
14566
14567         * image.c (load_class_names): Use a temporary hash table to hold the
14568         namespaces in order to avoid doing many string comparisons.
14569
14570         * image.h: Fix typo.
14571
14572         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
14573         Pass NULL instead of g_direct_equal to the GHashTable constructor 
14574         since the NULL case is short-circuited inside g_hash_table_lookup, 
14575         leading to better performance.  
14576
14577         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
14578         obtain the first custom attribute for a given index. Depends on the
14579         CustomAttribute table being sorted by the parent field.
14580
14581         * reflection.c (mono_custom_attrs_from_index): Use the new function 
14582         for better performance.
14583
14584 2003-09-07  Martin Baulig  <martin@ximian.com>
14585
14586         * class.c (mono_class_init): If we're a generic instance, inflate
14587         all our methods instead of loading them from the image.
14588         (mono_class_from_generic): Set `class->methods = gklass->methods'.
14589
14590 2003-09-07  Martin Baulig  <martin@ximian.com>
14591
14592         * mono-debug-debugger.c: Added support for constructors.
14593
14594 2003-09-06  Martin Baulig  <martin@ximian.com>
14595
14596         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
14597         New interncall.
14598
14599         * reflection.c (mono_reflection_setup_generic_class): Call
14600         ensure_runtime_vtable() to create the vtable.
14601
14602 2003-09-05  Martin Baulig  <martin@ximian.com>
14603
14604         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
14605         MONO_TYPE_MVAR.
14606
14607 2003-09-04  Martin Baulig  <martin@ximian.com>
14608
14609         * reflection.c (mono_reflection_define_generic_parameter): Generic
14610         parameters start with zero.
14611
14612 2003-09-04  Martin Baulig  <martin@ximian.com>
14613
14614         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14615
14616         * reflection.h (MonoReflectionGenericParam): New typedef.
14617         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
14618         the generic parameters from the managed TypeBuilder.
14619
14620         * reflection.c (mono_reflection_define_generic_parameter): New function.
14621         (mono_reflection_create_runtime_class): Encode generic parameters.
14622         (mono_reflection_setup_generic_class): New function; this is
14623         called after adding adding all generic params to the TypeBuilder.
14624         (encode_type): Added MONO_TYPE_VAR.
14625
14626 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
14627
14628         * class.h class.c (mono_class_needs_cctor_run): Moved this method
14629         here from the JIT.
14630
14631         * assembly.h assembly.c: Moved the AOT loading code into an assembly
14632         load hook.
14633
14634 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
14635
14636         * reflection.h reflection.c class.h class.c: Delete duplicate 
14637         definition of mono_type_get_name () from reflection.c and export the
14638         one in class.c.
14639
14640         * class.c: Class loading fixes from Bernie Solomon 
14641         (bernard@ugsolutions.com).
14642
14643         * reflection.c: Endianness fixes from Bernie Solomon 
14644         (bernard@ugsolutions.com).
14645         
14646 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
14647
14648         * assembly.h assembly.c: Define a file format version for AOT
14649         libraries.
14650         
14651         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
14652
14653         * appdomain.h (MonoJitInfo): New field to determine whenever the
14654         code is domain neutral.
14655         
14656 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
14657
14658         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
14659
14660 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
14661
14662         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
14663         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
14664         Avoid caching the result since strings must be domain specific. Fixes
14665         #48050.
14666
14667 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
14668
14669         * marshal.c (mono_marshal_init): Make this callable multiple times
14670         since it is hard to find a correct place to call it.
14671
14672         * object.c (mono_runtime_class_init): Execute static constructors in
14673         the correct appdomain.
14674
14675         * image.c (build_guid_table): Handle the case when multiple images have
14676         the same GUID.
14677
14678 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14679
14680         * icall.c: added a couple of icalls for System.Web.
14681
14682 2003-08-28  Martin Baulig  <martin@ximian.com>
14683
14684         * icall.c (ves_icall_Type_BindGenericParameters): Use
14685         `klass->generic_inst' instead of `&klass->byval_arg' in the
14686         mono_type_get_object() call.  The returned type must be
14687         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
14688
14689 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
14690
14691         * NOTES: New file.
14692
14693         * object.c (mono_class_proxy_vtable): Make it thread safe.
14694
14695         * pedump.c: Fix warning.
14696
14697         * object.c appdomain.h: Get rid of metadata_section. 
14698         It is no longer needed and it was causing deadlocks with domain->lock.
14699
14700         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
14701
14702 2003-08-26  Martin Baulig  <martin@ximian.com>
14703
14704         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
14705
14706 2003-08-26  Martin Baulig  <martin@ximian.com>
14707
14708         * pedump.c (main): Call mono_metadata_init(),
14709         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
14710         and mono_loader_init().
14711
14712 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
14713
14714         * loader.h: Add missing include to fix build.
14715
14716         * image.h: mono_image_load_references is no more.
14717
14718         * assembly.c: Reworked assembly loading to make it really thread safe.
14719         After these changes, the assembly returned by mono_assembly_open is
14720         fully initialized, i.e. all its references assemblies are loaded.
14721
14722         * assembly.c (mono_image_load_references): Renamed to 
14723         mono_assembly_load_references, and made private, since clients no
14724         longer need to call it.
14725
14726         * class.c: Removed calls to mono_assembly_load_references, since it was
14727         a source of deadlocks.
14728
14729         * loader.h loader.c class.h class.c: Protect data structures using a 
14730         new lock, the loader lock.
14731
14732         * class.c (mono_class_setup_vtable): Create temporary hash tables and
14733         GPtrArrays only when needed.
14734
14735         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
14736         into empty structures by mcs. Fixes pinvoke7.cs.
14737         
14738         * domain.c (mono_init): Call a new initialization function.
14739
14740         * appdomain.c (mono_runtime_init): Call the new initializer function
14741         of the marshal module.
14742
14743         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
14744         inserted into empty structures by mcs. Fixes pinvoke7.cs.
14745
14746         * marshal.h marshal.c: Added locks around the wrapper caches to make
14747         this module thread safe.
14748
14749         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
14750         this argument. Fixes pinvoke1.exe.
14751
14752 2003-08-25  Lluis Sanchez <lluis@ximian.com>
14753
14754         * object.h: Added call_type field to MonoMethodMessage and the corresponding
14755         enumeration of values. Removed fields to store remote call output values in
14756         MonoAsyncResult. Not needed any more.
14757         * object.c: Initialize call_type and async_result fields in mono_message_init.
14758         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
14759         dispatching the message.
14760         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
14761         async call to finish. To do it use a message with EndInvoke call type.
14762
14763 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
14764
14765         * loader.h loader.c (mono_method_hash_marhal_info): New function which
14766         determines whenever a method has marshalling info.
14767
14768 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14769
14770         * assembly.c: fix the build on windows.
14771
14772 2003-08-22 Lluis Sanchez <lluis@ximian.com>
14773
14774         * object.cs: Fixed bug #47785.
14775
14776 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
14777
14778         * string-icalls.c (StringReplace): If their are no occurances of
14779         the old string found return a reference to the supplied
14780         string. This saves some memory and matches MS behavoir.
14781         
14782 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14783
14784         * socket-io.c: fixed compilation for systems that define AF_INET6
14785         and don't define SOL_IP/SOL_IPV6.
14786
14787 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
14788
14789         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
14790         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
14791
14792         * rawbuffer.c rawbuffer.h: Make this module thread safe.
14793
14794         * domain.c: Make this module thread safe.
14795
14796         * domain.c (mono_init): Call new initialization function.
14797
14798         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
14799         reference types too. Fixes #38812.
14800
14801         * image.c (mono_image_init): Fixed warnings.
14802
14803         * class.c (mono_class_from_typeref): Handle assembly load failure
14804         correctly.
14805
14806         * appdomain.c (add_assemblies_to_domain): Handle the case when
14807         the references of an assembly are not yet loaded.
14808
14809         * metadata.c image.c assembly.c: Moved initialization of global
14810         variables to a separate function called at startup since lazy 
14811         initialization of these variables is not thread safe.
14812         
14813         * image.c assembly.c: Made this module thread safe by adding locks in 
14814         the appropriate places.
14815
14816         * domain.c (mono_init): Call the new initialization functions of the
14817         three modules.
14818
14819 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
14820
14821         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
14822           make a direct call. It is proxy's work to make the call asynchronous.
14823           mono_delegate_end_invoke(): If the targe is a proxy, just collect
14824           the return values.
14825         * object.cs: mono_method_call_message_new(): read AsyncResult and
14826           state object from parameters list, if this info is requested.
14827         * object.h: Added fields to store remote call output values in
14828           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
14829
14830 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14831
14832         * object.h: add needed fields to MonoThread.
14833         * threads.c, threads.h: allow registering a function to cleanup data
14834         allocated per thread by the JIT.
14835
14836 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14837
14838         * loader.h: portability fix by Bernie Solomon
14839         * <bernard@ugsolutions.com>.
14840
14841 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
14842
14843         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
14844         return a MonoArray. This simplifies the code and also ensures that
14845         the cache allways contains an object reference as a value.
14846
14847         * icall.c (ves_icall_get_parameter_info): Simplified using the new
14848         function.
14849
14850 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14851
14852         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
14853         fixes a problem with byte ordering when getting the address family for
14854         a socket.
14855
14856 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
14857
14858         * .cvsignore: Added monosn.
14859
14860         * reflection.h reflection.c loader.c: Added support for parameter
14861         marshalling to dynamically created types. Fixes #47295.
14862
14863 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
14864
14865         * rand.c: remove useless warnings.
14866
14867 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
14868
14869         * class.c: implemented ldtoken for methods and fieldrefs.
14870
14871 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14872
14873         * threadpool.c: when mono_async_invoke was called, no one took care of
14874         monitoring the queue. So if the method invoked took some time and we
14875         got new async invoke requests after 500 ms (the thread created waited
14876         that long in WaitForSingleObject), the new async invoke was not called
14877         until the previous one finished.
14878
14879         This is fixed now. Thanks to Totte for helping with it.
14880
14881 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14882
14883         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
14884
14885 2003-08-11  Martin Baulig  <martin@ximian.com>
14886
14887         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
14888
14889 2003-08-06  Martin Baulig  <martin@ximian.com>
14890
14891         * mono-debug-debugger.c: Added support for static fields,
14892         properties and methods.
14893
14894 2003-08-06  Martin Baulig  <martin@ximian.com>
14895
14896         * mono-debug-debugger.c: Don't store the MonoString's vtable to
14897         make this work for applications with multiple application domains.
14898
14899 2003-08-04  Martin Baulig  <martin@ximian.com>
14900
14901         * mono-debug-debugger.c: Completely reworked the type support; the
14902         most important thing is that we're now just using one single
14903         `MonoType' instance per type.
14904
14905 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
14906
14907         * mono-endian.h, mono-endian.c, icall.c: Added icall
14908         ves_icall_System_Double_AssertEndianity to assert double word endianity
14909         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
14910
14911 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14912
14913         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
14914         support, icalls and fixes.
14915
14916 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
14917
14918         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
14919         classes that are a punctuation character in .NET is not the same a
14920         g_unichar_ispunct.
14921
14922 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14923
14924         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
14925
14926 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
14927
14928         * icall.c: Add new MemCopy internalcall.
14929         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
14930         Simplified code; It is not necessary to handle all the cases here,
14931         as the C# code takes care of it.  Only handle the case of the name
14932         resource embedded into the assembly.
14933
14934         Changed signature to return the data pointer and the size of the
14935         data. 
14936
14937 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
14938
14939         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
14940         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
14941
14942 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14943
14944         * socket-io.c: ignore EINTR error in select.
14945
14946 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14947
14948         * class.h, class.c: removed unused subclasses field in MonoClass.
14949
14950 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
14951
14952         * icall.c: improve fix of get_base_definition(). If the parent class
14953           doesn't have the mehod, look at the parent of the parent.
14954         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
14955           to check if a parameter is an in or out parameter
14956           (PARAM_ATTRIBUTE_IN is not set by default).
14957           mono_method_return_message_restore(): Use mono_class_value_size to
14958           get the size of a value type. mono_type_stack_size (parameterType)
14959           does not return the correct value if parameterType is byRef.
14960           mono_load_remote_field(), mono_load_remote_field_new(),
14961           mono_store_remote_field(), mono_store_remote_field_new():
14962           raise exception if the remote call returns an exception.
14963
14964 2003-07-28  Martin Baulig  <martin@ximian.com>
14965
14966         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
14967         method.  This is a wrapper around mono_runtime_invoke() which
14968         boxes the instance object if neccessary.
14969
14970 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
14971
14972         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
14973         metadata.h, row-indexes.h, verify.c: first cut of generics support.
14974
14975 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
14976
14977         * icall.c: disable mcs bug workaround.
14978
14979 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
14980
14981         * object.c (mono_runtime_class_init): Take the metadata_section
14982         mutex before obtaining the domain mutex.
14983
14984         * appdomain.h: Added definition of metadata_section mutex here. 
14985
14986         * object.c: define metadata_mutex here.
14987
14988 2003-07-24  Ravi Pratap  <ravi@ximian.com>
14989
14990         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
14991         fixed.
14992
14993 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
14994
14995         * reflection.c: Fix bug #46669
14996
14997 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14998
14999         * exception.c:
15000         * exception.h:
15001         * icall.c:
15002         * object.h: fill in the type name for TypeLoadException.
15003
15004 2003-07-23  Ravi Pratap  <ravi@ximian.com>
15005
15006         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
15007         relationship between TypeBuilders while compiling corlib) and bug
15008         45993 (Array types returned from the runtime while compiling
15009         corlib were from the loaded corlib).
15010
15011 2003-07-22  Martin Baulig  <martin@ximian.com>
15012
15013         * mono-debug-debugger.c: Reworked the type support a bit more;
15014         distinguish between types and classes.
15015
15016 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
15017
15018         * icall.c: add IsArrayImpl icall.
15019
15020 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
15021
15022         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
15023         initializing real_size only once. Also fix bug #46602.
15024
15025 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
15026
15027         * object.c: Renamed mono_metadata_section to metadata_section.
15028
15029 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
15030
15031         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
15032           empty array if the type is an array. Fixed.
15033           ves_icall_MonoMethod_get_base_definition: if the base method
15034           is abstract, get the MethodInfo from the list of methods of
15035           the class.
15036         * reflection.c: ParameterInfo.PositionImpl should be zero-based
15037           and it was 1-based. Fixed in mono_param_get_objects.
15038
15039 2003-07-20  Martin Baulig  <martin@ximian.com>
15040
15041         * mono-debug.h: Set version number to 31.
15042         (mono_debug_init): Added `MonoDomain *' argument.
15043
15044         * mono-debug-debugger.c: Reworked the type support; explicitly
15045         tell the debugger about builtin types; pass the `klass' address to
15046         the debugger.
15047
15048 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
15049
15050         * image.c: Allow new metadata tables to be loaded without a
15051         warning. Also update the warning message to give the new constant value.
15052                 
15053 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
15054
15055         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
15056         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
15057         array type representation changes.
15058
15059 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15060
15061         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
15062         on Environment.Exit () call.
15063
15064 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15065
15066         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
15067         requires a matching corlib.
15068
15069 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15070
15071         * Changelog: My editor decided to add a CR to each line. Sorry about that.
15072           Committed again without the CRs.
15073         
15074 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
15075
15076         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
15077           getting it from the "this" socket instance. Did not work
15078           if the socket is a subclass of Socket.
15079           Also fixed bug #35371.
15080
15081 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15082
15083         * metadata.c: fixed size for TypedByRef.
15084         * loader.c: when searching for a method, consider the vararg amrker.
15085         * unicode.c, decimal.c: constify some arrays.
15086
15087 2003-07-15  Dick Porter  <dick@ximian.com>
15088
15089         * socket-io.c: Fixed compilation for gcc < 3.2.
15090
15091         Fixed compilation for machines that don't have AF_INET6 (thanks to
15092         Bernie Solomon <bernard@ugsolutions.com> for that part.)
15093
15094         Fixed compile warnings.
15095         
15096         Fixed formatting and line endings.
15097
15098 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
15099
15100         * socket-io.h:
15101         * socket-io.c: Added IPv6 support.
15102
15103 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
15104
15105         * class.c (mono_class_is_assignable_from): New function to implement
15106         the is_assignable_from logic. Used by mono_object_isinst, 
15107         Type::IsAssignableFrom () and the interpreter.
15108
15109         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
15110         Object, even interfaces.
15111         
15112         * object.c (mono_object_isinst): Implement in terms of 
15113         is_assignable_from.
15114
15115         * icall.c (ves_icall_type_is_assignable_from): New icall.
15116
15117 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
15118
15119         * domain.c (foreach_domain): fix compiler warning.
15120
15121 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
15122
15123         * image.c (load_metadata_ptrs): use g_strndup because strndup is
15124         not available on all plattforms
15125
15126 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
15127
15128         * image.h image.c: Store the metadata version string in MonoImage.
15129         * icall.c: New icall to retrieve the image version.
15130         * reflection.c (create_dynamic_image): Fill in the image version field
15131         * reflection.c (build_compressed_metadata): Use the image version
15132         from the image structure.
15133
15134 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15135
15136         * appdomain.c: modified comment.
15137         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
15138         That will be its last iteration when mono_gc_cleanup is called from
15139         mono_runtime_cleanup and before the domain is unloaded.
15140
15141         Fixes bug #45962.
15142
15143 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
15144
15145         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
15146         attributes.
15147
15148 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15149
15150         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
15151         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
15152         Bernie Solomon <bernard@ugsolutions.com>.
15153
15154 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15155
15156         * object.c, object.h: provide mono_object_new_fast() for faster
15157         allocation in some special cases.
15158
15159 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
15160
15161         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
15162         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
15163
15164 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
15165
15166         * threadpool.c: fix leaks.
15167
15168 2003-07-01  Dick Porter  <dick@ximian.com>
15169
15170         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
15171         using MonoGHashTables.  Fixes threadpool bug posted to list.
15172
15173 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15174
15175         * image.h, image.c: added support to load an assembly from a byte array.
15176         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
15177         assembly bundle support.
15178
15179 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
15180
15181         * threadpool.c (mono_thread_pool_add): keep a reference to the
15182         AsyncResult to prevent GC
15183
15184 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15185
15186         * class.c: leak fix.
15187
15188 2003-06-25  Dick Porter  <dick@ximian.com>
15189
15190         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
15191         for the async object, the WaitHandle object will close the handle.
15192         Fixes bug 45321.
15193
15194 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15195
15196         * class.c: in mono_array_class_get (), lookup from the hash with the
15197         same type we insert: this works around a bug in
15198         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
15199         lluis. The real fix will have to wait for after the release.
15200
15201 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15202
15203         * icall.c: fix memory leak when getting type members.
15204
15205 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15206
15207         * reflection.c: added more pubtoken special cases.
15208
15209 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
15210
15211         * class.c: handle field offset correctly when class size
15212         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
15213
15214 2003-06-20  Martin Baulig  <martin@ximian.com>
15215
15216         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
15217         *image' field.
15218
15219 2003-06-20  Martin Baulig  <martin@ximian.com>
15220
15221         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
15222
15223 2003-06-20  Martin Baulig  <martin@ximian.com>
15224
15225         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
15226         just distinguish between variables in registers and variables at
15227         an offset relative to a register.
15228
15229 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15230
15231         * icall.c: #ifdef out latest changes until mcs is fixed.
15232
15233 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15234
15235         * icall.c: return members in metadata order.
15236
15237 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
15238
15239         * icall.c: avoid infinite loop in GetTimeZoneData.
15240
15241 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
15242
15243         * icall.c: added Marshal.Prelink/All icalls.
15244
15245 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
15246
15247         * object.c, object.h: fix warnings and do some overflow checking
15248         when creating arrays.
15249
15250 2003-06-17  Dick Porter  <dick@ximian.com>
15251
15252         * file-io.h:
15253         * file-io.c: File attributes need to be tweaked slightly when
15254         passed from the managed to the w32 world.
15255
15256 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15257         * profiler.h profiler-private.h profiler.c: Rework last patch
15258         based on suggestion by Paolo.
15259         
15260 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
15261
15262         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
15263         instruction level coverage data collection.
15264         * profiler.h profiler.c (: Added new callback function which can be
15265         used by the profiler to limit which functions should have coverage
15266         instrumentation.
15267         * profiler.c (mono_profiler_load): Call g_module_build_path to
15268         generate the file name of the profiler library.
15269
15270 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15271
15272         * profiler.c, profiler.h, profiler-private.h: added basic block 
15273         coverage profiling API.
15274
15275 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
15276
15277         * reflection.c (mono_reflection_create_runtime_class): Add support
15278         for events in dynamically generated code.
15279
15280         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
15281         not allocated.
15282
15283 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
15284
15285         * icall.c: when getting timezone info, return reasonable values if we
15286         can't get the actual data.
15287
15288 2003-06-14  Dick Porter  <dick@ximian.com>
15289
15290         * threads.c (start_wrapper): Remove the reference to the thread
15291         object in the TLS data, so the thread object can be finalized.
15292         This won't be reached if the thread threw an uncaught exception,
15293         so those thread handles will stay referenced :-( (This is due to
15294         missing support for scanning thread-specific data in the Boehm GC
15295         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
15296
15297 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
15298
15299         * reflection.c: ensure streams and tables are first allocated with
15300         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
15301
15302 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15303
15304         * icall.c: fixed GetElementType for byrefs (bug# 44792).
15305
15306 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
15307
15308         * reflection.c (mono_reflection_create_runtime_class): Add support for
15309         properties to dynamically created classes.
15310         * reflection.c: Fix a few places where non-MonoObjects were inserted
15311         into the tokens hashtable.
15312
15313 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15314
15315         * object.c: some support to handle out of memory exceptions.
15316
15317 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
15318
15319         * marshal.c (mono_marshal_get_native_wrapper): support reference
15320         return types
15321
15322 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15323
15324         * object.h, object.c: more portability stuff from Bernie Solomon.
15325         Unexport mono_object_allocate(). Added mono_object_unbox ().
15326         Set exitcode when an unhandled exception is thrown.
15327
15328 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
15329
15330         * marshal.c (mono_marshal_get_native_wrapper): use custom
15331         marshaler for return types.
15332
15333 2003-06-10  Dick Porter  <dick@ximian.com>
15334
15335         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
15336         ip_mreq is available
15337
15338 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
15339
15340         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
15341         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
15342         by Bernie Solomon <bernard@ugsolutions.com>.
15343
15344 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
15345
15346         * gc.c (mono_gc_init): Avoid error message on shutdown when
15347         GC_DONT_GC=1 is used.
15348
15349         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
15350         New icall to return the GUID of a module.
15351
15352 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
15353
15354         * class.c: ensure instance size always includes the parent's size
15355         even whem class size is set explicitly (fixes bug#44294).
15356
15357 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15358
15359         * profiler.h, profiler.c: made the simple profiler thread-safe,
15360         get more accurate timing info. Allow the loading of an
15361         externally-developed profiler module.
15362
15363 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
15364
15365         * marshal.c (mono_marshal_get_native_wrapper): improved
15366         class/byref arguments.
15367         (mono_marshal_get_native_wrapper): better string marshaling support.
15368
15369 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
15370
15371         * class.c: ensure .pack and .size are handled correctly and
15372         simplified layout of static fields.
15373
15374 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
15375
15376         * appdomain.c
15377         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
15378
15379         * loader.c (mono_lookup_pinvoke_call): look for modules in the
15380         current directory (fix bug 44008)
15381
15382 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
15383
15384         * marshal.c (mono_marshal_get_native_wrapper): started support for
15385         custom marshalers.
15386         (mono_delegate_to_ftnptr): consider marshalling specifications
15387
15388 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
15389
15390         * reflection.c, reflection.h: emit custom marshal info.
15391
15392 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15393
15394         * object.c: free the GError.
15395         * icall.c: added CloseEvent_internal.
15396         * threads.[ch]:
15397         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
15398         call.
15399
15400 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
15401
15402         * loader.c (mono_method_get_signature): Add support for dynamic
15403         assemblies.
15404
15405 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
15406
15407         * reflection.c: fixed bug #43905.
15408
15409 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
15410
15411         * class.c, domain.c, icall.c, metadata.h, object.h: support for
15412         handling TypedReference and ArgIterator.
15413         * loader.c, loader.h: added function to get signature at call site.
15414
15415 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15416
15417         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
15418         data readonly. Buglets and warning fixes. Some MethodSpec support.
15419
15420 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
15421
15422         * class.h, class.c, object.c: remove relative numbering support.
15423
15424 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
15425
15426         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
15427         free the string, until we get a chance to fix Gtk#
15428
15429 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15430
15431         * marshal.c: revert last patch.
15432
15433 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
15434
15435         * icall.c: updates for new mono_class_vtable() not calling
15436         the type constructor anymore.
15437
15438 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15439
15440         * object.h, object.c: separate vtable creation from type
15441         initialization. Make running the .cctor thread safe.
15442
15443 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
15444
15445         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
15446
15447 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
15448
15449         * loader.c (mono_get_method): consider calling convention
15450
15451 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
15452
15453         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
15454         to return the invisible global type for a module.
15455
15456         * reflection.c (mono_image_build_metadata): Emit global fields too.
15457
15458 2003-05-20  Peter Williams  <peterw@ximian.com>
15459
15460         * loader.c (mono_lookup_internal_call): Add a few newlines.
15461
15462 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
15463
15464         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
15465         literal strings.
15466
15467         * appdomain.c (set_domain_search_path): Recalculate search path when
15468         AppDomainSetup.PrivateBinPath changes.
15469
15470         * object.c (mono_class_compute_gc_descriptor): It turns out some
15471         parts of the class libs (like System.Thread) holds pointers to
15472         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
15473         to treat native int a pointer type here.
15474         
15475 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
15476
15477         * appdomain.h, domain.c: add hashtable for jump target resolution.
15478
15479 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
15480
15481         * reflection.h reflection.c icall.c: Added new icalls 
15482         GetManifestResourceInfoInternal, GetModulesInternal and support
15483         infrastructure.
15484
15485 2003-05-16  Dick Porter  <dick@ximian.com>
15486
15487         * icall.c:
15488         * file-io.h:
15489         * file-io.c: Implement System.IO.MonoIO::GetTempPath
15490
15491 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
15492
15493         * object.c: mono_store_remote_field: little fix to previous patch.
15494
15495 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15496
15497         * class.c: add constructors to array classes.
15498         * icall.c: special case array construction for InternalInvoke (),
15499
15500 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
15501
15502         * class.h class.c reflection.c object.c: Added support for field
15503         defaults in dynamically generated classes.
15504
15505 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
15506
15507         * reflection.c: properly encode charset for ddlimport.
15508
15509 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
15510
15511         * threads.c: allow compiling without GC.
15512
15513 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
15514
15515         * appdomain.h, object.c, object.h, threads.c, threads.h: added
15516         handling of thread static data.
15517
15518 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15519
15520         * reflection.h, reflection.c: added mono_custom_attrs_free ().
15521
15522 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
15523
15524         * class.c (mono_array_class_get): always set the serializable flags
15525         (mono_array_class_get): always set the SEALED attribute for array types
15526
15527 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
15528
15529         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
15530         attributes (fix for bug 42021).
15531
15532 2003-05-12  Dick Porter  <dick@ximian.com>
15533
15534         * gc.c: Don't run finalizers when the finalizer thread is
15535         finishing up, because the default domain has already been
15536         destroyed.
15537
15538 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
15539
15540         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
15541         value is null, we should throw an exception.   This is slightly
15542         different than the other conventions used for the constructor.
15543
15544 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15545
15546         * socket-io.c: fixed windows build.
15547
15548 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15549
15550         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
15551
15552 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
15553
15554         * object.c (mono_string_new_wrapper): Compatibility fix for MS
15555         compilers.
15556
15557 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
15558
15559         * class.c (mono_class_layout_fields): Add experimental GC aware
15560         auto layout facility. Requires class library changes to work correctly.
15561
15562         (mono_class_setup_vtable): Avoid overriding explicit interface
15563         method implementations. Fixes iface3.exe test.
15564
15565         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
15566         object reference.
15567         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
15568         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
15569
15570         * metadata.h: Add new type classification macro which determines
15571         whenever the type holds an object reference.
15572
15573 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
15574
15575         * marshal.c (mono_marshal_get_native_wrapper): cleanups
15576
15577 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
15578
15579         * gc.c (finalizer_thread): Work around a GC bug.
15580
15581 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
15582
15583         * marshal.c (emit_struct_conv): allow unions
15584
15585         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
15586
15587 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
15588
15589         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
15590
15591 2003-05-06  Martin Baulig  <martin@ximian.com>
15592
15593         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
15594
15595 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15596
15597         * socket-io.c:
15598         (Select_internal): allow NULLs, don't create arrays if not needed.
15599         Coupled with Socket.cs changes.
15600
15601         * threadpool.c:
15602         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
15603         register a finalizer for it that will close the semaphore handle. This
15604         fixes the leak and make Lupus' test run with > 4080 loops.
15605
15606 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
15607
15608         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
15609         Jerome Laban (bug #42287)
15610
15611 2003-05-02  Martin Baulig  <martin@ximian.com>
15612
15613         * debug-mono-symfile.h
15614         (MonoSymbolFile): Moved declaration into mono-debug.h.
15615         (MonoDebugMethodJitInfo): Likewise.
15616         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
15617         argument.
15618         (_mono_debug_address_from_il_offset): Take a
15619         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
15620
15621         * mono-debug.h
15622         (MonoDebugDomainData): New struct.
15623         (mono_debug_get_domain_data): New function.
15624         (mono_debug_add_method): Take an additional `MonoDomain *'
15625         argument.
15626         (mono_debug_source_location_from_address): Likewise.
15627         (mono_debug_il_offset_from_address): Likewise.
15628         (mono_debug_address_from_il_offset): Likewise.
15629
15630 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
15631
15632         * reflection.c: one more check for null type in custom attrs.
15633
15634 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15635
15636         * reflection.c: avoid warning (comparison is always false due to limited
15637         range of data type).
15638
15639 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15640
15641         * icall.c: throw an exception in Type.GetField if the argument 'name'
15642         is NULL.
15643
15644 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
15645
15646         * reflection.c: fixed handling of enums in named arguments to custom
15647         attributes (bug #42123).
15648
15649 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
15650
15651         * reflection.c: use the right array element type and handle
15652         a null for a Type argument, too.
15653
15654 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
15655
15656         * reflection.c: handle arrays as arguments to custom attributes.
15657
15658 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15659
15660         * reflection.c: handle a string value in a custom attr
15661         ctor that takes an object.
15662
15663 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
15664
15665         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
15666         (fix bug #42063)
15667
15668 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
15669
15670         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
15671
15672 2003-04-27  Martin Baulig  <martin@ximian.com>
15673
15674         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
15675         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
15676         MONO_DEBUGGER_EVENT_BREAKPOINT.
15677         (mono_breakpoint_trampoline_code): Removed.
15678         (mono_debugger_event_handler): The last argument is now a
15679         `guint32'.
15680         (mono_debugger_insert_breakpoint_full): Removed the
15681         `use_trampoline' argument.
15682         (mono_debugger_method_has_breakpoint): Likewise.
15683         (mono_debugger_trampoline_breakpoint_callback): Renamed to
15684         mono_debugger_breakpoint_callback(); take the method and
15685         breakpoint number as arguments.
15686
15687 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
15688
15689         * metadata.c: fix off by one when loading parameters attributes.
15690
15691 2003-04-24  Martin Baulig  <martin@ximian.com>
15692
15693         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
15694
15695 2003-04-24  Martin Baulig  <martin@ximian.com>
15696
15697         * mono-debug-debugger.c: Moved all code which interacts with the
15698         Mono Debugger here.
15699
15700         * debug-mono-symfile.c: This code now just deals with the symbol
15701         file itself, the debugger code is now in mono-debug-debugger.c.
15702
15703 2003-04-23  Martin Baulig  <martin@ximian.com>
15704
15705         * mono-debug.c (mono_debug_source_location_from_il_offset):
15706         New method; like mono_debug_source_location_from_address(), but
15707         takes an IL offset instead of a machine address.
15708
15709 2003-04-23  Martin Baulig  <martin@ximian.com>
15710
15711         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
15712         `line' field; this is now computed by the debugger.
15713
15714 2003-04-23  Martin Baulig  <martin@ximian.com>
15715
15716         * mono-debug.[ch]: New files.  This is the new debugging interface.
15717
15718         * mono-debug-debugger.[ch]: New files.  Moved all code which
15719         interacts with the Mono Debugger here.
15720
15721 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
15722
15723         * domain.c (mono_init): initialize mono_defaults.monitor_class
15724
15725 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
15726
15727         * reflection.c (method_encode_code): Add a spicy exception to help
15728         future compiler authors.
15729
15730 2003-04-21  Martin Baulig  <martin@ximian.com>
15731
15732         * icall.c
15733         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15734         Make this work with relative pathnames; g_filename_to_uri() needs
15735         an absolute filename.
15736
15737 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
15738
15739         * icall.c: Track name changes in Object and ValueType.
15740
15741 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
15742
15743         * metadata.c (mono_type_stack_size): size should be a multiple of
15744         sizeof (gpointer)
15745
15746 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15747
15748         * gc.c:
15749         (internal_domain_finalize): moved into mono_domain_finalize. No need
15750         to create another thread because the finalizers will be run in the
15751         finalizer thread.
15752         
15753         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
15754         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
15755         to be run (MS does this too).
15756
15757 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
15758
15759         * object.c (mono_class_compute_gc_descriptor): Update comment.
15760
15761         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
15762
15763         * image.h: Add synchronized wrapper cache.
15764
15765         * image.c (do_mono_image_open): Initialize cache.
15766
15767         * reflection.c (create_dynamic_mono_image): Initialize cache.
15768
15769 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15770
15771         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
15772         ves_icall_System_Buffer_ByteLengthInternal.
15773
15774 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
15775
15776         * reflection.c: setup klass->nested_in earlier. Allow
15777         a dash in the assembly name.
15778
15779 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
15780
15781         * metadata.c (mono_type_to_unmanaged): dont access
15782         type->data.klass for MONO_TYPE_OBJECT
15783         (mono_type_to_unmanaged): consider System.Delegate class
15784
15785 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
15786
15787         * class.c: just setup supertypes in the proper place instead of
15788         initializing the full element class for arrays.
15789
15790 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
15791
15792         * class.c: ensure the element class of arrays is initialized.
15793         Setup the supertype info for array classes, too.
15794
15795 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
15796
15797         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
15798
15799 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15800
15801         * Makefile.am: re-added -m option when running cygpath. This way,
15802         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
15803         separator.
15804         * mono-config.c: same codepath for locating mono config file for WIN32
15805         and the rest.
15806         * assembly.c: if mono_assembly_setrootdir is called, don't override
15807         the value set.
15808
15809 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15810
15811         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
15812         MONO_ASSEMBLIES variable.
15813
15814 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
15815
15816         * icall.c: added Assembly::GetNamespaces() icall.
15817
15818 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15819
15820         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
15821
15822 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
15823
15824         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
15825         * object.c: fixed bug in the construction of vtable for proxies
15826
15827 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
15828
15829         * object.c (mono_array_new): Mark mono_array_new as an icall.
15830
15831 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15832
15833         * class.c: fixed test for public method when overriding interfaces.
15834         Closes bug #40970.
15835
15836 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
15837
15838         * appdomain.h, domain.c: added mono_domain_foreach() to
15839         be able to access the currently loaded appdomains.
15840         * object.c: make string interning work across sppdomains.
15841         Mark some functions for use as icalls.
15842
15843 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
15844
15845         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
15846
15847         * reflection.h reflection.c: Allocate long living data using 
15848         GC_MALLOC_ATOMIC so the collector does not need to scan it.
15849
15850         * reflection.c: Double the allocation size in streams instead of
15851         increasing it, to prevent unneccesary copying on large assemblies.
15852         
15853         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
15854         creation if the assembly does not have the Run flag set.
15855
15856 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
15857
15858         * class.h: avoid the C++ keywords in header files (Jerome Laban
15859         spotted and fixed this).
15860
15861 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15862
15863         * object.c:
15864         (mono_unhandled_exception): fill in the arguments for the
15865         UnhandledException event. Only trigger that event for the default
15866         domain (as MS does).
15867
15868 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
15869
15870         * object.c: Improve typed allocation stuff based on suggestions from
15871         Paolo. Also turn it on if the GC library supports it.
15872
15873 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15874
15875         * object.c object.h class.h: Added experimental typed allocation
15876         facility using the interfaces in gc_gcj.h.
15877
15878         * os/gc_wrapper.h: Added new include files.
15879         
15880 2003-04-03  Martin Baulig  <martin@ximian.com>
15881
15882         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
15883         which is not yet enabled by default.
15884
15885         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
15886         functions.
15887         (mono_gc_lock, mono_gc_unlock): New static functions.
15888
15889         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
15890         functions; stop/start the world for the garbage collector.  This
15891         is using the windows API; we need to complete the SuspendThread()/
15892         ResumeThread() implementation in the io-layer to make this work on Unix.
15893         (mono_gc_push_all_stacks): New public function; tells the garbage
15894         collector about the stack pointers from all managed threads.
15895
15896 2003-04-03  Martin Baulig  <martin@ximian.com>
15897
15898         * object.h (MonoThread): Added `gpointer stack_ptr'.
15899
15900         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
15901
15902 2003-04-03  Martin Baulig  <martin@ximian.com>
15903
15904         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
15905
15906 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
15907
15908         * reflection.c (typebuilder_setup_fields): Initialize field.first and
15909         field.last.
15910
15911 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
15912
15913         * loader.c (mono_lookup_internal_call): Report the corlib that is
15914         out of sync.
15915
15916 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
15917
15918         * icall.c (ves_icall_type_GetTypeCode): fixed check for
15919         System.DBNull (it's class not valuetype).
15920
15921 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
15922
15923         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
15924         if the array method was already assigned a token (fixes bug#40646).
15925
15926 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
15927
15928         * reflection.c (mono_reflection_get_type): Attempt type resolve even
15929         if no assembly is given.
15930
15931 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
15932
15933         * metadata.h: Added the new tables.
15934
15935         * row-indexes.h: Added definitions for new tables.
15936
15937         * metadata.c: Add schemas for new tables, and add support for
15938         computing the sizes of them.
15939
15940         * class.c: Update for handling the new type cases.
15941
15942 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
15943
15944         * metadata.h (MONO_TYPE_IS_VOID): new macro
15945
15946 2003-03-31  Martin Baulig  <martin@ximian.com>
15947
15948         * threads.h (MonoThreadCallbacks): Added `thread_created'.
15949
15950         * threads.c (mono_thread_new_init): Call `thread_created' in the
15951         mono_thread_callbacks.
15952
15953 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
15954
15955         * loader.h: added marshalbyrefobject_class to mono_defaults
15956         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
15957         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
15958           generation of output parameters.
15959           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
15960         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
15961           contextbound and the target object belongs to the context of the caller.
15962         * object.h: added context and unwrapped_server variables in MonoRealProxy.
15963         * object.c: Implemented support for interfaces and abstract classes
15964           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
15965           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
15966
15967 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
15968
15969         * class.h class.c (mono_class_is_subclass_of): New function.
15970         
15971         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
15972         routines for most common case (calls from ArrayList::ToArray).
15973
15974         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
15975         routine so programs which call Environment::Exit() can be profiled.
15976
15977         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
15978         Added MONO_ARCH_SAVE_REGS.
15979
15980         * icall.c (ves_icall_type_is_subtype_of): Use new function.
15981
15982 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
15983
15984         * blob.h: Add a couple of new MonoType types definitions.
15985
15986         * tabledefs.h: Add a couple of new call convs.
15987
15988 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
15989
15990         * reflection.h (MonoReflectionDynamicAssembly): track changes in
15991         the layout of the class.
15992
15993         * reflection.c (alloc_table): double the size on overflow to avoid
15994         unnecessary copying.
15995
15996         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
15997         avoid filling out metadata tables and blobs. Also set mb->ilgen to
15998         null so it can be garbage collected.
15999         
16000 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
16001
16002         * reflection.c (mono_reflection_get_type): Return the resolved type
16003         only if it is in the assembly we searched.
16004
16005         * reflection.c (ensure_runtime_vtable): Initialize method slots.
16006
16007         * class.c (mono_class_setup_vtable): Set the slot of the overriding
16008         method.
16009
16010 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16011
16012         * appdomain.c:
16013         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
16014         the right one is 'file:///blah', but MS allows it.
16015         * assembly.c:
16016         (mono_assembly_open): allow 'file://blah'
16017
16018         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
16019
16020 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
16021
16022         * socket-io.c: fixes bug #40310.
16023
16024 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
16025
16026         * reflection.c (mono_reflection_parse_type): handle deeply nested
16027         types correctly.
16028
16029         * reflection.c (mono_image_create_token): Use unique token values
16030         since they will be put into a hash table.
16031
16032         * class.c (mono_class_setup_vtable): If a method occurs in more than
16033         one place in the vtable, and it gets overriden, then change the
16034         other occurances too.
16035
16036         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16037         object as return type.
16038
16039 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16040
16041         * icall.c: Deleted "ToString" implementation for double and float
16042         because they are full implemented in managed code.
16043
16044 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16045
16046         * reflection.c, reflection.h: implemented and exported functions
16047         to retrieve info about custom attributes.
16048
16049 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16050
16051         * appdomain.c: moved Uri handling to assembly.c
16052         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
16053         work when using a file Uri in *nix and windows.
16054
16055         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
16056         GetReferencedAssemblies.
16057
16058 2003-03-18  Dick Porter  <dick@ximian.com>
16059
16060         * icall.c: Rename a couple of internal calls
16061
16062         * threads.c: Set the thread state to Stopped when a thread exits.
16063         Fixes bug 39377.
16064
16065 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
16066
16067         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
16068         New icall.
16069
16070         * object.c (mono_class_vtable): fix warning.
16071
16072 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
16073
16074         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
16075
16076         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
16077         memory.
16078         (method_encode_clauses): Create exception info structures in the right
16079         order.
16080         (mono_reflection_setup_internal_class): Initialize supertypes field.
16081
16082         * class.c object.c: Handle interfaces which implement other interfaces 
16083         correctly.
16084
16085         * class.h class.c: Move the supertypes array initialization code into 
16086         a separate function so it can be used for dynamic types too. Also call
16087         it earlier, in mono_class_init(), since it can be used before the
16088         type is initialized.
16089
16090 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16091
16092         * Makefile.am:
16093         * assembly.c:
16094         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
16095
16096         * appdomain.c:
16097         * appdomain.h:
16098         * marshal.c:
16099         * object.c: remove warnings.
16100
16101 2003-03-13  Martin Baulig  <martin@ximian.com>
16102
16103         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
16104         (MonoDebugLexicalBlockEntry): New types.
16105
16106         * debug-mono-symfile.c
16107         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
16108
16109 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * process.c: ret can be any non-zero value accroding to MS doc.
16112
16113 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
16114
16115         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
16116         fixing a warning for a miss-used prototype, would have cause
16117         random memory corruption.
16118
16119 2003-03-07  Martin Baulig  <martin@ximian.com>
16120
16121         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
16122         getting really annoying ....
16123
16124 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
16125
16126         * reflection.c (fixup_method): added support for array methods.
16127
16128 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
16129
16130         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
16131         (pointed out by Michael Adams).
16132
16133 2003-03-04  Dick Porter  <dick@ximian.com>
16134
16135         * icall.c: Temporarily reverted the Double and Single ToString()
16136         change, because it broke nunit.
16137
16138 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
16139
16140         * object.h, threads.h: make include files compatible with C++
16141         (patch by Jerome Laban <jlaban@wanadoo.fr>).
16142
16143 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16144
16145         * icall.c: Erased ToString helper functions for Double and Single.
16146         Now, that implementations ar all in managed code (Double and Single
16147         Formatters).
16148
16149 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
16150
16151         * appdomain.c: Added method for initializing the default context of
16152         a domain. Added internal call for getting the default context.
16153         * appdomain.h: Added context variable in MonoDomain struct.
16154         * domain.c: mono_domain_set also sets the default context of the domain
16155         * icall.c: Mapped internal method InternalGetDefaultContext.
16156         * object.c: mono_object_get_virtual_method returns always a remoting
16157         wrapper if the object is a transparent proxy.
16158         mono_runtime_invoke_array: when creating an object by calling the
16159         constructor, if the created object is a proxy, then the constructor should
16160         be called using the a remoting wrapper.
16161
16162 2003-03-03  Dick Porter  <dick@ximian.com>
16163
16164         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
16165         variable so it compiles on solaris.  Problem spotted by
16166         Christopher Taylor <ct@cs.clemson.edu>
16167
16168 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16169
16170         * appdomain.c:
16171         (get_info_from_assembly_name): don't leak value.
16172
16173         * icall.c:
16174         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
16175         result.
16176
16177 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
16178
16179         * assembly.c: export mono_image_load_references ().
16180         * class.c: handle function pointers. mono_class_from_name() now
16181         supports nested type names directly.
16182
16183 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
16184
16185         * reflection.h reflection.c: Encode already created dynamic methods 
16186         and fields correctly as a DEF instead of a REF.
16187
16188         * reflection.c: Get rid of the force_ref argument to 
16189         mono_image_typedef_or_ref since it was wrong in the first place.
16190
16191         * string-icalls.c: add error checking to string constructors according
16192         to the MSDN docs.
16193
16194         * reflection.c: Emit types in the order their TypeBuilders were 
16195         created. Previously, a new table index was assigned to each type before
16196         the tables were emitted. This was wrong because the signature blob
16197         might already refer to a type by its original table index.
16198
16199 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
16200
16201         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
16202         change.
16203         
16204 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16205
16206         * Makefile.am: make assemblies dir have \ instead of / on windows.
16207
16208 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
16209
16210         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
16211         iterate over the NESTEDCLASS table using a linear search since the
16212         table is not guaranteed to be sorted by the secondary key.
16213
16214         * class.c (mono_class_create_from_typedef): fixed up call to
16215         mono_metadata_nesting_typedef.
16216         
16217 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
16218
16219         * marshal.c (mono_string_to_byvalstr): clear the memory as
16220         suggested by Jerome Laban <jlaban@wanadoo.fr>
16221
16222 2003-02-26  Dick Porter  <dick@ximian.com>
16223
16224         * process.c: Cope with padding in .rsrc blocks
16225
16226 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16227
16228         * metadata.h: reverted the filter_len change, it breaks reflection
16229         
16230 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
16231
16232         * metadata.h: added a new field to store the filter_len
16233         
16234
16235 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
16236
16237         * reflection.c: handle custom attributes for types and members
16238         created with Reflection.Emit (bug#38422).
16239
16240 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
16241
16242         * reflection.c: define RTSpecialName automatically for constructors for
16243         compatibility with MS.NET.
16244
16245         * reflection.c (mono_reflection_create_runtime_class): initialize
16246         nested_in field of dynamically created classes.
16247
16248 2003-02-22  Martin Baulig  <martin@ximian.com>
16249
16250         * debug-mono-symfile.h: Incremented version number.
16251
16252 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16253
16254         * object.h icall.c process.c: fix warnings.
16255
16256 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
16257
16258         * appdomain.h appdomain.c:
16259         (mono_domain_try_type_resolve): split the 
16260         name_or_tb argument into a name and a tb argument.
16261         (mono_domain_has_type_resolve): new function to check whenever the
16262         application has registered a TypeResolve event handler.
16263         
16264         * icall.c reflection.h reflection.c: move the type resolve logic into
16265         mono_reflection_get_type () so it will be invoked when 
16266         Assembly::GetType () is called.
16267
16268         * reflection.c:
16269         (mono_reflection_get_type): renamed to get_type_internal.
16270         (mono_reflection_get_type): fixed type name generation so it works 
16271         for nested types too.
16272         (mono_reflection_get_type): call has_type_resolve () to avoid the 
16273         costly type name generation if there is no resolve event handler.
16274
16275 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16276
16277         * class.c, image.c: load exported types from file references.
16278
16279 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
16280
16281         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
16282           used to cache the managed methods used to create proxies and make 
16283           remote invocation of methods.
16284         * class.h: Added in MonoVTable a flag to indicate that a class needs 
16285           to be remotely created.
16286         * object.c: Modified the method mono_class_vtable(). It now initializes 
16287           the remote flag of the vtable. Modified mono_object_new_specific(), 
16288           so now it checks the remote flag.
16289         * icall.c: Added a couple of internal methods, one for enabling instance 
16290           creation interception for a type, and one for creating objects bypassing
16291           the remote check.
16292
16293 2003-02-18  Martin Baulig  <martin@ximian.com>
16294
16295         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
16296         New interncall to get a method's metadata token.
16297
16298         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
16299         New interncall for the debugger.
16300
16301 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
16302
16303         * class.c (mono_class_setup_vtable): allocate supertype array
16304
16305 2003-02-18  Martin Baulig  <martin@ximian.com>
16306
16307         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
16308
16309 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16310
16311         * reflection.c:
16312         (assembly_name_to_aname): jump over unknown properties (i've found
16313         something like: 'type, assembly, version=xxx, custom=null, public...',
16314         so now will ignore custom=null and still get the rest of the values).
16315
16316 2003-02-17  Dick Porter  <dick@ximian.com>
16317
16318         * threads.c: Have Thread.Start() wait for a semaphore to signal
16319         that the thread has set up all its local data.  This fixes bug
16320         34323, where Abort() raced the new thread's TLS data.
16321
16322         Also removes the handle_store() call from start_wrapper, because
16323         threads are now always created suspended and there is no longer a
16324         race between the parent and child threads to store the info.
16325
16326 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
16327
16328         * image.c: explain the #- heap issue in a message, hopefully
16329         avoiding FAQs on mono-list.
16330
16331 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16332
16333         * icall.c:
16334         (GetEntryAssembly): if the domain has not invoked
16335         AppDomain.ExecuteAssembly yet, return the assembly of the default
16336         AppDomain.
16337
16338 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
16339
16340         * class.c (mono_ldtoken): make it work in dynamic assemblies.
16341
16342 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
16343
16344         * metadata.c, reflection.c: simple speedup to type hash
16345         and equals code.
16346
16347 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
16348
16349         * image.c, image.h, class.c, assembly.c: move module loading
16350         to MonoImage. When loading metadata, consider alignemnet from
16351         the start of metadata, not from the metadata address in memory.
16352
16353 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
16354
16355         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
16356         AssemblyBuilder objects. Factored out custom attribute creation into
16357         a separate function.
16358         (create_custom_attr): new function to create custom attributes.
16359
16360 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
16361
16362         * Makefile.am: Got tired of typing the full pathname to pedump.
16363         Until there is another option, am installing this.
16364
16365 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
16366
16367         * class.c (class_compute_field_layout): always set field->parent 
16368         (mono_ldtoken): use mono_defaults.fieldhandle_class;
16369
16370 2003-02-11  Dick Porter  <dick@ximian.com>
16371
16372         * threads-types.h:
16373         * monitor.c: Rewrote Monitor, making lock much faster and
16374         Pulse/Wait work as specified.  Also uses much fewer handles, and only
16375         creates them as needed.
16376
16377         * exception.c: Added SynchronizationLockException
16378
16379         * threads.c: Deleted old Monitor implementation.  The new one is
16380         in a new file.
16381
16382 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
16383
16384         * class.c: handled TypedReference type code. Set the correct size for
16385         class data. Setup interface_offsets for interface classes, too.
16386
16387 2003-02-09  Martin Baulig  <martin@ximian.com>
16388
16389         * debug-mono-symfile.h: Reflect latest symbol writer changes.
16390
16391 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
16392
16393         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
16394         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
16395         * object.c: fixed mono_object_get_virtual_method () for interfaces.
16396         * verify.c: check for code that runs after the end of the method.
16397
16398 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16399
16400         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
16401         "System.Math::Round2".
16402         * sysmath.h: Added Floor, Round and Round2 definitions.
16403         * sysmath.c: Modified certain functions that were not 100% compliant
16404         with MS.NET (math precision) and added the implementation of Floor,
16405         Round and Round2.
16406
16407 2003-02-07  Martin Baulig  <martin@ximian.com>
16408
16409         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
16410
16411 2003-02-07  Martin Baulig  <martin@ximian.com>
16412
16413         * debug-mono-symfile.c: Reflected latest symwriter changes.
16414         (mono_debug_create_mono_symbol_file): Removed.
16415         (mono_debug_open_mono_symbol_file): Take an argument which
16416         specifies whether to create a dynamic symbol file.
16417
16418 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
16419
16420         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
16421
16422 2003-02-05  Martin Baulig  <martin@ximian.com>
16423
16424         * reflection.c (mono_image_build_metadata): Make this public,
16425         protect it against being called multiple times, don't create
16426         resources and don't build the compressed metadata here.
16427         (mono_image_create_pefile): Do this here.
16428
16429         * icall.c
16430         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
16431
16432 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16433
16434         * socket-io.c: fixed bug #36322.
16435
16436 2003-02-06  Piers Haken <piersh@friskit.com>
16437
16438         * appdomain.[ch]:
16439         * class.h:
16440         * debug-mono-symfile.c:
16441         * icall.c:
16442         * loader.c:
16443         * mono-config.c:
16444         * monosn.c:
16445         * reflection.c:
16446         * socket-io.c: warning cleanups
16447
16448 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
16449
16450         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
16451         function. works like remoting invoke, but does a check for the Proxy first.
16452
16453 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
16454
16455         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
16456
16457 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
16458
16459         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
16460         array of pointers.
16461         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
16462         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
16463
16464         * object.c (mono_store_remote_field_new): used by the new jit
16465         instead of mono_store_remote_field
16466         (mono_load_remote_field_new): used by the new jit
16467         instead of mono_load_remote_field
16468
16469 2003-02-05  Patrik Torstensson
16470
16471         * appdomain.c: changed unload to take the domain id instead
16472         of domain
16473         
16474         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
16475
16476
16477 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16478
16479         * appdomain.c: don't look for assemblies in ApplicationBase if
16480         PrivateBinPathProbe is set.
16481
16482 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16483
16484         * object.c: make the first argument in main_args contain the absolute
16485         path to the assembly. Fixes bug #37511.
16486
16487 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16488
16489         * icall.c: get correct UTC offset for countries not using daylight
16490         time saving. Fixes bug #30030.
16491
16492 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16493
16494         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
16495         and 1 are the family).
16496
16497 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
16498
16499         * icall.c (ves_icall_InternalExecute): removed wrong assertion
16500
16501         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
16502
16503 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
16504
16505         * reflection.c: added support for SignatureHelper tokens, which is
16506         needed by the Calli opcode.
16507
16508         * reflection.h: track changes to SignatureHelper class.
16509
16510         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
16511
16512 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16513
16514         * appdomain.c: fixed loading assemblies from PrivateBinPath.
16515
16516 2003-02-03  Patrik Torstensson
16517         * appdomain.[c|h], domain.c : 
16518          - Added support for getting a domain via domain id
16519          - Support for setting and getting domain from System.AppDomain 
16520            (used in cross appdomain channel)
16521          - Added support for get/set for a MonoAppContext on a thread 
16522            (Context class in System.Runtime.Remoting.Contexts),
16523          - Removed hack in Get/SetData and ExecuteAssembly.
16524         
16525         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
16526         the managed world to get control when a proxy is created.
16527
16528         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
16529         
16530 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
16531
16532         * icall.c
16533         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16534         Populate the codebase field as well.
16535
16536 2003-02-02  Martin Baulig  <martin@ximian.com>
16537
16538         * debug-mono-symfile.c
16539         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
16540         (mono_debug_symfile_add_method): Allow interncalls.
16541
16542 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16543
16544         * icall.c: throw parse exception if strtod fails or the string is empty.
16545
16546 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
16547
16548         * marshal.c: handle object type separately from defined
16549         class types.
16550
16551 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
16552
16553         * marshal.c: handle NATIVE_LPSTR for strings when it's
16554         explicitly specified.
16555
16556 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
16557
16558         * reflection.c, reflection.h, icall.c: setup the reflection
16559         handle cache for ModuleBuilders and AssemblyBuilders.
16560
16561 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
16562
16563         * reflection.c (reflection_methodbuilder_to_mono_method): set
16564         pinvoke flag
16565
16566 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16567
16568         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
16569
16570 2003-01-29  Dick Porter  <dick@ximian.com>
16571
16572         * threads.c: No need for the fake_thread kludge now that Thread
16573         doesn't run a class constructor
16574         
16575 2003-01-29  Dick Porter  <dick@ximian.com>
16576
16577         * threads.c: Use g_direct_hash instead of the rather bogus
16578         g_int_hash
16579
16580 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
16581
16582         * marshal.c (mono_marshal_get_native_wrapper): add check for null
16583         (fix pinvoke12.exe)
16584         (mono_marshal_get_struct_to_ptr): generate valid IL code
16585         (mono_marshal_get_ptr_to_struct): generate valid IL code
16586         (*): correctly set sig->pinvoke, we need to memdup the signature
16587         to do that
16588
16589 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
16590
16591         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
16592         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
16593
16594 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16595
16596         * profiler.c: provide more callers information.
16597
16598 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
16599
16600         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
16601
16602         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
16603
16604         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
16605
16606 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16607
16608         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
16609         exception instead of going into an infinite loop on dates which it 
16610         can't yet handle.
16611
16612         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
16613         out-of-range exception if needed.
16614
16615         * class.c (mono_class_setup_vtable): allow a virtual method to provide
16616         an implementation for an interface method and to override an inherited
16617         method at the same time. 
16618         Imagine a scenario when a virtual method is used to override a
16619         virtual abstract method in a parent class, and this same method 
16620         provides an implementation for an method inherited from an interface. 
16621         In this case, the interface resolution code will set im->slot, which 
16622         means that the virtual method override pass will skip this method 
16623         which means a pointer to the abstract method inherited from the parent
16624         will remain in the vtable of this non-abstract class.
16625
16626         * class.c: (mono_class_setup_vtable): continue search for a real 
16627         method if only an abstract method is found.     
16628
16629 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
16630
16631         * reflection.c: add size to encoding for ByValStr and ByValArray
16632         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
16633
16634 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16635
16636         * class.c (mono_class_setup_vtable): pass the override info as an
16637         argument.
16638
16639         * class.c (mono_class_setup_vtable): set the slot of overriding methods
16640         correctly.
16641         
16642         * reflection.c (ensure_runtime_vtable); add support for method 
16643         overrides.
16644         
16645 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16646
16647         * reflection.c (resolution_scope_from_image): Hack to work to work with
16648         dynamic assemblies.
16649
16650         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
16651         added a 'force_ref' argument to force this function to allways return 
16652         a TypeRef. This is needed by mono_image_get_memberref_token ().
16653         
16654 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16655
16656         * reflection.c (mono_image_get_type_info): interfaces really don't have
16657         a parent.
16658
16659         * reflection.c (mono_image_basic_init): fill out missing fields of
16660         image structure.
16661
16662         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
16663         dynamic assemblies. This is required so dynamic assemblies show up in
16664         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
16665         Type::GetType() etc. This is consistent with MS behaviour.
16666
16667         * image.c image.h reflection.c: add newly created classes to the name 
16668         cache so mono_class_get () will find them.      
16669
16670 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
16671
16672         First part of changes to get IKVM.NET running under mono.
16673         
16674         * appdomain.h, appdomain.c: added new function 
16675         mono_domain_try_type_resolve() which will emit TypeResolve events. 
16676         This function will call AppDomain::DoTypeResolve to do the actual work.
16677
16678         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
16679         moved existing code dealing with dynamic tokens to a new function 
16680         called mono_reflection_lookup_dynamic_token (). This function will 
16681         raise TypeResolve events when appropriate. Since reflection.c is not 
16682         part of libmetadata, a new hook function called 
16683         mono_lookup_dynamic_token() is added to class.c which will call this.
16684
16685         * assembly.h assembly.c: make the invoke_load_hook function public,
16686         so it can be called for dynamic assemblies.
16687
16688         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
16689
16690         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
16691         type isn't found.
16692
16693         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
16694         MonoGHashTable, since it contains pointers to objects which the GC 
16695         needs to track.
16696
16697         * assembly.c (search_loaded): remove unused variable.
16698         
16699 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
16700
16701         * object.c: fixed issue exposed by gcc-generated IL programs
16702         that use RVA data for pointers.
16703
16704 2003-01-25  Martin Baulig  <martin@ximian.com>
16705
16706         * threads.c (start_wrapper): Moved the initialization of
16707         `start_func' above the mono_new_thread_init() call to which we
16708         pass it as argument.
16709
16710 2003-01-24  Martin Baulig  <martin@ximian.com>
16711
16712         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
16713         the MonoThread pointer.
16714
16715 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
16716
16717         * icall.c: Rename `PowImpl' to Pow.
16718
16719 2003-01-23  Dick Porter  <dick@ximian.com>
16720
16721         * threads.c (start_wrapper): Create a Thread object if needed, so
16722         the Main() thread can do the class initialisation in a subthread
16723         that has been set up to allow managed code execution.
16724
16725         Pass the thread ID instead of the MonoThread pointer to the thread
16726         start and attach callbacks.  This change is required, because the
16727         jit thread start callback must be called _before_ the Thread
16728         object can be created.
16729         
16730         (mono_thread_init): Removed much object creation code that is no
16731         longer needed.  No managed code is called from here now.
16732
16733         * object.c (mono_runtime_exec_managed_code): Create a subthread
16734         for Main, and call back to the runtime to use it.
16735         Set the exit code when Main exits.
16736
16737         * gc.c: Make sure domain finalisation happens in a subthread.
16738         Re-enable threaded GC, fixing bug 31333 (again).
16739
16740         * environment.c: System.Environment internall calls (so far just
16741         ExitCode is here, the others are still in icall.c)
16742
16743         * appdomain.c (mono_runtime_cleanup): All threads running managed
16744         code should have finished before mono_runtime_cleanup() is
16745         reached, so no need to clean up threads.
16746
16747 2003-01-22  Martin Baulig  <martin@ximian.com>
16748
16749         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
16750         `gpointer func' arguments.      
16751         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
16752         but added `MonoThread *thread' argument.
16753         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
16754
16755         * threads.c (mono_new_thread_init): Added `gpointer func' argument
16756         and pass it to the mono_thread_start_cb callback.
16757         (mono_install_thread_callbacks): New public function to install a
16758         set of callbacks which are set by the debugger.
16759         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
16760
16761 2003-01-22  Martin Baulig  <martin@ximian.com>
16762
16763         * Makefile.am: Install debug-mono-symfile.h.
16764
16765 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
16766
16767         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
16768
16769 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
16770
16771         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
16772         * class.c (mono_ptr_class_get): correctly set access levels of pointers
16773         (mono_array_class_get): correctly set access levels of arrays
16774
16775 2003-01-20      Patrik Torstensson
16776         * image.h (MonoAssemblyName): changed major, minor, build, revision
16777         from signed to unsigned.
16778
16779 2003-01-20  sean kasun <skasun@azstarnet.com>
16780
16781         * reflection.c (load_cattr_value): Now this handles
16782         MONO_TYPE_SZARRAY.  Fixes bug #35629
16783
16784 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
16785
16786         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
16787         integer value
16788
16789 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16790
16791         * decimal.c: fixed bug #26056.
16792
16793 2003-01-17  Martin Baulig  <martin@ximian.com>
16794
16795         * gc.c: Raise an ExecutionEngineException instead of using g_error().
16796
16797 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16798
16799         * exception.[ch]:
16800         (mono_get_exception_type_initialization): new function.
16801
16802         * object.c: throw a TypeInitializationException when an exception is
16803         thrown invoking the class constructor.
16804
16805 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16806
16807         * reflection.c: fixed attribute reading.
16808
16809 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16810
16811         * icall.c:
16812         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
16813         provided, look for the type in the calling assembly and then in
16814         mscorlib; if the assembly name is provided, only try that one.
16815
16816 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
16817
16818         * object.c: register the vtable before there is a chance it's
16819         queried again recursively.
16820
16821 2003-01-13  Duncan Mak  <duncan@ximian.com>
16822
16823         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
16824         gc-internal.h. 
16825         
16826 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
16827
16828         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
16829
16830 2003-01-11  Martin Baulig  <martin@ximian.com>
16831
16832         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
16833         this to 20 for the release.
16834
16835 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
16836
16837         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
16838
16839         * loader.c (mono_method_get_marshal_info): bug fix
16840
16841         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
16842         structures with explicit layout
16843
16844 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16845
16846         * profiler.c: made the output more readable (and sorted). 
16847         Added caller information for the allocation profiler.
16848
16849 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
16850
16851         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
16852
16853 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16854
16855         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
16856         to get value types.
16857         
16858 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
16859
16860         * object.c, profiler.h, profiler.c, profiler-private.h:
16861         Added object allocation profiler.
16862
16863 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
16864
16865         * reflection.h, reflection.c: handle global methods.
16866         Compress blob entries.
16867
16868 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
16869
16870         * marshal.c: fix compilation.
16871
16872 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
16873
16874         * loader.c (mono_method_get_marshal_info): impl.
16875
16876         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
16877
16878 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16879
16880         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
16881         for reference types.
16882
16883 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
16884
16885         * loader.c: fixed off by one error in loaded parameter names.
16886
16887 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
16888
16889         * marshal.c (mono_marshal_get_icall_wrapper): like
16890         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
16891         instead of a MonoMethod.
16892
16893 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16894
16895         * decimal.c: fixed bug #36537.
16896
16897 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
16898
16899         * marshal.c: throw a missing method exception if a
16900         P/Invoke method is not found.
16901
16902 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
16903
16904         * icall.c: allow a null this for constructors.
16905
16906 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
16907
16908         * icall.c: raise the proper exceptions if the arguments to the
16909         internal Invoke are incorrect.
16910
16911 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
16912
16913         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
16914
16915 2003-01-03  Martin Baulig  <martin@ximian.com>
16916
16917         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16918
16919 2002-12-31  Martin Baulig  <martin@ximian.com>
16920
16921         * debug-mono-symfile.c: Completely rewrote the type section.
16922         Instead of using individual malloc()ed fields, we use one big
16923         continuous memory area and offsets into this area.
16924         See the comments in the source code for details.
16925
16926 2002-12-30  Martin Baulig  <martin@ximian.com>
16927
16928         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
16929
16930 2002-12-30  Martin Baulig  <martin@ximian.com>
16931
16932         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
16933         line number table in this data blob instead of using an external
16934         pointer.
16935
16936 2002-12-28  Martin Baulig  <martin@ximian.com>
16937
16938         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
16939
16940 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
16941
16942         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
16943         as a boxed return type.
16944
16945 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
16946
16947         * appdomain.c
16948         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
16949         g_build_filename to properly get separators on the filename created.
16950
16951         * object.h: Small change, introduce MonoMarshalByRefObject to
16952         track the layout of that structure in the C# universe as we make
16953         changes there.
16954
16955 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
16956
16957         * object.c: removed assert to allow static fields on interfaces.
16958         * loader.c: a TypeSpec may be used for any type, not just arrays.
16959
16960 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
16961
16962         * class.c, class.h: added mono_class_array_element_size ().
16963         Ignore static methods in interfaces.
16964
16965 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16966
16967         * threads.c: fixed the build under cygwin.
16968
16969 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
16970
16971         * reflection.c: handle nullref constants. Allocate keys for
16972         reflection handles with the GC.
16973
16974 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16975
16976         * threads.c, threads.h: added mono_thread_get_abort_signal()
16977         to get a suitable signal for thread abort.
16978
16979 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
16980
16981         * metadata.c: fix handling of ExportedType table.
16982
16983 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16984
16985         * icall.c: added WriteWindowsDebugString internal call.
16986
16987 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16988
16989         * reflection.h: added fields to match C# implementation.
16990
16991 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16992
16993         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
16994
16995 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
16996
16997         * gc.h, gc-internal.h: Rename header for GC internal calls to
16998         gc-internal.h from gc.h as to not clash with Boehm GC having its
16999         header installed as <gc.h> in outside include paths.
17000         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
17001         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
17002
17003 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17004
17005         * icall.c: assign minor, build and revision in FillName.
17006
17007 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
17008
17009         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
17010         Added support for running code generated by Reflection.Emit.
17011
17012 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17013
17014         * appdomain.c: check for NULL argument in LoadFrom.
17015
17016 2002-12-10  Dick Porter  <dick@ximian.com>
17017
17018         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
17019
17020 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17021
17022         * appdomain.c: fix buglet when building exe file name.  Handle full
17023         assembly name (needed after latest changes to AssemblyName).
17024         * image.c:
17025         (mono_image_close): free some hashtables.
17026
17027 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
17028
17029         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
17030         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
17031         on some systems (redhat 7.3) 
17032
17033 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
17034
17035         * threads.c: delete the critical section of a sync block,
17036         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
17037
17038 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
17039
17040         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
17041
17042 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17043
17044         * appdomain.[ch]: handle the assembly preload event to try loading the
17045         assemblies using the paths we have in the current domain.
17046
17047         * assembly.[ch]: created an assembly preload hook that is called to try
17048         loading the assembly by other means that the ones provided here.
17049
17050         * domain.c: initialize the domain search path.
17051
17052         From now on, assemblies (TODO: except corlib and System) are loaded
17053         according to these rules when using mono_assembly_load ():
17054
17055                 1. It tries to load the assembly from the ApplicationBase
17056                 of the current domain appending .dll and .exe (TODO: have to
17057                 try loading from name/name.dll and name/name.exe).
17058
17059                 2. It tries the search path specified in PrivateBinPath for the
17060                 current domain (if any).
17061
17062                 3. Previous behavior.
17063
17064 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
17065
17066         * icall.c: implemented GetInterfaceMap() related icall.
17067         * domain.c, loader.h: load MethodInfo in mono_defaults.
17068
17069 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17070
17071         * gc.c: disable the finalizer thread for now, untill all the issues
17072         with it are resolved.
17073
17074 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17075
17076         * string-icalls.c: handle embedded nulls in string ctor when the
17077         length is specified.
17078
17079 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17080
17081         * class.c: look for explicit interface implementation in parent
17082         classes, too.
17083
17084 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
17085
17086         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
17087
17088 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
17089
17090         * gc.c: protect handles with a critical section.
17091
17092 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17093
17094         * icall.c:
17095         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
17096         parameters. If no assembly specified, try getting the type from all
17097         the assemblies in the current domain, else, load the assembly and get
17098         the type from it.
17099
17100 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17101
17102         * marshal.c: applied patch from Aleksey Demakov that fixes
17103         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
17104
17105 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17106
17107         * icall.c: fixed get_location.
17108
17109 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
17110
17111         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
17112         declarations to make it work with older gcc. 
17113
17114         * loader.c (mono_get_method): set signature->pinvoke for native calls
17115
17116 2002-11-20  Dick Porter  <dick@ximian.com>
17117
17118         * threads.c (mono_thread_init): Set the main thread's handle
17119
17120 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17121
17122         * gc.c: allow compilation without GC support. Changed to match the
17123         mono coding style.
17124
17125 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17126
17127         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
17128
17129 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
17130
17131         * reflection.c: set a public key token on the core assemblies.
17132
17133 2002-11-18  Dick Porter  <dick@ximian.com>
17134
17135         * threads.c: Split out some thread initialisation so that other
17136         files can set the start callback function.
17137
17138         * gc.c: Run finalisers in a separate thread, to avoid stack
17139         overflow.  Fixes bug 31333.
17140
17141         * appdomain.c: Set up GC finalisation thread.
17142
17143         * reflection.c: 
17144         * object.c: 
17145         * domain.c: Use gc.h macros for GC_malloc
17146         
17147 2002-11-15  Dick Porter  <dick@ximian.com>
17148
17149         * threadpool.c: 
17150         * threads.c:
17151         * appdomain.c: Removed mono_runtime_init_with_attach(),
17152         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
17153         merging the extra parameter with the existing function.  Removed
17154         unneeded code in mono_thread_attach().
17155
17156 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
17157
17158         * image.c (mono_image_loaded_by_guid): a method to get loaded
17159         images by guid. 
17160         (load_metadata_ptrs): we store the guid as string.
17161
17162 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
17163
17164         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
17165
17166         * metadata.c (mono_guid_to_string): imported method form Zoltan
17167         Varga (slightly modified)
17168
17169         * assembly.c (mono_assembly_open): load precompiled code
17170
17171         * loader.h (MonoMethod): we store the method token for use in the
17172         aot compiler. 
17173
17174 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17175
17176         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
17177         the hook function called when an assembly is loaded.
17178         
17179         * domain.c: Modified file.
17180         (mono_domain_assembly_load): removed hash table insertion of assemblies.
17181
17182         Fixes bug #33196.
17183
17184 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
17185
17186         * reflection.c: Map PEFileKind to the value expected by the WinNT
17187         image loader. 
17188
17189 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17190
17191         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
17192         Read until the buffer is filled completely.
17193
17194 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17195
17196         * icall.c: implemented MonoType.InternalGetEvent ().
17197
17198 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17199
17200         * appdomain.c: implemented InitAppDomainSetup. Delayed
17201         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
17202         the entry_assembly.
17203
17204         * assembly.c: base_dir is now an absolute path ending with
17205         G_DIR_SEPARATOR.
17206
17207         * icall.c: modified get_location according to the above changes.
17208
17209         * object.c: init AppDomain.SetupInformation for the default domain after
17210         we have the entry assembly.
17211
17212         * domain.c: when unloading a domain, setup = NULL.
17213
17214 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
17215
17216         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
17217
17218 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
17219
17220         * object.h, object.c: introduced mono_object_get_virtual_method ()
17221         to lookup the method invoked on an object when a callvirt is done on
17222         a method.
17223         * icall.c: make MethodInfo::Invoke() always do a virtual call.
17224
17225 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17226
17227         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
17228         current domain when loaded an assembly and failed to load it.
17229
17230         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
17231
17232 2002-10-31  Dick Porter  <dick@ximian.com>
17233
17234         * icall.c: 
17235         * file-io.h: 
17236         * file-io.c: Return the error status in a parameter, as the
17237         GetLastError() value has long since been blown away if we try and
17238         look it up in a subsequent internal call invocation.  Delete the
17239         GetLastError() internal call, because it's useless.
17240
17241 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
17242
17243         * class.[ch]: added cast_class to fix bug 29517
17244
17245 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
17246
17247         * marshal.c: create valid IL code in the filter clause:
17248         the new JIT is less forgiving:-)
17249
17250 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17251
17252         * icall.c: removed get_property internal call.
17253
17254 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
17255
17256         * appdomain.h domain.c: Added an ID to appdomains.
17257         
17258         * threads.c threads.h icall.c: Implement icall
17259         Thread:GetDomainID(), and remove unused icall 
17260         CurrentThreadDomain_internal.
17261
17262 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17263
17264         * icall.c: Don't recurse through the base types in GetConstructor.
17265         Fixes bug #32063. 
17266
17267 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17268
17269         * mempool.h, mempool.c: added mono_mempool_empty() and
17270         mono_mempool_stats().
17271
17272 2002-10-23  Dick Porter  <dick@ximian.com>
17273
17274         * file-io.c: 
17275         * file-io.h: 
17276         * icall.c: Added MonoIO.GetFileType internal call
17277
17278 2002-10-17  Dick Porter  <dick@ximian.com>
17279
17280         * appdomain.c (mono_runtime_cleanup): Don't signal the async
17281         delegate semaphore before waiting for all threads to finish,
17282         because new threads can also call async delegates.  Fixes bug
17283         32004.
17284
17285         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
17286         of 3 seconds, in case another async job is queued.  (This part is
17287         needed because the bug fix reintroduced the 3s exit lag.)  This
17288         makes the mono_runtime_shutdown flag superfluous.
17289
17290 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17291
17292         * reflection.c: include ehader size in method section headers.
17293         Really check for suplicated modules entries.
17294
17295 2002-10-17  Martin Baulig  <martin@gnome.org>
17296
17297         * debug-mono-symfile.c: Added back support for locals.
17298
17299 2002-10-14  Martin Baulig  <martin@gnome.org>
17300
17301         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
17302         MONO_TYPE_VOID.
17303
17304 2002-10-14  Martin Baulig  <martin@gnome.org>
17305
17306         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
17307         mono_class_get() instead of looking in the class cache. 
17308
17309 2002-10-13  Martin Baulig  <martin@gnome.org>
17310
17311         * debug-mono-symfile.c: Set version number to 28, include the
17312         signature in method names.
17313
17314 2002-10-13  Martin Baulig  <martin@gnome.org>
17315
17316         * debug-mono-symfile.h: Set version number to 27.
17317
17318 2002-10-11  Martin Baulig  <martin@gnome.org>
17319
17320         * gc.c: Don't register/unregister NULL pointers as disappearing links.
17321
17322 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17323
17324         * metadata.c, metadata.h: added helper function to allocate signatures.
17325
17326 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17327
17328         * icall.c: added internal call to get the location of machine.config.
17329
17330 2002-10-08  Martin Baulig  <martin@gnome.org>
17331
17332         * debug-mono-symfile.c: Ignore classes with a pending init for the
17333         moment.
17334
17335 2002-10-03  Dick Porter  <dick@ximian.com>
17336
17337         * threads.c: Freebsd pthread_t is a pointer
17338
17339 2002-10-03  Dick Porter  <dick@ximian.com>
17340
17341         * socket-io.c: Implemented GetHostName_internal
17342
17343 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17344
17345         * mono-config.c:
17346         (mono_config_parse_file): don't leak the text.
17347
17348 2002-10-02  Martin Baulig  <martin@gnome.org>
17349
17350         * debug-mono-symfile.c: Added support for methods.
17351
17352 2002-10-01  Martin Baulig  <martin@gnome.org>
17353
17354         * debug-mono-symfile.c: Don't emit methods and line numbers for
17355         the dynamic symbol file, just write the type table.  We can easily
17356         have an external helper program which creates a symbol file for an
17357         IL file.        
17358
17359 2002-10-01  Dick Porter  <dick@ximian.com>
17360
17361         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
17362         Only add the handle to the cleanup array when we're about to
17363         launch the thread.  Bug 31425 deadlocked when the test was run on
17364         mono under w32.
17365
17366 2002-10-01  Martin Baulig  <martin@gnome.org>
17367
17368         * debug-mono-symfile.c: Added support for properties.
17369
17370 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17371
17372         * reflection.c: unaligned store fix from Mark Crichton
17373         <crichton@gimp.org>.
17374
17375 2002-09-27  Martin Baulig  <martin@gnome.org>
17376
17377         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
17378         New interncall.
17379
17380 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17381
17382         * assembly.h, assembly.c: use a sane API to hook into the assembly
17383         loading process instead of a useless special-purpouse hack
17384         (ngen needs a hook, too, for example).
17385
17386 2002-09-27  Dick Porter  <dick@ximian.com>
17387
17388         * threads.c (mono_thread_init): Call GetCurrentProcess() so
17389         io-layer can set up some process handle info.  Not needed on w32,
17390         but doesn't hurt either.
17391
17392         * process.c: Pass the program name in the second parameter to
17393         CreateProcess, so the path is searched.  Include the working
17394         directory. Implemented process name, process enumeration, and some
17395         process detail internal calls.
17396         
17397         * icall.c: Added internal calls for process lookup, and some
17398         process details
17399
17400 2002-09-26  Martin Baulig  <martin@gnome.org>
17401
17402         * assembly.c (mono_install_open_assembly_hook): New global
17403         function to install a function to be invoked each time a new
17404         assembly is loaded.
17405         (mono_assembly_open): Run this callback function if set.
17406
17407         * debug-mono-symfile.c: Put back line numbers for the dynamic
17408         symbol file and also record the .il file as source file.  This
17409         allows us to install the temporary symbol file as `file.dbg' just
17410         like a compiler-generated one.
17411
17412 2002-09-26  Nick Zigarovich <nick@chemlab.org>
17413
17414         * Corrected typo in gc.c (BOHEM vs BOEHM).
17415
17416 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17417
17418         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
17419         GetProperties. Also avoid calling g_slist_length in GetProperties and
17420         GetMethods.
17421
17422 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17423
17424         * reflection.c: avoid unaligned stores (bug spotted by
17425         Mark Crichton  <crichton@gimp.org>).
17426
17427 2002-09-25  Martin Baulig  <martin@gnome.org>
17428
17429         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
17430         instead of guint64 for addresses and added prologue/epilogue info.
17431
17432 2002-09-25  Martin Baulig  <martin@gnome.org>
17433
17434         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
17435         store line number info.  For the dynamic symbol file, we only need
17436         to provide the JIT generated dynamic line number info for the dynamic
17437         symbol file.
17438
17439 2002-09-25  Martin Baulig  <martin@gnome.org>
17440
17441         * debug-mono-symfile.h: Incremented version number.
17442
17443 2002-09-24  Martin Baulig  <martin@gnome.org>
17444
17445         * class.c (mono_debugger_class_init_func): New global function
17446         pointer variable.
17447         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
17448         call it.
17449
17450         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
17451         function.  This is called via the mono_debugger_class_init_func
17452         hook to add all types to the dynamic type table.
17453         (ves_icall_MonoDebugger_GetType): New interncall to get a class
17454         from its metadata token.
17455
17456         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
17457         New interncall for the debugger.
17458
17459 2002-09-24  Nick Drochak <ndrochak@gol.com>
17460
17461         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
17462         before using it in case it is null.
17463         
17464 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17465
17466         * metadata.c: allow custom modifiers in local var signatures
17467         (bug spotted by Zoltan Varga).
17468
17469 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17470
17471         * class.c: deal with the <Module> class that may have a NULL vtable.
17472         Eliminate warnings.
17473
17474 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17475
17476         * image.c, image.h: more strong name helpers.
17477         * monosn.c: more work: convert pem keys to cryptoapi format.
17478
17479 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17480
17481         * string-icalls.c: speedup IndexOf.
17482
17483 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17484
17485         * icall.c: updates from Zoltan.2.Varga@nokia.com.
17486
17487 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17488
17489         * icall.c: cleanup: use mono_object_domain ().
17490
17491 2002-09-23  Martin Baulig  <martin@gnome.org>
17492
17493         * debug-mono-symfile.c: Improved type support.
17494
17495 2002-09-22  Martin Baulig  <martin@gnome.org>
17496
17497         * debug-mono-symfile.c: Added support for reference types and strings.
17498
17499 2002-09-22  Martin Baulig  <martin@gnome.org>
17500
17501         * debug-mono-symfile.c: Started to work on the type table.
17502
17503 2002-09-21  Martin Baulig  <martin@gnome.org>
17504
17505         * debug-mono-symfile.c: Largely reworked the symbol table format.
17506         The symbol table is now incrementally updated each time a new
17507         method is added.  We're now also using our own magic and version
17508         so that you don't need to recompile all your classes if the
17509         dynamic table changes.
17510         (mono_debug_update_mono_symbol_file): Removed.
17511         (mono_debug_symfile_add_method): New function to add a method.
17512
17513 2002-09-21  Martin Baulig  <martin@gnome.org>
17514
17515         * icall.c
17516         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
17517         New interncall.
17518
17519         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
17520         New interncall to get a method from its metadata token.
17521
17522 2002-09-21  Martin Baulig  <martin@gnome.org>
17523
17524         * debug-mono-symfile.c: Create type table.
17525
17526 2002-09-20  Martin Baulig  <martin@gnome.org>
17527
17528         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
17529
17530 2002-09-20  Martin Baulig  <martin@gnome.org>
17531
17532         * debug-mono-symfile.c: Provide information about params and locals.
17533
17534 2002-09-20  Martin Baulig  <martin@gnome.org>
17535
17536         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
17537         New interncall.
17538
17539         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
17540         interncall to get a method from its metadata token.
17541
17542 2002-09-20  Martin Baulig  <martin@gnome.org>
17543
17544         * debug-mono-symfile.c: Added a few checks for method->header
17545         being non-NULL.  This should never happen, but for the moment
17546         let's use a g_warning() rather than a g_assert().
17547
17548 2002-09-19  Mark Crichton  <crichton@gimp.org>
17549
17550         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
17551         even if support for it isn't present.  Added an #ifdef to fix this.
17552
17553         * socket-io.c: Added checks back for Solaris support.
17554
17555 2002-09-19  Martin Baulig  <martin@gnome.org>
17556
17557         * debug-mono-symfile.c (read_string, write_string): Reflect latest
17558         changes in the symbol file format.
17559
17560 2002-09-18  Martin Baulig  <martin@gnome.org>
17561
17562         * debug-mono-symfile.c: Set version number to 21.
17563
17564 2002-09-18  Dick Porter  <dick@ximian.com>
17565
17566         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
17567         on netbsd.  Fixes bug 30051.
17568
17569 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17570
17571         * reflection.c:
17572         (set_version_from_string): little fix.
17573
17574 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17575
17576         * monosn.c, Makefile.am: added strong name utility.
17577         * reflection.h, reflection.c: implemented delayed signing,
17578         locale, version and hash id assembly attributes.
17579
17580 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17581
17582         * loader.c, metadata.c: load param attributes in signatures.
17583
17584 2002-09-16  Martin Baulig  <martin@gnome.org>
17585
17586         * debug-mono-symfile.c: Added string table with all method names.
17587
17588 2002-09-14  Martin Baulig  <martin@gnome.org>
17589
17590         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
17591         fast method lookup.
17592
17593 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17594
17595         * reflection.c: record the public key token of referenced assemblies.
17596
17597 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17598
17599         * image.c, image.h: added functions to get the strong name and the
17600         public key of an assembly.
17601         * pedump.c: use them.
17602
17603 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
17604
17605         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
17606
17607 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
17608
17609         * marshal.c (mono_marshal_get_managed_wrapper): Added
17610         MONO_TYPE_BOOLEAN 
17611
17612 2002-09-11  Martin Baulig  <martin@gnome.org>
17613
17614         * gc.c: Call GC_unregister_disappearing_link() on all links when
17615         finalizing them, this is necessary to aviod a crash in boehm's
17616         finalize handler.
17617
17618 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17619
17620         * gc.c: handle GetTarget for finalized objects spotted and fixed by
17621         nick@chemlab.org.
17622
17623 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
17624
17625         * icall.c: implemented MonoType::Module.
17626         * reflection.c, reflection.h: mono_module_get_object () from
17627         Tomi Pakarinen <tomi.pakarinen@welho.com>.
17628
17629 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17630
17631         * icall.c: ignore overridden methods in GetMethods ().
17632         Fix for FieldInfo::SetValue().
17633         * object.c: handle float/double in runtime invoke.
17634
17635 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17636
17637         * object.c: allow a constructor to be called again on an object.
17638
17639 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17640
17641         * class.h, class.c: move field layout code to it's own function and
17642         export it. Get an interface id earlier. Move fields in MonoClass
17643         so they are more cache friendly and align the bitfields.
17644         * loader.c: temporary handle get_param_names() for a runtime method.
17645         * reflection.c, reflection.h: more code to handle runtime creation of
17646         types.
17647
17648 2002-09-09  Martin Baulig  <martin@gnome.org>
17649
17650         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
17651         signature with the pinvoke field being set for the actual call.
17652
17653 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17654
17655         * icall.c: removed some unused icalls. Start of map of glib charsets
17656         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
17657
17658 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17659
17660         * debug-helpers.c: break infinite loop (found and fixed by
17661         Holger Arnold <harnold@gmx.de>).
17662
17663 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17664
17665         * icall.c: target may be null in create_delegate.
17666
17667 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17668
17669         * marshal.c: handle a boolean return type.
17670
17671 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17672
17673         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
17674
17675 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17676
17677         * gc.c: fix weakreferences.
17678
17679 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17680
17681         * icall.c: added icall to get default codepage.
17682
17683 2002-09-03  Dick Porter  <dick@ximian.com>
17684
17685         * threads.h: 
17686         * threads.c: Use MonoThread instead of MonoObject where
17687         apropriate.
17688
17689         Store running thread objects in a hash table, so that we have all
17690         the info to hand when waiting for them to finish
17691         (means we don't need OpenThread() any more, so mingw builds should
17692         be fully functional again.)
17693
17694         * verify.c:
17695         * object.h: Added thread ID to MonoThread
17696
17697 2002-09-03  Martin Baulig  <martin@gnome.org>
17698
17699         * icall.c (System.Reflection.Assembly::get_location): New interncall.
17700
17701 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17702
17703         * icall.c: fixed leak in get_temp_path. Thanks lupus.
17704
17705 2002-09-03  Martin Baulig  <martin@gnome.org>
17706
17707         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
17708         argument to store the end address of the disassembled instruction.
17709
17710         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
17711         here from debug-symfile.h.
17712         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
17713         JIT into this struct.
17714         (MonoSymbolFile): Added `char *image_file' field.
17715         (MonoDebugGetMethodFunc): Removed.
17716         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
17717         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
17718         (mono_debug_find_method): New method.
17719
17720         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
17721         create a full symbol file.
17722         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
17723         and static symbol files.
17724         (mono_debug_find_method): The symbol file keeps an internal method hash,
17725         call this to get a MonoDebugMethodInfo from a MonoMethod.
17726
17727         * debug-symfile.[ch]: Removed.
17728
17729 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
17730
17731         * image.c (do_mono_image_open): Remove linker version check.
17732
17733 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
17734
17735         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
17736         wrappers for instance methods.
17737         
17738 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17739
17740         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
17741
17742 2002-08-28  Dick Porter  <dick@ximian.com>
17743
17744         * Makefile.am: Export HOST_CC for w32 builds
17745
17746 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17747
17748         * file-io.c process.c: MonoString are null terminated, no
17749         need for mono_string_to_utf16() anymore.
17750
17751 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17752
17753         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
17754
17755 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
17756
17757         * icall.c, reflection.h: speedup System.MonoType.
17758
17759 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17760
17761         * reflection.c: allow null as the value of a string argument in
17762         custom attributes constructors.
17763
17764 2002-08-27  Martin Baulig  <martin@gnome.org>
17765
17766         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
17767         `trampoline_address' field.
17768
17769 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
17770
17771         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
17772         check (fixes bug #29486) 
17773
17774 2002-08-27  Martin Baulig  <martin@gnome.org>
17775
17776         * debug-mono-symfile.c: Changed the file format in a way that allows us
17777         open it read-only and to use a specially malloced area for all the
17778         dynamic data.  We can now also generate a symbol file on-the-fly if we're
17779         debugging IL code and there is no MCS generated symbol file for it.
17780
17781 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17782
17783         * object.c: added a define for a good string and array
17784         creation speedup (not enabled by default because we need to deal with
17785         the synch stuff).
17786
17787 2002-08-26  Martin Baulig  <martin@gnome.org>
17788
17789         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
17790         function to create a dynamic symbol file.  This is used by the
17791         debugger to create a symbol file for IL code on-the-fly.
17792
17793 2002-08-26  Martin Baulig  <martin@gnome.org>
17794
17795         * loader.c (mono_lookup_pinvoke_call): Include the error message
17796         from g_module_error() in the error message.
17797
17798 2002-08-24  Martin Baulig  <martin@gnome.org>
17799
17800         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
17801         function to update the symbol file.  The symbol file is mmap()ed
17802         writable, but private.  This allows us to install the symbol file
17803         together with the assembly.
17804
17805 2002-08-24  Martin Baulig  <martin@gnome.org>
17806
17807         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
17808         but they can read the new symbol file format which mcs is now creating.
17809
17810         * debug-symfile.c (mono_debug_find_source_location): Moved to
17811         debug-mono-symfile.c; this is now operating on the new symbol file.
17812
17813 2002-08-23  Martin Baulig  <martin@gnome.org>
17814
17815         * debug-helpers.c (mono_method_desc_from_method): New function to get
17816         a MonoMethodDesc from a MonoMethod.
17817
17818 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17819
17820         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
17821         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
17822
17823 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17824
17825         * string-icalls.[ch]: make helper methods static.
17826
17827 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17828
17829         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
17830         types to it and to SetValueInternal.
17831
17832         * object.c: Moved handle_enum label to its proper place. This was the
17833         f... bug! ;-)
17834
17835         This time i compiled mcs and gtk-sharp and they both work.
17836
17837 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17838
17839         * icall.c: reverted partially my previous patch until 
17840         object.c:set_value handles enums correcly.
17841
17842 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17843
17844         * icall.c:
17845         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
17846         (ves_icall_System_Environment_get_MachineName): removed warning when
17847         compiling under cygwin.
17848
17849 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17850
17851         * object.c: fixed field_get_value() for reference types.
17852
17853 2002-08-22  Dick Porter  <dick@ximian.com>
17854
17855         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
17856         Don't free a buffer while it's still needed.  Patch from Jonathan
17857         Liger <Jonathan.liger@wanadoo.fr>
17858
17859 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
17860
17861         * icall.c (ves_icall_System_Environment_get_Platform): Add new
17862         internal call.
17863
17864 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
17865
17866         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
17867         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
17868
17869         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
17870         we call unmanaged code which throws exceptions.
17871
17872 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17873
17874         * appdomain.h: added per-domain entry_assembly.
17875         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
17876         arguments.
17877         * icall.c: Assembly::GetEntryAssembly icall.
17878         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
17879         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
17880
17881 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17882
17883         * appdomain.h, gc.c: added mono_domain_finalize ().
17884
17885 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17886
17887         * object.c:
17888         (mono_print_unhandled_exception): changed g_warning by g_printerr
17889         because g_log has a 1024 characters limit (yeah, i got a big stack
17890         trace). Don't print exception name, that should be in ToString 
17891         returned string.
17892
17893 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17894
17895         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
17896         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
17897
17898 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17899
17900         * object.c:
17901         (mono_print_unhandled_exception): after previous commit, i realized
17902         that MS calls ToString on the exception. I changed this function to
17903         do that. This way we get stack_trace for free.
17904
17905 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17906
17907         * object.c:
17908         (mono_print_unhandled_exception): invoke Message property instead of
17909         getting 'message' field from Exception. Don't allocate memory for
17910         'trace' and 'message' if not needed.
17911
17912 2002-08-18  Dick Porter  <dick@ximian.com>
17913
17914         * unicode.c: Fix asserts to match Encoder.cs checks
17915
17916 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17917
17918         * marshal.c: fix unaligned store issue and a few wrong
17919         opcode argument types.
17920
17921 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17922
17923         * icall.c: added GetUninitializedObjectInternal internal call.
17924
17925 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
17926
17927         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
17928         to the right domain.
17929
17930 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
17931
17932         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
17933
17934         * class.c (class_compute_field_layout): set blittable to false for Strings
17935
17936         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
17937
17938 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17939
17940         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
17941         first chunk of code to create types at runtime. Code to
17942         handle ReflectedType/DeclaringType. Make reflection handles
17943         domain specific.
17944
17945 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17946
17947         * class.c: set correct name in arrays.
17948
17949 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
17950
17951         * appdomain.c (mono_domain_transfer_object): make it work with
17952         valuetypes. bug fixes.
17953
17954 2002-08-12  Dick Porter  <dick@ximian.com>
17955
17956         * object.h: Rename some parameters to avoid c++ keywords (Patch
17957         from Joseph Wenninger <kde@jowenn.at>)
17958
17959 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
17960
17961         * icall.c: added icall to implement Assembly.GetFile*.
17962
17963 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
17964
17965         * reflection.h, reflection.c: code to embed managed resources.
17966
17967 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17968
17969         * class.c: move all the type size stuff into
17970         class_compute_field_layout().
17971
17972 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17973
17974         * class.c: ensure enums have always the correct instance size.
17975         * unicode.c: remove wrong assert.
17976
17977 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17978
17979         * assembly.c: fix mem corruption issue.
17980         * image.h, image.c: added mono_image_get_resource () to access
17981         managed resources.
17982         * icall.c: implemented Assembly.EntryPoint property and some
17983         Managed Resources related internalcalls.
17984
17985
17986 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17987
17988         * image.c, image.h: impemented mono_image_get_entry_point ().
17989         * appdomain.c: use mono_image_get_entry_point.
17990
17991 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
17992
17993         * reflection.c: support the object type argument when loading
17994         custom attributes.
17995
17996 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
17997
17998         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
17999         String as return type.
18000
18001 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
18002
18003         * reflection.c: fix encoding of named args for custom attrs to match
18004         the ms implementation. Read them back when instantiating custom
18005         attributes.
18006
18007 2002-08-02  Radek Doulik  <rodo@ximian.com>
18008
18009         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
18010         by Dietmar as quick fix
18011         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
18012         16 as stack size, used on more places as quick fix before Dietmar
18013         will fix it properly
18014
18015 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18016
18017         * object.h, object.c: added accessors for fields and properties.
18018
18019 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18020
18021         * class.c, class.h: made mono_class_get_field_from_name ()
18022         loop on parent types.
18023         Added mono_class_get_property_from_name ().
18024
18025 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18026
18027         * class.c, class.h: move the code to setup the type vtable in its own
18028         function so that it can be reused also for types created at runtime.
18029         Eliminate the "class" identifier from the header file.
18030         * reflection.c: setup the vtable for enums so that we can create
18031         objects for use in SetConstant ().
18032
18033 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
18034
18035         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
18036         instead of the delegate itself as this pointer (bug #28383)
18037
18038 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
18039
18040         * marshal.c (mono_marshal_get_managed_wrapper): added return type
18041         conversions.
18042
18043 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18044
18045         * loader.c: don't set the pinvoke bit on icalls.
18046
18047 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
18048
18049         * debug-helpers.c (mono_method_full_name): only print a number to
18050         indicate wrapper type (so that the output is more readable in traces).
18051
18052 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
18053
18054         * class.c (mono_class_init): include method override patch from Paolo
18055
18056 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
18057
18058         * icall.c: fixed GetTypeCode().
18059
18060 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
18061
18062         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
18063         use real delegate invoke function to make it work with multicast
18064         delegates (fix bug# 28291).
18065
18066 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18067
18068         * object.c: load constant strings.
18069
18070 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18071
18072         * reflection.c: no magic numbers.
18073         * tabledefs.h: security action enum.
18074
18075 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18076
18077         * assembly.c: fix possible memory corruption.
18078
18079 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18080
18081         * reflection.h, reflection.c: added support for linking resources.
18082         * verify.c: check we have an updated corlib.
18083
18084 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
18085
18086         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
18087         string arrays.
18088         (mono_marshal_string_array): null terminate unmanaged string arrays.
18089         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
18090
18091 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18092
18093         * icall.c: Type.GetType () can now return also types from the
18094         calling assembly.
18095
18096 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18097
18098         * loader.h, loader.c: stack walking support.
18099         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
18100         GetCallingAssembly.
18101
18102 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
18103
18104         * marshal.c: added optimisations for blittable types 
18105
18106         * class.c (mono_array_class_get): do not set blittable attribute on arrays
18107         (mono_class_setup_mono_type): set blittable attribute for single
18108         and double.
18109
18110         * marshal.c (mono_string_utf8_to_builder): impl.
18111         (mono_string_builder_to_utf8): impl.
18112         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
18113
18114 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
18115
18116         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
18117         (mono_marshal_get_managed_wrapper): impl. byref types
18118
18119 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18120
18121         * icall.c:
18122         (search_method): don't display debug message. 
18123
18124 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18125
18126         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
18127
18128 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
18129
18130         * appdomain.c: set the missing filename when throwing exception.
18131
18132 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
18133
18134         * metadata.c (mono_type_size): code cleanup
18135         (mono_type_stack_size): removed some test code
18136
18137 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
18138
18139         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
18140         mono_get_exception_file_not_found now.
18141
18142         * exception.c (mono_exception_from_name_two_strings): New version
18143         that will call a constructor with two string arguments. 
18144         (mono_get_exception_file_not_found): New helper routine, used to
18145         report file-not-found errors.
18146
18147 2002-07-20  Dick Porter  <dick@ximian.com>
18148
18149         * process.h:
18150         * process.c: Pass file handles to CreateProcess
18151         
18152         * icall.c:
18153         * file-io.h:
18154         * file-io.c: Implemented CreatePipe
18155
18156 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18157
18158         * metadata.c (mono_get_param_info): set alignment for value types
18159
18160 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18161
18162         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
18163         Constify mono_domain_assembly_open().
18164         * loader.c: handle null namespace in icalls.
18165
18166 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
18167
18168         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
18169         (emit_str_to_ptr_conv): marshal object as structs
18170
18171         * metadata.c (mono_type_to_unmanaged): marshal object as structs
18172
18173         * marshal.c (mono_marshal_get_runtime_invoke): support value types
18174
18175 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
18176
18177         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
18178         (mono_marshal_get_native_wrapper): we an now return value types
18179
18180 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18181
18182         * verify.c: more checks implemented.
18183
18184 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
18185
18186         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
18187         (fix bug #27695)
18188         (mono_marshal_get_native_wrapper): allow byref arguments
18189         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
18190         impl. PtrToStringXXX methods
18191         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
18192         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
18193         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
18194         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
18195         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
18196
18197 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18198
18199         * reflection.c: fix buglet in parsing an assembly name.
18200
18201 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18202
18203         * marshal.c (emit_ptr_to_str_conv): first impl.
18204
18205 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18206
18207         * object.c, class.h: cache the vtable in the class as suggested by
18208         vargaz@freemail.hu (Zoltan Varga).
18209
18210 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18211
18212         * class.h, loader.c: added mono_field_from_token().
18213         * verify.c: first cut of type checking code.
18214
18215 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
18216
18217         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
18218
18219 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
18220
18221         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
18222         (fix bug #27782)
18223         (mono_marshal_get_remoting_invoke): impl.
18224         (mono_delegate_begin_invoke): impl.
18225         (mono_mb_emit_save_args): impl.
18226         (mono_delegate_end_invoke): impl.
18227         (mono_marshal_get_delegate_begin_invoke):
18228         (mono_marshal_get_delegate_end_invoke):
18229         (mono_marshal_get_delegate_invoke): generate a special name for
18230         those methods (including the signature) and associate them whith
18231         the delegate class. 
18232
18233 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
18234
18235         * reflection.[ch]: 
18236         (mono_reflection_type_from_name): now it has a MonoImage parameter
18237         which is used as the default image to search the type in. If the image
18238         is NULL or getting the type from it fails, it defaults to corlib.
18239
18240         * icall.c: changed 1 call to mono_reflection_type_from_name to match
18241         new parameter.
18242
18243 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18244
18245         * reflection.c: update the parameter table index.
18246
18247 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18248
18249         * domain.c: don't include the mark byte in the string hash.
18250
18251 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18252
18253         * icall.cs: icall for Type.GetTypeCode ().
18254         * verify: a couple of fixes and disabled local initialization checks.
18255
18256 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
18257
18258         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
18259
18260         * debug-helpers.c (mono_method_full_name): print the type of the
18261         runtime wrapper
18262
18263         * metadata.c (mono_signature_hash): a hash function for signatures
18264         (mono_signature_hash): better hash algorithm
18265
18266         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
18267
18268         * debug-helpers.c (mono_method_full_name): this can now generate
18269         method names with signatures
18270
18271         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
18272         method dont have this pointers.
18273
18274 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
18275
18276         * reflection.c: fixup typebuilder tokens.
18277         * image.c: fix buglet.
18278         * marshal.h: remove whitespace.
18279         * metadata.h, metadata.c: reinstate code that was removed.
18280         * verify.c: handle catch directives and fix another couple of bugs.
18281
18282 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
18283
18284         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
18285         (mono_marshal_get_native_wrapper): make it comp. with the old code
18286         (mono_marshal_get_native_wrapper): support boolean
18287         (mono_marshal_get_managed_wrapper): support more types
18288
18289 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
18290
18291         * class.c (class_compute_field_layout): compute class->blittable attribute.
18292
18293 2002-07-09  Dick Porter  <dick@ximian.com>
18294
18295         * threads.c: Make the thread cleaning up cope with threads that
18296         call ExitThread()
18297
18298 2002-07-08  Radek Doulik  <rodo@ximian.com>
18299
18300         * reflection.c (method_encode_code): use non-translated values to
18301         compute finally_start, this fixes exception handling on ppc, yay!
18302
18303         * decimal.h (struct signscale): fix endianess
18304
18305 2002-07-07  Radek Doulik  <rodo@ximian.com>
18306
18307         * reflection.c: swap box_val and not val
18308
18309 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18310
18311         * reflection.c, reflection.h: handle full assembly info in type name.
18312         Handle Type arguments when loading custom attributes.
18313         * icall.c: updated to use new mono_reflection_type_from_name () method.
18314
18315 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18316
18317         * loader.c:
18318         (method_from_memberref): also print assembly name when method not found.
18319
18320 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18321
18322         * icall.c:
18323         (ves_icall_TypeGetProperties): fixed bug #27473. 
18324
18325 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18326
18327         * reflection.c: display image name and token when cannot find the
18328         .ctor for an attribute.
18329
18330 2002-07-05  Martin Baulig  <martin@gnome.org>
18331
18332         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18333
18334 2002-07-04  Dick Porter  <dick@ximian.com>
18335
18336         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
18337         compile on mingw.  This will cause mingw builds to not wait for
18338         subthreads to terminate after the main thread does.  I've lodged a
18339         bug with the mingw developers for them to wrap OpenThread().
18340
18341 2002-07-03  Dick Porter  <dick@ximian.com>
18342
18343         * threads.c: Store thread IDs instead of handles, because
18344         GetCurrentThread() returns a pseudohandle and therefore stores
18345         useless values.  mono_thread_cleanup() continues checking the
18346         array of threads until it is empty, to cope with subthreads
18347         spawning new threads after the main thread has finished.
18348
18349         * profiler.h:
18350         * profiler.c:
18351         * profiler-private.h: Pass the thread ID to thread profiler
18352         functions, instead of a handle
18353
18354 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18355
18356         * verify.c: fixes to make it more usable.
18357         * pedump.c: added --verify code to verify IL code in an assembly.
18358
18359 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18360
18361         * reflection.c: turn errors into warnings to allow compiling corlib.
18362
18363 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18364
18365         * reflection.c: add special cases to compile corlib.
18366
18367 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18368
18369         * reflection.c: handle properties with only a set method.
18370
18371 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18372
18373         * opcodes.h: add enum with opcodes in opval order.
18374
18375 2002-07-01  Dick Porter  <dick@ximian.com>
18376         
18377         * object.h:
18378         * object.c (mono_runtime_run_main): Removed unneeded argument
18379
18380 2002-06-28  Martin Baulig  <martin@gnome.org>
18381
18382         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
18383
18384 2002-06-27  Dick Porter  <dick@ximian.com>
18385
18386         * threads.c: Store the handle in both the parent thread and in the
18387         subthread, to minimise the time between starting a new thread and
18388         storing its ID.
18389
18390 2002-06-26  Dick Porter  <dick@ximian.com>
18391
18392         * appdomain.c (mono_runtime_cleanup): Close the socket library
18393         after all the threads have finished, not before
18394
18395 2002-06-26  Martin Baulig  <martin@gnome.org>
18396
18397         * debug-symfile.c (mono_debug_find_source_location): Added
18398         `guint32 *line_number' argument.  If it's not NULL, store the line number
18399         there and return the file name without the line number.
18400
18401 2002-06-25  Dick Porter  <dick@ximian.com>
18402
18403         * icall.c:
18404         * process.h:
18405         * process.c: Process forking and other support functions
18406
18407 2002-06-25  Dick Porter  <dick@ximian.com>
18408
18409         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
18410         things dont happen when the image is closed.
18411         (mono_image_lookup_resource): Walk the resource section looking
18412         for a particular entry
18413
18414         * cil-coff.h: PE resource section decoding
18415
18416 2002-06-25  Dick Porter  <dick@ximian.com>
18417         
18418         * assembly.h:
18419         * assembly.c: 
18420         (mono_assembly_foreach): Accessor functions to walk the list of
18421         loaded assemblies
18422         (mono_assembly_set_main):
18423         (mono_assembly_get_main): Process methods need to know which
18424         assembly is the "main" one
18425
18426         * object.c (mono_runtime_run_main): Record the main assembly
18427
18428         * debug-helpers.c: Fix typo
18429
18430 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
18431
18432         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
18433         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
18434
18435 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18436
18437         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
18438
18439 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
18440
18441         * image.c (do_mono_image_open): Initialize reference count,
18442         otherwise we leak the MonoImage.
18443
18444 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18445
18446         * reflection.c: small tweak to handle self-hosting.
18447
18448 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18449
18450         * reflection.c: fix type name parse code.
18451
18452 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18453
18454         * reflection.c: break out of the loop.
18455         * image.c: special case corlib.
18456
18457 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18458
18459         * reflection.c: add all the custom attrs at the end to ensure the
18460         ctors have been properly initialized when the attributes are defined
18461         in the current assembly.
18462
18463 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18464
18465         * reflection.c: handle correctly multiple-nested types.
18466
18467 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18468
18469         * row-indexes.h: fix typos.
18470         * reflection.c: adjust for typos and fix method_def_or_ref
18471         encoding in MethodImpl table.
18472
18473 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18474
18475         * reflection.c: fix entry point patching (thanks Serge!).
18476
18477 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
18478
18479         * verify.c: add check for System.Exception
18480
18481 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
18482
18483         * image.c, class.c: minifix for code just c&p'ed.
18484         * reflection.c: warning fix.
18485         * object.h, loader.h, domain.c: load also StringBuilder.
18486
18487 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18488
18489         * marshal.h, marshal.c: some support code to handle complex marshaling.
18490
18491 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18492
18493         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
18494         Better signatures with vtable error dump.
18495
18496 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
18497
18498         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
18499
18500 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
18501
18502         * icall.c (ves_icall_Type_GetField): impl.
18503
18504 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18505
18506         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
18507         to retrieve a marshal description blob for a field or param.
18508
18509 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18510
18511         * reflection.h, reflection.c: change order of nested type emission
18512         to avoid table corruption. The NestedTypes table is sorted.
18513         * icall.c: change order of GetConstructor results to workaround mcs bug.
18514
18515 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18516
18517         * reflection.h, reflection.c: handle field and param marshal
18518         information.
18519
18520 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18521
18522         * icall.c, marshal.c marshal.h: more Marshal class implementation.
18523
18524 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18525
18526         * reflection.c: fix call convention.
18527
18528 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18529
18530         * reflection.h, reflection.c: mono_image_get_memberref_token()
18531         takes a type instead of a class, now. Added
18532         mono_image_get_array_token() to create tokens for the special
18533         multi-dim array methods.
18534
18535 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18536
18537         * assembly.c: handle modules (no assembly table). Split
18538         loading references in its own function.
18539         * class.c: handle moduleref resolution scope.
18540         * image.c, image.h: cache module name in image.
18541
18542 2002-06-07  Martin Baulig  <martin@gnome.org>
18543
18544         * reflection.c (mono_image_get_type_info): Only add a class layout entry
18545         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
18546
18547 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18548
18549         * icall.c: more signature fixes that used uint instead of int.
18550
18551 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18552
18553         * reflection.c: fixed signature of field refs.
18554
18555 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18556
18557         * class.c, reflection.c: handle typerefs of nested types
18558         (both on read and when writing files).
18559
18560 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18561
18562         * icall.c: fix method signatures that tried to workaround the previous
18563         typo, d'oh!
18564
18565 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
18566
18567         * debug-helpers.c: fix typo.
18568
18569 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18570
18571         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
18572         rewrote the PE/COFF writing code (our programs are understood by the
18573         ms runtime, now).
18574
18575 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18576
18577         * gc.c, gc.h, icall.c: weakreference support.
18578
18579 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18580
18581         * Makefile.am, mono-config.c: use $(sysconfdir).
18582
18583 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18584
18585         * icall.c: changed default precision of Double.ToString() to 15.
18586         Fixed memory leak. Unified with Single.ToString.
18587
18588 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18589
18590         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
18591
18592 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18593
18594         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
18595         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
18596         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
18597         and myself.
18598
18599 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18600
18601         * debug-symfile.c, sysmath.c: yet more compilation fixes.
18602
18603 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18604
18605         * reflection.c, socket-io.c: more compilation fixes.
18606
18607 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18608
18609         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
18610         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
18611         unicode.c: warning and compiler compatibility fixes.
18612
18613 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18614
18615         * class.h, metadata.c: fixed warnings/compilation errors.
18616
18617 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
18618
18619         * Makefile.am, mono-config.c, mono-config.h: configuration file
18620         support routines.
18621         * loader.c, loader.h: make Dll mapping configurable at runtime in the
18622         config file. Export methods to insert and lookup mappings.
18623
18624 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18625
18626         * reflection.c: handle types and boxed objects in custom attr
18627         constructors.
18628
18629 2002-05-30  Martin Baulig  <martin@gnome.org>
18630
18631         * debug-symfile.c
18632         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
18633
18634 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
18635
18636         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
18637         to lookup the implmap row for a P/Invoke method.
18638         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
18639         P/Invoke method from the runtime on an as needed basis.
18640
18641 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
18642
18643         * metadata.c (mono_metadata_parse_signature): impl.
18644
18645 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18646
18647         * class.c: handle .pack directive.
18648
18649 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18650
18651         * object.c: initialize static fields with RVA data.
18652
18653 2002-05-25  Martin Baulig  <martin@gnome.org>
18654
18655         * debug-symfile.c
18656         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
18657
18658 2002-05-24  Martin Baulig  <martin@gnome.org>
18659
18660         * debug-symfile.c
18661         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
18662         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
18663         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
18664
18665 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18666
18667         * object.c: special case string ctros in invoke.
18668         * gc.c: silly whitespace changes.
18669
18670 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
18671
18672         * threadpool.[ch]: impl. a threadpool that can
18673         be used by mint and mono.
18674
18675 2002-05-22  Martin Baulig  <martin@gnome.org>
18676
18677         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
18678         The first argument is now a `MonoReflectionModuleBuilder *', the return
18679         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
18680         `methods' field to get the method builder.  The `token' argument is the
18681         unfixed token.
18682
18683         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
18684         invalid characters instead of g_assert_not_reached()ing.  This seems
18685         to be the behaviour of mscorlib.
18686
18687 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
18688
18689         * object.c (mono_runtime_invoke_array): applied patch from Rachel
18690         Hestilow to fix bug #25104
18691
18692 2002-05-21  Martin Baulig  <martin@gnome.org>
18693
18694         * debug-symfile.c (mono_debug_find_source_location): New function.
18695         Looks up an IL offset in the line number table and returns the source
18696         location as a string.
18697
18698 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18699
18700         * icall.c:
18701         (mono_double_ToStringImpl): changed %f by %g until we have something
18702         better.
18703
18704 2002-05-21  Nick Drochak  <ndrochak@gol.com>
18705
18706         * icall.c : Use different name for Math.Pow's icall.  Needed to check
18707         parameters first in C#.
18708
18709 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18710
18711         * icall.c, reflection.h: added icall to get info about an event.
18712
18713 2002-05-20  Radek Doulik  <rodo@ximian.com>
18714
18715         * object.c (mono_value_box): don't use memcpy for boxing on BIG
18716         endian
18717         (mono_value_box): don't use memcpy for small sizes on
18718         architectures with unaligned access
18719
18720 2002-05-20  Martin Baulig  <martin@gnome.org>
18721
18722         * reflection.c (mono_reflection_setup_internal_class): Don't crash
18723         if `tb->parent == NULL'.
18724         (mono_reflection_create_internal_class): New function.  This is
18725         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
18726         for enum types.
18727
18728         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
18729         New interncall.
18730
18731 2002-05-19  Martin Baulig  <martin@gnome.org>
18732
18733         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
18734         argument to get the length, don't default to the array length.
18735
18736 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
18737
18738         * assembly.c (mono_assembly_setrootdir): New function used to
18739         override the MONO_ASSEMBLIES directory.
18740
18741 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18742
18743         * icall.c: ValueType_GetHashCode() initialize local var.
18744
18745 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
18746
18747         * reflection.c: sort custom attributes table.
18748
18749 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18750
18751         * reflection.c: support named args in custom attributes (write support).
18752
18753 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
18754
18755         * reflection.c: fix finally position calculation.
18756
18757 2002-05-15  Radek Doulik  <rodo@ximian.com>
18758
18759         * reflection.c: fixed endianess at many places
18760
18761         * icall.c (ves_icall_InitializeArray): comment out debug msg
18762
18763 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
18764
18765         * object.c (mono_unhandled_exception): new function to handle
18766         unhandled exceptions.
18767         (mono_unhandled_exception): call the UnhandledException event.
18768         (mono_runtime_delegate_invoke): impl.
18769
18770 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
18771
18772         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
18773         returns the RVA, not the direct pointer to the data. Handle the case
18774         when the class size is fixed.
18775
18776 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18777
18778         * reflection.c: fix some endianess issues.
18779
18780 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
18781
18782         * object.c (mono_runtime_invoke): is now able to catch exceptions.
18783
18784         * threads.c (mono_thread_init): added a callback which is invoked
18785         at thread start.
18786
18787 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18788         
18789         * icall.c: make GetHashCode return non-negative values.
18790
18791 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
18792
18793         * object.c, icall.c, gc.c: revert to address-based hashcode.
18794
18795 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
18796
18797         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
18798
18799 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
18800
18801         * icall.c, class.c: special case <Module>.
18802
18803 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
18804
18805         * icall.c: fix bug in GetNow().
18806
18807 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
18808
18809         * object.c (mono_runtime_class_init): make sure that we call all
18810         static class constructors.
18811
18812 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18813
18814         * reflection.c: sort methodsemantics table.
18815
18816 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18817
18818         * reflection.h, reflection.c: honour init locals setting.
18819
18820 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
18821
18822         * icall.c: copied Double ToStringImpl for Single ToStringImpl
18823
18824 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18825
18826         * reflection.c: support ContructorBuilders in attribute blob creation.
18827
18828 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
18829
18830         * reflection.c: some changes to build a binary that can be run
18831         directly in windows.
18832
18833 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
18834
18835         * loader.c: print a big message when an icall can't be found.
18836
18837 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18838
18839         * string-icalls.c: fix bug 24248.
18840
18841 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18842
18843         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
18844         icall.c, reflection.h: separate assembly loading by pathname and by
18845         assembly name. Use the MONO_PATH env var to search for assemblies.
18846
18847 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
18848
18849         * assembly.c, image.h: add some support for assemblies
18850         with multiple modules.
18851         * class.c, class.h: export mono_class_from_typeref().
18852         * loader.c: remove duplicated code and use mono_class_from_typeref(),
18853         instead.
18854
18855 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18856
18857         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
18858         documentation says (the ECMA one is correct).
18859
18860 2002-05-02  Dick Porter  <dick@ximian.com>
18861
18862         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18863         Don't name the synchronisation mutex.
18864
18865 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
18866
18867         * rand.c
18868         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
18869         Make the prototypes match.
18870         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
18871         Same.
18872
18873         * icall.c
18874         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
18875         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
18876         all systems have tm.tm_zone, so use strftime() with %Z to print
18877         the timezone abreviation into a temp string.
18878
18879         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
18880         rather than mono_array_addr() on a MonoString on Big Endian
18881         machines.
18882
18883 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
18884
18885         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
18886         fix bug 24041
18887
18888 2002-04-30  Dick Porter  <dick@ximian.com>
18889
18890         * socket-io.c: Cope with SOCKET being an integer rather than a
18891         pointer now.
18892
18893         * threads.c: Added Thread_free_internal, to deal with thread
18894         handle cleanup.  Moved calls to handle_store() and handle_remove()
18895         to start_wrapper(), so each can only be called once.  Allocate
18896         synchronisation blocks with GC_malloc(), and use GC finalisation
18897         to close the handles.
18898
18899         * icall.c: added System.Threading.Thread::Thread_free_internal
18900
18901 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18902
18903         * icall.c: support Environment.Exit, CommandLineArgs().
18904
18905 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18906
18907         * object.c, object.h: added mono_runtime_run_main () and
18908         mono_runtime_get_main_args () for use in System.Environment.
18909
18910 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18911
18912         * gc.c: fix thinko, enable actual finalization since the jit is now
18913         fixed.
18914
18915 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
18916
18917         * gc.c, object.c: take into account that an object may be offset wrt the address
18918         returned by GC_malloc().
18919
18920 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18921
18922         * image.c: handle files without entries in the assembly table (modules).
18923
18924 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
18925
18926         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
18927         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
18928         allowed to be null when it's System.Object class setup.
18929
18930 2002-04-27  Martin Baulig  <martin@gnome.org>
18931
18932         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
18933         if `tb->parent == NULL' rather than crashing.
18934
18935 2002-04-28  Nick Drochak  <ndrochak@gol.com>
18936
18937         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
18938         calling acos() where asin() should have been called.
18939
18940 2002-04-26  Martin Baulig  <martin@gnome.org>
18941
18942         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
18943         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
18944         there's a subdirectory called `System', but we don't want to read that
18945         subdirectory as an assembly.
18946
18947 2002-04-25  Martin Baulig  <martin@gnome.org>
18948
18949         * debug-symfile.c: Reflect latest MonoString changes.
18950
18951 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18952
18953         * rand.c, rand.h: instance method icalls need to have an explicit
18954         this pointer as first argument in the C implementation.
18955
18956 2002-04-25  Nick Drochak <ndrochak@gol.com>
18957
18958         * icall.c: Fix typo in map for GetNonZeroBytes
18959
18960 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
18961
18962         * string-icalls.c : String does now passes unit tests without any 
18963         errors, the following changes has been made:
18964         
18965         Implemented replace methods.
18966         Renaming of methods to (try) follow the standard.
18967         Fixed compare ordinal
18968         Made all memory allocated directly to function instead of via icall function.
18969         Small performance fix in is_in_array function
18970                         
18971  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
18972
18973         c (mono_string_Internal_ctor_charp_int_int):
18974         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
18975         sindex < 0, throw ArgumentOutOfRangeException instead of
18976         ArgumentNullException.
18977
18978         Added new check for length == 0, however
18979         I need to make it return String.Empty from the C code.
18980         
18981         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
18982         that calculate the length for us here.
18983         
18984         (mono_string_Internal_ctor_sbytep_int_int): Replaced
18985         mono_string_new_utf16 with mono_string_new, since value is utf8.
18986
18987 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
18988
18989         * object.c: register the object for finalization if needed.
18990         Allocate one more char in the string for the terminating 0 char.
18991
18992 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18993
18994         * class.c, class.h, image.c: check if a type implemenst a destructor.
18995         Use the proper key for array class lookups.
18996         * icall.c: register the icalls in the System.GC class.
18997         * gc.c, gc.h: GC-related functions and icalls.
18998
18999 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19000
19001         * icall.c:
19002         * socket-io.c:
19003         * unicode.c: free some strings gotten from mono_string_to_utf8 and
19004         changed a couple of free () by g_free ().
19005
19006         * decimal.c: one-liner in the comments for decimal2string ().
19007
19008 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19009
19010         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
19011
19012 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19013
19014         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
19015         * object.c (mono_runtime_invoke_array) : handle null in params
19016
19017 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19018
19019         * string-icalls.c: fixed bug in split (one off bug)
19020
19021 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19022
19023         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
19024         * icalls.c: added String::Equals as internal method
19025
19026 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19027
19028         * threads.c: fixed bug in the double interlocked functions
19029
19030 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
19031
19032         * threads.c: implemented all of the new interlocked icalls.
19033         * string-icalls.c: fix a bug in insert.
19034         * icalls.c: added the icalls for interlocked, removed old string functions.
19035         
19036 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19037
19038         * loader.c: fix off-by-one error when reading argument names.
19039
19040 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19041
19042         * profiler.c: win32 counter implementation (untested).
19043         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
19044         (the latter needs testing and more complete impl. from win32 folks).
19045
19046 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
19047
19048         * object.c: mono_array_new_full workaround mono_array_class_get
19049         problem.
19050
19051 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19052
19053         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
19054         * object.h (mono_string_chars): Changed casting type.
19055
19056 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19057
19058         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
19059                            method signatures to use gunichar2 instead of gint16.
19060
19061 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
19062
19063         * object.h, object.c: domain-specific versions of mono_object_new and
19064         mono_array_new.
19065
19066 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
19067
19068         * object.c: changed String layout
19069
19070         * string-icalls.c (mono_string_Internal_ctor_chara): added
19071         internal string constructors.
19072
19073 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
19074
19075         * threads.c: pass 'this' to the thread start routine.
19076
19077 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19078
19079         * string-icalls.c: fix IndexOf and LastIndexOf. Now
19080         InternalCompareStr don't call twice mono_string_cmp_char for the last
19081         character. Improved performance in mono_string_cmp_char.
19082
19083 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19084
19085         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
19086         code into its own library: libmonoruntime.
19087
19088 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
19089
19090         * object.h, object.c: changed array format so that szarrays do not
19091         require a bounds structure.
19092         * icall.c, appdomain.c: support for new szarray format.
19093
19094 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19095
19096         * metadata.c: compare also the retuns type when comparing signatures:
19097         we didn't do this as an optimization since really overloaded methods
19098         must differ also in the arguments, but this doesn't work with
19099         low-level IL code (or when using explicit conversion operators: see
19100         bug#23498 for an example).
19101
19102 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19103
19104         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
19105
19106 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19107
19108         * icall.c: make MonoType::GetElementType its own icall.
19109
19110 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19111
19112         * icall.c: remove MonoMethod_get_Name().
19113         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
19114         object.
19115
19116 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19117
19118         * string-icalls.c: optimized a few methods.
19119
19120 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
19121
19122         * icall.c: added all new string internal calls
19123         * string-icalls.c: added, new string internal call implementation.
19124         * object.c: added mono_string_new_size for allocating a string a size
19125
19126 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
19127
19128         * object.c (mono_object_isinst): use the same code as in the
19129         optimized x86 version.
19130
19131 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19132
19133         * profiler.c: TSC-based timer code (faster and more accurate).
19134         Not hooked up in configure, yet (set USE_X86TSC to 1).
19135
19136 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
19137
19138         * profiler.c, profiler.h: track time spent compiling methods.
19139         * threads.c: track thread creation/destruction.
19140
19141 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
19142
19143         * profiler.c, profiler.h, profiler-private.h: profiling interface
19144         and sample implementation. Moved here so that it can be used also by
19145         the jit.
19146
19147 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
19148
19149         * reflection.c, reflection.h: keep types and other handles separate in
19150         the hash tables for referred tokens. Add guid for modules.
19151
19152 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19153
19154         * assembly.c: fix bugs found with valgrind.
19155         * metadata.h, metadata.c: added mono_metadata_guid_heap().
19156
19157 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
19158
19159         * threads: added icall support for getting current domain for
19160                    the thread.
19161  
19162 2002-04-13  Martin Baulig  <martin@gnome.org>
19163
19164         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
19165         (MonoDebugVarInfo): Added `index' field for register based addresses.
19166         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
19167         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
19168         `MonoDebugVarInfo *params' and `guint32 this_offset' with
19169         `MonoDebugVarInfo *this_var'.
19170
19171         * debug-symfile.c (relocate_variable): New static function to write
19172         a location description for a local variable or method parameter.
19173
19174 2002-04-12  Martin Baulig  <martin@gnome.org>
19175
19176         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
19177         stack offset and begin/end scope address of a local variable.
19178         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
19179         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
19180         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
19181
19182         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
19183         Added new relocation types for start/end scope of a local variable.
19184
19185 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19186
19187         * object.h: add mono_object_domain() macro.
19188         * reflection.c: handle typespecs.
19189         * icall.c: MonoMethod::get_Name() implementation.
19190
19191 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19192
19193         * icall.c: String::GetHashCode() icall implementation.
19194
19195 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19196
19197         * icall.c: String::IndexOfAny icall.
19198         * object.c, object.h: make array->max_length more useful.
19199         Intrduced mono_object_class() and mono_string_length() macros.
19200
19201 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19202
19203         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
19204         instead of g_unichar_isdigit.
19205
19206 2002-04-11  Nick Drochak  <ndrochak@gol.com>
19207
19208         * icall.c: Implement a simple Double.ToString().
19209
19210 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19211
19212         * appdomain.h: only io-layer.h is supposed to be included.
19213         * icall.c: explicitly import environ. Fix warning.
19214
19215 2002-04-10  Nick Drochak  <ndrochak@gol.com>
19216
19217         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
19218                 return true even if it's not Daylight Savings time.
19219                 Only return false for the case where the function isn't
19220                 implemented for a plaform (read Windows).
19221
19222 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19223
19224         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
19225         data with a mutex.
19226
19227 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
19228
19229         * mempool.c (mono_mempool_alloc): only use g_malloc when
19230         absolutely necessary.
19231
19232 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19233
19234         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
19235
19236         * class.c (mono_class_vtable): use domain mempool to allocate vtable
19237         (mono_class_proxy_vtable): use domain mempool
19238
19239 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19240
19241         * appdomain.h, appdomain.c: split initialization that requires the
19242         execution engine support into mono_runtime_init().
19243
19244 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
19245
19246         * class.c (mono_class_init): don't include vtable inside MonoClass
19247         to save some memory, gather some statistics.
19248         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
19249
19250 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19251
19252         * icall.c: internalcall implementation for ValueType.Equals().
19253
19254 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
19255
19256         * object.c (mono_message_init): moved 
19257         (mono_runtime_exec_main): new arch. independent impl.
19258         (mono_runtime_invoke_array): new method - like
19259         mono_runtime_invoke, but you can pass an array of objects.
19260         (mono_remoting_invoke): new arch. independent impl.
19261         (mono_message_invoke): new arch. independent impl.
19262         (mono_runtime_class_init): new arch. independent impl.
19263         (mono_runtime_object_init): new arch. independent impl.
19264
19265 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19266
19267         * metadata.c, object.c, reflection.c: documented the exported
19268         functions.
19269
19270 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19271
19272         * icall.c: simpler code to pass the assembly builder data to corlib.
19273         Implement GetNestedTypes() internalcall.
19274
19275 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19276
19277         * class.c: warn if a type can't be loaded.
19278
19279 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
19280
19281         * image.h: typedef MonoImageOpenStatus
19282         * types.h: removed unused file
19283         
19284 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
19285
19286         * icall.c: Enum_ToObject accepts enum value arguments.
19287
19288 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19289
19290         * class.c: move initialization of properties, events and nested
19291         classes, so that they happen for interfaces, too.
19292
19293 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19294
19295         * icall.c: cleanup some ugly casts in Array_SetValue*.
19296
19297 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19298
19299         * icall.c: the values array fro enums is of the correct type, now.
19300         Implement (correctly) getFullName instead of assQualifiedName for
19301         MonoType.
19302         * reflection.h, reflection.c: added mono_type_get_name ().
19303
19304 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19305
19306         * assembly.c, image.h: for each MonoImage, record from wich assembly
19307         it was loaded.
19308         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
19309         Make Type.Assembly work.
19310
19311 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
19312
19313         * debug-symfile.h: use char* instead of gpointer to avoid
19314         unnecessary casts.
19315
19316         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
19317
19318         * icall.c (ves_icall_InternalExecute): impl. FielSetter
19319         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
19320
19321 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
19322
19323         * icall.c (mono_message_init): impl. (code cleanup)
19324         (ves_icall_InternalExecute): impl. FieldGetter
19325
19326         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
19327         defined we call all (non-static)methods through the vtable. 
19328
19329 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
19330
19331         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
19332         finalizer even though the memory is still referenced (and the chunk of
19333         memory is not freed).
19334
19335 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
19336
19337         * assembly.c: fix brokeness.
19338
19339 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
19340
19341         * class.c: kill some warnings. Check explicit interface method
19342         implementation also without considering the namespace.
19343         Load also literal strings in static class data.
19344
19345 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
19346
19347         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
19348         (default_assembly_name_resolver): Make the resolver take the
19349         "base" directory where the assembly was originally defined, so we
19350         can load DLLs that are in the same directory as the assembly that
19351         is being referenced.
19352
19353 2002-03-28  Dick Porter  <dick@ximian.com>
19354
19355         * file-io.h: 
19356         * file-io.c:
19357         * socket-io.c: 
19358         * unicode.h: 
19359         * unicode.c: Warning cleanups
19360
19361 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
19362
19363         * object.h, reflection.h: use the correct type instead of MonoObject.
19364
19365 2002-03-28  Martin Baulig  <martin@gnome.org>
19366
19367         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
19368         (mono_debug_update_symbol_file): Initialize classes if necessary.
19369
19370 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19371
19372         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
19373         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
19374
19375 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
19376
19377         * assembly.h: fix function prototype.
19378         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
19379         * mono-endian.h: use const cast.
19380
19381 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19382
19383         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
19384
19385 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19386
19387         * loader.c: don't assert when a typeref can't be loaded, give
19388         a chance to the runtime to trow an exception instead.
19389         * loader.h: fix warning.
19390
19391 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
19392
19393         * class.c (mono_class_proxy_vtable): added proxy support
19394
19395 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
19396
19397         * icall.c: removed last of PAL calls, added System.Environment
19398         * file-io.h, file-io.c: MonoIO implementation
19399         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
19400
19401 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19402
19403         * appdomain.c: do not use the byte marker in ldstr table lookup.
19404         * debug-helpers.c: allow two ':' to separate class and method name.
19405         * object.c: allocate arrays bounds with the GC, too.
19406         * verify: add a few more checks.
19407
19408 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
19409
19410         * reflection.c: output also literal strings. Allocate parameter data
19411         with GC_malloc() (thanks, Martin, for catching this!).
19412
19413 2002-03-26  Martin Baulig  <martin@gnome.org>
19414
19415         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
19416         include the `this' offset in the `param_offsets'.
19417
19418 2002-03-25  Martin Baulig  <martin@gnome.org>
19419
19420         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
19421         mono_debug_get_class() function to get the classes. Added new
19422         relocation types for arrays and strings.
19423         (mono_debug_get_class): New static function to search in all
19424         referenced assemblies for a metadata token.
19425
19426         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
19427
19428 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
19429
19430         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
19431         hold gc-allocated objects. Make the string heap a stream like the
19432         others. Removed duplicated code when writing stream info.
19433         Added asserts to catch possible buffer overflows. Set the sorted map
19434         for tables that need sorting. Added some documentation.
19435
19436 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
19437
19438         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
19439         for interned strings and vtables.
19440
19441 2002-03-24  Martin Baulig  <martin@gnome.org>
19442
19443         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
19444         it in the array since it was created with g_slist_prepend().
19445
19446 2002-03-24  Martin Baulig  <martin@gnome.org>
19447
19448         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
19449         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
19450         (mono_debug_method_from_token): Renamed to
19451         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
19452         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
19453
19454         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
19455         relocation types.
19456
19457         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
19458
19459 2002-03-24  Martin Baulig  <martin@gnome.org>
19460
19461         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
19462         (mono_debug_method_from_token): New func.
19463
19464         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
19465         New interncall, calls mono_debug_local_type_from_signature().
19466         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
19467         calls mono_debug_method_from_token().
19468
19469 2002-03-23  Martin Baulig  <martin@gnome.org>
19470
19471         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
19472         specifies the number of bytes to be converted, not the array size.
19473         Return the number of chars, not the number of bytes.
19474         (ves_icall_iconv_get_chars): The `byteCount' argument
19475         specifies the number of bytes to be converted, not the array size.
19476
19477 2002-03-23  Martin Baulig  <martin@gnome.org>
19478
19479         * reflection.h (MonoReflectionSigHelper): New type.
19480
19481         * reflection.c (mono_reflection_sighelper_get_signature_local),
19482         (mono_reflection_sighelper_get_signature_local): New functions.
19483
19484         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
19485         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
19486         interncalls.
19487
19488 2002-03-23  Martin Baulig  <martin@gnome.org>
19489
19490         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
19491         is_writeable is set.
19492         (mono_raw_buffer_update): New function to write the modified map
19493         back to disk.
19494
19495         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
19496
19497         * debug-symfile.c (mono_debug_update_symbol_file): Call
19498         mono_raw_buffer_update() when done writing.
19499
19500 2002-03-23  Martin Baulig  <martin@gnome.org>
19501
19502         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
19503
19504         * debug-symfile.c: Added support for arguments and local variables.
19505
19506 2002-03-23  Dick Porter  <dick@ximian.com>
19507
19508         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
19509         protected by ifdefs, hence breaking the w32 build.
19510
19511 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19512
19513         * object.c: implement is_interned() the right way.
19514
19515 2002-03-21  Martin Baulig  <martin@gnome.org>
19516
19517         * debug-symfile.[ch]: New files to handle debugging information
19518         files. There's also support to dynamically update these symbol
19519         files to include machine dependent information.
19520
19521 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
19522
19523         * threads.c (mono_thread_create): new function to create thread
19524         from C
19525
19526 2002-03-20  Martin Baulig  <martin@gnome.org>
19527
19528         * icall.c (ves_icall_InternalInvoke): Create a new object if the
19529         method is a constructor.
19530         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
19531         points to ves_icall_InternalInvoke().
19532
19533 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
19534
19535         * file-io.c: Flush shouldn't throw exceptions.
19536
19537 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
19538
19539         * file-io.c: FileStream flush support; FileSetLength now
19540         restores file pointer.
19541
19542 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19543
19544         * class.c: set image for pointer classes.
19545
19546 2002/03/19  Nick Drochak <ndrochak@gol.com>
19547
19548         * sysmath.c: Forgot one.
19549
19550 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
19551
19552         * sysmath.c: Avoid redefining existing names.
19553
19554 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
19555
19556         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
19557         handled by runtime as icall rather than dllimport from libm.so
19558         * file-io.c, file-io.h: fixed handle argument type.
19559
19560 2002-03-18  Dick Porter  <dick@ximian.com>
19561
19562         * reflection.c (mono_image_get_type_info): rename interface to
19563         iface, because of "#define interface struct" on windows.
19564
19565 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
19566
19567         * class.c, class.h: rename and export mono_ptr_class_get().
19568         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
19569         * reflection.c, reflection.h, icall.c: better/saner type name
19570         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
19571         method signatures.
19572
19573 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
19574
19575         * class.c (mono_class_init): removed hardcoded GHC_SLOT
19576
19577         * icall.c (ves_icall_InternalInvoke): impl.
19578
19579 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19580
19581         * reflection.c: output the interface map table, too.
19582
19583 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19584
19585         * class.c (class_compute_field_layout): separate computation of 
19586         static field layout
19587
19588 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
19589
19590         * icall.c: added System.Buffer support.
19591         * file-io.c: moved file icalls from PAL to FileStream.
19592
19593 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
19594
19595         * icall.c (ves_icall_System_Object_GetHashCode): impl.
19596
19597 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
19598
19599         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
19600
19601 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
19602
19603         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
19604
19605 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
19606
19607         * debug-helpers.{c,h}: moved here from monograph some useful functions
19608         to locate a method by name/signature in a class or image. Included
19609         also a small and flexible IL disassembler.
19610
19611 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19612
19613         * reflection.c: fixup tokens in methods with small header size, too.
19614
19615 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
19616
19617         * object.c (mono_string_to_utf8): remove assert(!error), instead
19618         print a warning. 
19619
19620 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
19621
19622         * icall.c: update to the new mono_Array_class_get interface.
19623
19624 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19625
19626         * appdomain.c, object.c: Boehm-GC enable.
19627         * icall.c: make get_data_chunk() support split data requests.
19628         Ensure a class is initialized in more cases. Return only the first
19629         property found in GetProperties() or the compiler gets confused. 
19630         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
19631         * reflection.h, reflection.c: add fixup mechanism for field and method
19632         tokens. Initialize assembly->typeref in a single place. Output
19633         properties after events. Support custom attributes for events, too.
19634         Typo fix for paramter custom attrs.
19635
19636 2002-03-07  Martin Baulig  <martin@gnome.org>
19637
19638         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
19639
19640 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
19641
19642         * class.c (mono_array_class_get): fix. for multi. dim. arrays
19643
19644 2002-03-06  Martin Baulig  <martin@gnome.org>
19645
19646         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
19647         non-zero lower bounds. See testcases #F10-#F13.
19648
19649 2002-03-05  Martin Baulig  <martin@gnome.org>
19650
19651         * exception.c (mono_get_exception_argument_out_of_range): New exception.
19652
19653         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
19654         ves_icall_System_Array_GetValue(), only calculate the absolute array position
19655         here.
19656         (ves_icall_System_Array_SetValue): Likewise.
19657         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
19658         as argument and does the actual work. This function is used when copying a
19659         multi-dimensional array.
19660         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
19661         now do all the widening conversions of value types.
19662         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
19663
19664 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19665
19666         * class.c: remove some magic numbers and use the smbolic names,
19667         instead. Added init_events() to load event info at class init time.
19668         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
19669         and mono_metadata_methods_from_event().
19670         * reflection.h, reflection.c: added support for writing out the evnets
19671         related information.
19672
19673 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
19674
19675         * reflection.h, icall.c: use a different method (GetInterfaces)
19676         to gather interface info and add isbyref, isprimitive and
19677         ispointer to the ves_icall_get_type_info() return value.
19678
19679 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
19680
19681         * class.h: stared adding support for events.
19682         * icall.c: split find_members implementation. Added debug icall to get
19683         the address of an object.
19684         * reflection.c: handle TypeBuilders in mono_type_get_object().
19685
19686 2002-03-01  Martin Baulig  <martin@gnome.org>
19687
19688         * icall.c (ves_icall_System_Array_GetLength): This must throw an
19689         ArgumentOutOfRangeException(), not an ArgumentException().
19690         (ves_icall_System_Array_GetLowerBound): Likewise.
19691         (ves_icall_System_Array_GetValue): Improved argument checking.
19692         (ves_icall_System_Array_SetValue): Improved argument checking.
19693
19694 2002-03-01  Martin Baulig  <martin@gnome.org>
19695
19696         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
19697         called with invalid arguments rather than just dying with g_assert().
19698         (ves_icall_System_Array_SetValue): Likewise.
19699         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
19700         raise a NotImplementedException instead.
19701         (ves_icall_System_Array_GetLength): Added argument checking.
19702         (ves_icall_System_Array_GetLowerBound): Added argument checking.
19703
19704 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
19705
19706         * object.h (mono_assert): new macros mono_assert and
19707         mono_assert_not_reached
19708
19709 2002-02-28  Martin Baulig  <martin@gnome.org>
19710
19711         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
19712         and "System::String::IsInterned" to "System::String::_IsInterned".
19713
19714 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
19715
19716         * icall.c: remove hacks for typebuilder. Added icall to create a
19717         modified type from a tybebuilder.
19718         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
19719         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
19720         to create a backing MonoClass for a TypeBuilder.
19721
19722 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19723
19724         * class.c, class.h: more refactoring of class init.
19725         Export mono_class_setup_mono_type() and mono_class_setup_parent().
19726
19727 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
19728
19729         * marshal.c, marshal.h: start of marshaling interface.
19730
19731 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
19732
19733         * icall.c: fix order in assembly qualified name icall.
19734
19735 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
19736
19737         * class.c: do not free str, since we store it in the hash table.
19738         * reflection.h: add label field to MonoILExceptionInfo.
19739         * reflection.c: handle references to more than one assembly. Handle
19740         case when there isn't a module created in the assembly.
19741
19742 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19743
19744         * class.c: Fix typo. Start refactoring of class init code.
19745
19746 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
19747
19748         * appdomain.c: exit with 1 on error.
19749         * class.c: we already have the name in MonoClassField.
19750         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
19751         MonoStreamHeader instead of an offset of image->raw_metadata.
19752
19753 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
19754
19755         * appdomain.c (mono_init): Be even more descriptive about the error.
19756
19757 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
19758
19759         * appdomain.c: give the user an informative message when corlib can't
19760         be loaded.
19761
19762 2002-02-26  Martin Baulig  <martin@gnome.org>
19763
19764         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
19765         New icall to get the time zone data.
19766
19767 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19768
19769         * reflection.c: set virtual and raw size of section correctly.
19770         * threads.c: transfer domain information to newly created threads.
19771
19772 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
19773
19774         * class.c: when instancing a class in a domain, load the default
19775         vaules for static fields from the constant table. Fix System.Enum to
19776         not be an enum.
19777         * icall.c: implement Object::GetType() internalcall. Implemented
19778         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
19779         Fixed checking of binding flags in find_members().
19780         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
19781         * reflection.c: handle enumerations when writing to the constant
19782         table. Use a different object cache for types.
19783
19784
19785 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
19786
19787         * object.c (mono_object_isinst): fix for arrays
19788
19789         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
19790
19791 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
19792
19793         * object.c: don't use mprotect ()  and fix intern pool hash table
19794         lookup for big endian systems.
19795
19796 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19797
19798         * icall.c: change type_is_subtype_of () signature.
19799
19800 2002-02-21  Mark Crichton  <crichton@gimp.org>
19801
19802         * rand.c, rand.h: Added random number generator for
19803         System.Security.Cryptography classes.
19804
19805         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
19806
19807         * icall.c: Added System.Security.Cryptography calls.
19808
19809 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19810
19811         * class.c, icall.c, metadata.c: better support for pointer types.
19812         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
19813         * reflection.c: Add support for getting custom attrs for properties
19814         and simplify some code.
19815
19816 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
19817
19818         * icall.c: change getToken () and add custom attribute GetBlob()helper
19819         method.
19820         * reflection.h: add custom attrs array to the reflection builder structures.
19821         * reflection.c: encode and emit custom attributes for all the relevant
19822         reflection objects. Cache fieldref and methodref tokens. Change
19823         mono_image_create_token() interface to take a MonoDynamicAssembly.
19824         More complete custom attributes decoder. Load custom attributes for
19825         Assembly, Field, Method and Constructor objects, too. Make the
19826         returned array an Attribute[] one, not object[]. Added
19827         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
19828         custom attribute constructor.
19829
19830 2002-02-20  Dick Porter  <dick@ximian.com>
19831
19832         * icall.c:
19833         * rawbuffer.c:
19834         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
19835         problem code out for now).
19836
19837 2002-02-19  Radek Doulik  <rodo@ximian.com>
19838
19839         * object.c (mono_ldstr): use hash table to avoid multiple swapping
19840
19841 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
19842
19843         * icall.c: register the GetCustomAttributes method.
19844         * object.c, object.h: add mono_string_new_len ().
19845         * reflection.h, reflection.c: added mono_runtime_invoke(),
19846         mono_install_runtime_invoke(). Added
19847         mono_reflection_get_custom_attrs () to load custom attributes and
19848         create the attribute objects.
19849
19850 2002-02-19  Dick Porter  <dick@ximian.com>
19851         * threads-dummy-types.c:
19852         * threads-dummy-types.h:
19853         * threads-dummy.c:
19854         * threads-dummy.h:
19855         * threads-pthread-types.c:
19856         * threads-pthread-types.h:
19857         * threads-pthread.c:
19858         * threads-pthread.h:  Deleted obsolete files
19859
19860 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
19861
19862         * class.c (mono_class_vtable): runtime init the class when we
19863         allocate static class data.
19864
19865         * icall.c (ves_icall_System_Array_SetValue): check for null values.
19866
19867         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
19868         and String - but we will need generic marshalling support in the
19869         future. 
19870         (mono_init): set the domain name in a ms compatible way
19871
19872         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
19873         String[].
19874
19875 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
19876
19877         * object.c (mono_array_clone): use alloca() instead of g_malloc  
19878         for sizes
19879
19880         * appdomain.c (mono_domain_unload): impl.
19881
19882 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19883
19884         * appdomain.c, object.c: fix intern pool implementation.
19885         * class.c: fix alignment code.
19886
19887 2002-02-16  Radek Doulik  <rodo@ximian.com>
19888
19889         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
19890         and s2 > s1, just copy lower bytes to be compatible with little
19891         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
19892         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
19893
19894         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
19895         force big_endian to be 1 for big endian machines 
19896         (ves_icall_iconv_new_decoder): ditto
19897
19898 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
19899
19900         * socket-io.c (convert_sockopt_level_and_name): If the system
19901         doesn't define SOL_IP or SOL_TCP, get them by hand using
19902         getprotobyname() and caching the values (because this could be a
19903         slow operation).
19904         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
19905         Use the appropriate struct when the system does support it. Ie,
19906         not all systems have struct ip_mreqn so use struct ip_mreq when
19907         appropriate.
19908
19909 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
19910
19911         * reflection.c: handle finally clauses.
19912
19913 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
19914
19915         * socket-io.c: use g_snprintf() instead of snprintf.
19916
19917 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19918
19919         * reflection.c (mono_param_get_objects): Cast second argument to
19920         mono_method_get_param_names to a const char** to silence the
19921         compiler warning.
19922
19923         * appdomain.c (mono_domain_assembly_open): Put parens around the
19924         truth statement in the for-loop.
19925
19926         * unicode.c (iconv_convert): Got rid of a compiler warning about
19927         int i being unused when the system has a new iconv.
19928         (iconv_get_length): Same.
19929
19930         * image.c (load_class_names): Cast the second argument to
19931         g_hash_table_insert() to char* to hush compiler warnings about the
19932         arg being a const.
19933         (mono_image_open): Same here.
19934
19935         * socket-io.c: Don't conditionally include sys/filio.h or
19936         sys/sockio.h here anymore since we now get them from
19937         io-layer/io-layer.h
19938         (inet_pton): If the system doesn't support inet_aton, implement
19939         using inet_addr and also #define INADDR_NONE if it isn't defined
19940         by the system.
19941
19942 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19943
19944         * metadata.c, metadata.h: added function to get packing and size info
19945         of a typedef.
19946         * reflection.h, reflection.c: handle field RVA data. Save info about
19947         the table layout if needed. Assign typedef indexes to all the types
19948         before dumping the info about them to avoid forward reference problems.
19949
19950 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
19951
19952         * socket-io.c (convert_sockopt_level_and_name): ifdef
19953         SO_ACCEPTCONN because it is not defined on my system (old debian)
19954
19955 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19956
19957         * opcode.c: use stddef.h to get NULL.
19958
19959 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
19960
19961         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
19962         for FIONBIO, FIONREAD and SIOCATMARK.
19963         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
19964         define INADDR_NONE and besides, inet_addr() is deprecated and
19965         should not be used. Use inet_pton() instead - it also has the
19966         added bonus that it can easily handle IPv6 addresses as well.
19967         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
19968
19969 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
19970
19971         * decimal.c: remove _MSC_VER conditional.
19972
19973 2002-02-13  Dick Porter  <dick@ximian.com>
19974
19975         * socket-io.c: 
19976         * icall.c: Internal calls for Blocking, Select, Shutdown,
19977         GetSocketOption and SetSocketOption
19978
19979 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19980
19981         * assembly.cs: better resolver: use it instead of some kludgy
19982         code.
19983
19984 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
19985
19986         * reflection.c: the best way to speed-up the compiler is to avoid
19987         infinite loops.
19988
19989 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
19990
19991         * class.c (mono_class_vtable): changed the object layout
19992         (obj->vtable->class). 
19993         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
19994
19995 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19996
19997         * assembly.c: look for assemblies in the assembly dir, too.
19998
19999 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20000
20001         * class.c: fix thinko in mono_class_from_type().
20002
20003 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20004
20005         * exception.h, exception.c: added TypeLoadException.
20006         * object.h, object.c: added mono_array_clone ().
20007         * icall.c: handle throwOnError in AssemblyGetType().
20008         Added Array.Clone().
20009         * opcode.h, opcode.c: use a single value for the opcode val.
20010         Compile fix for non-gcc compilers.
20011
20012 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
20013
20014         * opcodes.c, opcodes.h: export interesting info about opcodes.
20015
20016 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
20017
20018         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
20019         icalls. 
20020
20021         * class.c (class_compute_field_layout): set element_class for enums
20022         (mono_class_create_from_typedef): set element_class for normal classes
20023
20024         * icall.c (ves_icall_System_Enum_get_value): impl.
20025
20026         * class.c (mono_class_create_from_typedef): do not set valuetype
20027         flag for System.ValueType and System.Enum
20028
20029 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
20030
20031         * unicode.c (iconv_convert): fix big endian problem.
20032
20033 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20034
20035         * class.c: add asserts if we are ever going to scribble over memory.
20036         * socket-io.c: not all systems have AF_IRDA defined.
20037
20038 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
20039
20040         * class.c (class_compute_field_layout): do not consider static
20041         fields to compute alignment
20042
20043 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
20044
20045         * appdomain.c (mono_appdomain_get): impl.
20046         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
20047
20048 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20049
20050         * icall.c: ignore "file://" prefix when loading an assembly.
20051
20052 2002-01-23  Dick Porter  <dick@ximian.com>
20053
20054         * socket-io.c:
20055         * icall.c:
20056         * Makefile.am: Added socket support
20057
20058 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20059
20060         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
20061         code back.  This should return the assemblies that are loaded by
20062         the runtime on behalf of an application domain. 
20063
20064         The current implementation is still broken, it just returns every
20065         assembly loaded, but until we get real applications domain this
20066         will do.
20067
20068 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
20069
20070         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
20071         AppDomain object.
20072
20073 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
20074
20075         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
20076         the mono_class_from_name lookup.
20077         (ves_icall_get_parameter_info): ditto.
20078         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
20079         method.
20080         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
20081
20082 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
20083
20084         * class.c: load also nested classes on class init.
20085         System.ValueType instance methods gets passed boxed
20086         values, unless methods in derived classed that get a pointer to the
20087         data.
20088         * icall.c: use better name parsing code in GetType().
20089         * image.c, image.h: add mono_image_loaded ().
20090         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
20091         * reflection.c, reflection.h: added mono_reflection_parse_type().
20092
20093 2002-01-22  Veronica De Santis <veron78@interfree.it>
20094
20095         * icall.c : Added mapping of internal calls for Manual and Auto reset events
20096         * threads.c : Added the implementation of internal calls for events
20097         * threads.h : Added prototypes of internal calls for events
20098         
20099 2002-01-21  Radek Doulik  <rodo@ximian.com>
20100
20101         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
20102
20103 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
20104
20105         * class.c (mono_class_init): set min_align to 1 (instead of 0)
20106         (mono_class_value_size): use min_align
20107
20108 2002-01-20  Dick Porter  <dick@ximian.com>
20109
20110         * threads.h:
20111         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
20112         so it compiles on w32.
20113
20114 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
20115
20116         * metadata.c (mono_type_stack_size): impl.
20117
20118         * class.c (mono_class_get_field): impl. memberref token
20119
20120 2002-01-16 Veronica De Santis <veron78@@interfree.it>
20121
20122         * icall.h : Added the internal calls mapping for CreateMutex_internal
20123                     and ReleaseMutex_internal.
20124         * threads.h : Added the prototype of mutexes internal calls.
20125         * threads.c : Added the implementations of mutexes internal calls.
20126
20127 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20128
20129         * metaparse.h: removed unused file.
20130         * reflection.c, reflection.h: added stream_data_align () function 
20131         to align data in streams and keep stream aligned. Add support for
20132         exception support in method headers.
20133
20134 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
20135
20136         * unicode.c: make iconv_convert () return the number of bytess written
20137         in the output buffer.
20138
20139 2002-01-15  Dick Porter  <dick@ximian.com>
20140         * threads.c: Make the runtime's idea of infinite timeouts coincide
20141         with the class library's
20142
20143         Fix a particularly egregious bug in mono_thread_cleanup(). That
20144         code was so utterly bogus it must have been written on a Monday.
20145
20146 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20147
20148         * reflection.h: add subtypes field to TypeBuilder.
20149         * reflection.c: encode constants for literal fields.
20150         Handle subtypes. Fix user string token (and add a zero byte)
20151         at the end.
20152         
20153 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
20154
20155         * class.c (mono_class_init): bug fix: assign slot numbers for
20156         abstract methods.
20157
20158 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20159
20160         * reflection.c: don't try to output a code RVA for abstract methods.
20161         Small fixes for method header format. Output parameter info to the
20162         ParamDef table. Save method overriding info to MethodImpl table.
20163         Fix property support. Allow typedef.extends to be a type in the
20164         building assembly.
20165         * verify.c: fix off-by-one error.
20166
20167 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
20168
20169         * class.c: fix mono_class_from_mono_type () for szarray types.
20170         Remove unused cache check in mono_class_from_type_spec().
20171         * icall.c: *type_from_name () functions handle simple arrays and byref.
20172         * reflection.c: handle byref and szarray types. Handle methods without
20173         body (gets P/Invoke compilation working). Handle types and fields in
20174         get_token ().
20175         * reflection.h: add rank to MonoTypeInfo.
20176
20177 2002-01-10  Dick Porter  <dick@ximian.com>
20178
20179         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
20180         internal calls
20181
20182 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20183
20184         * icall.c: initialize class in type_from_handle ().
20185         Loop also in parent classes for get_method ().
20186         * reflection.c: properly encode class and valuetype types.
20187         Start on encoding TypeBuilder types. Handle fieldrefs.
20188         Use correct length when registering a user string.
20189         Handle ConstructorBuilder and MonoMethod in get_token ().
20190         Make mono_type_get_object () aware of cached types.
20191         * object.c: back out change to mono_string_new ().
20192
20193 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
20194         * object.c: mono_string_new should return a NULL when the string 
20195         passed in is NULL -- not try to deference it.
20196         
20197 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20198
20199         * icall.c: hack to make IsSubType work for TypeBuilders.
20200         * reflection.c: emit constructors before methods.
20201         Retrieve param names in mono_param_get_objects().
20202
20203 2002/01/05  Nick Drochak  <ndrochak@gol.com>
20204
20205         * Makefile.am: fix list of headers and sources so automake 1.5
20206         doesn't complain. Removed \# at end of list.
20207
20208 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20209
20210         * reflection.c: get token for a method ref. Set return type of
20211         constructor to void.
20212         * loader.c: debug message.
20213         * class.c: typo fix.
20214
20215 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
20216
20217         * icall.c: fix array init with rank > 1. FindMembers
20218         loops in parent class as well.
20219         * image.c: do not insert nested types in name cache.
20220         * reflection.c: warning fix.
20221         * reflection.h: add override method (for interface impl).
20222
20223 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
20224
20225         * metadata.c: fix customattr decoding.
20226
20227 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
20228
20229         * rawbuffer.cs: Added native Win32 implementation, avoids using
20230         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
20231
20232 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
20233
20234         * class.c: make the low-level routines handle the cache.
20235
20236 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
20237
20238         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
20239
20240 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
20241
20242         * class.c: fix mono_array_element_size() for objects.
20243         * class.h, class.c: add properties to MonoClass and load them
20244         at init time.
20245         * icall.c: check with isinst() when assigning a value to an array
20246         instead of requiring the classes to match exactly.
20247         Implemented icall for System.Type::GetType().
20248         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
20249         enums. Handle bindingflags when looking for methods and fields.
20250         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
20251         and mono_metadata_methods_from_property().
20252         * reflection.h, reflection.c: added structures for propreties,
20253         parameters and enums. Implemented mono_property_get_object() and
20254         mono_param_get_objects().
20255
20256 2001-12-18  Dick Porter  <dick@ximian.com>
20257
20258         * file-io.c: Use mono_string_to_utf16() instead of
20259         mono_string_chars()
20260
20261         * object.c: Added mono_string_to_utf16(), which copies the non
20262         NULL-terminated MonoString into a new double-null-terminated
20263         buffer.
20264
20265 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
20266
20267         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
20268
20269 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
20270
20271         * file-io.c: raise exceptions if handle is invalid.
20272
20273 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
20274
20275         * assembly.c: yet another check for mscorlib.
20276         * class.c, class.h: load nesting info for classes.
20277         * icall.c: many new functions to support the Reflection classes.
20278         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
20279         * reflection.h, reflection.c: mono_image_create_token(),
20280         mono_assembly_get_object(), mono_type_get_object(),
20281         mono_method_get_object(), mono_field_get_object(): methods to return
20282         objects that parallel the C representation of assemblies, types,
20283         methods, fields.
20284
20285 2001-12-11  Dick Porter  <dick@ximian.com>
20286
20287         * icall.c:
20288         * file-io.c: Internal calls for file IO.
20289
20290 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
20291
20292         * tabledefs.h: missing FileAttributes.
20293         * verify.h, verify.c: use is_valid_string () to simplify and check for
20294         valid strings more correctly. Fix warnings and speeling.
20295         Check more tables: Filed, File, ModuleRef, StandAloneSig.
20296         Check code: branches, maxstack, method calls.
20297
20298 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
20299
20300         * object.c (mono_object_allocate): removed static, so that the jit
20301         can allocate value types.
20302
20303         * icall.c (ves_icall_System_DateTime_GetNow): impl.
20304
20305 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20306
20307         * class.c: init enum types right away and register the
20308         token->MonoClass map in mono_class_create_from_typedef ().
20309         * verify.h, verify.c: first cut of the verifier.
20310         * pedump.c: add --verify switch to verify metadata tables.
20311         * tabledefs.h: add some missing enums.
20312
20313 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
20314
20315         * class.c (mono_install_runtime_class_init): impl.
20316         (mono_class_init): renamed mono_class_metadata_init to
20317         mono_class_init, also removed the metadata_inited flag
20318
20319         * object.c (mono_object_isinst): use faster algorithm
20320
20321 2001-11-30  Radek Doulik  <rodo@ximian.com>
20322
20323         * mono-endian.h: reverted last change
20324         added function prototypes
20325
20326         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
20327         add mono-endian.c back
20328
20329         * mono-endian.c: returned back, as Paolo pointed out, it's needed
20330         for unaligned access, I've mistaked it with endianess. I am
20331         sorry.
20332         (mono_read16): fix reverted endianess
20333         (mono_read64): ditto
20334         (mono_read32): ditto
20335
20336 2001-11-30  Dick Porter  <dick@ximian.com>
20337
20338         * exception.c: Implement mono_exception_from_name()
20339
20340 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20341
20342         * metadata.h, metadata.c: remove params_size and locals_size and their
20343         calculation from the metadata code: they are only usefult to the
20344         interp.
20345
20346 2001-11-29  Radek Doulik  <rodo@ximian.com>
20347
20348         * object.c (mono_ldstr): swap bytes here, it's probably not the
20349         best place, but works for me now, I'll redo it once I know mono
20350         better, also note that I add PROT_WRITE and don't reset back, also
20351         note that it's only affects big endians, so x86 should be OK
20352
20353         * mono-endian.h (read16): use just glib macros for both endians
20354
20355         * mono-endian.c: removed as glib macros are used in in
20356         mono-endian.h so we don't need to care about endianess for read
20357         macros as glib does that for us already
20358
20359 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
20360
20361         * class.h, class.h: take minimum alignment into consideration so
20362         that the fields of a class remain aligned also when in an array.
20363
20364 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20365
20366         * loader.h, loader.c: add mono_method_get_param_names().
20367         * class.c: 0-init class fields.
20368
20369 2001-11-26  Dick Porter  <dick@ximian.com>
20370
20371         * icall.c:
20372         * threads-types.h:
20373         * threads.c: New file that handles System.Threading on all platforms
20374
20375         * object.c: 
20376         * object.h: Remove the synchronisation struct from MonoObject,
20377         replace it with a pointer that gets initialised on demand
20378
20379         * Makefile.am: Replace all the system-specific threading code with
20380         a single file that uses the new wrapper library
20381
20382 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
20383
20384         * class.c, class.h: add mono_install_trampoline() so that the runtime
20385         can register a function to create a trampoline: removes the ugly
20386         requirement that a runtime needed to export arch_create_jit_trampoline.
20387         * object.h, object.c: added mono_install_handler() so that the runtime
20388         can install an handler for exceptions generated in C code (with
20389         mono_raise_exception()). Added C struct for System.Delegate.
20390         * pedump.c: removed arch_create_jit_trampoline.
20391         * reflection.c: some cleanups to allow registering user strings and
20392         later getting a token for methodrefs and fieldrefs before the assembly
20393         is built.
20394         * row-indexes.h: updates and fixes from the new ECMA specs.
20395
20396 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
20397
20398         * class.h, class.c: add enum_basetype field to MonoClass.
20399         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20400         to get index in the constant table reated to a field, param or
20401         property.
20402         * reflection.h, reflection.c: handle constructors. Set public-key and
20403         version number of the built assembly to 0.
20404         * row-indexes.h: update from new ECMA spec.
20405
20406 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20407
20408         * class.h, class.c: add a max_interface_id to MonoClass.
20409         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
20410         since it's used to do that. Added mono_type_type_from_obj().
20411         Make GetType() return NULL instead of segfaulting if the type was not
20412         found. Handle simple arrays in assQualifiedName.
20413         * object.h: add a struct to represent an Exception.
20414         * reflection.c: output call convention in method signature.
20415         Add code to support P/Invoke methods and fixed offsets for fields.
20416
20417 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
20418
20419         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
20420         the value.
20421         * icall.c: use mono_array_addr instead of array->vector: fixes the
20422         reflection image writing.
20423         * reflection.c: init call convention byte to 0 in method signature.
20424         Encode the property signature. Don't output property-related methods
20425         twice. Really process the properties for a type (don't cast a field to
20426         a property, my mom always told me that).
20427         Fix 64 bit issues in pointer alignment in a different and more
20428         readable way.
20429
20430 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
20431
20432         * loader.h: Removed type class from MonoDefaults, added monotype
20433
20434         * loader.c: Loaded MonoType, removed loading of Type
20435
20436         * icall.c (my_mono_new_object): Now returns a System.MonoType,
20437         and fills in System.Type._impl with a RuntimeTypeHandle rather
20438         than the actual MonoClass *
20439
20440         (ves_icall_type_from_handle): change from type_class to
20441         monotype_class
20442
20443         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
20444         implemented
20445
20446         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
20447         implemented
20448
20449         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
20450
20451         (ves_icall_System_Reflection_Assembly_GetType): implemented
20452
20453         (ves_icall_System_MonoType_assQualifiedName): implemented
20454
20455         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
20456
20457 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
20458
20459         * assembly.c (mono_assembly_open): Implement a cache for the
20460         assemblies. 
20461
20462         (mono_assembly_close): only destroy the assembly when the last
20463         reference is gone.
20464         
20465 2001-11-09  Dick Porter  <dick@ximian.com>
20466
20467         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
20468
20469 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
20470
20471         * class.c (mono_class_metadata_init): bug fix: compute the right slot
20472
20473 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
20474
20475         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
20476         from Martin Weindel.
20477         * object.h: add mono_string_chars ().
20478
20479 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
20480
20481         * reflection.c (build_compressed_metadata): Eliminates warnings
20482         and uses 64-bit clean code.
20483
20484         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
20485         (mono_type_equal): Change signature to eliminate warnings.
20486
20487 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
20488
20489         * icall.c, loader.c: remove the internalcall array constructors.
20490         Changes to match the new MonoArray structure.
20491         * object.h, object.c: an array object doesn't allocate an extra
20492         vector. Add mono_array_new_full () to create jagged arrays easily.
20493
20494 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
20495
20496         * metadata.h, metadata.c: add mono_metadata_field_info () to
20497         retreive all the info about a field from vairous tables.
20498         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
20499         * class.h, class.c: augment MonoClassField with more info.
20500         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
20501         policy and load a field's RVA if needed.
20502
20503 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
20504
20505         * class.c (mono_class_metadata_init): create a trampoline for all
20506         virtual functions instead of actually compiling them.
20507
20508 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
20509
20510         * class.h, class.c: include name in MonoClassField.
20511         * class.c: fix fundamental type of System.Object and System.String.
20512         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
20513         tokens in ldtoken.
20514         * icall.c: remove internalcalls for the Reflection stuff that is now
20515         done in C# code.
20516         * loader.c: mono_field_from_memberref () implementation.
20517         * mono-endian.c: thinko (s/struct/union/g).
20518         * object.c, object.h: make the mono_string_* prototypes actually use
20519         MonoString instead of MonoObject.
20520         * reflection.c, reflection.h: updates for changes in the reflection
20521         code in corlib: we use C structures that map to the actual C# classes.
20522         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
20523         fat method header if needed and use the info from the ILGenerator for
20524         methods. Handle fields in types. Misc fixes.
20525
20526 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
20527
20528         * class.c (mono_class_metadata_init): bug fix: always allocate
20529         space for static class data
20530
20531 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
20532
20533         * class.c (mono_compute_relative_numbering): use relative
20534         numbering to support fast runtime type checks.
20535
20536 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
20537
20538         * class.c (mono_class_create_from_typeref): added debugging output
20539         to print class name when MonoDummy is returned instead of real class
20540
20541 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
20542
20543         * class.c (mono_class_metadata_init): interface offset table now
20544         contains pointers into the vtable - this is more efficient for the jit
20545
20546 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
20547
20548         * class.c (mono_class_metadata_init): use a temporary vtable (the
20549         old algorithm only worked for the interpreter, but not for the jit)
20550
20551 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
20552
20553         * loader.c (method_from_memberref): use mono_class_get to get the
20554         class of an array instead of using System.Array directly.
20555         (mono_get_method): also add MEMBERREF methods to the method cache
20556         which usefull for arrays.
20557
20558 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
20559
20560         * pedump.c (arch_compile_method): added to compute vtable entry
20561
20562         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
20563         number of interfaces.
20564         
20565         * class.h: merged MonoArrayClass into MonoClass
20566
20567         * class.c (mono_class_create_from_typedef): compute the vtable size and
20568         allocate space to include the vtable inside MonoClass
20569         (mono_class_metadata_init): initialize the vtable
20570
20571 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
20572
20573         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
20574         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
20575         * image.c: endian fixes by Laurent Rioux.
20576         * object.h, object.c: rename MonoStringObject to MonoString and
20577         MonoArrayObject to MonoArray. Change some function names to conform to
20578         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
20579         guint16* as first argument, so don't use char*.
20580         Provide macros to do the interesting things on arrays in a portable way.
20581         * threads-pthread.c: updates for the API changes and #include <sched.h>
20582         (required for sched_yield()).
20583         * icall.c: updates for the API changes above.
20584         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
20585         platforms that need them.
20586
20587 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20588
20589         * class.c: set the correct type for all the fundamental
20590         type when loading the class.
20591
20592 2001-10-05  Dick Porter  <dick@ximian.com>
20593
20594         * threads-pthread.c (pthread_mutex_timedlock): Simple
20595         compatibility version for C libraries that lack this call.
20596
20597 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20598
20599         * class.c: MonoTypes stored in MonoClass are stored as
20600         fundamental MonoTypes when the class represents a
20601         fundamental type (System.Int32, ...).
20602         The TypeHandle return by ldtoken is a MonoType*.
20603         * icall.c: ves_icall_get_data_chunk () write out all the
20604         PE/COFF stuff. Implement ves_icall_define_method (),
20605         ves_icall_set_method_body (), ves_icall_type_from_handle ().
20606         * image.c: properly skip unknown streams.
20607         * loader.h, loader.c: add type_class to mono_defaults.
20608         * metadata.c, metadata.h: export compute_size () as
20609         mono_metadata_compute_size () with a better interface.
20610         Typo and C&P fixes.
20611         * pedump.c: don't try to print the entry point RVA if there is no entry point.
20612         * reflection.c, reflection.h: many cleanups, fixes, output method
20613         signatures and headers, typedef and typeref info, compress the metadata
20614         tables, output all the heap streams, cli header etc.
20615         * row-indexes.h: typo fixes.
20616
20617 2001-10-04  Dick Porter  <dick@ximian.com>
20618
20619         * object.h: Add a synchronisation mutex struct to MonoObject
20620
20621         * object.c (mono_new_object): Initialise the object
20622         synchronisation mutexes
20623
20624         * icall.c: System.Threading.Monitor internal calls
20625         
20626         * threads-pthread.h:
20627         * threads-pthread.c: System.Threading.Monitor internal calls
20628
20629         * threads-types.h: New file, includes the system-specific thread
20630         structures
20631         
20632         * threads-pthread-types.h:
20633         * threads-pthread-types.c: New files, handle pthread-specific
20634         synchronisation types
20635
20636         * threads-dummy-types.h: 
20637         * threads-dummy-types.c: New files of dummy support for
20638         thread-specific types
20639
20640         * metadata.c:
20641         * image.c:
20642         * pedump.c: include mono-endian.h not endian.h
20643         
20644         * Makefile.am: More threads files.
20645         Name mono-endian.h not endian.h
20646
20647 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
20648
20649         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
20650         stuff and implement a few more bits.
20651         * icall.c: a field needs to be dereferenced twice. Do not use the same
20652         name for two variables in the same scope.
20653         * image.c, image.h: cleanups.
20654
20655 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
20656
20657         * class.c (mono_class_metadata_init): bug fix: compute the right size
20658
20659 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
20660
20661         * icall.c: implemented some of the Reflection internalcalls.
20662         * image.c, image.h: start writing out the PE/COFF image.
20663         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
20664         that does the reverse than decode_blob_size ().
20665         * object.c: use mono_metadata_encode_value (). Move here
20666         temporary implementation of mono_string_to_utf8 ().
20667         * rawbuffer.c: make malloc_map static.
20668
20669 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20670
20671         * metadata.c: fix type comparison for arrays.
20672         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
20673         Added a couple of new classes to monodefaults.
20674         * icall.c: added a couple of Reflection-related internalcalls.
20675         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
20676         Added a byval_arg MonoType to MonoClass.
20677
20678 2001-09-28  Dick Porter  <dick@ximian.com>
20679
20680         * icall.c:
20681         * threads-pthread.h: 
20682         * threads-pthread.c: Implemented internal calls for
20683         LocalDataStoreSlot operations.  Applied mutexes around all shared
20684         data.  Reworked the thread creation and Start() operations to
20685         avoid a race condition.
20686         
20687         * threads-dummy.h:
20688         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
20689
20690 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
20691
20692         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
20693
20694 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
20695
20696         * class.c, loader.c: warn and return NULL instead of erroring out.
20697         * icall.c: added System.AppDomain::getCurDomain().
20698         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
20699
20700 2001-09-25  Dick Porter  <dick@ximian.com>
20701
20702         * threads-pthread.h:
20703         * threads-pthread.c: Implemented timed thread joining and added
20704         System.Threading.Thread::Join_internal internal call
20705
20706         * icall.c: Added System.Threading.Thread::Join_internal internal call
20707
20708         * threads-dummy.h:
20709         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
20710
20711 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
20712
20713         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
20714         mono_string_intern () to implement the semantics of the ldstr opcode
20715         and the interning of System.Strings.
20716         * icall.c: provide hooks to make String::IsIntern and String::Intern
20717         internalcalls.
20718
20719 2001-09-23  Dick Porter  <dick@ximian.com>
20720
20721         * threads-dummy.c: 
20722         * threads-dummy.h: New files of dummy threading routines
20723
20724         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
20725         support code based on system specifics
20726
20727         Rename PTHREAD_LIBS to THREAD_LIBS
20728         
20729 2001-09-23  Dick Porter  <dick@ximian.com>
20730
20731         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
20732         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
20733         internal calls.
20734         (mono_thread_init): Set up a Thread object instance to return when
20735         the main thread calls Thread.CurrentThread
20736         (mono_thread_cleanup): Wait for all subthreads to exit
20737
20738         * icall.c: New internal calls for System.Threading.Thread::Sleep
20739         (including Schedule) and CurrentThread
20740
20741         * threads.h: New file, to insulate thread-specific stuff from the
20742         rest of the code
20743
20744 2001-09-21  Dick Porter  <dick@ximian.com>
20745
20746         * threads-pthread.h: 
20747         * threads-pthread.c: New file, for handling pthreads-style
20748         threading support.  Start() now starts a new thread and executes
20749         the ThreadStart delegate instance.
20750
20751         * icall.c: Added the internalcall for
20752         System.Threading.Thread::Start_internal
20753
20754         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
20755
20756 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
20757
20758         * loader.c: work around the different signatures for delegates
20759         constructors csc generates in compiled code vs the ones compiled in mscorlib.
20760
20761 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
20762
20763         * class.h, class.c: add mono_class_get_field_from_name ().
20764         * *: Fix C comments and other ANSI C issues.
20765
20766 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
20767
20768         * endian.h, assembly.c: fix some endianness issues.
20769
20770 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
20771
20772         * loader.h, load.c: add delegate_class to mono_defaults.
20773         Handle runtime provided methods in mono_get_method ().
20774
20775 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
20776
20777         * loader.c (mono_get_method): use pinvoke for internal call
20778
20779         * icall.c: use pinvoke for internal call
20780
20781         * loader.c (method_from_memberref): set the method name
20782
20783 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
20784
20785         * metadata.c: help the compiler generate better code for
20786         mono_class_from_mono_type ().
20787
20788 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
20789
20790         * class.c (mono_class_metadata_init): delayed computing of the
20791         class size to mono_class_metadata_init ()
20792
20793 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
20794
20795         * class.c, class.h: add an interfaces member to MonoClass.
20796         * image.c, image.h: add assembly_name field to MonoImage
20797         from the assembly table.
20798         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
20799
20800 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20801
20802         * class.c: Handle Array in mono_class_from_mono_type ().
20803         * metadata.c, pedump.c: some endian fixes.
20804
20805 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
20806
20807         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
20808         * metadata.c: fix small problem introduced with the latest commit.
20809
20810 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
20811
20812         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
20813         We don't need a MonoMetadata pointer anymore to compare signatures in
20814         mono_metadata_signature_equal (), update callers.
20815         Reduced memory usage an number of allocations for MonoMethodHeader and
20816         MonoMethodSignature.
20817
20818 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
20819
20820         * metadata.c: added compare for szarray.
20821
20822 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
20823
20824         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
20825         and add a couple more types to it and mono_defaults. Give an hint on
20826         classes that need implementing in our corlib and are referenced
20827         in mscorlib.
20828
20829 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
20830
20831         * class.h, class.c: keep track if a class is also an Enum.
20832         * loader.c: Implement a couple more types for use in libffi
20833         marshalling. Gives better diagnostics when failing to dlopen
20834         a library. Set method->klass for P/Invoke methods, too.
20835
20836 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
20837
20838         * class.c, class.h: add a MonoType this_arg to MonoClass that
20839         represents a pointer to an object of the class' type that
20840         can be used by the interpreter and later the type cache.
20841         Add best guess alignment info for valuetype objects.
20842
20843 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
20844
20845         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
20846         into MonoType: one less level of indirection and allocation and
20847         simplifies quite a bit of code. Added cache for MonoTypes that are
20848         used frequently, so that we don't need to allocate them all the time.
20849
20850 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
20851
20852         * class.c (mono_class_create_from_typedef): System.Enum is also a
20853         value type, although it does not derive from System.ValueType
20854         (maybe a bug in the ms compiler?)
20855
20856         * metadata.c (mono_type_size): return the right size for value types
20857
20858         * loader.c (mono_get_method): only initialize method header if not abstract
20859
20860         * class.c (mono_class_from_mono_type): use mono_default values. 
20861
20862 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
20863
20864         * *: use MonoClass pointers instead of <type_tokens>
20865         
20866         * class.h: new flag: metadata_inited.
20867
20868         * class.c (mono_class_metadata_init): impl.
20869         (mono_class_instance_size): impl.
20870         (mono_class_data_size): impl.
20871
20872 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
20873
20874         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
20875         MonoClass now has the name and name_space fields. 
20876         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
20877         mono_get_method () takes and optional MonoClass as argument.
20878         Removed mono_typedef_from_name() and added mono_class_token_from_name()
20879         instead that takes advantage of a map from class names to typedef
20880         tokens in MonoImage.
20881
20882 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
20883
20884         * metadata.c: zero is not a valid alignment boundary.
20885         Merge MONO_TYPE_VOID in default decoding code.
20886
20887 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
20888
20889         * image.h: merged MonoMetadata into MonoImage
20890
20891         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
20892         identify the type of elements.
20893
20894 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
20895
20896         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
20897         * cil-coff.h: split MonoMSDOSHeader and add size info.
20898         * image.c: add some consistency checks.
20899         * metadata.c: fix row size computation: one programmer
20900         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
20901         add explanation for the locator routine.
20902         Fix decoding of size in method header.
20903         
20904 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
20905
20906         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
20907         (g_concat_dir_and_file): Bring g_concat_dir_and_file
20908         function from gnome-libs.  This uses the right path separator
20909         based on the OS, and also works around a bug in some systems where
20910         a double slash is not allowed. 
20911         (default_assembly_name_resolver): Use g_concat_dir_and_file
20912         (mono_assembly_open): ditto.
20913
20914 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
20915
20916         * metadata.c (mono_metadata_signature_equal): impl.
20917
20918         * *: void is now a realy MonoType (instead of using NULL)
20919         
20920         * metadata.c (do_mono_metadata_parse_type): use
20921         mono_metadata_parse_type to parse void value.
20922
20923 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
20924
20925         * metadata.c, metadata.h: in the signature and method header store
20926         only the space required for holding the loca vars and incoming arguments.
20927
20928 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
20929
20930         * metadata.c (do_mono_metadata_parse_type): treat void like any
20931         other type (instead of assigning NULL);
20932
20933 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
20934
20935         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
20936
20937 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
20938
20939         * image.c (do_mono_image_open): added a cache for arrays.
20940
20941 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20942
20943         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
20944         decode a single column from a row in a metadata table and changes
20945         to take advantage of it in the typedef locator (gives a nice speed up).
20946         Store offset info for function params.
20947
20948 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
20949
20950         * image.h (MONO_IMAGE_IS_CORLIB): removed 
20951
20952 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
20953
20954         * assembly.c: how could mono_assembly_close () had ever worked?
20955         * metadata.c, metadata.h: provide offset info for local vars.
20956         Implement mono_type_size () to take care of alignment as well
20957         as size (it was mono_field_type_size in cli/class.c before).
20958
20959 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
20960
20961         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
20962
20963         * assembly.h (CORLIB_NAME): set to corlib.dll
20964
20965         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
20966
20967 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
20968
20969         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
20970         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
20971         tokentype.h: massive namespace cleanup.
20972
20973 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
20974
20975         * metadata.h, metadata.c: decode exception clauses when parsing method header.
20976
20977 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
20978
20979         * metadata.c (mono_metadata_free_type): added check for type !=
20980         NULL (void) before calling mono_metadata_free_type()
20981
20982 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
20983
20984         * metadata.h, row_indexes.h: added header with enumerations to use
20985         to index in the columns from tables in metadata and to decode coded
20986         tokens: we should start using this instead of embedding magic numbers
20987         all over the code.
20988
20989 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
20990
20991         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
20992         Move metadata_t info from cli_image_info_t to MonoImage, where
20993         it's easily accessible. Changed all the uses accordingly.
20994         Added the method and class caches to MonoImage.
20995         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
20996         and mono_metadata_decode_value () signature to be more consistent
20997         with the other parse functions (and simplify code). Taken advantage
20998         of zero-length array allocation with GCC. Removed reduntant (and
20999         wrong) MonoFieldType struct and use MonoParam instead. Changed
21000         mono_metadata_parse_field_type () to use common code for parsing.
21001         Added mono_metadata_typedef_from_field () and
21002         mono_metadata_typedef_from_method () to lookup a typedef index from a
21003         field or method token.
21004         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
21005
21006 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
21007
21008         * metadata.c (mono_metadata_parse_field_type): Implement. 
21009         (do_mono_metadata_parse_type): Split engine from
21010         mono_metadata_parse_type, so that we can create smaller structures
21011         for things that just have one pointer to the MonoType (look at
21012         the MonoFieldType)
21013
21014 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
21015
21016         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
21017         as Jan Gray found out, it is incorrect. 
21018
21019 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
21020
21021         * assembly.c: Implement asssembly loading.  This loads an image
21022         and loads all the referenced assemblies.  Come to think of it, we
21023         could always do lazy loading of the assemblies. 
21024
21025         * image.c (mono_image_open): Keep loaded images in a hashtable.
21026
21027         * image.h (MonoImage): Add reference count.
21028
21029 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
21030
21031         * assembly.c (mono_assembly_open): Keep track of the file name in
21032         case the assembly has no ASSEMBLY table.
21033
21034         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
21035         from get.c here.
21036
21037 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
21038
21039         * metadata.c, metadata.h: decode local vars in method header
21040         parse function. Change callers accordingly.
21041
21042 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
21043
21044         * metadata.h, cil-coff.h: protect against multiple inclusion.
21045         Added some new structures to hold information decoded from metadata:
21046         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
21047         and relevant decoding/free functions.
21048         * metadata.c: implement decoding functions. Add warning for out of bounds
21049         index in mono_metadata_locate(). Implement mono_get_method () to retreive
21050         all the info about a method signature and invocation. Remove check on
21051         uninitialized local var in parse_mh() and fix memory leak.
21052
21053 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
21054
21055         * metadata.h: More macros.
21056
21057         * tokentype.h: New file.
21058
21059 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
21060
21061         * assembly.c: added a consistency check and initialize
21062         some structures with g_new0().
21063         * metadata.c: fixed a couple more bugs in table size computation
21064         and add other checks for out-of bound access to metadata.
21065
21066 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
21067
21068         * metatada.c: fix bugs computing table sizes. Spew a
21069         warning when index in string heap is out of bounds.
21070
21071 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
21072
21073         * metadata.h: Add a couple of macros to manipulate tokens. 
21074
21075 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21076
21077         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
21078         cli_section_tables).
21079
21080 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
21081
21082         * metadata.c (mono_metadata_user_string): New function, provides
21083         access to the UserString heap. 
21084
21085 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
21086
21087         * metadata.c: Add inline documentation.
21088
21089 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
21090
21091         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
21092         files. 
21093
21094 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
21095
21096         * typeattr.h: New file, TypeAttribute flags. 
21097
21098 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
21099
21100         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
21101         mono_assembly_ensure_section): Section loading code.
21102         (load_section_tables): Load the sections.
21103
21104         * mono/metadata/metadata.c (mono_metadata_locate_token,
21105         mono_metadata_locate): Functions to locate the information
21106         definition given a token or a table and an index.
21107         (mono_metadata_compute_table_bases): New.
21108         (compute_size): New function to compute the sizes of the various
21109         tables.
21110
21111         * mono/metadata/metadata.h: Finish listing the different index
21112         types. 
21113
21114         * mono/metadata/pedump.c: Improve to dump new information.
21115
21116 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
21117
21118         * mono/metadata/metadata.c: Entered all the tables matching
21119         Beta2. 
21120
21121         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
21122
21123
21124