2004-07-09 Dick Porter <dick@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2004-07-09  Dick Porter  <dick@ximian.com>
2
3         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
4         Don't do any more processing if the matched length was 0.  It was
5         increasing the size of the string before.  Fixes bug 61167.
6
7 2004-07-09  Dick Porter  <dick@ximian.com>
8
9         * socket-io.h:
10         * socket-io.c
11         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12         Add support for SO_PEERCRED if its available.
13
14 2004-07-09  Peter Bartok <pbartok@novell.com>
15         * loader.c: winelib.exe.so error message is now only displayed if
16         MONO_DEBUG is set. To help us avoid questions when people are trying
17         out the new Managed.Windows.Forms.
18
19 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
20
21         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
22         for isinst and castclass wrappers.
23
24         * class-internals.h icall.c: Move registration and lookup of JIT icalls
25         to libmetadata from the JIT, so they could be used by the marshalling
26         code and the interpreter.
27
28         * marshal.c: Register marshalling related JIT icalls here instead of
29         in mini.c. Use CEE_MONO_ICALL instead of the family of 
30         CEE_MONO_PROC<x> opcodes to call marshalling functions.
31
32         * metadata.h: Remove unneeded marshalling conversions.
33
34         * opcodes.c: Update for new opcodes.
35         
36 2004-07-08  Martin Baulig  <martin@ximian.com>
37
38         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
39         (mono_debug_get_domain_data): Make this function static.
40
41 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
42
43         * gc.c, object.h: add nice GC handle API for embedders.
44
45 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
46
47         * reflection.c: more changes for the new api
48
49         * object.c: When we reflect on a field w/ a constant value, it
50         will not have a memory location, so we must access metadata. Also,
51         allow easier reading of strings so that we can read them from
52         the constant data.
53
54         * class.c (mono_class_layout_fields): no need for literal fields here.
55
56         * class-internals.h: api changes for const fields
57
58         * icall.c (ves_icall_get_enum_info): use new apis for const fields
59
60 2004-07-06  Martin Baulig  <martin@ximian.com>
61
62         * mono-debug.h: Increment version number to 44.
63
64         * mono-debug.c (mono_debug_add_wrapper): The second argument is
65         now a gpointer, rewrote this whole method.
66
67         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
68         function.  Add information about the wrapper in a new "misc table".
69
70         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
71         for the new misc table.
72
73 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
74
75         * metadata-internals.h image.c: Add a cache for helper signatures.
76
77         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
78
79 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
80
81         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
82         delegates from a delegate. Fixes #61033.
83         
84         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
85         marshalling of stringbuilder arrays. Fixes #59900.
86
87 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
88
89         * icall.c: Add EnumBuilder:setup_enum_type icall.
90
91 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
92
93         * icall.c: Added a new icall for the property version of
94         OffsetOfStringData.
95
96 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
97
98         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
99         it has a constant size across platforms.
100
101         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
102         stack trace.
103
104 2004-06-29  Martin Baulig  <martin@ximian.com>
105
106         * mono-debug.c (mono_debug_add_method): Protect the whole function
107         in mono_debugger_lock(), not just parts of it.
108
109 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
110
111         * reflection.c: make sure padding bytes in heaps are zeroed.
112
113 2004-06-24  David Waite  <mass@akuma.org>
114
115         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
116         image.c, loader.c, locales.c, marshal.c, metadata.c,
117         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
118         string-icalls.c, threads.c: change to C90-style comments from C99 /
119         C++ -style
120
121 2004-06-24  Dick Porter  <dick@ximian.com>
122
123         * threads.c
124         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
125         return createdNew.  Fixes bug 60412.
126
127         * threads-types.h: 
128         * icall.c: Add createdNew parameter to CreateMutex icall
129
130 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
131
132         * reflection.c, object-internals.h: save default value in params.
133
134 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
135
136         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
137         no need to build a new path combining that with the application base.
138         Fixes bug #60442.
139
140 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
141
142         * reflection.c: fixed minor standard compliance issues.
143
144 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
145
146         * reflection.c: fixed issue with encoding some custom attributes
147         (arrays in properties and fields, bug #60411).
148
149 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
150
151         * reflection.c: fix start address when copying the public key token.
152
153 2004-06-23  Martin Baulig  <martin@ximian.com>
154
155         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
156         the `exc' object in a static object to put it into the GC's root set.
157
158 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
159
160         * reflection.c: make mono_reflection_setup_internal_class ()
161         callable a second time to setup a new parent class.
162
163 2004-06-23  Dick Porter  <dick@ximian.com>
164
165         * threads.c: Check for WAIT_IO_COMPLETION return values.
166
167 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
168
169         * appdomain.c: Removed the g_free on the public key token. Now copy 
170         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
171         * assembly.c: Added public key token string value when loading 
172         assemblies. Fix bug #60439.
173         * icall.c: Added missing informations (like public key) in 
174         GetReferencedAssemblies. Fix #60519.
175         * image.h: Changed definition for public key token from const char*
176         public_tok_value to guchar public_key_token [17];
177         * reflection.c: Updated for changes to public key token.
178
179 2004-06-22  Lluis Sanchez Gual
180
181         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
182         for the field in base classes.
183
184 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
185
186         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
187         mark headers as not supported, they are installed only for use by the
188         debugger.
189
190 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
191
192         * *.c, *.h: avoid namespace pollution in public headers.
193
194 2004-06-21  Martin Baulig  <martin@ximian.com>
195
196         * exception.c (mono_get_exception_security): It's in
197         "System.Security", not in "System".
198
199         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
200         the exception classes.
201
202 2004-06-21  Martin Baulig  <martin@ximian.com>
203
204         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
205         Protect the exception object from being finalized.
206
207 2004-06-21  Martin Baulig  <martin@ximian.com>
208
209         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
210         public function.
211
212 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
213
214         * reflection.c: Load the assembly in mono_reflection_type_from_name,
215         if it was not loaded before. Fix parts of #60439.
216
217 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
218
219         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
220         code that was broken since Ben's change: wrappers are now
221         dependent on the method signature only again.
222
223 2004-06-21  Martin Baulig  <martin@ximian.com>
224
225         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
226         added interface support.
227
228 2004-06-21  Martin Baulig  <martin@ximian.com>
229
230         * class.c (mono_vtable_get_static_field_data): New public method.
231
232 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
233
234         * filewatcher.c : Windows build fix to be compliant with API changes.
235
236 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
237
238         * class.h, class.c: more accessors.
239         * metadata.h, metadata.c: prepare for hiding MonoType and
240         MonoMethodSignature: people should use the accessors from now on
241         outside of the tree.
242
243 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
244
245         * *.c, *.h: more API cleanups.
246
247 2004-06-18  Jackson Harper  <jackson@ximian.com>
248
249         * assembly.c: Trace loading assemblies.
250         * loader.c: Trace loading native libraries.
251         * mono-config.c: Trace loading config files.
252         
253 2004-06-18  Dick Porter  <dick@ximian.com>
254
255         * locales.c: Tell ICU the lengths of strings, it can cope with
256         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
257
258 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
259
260         * image.c: swapped name/filename;
261
262 2004-06-18  Martin Baulig  <martin@ximian.com>
263
264         * mono-debug-debugger.c (write_class): Write the parent class at
265         the end of the header.
266
267 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
268
269         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
270
271 2004-06-17  Raja R Harinath  <rharinath@novell.com>
272
273         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
274         (bundle_obj): New conditional define.
275         (BUILT_SOURCES): Remove.
276         ($(bundle_srcs)): Make parallel-make safe.
277         (libmonoruntime_la_LIBADD): Make unconditional.
278         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
279         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
280
281 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
282
283         * culture-info-tables.h: It was inconsistent with the latest
284           supp info files.
285
286 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
287
288         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
289         be loaded.
290
291         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
292         with gcc 2.95.
293
294 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
295
296         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
297         cleaned up public header threads.h.
298
299 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
300
301         * Makefile.am, *.c, *.h: more API cleanups.
302
303 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
304
305         * Makefile.am: removed monosn from compilation.
306         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
307         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
308         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
309         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
310         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
311         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
312
313 2004-06-15  Jackson Harper  <jackson@ximian.com>
314
315         * assembly.c: Make locales lower case when searching the GAC for
316         assemblies. gacutil will always make locales lowercase when
317         installing so this effectively makes them case insensitive.
318         
319 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
320
321         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
322         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
323           parameter which allows to choose whether the wait can be interrupted or 
324           not. Also added the method mono_monitor_enter(), which locks the monitor
325           using an infinite wait and without allowing interruption.
326           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
327           interrupted.
328         * object.h: Added new fields in MonoThread. suspend_event holds the event
329           used to susped/resume the thread. synch_lock is the lock object to use for
330           modifying the thread state.
331         * threads.c: Use the new synch_lock object for locking, instead of "this",
332           which can generate deadlocks.
333           Moved thread state change in Thread.Sleep and Thread.Join from managed
334           to unmanaged code. This avoids a deadlock when the thread was suspended
335           just after acquiring the thread lock.
336           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
337           Implemented Thread.Suspend using an event instead of ThreadSuspend,
338           which is not fully implemented in the io-layer.
339         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
340
341 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
342
343         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
344         threads-types.h: more API cleanups.
345
346 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
347
348         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
349         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
350         threadpool.c, threads.c: first pass at the exported API cleanup.
351
352 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
353
354         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
355
356 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
357
358         * icall.c: added internalGetHome.
359
360 2004-06-14  Dick Porter  <dick@ximian.com>
361
362         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
363         possible to return successfully when '.' or '..' were the only
364         entries in a directory, but were skipped.  The MonoIOStat was not
365         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
366         Fixes bug 59574.
367
368 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
369
370         * reflection.c: make binaries run on .Net 1.1 by default.
371
372 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
373
374         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
375
376 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
377
378         * marshal.c: keep track of struct size with explicit layout
379         (bug #59979).
380
381 2004-06-12  Martin Baulig  <martin@ximian.com>
382
383         * mono-debug-debugger.c: Comment out a debugging g_message().
384
385 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
386
387         * reflection.c, reflection.h: do not free custom attrs that are cached.
388         * icall.c: use braces to make code clearer.
389
390 2004-06-11  Martin Baulig  <martin@ximian.com>
391
392         * class.h (MonoInflatedField): New type.
393         (MonoClassField): Replaced `MonoType *generic_type' with
394         `MonoInflatedField *generic_info'.
395
396         * icall.c
397         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
398
399 2004-06-11  Martin Baulig  <martin@ximian.com>
400
401         * reflection.c (mono_image_create_method_token): Correctly encode
402         varargs methods.
403
404 2004-06-11  Martin Baulig  <martin@ximian.com>
405
406         * metadata.c (mono_metadata_parse_method_signature): When parsing
407         a MethodDef which has VarArgs, also set sentinelpos if we don't
408         have any parameters.
409
410 2004-06-11  Martin Baulig  <martin@ximian.com>
411
412         * verify.c (mono_method_verify): In CEE_CALL, use
413         mono_method_get_signature() to get the method's signature, unless
414         we're a PInvoke method.
415
416 2004-06-10  Jackson Harper  <jackson@ximian.com>
417
418         * assembly.c: Use <path>/lib/mono/gac for the extra paths
419         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
420         logical name as the supplied path is just a prefix to the gac not
421         the direct path to it.
422         
423 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
424
425         * reflection.c: make the token for a created method match
426         the token of the MethodBuilder it was created from
427         (IKVM requires this behaviour now).
428
429 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
430
431         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
432         reflection.c, socket-io.c: leak fixes.
433
434 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
435
436         * icall.c: handle sentinel pos in vararg methods in position different
437         from 0.
438
439 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
440
441         * culture-info-tables.h: freshly generated.
442
443 2004-06-09  Martin Baulig  <martin@ximian.com>
444
445         * loader.c (mono_get_method_constrained): Call `mono_class_init
446         (constrained_class)'.   
447
448 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
449
450         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
451         any methods. Fixes #59629.
452
453 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
454
455         * culture-info-tables.h: reflecting locale-builder updates.
456
457 2004-06-08  Dick Porter  <dick@ximian.com>
458
459         * object.h:
460         * locales.c: Fixed compile warnings, including a real bug in
461         CompareInfo_internal_compare.
462         
463 2004-06-08  Dick Porter  <dick@ximian.com>
464
465         * locales.c
466         (ves_icall_System_Globalization_CompareInfo_internal_index):
467         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
468         Double-check the resuls of usearches, because ICU currently
469         ignores most of the collator settings here.  Fixes bug 59720.
470         
471 2004-06-08  Dick Porter  <dick@ximian.com>
472
473         * locales.c
474         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
475         Fix memory leak and segfault-causing typo.  No idea how this one
476         lasted so long without being noticed.
477
478 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
479
480         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
481         any methods. Fixes #59629.
482
483 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
484
485         * assembly.c:
486         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
487         own the critical section before). Removed dead code (that's done
488         in the preload hook).
489
490         (mono_assembly_load_with_partial_name): call the preload hook.
491
492 2004-06-08  Martin Baulig  <martin@ximian.com>
493
494         * metadata.c (mono_metadata_signature_alloc): Default
495         `sentinelpos' to -1.
496
497         * reflection.c (mono_image_get_array_token): Likewise.
498
499 2004-06-08  Martin Baulig  <martin@ximian.com>
500
501         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
502
503         * metadata.c (mono_metadata_parse_method_signature): When parsing
504         a MethodDef which has VarArgs, set sentinelpos.
505
506         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
507         `gint16' since we're using -1 for non-varargs methods.
508
509         * reflection.c
510         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
511         (method_encode_signature): Added varargs support.
512         (method_builder_encode_signature): Likewise.
513         (mono_image_get_varargs_method_token): New static method.
514         (mono_image_create_method_token): New public method; this is
515         called via an icall instead of mono_image_create_token() when
516         calling a varargs method.       
517
518 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
519
520         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
521
522 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
523
524         * culture-info-tables.h : Reflecting the latest locale-builder that
525           fixed empty array representation ({} to {0}).
526
527 2004-06-07  Jackson Harper  <jackson@ximian.com>
528
529         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
530         looking up extra gac paths. This allows MONO_GAC_PATH to act
531         exactly like a prefix.
532         
533 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
534
535         * reflection.c (mono_reflection_type_from_name): Make a copy of the
536         type name before modifying it. Fixes #59405.
537
538 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
539
540         * culture-info.h: added fields for "all datetime patterns".
541         * locales.c: (  ves_icall_System_Globalization_CultureInfo
542           _construct_datetime_format ()): fill xxx_patterns fields.
543         * object.h: added fields for "all datetime patterns" to
544           MonoDateTimeFormatInfo.
545         * culture-info-tables.h: reflecting locale-builder updates.
546
547 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
548
549         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
550         the event has no add and remove methods. Fixes #59629.
551
552 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
553
554         * object.c: Fixed possible integer overflow when allocating large
555         strings.
556
557 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
558
559         * culture-info-tables.h: reflecting locale-builder updates.
560
561 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
562
563         * culture-info-tables.h: reflecting locale-builder updates.
564
565 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
566
567         * culture-info-tables.h: reflecting locale-builder updates.
568
569 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
570
571         * threads.c: Made Thread.Sleep abortable.
572
573 2004-06-02  Martin Baulig  <martin@ximian.com>
574
575         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
576
577         * debug-mono-symfile.h: Bumped symbol file version number to 37.
578
579 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
580
581         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
582
583 2004-05-30  Jackson Harper  <jackson@ximian.com>
584
585         * reflection.c: Do not hardcode assembly versions or public key
586         tokens anymore. All of this except the corlib section was dead
587         code anyways.
588         
589 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
590
591         * object.c (mono_runtime_invoke_array): Automatically create boxed
592         objects for byref valuetypes if needed. Fixes #59300.
593         
594         * object.c (mono_method_return_message_restore): Handle 
595         MONO_TYPE_OBJECT as well.
596
597 2004-05-28  Jackson Harper  <jackson@ximian.com>
598
599         * reflection.c: The modified type encoding was causing build
600         problems. Reverted for now.
601         
602 2004-05-28  Jackson Harper  <jackson@ximian.com>
603
604         * reflection.c/h: Take an assembly ref so that we dont create
605         fully qualified names when encoding types in the same assembly as
606         the custom attribute being emitted.
607         * appdomain.c: Increment version number.
608         
609 2004-05-26  Duncan Mak  <duncan@ximian.com>
610
611         * icall.c
612         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
613         Set the full version number (major, minor, build, revision).
614
615 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
616
617         * marshal.c (emit_struct_conv): increment src/dst after blit
618         (mono_marshal_get_managed_wrapper,
619         mono_marshal_get_native_wrapper): make sure we have marshalling
620         info before marshalling params (info computation affects
621         blittable)
622
623         * class.c (class_compute_field_layout): correctly deal with
624         blittable
625         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
626         value types (as per what windows dows by default)
627         (mono_class_setup_mono_type): System.ValueType is blittable
628         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
629         blittable
630
631         * marshal.c (mono_marshal_load_type_info): flag types  as
632         non-blittable if the native layout doesn't match the managed
633         layout
634
635 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
636
637         * appdomain.c: don't add stuff in the private search path that is
638         above the application base. If application base is not set, there's
639         no private search path.
640
641 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
642
643         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
644         byref struct arguments in native->managed marshalling.
645
646 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
647
648         * marshal.c (mono_marshal_get_runtime_invoke): correctly
649         cache methods using signature (special case for methods
650         that are value type or string class)
651         
652         * image.c (mono_image_close): clean up allocated GSList's
653         in runtime_invoke_cache.
654
655 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
656
657         * mono-config.c: set the correct path for mono_cfg_dir on windows when
658         there's no MONO_CFG_DIR environment variable defined.
659
660 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
661
662         * threads.c: windows version must be >= 0x0500 to include OpenThread.
663
664 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
665
666         * threadpool.c: Really wait for 500ms after the async call, even if the wait
667           is interrumped.
668         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
669           before waiting for it, and call CloseHandle after the wait to unref it.
670           This will make sure that handles are not disposed too early.
671
672 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
673
674         * appdomain.c:
675         * appdomain.h:
676         * icall.c: removed
677         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
678         needed now.
679
680         * object.c: se the application_base only for the domain that runs
681         Main. Fixes bug #59216,
682
683 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
684
685         * appdomain.c:
686         * object.c: only the domain in which Main is run have
687         SetupInformation.ConfigurationFile set, so moved a few lines from
688         appdomain.c to object.c.
689
690 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
691
692         * appdomain.c: we tried to load [name].(dll|exe), but according
693         to bug #57710, we must also try [culture]/[name].(dll|exe) and
694         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
695         There's a test case attached to bug #58922.
696
697 2004-05-27  Dick Porter  <dick@ximian.com>
698
699         * icall.c:
700         * file-io.c: Implemented icalls for locking and unlocking regions
701         in a file.
702         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
703         FALSE on error (fixes both compiler warning and real bug.)
704
705 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
706
707         * culture-info-tables.h: reflecting locale-builder updates.
708
709           (Added missing ChangeLog entry for 05/26)
710
711 2004-05-27  Jackson Harper  <jackson@ximian.com>
712
713         * locales.c: Fix some cut and paste errors.
714         
715 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
716
717         * mono-config.c: set the correct path for config. directory on windows.
718
719 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
720
721         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
722           on win32.
723
724 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
725
726         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
727         from pinvoke functions.
728         
729         * marshal.c (mono_ftnptr_to_delegate): Implement this.
730
731 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
732
733         * culture-info-tables.h: reflecting locale-builder updates.
734
735 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
736
737         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
738         #59086.
739
740 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
741
742         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
743         * icall.c: Modified icalls for RNG.
744         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
745         Windows (CryptoAPI).
746
747 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
748
749         * locales.c: Fix build.
750
751 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
752
753         * culture-info-tables.h: reflecting locale-builder updates.
754
755 2004-05-25  Jackson Harper  <jackson@ximian.com>
756
757         * locales.c: When creating the current culture use the $LANGs
758         specific culture. So DateTimeFormat and NumberFormat entries are created.
759         
760 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
761
762         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
763         a char array as parameter.
764
765 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
766
767         * image.c: In mono_image_open(), always use an absolute path name to
768           look for already loaded images.
769
770 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
771
772         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
773         missing in the windows build (like older cygwin include files).
774
775 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
776
777         * icall.c: Fixed check for possible integer overflow in Buffer_
778         BlockCopy icall. Replaced comments style // by /* */.
779
780 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
781
782         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
783         
784         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
785         check after MONO_VTADDR. Fixes pinvoke2.exe.
786
787         * marshal.h marshal.c metadata.h: Add beginnings of support for
788         ftnptr -> delegate marshalling.
789
790 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
791
792         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
793         * threads.c: Fix warnings.
794
795 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
796
797         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
798         * icall.c: Registered icalls for Suspend and Resume.
799         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
800           Thread.Abort.
801         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
802         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
803         * process.c: Use WaitForSingleObjectEx.
804         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
805           checkpoints.
806         * threads.c, threads.h: Make use of new Ex wait methods. Improved
807           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
808           for Suspend and Resume. Added new mono_thread_stop, used for stoping
809           background threads. Added basic support for Abort in Windows.
810           Start new threads using a managed delegate invoke wrapper. This wrapper
811           has an interruption checkpoint that is needed since an interruption
812           can be requested before the thread leaves the unmanaged code that starts 
813           the thread.
814         * marshal.c: Added interruption checkpoint after every native call, and
815           also before managed calls for wrappers called from unmanaged code to
816           go into managed code.
817         * object.h: Added new field in MonoThread to keep track of interruption
818           requests.
819
820 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
821
822         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
823         calls.
824
825 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
826
827         * appdomain.c:
828         * assembly.c:
829         * gc.c:
830         * locales.c:
831         * mono-config.c:
832         * rand.c: getenv -> g_getenv (windows!)
833
834         * process.c: complete_path is also used on non-windows platforms.
835
836 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
837
838         * icall.c: new signature for Process_Start.
839
840         * process.[ch]: new signature for Process_Start. If we're on windows
841         and UseShellExecute is false, we have to search for the program by
842         ourselves if we don't get a full path.
843
844 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
845
846         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
847         marshalling and call CleanUpNativeData if needed. Fixes #58646.
848
849 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
850
851         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
852         Fixes bug #58373.
853
854 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
855
856         * process.c: use double quotes to quote program name and arguments on
857         windows. Fixes bug #58575.
858
859 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
860
861         * file-io.c: don't return "." and ".." when using windows Find*File.
862
863 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
864
865         * marshal.c: Don't pass wrappers to message init because method 
866         addressed used to lookup metadata. part of remoting[2|3] fix.
867
868 2004-05-15  Jackson Harper  <jackson@ximian.com>
869
870         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
871         path is essentially the same as MONO_PATH except that it points to
872         GACs instead of lib directories.
873         * loader.h: The user gac is gone so we dont need function to
874         enable/disable it.
875         * mono-config.c: user gac option is now gone.
876         
877 2004-05-15  Jackson Harper  <jackson@ximian.com>
878
879         * culture-info.h: Make defines more consistent, add calendar data
880         to the culture info table.
881         * culture-info-tables.h: Add basic calendar data. Basically
882         everyone gets default gregorian until all the data is
883         updated.
884         * locales.c: Use the new consistent defines. Set calendar data for
885         culture info objects.
886         * object.h: add a field for calendar data to CultureInfo
887         
888 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
889
890         * image.c: image->runtime_invoke_cache is keyed on signatures now.
891         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
892         a signature.
893         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
894         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
895         an extra param that is the pointer of the method to invoke. The IL for
896         the invoke method is no longer specific to the method, but to the
897         signature of the method. Thus, we can share the same code for multiple
898         methods. This reduces the number of methods that have to be compiled.
899
900 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
901
902         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
903
904         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
905
906         * icall.c: Optimize Buffer.BlockCopy.
907
908 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
909
910         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
911         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
912         quote). Changed them to "MMMM yyyy".
913
914 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
915
916         * rand.c
917         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
918
919 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
920
921         * reflection.h: Updated after changes to managed structures.
922
923         * appdomain.c: Bump corlib version.
924
925 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
926
927         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
928         windows.
929
930 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
931
932         * Makefile.am: link to ../os/libmonoos.la on windows.
933
934         * assembly.c:
935                 -If MONO_DEBUG, warn about non-existing directories in
936                 MONO_PATH.
937                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
938                 compile time variable.
939                 -Removed init_default_path and call mono_set_rootdir from
940                 libmonoos.a instead (windows only).
941
942         * assembly.h: declare mono_assembly_getrootdir().
943
944         * domain.c:
945         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
946
947         * loader.c: s/getenv/g_getenv/
948
949 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
950
951         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
952
953         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
954
955         * metadata.h: Add new marshalling conversions.
956
957         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
958         function.
959
960         * reflection.c (mono_reflection_get_type): Lookup the type in all
961         modules of a multi-module assembly. Fixes #58291.
962
963 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
964
965         * threads.c: Before aborting a background, set the StopRequested
966         state.  This avoids throwing the Abort exception.
967         In mono_thread_manage, don't continue with the shutdown until all
968         aborted threads have actually stopped.
969
970 2004-05-10  Jackson Harper  <jackson@ximian.com>
971
972         * locales.c: Remove the modifier from culture names.
973         
974 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
975
976         * Makefile.am: monosn is not installed any more. It has been deprecated
977         in favor of sn.
978
979 2004-05-07  Jackson Harper  <jackson@ximian.com>
980
981         * locales.c
982         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
983         Fix array construction, add bailout if the length is 0.
984
985 2004-05-07  Dick Porter  <dick@ximian.com>
986
987         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
988         machine doesn't have a DNS entry.  Patch by Urs Muff
989         (umuff@quark.com), fixes bug 57928.
990
991 2004-05-06  Jackson Harper  <jackson@ximian.com>
992
993         * reflection.c: Handle null PublicTokens properly. alloc mem for
994         assembly names culture so we dont crash when freeing it.
995         
996 2004-05-06  Jackson Harper  <jackson@ximian.com>
997
998         * assembly.c: Check the usergac when loading with partial names.
999         
1000 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
1001
1002         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
1003         does nothing for now (not required for Linux/Windows) but the class
1004         library can call it (and a newer or modified runtime could need it).
1005         * icall.c: Registred icall.
1006
1007 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1008
1009         * loader.c: prints a message on module loading error we set MONO_DEBUG
1010         environment variable.
1011
1012 2004-05-05  Jackson Harper  <jackson@ximian.com>
1013
1014         * appdomain.c: Handle PublicKeyToken=null properly.
1015         
1016 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
1017
1018         * environment.c|h: Added icall ves_icall_System_Environment_
1019         GetOSVersionString to get the current OS version as a string.
1020         * icall.c: Registred icall.
1021
1022 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
1023
1024         * object.c: in mono_object_get_virtual_method(), take into account that
1025         non-virtual methods don't have a slot in the vtable. Check needed when
1026         the object is a proxy.
1027
1028 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
1029
1030         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
1031         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
1032
1033         * object.c (mono_class_compute_gc_descriptor): Fix warning.
1034
1035         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
1036         passed when a valuetype is expected.
1037
1038         * object.c (mono_unhandled_exception): Only set the exit code if the
1039         exception happens in the main thread. Fixes thread5.exe.
1040
1041         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
1042         invalid names. Fixes #58047.
1043
1044 2004-05-03  Jackson Harper  <jackson@ximian.com>
1045
1046         * assembly.c: This line was committed accidently and is unneeded.
1047         
1048 2004-05-03  Jackson Harper  <jackson@ximian.com>
1049
1050         * icall.c: Add new icall for Assembly::LoadWithPartialName
1051         * assembly.c/.h: new function that probes the GAC to load partial
1052         assembly names by Paolo Molaro.
1053         
1054 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1055
1056         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
1057         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
1058         (type_get_fully_qualified_name): Added PublicKeyToken when building a
1059         full type name.
1060
1061 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1062
1063         * appdomain.c: fixed check for 'neutral' culture and removed warning.
1064         * reflection.c: fix bug when parsing a full type name and Version is not
1065         the last thing in the string.
1066
1067 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
1068
1069         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
1070         crashes when it is freed.
1071
1072 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1073
1074         * assembly.c: print the compat warning to stderr.
1075
1076 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
1077
1078         * assembly.c (mono_assembly_load_references): Add a compatibility
1079         hack to run old applications that might be still referencing the
1080         3300-based assemblies, only do this for System.xxx.
1081
1082 2004-05-01  Jackson Harper  <jackson@ximian.com>
1083
1084         * appdomain.c: If the culture is neutral we set it to "".
1085         
1086 2004-04-29  Jackson Harper  <jackson@ximian.com>
1087
1088         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
1089
1090 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1091  
1092         * string-icalls.c: added low overhead function for copying chars
1093         * icall.c: added needed icall for the above function
1094  
1095 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1096
1097         * icall.c: fix return value of get_global_assembly_cache.  Implemented
1098         Environment.GetLogicalDrives.
1099
1100 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
1101
1102         * rand.c: try and talk to egd or prngd
1103         for random bytes if opening devices fail.
1104
1105 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
1106
1107         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
1108         alignment for the type using the native alignment of its members 
1109         instead of using klass->min_align.
1110
1111         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
1112
1113 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1114
1115         * file-io.c:
1116         * socket-io.c: added check for sys/aio.h.
1117
1118 2004-04-28  Dick Porter  <dick@ximian.com>
1119
1120         * threads.c: Don't abort a thread thats already aborting, when
1121         terminating everything.
1122
1123 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1124
1125         * icall.c: added 2 new async calls for Socket.
1126
1127         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
1128         IO on *nix systems.
1129
1130         * threadpool.c: removed unused variable.
1131
1132 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
1133
1134         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
1135
1136 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1137
1138         * locales.c: put back string_invariant_tolower () and
1139         string_invariant_toupper ().
1140
1141 2004-04-26 David Waite <mass@akuma.org>
1142
1143         * file-io.h:
1144         * socket-io.h:
1145         * threads.h:
1146         * unicode.h: remove comma from end of enumeration declarations
1147
1148 2004-04-26 David Waite <mass@akuma.org>
1149
1150         * debug-mono-symfile.h:
1151         * decimal.c:
1152         * mono_debug.h:
1153         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
1154
1155
1156 2004-04-26  Jackson Harper  <jackson@ximian.com>
1157
1158         * appdomain.c: Increment version number.
1159         
1160 2004-04-26  Jackson Harper  <jackson@ximian.com>
1161
1162         * appdomain.c: Set assembly references public token value when
1163         PublicKeyToken is specified, not the hash_value. Free public token
1164         values when free assembly name data. Previously the public key
1165         token was hex decoded, however we are using hex encoded public key
1166         tokens, so this is not neccasary.
1167         * assembly.c: Lookup assemblies in the gac if their public token
1168         value is set. Add function to allow enabling user gac
1169         lookups. Specify whether or not the assembly was loaded from the
1170         GAC. Compare full assembly names when checking the cache for
1171         assemblies (Temporarily disabled see comment in code). Remove
1172         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
1173         specifies trace-loader they get extra info to stdout on the
1174         loading of assemblies.
1175         * image.h: Add a field for an assembly references public token
1176         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
1177         whether an assembly has been loaded from the GAC.
1178         * image.c: Remove a corlib -> mscorlib name mapping.
1179         * loader.h: Add function to enable/disable the user gac.
1180         * mono-config.c: Check if the usergac is enabled in the config
1181         file.
1182         * icall.c: New icall to determine whether or not an assembly has
1183         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
1184         * tabldefs.h: Add constant for assemblyref flag that specifies a
1185         full public key is used instead of a public token.
1186         * reflection.c: Remove mscorlib -> corlib mappings. Set
1187         PublicTokenValue instead of hash value. This value is a hex
1188         string so it does not need to be expanded.
1189
1190 2004-04-26  Martin Baulig  <martin@ximian.com>
1191
1192         * mono-debug-debugger.c (mono_debugger_initialize): Set
1193         `mono_debugger_initialized' before calling mono_debug_lock().
1194
1195 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
1196
1197         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
1198           InternalToUpper/InternalToLower.
1199         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
1200           removed invariant culture shortcut.  This is now done in managed code.
1201         * locales.c: (string_invariant_toupper/tolower) removed.
1202
1203 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1204
1205         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
1206         Added Poll internal call.
1207
1208         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
1209         call for Poll. Select was too heavy for polling a single socket.
1210
1211         * threadpool.[ch]: added mono_threadpool_cleanup.
1212         * threads.c: use it. Don't use Thread_Abort on windows.
1213
1214 2004-04-23  Martin Baulig  <martin@ximian.com>
1215
1216         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
1217
1218 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
1219
1220         * icall.c: Registred new icalls for key pair protection and added an
1221         icall for Environment.GetFolderPath on Windows.
1222         * security.c|h: Added new icalls for key pair protection.
1223
1224 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1225
1226         * socket-io.c: don't display the non-supported family warning for known
1227         families. Now this is not displayed on windows when checking support
1228         for IPv4/IPv6.
1229
1230 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1231
1232         * class.c: don't display the layout warning for static fields.
1233
1234 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
1235
1236         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
1237         * locales.c, locales.h: Added new icalls for culture-specific
1238         Char.ToLower and Char.ToUpper.
1239
1240 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1241
1242         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
1243         by David Waite.
1244
1245 2004-04-20  Martin Baulig  <martin@ximian.com>
1246
1247         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
1248         of the type name before passing it to mono_reflection_type_from_name().
1249
1250 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
1251
1252         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
1253         encodings here. Fixes #56965.
1254
1255 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
1256
1257         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
1258         fix test on strstr result not that I can see anything that
1259         relies on the result.
1260
1261 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
1262
1263         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
1264         Fixes #57081.
1265
1266         * marshal.c (mono_marshal_get_string_encoding): New helper function.
1267
1268         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
1269         function to determine which marshalling to use for strings. Fixes
1270         #56965.
1271
1272         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
1273
1274         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
1275
1276 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
1277
1278         * icall.c: #include mono-config.h
1279
1280 2004-04-15  Jackson Harper  <jackson@ximian.com>
1281
1282         * culture-info-tables.h: Fix date formats for en-US culture.
1283         
1284 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
1285
1286         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
1287         ThreadPool.SetMinThreads.
1288         * threadpool.c: Implemented ThreadPool.GetMinThreads and
1289         ThreadPool.SetMinThreads.
1290
1291 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
1292
1293         * mono-config.c: also load the .config file in the directory
1294         where the assembly was found.
1295
1296 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
1297
1298         * assembly.c: load per-assembly config files.
1299         * icall.c: decrapified code to get the config dir and moved to
1300         mono-config.c.
1301         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
1302         per-assembly config files. When doing a dll map lookup give precedence
1303         to the per-assembly data.
1304
1305 2004-04-14  Martin Baulig  <martin@ximian.com>
1306
1307         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
1308         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
1309         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
1310
1311         * mono-debugger-debugger.c: While the debugger is locked, remember
1312         whether the symbol tables have changes and send one single
1313         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
1314
1315 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
1316
1317         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
1318
1319         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
1320         function.
1321
1322         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
1323         account when marshalling string arrays. Fixes #56965.
1324
1325 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
1326
1327         * icall.c: Add new icalls mapping for security.
1328         * security.c|h: Add internal calls for WindowsIdentity,
1329         WindowsImpersonationContext and WindowsPrincipal.
1330
1331 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
1332
1333         * class.c: Added comment to ensure the System.MonoDummy class
1334         is removed when no longer necessary
1335
1336 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
1337
1338         * appdomain.c: Pass arguments to the bootstraping exceptions to
1339         minimize JITed methods at boot
1340
1341         * metadata.c (mono_exception_from_name_two_strings): Allow for the
1342         second string to be null.
1343
1344         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
1345         Change the protocol to minimize the JIT methods at startup.  Now
1346         it Returns the internal codepage, if the value of "int_code_page"
1347         is 1 at entry, and we can not compute a suitable code page
1348         number, returns the code page as a string.
1349
1350 2004-04-13  Jackson Harper  <jackson@ximian.com>
1351
1352         * culture-info-tables.h: Fix number of decimal digits for all
1353         english locales.
1354
1355 2004-04-13  Jackson Harper  <jackson@ximian.com>
1356
1357         * icall.c: Clairfy out of sync error message. It is not always
1358         your corlib that is out of sync.
1359
1360 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
1361
1362         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
1363         properties when only the set accessor is overriden. Fixes #55874.
1364
1365 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
1366
1367         * assembly.c (mono_assembly_load_references): Make this thread safe.
1368         Fixes #56327.
1369
1370 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
1371
1372         * monosn.c: Add missing initialization calls.
1373
1374 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
1375
1376         * locales.c:
1377         ves_icall_System_Globalization_CultureInfo_construct_number_format
1378         Fix g_assert so it compiles on fussier compilers re int/ptr
1379         mismatch
1380
1381 2004-04-08  Dick Porter  <dick@ximian.com>
1382
1383         * socket-io.h:
1384         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
1385         53992.  Also rearrange the code so that the internal calls return
1386         an error value and exceptions are thrown from managed code.
1387
1388         * icall.c: Add type info to the socket icalls.
1389
1390 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1391
1392         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
1393         owes me a beer.
1394
1395 2004-04-07  Martin Baulig  <martin@ximian.com>
1396
1397         * class.c (mono_class_from_generic_parameter): Don't default
1398         `klass->parent' to `mono_defaults.object_type'.
1399
1400 2004-04-07  Martin Baulig  <martin@ximian.com>
1401
1402         * reflection.c (mono_reflection_initialize_generic_parameter): Set
1403         `param->pklass->reflection_info'.       
1404
1405 2004-04-07  Jackson Harper  <jackson@ximian.com>
1406
1407         * culture-info-tables.h: Fix date separator symbol.
1408         
1409 2004-04-07  Martin Baulig  <martin@ximian.com>
1410
1411         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
1412         from System.Type to System.MonoType.
1413
1414 2004-04-07  Martin Baulig  <martin@ximian.com>
1415
1416         * reflection.h
1417         (MonoReflectionGenericParam): Added `has_reference_type' and
1418         `has_value_type' fields.
1419
1420         * reflection.c (mono_image_get_generic_param_info): Encode the
1421         correct flags if we have the `class' or `struct' constraint.
1422
1423 2004-04-07  Martin Baulig  <martin@ximian.com>
1424
1425         * reflection.h
1426         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
1427
1428 2004-04-07  Jackson Harper  <jackson@ximian.com>
1429
1430         * appdomain.c: Revert extra patches, just wanted to bump the
1431         version number.
1432         
1433 2004-04-07  Jackson Harper  <jackson@ximian.com>
1434
1435         * Makefile.am: Add culture-info private headers.
1436         * icall.c: Add new icalls for contructing locales.
1437         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
1438         * locales.h: Declare new culture info construction methods.
1439         * object.h: Add new fields used to avoid the CultureMap to
1440         MonoCultureInfo.
1441         * culture-info.h: Definition of structs used in the culture info
1442         tables.
1443         * culture-info-tables.h: Autogenerated tables that contain culture
1444         info data. This file was generated with the locale-builder tool.
1445         * appdomain.c: Incement corlib version number.
1446         
1447 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
1448
1449         * appdomain.c: (mono_runtime_init) move mono_thread_init
1450         to before mono_object_new calls so critical sections
1451         are initialized before use.
1452
1453 2004-04-07  Martin Baulig  <martin@ximian.com>
1454
1455         * icall.c
1456         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
1457         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
1458         (ves_icall_MonoGenericParam_initialize): Removed.
1459         (monogenericparam_icalls): Removed.
1460         (generictypeparambuilder_icalls): Added new table for
1461         System.Reflection.Emit.GenericTypeParameterBuilder.
1462
1463         * reflection.c
1464         (mono_reflection_define_generic_parameter): Removed.
1465         (mono_reflection_initialize_generic_parameter): This is now called
1466         from GenericTypeParameterBuilder's .ctor.
1467
1468 2004-04-06  Martin Baulig  <martin@ximian.com>
1469
1470         * class.c (mono_class_init): Don't inflate nested classes in a
1471         generic instance.
1472         (mono_type_get_name_recurse): Include the generic arguments for
1473         generic instances and generic type declarations.
1474         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
1475         (_mono_class_get_instantiation_name): Removed.
1476         (mono_class_create_generic): Always use `gklass->name' as our name.
1477
1478         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
1479
1480         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
1481         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
1482         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
1483         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
1484         closed generic methods here.
1485
1486         * reflection.c
1487         (mono_reflection_generic_inst_get_nested_types): Removed.
1488         (inflate_mono_method): Copy the generic parameters from the
1489         MonoMethodHeader into out MonoGenericMethod.
1490
1491 2004-04-06  Martin Baulig  <martin@ximian.com>
1492
1493         * row-indexes.h
1494         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
1495
1496         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
1497
1498         * reflection.c (build_compressed_metadata): If we have any entries
1499         in the GenericParam, MethodSpec or GenericParamConstraint tables,
1500         set the header version to 1.1.
1501
1502 2004-04-06  Martin Baulig  <martin@ximian.com>
1503
1504         * class.c (mono_class_init): If we're a generic instance,
1505         initialize our nested classes, too.
1506         (_mono_class_get_instantiation_name): Deal with the new `!%d'
1507         suffix. 
1508
1509 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1510
1511         * process.c: quote the argument passed to the shell on windows.
1512
1513 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
1514
1515         * threads.c (mono_alloc_special_static_data): Allow this to be
1516         called during startup.
1517
1518 2004-04-02  Martin Baulig  <martin@ximian.com>
1519
1520         * icall.c
1521         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
1522
1523 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
1524
1525         * icall.c: Fix build.
1526
1527 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
1528
1529         * Makefile.am: Added security.c|h.
1530         * icall.c: Added icall for get_UserName;
1531         * security.c: New file for security related icalls. Added function
1532         get_UserName for System.Environment (fix #56144).
1533         * security.h: New. Header file for security.c
1534
1535 2004-04-02  Dick Porter  <dick@ximian.com>
1536
1537         * icall.c: Deleted the icalls that were obsoleted some time ago
1538         by the ICU string code, and which were mixed into the icall
1539         rearranging.  Fixes bug 55969.
1540
1541         * string-icalls.h: 
1542         * string-icalls.c: Deleted the code that those icalls reference.
1543
1544 2004-04-01  Martin Baulig  <martin@ximian.com>
1545
1546         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
1547
1548         * class.c (mono_class_from_generic_parameter): Don't set 
1549         TYPE_ATTRIBUTE_INTERFACE.
1550         (my_mono_class_from_generic_parameter): Likewise.
1551
1552 2004-04-01  Martin Baulig  <martin@ximian.com>
1553
1554         * loader.c (find_method): Added an optional `MonoClass *ic'
1555         argument to search in a specific interface.
1556         (mono_get_method_constrained): New public function.
1557
1558 2004-04-01  Martin Baulig  <martin@ximian.com>
1559
1560         * reflection.c (mono_image_get_generic_field_token): Use the
1561         `handleref' cache here.
1562
1563 2004-04-01  Martin Baulig  <martin@ximian.com>
1564
1565         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
1566
1567         * reflection.c (create_generic_typespec): Use the `typespec' hash
1568         here, not the `typeref' one.    
1569
1570 2004-04-01  Martin Baulig  <martin@ximian.com>
1571
1572         * class.c (mono_class_inflate_generic_type): Moved the
1573         functionality into a new static inflate_generic_type() which
1574         returns NULL if it didn't do anything.  Only increment the
1575         `mono_stats.inflated_type_count' if we actually inflated
1576         something.
1577         (mono_class_get_full): Check the classes type to see whether we
1578         need to inflate it; also inflate MONO_TYPE_(M)VAR.
1579
1580 2004-04-01  Jackson Harper  <jackson@ximian.com>
1581
1582         * reflection.c: Set culture for assembly references.
1583         
1584 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
1585
1586         * reflection.[ch], icall.[ch], Fix support for pinning variables.
1587
1588 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1589
1590         * assembly.c:
1591         (do_mono_assembly_open): the critical section also covers
1592         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
1593
1594 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1595
1596         * threads.c:
1597         (mono_manage_threads): abort the background threads when finishing.
1598         Fixes bug #47232.
1599
1600 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1601
1602         * gc.c: only close the done_event handle if there was no timeout.
1603         C-ified comments.
1604
1605 2004-03-30  Martin Baulig  <martin@ximian.com>
1606
1607         * icall.c (icall_entries): It's called "System.Activator", not
1608         "System.Activation".    
1609
1610 2004-03-30  Martin Baulig  <martin@ximian.com>
1611
1612         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
1613         (mono_class_create_from_typespec): Likewise.
1614
1615 2004-03-30  Martin Baulig  <martin@ximian.com>
1616
1617         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
1618         `has_ctor_constraint' and `initialized'.
1619
1620 2004-03-30  Martin Baulig  <martin@ximian.com>
1621
1622         * reflection.c (encode_new_constraint): New static function to add
1623         the constructor constraint attribute to a type parameter.
1624         (encode_constraints): Call encode_new_constraint() if necessary.
1625
1626         * reflection.h
1627         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
1628
1629         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
1630         
1631 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1632
1633         * reflection.c, icall.c: add support for pinning variables. 
1634
1635 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
1636
1637         * marshal.c (mono_marshal_get_managed_wrapper):
1638         init bool local with zero rather than null.
1639
1640 2004-03-29  Martin Baulig  <martin@ximian.com>
1641
1642         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
1643         the "official" behavior here.
1644         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
1645
1646 2004-03-29  Martin Baulig  <martin@ximian.com>
1647
1648         * icall.c: Reflect latest API changes.
1649
1650 2004-03-29  Martin Baulig  <martin@ximian.com>
1651
1652         * loader.c (mono_get_method_from_token): Also call
1653         mono_metadata_load_generic_params () for abstract and interface
1654         methods; replace the type arguments in the method signature with
1655         the ones which are loaded from the metadata.
1656
1657 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
1658
1659         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
1660         of the lock is not the current thread. MS.NET don't do it, in spite of
1661         what the documentation says. See bug #56157.
1662
1663 2004-03-28  Martin Baulig  <martin@ximian.com>
1664
1665         * class.c (mono_class_init): Don't call init_properties() and
1666         init_events() for generic instances; set `prop->parent' when
1667         inflating properties.
1668
1669         * reflection.c (mono_generic_inst_get_object): Call
1670         `mono_class_init (ginst->klass)'.
1671         (mono_type_get_object): Only create a MonoGenericInst if your
1672         generic type is a TypeBuilder.
1673         (do_mono_reflection_bind_generic_parameters): Only set
1674         `ginst->is_dynamic' if our generic type is a TypeBuilder.
1675
1676 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
1677
1678         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
1679         Fixes #56091.
1680
1681 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1682
1683         * icall.c: added Kill_internal icall.
1684         * process.[ch]: added Kill_internal icall.
1685
1686 2004-03-25  Martin Baulig  <martin@ximian.com>
1687
1688         * class.h (MonoStats): Added `generic_instance_count',
1689         `inflated_method_count', `inflated_type_count' and
1690         `generics_metadata_size'.       
1691
1692 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1693
1694         * reflection.c: no warnings now.
1695
1696 2004-03-25  Martin Baulig  <martin@ximian.com>
1697
1698         * class.c (mono_class_get_full): New public function; does a
1699         mono_class_get(), but also takes a `MonoGenericContext *'.
1700
1701         * loader.c (mono_field_from_memberref): Renamed to
1702         `field_from_memberref', made static and added `MonoGenericContext *'
1703         argument.
1704         (mono_field_from_token): Added `MonoGenericInst *' argument.
1705         (method_from_memberef): Likewise.
1706         (mono_get_method_from_token): Likewise.
1707         (mono_get_method_full): New public function; does a
1708         mono_get_method(), but also takes a `MonoGenericContext *'.
1709
1710         * verify.c (mono_method_verify): Get the method's generic context
1711         and pass it to mono_field_from_token(), mono_get_method_full() and
1712         mono_class_get_full().
1713
1714 2004-03-25  Martin Baulig  <martin@ximian.com>
1715
1716         * class.c (mono_class_inflate_generic_type): Take a
1717         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
1718         `MonoGenericMethod *'.
1719
1720 2004-03-25  Martin Baulig  <martin@ximian.com>
1721
1722         * loader.h (MonoMethodInflated): Store the MonoGenericContext
1723         instead of the MonoGenericMethod here.
1724
1725 2004-03-25  Martin Baulig  <martin@ximian.com>
1726
1727         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
1728         each time we create a new MonoGenericInst, we also create a new
1729         context which points back to us.
1730
1731         * class.c (inflate_method): Use `ginst->context' instead of
1732         creating a new context.
1733
1734         * loader.c (method_from_memberref): Use
1735         `klass->generic_inst->context' instead of creating a new context.
1736
1737 2004-03-25  Martin Baulig  <martin@ximian.com>
1738
1739         * class.h (MonoGenericContext): New struct.
1740         (MonoGenericMethod): Removed `generic_inst'.
1741
1742         * class.c (mono_class_inflate_generic_method): Take a
1743         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
1744
1745 2004-03-25  Martin Baulig  <martin@ximian.com>
1746
1747         * loader.h (MonoMethodInflated): New typedef.
1748
1749         * metadata.h (MonoMethodSignature): Removed `gen_method', make
1750         `generic_param_count' consume just 30 bits, added `is_inflated'
1751         and `has_type_parameters' flags (one bit each).
1752
1753         * class.c (mono_class_inflate_generic_method): Create a
1754         MonoMethodInflated instead of a MonoMethodNormal and set
1755         `is_inflated' in the method signature.
1756
1757         * class.h (MonoGenericMethod): Removed `generic_method'.
1758
1759 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
1760
1761         * image.c: Make sure the name of a MonoImage is always an absolute path.
1762           This fixes bug #54415.
1763
1764 2004-03-24  Martin Baulig  <martin@ximian.com>
1765
1766         * class.c (mono_class_setup_vtable): If we're a generic instance,
1767         use our generic type's vtable size.
1768
1769 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
1770
1771         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
1772         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
1773         problems.
1774
1775 2004-03-23  Martin Baulig  <martin@ximian.com>
1776
1777         * class.h (MonoDynamicGenericInst): Added `int count_events' and
1778         `MonoEvent *events'.
1779
1780         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
1781         (typebuilder_icalls): Added "get_event_info"; calls
1782         mono_reflection_event_builder_get_event_info(). 
1783
1784         * reflection.c (mono_reflection_generic_inst_initialize): Added
1785         `MonoArray *events'.
1786         (mono_reflection_event_builder_get_event_info): New function.
1787
1788 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
1789
1790         * object.h: add mono_type_initialization_init
1791
1792         * object.c (mono_runtime_class_init): 
1793         implement class constructor synchronization rules
1794         to cope with threading issues.  
1795         add mono_type_initialization_init
1796
1797         * appdomain.c (mono_runtime_init): call 
1798         mono_type_initialization_init
1799
1800         * class.h: removing initializing field from MonoVTable
1801
1802 2004-03-23  Martin Baulig  <martin@ximian.com>
1803
1804         * class.c (my_mono_class_from_generic_parameter): Use
1805         `param->name' if it's not NULL. 
1806
1807 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
1808
1809         * class.c: do not insert non-virtual methods in the vtable.
1810         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
1811         that means the method is non-virtual. This never would have
1812         happened before.
1813
1814 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
1815
1816         * profiler.c: Added lock for accessing coverage_hash.
1817
1818 2004-03-22  Martin Baulig  <martin@ximian.com>
1819
1820         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
1821         `method->method->signature->generic_param_count != 0' to make it
1822         work for interface methods.
1823
1824 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1825
1826         * process.c: quote the string passed to the shell using g_shell_quote.
1827
1828 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1829
1830         * threads.c:
1831         (mono_threads_manage): don't remove the finalizer thread and self
1832         from the threads hash table so that mono_thread_manage can be called
1833         more than once.
1834
1835 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1836
1837         * process.c: quote the arguments when UseShellExecute is true. Fixes
1838         bug #55790.
1839
1840 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1841
1842         * threads.c: set mono_thread_detach as a cleanup routine for every
1843         thread. This way it's always executed upon thread termination, either
1844         aborted or finished normally. No more xsp hangs!
1845
1846 2004-03-17  Martin Baulig  <martin@ximian.com>
1847
1848         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
1849         `int count_nested' and a `MonoType **nested'.
1850
1851         * reflection.c (mono_reflection_bind_generic_parameters): Moved
1852         most of the functionality into a new static
1853         do_mono_reflection_bind_generic_parameters() and don't take a
1854         `MonoType *nested_in' argument any more.  Don't compute nested
1855         types here.
1856         (mono_reflection_generic_inst_get_nested_types): New public method
1857         to get nested types.
1858
1859         * class.c (mono_class_create_generic): Set `klass->nested_in' if
1860         we're a nested class.
1861
1862         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
1863         mono_reflection_generic_inst_get_nested_types() to compute the
1864         nested types.
1865
1866 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
1867
1868         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
1869         descriptive error message under windows.
1870         
1871 2004-03-17  Martin Baulig  <martin@ximian.com>
1872
1873         * class.c (dup_type): Added `const MonoType *original' argument;
1874         copy the attrs from the original type.
1875
1876 2004-03-17  Martin Baulig  <martin@ximian.com>
1877
1878         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
1879         `m->generic_inst_cache' here.
1880
1881 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
1882
1883         * exception.h exception.c: Add stack_overflow_exception.
1884
1885 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1886
1887         * threadpool.c:
1888         (overlapped_callback): call SetEvent *after* invoking the callback.
1889         No need to call CloseHandle.
1890
1891 2004-03-16  Martin Baulig  <martin@ximian.com>
1892
1893         * reflection.c (mono_image_get_fieldref_token): Take a
1894         `MonoReflectionField *' instead of a `MonoClassField *' and a
1895         `MonoClass *'; store the `MonoReflectionField *' in the hash.
1896
1897 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1898
1899         * appdomain.c: don't add the culture to the filename we're looking for
1900         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
1901
1902 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1903
1904         * locales.c: don't ignore symbols when doing case insensitive compares.
1905         Thanks Dick! Fixes bug #54046.
1906
1907         * threads.c: surround 'threads' usage with enter/leave in
1908         mono_thread_manage.
1909
1910 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
1911
1912         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
1913         implicitly marshalled as [Out]. Fixes #55450.
1914
1915         (mono_marshal_get_runtime_invoke): Zero out the result if there is
1916         an exception.
1917
1918 2004-03-16  Martin Baulig  <martin@ximian.com>
1919
1920         * class.c (mono_class_from_generic_parameter): Use the actual
1921         parameter name. 
1922
1923 2004-03-16  Martin Baulig  <martin@ximian.com>
1924
1925         * reflection.c (type_get_signature_size): New static function.
1926         Compues the size of the type in a method signature.
1927         (method_get_signature_size): New static function; calls
1928         type_get_signature_size() to compute the actual size of the
1929         method's signature.
1930         (method_encode_signature): Use method_get_signature_size() to get
1931         the signature's size rather than using `nparams * 10'.
1932
1933 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1934
1935         * file-io.h: define here WapiOverlapped on windows. I don't want the
1936         regular OVERLAPPED one.
1937
1938         * file-io.c:
1939         * threadpool.c: somehow, BindIoCompletionCallback is not found.
1940         Disabling AIO on windows.
1941
1942 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1943
1944         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
1945         bug #55385.
1946
1947 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1948
1949         * appdomain.c: upgraded corlib version.
1950
1951         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
1952         and BeginWrite. Allow opening files for asynchrnous operations.
1953
1954         * file-io.h: new struct that maps FileStreamAsyncResult.
1955         * icall.c: added new icalls.
1956         * process.[ch]: support setting child process environment variables
1957         and use the SHELL or COMSPEC when UseShellExecute is true.
1958
1959         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
1960         callback for async. IO is here and also BindHandle.
1961
1962         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
1963         from here.
1964
1965 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
1966
1967         * reflection.c (create_custom_attr): Allow len == 0.
1968
1969         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
1970         computation on big-endian machines.
1971
1972 2004-03-13  Martin Baulig  <martin@ximian.com>
1973
1974         * class.h (MonoGenericInst): Added `int count_ifaces'.
1975
1976         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
1977         `ginst->count_ifaces' instead `klass->interface_count' since we
1978         may get called before the vtable is created.
1979
1980         * loader.c (mono_method_get_param_names): If we're a generic
1981         instance, return and don't initialize the class.
1982
1983         * reflection.c (mono_reflection_setup_generic_class): Don't call
1984         ensure_runtime_vtable().
1985         (mono_reflection_bind_generic_parameters): Set
1986         `ginst->count_ifaces'.
1987
1988 2004-03-11  Jackson Harper <jackson@ximian.com>
1989
1990         * icall.c:
1991         * unicode.c:
1992         * unicode.h: Remove unused System.Char icalls.
1993         
1994 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
1995
1996         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
1997         code when we P/Invoke the first library in Windows.Forms, instead
1998         of when we first open the assembly.
1999
2000         * assembly.c: Drop the lookup from here.
2001
2002 2004-03-10  Martin Baulig  <martin@ximian.com>
2003
2004         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
2005         class for properties, fields and events.  Finally fixes #54945.
2006
2007 2004-03-10  Martin Baulig  <martin@ximian.com>
2008
2009         * metadata.c (mono_metadata_class_equal): New static function;
2010         checks whether two generic instances or two generic parameters are
2011         equal.
2012         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
2013         compare classes.        
2014
2015 2004-03-10  Martin Baulig  <martin@ximian.com>
2016
2017         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
2018
2019         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
2020         argument and write it into the `reflection_info' field.
2021
2022         * icall.c
2023         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
2024         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
2025
2026 2004-03-09  Jackson Harper  <jackson@ximian.com>
2027
2028         * char-conversions.h: use 8 bits for numeric data its all we need
2029         * icall.c: numeric data is only 8 bits now.
2030
2031 2004-03-09  Martin Baulig  <martin@ximian.com>
2032
2033         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
2034
2035         * class.c (init_properties, init_events): Initialize the new
2036         `parent' field.
2037
2038         * reflection.c (typebuilder_setup_properties): Likewise.
2039         (typebuilder_setup_events): Likewise.
2040
2041         * reflection.h (MonoEventInfo): Replaced `parent with
2042         `declaring_type' and `reflected_type'.
2043
2044         * icall.c (ves_icall_get_property_info): Distinguish between
2045         declaring and reflected type.
2046         (ves_icall_get_event_info): Likewise.
2047
2048 2004-03-09  Martin Baulig  <martin@ximian.com>
2049
2050         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
2051         (ves_icall_Type_GetField): Correctly set field->klass.
2052
2053 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
2054
2055         * loader.h: Fix warning.
2056
2057 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
2058
2059         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
2060         library routine if present.  Notice that it will still continue
2061         executing even if its missing, for those working on the Gtk#
2062         edition of Windows.Forms.
2063
2064         * assembly.c (do_mono_assembly_open): If loading the
2065         System.Windows.Forms call mono_loader_wini_init.
2066
2067 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
2068
2069         * class.h: Added MonoRemoteClass struct.
2070         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
2071         function for MonoStrings.
2072         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
2073         Added internal call for getting the proxy type.
2074         * marshal.c: Get the type of transparent proxies from its remote_class.
2075         Added methods that generate the IL for type checks and casts:
2076         mono_marshal_get_isinst, mono_marshal_get_castclass, 
2077         mono_marshal_get_proxy_cancast.
2078         * marshal.h: Declaration of the previous new methods.
2079         * object.c: Added new moethods for creating and updating MonoRemoteClass
2080         instances: mono_remote_class, mono_upgrade_remote_class, 
2081         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
2082         * verify.c: FIx transparent_proxy_fields layout.
2083         * appdomain.c: Bump corlib version.
2084
2085 2004-03-04  Jackson Harper  <jackson@ximian.com>
2086
2087         * icall.c: Add icall to access char conversion tables.
2088         * char-conversions.h: Character conversion tables.
2089         * Makefile.am: Add char-conversions.h private header file.
2090         
2091 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
2092
2093         * appdomain.c (unload_thread_main): Increase unloading timeout to
2094         10 sec as a temporary workaround for Nant problems.
2095
2096 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
2097
2098         * gc.c: Add checks for GC_enable and GC_disable.
2099
2100         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
2101         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
2102         (bug #54988).
2103         
2104 2004-02-27  Martin Baulig  <martin@ximian.com>
2105
2106         * reflection.c (mono_reflection_bind_generic_parameters): Take a
2107         `MonoReflectionType *' instead of a `MonoType *'.
2108
2109 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
2110
2111         * gc.c (run_finalize): Avoid finalizing the object representing the
2112         finalizer thread.
2113         (finalizer_thread): Fix warning.
2114
2115 2004-02-25  Martin Baulig  <martin@ximian.com>
2116
2117         * class.c (_mono_class_get_instantiation_name): Added `int offset'
2118         argument for nested types.
2119         (mono_class_create_generic): Added support for nested generictypes.
2120
2121         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
2122         `GList *nested'.
2123
2124         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
2125
2126         * reflection.c (method_encode_signature): Increase the minimum
2127         value of `size' from 10 to 11.
2128         (mono_reflection_bind_generic_parameters): Take `int type_argc'
2129         and `MonoType **types' arguments instead of the `MonoArray
2130         *types'; added `MonoType *nested_in'.  Recursively instantiate
2131         nested classes. 
2132
2133 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
2134
2135         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
2136         stack_overflow_ex members which are used by exception handling.
2137
2138         * appdomain.c (mono_runtime_init): Initialize the new members.
2139
2140         * gc.c (mono_gc_enable): New helper function.
2141         * gc.c (mono_gc_disable): New helper function.
2142
2143 2004-02-23  Martin Baulig  <martin@ximian.com>
2144
2145         * icall.c: I must have been really stupid - make it actually work
2146         this time ;-)
2147
2148 2004-02-23  Martin Baulig  <martin@ximian.com>
2149
2150         * loader.c (method_from_memberref): Only inflate the method if
2151         it's in another klass.
2152
2153 2004-02-23  Martin Baulig  <martin@ximian.com>
2154
2155         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
2156         (mono_class_init): If we're a generic instance and an interface,
2157         compute `class->interface_id'; also create `class->interfaces'
2158         here and inflate them.
2159
2160         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
2161         `ginst->is_open'.
2162         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
2163
2164         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
2165
2166 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
2167
2168         * reflection.c (method_encode_code): Improved the error message
2169         generated by the exception.
2170
2171 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2172
2173         * icall.c: Martin did not do what he said in the ChangeLog for
2174         2004-02-18, but put back the changes for properties and events.
2175         Commenting those changes out again and adding comment to bug #54518.
2176         
2177         * process.c: removed warning.
2178
2179 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
2180
2181         * marshal.c (emit_struct_conv): Print an error message instead of
2182         asserting when a type does not have the StructLayout attribute.
2183
2184 2004-02-20  Martin Baulig  <martin@ximian.com>
2185
2186         * reflection.c (mono_type_get_object): Also use the cache for
2187         generic instances.
2188         (mono_reflection_bind_generic_parameters): Always compute
2189         `ginst->ifaces'.        
2190
2191 2004-02-20  Martin Baulig  <martin@ximian.com>
2192
2193         * class.h (MonoGenericMethod): Removed `klass'.
2194
2195         * class.c (mono_class_inflate_generic_method): Added `MonoClass
2196         *klass' argument.
2197
2198 2004-02-20  Martin Baulig  <martin@ximian.com>
2199
2200         * reflection.c (method_encode_methodspec): Actually use the
2201         uninflated signature for the memberref.
2202
2203 2004-02-20  Martin Baulig  <martin@ximian.com>
2204
2205         * class.h (MonoGenericMethod): Removed `declaring'.
2206
2207         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
2208         is NULL, compute it here.
2209
2210 2004-02-20  Martin Baulig  <martin@ximian.com>
2211
2212         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
2213
2214         * metadata.c (mono_metadata_generic_inst_hash): New method.
2215         (mono_metadata_generic_inst_equal): New method.
2216
2217         * reflection.c (mono_reflection_bind_generic_parameters): Use the
2218         `klass->image->generic_inst_cache' cache to avoid creating
2219         duplicate MonoGenericInst's.
2220
2221         * class.c (mono_class_inflate_generic_type): Use the cache.
2222
2223 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
2224
2225         * object.c: fixed gc descriptor calculation for embedded valuetypes.
2226
2227 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2228
2229         * icall.c: added Socket.WSAIoctl icall.
2230
2231         * socket-io.[ch]: implemented
2232         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
2233
2234 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
2235
2236         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
2237
2238 2004-02-18  Urs C Muff  <umuff@quark.com>
2239
2240         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
2241         this work on PPC and other big-endian architectures.
2242
2243         * debug-mono-symfile.h: Prepended the names of all the `guint32'
2244         fields with an underscore to make sure they're only accessed by
2245         the read32() macro.
2246
2247 2004-02-18  Martin Baulig  <martin@ximian.com>
2248
2249         * icall.c: Put the klass->refclass changes back for methods and
2250         fields, but not for properties and events.  We're currently not
2251         distinguishing between DeclaringType and ReflectedType for
2252         properties and events, that's what caused the regressions.
2253
2254 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2255
2256         * object.c:
2257         (mono_async_result_new): the handle can be NULL.
2258
2259         * threadpool.c: Use an event instead of a semaphore, don't initialize
2260         it until needed. This saves quite a few semaphores from being created
2261         when using the threadpool.
2262
2263 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
2264
2265         * object.c (mono_string_is_interned_lookup): Fix interning of long
2266         strings. Fixes #54473.
2267
2268         * domain.c (ldstr_equal): Optimize if the two strings are equal.
2269
2270         * icall.c: Revert the klass->refclass changes since they introduce
2271         regressions (bug #54518).
2272
2273 2004-02-18  Martin Baulig  <martin@ximian.com>
2274
2275         * class.c (mono_class_init): If we're a generic instance and don't
2276         come from a TypeBuilder, inflate our members here.
2277         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
2278         (mono_class_create_generic): New public method.
2279         (mono_class_initialize_generic): Removed.
2280         (get_instantiation_name): Renamed to
2281         _mono_class_get_instantiation_name() and made it public.
2282
2283 2004-02-18  Martin Baulig  <martin@ximian.com>
2284
2285         * class.c (mono_class_inflate_generic_type): Clear the new
2286         instance's `nginst->klass' when inflating a generic instance.
2287         (mono_class_is_subclass_of): Added (basic) support for generic
2288         instances.
2289
2290 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
2291
2292         * appdomain.h, domain.c: use a MonoCodeManager instead of a
2293         MonoMempool to hold compiled native code.
2294
2295 2004-02-17  Martin Baulig  <martin@ximian.com>
2296
2297         * class.h (MonoDynamicGenericInst): Added `count_properties' and
2298         `properties'.
2299
2300         * reflection.c (mono_reflection_generic_inst_initialize): Added
2301         `MonoArray *properties' argument.
2302
2303         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
2304
2305 2004-02-17  Martin Baulig  <martin@ximian.com>
2306
2307         * icall.c (ves_icall_Type_GetFields): Renamed to
2308         ves_icall_Type_GetFields_internal() and added a
2309         `MonoReflectionType *rtype' argument; pass it to
2310         mono_field_get_object() to set the field's "reflected" type.
2311         (ves_icall_Type_GetConstructors): Likewise.
2312         (ves_icall_Type_GetEvents): Likewise.
2313         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
2314         argument; pass it to mono_method_get_object() to set the method's
2315         "reflected" type.       
2316
2317 2004-02-17  Martin Baulig  <martin@ximian.com>
2318
2319         * class.h (MonoDynamicGenericInst): New type.
2320         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
2321
2322         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
2323         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
2324         (ves_icall_MonoGenericInst_GetFields): New interncall.
2325
2326         * class.c (mono_class_from_generic): Don't call
2327         mono_class_initialize_generic() if this is a dynamic instance;
2328         ie. it's being created from a TypeBuilder.
2329         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
2330         `class->byval_arg.type'.
2331
2332         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
2333         to `inflate_method' and made static.
2334         (mono_reflection_inflate_field): Removed.
2335         (mono_reflection_generic_inst_initialize): New public method.
2336
2337         * reflection.h (MonoReflectionGenericInst): Removed `methods',
2338         `ctors' and `fields'; added `initialized'.
2339
2340 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
2341
2342         * debug-helpers.c (mono_method_full_name): Fix output for empty
2343         namespaces.
2344
2345 2004-02-12  Martin Baulig  <martin@ximian.com>
2346
2347         * class.h (MonoClassField): Added `MonoType *generic_type'.
2348
2349         * reflection.c (mono_image_get_fieldref_token): Added support for
2350         instantiated generic types.
2351         (field_encode_inflated_field): Removed.
2352         (mono_image_get_inflated_field_token): Removed.
2353         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
2354
2355         * reflection.h (MonoReflectionInflatedField): Removed.
2356
2357 2004-02-12  Martin Baulig  <martin@ximian.com>
2358
2359         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
2360         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
2361
2362         * reflection.c (mono_image_get_methodspec_token): Take a
2363         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
2364         (mono_image_create_token): Check whether we have a
2365         `method->signature->gen_method' and call
2366         mono_image_get_methodspec_token() if appropriate.
2367         (inflated_method_get_object): Removed.
2368         (mono_reflection_bind_generic_method_parameters): Return a
2369         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
2370         (mono_reflection_inflate_method_or_ctor): Likewise.
2371
2372         * reflection.h (MonoReflectionInflatedMethod): Removed.
2373
2374 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
2375
2376         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
2377         for custom valuetype marshalling.
2378
2379         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
2380
2381 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2382
2383         * icall.c: fixed WSAGetLastError_internal name.
2384
2385 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
2386
2387         * threads.c (mono_thread_attach): Allow this to be called multiple
2388         times for a thread.
2389         
2390         * threads.c (build_wait_tids): Do not wait for ourselves.
2391
2392         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
2393         appdomain list is empty.
2394
2395         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
2396         memory returned by mono_string_builder_to_utf16, since it points into
2397         managed memory. Thanks to Bernie Solomon for noticing this.
2398
2399         * icall.c: Add AppDomainSetup icalls.
2400
2401         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
2402
2403         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
2404         types.
2405
2406         * reflection.c (reflection_methodbuilder_to_mono_method): Save
2407         custom attributes to the method_aux struct. Also fix array indexes etc.
2408
2409         * loader.c (mono_method_get_param_names): Make dynamic case work again.
2410         
2411 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
2412
2413         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
2414         (both static and runtime) and reduce startup time.
2415
2416 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
2417
2418         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
2419         AsAny marshalling conversion instead of crashing.
2420
2421         * marshal.c: Fix warnings.
2422
2423 2004-02-09  Martin Baulig  <martin@ximian.com>
2424
2425         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
2426
2427         * reflection.h (MonoReflectionInflatedMethod): Removed the
2428         `declaring' field, it's now in the unmanaged MonoGenericMethod.
2429
2430         * reflection.c (method_encode_methodspec): Removed the `method'
2431         argument; we get it from `gmethod->declaring'.
2432         (inflated_method_get_object): Removed the `declaring' argument.
2433
2434 2004-02-09  Martin Baulig  <martin@ximian.com>
2435
2436         * class.h (MonoGenericMethod): New type.
2437         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
2438         `generic_method'.
2439
2440         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
2441         a `MonoGenericMethod *gen_method' one.
2442
2443         * class.c (mono_class_inflate_generic_type): Take an additional
2444         `MonoGenericMethod * argument.  This is only non-NULL if we're
2445         inflating types for a generic method.   
2446         (mono_class_inflate_generic_signature): Renamed to
2447         inflate_generic_signature() and made static; take a
2448         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
2449         (inflate_generic_header): Take a `MonoGenericMethod *' argument
2450         instead of a `MonoGenericInst *' one.
2451         (mono_class_inflate_generic_method): Likewise.
2452
2453         * reflection.c (encode_generic_method_sig): Take a
2454         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
2455         (method_encode_methodspec): Likewise.
2456         (inflated_method_get_object): Likewise. 
2457
2458         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
2459         field with a `MonoGenericMethod *gmethod' one.  
2460
2461 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
2462
2463         * class.h (mono_class_has_parent): add parens to expansion
2464         so you can ! this.
2465
2466 2004-02-08  Martin Baulig  <martin@ximian.com>
2467
2468         * image.h (MonoImage): Removed `generics_cache'.
2469
2470         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
2471         instead of a `MonoType *' argument; removed the `inflate_methods'
2472         argument.  Don't inflate methods here.
2473
2474         * loader.c (find_method): If it's a generic instance, call
2475         mono_class_init() on the `sclass->generic_inst->generic_type'.
2476
2477         * metadata.c (mono_type_size): Make this work on uninitialized
2478         generic instances; call it on the `ginst->generic_type's class.
2479
2480         * reflection.c (mono_reflection_bind_generic_parameters): Call
2481         mono_class_from_generic() to create the `ginst->klass'.
2482
2483 2004-02-08  Martin Baulig  <martin@ximian.com>
2484
2485         * class.h (MonoClass): Changed type of `generic_inst' from
2486         `MonoType *' to `MonoGenericInst *'.
2487
2488 2004-02-08  Martin Baulig  <martin@ximian.com>
2489
2490         * icall.c (ves_icall_Type_BindGenericParameters): Just call
2491         mono_type_get_object(), this is now creating a `MonoGenericInst'
2492         for MONO_TYPE_GENERICINST.
2493         (ves_icall_MonoGenericInst_GetParentType): Likewise.
2494         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
2495
2496         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
2497         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
2498         (inflated_method_get_object): Added `MonoClass *refclass' argument.
2499         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
2500         and reflected type.
2501
2502         * reflection.h (MonoReflectionInflatedMethod): Removed
2503         `declaring_type' and `reflected_type'.
2504
2505 2004-02-08  Martin Baulig  <martin@ximian.com>
2506
2507         * class.h (MonoGenericInst): Added `MonoType *parent' and
2508         `MonoType **ifaces'.
2509
2510         * reflection.h (MonoReflectionGenericInst): Removed `klass',
2511         `parent' and `interfaces'.
2512
2513         * reflection.c (mono_reflection_bind_generic_parameters): Take a
2514         `MonoType *' argument and return a `MonoType *'.
2515
2516         * icall.c
2517         (ves_icall_MonoGenericInst_GetParentType): New interncall.
2518         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
2519
2520 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
2521
2522         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
2523         valuetype marshalling.
2524
2525 2004-02-06  Martin Baulig  <martin@ximian.com>
2526
2527         * class.c
2528         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
2529         (my_mono_class_from_generic_parameter): Likewise.
2530
2531 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
2532
2533         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
2534         contents of the symbol files lazily.
2535
2536         * object.h (MonoThread): Add 'name' and 'name_len' fields.
2537
2538         * threads.h threads.c icall.c: New icalls for getting and setting the
2539         threads name.
2540
2541 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
2542
2543         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
2544         Raise an exception when the domain is not found.
2545
2546 2004-02-03  Martin Baulig  <martin@ximian.com>
2547
2548         * reflection.c (mono_image_get_methodspec_token): Use the
2549         uninflated signature; fixes gen-33.
2550
2551 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
2552
2553         * gc.c threads.c: Make the finalizer thread a normal managed thread so
2554         the finalizer code can use thread functionality.
2555
2556         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
2557         the finalizer thread.
2558
2559         * threads.c: Make some functions more robust.
2560
2561         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
2562
2563         * metadata.h: Add new marshalling conventions.
2564
2565         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
2566         stringbuilder marshalling. Fixes #53700.
2567
2568         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
2569
2570         * reflection.c (mono_image_get_type_info): Save declarative security
2571         info.
2572
2573         * reflection.c (mono_image_get_field_info): Handle uninitialized 
2574         unmanaged fields as well.
2575
2576         * appdomain.c: Bump corlib version.
2577
2578 2004-02-01  Martin Baulig  <martin@ximian.com>
2579
2580         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
2581         method type arguments.  
2582
2583 2004-01-30  Duncan Mak  <duncan@ximian.com>
2584
2585         * marshal.h: Add prototype for
2586         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
2587         and
2588         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
2589         fix the build.
2590
2591 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
2592
2593         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
2594         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
2595
2596 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
2597
2598         * marshal.c (mono_marshal_get_native_wrapper): Add support for
2599         custom marshalling of valuetypes.
2600
2601         * marshal.c: Fix some warnings.
2602
2603 2004-01-29  Martin Baulig  <martin@ximian.com>
2604
2605         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
2606         for generic method parameters.
2607
2608         * reflection.c (method_encode_methodspec): Write the uninflated
2609         signature into the methodspec table.
2610         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
2611         is always the uninflated method.
2612         (reflection_methodbuilder_to_mono_method): Copy the generic
2613         parameters from the MethodBuilder into `header->gen_params'.
2614
2615 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
2616
2617         * class.c (mono_class_from_generic_parameter): Fix warning.
2618
2619 2004-01-27  Martin Baulig  <martin@ximian.com>
2620
2621         * class.c (mono_class_from_generic_parameter): Don't create
2622         `klass->methods' here.  
2623
2624 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
2625
2626         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
2627         extension since it does not work with libraries named lib<FOO>.dll.so.
2628
2629 2004-01-25  Martin Baulig  <martin@ximian.com>
2630
2631         * class.c (mono_class_inflate_generic_type): Added support for
2632         MONO_TYPE_GENERICINST.
2633
2634         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
2635         inflate methods on open constructed types.      
2636
2637 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2638
2639         * object.c: fire ProcessExit event in the root AppDomain after running
2640         Main. Fixes bug #53299.
2641
2642 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
2643
2644         * socket-io.c: include the new socket-wrappers.h header.
2645         Use the wrappers instead of the unix socket functions to make the code
2646         more clear.
2647
2648 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
2649
2650         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
2651
2652         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
2653         Fixes #22532.
2654
2655 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
2656
2657         * reflection.c (mono_image_create_pefile): Handle the case when the
2658         entry point is not a MethodBuilder.
2659
2660         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
2661         field to ReflectionMethod since it is not allways a builder.
2662
2663         * reflection.c (type_get_fully_qualified_name): New helper function to
2664         return the fully qualified name of a type.
2665
2666         * reflection.c (encode_marshal_blob): Always emit the fully qualified
2667         type name for custom marshallers.
2668
2669         * reflection.c (mono_marshal_spec_from_builder): Ditto.
2670
2671         * class.c (mono_class_setup_vtable): If a parent class already 
2672         implements an interface, use the implementing methods from that class.
2673         Fixes #53148.
2674
2675 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2676
2677         * threadpool.c: just return instead of ExitThread to allow for thread
2678         clean up earlier.
2679
2680 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
2681
2682         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
2683         when closing resource modules.
2684
2685         * reflection.c (mono_image_create_pefile): Handle the case when the
2686         entry point is not a MethodBuilder.
2687
2688         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
2689         field to ReflectionMethod since it is not allways a builder.
2690
2691 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
2692
2693         * marshal.c (mono_marshal_get_managed_wrapper): 
2694         mono_marshal_alloc takes native int so CONV_I
2695         the arg for 64bits.
2696
2697 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
2698
2699         * reflection.c (fixup_cattrs): New function to fixup the methoddef
2700         tokens in the cattr table. Fixes #53108.
2701
2702 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2703
2704         * loader.c: don't trim ".dll" before looking up in the config file.
2705         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
2706
2707 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
2708
2709         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
2710         Return the module which contains the resource as well.
2711         (ves_icall_System_Reflection_Module_Close): New icall.
2712
2713         * appdomain.c: Bump corlib version number.
2714
2715         * image.c (mono_image_addref): New public function.
2716
2717         * assembly.c: Call mono_image_addref.
2718
2719         * reflection.c (mono_module_get_object): Increase reference count of 
2720         the image.
2721
2722         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
2723         Fixes #22532.
2724
2725         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
2726         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
2727         proper exceptions on DllImport problems.
2728
2729 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
2730
2731         * class.c, metadata.c: eliminate CSIZE macro.
2732
2733 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
2734
2735         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
2736         * object.h: Added async_callback field in MonoAsyncResult.
2737         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
2738         * verify.c: Added async_callback in MonoAsyncResult layout.
2739
2740 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
2741
2742         * reflection.c (mono_reflection_get_custom_attrs): Add support
2743         for Modules.
2744
2745 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
2746
2747         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
2748         marshalling.
2749         (mono_marshal_method_from_wrapper): Add null pointer check.
2750
2751 2004-01-16  Martin Baulig  <martin@ximian.com>
2752
2753         * debug-mono-symfile.h: Set version number to 36 and reflect
2754         latest symbol writer changes.
2755
2756 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
2757
2758         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
2759         multi-dimensional arrays.
2760         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
2761         (mono_class_from_mono_type): Use bounded_array_class_get.
2762         
2763         * class.c (mono_bounded_array_class_get): New function which takes
2764         a 'bounded' bool argument to distinguish vectors from one dimensional
2765         arrays.
2766
2767         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
2768         bounded_array_class_get if the array has bounds.
2769
2770         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
2771         Search modules loaded using AssemblyBuilder:AddModule as well.
2772
2773 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2774
2775         * appdomain.c: increased corlib version.
2776         * filewatcher.c: removed g_print.
2777         * icall.c:
2778         (get_property_info): only allocate what is actually requested.
2779         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
2780
2781 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2782
2783         * Makefile.am: added filewatcher.[ch]
2784         * filewatcher.[ch]: FileSystemWatcher runtime support.
2785         * icall.c: added new FSW icalls.
2786
2787 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
2788
2789         * string-icalls.c: fix stringbuilder regression as suggested by
2790         Iain McCoy <iain@mccoy.id.au>.
2791
2792 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
2793
2794         * process.c (process_read_stringtable_block): Recognize '007f' as
2795         a language neutral stringtable block.
2796
2797 2004-01-12  Patrik Torstensson
2798
2799         * object.h (MonoStringBuilder) : Changed layout to support our
2800         new stringbuilder class.
2801         * marshal.c: Change marshalling to support the new layout of 
2802         string builder.
2803         * appdomain.c: increased version number because new layout of
2804         string builder.
2805
2806 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
2807
2808         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
2809         assembly name as an string instead of an AssemblyName, since it is
2810         easier to extract info from it.
2811
2812         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
2813         the culture subdirectories too. Fixes #52231.
2814
2815 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2816
2817         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
2818         It takes 2 new parameters with an optional name for the method to look
2819         for and case ignoring info.
2820
2821         * threadpool.c: removed unused variable.
2822
2823 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2824
2825         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
2826         It takes 2 new parameters with an optional name for the property to look
2827         for and case ignoring info.
2828         Fixes bug #52753.
2829
2830 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
2831
2832         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
2833         Fix #52451.
2834
2835 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2836
2837         * appdomain.c:
2838         * assembly.c: escape the uri before passing it to g_filename_from_uri.
2839         Fixes bug #52630.
2840
2841 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
2842
2843         * reflection.c: Add support for more than one unmanaged resource.
2844
2845         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
2846         in field->def_value, as done in all other cases.
2847
2848         * reflection.c (mono_reflection_get_custom_attrs): Add support for
2849         TypeBuilders.
2850
2851         * reflection.c (mono_reflection_create_runtime_class): Remove 
2852         errorneous assignment to klass->element_class, since it is already
2853         done in mono_reflection_setup_internal_class.
2854
2855 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2856
2857         * gc.c: added missing LeaveCriticalSection.
2858         * icall.c: indented a couple of lines.
2859         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
2860         if we call EndInvoke inside a callback. Fixes bug #52601.
2861
2862 2004-01-07  Martin Baulig  <martin@ximian.com>
2863
2864         * mono-debug-debugger.h
2865         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
2866
2867 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
2868
2869         * appdomain.c: Use messages in NotImplementedException.
2870
2871         * exception.c (mono_get_exception_not_implemented): Now this takes
2872         a message argument.
2873
2874         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
2875         exception instead of g_asserting an aborting when something is not
2876         implemented.
2877
2878         Add some inline docs.
2879
2880 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
2881
2882         * reflection.h: Update after changes to object layout.
2883
2884         * reflection.c: Implement saving of unmanaged aka win32 resources.
2885
2886         * appdomain.c: Bump version number.
2887
2888         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
2889         Handle missing domains gracefully.
2890
2891 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
2892
2893         * file-io.c : On Windows, there are much more invalid_path_chars.
2894
2895 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
2896
2897         * class.h, object.c: prepare for GetType () speedup.
2898
2899 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
2900
2901         * profiler.c: workaround for --profile null reference exception on
2902           cygwin. Patch by Patrik Torstensson.
2903
2904 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
2905
2906         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
2907         make work for unaligned access.
2908
2909 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
2910
2911         * class.c: small cleanup (class->fields [i] -> field).
2912         * image.c: check address of metadata is valid.
2913
2914 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
2915
2916         * assembly.h assembly.c (mono_assembly_loaded): New public function to
2917         search the list of loaded assemblies.
2918
2919         * reflection.c (mono_reflection_type_from_name): Use 
2920         mono_assembly_loaded instead of mono_image_loaded.
2921
2922         * reflection.c: Fix warnings.
2923
2924 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
2925
2926         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
2927         is dynamic. This is needed since an assembly can contain both dynamic and
2928         non-dynamic images.
2929
2930         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
2931         assembly->dynamic.
2932
2933         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
2934
2935         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
2936         to store modules loaded using AddModule.
2937
2938         * reflection.c (mono_image_fill_file_table): Generalize this so it works
2939         on Modules.
2940
2941         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
2942
2943         * reflection.c (mono_image_fill_export_table_from_module): New function to
2944         fill out the EXPORTEDTYPES table from a module.
2945
2946         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
2947         into a separate function. Also handle loaded non-dynamic modules.
2948
2949         * reflection.c (mono_image_basic_init): Fix memory allocation.
2950
2951         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2952
2953         * assembly.c (mono_assembly_load_references): Make this public.
2954
2955 2003-12-19  Martin Baulig  <martin@ximian.com>
2956
2957         * class.c (mono_class_initialize_generic): Made this static, take
2958         a `MonoGenericInst *' instead of a `MonoClass *'.
2959         (mono_class_from_generic): Call mono_class_initialize_generic()
2960         unless we're already initialized or being called from
2961         do_mono_metadata_parse_generic_inst().
2962
2963         * class.h (MonoGenericInst): Added `initialized' and
2964         `init_pending' flags.
2965
2966         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
2967         `mono_class_init (gklass)' or mono_class_initialize_generic()
2968         here; set `generic_inst->init_pending' while parsing the
2969         `type_argv'.
2970
2971 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
2972
2973         * locales.c: include string.h for memxxx prototypes
2974
2975 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
2976
2977         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
2978         constructor when accessing literal fields.
2979
2980 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
2981
2982         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2983
2984         * reflection.c (assembly_add_resource_manifest): New function to fill
2985         the MANIFESTRESOURCE table.
2986
2987         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
2988
2989         * reflection.h: Update to changes in class layout.
2990
2991         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
2992         Reenable call to mono_runtime_is_shutting_down ().
2993
2994         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
2995         determine if the runtime is shutting down.
2996
2997 2003-12-16  Jackson Harper <jackson@ximian.com>
2998
2999         * icall.c: comment out call to mono_runtime_is_shutting_down to
3000         fix build.
3001         
3002 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
3003
3004         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
3005         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
3006
3007 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
3008
3009         * reflection.c: move definition of swap_with_size
3010         to before its first call
3011
3012 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
3013
3014         * appdomain.c (mono_runtime_is_shutting_down): New public function.
3015
3016         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
3017         icall.
3018
3019         * object.c: Fix warnings.
3020
3021         * icall.c (ves_icall_Type_Get...): Only consider inherited static
3022         members if FlattenHierarchy is set.
3023
3024         * reflection.c (mono_image_add_decl_security): New function to emit
3025         declarative security.
3026
3027         * reflection.h reflection.c: Add support for declarative security.
3028
3029         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
3030         
3031 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
3032
3033         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
3034         
3035         * appdomain.c verify.c: Moved corlib version checking into its own
3036         function in appdomain.c since it needs to create vtables etc.
3037
3038 2003-12-13  Patrik Torstensson <p@rxc.se>
3039
3040         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
3041         instead of unwrapped server.
3042
3043 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
3044
3045         * verify.c (check_corlib): Fix field index.
3046
3047 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
3048
3049         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
3050         GetGacPath icall.
3051
3052 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
3053
3054         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
3055         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
3056         cope with sizeof(size_t) != sizeof(guint32).
3057
3058 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3059
3060         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
3061         in case of failure.
3062
3063 2003-12-10  Mark Crichton <crichton@gimp.org>
3064
3065         * icall.c: removed the GetNonZeroBytes.  We now handle this case
3066         in managed code.
3067
3068         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
3069
3070 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
3071
3072         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
3073         marked as deleted.
3074
3075 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
3076
3077         * verify.c (check_corlib): Handle the case when the version field is 
3078         initialized by a static constructor.
3079
3080 2003-12-08  Patrik Torstensson  <p@rxc.se>
3081
3082     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
3083
3084 2003-12-08  Martin Baulig  <martin@ximian.com>
3085
3086         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
3087         a MonoReflectionGenericParameter, also take the parameter index
3088         and name as arguments.
3089         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
3090         (ves_icall_MonoGenericParam_initialize): New interncall.
3091         (ves_icall_Type_make_byref_type): New interncall.
3092
3093         * reflection.h (MonoReflectionGenericParam): Derive from
3094         MonoReflectionType, not just from MonoObject.  Added `refobj' and
3095         `index' fields.
3096
3097         * reflection.c (mono_reflection_define_generic_parameter): Create
3098         and return a new MonoReflectionGenericParam; don't initialize the
3099         constraints here.
3100         (mono_reflection_initialize_generic_parameter): New public method;
3101         initializes the constraints and creates the `param->pklass'.
3102
3103 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
3104
3105         * reflection.h reflection.c: Use the new fields 'num_types', 
3106         'num_fields' and 'num_methods' to track the number of types etc.
3107
3108         * verify.c (check_corlib): Check corlib version number.
3109
3110 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
3111
3112         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
3113         function works on all methods.
3114
3115 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
3116
3117         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
3118         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
3119         the custom_type_info flag of the transparent proxy.
3120         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
3121         objects that supports IRemotingTypeInfo.
3122         * object.h: Added custom_type_info field in transparent proxy.
3123
3124 2003-12-06  Martin Baulig  <martin@ximian.com>
3125
3126         * class.c (mono_class_create_from_generic): Removed.
3127         (mono_class_from_generic): Check `ginst->klass' before doing
3128         anything else.  This is important to fully support "recursive"
3129         generic types.
3130
3131         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
3132         empty `generic_inst->klass' before doing anything else.
3133
3134 2003-12-06  Dick Porter  <dick@ximian.com>
3135
3136         * verify.c: 
3137         * object.h:
3138         * icall.c:
3139         * locales.c: Use C structs to access class fields.  Don't do a
3140         conversion between MonoString and UChar because both are
3141         platform-endian UTF-16.  Compare now takes startindex and count
3142         parameters.  Add a char overload for IndexOf.  Speed up the
3143         invariant string IndexOf.
3144
3145 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
3146
3147         * Makefile.am (monosn_LDADD): Fix parallel build.
3148
3149 2003-12-04  Martin Baulig  <martin@ximian.com>
3150
3151         * icall.c
3152         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
3153         (ves_icall_Type_make_array_type): New interncall.       
3154
3155 2003-12-04  Martin Baulig  <martin@ximian.com>
3156
3157         * locales.c: also change it in the !HAVE_ICU case.
3158
3159 2003-12-04  Dick Porter  <dick@ximian.com>
3160
3161         * icall.c:
3162         * locales.c: construct_compareinfo is now in CompareInfo, not
3163         CultureInfo.
3164
3165 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
3166
3167         * image.c (mono_image_load_file_for_image): Cache loaded images in the
3168         image->files array.
3169
3170         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
3171         table as well.
3172
3173         * assembly.c (mono_assembly_load_references): Only load references
3174         once.
3175
3176         * class.c (mono_class_from_name): Avoid linear search of the 
3177         EXPORTEDTYPE table.
3178
3179         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
3180
3181 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
3182
3183         * image.h (MonoImage): Add 'field_cache' field.
3184
3185         * loader.c (mono_field_from_token): Cache field lookups.
3186         
3187         * reflection.c (mono_module_get_object): Fix name property.
3188
3189         * icall.c (ves_icall_get_enum_info): Update after changes to 
3190         mono_metadata_get_constant_index ().
3191
3192         * icall.c: Get rid of get_type_info icall, use a separate icall for
3193         each type property to avoid needless memory allocations. Fixes #51514.
3194
3195         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
3196         to avoid needless binary searches.
3197
3198         * class.c (class_compute_field_layout): Move the initialization of
3199         field->def_value to mono_class_vtable ().
3200
3201         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
3202         non-corlib types.
3203
3204         * object.c (mono_object_allocate): Make it inline.
3205
3206         * object.c (mono_object_allocate_spec): Make it inline.
3207         
3208 2003-12-02  Dick Porter  <dick@ximian.com>
3209
3210         * locales.c (create_NumberFormat): NumberFormatInfo construction.
3211         Patch by Mohammad DAMT (mdamt@cdl2000.com).
3212
3213 2003-12-01  Dick Porter  <dick@ximian.com>
3214
3215         * threads.c: Fix signature and call in CreateMutex and
3216         CreateEvent.
3217
3218 2003-12-01  Dick Porter  <dick@ximian.com>
3219
3220         * icall.c: 
3221         * locales.c: Implement string compares and searching
3222
3223         * object.h: Add extra Thread field
3224
3225 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
3226
3227         * reflection.c (fixup_method): Add support for MonoCMethod.
3228
3229 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
3230
3231         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
3232
3233         * reflection.c (assembly_name_to_aname): Allow extra characters in
3234         assembly names. Fixes #51468.
3235
3236 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
3237
3238         * exception.c (mono_exception_from_name_domain): New helper function.
3239
3240         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
3241         exception object in the correct domain.
3242
3243         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
3244         formatting + make a copy a the input data.
3245
3246         * loader.c (mono_get_method_from_token): Methods which contain
3247         native code do not have entries in the ImplMap.
3248
3249         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
3250         Thanks to Gonzalo for spotting this.
3251         
3252         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
3253         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
3254
3255         * assembly.h (mono_assembly_load_from): Split the second part of 
3256         assembly loading into a new public function.
3257
3258         * exception.h (mono_get_exception_bad_image_format): New function.
3259
3260 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
3261
3262         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
3263         Enumerate all modules inside a dynamic assembly. Fixes #51293.
3264         
3265         * icall.c: Add new icall for creating dynamic methods.
3266
3267         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
3268
3269         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
3270
3271         * reflection.c (mono_reflection_create_dynamic_method): New icall to
3272         create a dynamic method.
3273
3274         * reflection.c (resolve_object): New helper function.
3275
3276         * reflection.c: Generalize ReflectionMethodBuilder and the functions
3277         which manipulate it so they can also work on dynamic methods.
3278
3279         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
3280         creating the MonoReflectionMethodAux structure if it is not needed.
3281         
3282         * reflection.h verify.c: Update after changes to object layout.
3283
3284         * reflection.c (method_builder_encode_signature): Fix compilation on
3285         gcc 2.95.x.
3286
3287 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
3288
3289         * appdomain.h: Added support for context static fields. Added static_data
3290           field to MonoAppContext and renamed thread_static_fields to a more
3291           generic special_static_fields in MonoAppDomain, since it can now contain
3292           context static fields.
3293         * domain.c: Updated hashtable name.
3294         * object.c: Replaced field_is_thread_static() for a more generic
3295           field_is_special_static() which also checks for context static attribute.
3296           In mono_class_vtable(), added support for static context fields.
3297         * threads.c: Changed methods that manage thread static fields to more
3298           generic methods so they can be reused both for thread and context static
3299           data.
3300         * threads.h: Declared some new methods.
3301
3302 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
3303
3304         * reflection.h: Update after changes to the managed types.
3305
3306         * reflection.c (encode_custom_modifiers): New helper function.
3307
3308         * reflection.c (method_encode_signature): Emit custom modifiers.
3309
3310         * reflection.c (field_encode_signature): Emit custom modifiers.
3311
3312 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
3313
3314         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
3315
3316         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
3317         implementation.
3318
3319         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
3320         icall.
3321
3322         * object.c (mono_field_get_value_object): New function.
3323
3324         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
3325         specific.
3326
3327 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
3328
3329         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
3330         return a preallocated out-of-memory exception instance.
3331
3332         * object.c (out_of_memory): Use the new function.
3333
3334         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
3335         flag is before the custom modifiers. Fixes #49802.
3336
3337 2003-11-16  Martin Baulig  <martin@ximian.com>
3338
3339         * class.c (mono_class_is_open_constructed_type): Implemented the
3340         MONO_TYPE_GENERICINST case.
3341
3342 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
3343
3344         * assembly.c (mono_assembly_fill_assembly_name): New function to
3345         fill out the MonoAssemblyName structure.
3346         (mono_assembly_open): Use the new function.
3347
3348         * icall.c (fill_reflection_assembly_name): New helper function.
3349
3350         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
3351         new function.
3352
3353         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
3354
3355 2003-11-15  Martin Baulig  <martin@ximian.com>
3356
3357         * class.c (mono_class_is_open_constructed_type): New public
3358         function; checks whether a type is an open constructed type,
3359         ie. whether it still contains type parameters.
3360         (mono_class_inflate_generic_type): If we're a type parameter and
3361         the inflated type is also a MONO_TYPE_(M)VAR, return the original
3362         type.
3363
3364         * class.h (MonoGenericInst): Added `guint32 is_open'.
3365
3366         * loader.c (method_from_methodspec): Check whether we're an open
3367         or closed constructed type and set `ginst->is_open'.
3368
3369         * reflection.c (mono_reflection_bind_generic_parameters): Check
3370         whether we're an open or closed constructed type and set
3371         `ginst->is_open'.
3372         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
3373         from open constructed types.
3374
3375 2003-11-15  Martin Baulig  <martin@ximian.com>
3376
3377         * reflection.c (mono_reflection_bind_generic_parameters): If we're
3378         a generic instance (instead of a generic type declaration) with
3379         unbound generic parameters, bind them to our actual types.
3380
3381 2003-11-14  Martin Baulig  <martin@ximian.com>
3382
3383         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
3384
3385         * reflection.c (mono_reflection_bind_generic_parameters): If we're
3386         an interface type, populate `res->interfaces' with instantiated
3387         versions of all the interfaces we inherit.
3388
3389 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
3390
3391         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
3392         when MONO_PATH is set but doesn't contain the install dir.
3393
3394 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3395
3396         * icall.c:
3397         (ves_icall_Type_GetInterfaces): don't return an interface twice when
3398         it's also implemented in base classes. Fixes bug #50927.
3399
3400 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
3401
3402         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
3403         if this method is called from a finalizer. Fixes #50913.
3404
3405 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
3406
3407         * threads.c: Implement VolatileRead/VolatileWrite
3408
3409         * icall.c: Add new icalls for VolatileRead/VolatileWrite
3410
3411 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
3412
3413         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
3414         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
3415         2.95.3.
3416
3417         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
3418         from Peter Ross (pro@missioncriticalit.com).
3419         
3420 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
3421
3422         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
3423
3424 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
3425
3426         * assembly.c (mono_assembly_load_references): Disable check because it
3427         triggers on older corlibs which lots of people have.
3428
3429 2003-11-12  Jackson Harper  <jackson@ximian.com>
3430
3431         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
3432         load corlib.dll if mscorlib.dll is not found.
3433         * assembly.h: Remove corlib name define.
3434         * class.c:
3435         * domain.c:
3436         * image.c: Change corlib name to mscorlib.
3437         
3438 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
3439
3440         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
3441
3442 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
3443
3444         * appdomain.h: Added loader_optimization here to sync with the C#
3445         code, and add disallow_binding_redirects field.
3446
3447 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
3448
3449         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
3450
3451         * reflection.c (mono_image_build_metadata): Fix crash on modules
3452         with no types.
3453
3454         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
3455
3456         * icall.c (ves_icall_get_method_info): Return callingConvention as
3457         well.
3458
3459         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
3460         namespaces from the EXPORTEDTYPE table as well.
3461
3462         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
3463         from all modules inside the assembly.
3464         
3465 2003-11-11  Martin Baulig  <martin@ximian.com>
3466
3467         * reflection.c (mono_reflection_bind_generic_parameters): Make
3468         this work for interfaces.
3469
3470 2003-11-11  Martin Baulig  <martin@ximian.com>
3471
3472         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
3473
3474 2003-11-11  Martin Baulig  <martin@ximian.com>
3475
3476         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
3477         "MonoInflatedMethod" and "MonoInflatedCtor".
3478
3479 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
3480
3481         * reflection.c (resolution_scope_from_image): Use the assembly table
3482         from the manifest module, since other modules don't have it.
3483
3484         * debug-helpers.c (mono_type_full_name): New helper function.
3485
3486         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
3487
3488         * image.c (mono_image_load_file_for_image): New public function which
3489         is a replacement for the load_file_for_image in class.c.
3490
3491         * assembly.c (mono_assembly_load_module): A wrapper for the function
3492         above which does assembly association and reference loading too.
3493
3494         * class.c (mono_class_from_name): Call mono_assembly_load_module.
3495
3496 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3497
3498         * appdomain.c: not all of the attributes for the full assembly name
3499         are required and the order doesn't matter. Fixes bug #50787.
3500
3501 2003-11-10  Dick Porter  <dick@ximian.com>
3502
3503         * locales.c: Use platform-endian UTF16
3504
3505 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
3506
3507         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
3508         
3509 2003-11-10  Martin Baulig  <martin@ximian.com>
3510
3511         * metadata.c
3512         (mono_metadata_load_generic_params): Make this actually work.
3513
3514         * reflection.c (mono_reflection_bind_generic_parameters): If our
3515         parent is a generic instance, pass all the `types' to it, no
3516         matter whether it has the same number of type parameters or not.
3517
3518 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
3519
3520         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
3521
3522         * assembly.c (mono_assembly_load_references): Move the image<->assembly
3523         assignment code to this function so it gets called recursively for all
3524         modules.
3525
3526         * image.c (load_modules): Remove the assembly assignment since it is
3527         now done by mono_assembly_load_references.
3528         
3529         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
3530         Add 'module' argument.
3531         (mono_module_get_types): New helper function.
3532         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
3533
3534 2003-11-08  Martin Baulig  <martin@ximian.com>
3535
3536         * class.c (mono_class_inflate_generic_method): Interface method
3537         don't have a header.
3538
3539         * reflection.c (mono_image_get_methodspec_token): Take an
3540         additional `MonoGenericInst *' argument instead of reading it from
3541         the header; this is necessary to support interfaces.
3542         (mono_image_create_token): Pass the `MonoGenericInst *' from the
3543         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
3544         (inflated_method_get_object): Take an additional `MonoGenericInst *'
3545         argument.
3546
3547         * reflection.h (MonoReflectionInflatedMethod): Added
3548         `MonoGenericInst *ginst'.
3549
3550 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
3551
3552         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
3553
3554 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
3555
3556         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
3557
3558 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
3559
3560         * reflection.c 
3561         (reflection_methodbuilder_from_method_builder):
3562         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
3563         initialize a ReflectionMethodBuilder structure.
3564         (mono_image_get_methodbuilder_token):
3565         (mono_image_get_ctorbuilder_token): New functions to emit memberref
3566         tokens which point to types in another module inside the same assembly.
3567
3568         * reflection.c: Use the new helper functions.
3569         
3570         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
3571
3572         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
3573         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
3574
3575         * reflection.c (resolution_scope_from_image): Emit a moduleref if
3576         neccesary.
3577
3578         * reflection.c (mono_image_build_metadata): Emit metadata only for the
3579         current module. Emit the manifest only for the main module.
3580
3581         * reflection.c (mono_image_create_token): Add assertion when a 
3582         memberref needs to be created.
3583
3584         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
3585
3586         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
3587         larger buffer for the custom attribute blob. Fixes #50637.
3588         
3589 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3590
3591         * threadpool.c: notify listener on async processing handles after
3592         invoking the async callback. Thanks to Zoltan.
3593
3594 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
3595
3596         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
3597         avoid code duplication.
3598
3599         * reflection.h (MonoDynamicImage): New type which is currently unused,
3600         but will be used through the ref.emit code in place of 
3601         MonoDynamicAssembly.
3602
3603         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
3604         object layout.
3605
3606         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
3607         a MonoDynamicImage instead of just a MonoImage.
3608         
3609         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
3610         icalls to ModuleBuilder but keep their semantics, so they will work
3611         with moduleb->assemblyb. This will change later.
3612         
3613 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
3614
3615         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
3616         object layout.
3617
3618         * reflection.c (mono_image_build_metadata): Avoid creation of a default
3619         main module, since it is now done by the managed code.
3620
3621 2003-11-03  Martin Baulig  <martin@ximian.com>
3622
3623         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
3624         `ginst->klass' here.
3625         (method_encode_methodspec): Don't use the `ginst->generic_method's
3626         klass if it's a generic instance, use `ginst->klass' in this case.
3627
3628 2003-11-03  Martin Baulig  <martin@ximian.com>
3629
3630         * reflection.c (mono_image_get_generic_method_param_info):
3631         Removed, use mono_image_get_generic_param_info() instead.
3632         (mono_image_get_type_info): Write the GenericParam table before
3633         the Method table.  This is neccessary because in the GenericParam
3634         table, type parameters of the class (ie. '!0' etc.) must come
3635         before the ones from its generic methods (ie. '!!0' etc).
3636
3637 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
3638
3639         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
3640
3641 2003-11-02  Martin Baulig  <martin@ximian.com>
3642
3643         * reflection.c (create_generic_typespec): Take a
3644         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
3645         the generic parameters from it.
3646
3647 2003-11-02  Martin Baulig  <martin@ximian.com>
3648
3649         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
3650         instead of a `MonoClassField *' since we just need the type.
3651         (create_generic_typespec): New static function.  Creates a
3652         TypeSpec token for a generic type declaration.
3653         (mono_image_get_generic_field_token): New static function.
3654         (mono_image_create_token): If we're a FieldBuilder in a generic
3655         type declaration, call mono_image_get_generic_field_token() to get
3656         the token.
3657
3658 2003-11-02  Martin Baulig  <martin@ximian.com>
3659
3660         * reflection.h
3661         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
3662         `MonoReflectionGenericInst *declaring_type' and
3663         `MonoReflectionGenericInst *reflected_type' fields.
3664
3665         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
3666         `MonoReflectionGenericInst *declaring_type' and a
3667         `MonoReflectionGenericInst *reflected_type' argument instead of a
3668         single `MonoReflectionGenericInst *type' one.  Set
3669         `res->declaring_type' and `res->reflected_type' from them.
3670         (mono_reflection_inflate_field): Likewise.      
3671
3672 2003-11-02  Martin Baulig  <martin@ximian.com>
3673
3674         * class.c (mono_class_setup_vtable): Don't store generic methods
3675         in the vtable.  
3676
3677 2003-11-02  Martin Baulig  <martin@ximian.com>
3678
3679         * reflection.h (MonoReflectionGenericInst): Added
3680         `MonoReflectionType *declaring_type'.
3681
3682         * reflection.c (mono_reflection_bind_generic_parameters): Use
3683         `if (tb->parent)' instead of `klass->parent'.
3684
3685 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
3686
3687         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
3688         with an empty ASSEMBLY table.
3689
3690         * reflection.c (mono_image_build_metadata): Avoid using the same loop
3691         variable in the inner and outer loops.
3692
3693 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
3694
3695         * metadata.h (mono_metadata_make_token): Put parentheses around macro
3696         argument.
3697
3698         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
3699         
3700         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
3701         icalls. Instead, do everything in managed code. This is needed since
3702         it is hard to restore the original domain etc. in unmanaged code in the
3703         presence of undeniable exceptions.
3704
3705         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
3706         New icalls to push and pop appdomain refs.
3707
3708 2003-10-31  Martin Baulig  <martin@ximian.com>
3709
3710         * class.c (inflate_generic_type): Renamed to
3711         mono_class_inflate_generic_type() and made it public.
3712
3713         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
3714         New interncall.
3715
3716         * loader.c (mono_field_from_memberref): Also set the retklass for
3717         typespecs.
3718
3719         * fielder.c (mono_image_get_inflated_field_token): New static
3720         method; creates a metadata token for an inflated field.
3721         (mono_image_create_token, fixup_method): Added support for
3722         "MonoInflatedField".
3723         (fieldbuilder_to_mono_class_field): New static function.
3724         (mono_reflection_inflate_field): New public function.
3725
3726         * reflection.h
3727         (MonoReflectionGenericInst): Added `MonoArray *fields'.
3728         (MonoReflectionInflatedField): New typedef.     
3729
3730 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
3731
3732         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
3733         for Solaris and other platforms without s6_addr16
3734
3735 2003-10-30  Martin Baulig  <martin@ximian.com>
3736
3737         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
3738         argument instead of two.
3739         (mono_class_inflate_generic_signature): Likewise.
3740         (inflate_generic_header): Likewise.
3741         (mono_class_inflate_generic_method): Likewise.  In addition, if
3742         `ginst->klass' is set, it becomes the new `method->klass'.
3743
3744         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
3745         field.
3746
3747         * reflection.c (encode_generic_method_sig): Write a 0xa as the
3748         first byte. [FIXME]
3749         (method_encode_methodspec): If we have generic parameters, create
3750         a MethodSpec instead of a MethodRef.
3751         (fixup_method): Added support for "MonoInflatedMethod" and
3752         "MonoInflatedCtor".
3753         (mono_image_create_token): Added support for "MonoInflatedMethod"
3754         and "MonoInflatedCtor".
3755         (inflated_method_get_object): New static function; returns a
3756         managed "System.Reflection.MonoInflatedMethod" object.
3757         (mono_reflection_bind_generic_method_parameters): Return a
3758         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
3759         (mono_reflection_inflate_method_or_ctor): Likewise.
3760         (mono_image_get_generic_method_param_info): Initialize unused
3761         fields to zero.
3762         (mono_image_get_generic_param_info): Likewise.
3763
3764         * reflection.h (MonoReflectionInflatedMethod): New public
3765         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
3766         "S.R.MonoInflatedCtor" classes.
3767
3768         * loader.c (method_from_memberref): If we're a TypeSpec and it
3769         resolves to a generic instance, inflate the method.
3770
3771 2003-10-28  Dick Porter  <dick@ximian.com>
3772
3773         * object.c (mono_runtime_run_main): Convert command-line arguments
3774         into utf8, falling back to the user's locale encoding to do so.
3775
3776 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
3777
3778         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
3779         at this time.
3780
3781         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
3782
3783         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
3784         up icalls at method definition time. Partially fixes #33569.
3785
3786 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
3787
3788         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
3789         marshalling of arrays. Fixes #50116.
3790
3791         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
3792
3793         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
3794         points to a vtable in the dying appdomain.
3795
3796         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
3797         listeners into unmanaged code inside the lock.
3798
3799         * object.c (mono_class_vtable): Turn off typed allocation in non-root
3800         domains and add some comments.
3801
3802 2003-10-25  Martin Baulig  <martin@ximian.com>
3803
3804         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
3805
3806         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
3807
3808         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
3809         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
3810         currently parsing.  Create the generic class and store it in
3811         `generic_inst->klass' before parsing the type arguments.  This is
3812         required to support "recursive" definitions; see mcs/tests/gen-23.cs
3813         for an example.
3814         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
3815         to support recursive typespec entries.
3816
3817         * class.c (mono_class_setup_parent): If our parent is a generic
3818         instance, we may get called before it has its name set.
3819         (mono_class_from_generic): Splitted into
3820         mono_class_create_from_generic() and mono_class_initialize_generic().
3821
3822 2003-10-25  Martin Baulig  <martin@ximian.com>
3823
3824         * icall.c (ves_icall_Type_BindGenericParameters): Return a
3825         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
3826         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
3827         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
3828
3829         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
3830         (create_typespec): Likewise.
3831         (mono_reflection_bind_generic_parameters): Return a
3832         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
3833         (mono_reflection_inflate_method_or_ctor): New public function.
3834
3835         * reflection.h (MonoReflectionGenericInst): New typedef.        
3836
3837 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
3838
3839         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
3840         inside the domain lock. Fixes #49993.
3841         
3842         * object.c (mono_class_vtable): When typed allocation is used, 
3843         allocate vtables in the GC heap instead of in the mempool, since the
3844         vtables contain GC descriptors which are used by the collector even
3845         after the domain owning the mempool is unloaded.
3846
3847         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
3848
3849         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
3850         reflect what it does. Also invalidate mempools instead of freeing
3851         them if a define is set.
3852
3853         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
3854         of the appdomain.
3855         
3856         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
3857         hold the finalizable objects in this domain.
3858
3859         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
3860         appdomain.
3861
3862         * appdomain.c (mono_domain_set): New function to set the current
3863         appdomain, but only if it is not being unloaded.
3864
3865         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
3866         appdomain which is being unloaded.
3867         
3868         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
3869         unloading of the root appdomain.
3870
3871         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
3872         icall to execute a method in another appdomain. Intended as a 
3873         replacement for InternalSetDomain, which can confuse the code 
3874         generation in the JIT.
3875
3876         * appdomain.c (mono_domain_is_unloading): New function to determine
3877         whenever an appdomain is unloading.
3878
3879         * appdomain.c (mono_domain_unload): New function to correctly unload
3880         an appdomain.
3881
3882         * assembly.c (mono_assembly_load_references): Check that an assembly
3883         does not references itself.
3884
3885         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
3886         domain manually, it asks the finalizer thread to do it, then waits for
3887         the result. Also added a timeout.
3888
3889         * icall.c: Register the new icalls.
3890
3891         * threads.h threads.c: Export the mono_gc_stop_world and 
3892         mono_gc_start_world functions.
3893         
3894         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
3895         function to fill out the mempool with 0x2a.
3896
3897 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
3898
3899         * reflection.h (MonoReflectionMethodAux): New structure to store
3900         information which is rarely used, thus is not in the MonoMethod
3901         structure.
3902
3903         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
3904         store the aux info.
3905
3906         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
3907         and marshalling info into the aux structure.
3908
3909         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
3910         from the aux structure.
3911
3912         * loader.c (mono_method_get_param_names): Retrieve the param names from
3913         the aux structure.
3914         
3915 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
3916
3917         * exception.h exception.c: Add AppDomainUnloadedException && fix 
3918         warning.
3919
3920 2003-10-21  Dick Porter  <dick@ximian.com>
3921
3922         * socket-io.c
3923         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
3924         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
3925
3926 2003-10-21  Martin Baulig  <martin@ximian.com>
3927
3928         * reflection.c (mono_reflection_bind_generic_parameters):
3929         `klass->parent' is NULL for interfaces.
3930
3931 2003-10-21  Martin Baulig  <martin@ximian.com>
3932
3933         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
3934
3935 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
3936
3937         * exception.c (mono_exception_from_name_msg): New helper function for
3938         creating exceptions and initializing their message field.
3939
3940         * exception.c: Simplify functions using the new helper.
3941
3942         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
3943         New function.
3944
3945         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
3946         mono_raise_exception, since otherwise gcc doesn't generate the function
3947         epilog for raise_exception, confusing the stack unwinding in the JIT.
3948         Fixes #45043.
3949
3950         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
3951         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
3952         Fixes #49499.
3953
3954 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3955
3956         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
3957         utf8.
3958
3959 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
3960
3961         * icall.c: Removed GetUninitializedObject method because
3962           AllocateUninitializedClassInstance does the same.
3963
3964 2003-10-18  Martin Baulig  <martin@ximian.com>
3965
3966         * class.c (inflate_generic_signature): Renamed to
3967         mono_class_inflate_generic_signature() and made it public.
3968         (my_mono_class_from_generic_parameter): New static function; if we
3969         don't already have the generic parameter's MonoClass, create a
3970         very simple one which is just used internally in the runtime and
3971         not passed back to managed code.
3972
3973         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
3974
3975         * metadata.h (MonoMethodSignature): Moved the
3976         `MonoGenericParam *gen_params' to the MonoMethodHeader.
3977         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
3978
3979         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
3980         ves_icall_MonoMethod_GetGenericArguments(); this is now an
3981         interncall on the MonoMethod class, not on MethodInfo.
3982         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
3983         calling mono_reflection_bind_generic_method_parameters() directly.
3984
3985         * loader.c (mono_method_get_signature): If this is a MethodSpec;
3986         return the already computed `method->signature'.
3987         (method_from_methodspec): New static function to load a method
3988         from a MethodSpec entry.
3989         (mono_get_method_from_token): Call the new method_from_methodspec()
3990         for MethodSpec tokens.  
3991         (mono_get_method_from_token): If we're a generic method, load the
3992         type parameters.
3993
3994         * reflection.c (mono_image_get_memberref_token): Allow
3995         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
3996         table.
3997         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
3998         (mono_image_create_token): First check whether it's a generic
3999         method (so we'd need to create a MethodSpec), then do the other
4000         two alternatives.
4001         (mono_reflection_bind_generic_method_parameters): Return a
4002         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
4003         called directly from the interncall.
4004
4005 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
4006
4007         * reflection.c (load_public_key): Move loading of the public key
4008         into managed code.
4009
4010         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
4011
4012         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
4013         fields.
4014
4015         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
4016         culture, hash_alg and public_key. Fixes #49555.
4017
4018 2003-10-17  Martin Baulig  <martin@ximian.com>
4019
4020         * class.h (MonoGenericInst): Moved this declaration here and added
4021         `MonoMethod *generic_method'.
4022
4023         * icall.c
4024         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
4025         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
4026
4027         * metadata.c (mono_metadata_type_equal): Two types of
4028         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
4029         index; ie. don't compare the address of the `MonoGenericParam'
4030         structure.
4031         (mono_metadata_load_generic_params): Removed the `MonoMethod
4032         *method' argument.
4033
4034         * metadata.h (MonoGenericInst): Moved declaration to class.h.
4035         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
4036
4037         * reflection.c (method_encode_signature): Encode the number of
4038         generic parameters.
4039         (encode_generic_method_sig): New static function.
4040         (method_encode_methodspec): New static function; creates an entry
4041         in the MethodSpec table for a generic method.
4042         (mono_image_get_methodspec_token): New static function.
4043         (mono_image_create_token): Call mono_image_get_methodspec_token()
4044         for generic methods.
4045         (mono_reflection_bind_generic_method_parameters): New public
4046         function.  Instantiates a generic method.
4047
4048 2003-10-16  Martin Baulig  <martin@ximian.com>
4049
4050         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
4051         *gen_params' here from MonoMethodHeader.
4052
4053         * metadata.c (mono_metadata_parse_method_signature): If we have
4054         generic parameters, initialize `method->gen_params' and then set
4055         the correct `type->data.generic_param' in all the parameters.
4056
4057 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
4058
4059         * threads.c (mono_threads_get_default_stacksize): New function to 
4060         return the default stacksize.
4061
4062         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
4063         termination of the finalizer thread, since the previous method had
4064         race conditions. Fixes #49628.
4065
4066         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
4067         as for the other managed threads.
4068
4069 2003-10-16  Martin Baulig  <martin@ximian.com>
4070
4071         * class.c (inflate_generic_signature): Copy `generic_param_count'
4072         and `gen_params'.
4073
4074         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
4075         New interncall.
4076
4077         * metadata.c (mono_metadata_parse_method_signature): Actually set
4078         the `method->generic_param_count' here.
4079         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
4080
4081 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
4082
4083         * object.h: Add a new field to TypedRef to simplify the implementation
4084         of the REFANY opcodes in the JIT.
4085
4086         * icall.c: Make use of the new field.
4087
4088         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
4089         dynamically.
4090
4091 2003-10-15  Martin Baulig  <martin@ximian.com>
4092
4093         * class.c (mono_class_from_gen_param): Renamed to
4094         mono_class_from_generic_parameter() and moved most of the
4095         functionality from mono_reflection_define_generic_parameter()
4096         here; ie. we create a "real" class here.
4097         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
4098         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
4099         previously been called.
4100
4101         * class.h (MonoGenericParam): Moved the declaration of this struct
4102         here from metadata.h and added `MonoMethod *method'.
4103
4104         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
4105         interncall.
4106
4107         * loader.c (mono_get_method_from_token): If we have any generic
4108         parameters, call mono_metadata_load_generic_params() to read them
4109         from the MONO_TABLE_GENERICPAR.
4110
4111         * metadata.c (mono_metadata_load_generic_params): Added
4112         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
4113
4114         * metadata.h (MonoMethodSignature): Replaced
4115         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
4116         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
4117
4118         * reflection.c (mono_reflection_define_generic_parameter): Moved
4119         most of the functionality into the new
4120         mono_class_from_generic_parameter(); set the `method' field if
4121         we're a method parameter.       
4122
4123 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
4124
4125         * marshal.c (emit_struct_conv): if native size is 0
4126         emit no code.
4127
4128 2003-10-14  Martin Baulig  <martin@ximian.com>
4129
4130         * icall.c: The generics API has changed in the spec since it was
4131         added to System.Type; these modifications make it match the spec
4132         again.
4133         (ves_icall_Type_GetGenericParameters): Renamed to
4134         `ves_icall_Type_GetGenericArguments'.
4135         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
4136         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
4137         `ves_icall_MonoType_get_HasGenericArguments'.
4138         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
4139         `ves_icall_MonoType_get_IsGenericParameter'.
4140         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
4141         this is no interncall anymore.
4142         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
4143         `ves_icall_TypeBuilder_get_IsGenericParameter'.
4144
4145 2003-10-14  Martin Baulig  <martin@ximian.com>
4146
4147         * reflection.c (mono_reflection_bind_generic_parameters): Also
4148         inflate generic methods if we're reading the class from IL.
4149
4150 2003-10-13  Martin Baulig  <martin@ximian.com>
4151
4152         * reflection.c (mono_reflection_define_generic_parameter): This
4153         method isn't called directly from the icall anymore; take a
4154         `MonoReflectionAssemblyBuilder *' so we can use this for type and
4155         method generic parameters.
4156         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
4157         (method_builder_encode_signature): Encode generic parameters.
4158         (mono_image_get_method_info): Write generic params to the
4159         MONO_TABLE_GENERICPARAM table.
4160
4161         * reflection.h (MonoReflectionMethodBuilder): Added
4162         `MonoArray *generic_params'.
4163
4164         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
4165
4166         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
4167         wrapper for mono_reflection_define_generic_parameter().
4168         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
4169
4170 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
4171
4172         * marshal.h: Add missing function to fix build.
4173
4174         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
4175         the SetLastError pinvoke attribute.
4176
4177         * marshal.c (mono_marshal_set_last_error): New helper function called
4178         by the generated code.
4179         
4180         * marshal.c (mono_mb_emit_branch): New helper function.
4181
4182         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
4183
4184         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
4185         classes as parameters and return values of delegates. Fixes #29256. 
4186
4187 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
4188
4189         * locales.c: use gint32 in non HAVE_ICU case
4190
4191 2003-10-11  Martin Baulig  <martin@ximian.com>
4192
4193         * mono-debug.c (mono_debug_add_method): Added a workaround for
4194         bug #48591.
4195
4196 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
4197
4198         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
4199         delegates passed to native code must use the STDCALL calling 
4200         convention. Fixes #35987.
4201
4202 2003-10-10  Martin Baulig  <martin@ximian.com>
4203
4204         * class.c (inflate_generic_type): If we're inflating for a generic
4205         type instance (and not for a generic method), return
4206         MONO_TYPE_MVAR unchanged.
4207
4208 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4209
4210         * string-icalls.c: Join ignores null strings in the source array.
4211         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
4212         * threads.c: GetAvailableTheads is slightly more accurate.
4213
4214 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
4215
4216         * threads.h threads.c : add mono_threads_set_default_stacksize
4217         and pass default to CreateThread calls.
4218
4219 2003-10-09  Dick Porter  <dick@ximian.com>
4220
4221         * icall.c:
4222         * locales.h:
4223         * locales.c: Internal calls for constructing CultureInfo and
4224         related objects from libicu (if its available.)
4225
4226 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
4227
4228         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
4229
4230 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4231
4232         * threadpool.c: added an argument to async_invoke_thread that is the
4233         item to process, pass the MonoAsyncResult to the thread start function
4234         when creating a new thread. This way we don't need to acquire any lock
4235         when we're creating a new thread. Readded a semaphore for faster
4236         response times (instead of that Sleep i added).
4237
4238 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
4239
4240         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
4241         get daylight change dates better on Windows, fix handling
4242         of platforms without tm_gmtoff.
4243
4244 2003-10-06  Martin Baulig  <martin@ximian.com>
4245
4246         * class.c (inflate_generic_method): Renamed to
4247         mono_class_inflate_generic_method() and made public.
4248         (mono_class_init): Don't inflate the generic methods here.
4249         (mono_class_from_generic): Added `gboolean inflate_methods'
4250         argument.  Inflate the methods here.
4251
4252         * loader.c (mono_method_get_param_names): Ignore instances of
4253         generic types for the moment.
4254
4255         * reflection.c (fixup_method): Added support for inflated methods.
4256         (mono_image_create_token): Use mono_image_get_methodref_token()
4257         for inflated methods.
4258         (mono_custom_attrs_from_param): Ignore instances of generic types
4259         for the moment.
4260         (mono_reflection_bind_generic_parameters): New public function.
4261         Moved all the functionality from
4262         ves_icall_Type_BindGenericParameters() here and added support for
4263         dynamic types.
4264         (mono_reflection_define_generic_parameter): Initialize
4265         `klass->methods' here.
4266
4267         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
4268         functionality into mono_reflection_define_generic_parameter().
4269         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
4270         TypeBuilder, return that TypeBuilder.
4271
4272 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4273
4274         * appdomain.c: removed mono_delegate_semaphore.
4275
4276         * threadpool.c:
4277         (mono_thread_pool_add): moved hash table creation inside and the thread 
4278         creation outside of the critical region.
4279         (mono_thread_pool_finish): removed obsolete code.
4280         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
4281         continue or exit the thread depending on the queue.
4282
4283 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
4284
4285         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
4286         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
4287         handle more bool marshalling options
4288
4289 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
4290
4291         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
4292         arrays of structs. Also add a more descriptive error message when
4293         a structure member is marshalled as LPArray.
4294
4295 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
4296
4297         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4298         marshalling arrays of complex types. Fixes #29098. Also remove an
4299         usused and incomplete function.
4300
4301 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
4302
4303         * gc.c: report heap_size - free_bytes as total memory allocated
4304         (bug#49362).
4305
4306 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
4307
4308         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
4309         fix timezone handling problems on Windows.
4310         
4311         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
4312         asserts when the year is outside the range handled by ms the functions.
4313
4314         * class.c (setup_interface_offsets): If the class is an interface,
4315         fill out its interface_offsets slot.
4316
4317 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4318
4319         * threadpool.c: mark threadpool threads as background.
4320
4321 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
4322
4323         * decimal.c - define DECINLINE to nothing if not using GCC
4324
4325 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
4326
4327         * assembly.c: More refcount fixes.
4328
4329 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4330
4331         * string-icalls.c: if we're not trimming, return the same string.
4332         When not splitting, don't create a new string.
4333
4334 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4335
4336         * image.c:
4337         (mono_image_open): increment the ref_count inside the critical section.
4338
4339 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
4340
4341         * image.c (mono_image_open): Fix reference counting bug.
4342
4343 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
4344
4345         * marshal.c (mono_marshal_type_size) struct alignment changed for 
4346         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
4347         64bits. Avoid leak in mono_marshal_get_native_wrapper when
4348         mono_lookup_pinvoke_call throws.        
4349
4350 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
4351
4352         * reflection.c (mono_reflection_parse_type): Fix #49114.
4353
4354         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
4355         temporary workaround for cygwin header problem.
4356
4357         * object.c (mono_object_isinst): Synchronize this with the code
4358         generated by the JIT for casts.
4359
4360 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
4361
4362         * reflection.c (encode_type): Fix #38332.
4363
4364 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
4365
4366         * marshal.c (mono_marshal_method_from_wrapper): New function to return
4367         the original method from the wrapper method.
4368
4369 2003-09-25  Martin Baulig  <martin@ximian.com>
4370
4371         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
4372         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
4373         (ves_icall_Type_get_IsGenericInstance): New interncall.
4374
4375 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
4376
4377         * object.c: fix cast warning in big endian code.
4378
4379 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
4380
4381         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
4382         
4383 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4384
4385         * assembly.c: don't call check_env from mono_assembly_load. It's
4386         already done once in mono_assemblies_init and may cause headaches when
4387         multiple threads are loading assemblies.
4388
4389 2003-09-19  Martin Baulig  <martin@ximian.com>
4390
4391         * reflection.c (mono_reflection_define_generic_parameter): Don't
4392         allocate `klass->methods', set `klass->flags' to
4393         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
4394
4395 2003-09-18  Martin Baulig  <martin@ximian.com>
4396
4397         * class.c (mono_class_init): Don't create `class->methods' if it's
4398         already initialized.
4399
4400         * metadata.c (mono_metadata_load_generic_params): Make this
4401         actually work.
4402
4403         * reflection.c (mono_reflection_define_generic_parameter): Set
4404         parent class and interfaces from the constraints.
4405
4406         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
4407         to keep this struct in sync with the declaration in TypeBuilder.cs.
4408
4409 2003-09-17  Martin Baulig  <martin@ximian.com>
4410
4411         * metadata.h (MonoType): Replaced the data's `int type_param'
4412         field with `MonoGenericParam *generic_param'.
4413         (MonoGenericParam): Added `MonoClass *klass'.
4414
4415         * class.c (mono_class_from_gen_param): Removed the
4416         `MonoImage *image' and `int type_num' arguments.
4417
4418         * metadata.c (mono_metadata_parse_generic_param): New static
4419         method; creates a MonoGenericParam which just contains the index.
4420         (do_mono_metadata_parse_type): Call
4421         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
4422         MONO_TYPE_MVAR.
4423
4424         * reflection.c (mono_image_typedef_or_ref): Generic type
4425         parameters may be in the same assembly, but never use a typedef
4426         for them.
4427         (mono_reflection_define_generic_parameter): We're now creating a
4428         "real" class for the type parameter; it's now safe to call
4429         mono_class_from_mono_type() on the class'es type, it'll do the
4430         right thing.
4431
4432 2003-09-16  Martin Baulig  <martin@ximian.com>
4433
4434         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
4435         `symfile->range_entry_size' and `symfile->class_entry_size' here;
4436         the `symfile' data structure must be fully initialized before it
4437         gets added to the table.
4438
4439 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
4440
4441         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
4442
4443         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
4444         class init trampolines.
4445
4446 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
4447
4448         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
4449         to the built-in profiler to turn off time and allocation profiling
4450         respectively.
4451
4452 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
4453
4454         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
4455         g_direct_equal.
4456
4457         * debug-helpers.c (mono_method_full_name): Print the wrapper type
4458         in human readable form.
4459
4460 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
4461
4462         * reflection.c icall.c: Fixed warnings.
4463
4464         * image.c (load_class_names): Use a temporary hash table to hold the
4465         namespaces in order to avoid doing many string comparisons.
4466
4467         * image.h: Fix typo.
4468
4469         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
4470         Pass NULL instead of g_direct_equal to the GHashTable constructor 
4471         since the NULL case is short-circuited inside g_hash_table_lookup, 
4472         leading to better performance.  
4473
4474         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
4475         obtain the first custom attribute for a given index. Depends on the
4476         CustomAttribute table being sorted by the parent field.
4477
4478         * reflection.c (mono_custom_attrs_from_index): Use the new function 
4479         for better performance.
4480
4481 2003-09-07  Martin Baulig  <martin@ximian.com>
4482
4483         * class.c (mono_class_init): If we're a generic instance, inflate
4484         all our methods instead of loading them from the image.
4485         (mono_class_from_generic): Set `class->methods = gklass->methods'.
4486
4487 2003-09-07  Martin Baulig  <martin@ximian.com>
4488
4489         * mono-debug-debugger.c: Added support for constructors.
4490
4491 2003-09-06  Martin Baulig  <martin@ximian.com>
4492
4493         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
4494         New interncall.
4495
4496         * reflection.c (mono_reflection_setup_generic_class): Call
4497         ensure_runtime_vtable() to create the vtable.
4498
4499 2003-09-05  Martin Baulig  <martin@ximian.com>
4500
4501         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
4502         MONO_TYPE_MVAR.
4503
4504 2003-09-04  Martin Baulig  <martin@ximian.com>
4505
4506         * reflection.c (mono_reflection_define_generic_parameter): Generic
4507         parameters start with zero.
4508
4509 2003-09-04  Martin Baulig  <martin@ximian.com>
4510
4511         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
4512
4513         * reflection.h (MonoReflectionGenericParam): New typedef.
4514         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
4515         the generic parameters from the managed TypeBuilder.
4516
4517         * reflection.c (mono_reflection_define_generic_parameter): New function.
4518         (mono_reflection_create_runtime_class): Encode generic parameters.
4519         (mono_reflection_setup_generic_class): New function; this is
4520         called after adding adding all generic params to the TypeBuilder.
4521         (encode_type): Added MONO_TYPE_VAR.
4522
4523 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
4524
4525         * class.h class.c (mono_class_needs_cctor_run): Moved this method
4526         here from the JIT.
4527
4528         * assembly.h assembly.c: Moved the AOT loading code into an assembly
4529         load hook.
4530
4531 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
4532
4533         * reflection.h reflection.c class.h class.c: Delete duplicate 
4534         definition of mono_type_get_name () from reflection.c and export the
4535         one in class.c.
4536
4537         * class.c: Class loading fixes from Bernie Solomon 
4538         (bernard@ugsolutions.com).
4539
4540         * reflection.c: Endianness fixes from Bernie Solomon 
4541         (bernard@ugsolutions.com).
4542         
4543 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
4544
4545         * assembly.h assembly.c: Define a file format version for AOT
4546         libraries.
4547         
4548         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
4549
4550         * appdomain.h (MonoJitInfo): New field to determine whenever the
4551         code is domain neutral.
4552         
4553 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
4554
4555         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
4556
4557 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
4558
4559         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
4560         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
4561         Avoid caching the result since strings must be domain specific. Fixes
4562         #48050.
4563
4564 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
4565
4566         * marshal.c (mono_marshal_init): Make this callable multiple times
4567         since it is hard to find a correct place to call it.
4568
4569         * object.c (mono_runtime_class_init): Execute static constructors in
4570         the correct appdomain.
4571
4572         * image.c (build_guid_table): Handle the case when multiple images have
4573         the same GUID.
4574
4575 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4576
4577         * icall.c: added a couple of icalls for System.Web.
4578
4579 2003-08-28  Martin Baulig  <martin@ximian.com>
4580
4581         * icall.c (ves_icall_Type_BindGenericParameters): Use
4582         `klass->generic_inst' instead of `&klass->byval_arg' in the
4583         mono_type_get_object() call.  The returned type must be
4584         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
4585
4586 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
4587
4588         * NOTES: New file.
4589
4590         * object.c (mono_class_proxy_vtable): Make it thread safe.
4591
4592         * pedump.c: Fix warning.
4593
4594         * object.c appdomain.h: Get rid of metadata_section. 
4595         It is no longer needed and it was causing deadlocks with domain->lock.
4596
4597         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
4598
4599 2003-08-26  Martin Baulig  <martin@ximian.com>
4600
4601         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
4602
4603 2003-08-26  Martin Baulig  <martin@ximian.com>
4604
4605         * pedump.c (main): Call mono_metadata_init(),
4606         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
4607         and mono_loader_init().
4608
4609 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
4610
4611         * loader.h: Add missing include to fix build.
4612
4613         * image.h: mono_image_load_references is no more.
4614
4615         * assembly.c: Reworked assembly loading to make it really thread safe.
4616         After these changes, the assembly returned by mono_assembly_open is
4617         fully initialized, i.e. all its references assemblies are loaded.
4618
4619         * assembly.c (mono_image_load_references): Renamed to 
4620         mono_assembly_load_references, and made private, since clients no
4621         longer need to call it.
4622
4623         * class.c: Removed calls to mono_assembly_load_references, since it was
4624         a source of deadlocks.
4625
4626         * loader.h loader.c class.h class.c: Protect data structures using a 
4627         new lock, the loader lock.
4628
4629         * class.c (mono_class_setup_vtable): Create temporary hash tables and
4630         GPtrArrays only when needed.
4631
4632         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
4633         into empty structures by mcs. Fixes pinvoke7.cs.
4634         
4635         * domain.c (mono_init): Call a new initialization function.
4636
4637         * appdomain.c (mono_runtime_init): Call the new initializer function
4638         of the marshal module.
4639
4640         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
4641         inserted into empty structures by mcs. Fixes pinvoke7.cs.
4642
4643         * marshal.h marshal.c: Added locks around the wrapper caches to make
4644         this module thread safe.
4645
4646         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
4647         this argument. Fixes pinvoke1.exe.
4648
4649 2003-08-25  Lluis Sanchez <lluis@ximian.com>
4650
4651         * object.h: Added call_type field to MonoMethodMessage and the corresponding
4652         enumeration of values. Removed fields to store remote call output values in
4653         MonoAsyncResult. Not needed any more.
4654         * object.c: Initialize call_type and async_result fields in mono_message_init.
4655         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
4656         dispatching the message.
4657         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
4658         async call to finish. To do it use a message with EndInvoke call type.
4659
4660 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
4661
4662         * loader.h loader.c (mono_method_hash_marhal_info): New function which
4663         determines whenever a method has marshalling info.
4664
4665 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4666
4667         * assembly.c: fix the build on windows.
4668
4669 2003-08-22 Lluis Sanchez <lluis@ximian.com>
4670
4671         * object.cs: Fixed bug #47785.
4672
4673 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
4674
4675         * string-icalls.c (StringReplace): If their are no occurances of
4676         the old string found return a reference to the supplied
4677         string. This saves some memory and matches MS behavoir.
4678         
4679 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4680
4681         * socket-io.c: fixed compilation for systems that define AF_INET6
4682         and don't define SOL_IP/SOL_IPV6.
4683
4684 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
4685
4686         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
4687         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
4688
4689         * rawbuffer.c rawbuffer.h: Make this module thread safe.
4690
4691         * domain.c: Make this module thread safe.
4692
4693         * domain.c (mono_init): Call new initialization function.
4694
4695         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
4696         reference types too. Fixes #38812.
4697
4698         * image.c (mono_image_init): Fixed warnings.
4699
4700         * class.c (mono_class_from_typeref): Handle assembly load failure
4701         correctly.
4702
4703         * appdomain.c (add_assemblies_to_domain): Handle the case when
4704         the references of an assembly are not yet loaded.
4705
4706         * metadata.c image.c assembly.c: Moved initialization of global
4707         variables to a separate function called at startup since lazy 
4708         initialization of these variables is not thread safe.
4709         
4710         * image.c assembly.c: Made this module thread safe by adding locks in 
4711         the appropriate places.
4712
4713         * domain.c (mono_init): Call the new initialization functions of the
4714         three modules.
4715
4716 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
4717
4718         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
4719           make a direct call. It is proxy's work to make the call asynchronous.
4720           mono_delegate_end_invoke(): If the targe is a proxy, just collect
4721           the return values.
4722         * object.cs: mono_method_call_message_new(): read AsyncResult and
4723           state object from parameters list, if this info is requested.
4724         * object.h: Added fields to store remote call output values in
4725           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
4726
4727 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
4728
4729         * object.h: add needed fields to MonoThread.
4730         * threads.c, threads.h: allow registering a function to cleanup data
4731         allocated per thread by the JIT.
4732
4733 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
4734
4735         * loader.h: portability fix by Bernie Solomon
4736         * <bernard@ugsolutions.com>.
4737
4738 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
4739
4740         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
4741         return a MonoArray. This simplifies the code and also ensures that
4742         the cache allways contains an object reference as a value.
4743
4744         * icall.c (ves_icall_get_parameter_info): Simplified using the new
4745         function.
4746
4747 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4748
4749         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
4750         fixes a problem with byte ordering when getting the address family for
4751         a socket.
4752
4753 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
4754
4755         * .cvsignore: Added monosn.
4756
4757         * reflection.h reflection.c loader.c: Added support for parameter
4758         marshalling to dynamically created types. Fixes #47295.
4759
4760 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
4761
4762         * rand.c: remove useless warnings.
4763
4764 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
4765
4766         * class.c: implemented ldtoken for methods and fieldrefs.
4767
4768 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4769
4770         * threadpool.c: when mono_async_invoke was called, no one took care of
4771         monitoring the queue. So if the method invoked took some time and we
4772         got new async invoke requests after 500 ms (the thread created waited
4773         that long in WaitForSingleObject), the new async invoke was not called
4774         until the previous one finished.
4775
4776         This is fixed now. Thanks to Totte for helping with it.
4777
4778 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4779
4780         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
4781
4782 2003-08-11  Martin Baulig  <martin@ximian.com>
4783
4784         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
4785
4786 2003-08-06  Martin Baulig  <martin@ximian.com>
4787
4788         * mono-debug-debugger.c: Added support for static fields,
4789         properties and methods.
4790
4791 2003-08-06  Martin Baulig  <martin@ximian.com>
4792
4793         * mono-debug-debugger.c: Don't store the MonoString's vtable to
4794         make this work for applications with multiple application domains.
4795
4796 2003-08-04  Martin Baulig  <martin@ximian.com>
4797
4798         * mono-debug-debugger.c: Completely reworked the type support; the
4799         most important thing is that we're now just using one single
4800         `MonoType' instance per type.
4801
4802 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
4803
4804         * mono-endian.h, mono-endian.c, icall.c: Added icall
4805         ves_icall_System_Double_AssertEndianity to assert double word endianity
4806         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
4807
4808 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
4809
4810         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
4811         support, icalls and fixes.
4812
4813 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
4814
4815         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
4816         classes that are a punctuation character in .NET is not the same a
4817         g_unichar_ispunct.
4818
4819 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
4820
4821         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
4822
4823 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
4824
4825         * icall.c: Add new MemCopy internalcall.
4826         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
4827         Simplified code; It is not necessary to handle all the cases here,
4828         as the C# code takes care of it.  Only handle the case of the name
4829         resource embedded into the assembly.
4830
4831         Changed signature to return the data pointer and the size of the
4832         data. 
4833
4834 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
4835
4836         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
4837         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
4838
4839 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
4840
4841         * socket-io.c: ignore EINTR error in select.
4842
4843 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
4844
4845         * class.h, class.c: removed unused subclasses field in MonoClass.
4846
4847 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
4848
4849         * icall.c: improve fix of get_base_definition(). If the parent class
4850           doesn't have the mehod, look at the parent of the parent.
4851         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
4852           to check if a parameter is an in or out parameter
4853           (PARAM_ATTRIBUTE_IN is not set by default).
4854           mono_method_return_message_restore(): Use mono_class_value_size to
4855           get the size of a value type. mono_type_stack_size (parameterType)
4856           does not return the correct value if parameterType is byRef.
4857           mono_load_remote_field(), mono_load_remote_field_new(),
4858           mono_store_remote_field(), mono_store_remote_field_new():
4859           raise exception if the remote call returns an exception.
4860
4861 2003-07-28  Martin Baulig  <martin@ximian.com>
4862
4863         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
4864         method.  This is a wrapper around mono_runtime_invoke() which
4865         boxes the instance object if neccessary.
4866
4867 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
4868
4869         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
4870         metadata.h, row-indexes.h, verify.c: first cut of generics support.
4871
4872 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
4873
4874         * icall.c: disable mcs bug workaround.
4875
4876 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
4877
4878         * object.c (mono_runtime_class_init): Take the metadata_section
4879         mutex before obtaining the domain mutex.
4880
4881         * appdomain.h: Added definition of metadata_section mutex here. 
4882
4883         * object.c: define metadata_mutex here.
4884
4885 2003-07-24  Ravi Pratap  <ravi@ximian.com>
4886
4887         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
4888         fixed.
4889
4890 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
4891
4892         * reflection.c: Fix bug #46669
4893
4894 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4895
4896         * exception.c:
4897         * exception.h:
4898         * icall.c:
4899         * object.h: fill in the type name for TypeLoadException.
4900
4901 2003-07-23  Ravi Pratap  <ravi@ximian.com>
4902
4903         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
4904         relationship between TypeBuilders while compiling corlib) and bug
4905         45993 (Array types returned from the runtime while compiling
4906         corlib were from the loaded corlib).
4907
4908 2003-07-22  Martin Baulig  <martin@ximian.com>
4909
4910         * mono-debug-debugger.c: Reworked the type support a bit more;
4911         distinguish between types and classes.
4912
4913 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
4914
4915         * icall.c: add IsArrayImpl icall.
4916
4917 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
4918
4919         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
4920         initializing real_size only once. Also fix bug #46602.
4921
4922 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
4923
4924         * object.c: Renamed mono_metadata_section to metadata_section.
4925
4926 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
4927
4928         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
4929           empty array if the type is an array. Fixed.
4930           ves_icall_MonoMethod_get_base_definition: if the base method
4931           is abstract, get the MethodInfo from the list of methods of
4932           the class.
4933         * reflection.c: ParameterInfo.PositionImpl should be zero-based
4934           and it was 1-based. Fixed in mono_param_get_objects.
4935
4936 2003-07-20  Martin Baulig  <martin@ximian.com>
4937
4938         * mono-debug.h: Set version number to 31.
4939         (mono_debug_init): Added `MonoDomain *' argument.
4940
4941         * mono-debug-debugger.c: Reworked the type support; explicitly
4942         tell the debugger about builtin types; pass the `klass' address to
4943         the debugger.
4944
4945 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
4946
4947         * image.c: Allow new metadata tables to be loaded without a
4948         warning. Also update the warning message to give the new constant value.
4949                 
4950 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
4951
4952         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
4953         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
4954         array type representation changes.
4955
4956 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
4957
4958         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
4959         on Environment.Exit () call.
4960
4961 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
4962
4963         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
4964         requires a matching corlib.
4965
4966 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
4967
4968         * Changelog: My editor decided to add a CR to each line. Sorry about that.
4969           Committed again without the CRs.
4970         
4971 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
4972
4973         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
4974           getting it from the "this" socket instance. Did not work
4975           if the socket is a subclass of Socket.
4976           Also fixed bug #35371.
4977
4978 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
4979
4980         * metadata.c: fixed size for TypedByRef.
4981         * loader.c: when searching for a method, consider the vararg amrker.
4982         * unicode.c, decimal.c: constify some arrays.
4983
4984 2003-07-15  Dick Porter  <dick@ximian.com>
4985
4986         * socket-io.c: Fixed compilation for gcc < 3.2.
4987
4988         Fixed compilation for machines that don't have AF_INET6 (thanks to
4989         Bernie Solomon <bernard@ugsolutions.com> for that part.)
4990
4991         Fixed compile warnings.
4992         
4993         Fixed formatting and line endings.
4994
4995 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
4996
4997         * socket-io.h:
4998         * socket-io.c: Added IPv6 support.
4999
5000 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
5001
5002         * class.c (mono_class_is_assignable_from): New function to implement
5003         the is_assignable_from logic. Used by mono_object_isinst, 
5004         Type::IsAssignableFrom () and the interpreter.
5005
5006         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
5007         Object, even interfaces.
5008         
5009         * object.c (mono_object_isinst): Implement in terms of 
5010         is_assignable_from.
5011
5012         * icall.c (ves_icall_type_is_assignable_from): New icall.
5013
5014 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
5015
5016         * domain.c (foreach_domain): fix compiler warning.
5017
5018 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
5019
5020         * image.c (load_metadata_ptrs): use g_strndup because strndup is
5021         not available on all plattforms
5022
5023 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
5024
5025         * image.h image.c: Store the metadata version string in MonoImage.
5026         * icall.c: New icall to retrieve the image version.
5027         * reflection.c (create_dynamic_image): Fill in the image version field
5028         * reflection.c (build_compressed_metadata): Use the image version
5029         from the image structure.
5030
5031 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5032
5033         * appdomain.c: modified comment.
5034         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
5035         That will be its last iteration when mono_gc_cleanup is called from
5036         mono_runtime_cleanup and before the domain is unloaded.
5037
5038         Fixes bug #45962.
5039
5040 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
5041
5042         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
5043         attributes.
5044
5045 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5046
5047         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
5048         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
5049         Bernie Solomon <bernard@ugsolutions.com>.
5050
5051 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
5052
5053         * object.c, object.h: provide mono_object_new_fast() for faster
5054         allocation in some special cases.
5055
5056 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
5057
5058         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
5059         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
5060
5061 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
5062
5063         * threadpool.c: fix leaks.
5064
5065 2003-07-01  Dick Porter  <dick@ximian.com>
5066
5067         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
5068         using MonoGHashTables.  Fixes threadpool bug posted to list.
5069
5070 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
5071
5072         * image.h, image.c: added support to load an assembly from a byte array.
5073         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
5074         assembly bundle support.
5075
5076 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
5077
5078         * threadpool.c (mono_thread_pool_add): keep a reference to the
5079         AsyncResult to prevent GC
5080
5081 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
5082
5083         * class.c: leak fix.
5084
5085 2003-06-25  Dick Porter  <dick@ximian.com>
5086
5087         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
5088         for the async object, the WaitHandle object will close the handle.
5089         Fixes bug 45321.
5090
5091 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
5092
5093         * class.c: in mono_array_class_get (), lookup from the hash with the
5094         same type we insert: this works around a bug in
5095         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
5096         lluis. The real fix will have to wait for after the release.
5097
5098 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
5099
5100         * icall.c: fix memory leak when getting type members.
5101
5102 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
5103
5104         * reflection.c: added more pubtoken special cases.
5105
5106 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
5107
5108         * class.c: handle field offset correctly when class size
5109         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
5110
5111 2003-06-20  Martin Baulig  <martin@ximian.com>
5112
5113         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
5114         *image' field.
5115
5116 2003-06-20  Martin Baulig  <martin@ximian.com>
5117
5118         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
5119
5120 2003-06-20  Martin Baulig  <martin@ximian.com>
5121
5122         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
5123         just distinguish between variables in registers and variables at
5124         an offset relative to a register.
5125
5126 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5127
5128         * icall.c: #ifdef out latest changes until mcs is fixed.
5129
5130 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
5131
5132         * icall.c: return members in metadata order.
5133
5134 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
5135
5136         * icall.c: avoid infinite loop in GetTimeZoneData.
5137
5138 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
5139
5140         * icall.c: added Marshal.Prelink/All icalls.
5141
5142 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
5143
5144         * object.c, object.h: fix warnings and do some overflow checking
5145         when creating arrays.
5146
5147 2003-06-17  Dick Porter  <dick@ximian.com>
5148
5149         * file-io.h:
5150         * file-io.c: File attributes need to be tweaked slightly when
5151         passed from the managed to the w32 world.
5152
5153 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
5154         * profiler.h profiler-private.h profiler.c: Rework last patch
5155         based on suggestion by Paolo.
5156         
5157 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
5158
5159         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
5160         instruction level coverage data collection.
5161         * profiler.h profiler.c (: Added new callback function which can be
5162         used by the profiler to limit which functions should have coverage
5163         instrumentation.
5164         * profiler.c (mono_profiler_load): Call g_module_build_path to
5165         generate the file name of the profiler library.
5166
5167 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5168
5169         * profiler.c, profiler.h, profiler-private.h: added basic block 
5170         coverage profiling API.
5171
5172 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
5173
5174         * reflection.c (mono_reflection_create_runtime_class): Add support
5175         for events in dynamically generated code.
5176
5177         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
5178         not allocated.
5179
5180 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
5181
5182         * icall.c: when getting timezone info, return reasonable values if we
5183         can't get the actual data.
5184
5185 2003-06-14  Dick Porter  <dick@ximian.com>
5186
5187         * threads.c (start_wrapper): Remove the reference to the thread
5188         object in the TLS data, so the thread object can be finalized.
5189         This won't be reached if the thread threw an uncaught exception,
5190         so those thread handles will stay referenced :-( (This is due to
5191         missing support for scanning thread-specific data in the Boehm GC
5192         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
5193
5194 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
5195
5196         * reflection.c: ensure streams and tables are first allocated with
5197         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
5198
5199 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5200
5201         * icall.c: fixed GetElementType for byrefs (bug# 44792).
5202
5203 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
5204
5205         * reflection.c (mono_reflection_create_runtime_class): Add support for
5206         properties to dynamically created classes.
5207         * reflection.c: Fix a few places where non-MonoObjects were inserted
5208         into the tokens hashtable.
5209
5210 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
5211
5212         * object.c: some support to handle out of memory exceptions.
5213
5214 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
5215
5216         * marshal.c (mono_marshal_get_native_wrapper): support reference
5217         return types
5218
5219 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
5220
5221         * object.h, object.c: more portability stuff from Bernie Solomon.
5222         Unexport mono_object_allocate(). Added mono_object_unbox ().
5223         Set exitcode when an unhandled exception is thrown.
5224
5225 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
5226
5227         * marshal.c (mono_marshal_get_native_wrapper): use custom
5228         marshaler for return types.
5229
5230 2003-06-10  Dick Porter  <dick@ximian.com>
5231
5232         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
5233         ip_mreq is available
5234
5235 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
5236
5237         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
5238         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
5239         by Bernie Solomon <bernard@ugsolutions.com>.
5240
5241 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
5242
5243         * gc.c (mono_gc_init): Avoid error message on shutdown when
5244         GC_DONT_GC=1 is used.
5245
5246         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
5247         New icall to return the GUID of a module.
5248
5249 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
5250
5251         * class.c: ensure instance size always includes the parent's size
5252         even whem class size is set explicitly (fixes bug#44294).
5253
5254 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
5255
5256         * profiler.h, profiler.c: made the simple profiler thread-safe,
5257         get more accurate timing info. Allow the loading of an
5258         externally-developed profiler module.
5259
5260 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
5261
5262         * marshal.c (mono_marshal_get_native_wrapper): improved
5263         class/byref arguments.
5264         (mono_marshal_get_native_wrapper): better string marshaling support.
5265
5266 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
5267
5268         * class.c: ensure .pack and .size are handled correctly and
5269         simplified layout of static fields.
5270
5271 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
5272
5273         * appdomain.c
5274         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
5275
5276         * loader.c (mono_lookup_pinvoke_call): look for modules in the
5277         current directory (fix bug 44008)
5278
5279 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
5280
5281         * marshal.c (mono_marshal_get_native_wrapper): started support for
5282         custom marshalers.
5283         (mono_delegate_to_ftnptr): consider marshalling specifications
5284
5285 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
5286
5287         * reflection.c, reflection.h: emit custom marshal info.
5288
5289 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5290
5291         * object.c: free the GError.
5292         * icall.c: added CloseEvent_internal.
5293         * threads.[ch]:
5294         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
5295         call.
5296
5297 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
5298
5299         * loader.c (mono_method_get_signature): Add support for dynamic
5300         assemblies.
5301
5302 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
5303
5304         * reflection.c: fixed bug #43905.
5305
5306 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
5307
5308         * class.c, domain.c, icall.c, metadata.h, object.h: support for
5309         handling TypedReference and ArgIterator.
5310         * loader.c, loader.h: added function to get signature at call site.
5311
5312 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
5313
5314         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
5315         data readonly. Buglets and warning fixes. Some MethodSpec support.
5316
5317 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
5318
5319         * class.h, class.c, object.c: remove relative numbering support.
5320
5321 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
5322
5323         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
5324         free the string, until we get a chance to fix Gtk#
5325
5326 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5327
5328         * marshal.c: revert last patch.
5329
5330 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
5331
5332         * icall.c: updates for new mono_class_vtable() not calling
5333         the type constructor anymore.
5334
5335 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
5336
5337         * object.h, object.c: separate vtable creation from type
5338         initialization. Make running the .cctor thread safe.
5339
5340 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
5341
5342         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
5343
5344 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
5345
5346         * loader.c (mono_get_method): consider calling convention
5347
5348 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
5349
5350         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
5351         to return the invisible global type for a module.
5352
5353         * reflection.c (mono_image_build_metadata): Emit global fields too.
5354
5355 2003-05-20  Peter Williams  <peterw@ximian.com>
5356
5357         * loader.c (mono_lookup_internal_call): Add a few newlines.
5358
5359 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
5360
5361         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
5362         literal strings.
5363
5364         * appdomain.c (set_domain_search_path): Recalculate search path when
5365         AppDomainSetup.PrivateBinPath changes.
5366
5367         * object.c (mono_class_compute_gc_descriptor): It turns out some
5368         parts of the class libs (like System.Thread) holds pointers to
5369         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
5370         to treat native int a pointer type here.
5371         
5372 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
5373
5374         * appdomain.h, domain.c: add hashtable for jump target resolution.
5375
5376 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
5377
5378         * reflection.h reflection.c icall.c: Added new icalls 
5379         GetManifestResourceInfoInternal, GetModulesInternal and support
5380         infrastructure.
5381
5382 2003-05-16  Dick Porter  <dick@ximian.com>
5383
5384         * icall.c:
5385         * file-io.h:
5386         * file-io.c: Implement System.IO.MonoIO::GetTempPath
5387
5388 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
5389
5390         * object.c: mono_store_remote_field: little fix to previous patch.
5391
5392 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
5393
5394         * class.c: add constructors to array classes.
5395         * icall.c: special case array construction for InternalInvoke (),
5396
5397 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
5398
5399         * class.h class.c reflection.c object.c: Added support for field
5400         defaults in dynamically generated classes.
5401
5402 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
5403
5404         * reflection.c: properly encode charset for ddlimport.
5405
5406 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
5407
5408         * threads.c: allow compiling without GC.
5409
5410 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
5411
5412         * appdomain.h, object.c, object.h, threads.c, threads.h: added
5413         handling of thread static data.
5414
5415 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
5416
5417         * reflection.h, reflection.c: added mono_custom_attrs_free ().
5418
5419 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
5420
5421         * class.c (mono_array_class_get): always set the serializable flags
5422         (mono_array_class_get): always set the SEALED attribute for array types
5423
5424 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
5425
5426         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
5427         attributes (fix for bug 42021).
5428
5429 2003-05-12  Dick Porter  <dick@ximian.com>
5430
5431         * gc.c: Don't run finalizers when the finalizer thread is
5432         finishing up, because the default domain has already been
5433         destroyed.
5434
5435 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
5436
5437         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
5438         value is null, we should throw an exception.   This is slightly
5439         different than the other conventions used for the constructor.
5440
5441 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5442
5443         * socket-io.c: fixed windows build.
5444
5445 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5446
5447         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
5448
5449 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
5450
5451         * object.c (mono_string_new_wrapper): Compatibility fix for MS
5452         compilers.
5453
5454 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
5455
5456         * class.c (mono_class_layout_fields): Add experimental GC aware
5457         auto layout facility. Requires class library changes to work correctly.
5458
5459         (mono_class_setup_vtable): Avoid overriding explicit interface
5460         method implementations. Fixes iface3.exe test.
5461
5462         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
5463         object reference.
5464         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
5465         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
5466
5467         * metadata.h: Add new type classification macro which determines
5468         whenever the type holds an object reference.
5469
5470 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
5471
5472         * marshal.c (mono_marshal_get_native_wrapper): cleanups
5473
5474 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
5475
5476         * gc.c (finalizer_thread): Work around a GC bug.
5477
5478 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
5479
5480         * marshal.c (emit_struct_conv): allow unions
5481
5482         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
5483
5484 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
5485
5486         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
5487
5488 2003-05-06  Martin Baulig  <martin@ximian.com>
5489
5490         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
5491
5492 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5493
5494         * socket-io.c:
5495         (Select_internal): allow NULLs, don't create arrays if not needed.
5496         Coupled with Socket.cs changes.
5497
5498         * threadpool.c:
5499         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
5500         register a finalizer for it that will close the semaphore handle. This
5501         fixes the leak and make Lupus' test run with > 4080 loops.
5502
5503 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
5504
5505         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
5506         Jerome Laban (bug #42287)
5507
5508 2003-05-02  Martin Baulig  <martin@ximian.com>
5509
5510         * debug-mono-symfile.h
5511         (MonoSymbolFile): Moved declaration into mono-debug.h.
5512         (MonoDebugMethodJitInfo): Likewise.
5513         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
5514         argument.
5515         (_mono_debug_address_from_il_offset): Take a
5516         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
5517
5518         * mono-debug.h
5519         (MonoDebugDomainData): New struct.
5520         (mono_debug_get_domain_data): New function.
5521         (mono_debug_add_method): Take an additional `MonoDomain *'
5522         argument.
5523         (mono_debug_source_location_from_address): Likewise.
5524         (mono_debug_il_offset_from_address): Likewise.
5525         (mono_debug_address_from_il_offset): Likewise.
5526
5527 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
5528
5529         * reflection.c: one more check for null type in custom attrs.
5530
5531 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5532
5533         * reflection.c: avoid warning (comparison is always false due to limited
5534         range of data type).
5535
5536 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5537
5538         * icall.c: throw an exception in Type.GetField if the argument 'name'
5539         is NULL.
5540
5541 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
5542
5543         * reflection.c: fixed handling of enums in named arguments to custom
5544         attributes (bug #42123).
5545
5546 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
5547
5548         * reflection.c: use the right array element type and handle
5549         a null for a Type argument, too.
5550
5551 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
5552
5553         * reflection.c: handle arrays as arguments to custom attributes.
5554
5555 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
5556
5557         * reflection.c: handle a string value in a custom attr
5558         ctor that takes an object.
5559
5560 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
5561
5562         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
5563         (fix bug #42063)
5564
5565 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
5566
5567         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
5568
5569 2003-04-27  Martin Baulig  <martin@ximian.com>
5570
5571         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
5572         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
5573         MONO_DEBUGGER_EVENT_BREAKPOINT.
5574         (mono_breakpoint_trampoline_code): Removed.
5575         (mono_debugger_event_handler): The last argument is now a
5576         `guint32'.
5577         (mono_debugger_insert_breakpoint_full): Removed the
5578         `use_trampoline' argument.
5579         (mono_debugger_method_has_breakpoint): Likewise.
5580         (mono_debugger_trampoline_breakpoint_callback): Renamed to
5581         mono_debugger_breakpoint_callback(); take the method and
5582         breakpoint number as arguments.
5583
5584 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
5585
5586         * metadata.c: fix off by one when loading parameters attributes.
5587
5588 2003-04-24  Martin Baulig  <martin@ximian.com>
5589
5590         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
5591
5592 2003-04-24  Martin Baulig  <martin@ximian.com>
5593
5594         * mono-debug-debugger.c: Moved all code which interacts with the
5595         Mono Debugger here.
5596
5597         * debug-mono-symfile.c: This code now just deals with the symbol
5598         file itself, the debugger code is now in mono-debug-debugger.c.
5599
5600 2003-04-23  Martin Baulig  <martin@ximian.com>
5601
5602         * mono-debug.c (mono_debug_source_location_from_il_offset):
5603         New method; like mono_debug_source_location_from_address(), but
5604         takes an IL offset instead of a machine address.
5605
5606 2003-04-23  Martin Baulig  <martin@ximian.com>
5607
5608         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
5609         `line' field; this is now computed by the debugger.
5610
5611 2003-04-23  Martin Baulig  <martin@ximian.com>
5612
5613         * mono-debug.[ch]: New files.  This is the new debugging interface.
5614
5615         * mono-debug-debugger.[ch]: New files.  Moved all code which
5616         interacts with the Mono Debugger here.
5617
5618 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
5619
5620         * domain.c (mono_init): initialize mono_defaults.monitor_class
5621
5622 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
5623
5624         * reflection.c (method_encode_code): Add a spicy exception to help
5625         future compiler authors.
5626
5627 2003-04-21  Martin Baulig  <martin@ximian.com>
5628
5629         * icall.c
5630         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
5631         Make this work with relative pathnames; g_filename_to_uri() needs
5632         an absolute filename.
5633
5634 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
5635
5636         * icall.c: Track name changes in Object and ValueType.
5637
5638 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
5639
5640         * metadata.c (mono_type_stack_size): size should be a multiple of
5641         sizeof (gpointer)
5642
5643 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5644
5645         * gc.c:
5646         (internal_domain_finalize): moved into mono_domain_finalize. No need
5647         to create another thread because the finalizers will be run in the
5648         finalizer thread.
5649         
5650         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
5651         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
5652         to be run (MS does this too).
5653
5654 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
5655
5656         * object.c (mono_class_compute_gc_descriptor): Update comment.
5657
5658         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
5659
5660         * image.h: Add synchronized wrapper cache.
5661
5662         * image.c (do_mono_image_open): Initialize cache.
5663
5664         * reflection.c (create_dynamic_mono_image): Initialize cache.
5665
5666 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5667
5668         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
5669         ves_icall_System_Buffer_ByteLengthInternal.
5670
5671 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
5672
5673         * reflection.c: setup klass->nested_in earlier. Allow
5674         a dash in the assembly name.
5675
5676 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
5677
5678         * metadata.c (mono_type_to_unmanaged): dont access
5679         type->data.klass for MONO_TYPE_OBJECT
5680         (mono_type_to_unmanaged): consider System.Delegate class
5681
5682 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
5683
5684         * class.c: just setup supertypes in the proper place instead of
5685         initializing the full element class for arrays.
5686
5687 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
5688
5689         * class.c: ensure the element class of arrays is initialized.
5690         Setup the supertype info for array classes, too.
5691
5692 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
5693
5694         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
5695
5696 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5697
5698         * Makefile.am: re-added -m option when running cygpath. This way,
5699         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
5700         separator.
5701         * mono-config.c: same codepath for locating mono config file for WIN32
5702         and the rest.
5703         * assembly.c: if mono_assembly_setrootdir is called, don't override
5704         the value set.
5705
5706 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5707
5708         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
5709         MONO_ASSEMBLIES variable.
5710
5711 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
5712
5713         * icall.c: added Assembly::GetNamespaces() icall.
5714
5715 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5716
5717         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
5718
5719 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
5720
5721         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
5722         * object.c: fixed bug in the construction of vtable for proxies
5723
5724 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
5725
5726         * object.c (mono_array_new): Mark mono_array_new as an icall.
5727
5728 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5729
5730         * class.c: fixed test for public method when overriding interfaces.
5731         Closes bug #40970.
5732
5733 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
5734
5735         * appdomain.h, domain.c: added mono_domain_foreach() to
5736         be able to access the currently loaded appdomains.
5737         * object.c: make string interning work across sppdomains.
5738         Mark some functions for use as icalls.
5739
5740 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
5741
5742         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
5743
5744         * reflection.h reflection.c: Allocate long living data using 
5745         GC_MALLOC_ATOMIC so the collector does not need to scan it.
5746
5747         * reflection.c: Double the allocation size in streams instead of
5748         increasing it, to prevent unneccesary copying on large assemblies.
5749         
5750         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
5751         creation if the assembly does not have the Run flag set.
5752
5753 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
5754
5755         * class.h: avoid the C++ keywords in header files (Jerome Laban
5756         spotted and fixed this).
5757
5758 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5759
5760         * object.c:
5761         (mono_unhandled_exception): fill in the arguments for the
5762         UnhandledException event. Only trigger that event for the default
5763         domain (as MS does).
5764
5765 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
5766
5767         * object.c: Improve typed allocation stuff based on suggestions from
5768         Paolo. Also turn it on if the GC library supports it.
5769
5770 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
5771
5772         * object.c object.h class.h: Added experimental typed allocation
5773         facility using the interfaces in gc_gcj.h.
5774
5775         * os/gc_wrapper.h: Added new include files.
5776         
5777 2003-04-03  Martin Baulig  <martin@ximian.com>
5778
5779         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
5780         which is not yet enabled by default.
5781
5782         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
5783         functions.
5784         (mono_gc_lock, mono_gc_unlock): New static functions.
5785
5786         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
5787         functions; stop/start the world for the garbage collector.  This
5788         is using the windows API; we need to complete the SuspendThread()/
5789         ResumeThread() implementation in the io-layer to make this work on Unix.
5790         (mono_gc_push_all_stacks): New public function; tells the garbage
5791         collector about the stack pointers from all managed threads.
5792
5793 2003-04-03  Martin Baulig  <martin@ximian.com>
5794
5795         * object.h (MonoThread): Added `gpointer stack_ptr'.
5796
5797         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
5798
5799 2003-04-03  Martin Baulig  <martin@ximian.com>
5800
5801         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
5802
5803 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
5804
5805         * reflection.c (typebuilder_setup_fields): Initialize field.first and
5806         field.last.
5807
5808 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
5809
5810         * loader.c (mono_lookup_internal_call): Report the corlib that is
5811         out of sync.
5812
5813 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
5814
5815         * icall.c (ves_icall_type_GetTypeCode): fixed check for
5816         System.DBNull (it's class not valuetype).
5817
5818 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
5819
5820         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
5821         if the array method was already assigned a token (fixes bug#40646).
5822
5823 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
5824
5825         * reflection.c (mono_reflection_get_type): Attempt type resolve even
5826         if no assembly is given.
5827
5828 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
5829
5830         * metadata.h: Added the new tables.
5831
5832         * row-indexes.h: Added definitions for new tables.
5833
5834         * metadata.c: Add schemas for new tables, and add support for
5835         computing the sizes of them.
5836
5837         * class.c: Update for handling the new type cases.
5838
5839 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
5840
5841         * metadata.h (MONO_TYPE_IS_VOID): new macro
5842
5843 2003-03-31  Martin Baulig  <martin@ximian.com>
5844
5845         * threads.h (MonoThreadCallbacks): Added `thread_created'.
5846
5847         * threads.c (mono_thread_new_init): Call `thread_created' in the
5848         mono_thread_callbacks.
5849
5850 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
5851
5852         * loader.h: added marshalbyrefobject_class to mono_defaults
5853         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
5854         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
5855           generation of output parameters.
5856           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
5857         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
5858           contextbound and the target object belongs to the context of the caller.
5859         * object.h: added context and unwrapped_server variables in MonoRealProxy.
5860         * object.c: Implemented support for interfaces and abstract classes
5861           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
5862           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
5863
5864 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
5865
5866         * class.h class.c (mono_class_is_subclass_of): New function.
5867         
5868         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
5869         routines for most common case (calls from ArrayList::ToArray).
5870
5871         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
5872         routine so programs which call Environment::Exit() can be profiled.
5873
5874         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
5875         Added MONO_ARCH_SAVE_REGS.
5876
5877         * icall.c (ves_icall_type_is_subtype_of): Use new function.
5878
5879 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
5880
5881         * blob.h: Add a couple of new MonoType types definitions.
5882
5883         * tabledefs.h: Add a couple of new call convs.
5884
5885 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
5886
5887         * reflection.h (MonoReflectionDynamicAssembly): track changes in
5888         the layout of the class.
5889
5890         * reflection.c (alloc_table): double the size on overflow to avoid
5891         unnecessary copying.
5892
5893         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
5894         avoid filling out metadata tables and blobs. Also set mb->ilgen to
5895         null so it can be garbage collected.
5896         
5897 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
5898
5899         * reflection.c (mono_reflection_get_type): Return the resolved type
5900         only if it is in the assembly we searched.
5901
5902         * reflection.c (ensure_runtime_vtable): Initialize method slots.
5903
5904         * class.c (mono_class_setup_vtable): Set the slot of the overriding
5905         method.
5906
5907 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5908
5909         * appdomain.c:
5910         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
5911         the right one is 'file:///blah', but MS allows it.
5912         * assembly.c:
5913         (mono_assembly_open): allow 'file://blah'
5914
5915         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
5916
5917 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
5918
5919         * socket-io.c: fixes bug #40310.
5920
5921 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
5922
5923         * reflection.c (mono_reflection_parse_type): handle deeply nested
5924         types correctly.
5925
5926         * reflection.c (mono_image_create_token): Use unique token values
5927         since they will be put into a hash table.
5928
5929         * class.c (mono_class_setup_vtable): If a method occurs in more than
5930         one place in the vtable, and it gets overriden, then change the
5931         other occurances too.
5932
5933         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
5934         object as return type.
5935
5936 2003-03-22  Pedro Martínez Juliá  <yoros@wanadoo.es>
5937
5938         * icall.c: Deleted "ToString" implementation for double and float
5939         because they are full implemented in managed code.
5940
5941 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
5942
5943         * reflection.c, reflection.h: implemented and exported functions
5944         to retrieve info about custom attributes.
5945
5946 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5947
5948         * appdomain.c: moved Uri handling to assembly.c
5949         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
5950         work when using a file Uri in *nix and windows.
5951
5952         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
5953         GetReferencedAssemblies.
5954
5955 2003-03-18  Dick Porter  <dick@ximian.com>
5956
5957         * icall.c: Rename a couple of internal calls
5958
5959         * threads.c: Set the thread state to Stopped when a thread exits.
5960         Fixes bug 39377.
5961
5962 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
5963
5964         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
5965         New icall.
5966
5967         * object.c (mono_class_vtable): fix warning.
5968
5969 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
5970
5971         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
5972
5973         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
5974         memory.
5975         (method_encode_clauses): Create exception info structures in the right
5976         order.
5977         (mono_reflection_setup_internal_class): Initialize supertypes field.
5978
5979         * class.c object.c: Handle interfaces which implement other interfaces 
5980         correctly.
5981
5982         * class.h class.c: Move the supertypes array initialization code into 
5983         a separate function so it can be used for dynamic types too. Also call
5984         it earlier, in mono_class_init(), since it can be used before the
5985         type is initialized.
5986
5987 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5988
5989         * Makefile.am:
5990         * assembly.c:
5991         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
5992
5993         * appdomain.c:
5994         * appdomain.h:
5995         * marshal.c:
5996         * object.c: remove warnings.
5997
5998 2003-03-13  Martin Baulig  <martin@ximian.com>
5999
6000         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
6001         (MonoDebugLexicalBlockEntry): New types.
6002
6003         * debug-mono-symfile.c
6004         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
6005
6006 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6007
6008         * process.c: ret can be any non-zero value accroding to MS doc.
6009
6010 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
6011
6012         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
6013         fixing a warning for a miss-used prototype, would have cause
6014         random memory corruption.
6015
6016 2003-03-07  Martin Baulig  <martin@ximian.com>
6017
6018         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
6019         getting really annoying ....
6020
6021 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
6022
6023         * reflection.c (fixup_method): added support for array methods.
6024
6025 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
6026
6027         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
6028         (pointed out by Michael Adams).
6029
6030 2003-03-04  Dick Porter  <dick@ximian.com>
6031
6032         * icall.c: Temporarily reverted the Double and Single ToString()
6033         change, because it broke nunit.
6034
6035 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
6036
6037         * object.h, threads.h: make include files compatible with C++
6038         (patch by Jerome Laban <jlaban@wanadoo.fr>).
6039
6040 2003-03-04  Pedro Martínez Juliá  <yoros@wanadoo.es>
6041
6042         * icall.c: Erased ToString helper functions for Double and Single.
6043         Now, that implementations ar all in managed code (Double and Single
6044         Formatters).
6045
6046 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
6047
6048         * appdomain.c: Added method for initializing the default context of
6049         a domain. Added internal call for getting the default context.
6050         * appdomain.h: Added context variable in MonoDomain struct.
6051         * domain.c: mono_domain_set also sets the default context of the domain
6052         * icall.c: Mapped internal method InternalGetDefaultContext.
6053         * object.c: mono_object_get_virtual_method returns always a remoting
6054         wrapper if the object is a transparent proxy.
6055         mono_runtime_invoke_array: when creating an object by calling the
6056         constructor, if the created object is a proxy, then the constructor should
6057         be called using the a remoting wrapper.
6058
6059 2003-03-03  Dick Porter  <dick@ximian.com>
6060
6061         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
6062         variable so it compiles on solaris.  Problem spotted by
6063         Christopher Taylor <ct@cs.clemson.edu>
6064
6065 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6066
6067         * appdomain.c:
6068         (get_info_from_assembly_name): don't leak value.
6069
6070         * icall.c:
6071         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
6072         result.
6073
6074 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
6075
6076         * assembly.c: export mono_image_load_references ().
6077         * class.c: handle function pointers. mono_class_from_name() now
6078         supports nested type names directly.
6079
6080 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
6081
6082         * reflection.h reflection.c: Encode already created dynamic methods 
6083         and fields correctly as a DEF instead of a REF.
6084
6085         * reflection.c: Get rid of the force_ref argument to 
6086         mono_image_typedef_or_ref since it was wrong in the first place.
6087
6088         * string-icalls.c: add error checking to string constructors according
6089         to the MSDN docs.
6090
6091         * reflection.c: Emit types in the order their TypeBuilders were 
6092         created. Previously, a new table index was assigned to each type before
6093         the tables were emitted. This was wrong because the signature blob
6094         might already refer to a type by its original table index.
6095
6096 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
6097
6098         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
6099         change.
6100         
6101 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6102
6103         * Makefile.am: make assemblies dir have \ instead of / on windows.
6104
6105 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
6106
6107         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
6108         iterate over the NESTEDCLASS table using a linear search since the
6109         table is not guaranteed to be sorted by the secondary key.
6110
6111         * class.c (mono_class_create_from_typedef): fixed up call to
6112         mono_metadata_nesting_typedef.
6113         
6114 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
6115
6116         * marshal.c (mono_string_to_byvalstr): clear the memory as
6117         suggested by Jerome Laban <jlaban@wanadoo.fr>
6118
6119 2003-02-26  Dick Porter  <dick@ximian.com>
6120
6121         * process.c: Cope with padding in .rsrc blocks
6122
6123 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
6124
6125         * metadata.h: reverted the filter_len change, it breaks reflection
6126         
6127 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
6128
6129         * metadata.h: added a new field to store the filter_len
6130         
6131
6132 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
6133
6134         * reflection.c: handle custom attributes for types and members
6135         created with Reflection.Emit (bug#38422).
6136
6137 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
6138
6139         * reflection.c: define RTSpecialName automatically for constructors for
6140         compatibility with MS.NET.
6141
6142         * reflection.c (mono_reflection_create_runtime_class): initialize
6143         nested_in field of dynamically created classes.
6144
6145 2003-02-22  Martin Baulig  <martin@ximian.com>
6146
6147         * debug-mono-symfile.h: Incremented version number.
6148
6149 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
6150
6151         * object.h icall.c process.c: fix warnings.
6152
6153 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
6154
6155         * appdomain.h appdomain.c:
6156         (mono_domain_try_type_resolve): split the 
6157         name_or_tb argument into a name and a tb argument.
6158         (mono_domain_has_type_resolve): new function to check whenever the
6159         application has registered a TypeResolve event handler.
6160         
6161         * icall.c reflection.h reflection.c: move the type resolve logic into
6162         mono_reflection_get_type () so it will be invoked when 
6163         Assembly::GetType () is called.
6164
6165         * reflection.c:
6166         (mono_reflection_get_type): renamed to get_type_internal.
6167         (mono_reflection_get_type): fixed type name generation so it works 
6168         for nested types too.
6169         (mono_reflection_get_type): call has_type_resolve () to avoid the 
6170         costly type name generation if there is no resolve event handler.
6171
6172 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
6173
6174         * class.c, image.c: load exported types from file references.
6175
6176 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
6177
6178         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
6179           used to cache the managed methods used to create proxies and make 
6180           remote invocation of methods.
6181         * class.h: Added in MonoVTable a flag to indicate that a class needs 
6182           to be remotely created.
6183         * object.c: Modified the method mono_class_vtable(). It now initializes 
6184           the remote flag of the vtable. Modified mono_object_new_specific(), 
6185           so now it checks the remote flag.
6186         * icall.c: Added a couple of internal methods, one for enabling instance 
6187           creation interception for a type, and one for creating objects bypassing
6188           the remote check.
6189
6190 2003-02-18  Martin Baulig  <martin@ximian.com>
6191
6192         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
6193         New interncall to get a method's metadata token.
6194
6195         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
6196         New interncall for the debugger.
6197
6198 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
6199
6200         * class.c (mono_class_setup_vtable): allocate supertype array
6201
6202 2003-02-18  Martin Baulig  <martin@ximian.com>
6203
6204         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
6205
6206 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6207
6208         * reflection.c:
6209         (assembly_name_to_aname): jump over unknown properties (i've found
6210         something like: 'type, assembly, version=xxx, custom=null, public...',
6211         so now will ignore custom=null and still get the rest of the values).
6212
6213 2003-02-17  Dick Porter  <dick@ximian.com>
6214
6215         * threads.c: Have Thread.Start() wait for a semaphore to signal
6216         that the thread has set up all its local data.  This fixes bug
6217         34323, where Abort() raced the new thread's TLS data.
6218
6219         Also removes the handle_store() call from start_wrapper, because
6220         threads are now always created suspended and there is no longer a
6221         race between the parent and child threads to store the info.
6222
6223 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
6224
6225         * image.c: explain the #- heap issue in a message, hopefully
6226         avoiding FAQs on mono-list.
6227
6228 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6229
6230         * icall.c:
6231         (GetEntryAssembly): if the domain has not invoked
6232         AppDomain.ExecuteAssembly yet, return the assembly of the default
6233         AppDomain.
6234
6235 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
6236
6237         * class.c (mono_ldtoken): make it work in dynamic assemblies.
6238
6239 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
6240
6241         * metadata.c, reflection.c: simple speedup to type hash
6242         and equals code.
6243
6244 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
6245
6246         * image.c, image.h, class.c, assembly.c: move module loading
6247         to MonoImage. When loading metadata, consider alignemnet from
6248         the start of metadata, not from the metadata address in memory.
6249
6250 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
6251
6252         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
6253         AssemblyBuilder objects. Factored out custom attribute creation into
6254         a separate function.
6255         (create_custom_attr): new function to create custom attributes.
6256
6257 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
6258
6259         * Makefile.am: Got tired of typing the full pathname to pedump.
6260         Until there is another option, am installing this.
6261
6262 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
6263
6264         * class.c (class_compute_field_layout): always set field->parent 
6265         (mono_ldtoken): use mono_defaults.fieldhandle_class;
6266
6267 2003-02-11  Dick Porter  <dick@ximian.com>
6268
6269         * threads-types.h:
6270         * monitor.c: Rewrote Monitor, making lock much faster and
6271         Pulse/Wait work as specified.  Also uses much fewer handles, and only
6272         creates them as needed.
6273
6274         * exception.c: Added SynchronizationLockException
6275
6276         * threads.c: Deleted old Monitor implementation.  The new one is
6277         in a new file.
6278
6279 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
6280
6281         * class.c: handled TypedReference type code. Set the correct size for
6282         class data. Setup interface_offsets for interface classes, too.
6283
6284 2003-02-09  Martin Baulig  <martin@ximian.com>
6285
6286         * debug-mono-symfile.h: Reflect latest symbol writer changes.
6287
6288 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
6289
6290         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
6291         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
6292         * object.c: fixed mono_object_get_virtual_method () for interfaces.
6293         * verify.c: check for code that runs after the end of the method.
6294
6295 2003-02-08  Pedro Martínez Juliá  <yoros@wanadoo.es>
6296
6297         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
6298         "System.Math::Round2".
6299         * sysmath.h: Added Floor, Round and Round2 definitions.
6300         * sysmath.c: Modified certain functions that were not 100% compliant
6301         with MS.NET (math precision) and added the implementation of Floor,
6302         Round and Round2.
6303
6304 2003-02-07  Martin Baulig  <martin@ximian.com>
6305
6306         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
6307
6308 2003-02-07  Martin Baulig  <martin@ximian.com>
6309
6310         * debug-mono-symfile.c: Reflected latest symwriter changes.
6311         (mono_debug_create_mono_symbol_file): Removed.
6312         (mono_debug_open_mono_symbol_file): Take an argument which
6313         specifies whether to create a dynamic symbol file.
6314
6315 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
6316
6317         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
6318
6319 2003-02-05  Martin Baulig  <martin@ximian.com>
6320
6321         * reflection.c (mono_image_build_metadata): Make this public,
6322         protect it against being called multiple times, don't create
6323         resources and don't build the compressed metadata here.
6324         (mono_image_create_pefile): Do this here.
6325
6326         * icall.c
6327         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
6328
6329 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6330
6331         * socket-io.c: fixed bug #36322.
6332
6333 2003-02-06  Piers Haken <piersh@friskit.com>
6334
6335         * appdomain.[ch]:
6336         * class.h:
6337         * debug-mono-symfile.c:
6338         * icall.c:
6339         * loader.c:
6340         * mono-config.c:
6341         * monosn.c:
6342         * reflection.c:
6343         * socket-io.c: warning cleanups
6344
6345 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
6346
6347         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
6348         function. works like remoting invoke, but does a check for the Proxy first.
6349
6350 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
6351
6352         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
6353
6354 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
6355
6356         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
6357         array of pointers.
6358         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
6359         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
6360
6361         * object.c (mono_store_remote_field_new): used by the new jit
6362         instead of mono_store_remote_field
6363         (mono_load_remote_field_new): used by the new jit
6364         instead of mono_load_remote_field
6365
6366 2003-02-05  Patrik Torstensson
6367
6368         * appdomain.c: changed unload to take the domain id instead
6369         of domain
6370         
6371         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
6372
6373
6374 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6375
6376         * appdomain.c: don't look for assemblies in ApplicationBase if
6377         PrivateBinPathProbe is set.
6378
6379 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6380
6381         * object.c: make the first argument in main_args contain the absolute
6382         path to the assembly. Fixes bug #37511.
6383
6384 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6385
6386         * icall.c: get correct UTC offset for countries not using daylight
6387         time saving. Fixes bug #30030.
6388
6389 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6390
6391         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
6392         and 1 are the family).
6393
6394 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
6395
6396         * icall.c (ves_icall_InternalExecute): removed wrong assertion
6397
6398         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
6399
6400 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
6401
6402         * reflection.c: added support for SignatureHelper tokens, which is
6403         needed by the Calli opcode.
6404
6405         * reflection.h: track changes to SignatureHelper class.
6406
6407         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
6408
6409 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6410
6411         * appdomain.c: fixed loading assemblies from PrivateBinPath.
6412
6413 2003-02-03  Patrik Torstensson
6414         * appdomain.[c|h], domain.c : 
6415          - Added support for getting a domain via domain id
6416          - Support for setting and getting domain from System.AppDomain 
6417            (used in cross appdomain channel)
6418          - Added support for get/set for a MonoAppContext on a thread 
6419            (Context class in System.Runtime.Remoting.Contexts),
6420          - Removed hack in Get/SetData and ExecuteAssembly.
6421         
6422         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
6423         the managed world to get control when a proxy is created.
6424
6425         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
6426         
6427 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
6428
6429         * icall.c
6430         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
6431         Populate the codebase field as well.
6432
6433 2003-02-02  Martin Baulig  <martin@ximian.com>
6434
6435         * debug-mono-symfile.c
6436         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
6437         (mono_debug_symfile_add_method): Allow interncalls.
6438
6439 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6440
6441         * icall.c: throw parse exception if strtod fails or the string is empty.
6442
6443 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
6444
6445         * marshal.c: handle object type separately from defined
6446         class types.
6447
6448 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
6449
6450         * marshal.c: handle NATIVE_LPSTR for strings when it's
6451         explicitly specified.
6452
6453 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
6454
6455         * reflection.c, reflection.h, icall.c: setup the reflection
6456         handle cache for ModuleBuilders and AssemblyBuilders.
6457
6458 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
6459
6460         * reflection.c (reflection_methodbuilder_to_mono_method): set
6461         pinvoke flag
6462
6463 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6464
6465         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
6466
6467 2003-01-29  Dick Porter  <dick@ximian.com>
6468
6469         * threads.c: No need for the fake_thread kludge now that Thread
6470         doesn't run a class constructor
6471         
6472 2003-01-29  Dick Porter  <dick@ximian.com>
6473
6474         * threads.c: Use g_direct_hash instead of the rather bogus
6475         g_int_hash
6476
6477 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
6478
6479         * marshal.c (mono_marshal_get_native_wrapper): add check for null
6480         (fix pinvoke12.exe)
6481         (mono_marshal_get_struct_to_ptr): generate valid IL code
6482         (mono_marshal_get_ptr_to_struct): generate valid IL code
6483         (*): correctly set sig->pinvoke, we need to memdup the signature
6484         to do that
6485
6486 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
6487
6488         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
6489         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
6490
6491 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
6492
6493         * profiler.c: provide more callers information.
6494
6495 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
6496
6497         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
6498
6499         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
6500
6501         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
6502
6503 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
6504
6505         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
6506         exception instead of going into an infinite loop on dates which it 
6507         can't yet handle.
6508
6509         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
6510         out-of-range exception if needed.
6511
6512         * class.c (mono_class_setup_vtable): allow a virtual method to provide
6513         an implementation for an interface method and to override an inherited
6514         method at the same time. 
6515         Imagine a scenario when a virtual method is used to override a
6516         virtual abstract method in a parent class, and this same method 
6517         provides an implementation for an method inherited from an interface. 
6518         In this case, the interface resolution code will set im->slot, which 
6519         means that the virtual method override pass will skip this method 
6520         which means a pointer to the abstract method inherited from the parent
6521         will remain in the vtable of this non-abstract class.
6522
6523         * class.c: (mono_class_setup_vtable): continue search for a real 
6524         method if only an abstract method is found.     
6525
6526 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
6527
6528         * reflection.c: add size to encoding for ByValStr and ByValArray
6529         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
6530
6531 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
6532
6533         * class.c (mono_class_setup_vtable): pass the override info as an
6534         argument.
6535
6536         * class.c (mono_class_setup_vtable): set the slot of overriding methods
6537         correctly.
6538         
6539         * reflection.c (ensure_runtime_vtable); add support for method 
6540         overrides.
6541         
6542 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
6543
6544         * reflection.c (resolution_scope_from_image): Hack to work to work with
6545         dynamic assemblies.
6546
6547         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
6548         added a 'force_ref' argument to force this function to allways return 
6549         a TypeRef. This is needed by mono_image_get_memberref_token ().
6550         
6551 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
6552
6553         * reflection.c (mono_image_get_type_info): interfaces really don't have
6554         a parent.
6555
6556         * reflection.c (mono_image_basic_init): fill out missing fields of
6557         image structure.
6558
6559         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
6560         dynamic assemblies. This is required so dynamic assemblies show up in
6561         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
6562         Type::GetType() etc. This is consistent with MS behaviour.
6563
6564         * image.c image.h reflection.c: add newly created classes to the name 
6565         cache so mono_class_get () will find them.      
6566
6567 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
6568
6569         First part of changes to get IKVM.NET running under mono.
6570         
6571         * appdomain.h, appdomain.c: added new function 
6572         mono_domain_try_type_resolve() which will emit TypeResolve events. 
6573         This function will call AppDomain::DoTypeResolve to do the actual work.
6574
6575         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
6576         moved existing code dealing with dynamic tokens to a new function 
6577         called mono_reflection_lookup_dynamic_token (). This function will 
6578         raise TypeResolve events when appropriate. Since reflection.c is not 
6579         part of libmetadata, a new hook function called 
6580         mono_lookup_dynamic_token() is added to class.c which will call this.
6581
6582         * assembly.h assembly.c: make the invoke_load_hook function public,
6583         so it can be called for dynamic assemblies.
6584
6585         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
6586
6587         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
6588         type isn't found.
6589
6590         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
6591         MonoGHashTable, since it contains pointers to objects which the GC 
6592         needs to track.
6593
6594         * assembly.c (search_loaded): remove unused variable.
6595         
6596 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
6597
6598         * object.c: fixed issue exposed by gcc-generated IL programs
6599         that use RVA data for pointers.
6600
6601 2003-01-25  Martin Baulig  <martin@ximian.com>
6602
6603         * threads.c (start_wrapper): Moved the initialization of
6604         `start_func' above the mono_new_thread_init() call to which we
6605         pass it as argument.
6606
6607 2003-01-24  Martin Baulig  <martin@ximian.com>
6608
6609         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
6610         the MonoThread pointer.
6611
6612 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
6613
6614         * icall.c: Rename `PowImpl' to Pow.
6615
6616 2003-01-23  Dick Porter  <dick@ximian.com>
6617
6618         * threads.c (start_wrapper): Create a Thread object if needed, so
6619         the Main() thread can do the class initialisation in a subthread
6620         that has been set up to allow managed code execution.
6621
6622         Pass the thread ID instead of the MonoThread pointer to the thread
6623         start and attach callbacks.  This change is required, because the
6624         jit thread start callback must be called _before_ the Thread
6625         object can be created.
6626         
6627         (mono_thread_init): Removed much object creation code that is no
6628         longer needed.  No managed code is called from here now.
6629
6630         * object.c (mono_runtime_exec_managed_code): Create a subthread
6631         for Main, and call back to the runtime to use it.
6632         Set the exit code when Main exits.
6633
6634         * gc.c: Make sure domain finalisation happens in a subthread.
6635         Re-enable threaded GC, fixing bug 31333 (again).
6636
6637         * environment.c: System.Environment internall calls (so far just
6638         ExitCode is here, the others are still in icall.c)
6639
6640         * appdomain.c (mono_runtime_cleanup): All threads running managed
6641         code should have finished before mono_runtime_cleanup() is
6642         reached, so no need to clean up threads.
6643
6644 2003-01-22  Martin Baulig  <martin@ximian.com>
6645
6646         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
6647         `gpointer func' arguments.      
6648         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
6649         but added `MonoThread *thread' argument.
6650         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
6651
6652         * threads.c (mono_new_thread_init): Added `gpointer func' argument
6653         and pass it to the mono_thread_start_cb callback.
6654         (mono_install_thread_callbacks): New public function to install a
6655         set of callbacks which are set by the debugger.
6656         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
6657
6658 2003-01-22  Martin Baulig  <martin@ximian.com>
6659
6660         * Makefile.am: Install debug-mono-symfile.h.
6661
6662 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
6663
6664         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
6665
6666 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
6667
6668         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
6669         * class.c (mono_ptr_class_get): correctly set access levels of pointers
6670         (mono_array_class_get): correctly set access levels of arrays
6671
6672 2003-01-20      Patrik Torstensson
6673         * image.h (MonoAssemblyName): changed major, minor, build, revision
6674         from signed to unsigned.
6675
6676 2003-01-20  sean kasun <skasun@azstarnet.com>
6677
6678         * reflection.c (load_cattr_value): Now this handles
6679         MONO_TYPE_SZARRAY.  Fixes bug #35629
6680
6681 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
6682
6683         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
6684         integer value
6685
6686 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6687
6688         * decimal.c: fixed bug #26056.
6689
6690 2003-01-17  Martin Baulig  <martin@ximian.com>
6691
6692         * gc.c: Raise an ExecutionEngineException instead of using g_error().
6693
6694 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6695
6696         * exception.[ch]:
6697         (mono_get_exception_type_initialization): new function.
6698
6699         * object.c: throw a TypeInitializationException when an exception is
6700         thrown invoking the class constructor.
6701
6702 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6703
6704         * reflection.c: fixed attribute reading.
6705
6706 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6707
6708         * icall.c:
6709         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
6710         provided, look for the type in the calling assembly and then in
6711         mscorlib; if the assembly name is provided, only try that one.
6712
6713 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
6714
6715         * object.c: register the vtable before there is a chance it's
6716         queried again recursively.
6717
6718 2003-01-13  Duncan Mak  <duncan@ximian.com>
6719
6720         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
6721         gc-internal.h. 
6722         
6723 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
6724
6725         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
6726
6727 2003-01-11  Martin Baulig  <martin@ximian.com>
6728
6729         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
6730         this to 20 for the release.
6731
6732 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
6733
6734         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
6735
6736         * loader.c (mono_method_get_marshal_info): bug fix
6737
6738         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
6739         structures with explicit layout
6740
6741 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
6742
6743         * profiler.c: made the output more readable (and sorted). 
6744         Added caller information for the allocation profiler.
6745
6746 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
6747
6748         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
6749
6750 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6751
6752         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
6753         to get value types.
6754         
6755 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
6756
6757         * object.c, profiler.h, profiler.c, profiler-private.h:
6758         Added object allocation profiler.
6759
6760 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
6761
6762         * reflection.h, reflection.c: handle global methods.
6763         Compress blob entries.
6764
6765 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
6766
6767         * marshal.c: fix compilation.
6768
6769 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
6770
6771         * loader.c (mono_method_get_marshal_info): impl.
6772
6773         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
6774
6775 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6776
6777         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
6778         for reference types.
6779
6780 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
6781
6782         * loader.c: fixed off by one error in loaded parameter names.
6783
6784 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
6785
6786         * marshal.c (mono_marshal_get_icall_wrapper): like
6787         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
6788         instead of a MonoMethod.
6789
6790 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6791
6792         * decimal.c: fixed bug #36537.
6793
6794 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
6795
6796         * marshal.c: throw a missing method exception if a
6797         P/Invoke method is not found.
6798
6799 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
6800
6801         * icall.c: allow a null this for constructors.
6802
6803 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
6804
6805         * icall.c: raise the proper exceptions if the arguments to the
6806         internal Invoke are incorrect.
6807
6808 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
6809
6810         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
6811
6812 2003-01-03  Martin Baulig  <martin@ximian.com>
6813
6814         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
6815
6816 2002-12-31  Martin Baulig  <martin@ximian.com>
6817
6818         * debug-mono-symfile.c: Completely rewrote the type section.
6819         Instead of using individual malloc()ed fields, we use one big
6820         continuous memory area and offsets into this area.
6821         See the comments in the source code for details.
6822
6823 2002-12-30  Martin Baulig  <martin@ximian.com>
6824
6825         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
6826
6827 2002-12-30  Martin Baulig  <martin@ximian.com>
6828
6829         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
6830         line number table in this data blob instead of using an external
6831         pointer.
6832
6833 2002-12-28  Martin Baulig  <martin@ximian.com>
6834
6835         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
6836
6837 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
6838
6839         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
6840         as a boxed return type.
6841
6842 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
6843
6844         * appdomain.c
6845         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
6846         g_build_filename to properly get separators on the filename created.
6847
6848         * object.h: Small change, introduce MonoMarshalByRefObject to
6849         track the layout of that structure in the C# universe as we make
6850         changes there.
6851
6852 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
6853
6854         * object.c: removed assert to allow static fields on interfaces.
6855         * loader.c: a TypeSpec may be used for any type, not just arrays.
6856
6857 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
6858
6859         * class.c, class.h: added mono_class_array_element_size ().
6860         Ignore static methods in interfaces.
6861
6862 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6863
6864         * threads.c: fixed the build under cygwin.
6865
6866 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
6867
6868         * reflection.c: handle nullref constants. Allocate keys for
6869         reflection handles with the GC.
6870
6871 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
6872
6873         * threads.c, threads.h: added mono_thread_get_abort_signal()
6874         to get a suitable signal for thread abort.
6875
6876 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
6877
6878         * metadata.c: fix handling of ExportedType table.
6879
6880 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6881
6882         * icall.c: added WriteWindowsDebugString internal call.
6883
6884 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6885
6886         * reflection.h: added fields to match C# implementation.
6887
6888 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6889
6890         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
6891
6892 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
6893
6894         * gc.h, gc-internal.h: Rename header for GC internal calls to
6895         gc-internal.h from gc.h as to not clash with Boehm GC having its
6896         header installed as <gc.h> in outside include paths.
6897         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
6898         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
6899
6900 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6901
6902         * icall.c: assign minor, build and revision in FillName.
6903
6904 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
6905
6906         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
6907         Added support for running code generated by Reflection.Emit.
6908
6909 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6910
6911         * appdomain.c: check for NULL argument in LoadFrom.
6912
6913 2002-12-10  Dick Porter  <dick@ximian.com>
6914
6915         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
6916
6917 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6918
6919         * appdomain.c: fix buglet when building exe file name.  Handle full
6920         assembly name (needed after latest changes to AssemblyName).
6921         * image.c:
6922         (mono_image_close): free some hashtables.
6923
6924 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
6925
6926         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
6927         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
6928         on some systems (redhat 7.3) 
6929
6930 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
6931
6932         * threads.c: delete the critical section of a sync block,
6933         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
6934
6935 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
6936
6937         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
6938
6939 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6940
6941         * appdomain.[ch]: handle the assembly preload event to try loading the
6942         assemblies using the paths we have in the current domain.
6943
6944         * assembly.[ch]: created an assembly preload hook that is called to try
6945         loading the assembly by other means that the ones provided here.
6946
6947         * domain.c: initialize the domain search path.
6948
6949         From now on, assemblies (TODO: except corlib and System) are loaded
6950         according to these rules when using mono_assembly_load ():
6951
6952                 1. It tries to load the assembly from the ApplicationBase
6953                 of the current domain appending .dll and .exe (TODO: have to
6954                 try loading from name/name.dll and name/name.exe).
6955
6956                 2. It tries the search path specified in PrivateBinPath for the
6957                 current domain (if any).
6958
6959                 3. Previous behavior.
6960
6961 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
6962
6963         * icall.c: implemented GetInterfaceMap() related icall.
6964         * domain.c, loader.h: load MethodInfo in mono_defaults.
6965
6966 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
6967
6968         * gc.c: disable the finalizer thread for now, untill all the issues
6969         with it are resolved.
6970
6971 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
6972
6973         * string-icalls.c: handle embedded nulls in string ctor when the
6974         length is specified.
6975
6976 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
6977
6978         * class.c: look for explicit interface implementation in parent
6979         classes, too.
6980
6981 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
6982
6983         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
6984
6985 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
6986
6987         * gc.c: protect handles with a critical section.
6988
6989 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6990
6991         * icall.c:
6992         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
6993         parameters. If no assembly specified, try getting the type from all
6994         the assemblies in the current domain, else, load the assembly and get
6995         the type from it.
6996
6997 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6998
6999         * marshal.c: applied patch from Aleksey Demakov that fixes
7000         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
7001
7002 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7003
7004         * icall.c: fixed get_location.
7005
7006 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
7007
7008         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
7009         declarations to make it work with older gcc. 
7010
7011         * loader.c (mono_get_method): set signature->pinvoke for native calls
7012
7013 2002-11-20  Dick Porter  <dick@ximian.com>
7014
7015         * threads.c (mono_thread_init): Set the main thread's handle
7016
7017 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
7018
7019         * gc.c: allow compilation without GC support. Changed to match the
7020         mono coding style.
7021
7022 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
7023
7024         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
7025
7026 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
7027
7028         * reflection.c: set a public key token on the core assemblies.
7029
7030 2002-11-18  Dick Porter  <dick@ximian.com>
7031
7032         * threads.c: Split out some thread initialisation so that other
7033         files can set the start callback function.
7034
7035         * gc.c: Run finalisers in a separate thread, to avoid stack
7036         overflow.  Fixes bug 31333.
7037
7038         * appdomain.c: Set up GC finalisation thread.
7039
7040         * reflection.c: 
7041         * object.c: 
7042         * domain.c: Use gc.h macros for GC_malloc
7043         
7044 2002-11-15  Dick Porter  <dick@ximian.com>
7045
7046         * threadpool.c: 
7047         * threads.c:
7048         * appdomain.c: Removed mono_runtime_init_with_attach(),
7049         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
7050         merging the extra parameter with the existing function.  Removed
7051         unneeded code in mono_thread_attach().
7052
7053 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
7054
7055         * image.c (mono_image_loaded_by_guid): a method to get loaded
7056         images by guid. 
7057         (load_metadata_ptrs): we store the guid as string.
7058
7059 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
7060
7061         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
7062
7063         * metadata.c (mono_guid_to_string): imported method form Zoltan
7064         Varga (slightly modified)
7065
7066         * assembly.c (mono_assembly_open): load precompiled code
7067
7068         * loader.h (MonoMethod): we store the method token for use in the
7069         aot compiler. 
7070
7071 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7072
7073         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
7074         the hook function called when an assembly is loaded.
7075         
7076         * domain.c: Modified file.
7077         (mono_domain_assembly_load): removed hash table insertion of assemblies.
7078
7079         Fixes bug #33196.
7080
7081 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
7082
7083         * reflection.c: Map PEFileKind to the value expected by the WinNT
7084         image loader. 
7085
7086 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7087
7088         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
7089         Read until the buffer is filled completely.
7090
7091 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7092
7093         * icall.c: implemented MonoType.InternalGetEvent ().
7094
7095 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7096
7097         * appdomain.c: implemented InitAppDomainSetup. Delayed
7098         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
7099         the entry_assembly.
7100
7101         * assembly.c: base_dir is now an absolute path ending with
7102         G_DIR_SEPARATOR.
7103
7104         * icall.c: modified get_location according to the above changes.
7105
7106         * object.c: init AppDomain.SetupInformation for the default domain after
7107         we have the entry assembly.
7108
7109         * domain.c: when unloading a domain, setup = NULL.
7110
7111 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
7112
7113         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
7114
7115 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
7116
7117         * object.h, object.c: introduced mono_object_get_virtual_method ()
7118         to lookup the method invoked on an object when a callvirt is done on
7119         a method.
7120         * icall.c: make MethodInfo::Invoke() always do a virtual call.
7121
7122 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7123
7124         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
7125         current domain when loaded an assembly and failed to load it.
7126
7127         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
7128
7129 2002-10-31  Dick Porter  <dick@ximian.com>
7130
7131         * icall.c: 
7132         * file-io.h: 
7133         * file-io.c: Return the error status in a parameter, as the
7134         GetLastError() value has long since been blown away if we try and
7135         look it up in a subsequent internal call invocation.  Delete the
7136         GetLastError() internal call, because it's useless.
7137
7138 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
7139
7140         * class.[ch]: added cast_class to fix bug 29517
7141
7142 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
7143
7144         * marshal.c: create valid IL code in the filter clause:
7145         the new JIT is less forgiving:-)
7146
7147 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7148
7149         * icall.c: removed get_property internal call.
7150
7151 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
7152
7153         * appdomain.h domain.c: Added an ID to appdomains.
7154         
7155         * threads.c threads.h icall.c: Implement icall
7156         Thread:GetDomainID(), and remove unused icall 
7157         CurrentThreadDomain_internal.
7158
7159 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7160
7161         * icall.c: Don't recurse through the base types in GetConstructor.
7162         Fixes bug #32063. 
7163
7164 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
7165
7166         * mempool.h, mempool.c: added mono_mempool_empty() and
7167         mono_mempool_stats().
7168
7169 2002-10-23  Dick Porter  <dick@ximian.com>
7170
7171         * file-io.c: 
7172         * file-io.h: 
7173         * icall.c: Added MonoIO.GetFileType internal call
7174
7175 2002-10-17  Dick Porter  <dick@ximian.com>
7176
7177         * appdomain.c (mono_runtime_cleanup): Don't signal the async
7178         delegate semaphore before waiting for all threads to finish,
7179         because new threads can also call async delegates.  Fixes bug
7180         32004.
7181
7182         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
7183         of 3 seconds, in case another async job is queued.  (This part is
7184         needed because the bug fix reintroduced the 3s exit lag.)  This
7185         makes the mono_runtime_shutdown flag superfluous.
7186
7187 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
7188
7189         * reflection.c: include ehader size in method section headers.
7190         Really check for suplicated modules entries.
7191
7192 2002-10-17  Martin Baulig  <martin@gnome.org>
7193
7194         * debug-mono-symfile.c: Added back support for locals.
7195
7196 2002-10-14  Martin Baulig  <martin@gnome.org>
7197
7198         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
7199         MONO_TYPE_VOID.
7200
7201 2002-10-14  Martin Baulig  <martin@gnome.org>
7202
7203         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
7204         mono_class_get() instead of looking in the class cache. 
7205
7206 2002-10-13  Martin Baulig  <martin@gnome.org>
7207
7208         * debug-mono-symfile.c: Set version number to 28, include the
7209         signature in method names.
7210
7211 2002-10-13  Martin Baulig  <martin@gnome.org>
7212
7213         * debug-mono-symfile.h: Set version number to 27.
7214
7215 2002-10-11  Martin Baulig  <martin@gnome.org>
7216
7217         * gc.c: Don't register/unregister NULL pointers as disappearing links.
7218
7219 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
7220
7221         * metadata.c, metadata.h: added helper function to allocate signatures.
7222
7223 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7224
7225         * icall.c: added internal call to get the location of machine.config.
7226
7227 2002-10-08  Martin Baulig  <martin@gnome.org>
7228
7229         * debug-mono-symfile.c: Ignore classes with a pending init for the
7230         moment.
7231
7232 2002-10-03  Dick Porter  <dick@ximian.com>
7233
7234         * threads.c: Freebsd pthread_t is a pointer
7235
7236 2002-10-03  Dick Porter  <dick@ximian.com>
7237
7238         * socket-io.c: Implemented GetHostName_internal
7239
7240 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7241
7242         * mono-config.c:
7243         (mono_config_parse_file): don't leak the text.
7244
7245 2002-10-02  Martin Baulig  <martin@gnome.org>
7246
7247         * debug-mono-symfile.c: Added support for methods.
7248
7249 2002-10-01  Martin Baulig  <martin@gnome.org>
7250
7251         * debug-mono-symfile.c: Don't emit methods and line numbers for
7252         the dynamic symbol file, just write the type table.  We can easily
7253         have an external helper program which creates a symbol file for an
7254         IL file.        
7255
7256 2002-10-01  Dick Porter  <dick@ximian.com>
7257
7258         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
7259         Only add the handle to the cleanup array when we're about to
7260         launch the thread.  Bug 31425 deadlocked when the test was run on
7261         mono under w32.
7262
7263 2002-10-01  Martin Baulig  <martin@gnome.org>
7264
7265         * debug-mono-symfile.c: Added support for properties.
7266
7267 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
7268
7269         * reflection.c: unaligned store fix from Mark Crichton
7270         <crichton@gimp.org>.
7271
7272 2002-09-27  Martin Baulig  <martin@gnome.org>
7273
7274         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
7275         New interncall.
7276
7277 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
7278
7279         * assembly.h, assembly.c: use a sane API to hook into the assembly
7280         loading process instead of a useless special-purpouse hack
7281         (ngen needs a hook, too, for example).
7282
7283 2002-09-27  Dick Porter  <dick@ximian.com>
7284
7285         * threads.c (mono_thread_init): Call GetCurrentProcess() so
7286         io-layer can set up some process handle info.  Not needed on w32,
7287         but doesn't hurt either.
7288
7289         * process.c: Pass the program name in the second parameter to
7290         CreateProcess, so the path is searched.  Include the working
7291         directory. Implemented process name, process enumeration, and some
7292         process detail internal calls.
7293         
7294         * icall.c: Added internal calls for process lookup, and some
7295         process details
7296
7297 2002-09-26  Martin Baulig  <martin@gnome.org>
7298
7299         * assembly.c (mono_install_open_assembly_hook): New global
7300         function to install a function to be invoked each time a new
7301         assembly is loaded.
7302         (mono_assembly_open): Run this callback function if set.
7303
7304         * debug-mono-symfile.c: Put back line numbers for the dynamic
7305         symbol file and also record the .il file as source file.  This
7306         allows us to install the temporary symbol file as `file.dbg' just
7307         like a compiler-generated one.
7308
7309 2002-09-26  Nick Zigarovich <nick@chemlab.org>
7310
7311         * Corrected typo in gc.c (BOHEM vs BOEHM).
7312
7313 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7314
7315         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
7316         GetProperties. Also avoid calling g_slist_length in GetProperties and
7317         GetMethods.
7318
7319 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
7320
7321         * reflection.c: avoid unaligned stores (bug spotted by
7322         Mark Crichton  <crichton@gimp.org>).
7323
7324 2002-09-25  Martin Baulig  <martin@gnome.org>
7325
7326         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
7327         instead of guint64 for addresses and added prologue/epilogue info.
7328
7329 2002-09-25  Martin Baulig  <martin@gnome.org>
7330
7331         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
7332         store line number info.  For the dynamic symbol file, we only need
7333         to provide the JIT generated dynamic line number info for the dynamic
7334         symbol file.
7335
7336 2002-09-25  Martin Baulig  <martin@gnome.org>
7337
7338         * debug-mono-symfile.h: Incremented version number.
7339
7340 2002-09-24  Martin Baulig  <martin@gnome.org>
7341
7342         * class.c (mono_debugger_class_init_func): New global function
7343         pointer variable.
7344         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
7345         call it.
7346
7347         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
7348         function.  This is called via the mono_debugger_class_init_func
7349         hook to add all types to the dynamic type table.
7350         (ves_icall_MonoDebugger_GetType): New interncall to get a class
7351         from its metadata token.
7352
7353         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
7354         New interncall for the debugger.
7355
7356 2002-09-24  Nick Drochak <ndrochak@gol.com>
7357
7358         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
7359         before using it in case it is null.
7360         
7361 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
7362
7363         * metadata.c: allow custom modifiers in local var signatures
7364         (bug spotted by Zoltan Varga).
7365
7366 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
7367
7368         * class.c: deal with the <Module> class that may have a NULL vtable.
7369         Eliminate warnings.
7370
7371 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
7372
7373         * image.c, image.h: more strong name helpers.
7374         * monosn.c: more work: convert pem keys to cryptoapi format.
7375
7376 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
7377
7378         * string-icalls.c: speedup IndexOf.
7379
7380 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
7381
7382         * icall.c: updates from Zoltan.2.Varga@nokia.com.
7383
7384 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
7385
7386         * icall.c: cleanup: use mono_object_domain ().
7387
7388 2002-09-23  Martin Baulig  <martin@gnome.org>
7389
7390         * debug-mono-symfile.c: Improved type support.
7391
7392 2002-09-22  Martin Baulig  <martin@gnome.org>
7393
7394         * debug-mono-symfile.c: Added support for reference types and strings.
7395
7396 2002-09-22  Martin Baulig  <martin@gnome.org>
7397
7398         * debug-mono-symfile.c: Started to work on the type table.
7399
7400 2002-09-21  Martin Baulig  <martin@gnome.org>
7401
7402         * debug-mono-symfile.c: Largely reworked the symbol table format.
7403         The symbol table is now incrementally updated each time a new
7404         method is added.  We're now also using our own magic and version
7405         so that you don't need to recompile all your classes if the
7406         dynamic table changes.
7407         (mono_debug_update_mono_symbol_file): Removed.
7408         (mono_debug_symfile_add_method): New function to add a method.
7409
7410 2002-09-21  Martin Baulig  <martin@gnome.org>
7411
7412         * icall.c
7413         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
7414         New interncall.
7415
7416         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
7417         New interncall to get a method from its metadata token.
7418
7419 2002-09-21  Martin Baulig  <martin@gnome.org>
7420
7421         * debug-mono-symfile.c: Create type table.
7422
7423 2002-09-20  Martin Baulig  <martin@gnome.org>
7424
7425         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
7426
7427 2002-09-20  Martin Baulig  <martin@gnome.org>
7428
7429         * debug-mono-symfile.c: Provide information about params and locals.
7430
7431 2002-09-20  Martin Baulig  <martin@gnome.org>
7432
7433         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
7434         New interncall.
7435
7436         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
7437         interncall to get a method from its metadata token.
7438
7439 2002-09-20  Martin Baulig  <martin@gnome.org>
7440
7441         * debug-mono-symfile.c: Added a few checks for method->header
7442         being non-NULL.  This should never happen, but for the moment
7443         let's use a g_warning() rather than a g_assert().
7444
7445 2002-09-19  Mark Crichton  <crichton@gimp.org>
7446
7447         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
7448         even if support for it isn't present.  Added an #ifdef to fix this.
7449
7450         * socket-io.c: Added checks back for Solaris support.
7451
7452 2002-09-19  Martin Baulig  <martin@gnome.org>
7453
7454         * debug-mono-symfile.c (read_string, write_string): Reflect latest
7455         changes in the symbol file format.
7456
7457 2002-09-18  Martin Baulig  <martin@gnome.org>
7458
7459         * debug-mono-symfile.c: Set version number to 21.
7460
7461 2002-09-18  Dick Porter  <dick@ximian.com>
7462
7463         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
7464         on netbsd.  Fixes bug 30051.
7465
7466 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7467
7468         * reflection.c:
7469         (set_version_from_string): little fix.
7470
7471 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
7472
7473         * monosn.c, Makefile.am: added strong name utility.
7474         * reflection.h, reflection.c: implemented delayed signing,
7475         locale, version and hash id assembly attributes.
7476
7477 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
7478
7479         * loader.c, metadata.c: load param attributes in signatures.
7480
7481 2002-09-16  Martin Baulig  <martin@gnome.org>
7482
7483         * debug-mono-symfile.c: Added string table with all method names.
7484
7485 2002-09-14  Martin Baulig  <martin@gnome.org>
7486
7487         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
7488         fast method lookup.
7489
7490 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
7491
7492         * reflection.c: record the public key token of referenced assemblies.
7493
7494 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
7495
7496         * image.c, image.h: added functions to get the strong name and the
7497         public key of an assembly.
7498         * pedump.c: use them.
7499
7500 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
7501
7502         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
7503
7504 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
7505
7506         * marshal.c (mono_marshal_get_managed_wrapper): Added
7507         MONO_TYPE_BOOLEAN 
7508
7509 2002-09-11  Martin Baulig  <martin@gnome.org>
7510
7511         * gc.c: Call GC_unregister_disappearing_link() on all links when
7512         finalizing them, this is necessary to aviod a crash in boehm's
7513         finalize handler.
7514
7515 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
7516
7517         * gc.c: handle GetTarget for finalized objects spotted and fixed by
7518         nick@chemlab.org.
7519
7520 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
7521
7522         * icall.c: implemented MonoType::Module.
7523         * reflection.c, reflection.h: mono_module_get_object () from
7524         Tomi Pakarinen <tomi.pakarinen@welho.com>.
7525
7526 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
7527
7528         * icall.c: ignore overridden methods in GetMethods ().
7529         Fix for FieldInfo::SetValue().
7530         * object.c: handle float/double in runtime invoke.
7531
7532 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
7533
7534         * object.c: allow a constructor to be called again on an object.
7535
7536 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
7537
7538         * class.h, class.c: move field layout code to it's own function and
7539         export it. Get an interface id earlier. Move fields in MonoClass
7540         so they are more cache friendly and align the bitfields.
7541         * loader.c: temporary handle get_param_names() for a runtime method.
7542         * reflection.c, reflection.h: more code to handle runtime creation of
7543         types.
7544
7545 2002-09-09  Martin Baulig  <martin@gnome.org>
7546
7547         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
7548         signature with the pinvoke field being set for the actual call.
7549
7550 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
7551
7552         * icall.c: removed some unused icalls. Start of map of glib charsets
7553         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
7554
7555 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
7556
7557         * debug-helpers.c: break infinite loop (found and fixed by
7558         Holger Arnold <harnold@gmx.de>).
7559
7560 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
7561
7562         * icall.c: target may be null in create_delegate.
7563
7564 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
7565
7566         * marshal.c: handle a boolean return type.
7567
7568 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
7569
7570         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
7571
7572 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
7573
7574         * gc.c: fix weakreferences.
7575
7576 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
7577
7578         * icall.c: added icall to get default codepage.
7579
7580 2002-09-03  Dick Porter  <dick@ximian.com>
7581
7582         * threads.h: 
7583         * threads.c: Use MonoThread instead of MonoObject where
7584         apropriate.
7585
7586         Store running thread objects in a hash table, so that we have all
7587         the info to hand when waiting for them to finish
7588         (means we don't need OpenThread() any more, so mingw builds should
7589         be fully functional again.)
7590
7591         * verify.c:
7592         * object.h: Added thread ID to MonoThread
7593
7594 2002-09-03  Martin Baulig  <martin@gnome.org>
7595
7596         * icall.c (System.Reflection.Assembly::get_location): New interncall.
7597
7598 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7599
7600         * icall.c: fixed leak in get_temp_path. Thanks lupus.
7601
7602 2002-09-03  Martin Baulig  <martin@gnome.org>
7603
7604         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
7605         argument to store the end address of the disassembled instruction.
7606
7607         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
7608         here from debug-symfile.h.
7609         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
7610         JIT into this struct.
7611         (MonoSymbolFile): Added `char *image_file' field.
7612         (MonoDebugGetMethodFunc): Removed.
7613         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
7614         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
7615         (mono_debug_find_method): New method.
7616
7617         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
7618         create a full symbol file.
7619         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
7620         and static symbol files.
7621         (mono_debug_find_method): The symbol file keeps an internal method hash,
7622         call this to get a MonoDebugMethodInfo from a MonoMethod.
7623
7624         * debug-symfile.[ch]: Removed.
7625
7626 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
7627
7628         * image.c (do_mono_image_open): Remove linker version check.
7629
7630 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
7631
7632         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
7633         wrappers for instance methods.
7634         
7635 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7636
7637         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
7638
7639 2002-08-28  Dick Porter  <dick@ximian.com>
7640
7641         * Makefile.am: Export HOST_CC for w32 builds
7642
7643 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
7644
7645         * file-io.c process.c: MonoString are null terminated, no
7646         need for mono_string_to_utf16() anymore.
7647
7648 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
7649
7650         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
7651
7652 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
7653
7654         * icall.c, reflection.h: speedup System.MonoType.
7655
7656 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
7657
7658         * reflection.c: allow null as the value of a string argument in
7659         custom attributes constructors.
7660
7661 2002-08-27  Martin Baulig  <martin@gnome.org>
7662
7663         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
7664         `trampoline_address' field.
7665
7666 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
7667
7668         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
7669         check (fixes bug #29486) 
7670
7671 2002-08-27  Martin Baulig  <martin@gnome.org>
7672
7673         * debug-mono-symfile.c: Changed the file format in a way that allows us
7674         open it read-only and to use a specially malloced area for all the
7675         dynamic data.  We can now also generate a symbol file on-the-fly if we're
7676         debugging IL code and there is no MCS generated symbol file for it.
7677
7678 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
7679
7680         * object.c: added a define for a good string and array
7681         creation speedup (not enabled by default because we need to deal with
7682         the synch stuff).
7683
7684 2002-08-26  Martin Baulig  <martin@gnome.org>
7685
7686         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
7687         function to create a dynamic symbol file.  This is used by the
7688         debugger to create a symbol file for IL code on-the-fly.
7689
7690 2002-08-26  Martin Baulig  <martin@gnome.org>
7691
7692         * loader.c (mono_lookup_pinvoke_call): Include the error message
7693         from g_module_error() in the error message.
7694
7695 2002-08-24  Martin Baulig  <martin@gnome.org>
7696
7697         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
7698         function to update the symbol file.  The symbol file is mmap()ed
7699         writable, but private.  This allows us to install the symbol file
7700         together with the assembly.
7701
7702 2002-08-24  Martin Baulig  <martin@gnome.org>
7703
7704         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
7705         but they can read the new symbol file format which mcs is now creating.
7706
7707         * debug-symfile.c (mono_debug_find_source_location): Moved to
7708         debug-mono-symfile.c; this is now operating on the new symbol file.
7709
7710 2002-08-23  Martin Baulig  <martin@gnome.org>
7711
7712         * debug-helpers.c (mono_method_desc_from_method): New function to get
7713         a MonoMethodDesc from a MonoMethod.
7714
7715 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
7716
7717         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
7718         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
7719
7720 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
7721
7722         * string-icalls.[ch]: make helper methods static.
7723
7724 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7725
7726         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
7727         types to it and to SetValueInternal.
7728
7729         * object.c: Moved handle_enum label to its proper place. This was the
7730         f... bug! ;-)
7731
7732         This time i compiled mcs and gtk-sharp and they both work.
7733
7734 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7735
7736         * icall.c: reverted partially my previous patch until 
7737         object.c:set_value handles enums correcly.
7738
7739 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7740
7741         * icall.c:
7742         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
7743         (ves_icall_System_Environment_get_MachineName): removed warning when
7744         compiling under cygwin.
7745
7746 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
7747
7748         * object.c: fixed field_get_value() for reference types.
7749
7750 2002-08-22  Dick Porter  <dick@ximian.com>
7751
7752         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
7753         Don't free a buffer while it's still needed.  Patch from Jonathan
7754         Liger <Jonathan.liger@wanadoo.fr>
7755
7756 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
7757
7758         * icall.c (ves_icall_System_Environment_get_Platform): Add new
7759         internal call.
7760
7761 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
7762
7763         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
7764         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
7765
7766         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
7767         we call unmanaged code which throws exceptions.
7768
7769 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
7770
7771         * appdomain.h: added per-domain entry_assembly.
7772         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
7773         arguments.
7774         * icall.c: Assembly::GetEntryAssembly icall.
7775         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
7776         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
7777
7778 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
7779
7780         * appdomain.h, gc.c: added mono_domain_finalize ().
7781
7782 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7783
7784         * object.c:
7785         (mono_print_unhandled_exception): changed g_warning by g_printerr
7786         because g_log has a 1024 characters limit (yeah, i got a big stack
7787         trace). Don't print exception name, that should be in ToString 
7788         returned string.
7789
7790 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7791
7792         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
7793         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
7794
7795 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7796
7797         * object.c:
7798         (mono_print_unhandled_exception): after previous commit, i realized
7799         that MS calls ToString on the exception. I changed this function to
7800         do that. This way we get stack_trace for free.
7801
7802 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7803
7804         * object.c:
7805         (mono_print_unhandled_exception): invoke Message property instead of
7806         getting 'message' field from Exception. Don't allocate memory for
7807         'trace' and 'message' if not needed.
7808
7809 2002-08-18  Dick Porter  <dick@ximian.com>
7810
7811         * unicode.c: Fix asserts to match Encoder.cs checks
7812
7813 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
7814
7815         * marshal.c: fix unaligned store issue and a few wrong
7816         opcode argument types.
7817
7818 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7819
7820         * icall.c: added GetUninitializedObjectInternal internal call.
7821
7822 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
7823
7824         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
7825         to the right domain.
7826
7827 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
7828
7829         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
7830
7831         * class.c (class_compute_field_layout): set blittable to false for Strings
7832
7833         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
7834
7835 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
7836
7837         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
7838         first chunk of code to create types at runtime. Code to
7839         handle ReflectedType/DeclaringType. Make reflection handles
7840         domain specific.
7841
7842 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
7843
7844         * class.c: set correct name in arrays.
7845
7846 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
7847
7848         * appdomain.c (mono_domain_transfer_object): make it work with
7849         valuetypes. bug fixes.
7850
7851 2002-08-12  Dick Porter  <dick@ximian.com>
7852
7853         * object.h: Rename some parameters to avoid c++ keywords (Patch
7854         from Joseph Wenninger <kde@jowenn.at>)
7855
7856 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
7857
7858         * icall.c: added icall to implement Assembly.GetFile*.
7859
7860 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
7861
7862         * reflection.h, reflection.c: code to embed managed resources.
7863
7864 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
7865
7866         * class.c: move all the type size stuff into
7867         class_compute_field_layout().
7868
7869 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
7870
7871         * class.c: ensure enums have always the correct instance size.
7872         * unicode.c: remove wrong assert.
7873
7874 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
7875
7876         * assembly.c: fix mem corruption issue.
7877         * image.h, image.c: added mono_image_get_resource () to access
7878         managed resources.
7879         * icall.c: implemented Assembly.EntryPoint property and some
7880         Managed Resources related internalcalls.
7881
7882
7883 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
7884
7885         * image.c, image.h: impemented mono_image_get_entry_point ().
7886         * appdomain.c: use mono_image_get_entry_point.
7887
7888 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
7889
7890         * reflection.c: support the object type argument when loading
7891         custom attributes.
7892
7893 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
7894
7895         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
7896         String as return type.
7897
7898 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
7899
7900         * reflection.c: fix encoding of named args for custom attrs to match
7901         the ms implementation. Read them back when instantiating custom
7902         attributes.
7903
7904 2002-08-02  Radek Doulik  <rodo@ximian.com>
7905
7906         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
7907         by Dietmar as quick fix
7908         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
7909         16 as stack size, used on more places as quick fix before Dietmar
7910         will fix it properly
7911
7912 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
7913
7914         * object.h, object.c: added accessors for fields and properties.
7915
7916 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
7917
7918         * class.c, class.h: made mono_class_get_field_from_name ()
7919         loop on parent types.
7920         Added mono_class_get_property_from_name ().
7921
7922 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
7923
7924         * class.c, class.h: move the code to setup the type vtable in its own
7925         function so that it can be reused also for types created at runtime.
7926         Eliminate the "class" identifier from the header file.
7927         * reflection.c: setup the vtable for enums so that we can create
7928         objects for use in SetConstant ().
7929
7930 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
7931
7932         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
7933         instead of the delegate itself as this pointer (bug #28383)
7934
7935 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
7936
7937         * marshal.c (mono_marshal_get_managed_wrapper): added return type
7938         conversions.
7939
7940 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
7941
7942         * loader.c: don't set the pinvoke bit on icalls.
7943
7944 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
7945
7946         * debug-helpers.c (mono_method_full_name): only print a number to
7947         indicate wrapper type (so that the output is more readable in traces).
7948
7949 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
7950
7951         * class.c (mono_class_init): include method override patch from Paolo
7952
7953 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
7954
7955         * icall.c: fixed GetTypeCode().
7956
7957 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
7958
7959         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
7960         use real delegate invoke function to make it work with multicast
7961         delegates (fix bug# 28291).
7962
7963 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
7964
7965         * object.c: load constant strings.
7966
7967 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
7968
7969         * reflection.c: no magic numbers.
7970         * tabledefs.h: security action enum.
7971
7972 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
7973
7974         * assembly.c: fix possible memory corruption.
7975
7976 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
7977
7978         * reflection.h, reflection.c: added support for linking resources.
7979         * verify.c: check we have an updated corlib.
7980
7981 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
7982
7983         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
7984         string arrays.
7985         (mono_marshal_string_array): null terminate unmanaged string arrays.
7986         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
7987
7988 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
7989
7990         * icall.c: Type.GetType () can now return also types from the
7991         calling assembly.
7992
7993 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
7994
7995         * loader.h, loader.c: stack walking support.
7996         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
7997         GetCallingAssembly.
7998
7999 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
8000
8001         * marshal.c: added optimisations for blittable types 
8002
8003         * class.c (mono_array_class_get): do not set blittable attribute on arrays
8004         (mono_class_setup_mono_type): set blittable attribute for single
8005         and double.
8006
8007         * marshal.c (mono_string_utf8_to_builder): impl.
8008         (mono_string_builder_to_utf8): impl.
8009         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
8010
8011 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
8012
8013         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
8014         (mono_marshal_get_managed_wrapper): impl. byref types
8015
8016 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8017
8018         * icall.c:
8019         (search_method): don't display debug message. 
8020
8021 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
8022
8023         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
8024
8025 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
8026
8027         * appdomain.c: set the missing filename when throwing exception.
8028
8029 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
8030
8031         * metadata.c (mono_type_size): code cleanup
8032         (mono_type_stack_size): removed some test code
8033
8034 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
8035
8036         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
8037         mono_get_exception_file_not_found now.
8038
8039         * exception.c (mono_exception_from_name_two_strings): New version
8040         that will call a constructor with two string arguments. 
8041         (mono_get_exception_file_not_found): New helper routine, used to
8042         report file-not-found errors.
8043
8044 2002-07-20  Dick Porter  <dick@ximian.com>
8045
8046         * process.h:
8047         * process.c: Pass file handles to CreateProcess
8048         
8049         * icall.c:
8050         * file-io.h:
8051         * file-io.c: Implemented CreatePipe
8052
8053 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
8054
8055         * metadata.c (mono_get_param_info): set alignment for value types
8056
8057 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8058
8059         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
8060         Constify mono_domain_assembly_open().
8061         * loader.c: handle null namespace in icalls.
8062
8063 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
8064
8065         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
8066         (emit_str_to_ptr_conv): marshal object as structs
8067
8068         * metadata.c (mono_type_to_unmanaged): marshal object as structs
8069
8070         * marshal.c (mono_marshal_get_runtime_invoke): support value types
8071
8072 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
8073
8074         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
8075         (mono_marshal_get_native_wrapper): we an now return value types
8076
8077 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8078
8079         * verify.c: more checks implemented.
8080
8081 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
8082
8083         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
8084         (fix bug #27695)
8085         (mono_marshal_get_native_wrapper): allow byref arguments
8086         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
8087         impl. PtrToStringXXX methods
8088         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
8089         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
8090         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
8091         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
8092         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
8093
8094 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8095
8096         * reflection.c: fix buglet in parsing an assembly name.
8097
8098 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
8099
8100         * marshal.c (emit_ptr_to_str_conv): first impl.
8101
8102 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
8103
8104         * object.c, class.h: cache the vtable in the class as suggested by
8105         vargaz@freemail.hu (Zoltan Varga).
8106
8107 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8108
8109         * class.h, loader.c: added mono_field_from_token().
8110         * verify.c: first cut of type checking code.
8111
8112 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
8113
8114         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
8115
8116 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
8117
8118         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
8119         (fix bug #27782)
8120         (mono_marshal_get_remoting_invoke): impl.
8121         (mono_delegate_begin_invoke): impl.
8122         (mono_mb_emit_save_args): impl.
8123         (mono_delegate_end_invoke): impl.
8124         (mono_marshal_get_delegate_begin_invoke):
8125         (mono_marshal_get_delegate_end_invoke):
8126         (mono_marshal_get_delegate_invoke): generate a special name for
8127         those methods (including the signature) and associate them whith
8128         the delegate class. 
8129
8130 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
8131
8132         * reflection.[ch]: 
8133         (mono_reflection_type_from_name): now it has a MonoImage parameter
8134         which is used as the default image to search the type in. If the image
8135         is NULL or getting the type from it fails, it defaults to corlib.
8136
8137         * icall.c: changed 1 call to mono_reflection_type_from_name to match
8138         new parameter.
8139
8140 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8141
8142         * reflection.c: update the parameter table index.
8143
8144 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
8145
8146         * domain.c: don't include the mark byte in the string hash.
8147
8148 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
8149
8150         * icall.cs: icall for Type.GetTypeCode ().
8151         * verify: a couple of fixes and disabled local initialization checks.
8152
8153 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
8154
8155         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
8156
8157         * debug-helpers.c (mono_method_full_name): print the type of the
8158         runtime wrapper
8159
8160         * metadata.c (mono_signature_hash): a hash function for signatures
8161         (mono_signature_hash): better hash algorithm
8162
8163         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
8164
8165         * debug-helpers.c (mono_method_full_name): this can now generate
8166         method names with signatures
8167
8168         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
8169         method dont have this pointers.
8170
8171 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
8172
8173         * reflection.c: fixup typebuilder tokens.
8174         * image.c: fix buglet.
8175         * marshal.h: remove whitespace.
8176         * metadata.h, metadata.c: reinstate code that was removed.
8177         * verify.c: handle catch directives and fix another couple of bugs.
8178
8179 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
8180
8181         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
8182         (mono_marshal_get_native_wrapper): make it comp. with the old code
8183         (mono_marshal_get_native_wrapper): support boolean
8184         (mono_marshal_get_managed_wrapper): support more types
8185
8186 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
8187
8188         * class.c (class_compute_field_layout): compute class->blittable attribute.
8189
8190 2002-07-09  Dick Porter  <dick@ximian.com>
8191
8192         * threads.c: Make the thread cleaning up cope with threads that
8193         call ExitThread()
8194
8195 2002-07-08  Radek Doulik  <rodo@ximian.com>
8196
8197         * reflection.c (method_encode_code): use non-translated values to
8198         compute finally_start, this fixes exception handling on ppc, yay!
8199
8200         * decimal.h (struct signscale): fix endianess
8201
8202 2002-07-07  Radek Doulik  <rodo@ximian.com>
8203
8204         * reflection.c: swap box_val and not val
8205
8206 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
8207
8208         * reflection.c, reflection.h: handle full assembly info in type name.
8209         Handle Type arguments when loading custom attributes.
8210         * icall.c: updated to use new mono_reflection_type_from_name () method.
8211
8212 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8213
8214         * loader.c:
8215         (method_from_memberref): also print assembly name when method not found.
8216
8217 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8218
8219         * icall.c:
8220         (ves_icall_TypeGetProperties): fixed bug #27473. 
8221
8222 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8223
8224         * reflection.c: display image name and token when cannot find the
8225         .ctor for an attribute.
8226
8227 2002-07-05  Martin Baulig  <martin@gnome.org>
8228
8229         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
8230
8231 2002-07-04  Dick Porter  <dick@ximian.com>
8232
8233         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
8234         compile on mingw.  This will cause mingw builds to not wait for
8235         subthreads to terminate after the main thread does.  I've lodged a
8236         bug with the mingw developers for them to wrap OpenThread().
8237
8238 2002-07-03  Dick Porter  <dick@ximian.com>
8239
8240         * threads.c: Store thread IDs instead of handles, because
8241         GetCurrentThread() returns a pseudohandle and therefore stores
8242         useless values.  mono_thread_cleanup() continues checking the
8243         array of threads until it is empty, to cope with subthreads
8244         spawning new threads after the main thread has finished.
8245
8246         * profiler.h:
8247         * profiler.c:
8248         * profiler-private.h: Pass the thread ID to thread profiler
8249         functions, instead of a handle
8250
8251 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
8252
8253         * verify.c: fixes to make it more usable.
8254         * pedump.c: added --verify code to verify IL code in an assembly.
8255
8256 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8257
8258         * reflection.c: turn errors into warnings to allow compiling corlib.
8259
8260 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
8261
8262         * reflection.c: add special cases to compile corlib.
8263
8264 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
8265
8266         * reflection.c: handle properties with only a set method.
8267
8268 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
8269
8270         * opcodes.h: add enum with opcodes in opval order.
8271
8272 2002-07-01  Dick Porter  <dick@ximian.com>
8273         
8274         * object.h:
8275         * object.c (mono_runtime_run_main): Removed unneeded argument
8276
8277 2002-06-28  Martin Baulig  <martin@gnome.org>
8278
8279         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
8280
8281 2002-06-27  Dick Porter  <dick@ximian.com>
8282
8283         * threads.c: Store the handle in both the parent thread and in the
8284         subthread, to minimise the time between starting a new thread and
8285         storing its ID.
8286
8287 2002-06-26  Dick Porter  <dick@ximian.com>
8288
8289         * appdomain.c (mono_runtime_cleanup): Close the socket library
8290         after all the threads have finished, not before
8291
8292 2002-06-26  Martin Baulig  <martin@gnome.org>
8293
8294         * debug-symfile.c (mono_debug_find_source_location): Added
8295         `guint32 *line_number' argument.  If it's not NULL, store the line number
8296         there and return the file name without the line number.
8297
8298 2002-06-25  Dick Porter  <dick@ximian.com>
8299
8300         * icall.c:
8301         * process.h:
8302         * process.c: Process forking and other support functions
8303
8304 2002-06-25  Dick Porter  <dick@ximian.com>
8305
8306         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
8307         things dont happen when the image is closed.
8308         (mono_image_lookup_resource): Walk the resource section looking
8309         for a particular entry
8310
8311         * cil-coff.h: PE resource section decoding
8312
8313 2002-06-25  Dick Porter  <dick@ximian.com>
8314         
8315         * assembly.h:
8316         * assembly.c: 
8317         (mono_assembly_foreach): Accessor functions to walk the list of
8318         loaded assemblies
8319         (mono_assembly_set_main):
8320         (mono_assembly_get_main): Process methods need to know which
8321         assembly is the "main" one
8322
8323         * object.c (mono_runtime_run_main): Record the main assembly
8324
8325         * debug-helpers.c: Fix typo
8326
8327 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
8328
8329         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
8330         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
8331
8332 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
8333
8334         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
8335
8336 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
8337
8338         * image.c (do_mono_image_open): Initialize reference count,
8339         otherwise we leak the MonoImage.
8340
8341 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
8342
8343         * reflection.c: small tweak to handle self-hosting.
8344
8345 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8346
8347         * reflection.c: fix type name parse code.
8348
8349 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
8350
8351         * reflection.c: break out of the loop.
8352         * image.c: special case corlib.
8353
8354 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8355
8356         * reflection.c: add all the custom attrs at the end to ensure the
8357         ctors have been properly initialized when the attributes are defined
8358         in the current assembly.
8359
8360 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
8361
8362         * reflection.c: handle correctly multiple-nested types.
8363
8364 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
8365
8366         * row-indexes.h: fix typos.
8367         * reflection.c: adjust for typos and fix method_def_or_ref
8368         encoding in MethodImpl table.
8369
8370 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
8371
8372         * reflection.c: fix entry point patching (thanks Serge!).
8373
8374 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
8375
8376         * verify.c: add check for System.Exception
8377
8378 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
8379
8380         * image.c, class.c: minifix for code just c&p'ed.
8381         * reflection.c: warning fix.
8382         * object.h, loader.h, domain.c: load also StringBuilder.
8383
8384 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
8385
8386         * marshal.h, marshal.c: some support code to handle complex marshaling.
8387
8388 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8389
8390         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
8391         Better signatures with vtable error dump.
8392
8393 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
8394
8395         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
8396
8397 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
8398
8399         * icall.c (ves_icall_Type_GetField): impl.
8400
8401 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8402
8403         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
8404         to retrieve a marshal description blob for a field or param.
8405
8406 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
8407
8408         * reflection.h, reflection.c: change order of nested type emission
8409         to avoid table corruption. The NestedTypes table is sorted.
8410         * icall.c: change order of GetConstructor results to workaround mcs bug.
8411
8412 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
8413
8414         * reflection.h, reflection.c: handle field and param marshal
8415         information.
8416
8417 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8418
8419         * icall.c, marshal.c marshal.h: more Marshal class implementation.
8420
8421 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8422
8423         * reflection.c: fix call convention.
8424
8425 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8426
8427         * reflection.h, reflection.c: mono_image_get_memberref_token()
8428         takes a type instead of a class, now. Added
8429         mono_image_get_array_token() to create tokens for the special
8430         multi-dim array methods.
8431
8432 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
8433
8434         * assembly.c: handle modules (no assembly table). Split
8435         loading references in its own function.
8436         * class.c: handle moduleref resolution scope.
8437         * image.c, image.h: cache module name in image.
8438
8439 2002-06-07  Martin Baulig  <martin@gnome.org>
8440
8441         * reflection.c (mono_image_get_type_info): Only add a class layout entry
8442         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
8443
8444 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
8445
8446         * icall.c: more signature fixes that used uint instead of int.
8447
8448 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8449
8450         * reflection.c: fixed signature of field refs.
8451
8452 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
8453
8454         * class.c, reflection.c: handle typerefs of nested types
8455         (both on read and when writing files).
8456
8457 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
8458
8459         * icall.c: fix method signatures that tried to workaround the previous
8460         typo, d'oh!
8461
8462 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
8463
8464         * debug-helpers.c: fix typo.
8465
8466 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
8467
8468         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
8469         rewrote the PE/COFF writing code (our programs are understood by the
8470         ms runtime, now).
8471
8472 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
8473
8474         * gc.c, gc.h, icall.c: weakreference support.
8475
8476 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8477
8478         * Makefile.am, mono-config.c: use $(sysconfdir).
8479
8480 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
8481
8482         * icall.c: changed default precision of Double.ToString() to 15.
8483         Fixed memory leak. Unified with Single.ToString.
8484
8485 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
8486
8487         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
8488
8489 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
8490
8491         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
8492         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
8493         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
8494         and myself.
8495
8496 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
8497
8498         * debug-symfile.c, sysmath.c: yet more compilation fixes.
8499
8500 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8501
8502         * reflection.c, socket-io.c: more compilation fixes.
8503
8504 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
8505
8506         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
8507         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
8508         unicode.c: warning and compiler compatibility fixes.
8509
8510 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
8511
8512         * class.h, metadata.c: fixed warnings/compilation errors.
8513
8514 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
8515
8516         * Makefile.am, mono-config.c, mono-config.h: configuration file
8517         support routines.
8518         * loader.c, loader.h: make Dll mapping configurable at runtime in the
8519         config file. Export methods to insert and lookup mappings.
8520
8521 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
8522
8523         * reflection.c: handle types and boxed objects in custom attr
8524         constructors.
8525
8526 2002-05-30  Martin Baulig  <martin@gnome.org>
8527
8528         * debug-symfile.c
8529         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
8530
8531 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
8532
8533         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
8534         to lookup the implmap row for a P/Invoke method.
8535         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
8536         P/Invoke method from the runtime on an as needed basis.
8537
8538 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
8539
8540         * metadata.c (mono_metadata_parse_signature): impl.
8541
8542 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8543
8544         * class.c: handle .pack directive.
8545
8546 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8547
8548         * object.c: initialize static fields with RVA data.
8549
8550 2002-05-25  Martin Baulig  <martin@gnome.org>
8551
8552         * debug-symfile.c
8553         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
8554
8555 2002-05-24  Martin Baulig  <martin@gnome.org>
8556
8557         * debug-symfile.c
8558         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
8559         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
8560         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
8561
8562 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
8563
8564         * object.c: special case string ctros in invoke.
8565         * gc.c: silly whitespace changes.
8566
8567 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
8568
8569         * threadpool.[ch]: impl. a threadpool that can
8570         be used by mint and mono.
8571
8572 2002-05-22  Martin Baulig  <martin@gnome.org>
8573
8574         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
8575         The first argument is now a `MonoReflectionModuleBuilder *', the return
8576         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
8577         `methods' field to get the method builder.  The `token' argument is the
8578         unfixed token.
8579
8580         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
8581         invalid characters instead of g_assert_not_reached()ing.  This seems
8582         to be the behaviour of mscorlib.
8583
8584 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
8585
8586         * object.c (mono_runtime_invoke_array): applied patch from Rachel
8587         Hestilow to fix bug #25104
8588
8589 2002-05-21  Martin Baulig  <martin@gnome.org>
8590
8591         * debug-symfile.c (mono_debug_find_source_location): New function.
8592         Looks up an IL offset in the line number table and returns the source
8593         location as a string.
8594
8595 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8596
8597         * icall.c:
8598         (mono_double_ToStringImpl): changed %f by %g until we have something
8599         better.
8600
8601 2002-05-21  Nick Drochak  <ndrochak@gol.com>
8602
8603         * icall.c : Use different name for Math.Pow's icall.  Needed to check
8604         parameters first in C#.
8605
8606 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
8607
8608         * icall.c, reflection.h: added icall to get info about an event.
8609
8610 2002-05-20  Radek Doulik  <rodo@ximian.com>
8611
8612         * object.c (mono_value_box): don't use memcpy for boxing on BIG
8613         endian
8614         (mono_value_box): don't use memcpy for small sizes on
8615         architectures with unaligned access
8616
8617 2002-05-20  Martin Baulig  <martin@gnome.org>
8618
8619         * reflection.c (mono_reflection_setup_internal_class): Don't crash
8620         if `tb->parent == NULL'.
8621         (mono_reflection_create_internal_class): New function.  This is
8622         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
8623         for enum types.
8624
8625         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
8626         New interncall.
8627
8628 2002-05-19  Martin Baulig  <martin@gnome.org>
8629
8630         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
8631         argument to get the length, don't default to the array length.
8632
8633 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
8634
8635         * assembly.c (mono_assembly_setrootdir): New function used to
8636         override the MONO_ASSEMBLIES directory.
8637
8638 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
8639
8640         * icall.c: ValueType_GetHashCode() initialize local var.
8641
8642 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
8643
8644         * reflection.c: sort custom attributes table.
8645
8646 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
8647
8648         * reflection.c: support named args in custom attributes (write support).
8649
8650 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
8651
8652         * reflection.c: fix finally position calculation.
8653
8654 2002-05-15  Radek Doulik  <rodo@ximian.com>
8655
8656         * reflection.c: fixed endianess at many places
8657
8658         * icall.c (ves_icall_InitializeArray): comment out debug msg
8659
8660 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
8661
8662         * object.c (mono_unhandled_exception): new function to handle
8663         unhandled exceptions.
8664         (mono_unhandled_exception): call the UnhandledException event.
8665         (mono_runtime_delegate_invoke): impl.
8666
8667 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
8668
8669         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
8670         returns the RVA, not the direct pointer to the data. Handle the case
8671         when the class size is fixed.
8672
8673 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
8674
8675         * reflection.c: fix some endianess issues.
8676
8677 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
8678
8679         * object.c (mono_runtime_invoke): is now able to catch exceptions.
8680
8681         * threads.c (mono_thread_init): added a callback which is invoked
8682         at thread start.
8683
8684 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
8685         
8686         * icall.c: make GetHashCode return non-negative values.
8687
8688 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
8689
8690         * object.c, icall.c, gc.c: revert to address-based hashcode.
8691
8692 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
8693
8694         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
8695
8696 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
8697
8698         * icall.c, class.c: special case <Module>.
8699
8700 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
8701
8702         * icall.c: fix bug in GetNow().
8703
8704 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
8705
8706         * object.c (mono_runtime_class_init): make sure that we call all
8707         static class constructors.
8708
8709 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
8710
8711         * reflection.c: sort methodsemantics table.
8712
8713 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8714
8715         * reflection.h, reflection.c: honour init locals setting.
8716
8717 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
8718
8719         * icall.c: copied Double ToStringImpl for Single ToStringImpl
8720
8721 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
8722
8723         * reflection.c: support ContructorBuilders in attribute blob creation.
8724
8725 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
8726
8727         * reflection.c: some changes to build a binary that can be run
8728         directly in windows.
8729
8730 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
8731
8732         * loader.c: print a big message when an icall can't be found.
8733
8734 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8735
8736         * string-icalls.c: fix bug 24248.
8737
8738 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
8739
8740         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
8741         icall.c, reflection.h: separate assembly loading by pathname and by
8742         assembly name. Use the MONO_PATH env var to search for assemblies.
8743
8744 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
8745
8746         * assembly.c, image.h: add some support for assemblies
8747         with multiple modules.
8748         * class.c, class.h: export mono_class_from_typeref().
8749         * loader.c: remove duplicated code and use mono_class_from_typeref(),
8750         instead.
8751
8752 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
8753
8754         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
8755         documentation says (the ECMA one is correct).
8756
8757 2002-05-02  Dick Porter  <dick@ximian.com>
8758
8759         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
8760         Don't name the synchronisation mutex.
8761
8762 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
8763
8764         * rand.c
8765         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
8766         Make the prototypes match.
8767         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
8768         Same.
8769
8770         * icall.c
8771         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
8772         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
8773         all systems have tm.tm_zone, so use strftime() with %Z to print
8774         the timezone abreviation into a temp string.
8775
8776         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
8777         rather than mono_array_addr() on a MonoString on Big Endian
8778         machines.
8779
8780 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
8781
8782         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
8783         fix bug 24041
8784
8785 2002-04-30  Dick Porter  <dick@ximian.com>
8786
8787         * socket-io.c: Cope with SOCKET being an integer rather than a
8788         pointer now.
8789
8790         * threads.c: Added Thread_free_internal, to deal with thread
8791         handle cleanup.  Moved calls to handle_store() and handle_remove()
8792         to start_wrapper(), so each can only be called once.  Allocate
8793         synchronisation blocks with GC_malloc(), and use GC finalisation
8794         to close the handles.
8795
8796         * icall.c: added System.Threading.Thread::Thread_free_internal
8797
8798 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8799
8800         * icall.c: support Environment.Exit, CommandLineArgs().
8801
8802 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8803
8804         * object.c, object.h: added mono_runtime_run_main () and
8805         mono_runtime_get_main_args () for use in System.Environment.
8806
8807 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
8808
8809         * gc.c: fix thinko, enable actual finalization since the jit is now
8810         fixed.
8811
8812 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
8813
8814         * gc.c, object.c: take into account that an object may be offset wrt the address
8815         returned by GC_malloc().
8816
8817 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
8818
8819         * image.c: handle files without entries in the assembly table (modules).
8820
8821 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
8822
8823         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
8824         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
8825         allowed to be null when it's System.Object class setup.
8826
8827 2002-04-27  Martin Baulig  <martin@gnome.org>
8828
8829         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
8830         if `tb->parent == NULL' rather than crashing.
8831
8832 2002-04-28  Nick Drochak  <ndrochak@gol.com>
8833
8834         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
8835         calling acos() where asin() should have been called.
8836
8837 2002-04-26  Martin Baulig  <martin@gnome.org>
8838
8839         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
8840         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
8841         there's a subdirectory called `System', but we don't want to read that
8842         subdirectory as an assembly.
8843
8844 2002-04-25  Martin Baulig  <martin@gnome.org>
8845
8846         * debug-symfile.c: Reflect latest MonoString changes.
8847
8848 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
8849
8850         * rand.c, rand.h: instance method icalls need to have an explicit
8851         this pointer as first argument in the C implementation.
8852
8853 2002-04-25  Nick Drochak <ndrochak@gol.com>
8854
8855         * icall.c: Fix typo in map for GetNonZeroBytes
8856
8857 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
8858
8859         * string-icalls.c : String does now passes unit tests without any 
8860         errors, the following changes has been made:
8861         
8862         Implemented replace methods.
8863         Renaming of methods to (try) follow the standard.
8864         Fixed compare ordinal
8865         Made all memory allocated directly to function instead of via icall function.
8866         Small performance fix in is_in_array function
8867                         
8868  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
8869
8870         c (mono_string_Internal_ctor_charp_int_int):
8871         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
8872         sindex < 0, throw ArgumentOutOfRangeException instead of
8873         ArgumentNullException.
8874
8875         Added new check for length == 0, however
8876         I need to make it return String.Empty from the C code.
8877         
8878         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
8879         that calculate the length for us here.
8880         
8881         (mono_string_Internal_ctor_sbytep_int_int): Replaced
8882         mono_string_new_utf16 with mono_string_new, since value is utf8.
8883
8884 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8885
8886         * object.c: register the object for finalization if needed.
8887         Allocate one more char in the string for the terminating 0 char.
8888
8889 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8890
8891         * class.c, class.h, image.c: check if a type implemenst a destructor.
8892         Use the proper key for array class lookups.
8893         * icall.c: register the icalls in the System.GC class.
8894         * gc.c, gc.h: GC-related functions and icalls.
8895
8896 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8897
8898         * icall.c:
8899         * socket-io.c:
8900         * unicode.c: free some strings gotten from mono_string_to_utf8 and
8901         changed a couple of free () by g_free ().
8902
8903         * decimal.c: one-liner in the comments for decimal2string ().
8904
8905 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
8906
8907         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
8908
8909 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
8910
8911         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
8912         * object.c (mono_runtime_invoke_array) : handle null in params
8913
8914 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
8915
8916         * string-icalls.c: fixed bug in split (one off bug)
8917
8918 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
8919
8920         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
8921         * icalls.c: added String::Equals as internal method
8922
8923 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
8924
8925         * threads.c: fixed bug in the double interlocked functions
8926
8927 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
8928
8929         * threads.c: implemented all of the new interlocked icalls.
8930         * string-icalls.c: fix a bug in insert.
8931         * icalls.c: added the icalls for interlocked, removed old string functions.
8932         
8933 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
8934
8935         * loader.c: fix off-by-one error when reading argument names.
8936
8937 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
8938
8939         * profiler.c: win32 counter implementation (untested).
8940         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
8941         (the latter needs testing and more complete impl. from win32 folks).
8942
8943 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
8944
8945         * object.c: mono_array_new_full workaround mono_array_class_get
8946         problem.
8947
8948 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
8949
8950         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
8951         * object.h (mono_string_chars): Changed casting type.
8952
8953 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
8954
8955         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
8956                            method signatures to use gunichar2 instead of gint16.
8957
8958 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
8959
8960         * object.h, object.c: domain-specific versions of mono_object_new and
8961         mono_array_new.
8962
8963 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
8964
8965         * object.c: changed String layout
8966
8967         * string-icalls.c (mono_string_Internal_ctor_chara): added
8968         internal string constructors.
8969
8970 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
8971
8972         * threads.c: pass 'this' to the thread start routine.
8973
8974 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8975
8976         * string-icalls.c: fix IndexOf and LastIndexOf. Now
8977         InternalCompareStr don't call twice mono_string_cmp_char for the last
8978         character. Improved performance in mono_string_cmp_char.
8979
8980 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
8981
8982         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
8983         code into its own library: libmonoruntime.
8984
8985 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
8986
8987         * object.h, object.c: changed array format so that szarrays do not
8988         require a bounds structure.
8989         * icall.c, appdomain.c: support for new szarray format.
8990
8991 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
8992
8993         * metadata.c: compare also the retuns type when comparing signatures:
8994         we didn't do this as an optimization since really overloaded methods
8995         must differ also in the arguments, but this doesn't work with
8996         low-level IL code (or when using explicit conversion operators: see
8997         bug#23498 for an example).
8998
8999 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9000
9001         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
9002
9003 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9004
9005         * icall.c: make MonoType::GetElementType its own icall.
9006
9007 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9008
9009         * icall.c: remove MonoMethod_get_Name().
9010         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
9011         object.
9012
9013 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9014
9015         * string-icalls.c: optimized a few methods.
9016
9017 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9018
9019         * icall.c: added all new string internal calls
9020         * string-icalls.c: added, new string internal call implementation.
9021         * object.c: added mono_string_new_size for allocating a string a size
9022
9023 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
9024
9025         * object.c (mono_object_isinst): use the same code as in the
9026         optimized x86 version.
9027
9028 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9029
9030         * profiler.c: TSC-based timer code (faster and more accurate).
9031         Not hooked up in configure, yet (set USE_X86TSC to 1).
9032
9033 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
9034
9035         * profiler.c, profiler.h: track time spent compiling methods.
9036         * threads.c: track thread creation/destruction.
9037
9038 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
9039
9040         * profiler.c, profiler.h, profiler-private.h: profiling interface
9041         and sample implementation. Moved here so that it can be used also by
9042         the jit.
9043
9044 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
9045
9046         * reflection.c, reflection.h: keep types and other handles separate in
9047         the hash tables for referred tokens. Add guid for modules.
9048
9049 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9050
9051         * assembly.c: fix bugs found with valgrind.
9052         * metadata.h, metadata.c: added mono_metadata_guid_heap().
9053
9054 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
9055
9056         * threads: added icall support for getting current domain for
9057                    the thread.
9058  
9059 2002-04-13  Martin Baulig  <martin@gnome.org>
9060
9061         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
9062         (MonoDebugVarInfo): Added `index' field for register based addresses.
9063         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
9064         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
9065         `MonoDebugVarInfo *params' and `guint32 this_offset' with
9066         `MonoDebugVarInfo *this_var'.
9067
9068         * debug-symfile.c (relocate_variable): New static function to write
9069         a location description for a local variable or method parameter.
9070
9071 2002-04-12  Martin Baulig  <martin@gnome.org>
9072
9073         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
9074         stack offset and begin/end scope address of a local variable.
9075         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
9076         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
9077         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
9078
9079         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
9080         Added new relocation types for start/end scope of a local variable.
9081
9082 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9083
9084         * object.h: add mono_object_domain() macro.
9085         * reflection.c: handle typespecs.
9086         * icall.c: MonoMethod::get_Name() implementation.
9087
9088 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9089
9090         * icall.c: String::GetHashCode() icall implementation.
9091
9092 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9093
9094         * icall.c: String::IndexOfAny icall.
9095         * object.c, object.h: make array->max_length more useful.
9096         Intrduced mono_object_class() and mono_string_length() macros.
9097
9098 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9099
9100         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
9101         instead of g_unichar_isdigit.
9102
9103 2002-04-11  Nick Drochak  <ndrochak@gol.com>
9104
9105         * icall.c: Implement a simple Double.ToString().
9106
9107 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9108
9109         * appdomain.h: only io-layer.h is supposed to be included.
9110         * icall.c: explicitly import environ. Fix warning.
9111
9112 2002-04-10  Nick Drochak  <ndrochak@gol.com>
9113
9114         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
9115                 return true even if it's not Daylight Savings time.
9116                 Only return false for the case where the function isn't
9117                 implemented for a plaform (read Windows).
9118
9119 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9120
9121         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
9122         data with a mutex.
9123
9124 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
9125
9126         * mempool.c (mono_mempool_alloc): only use g_malloc when
9127         absolutely necessary.
9128
9129 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
9130
9131         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
9132
9133         * class.c (mono_class_vtable): use domain mempool to allocate vtable
9134         (mono_class_proxy_vtable): use domain mempool
9135
9136 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9137
9138         * appdomain.h, appdomain.c: split initialization that requires the
9139         execution engine support into mono_runtime_init().
9140
9141 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
9142
9143         * class.c (mono_class_init): don't include vtable inside MonoClass
9144         to save some memory, gather some statistics.
9145         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
9146
9147 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9148
9149         * icall.c: internalcall implementation for ValueType.Equals().
9150
9151 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
9152
9153         * object.c (mono_message_init): moved 
9154         (mono_runtime_exec_main): new arch. independent impl.
9155         (mono_runtime_invoke_array): new method - like
9156         mono_runtime_invoke, but you can pass an array of objects.
9157         (mono_remoting_invoke): new arch. independent impl.
9158         (mono_message_invoke): new arch. independent impl.
9159         (mono_runtime_class_init): new arch. independent impl.
9160         (mono_runtime_object_init): new arch. independent impl.
9161
9162 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9163
9164         * metadata.c, object.c, reflection.c: documented the exported
9165         functions.
9166
9167 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9168
9169         * icall.c: simpler code to pass the assembly builder data to corlib.
9170         Implement GetNestedTypes() internalcall.
9171
9172 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9173
9174         * class.c: warn if a type can't be loaded.
9175
9176 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
9177
9178         * image.h: typedef MonoImageOpenStatus
9179         * types.h: removed unused file
9180         
9181 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
9182
9183         * icall.c: Enum_ToObject accepts enum value arguments.
9184
9185 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9186
9187         * class.c: move initialization of properties, events and nested
9188         classes, so that they happen for interfaces, too.
9189
9190 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9191
9192         * icall.c: cleanup some ugly casts in Array_SetValue*.
9193
9194 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9195
9196         * icall.c: the values array fro enums is of the correct type, now.
9197         Implement (correctly) getFullName instead of assQualifiedName for
9198         MonoType.
9199         * reflection.h, reflection.c: added mono_type_get_name ().
9200
9201 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9202
9203         * assembly.c, image.h: for each MonoImage, record from wich assembly
9204         it was loaded.
9205         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
9206         Make Type.Assembly work.
9207
9208 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
9209
9210         * debug-symfile.h: use char* instead of gpointer to avoid
9211         unnecessary casts.
9212
9213         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
9214
9215         * icall.c (ves_icall_InternalExecute): impl. FielSetter
9216         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
9217
9218 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
9219
9220         * icall.c (mono_message_init): impl. (code cleanup)
9221         (ves_icall_InternalExecute): impl. FieldGetter
9222
9223         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
9224         defined we call all (non-static)methods through the vtable. 
9225
9226 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
9227
9228         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
9229         finalizer even though the memory is still referenced (and the chunk of
9230         memory is not freed).
9231
9232 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
9233
9234         * assembly.c: fix brokeness.
9235
9236 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
9237
9238         * class.c: kill some warnings. Check explicit interface method
9239         implementation also without considering the namespace.
9240         Load also literal strings in static class data.
9241
9242 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
9243
9244         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
9245         (default_assembly_name_resolver): Make the resolver take the
9246         "base" directory where the assembly was originally defined, so we
9247         can load DLLs that are in the same directory as the assembly that
9248         is being referenced.
9249
9250 2002-03-28  Dick Porter  <dick@ximian.com>
9251
9252         * file-io.h: 
9253         * file-io.c:
9254         * socket-io.c: 
9255         * unicode.h: 
9256         * unicode.c: Warning cleanups
9257
9258 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
9259
9260         * object.h, reflection.h: use the correct type instead of MonoObject.
9261
9262 2002-03-28  Martin Baulig  <martin@gnome.org>
9263
9264         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
9265         (mono_debug_update_symbol_file): Initialize classes if necessary.
9266
9267 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
9268
9269         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
9270         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
9271
9272 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
9273
9274         * assembly.h: fix function prototype.
9275         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
9276         * mono-endian.h: use const cast.
9277
9278 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
9279
9280         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
9281
9282 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
9283
9284         * loader.c: don't assert when a typeref can't be loaded, give
9285         a chance to the runtime to trow an exception instead.
9286         * loader.h: fix warning.
9287
9288 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
9289
9290         * class.c (mono_class_proxy_vtable): added proxy support
9291
9292 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
9293
9294         * icall.c: removed last of PAL calls, added System.Environment
9295         * file-io.h, file-io.c: MonoIO implementation
9296         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
9297
9298 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
9299
9300         * appdomain.c: do not use the byte marker in ldstr table lookup.
9301         * debug-helpers.c: allow two ':' to separate class and method name.
9302         * object.c: allocate arrays bounds with the GC, too.
9303         * verify: add a few more checks.
9304
9305 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
9306
9307         * reflection.c: output also literal strings. Allocate parameter data
9308         with GC_malloc() (thanks, Martin, for catching this!).
9309
9310 2002-03-26  Martin Baulig  <martin@gnome.org>
9311
9312         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
9313         include the `this' offset in the `param_offsets'.
9314
9315 2002-03-25  Martin Baulig  <martin@gnome.org>
9316
9317         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
9318         mono_debug_get_class() function to get the classes. Added new
9319         relocation types for arrays and strings.
9320         (mono_debug_get_class): New static function to search in all
9321         referenced assemblies for a metadata token.
9322
9323         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
9324
9325 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9326
9327         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
9328         hold gc-allocated objects. Make the string heap a stream like the
9329         others. Removed duplicated code when writing stream info.
9330         Added asserts to catch possible buffer overflows. Set the sorted map
9331         for tables that need sorting. Added some documentation.
9332
9333 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
9334
9335         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
9336         for interned strings and vtables.
9337
9338 2002-03-24  Martin Baulig  <martin@gnome.org>
9339
9340         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
9341         it in the array since it was created with g_slist_prepend().
9342
9343 2002-03-24  Martin Baulig  <martin@gnome.org>
9344
9345         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
9346         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
9347         (mono_debug_method_from_token): Renamed to
9348         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
9349         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
9350
9351         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
9352         relocation types.
9353
9354         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
9355
9356 2002-03-24  Martin Baulig  <martin@gnome.org>
9357
9358         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
9359         (mono_debug_method_from_token): New func.
9360
9361         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
9362         New interncall, calls mono_debug_local_type_from_signature().
9363         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
9364         calls mono_debug_method_from_token().
9365
9366 2002-03-23  Martin Baulig  <martin@gnome.org>
9367
9368         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
9369         specifies the number of bytes to be converted, not the array size.
9370         Return the number of chars, not the number of bytes.
9371         (ves_icall_iconv_get_chars): The `byteCount' argument
9372         specifies the number of bytes to be converted, not the array size.
9373
9374 2002-03-23  Martin Baulig  <martin@gnome.org>
9375
9376         * reflection.h (MonoReflectionSigHelper): New type.
9377
9378         * reflection.c (mono_reflection_sighelper_get_signature_local),
9379         (mono_reflection_sighelper_get_signature_local): New functions.
9380
9381         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
9382         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
9383         interncalls.
9384
9385 2002-03-23  Martin Baulig  <martin@gnome.org>
9386
9387         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
9388         is_writeable is set.
9389         (mono_raw_buffer_update): New function to write the modified map
9390         back to disk.
9391
9392         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
9393
9394         * debug-symfile.c (mono_debug_update_symbol_file): Call
9395         mono_raw_buffer_update() when done writing.
9396
9397 2002-03-23  Martin Baulig  <martin@gnome.org>
9398
9399         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
9400
9401         * debug-symfile.c: Added support for arguments and local variables.
9402
9403 2002-03-23  Dick Porter  <dick@ximian.com>
9404
9405         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
9406         protected by ifdefs, hence breaking the w32 build.
9407
9408 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9409
9410         * object.c: implement is_interned() the right way.
9411
9412 2002-03-21  Martin Baulig  <martin@gnome.org>
9413
9414         * debug-symfile.[ch]: New files to handle debugging information
9415         files. There's also support to dynamically update these symbol
9416         files to include machine dependent information.
9417
9418 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
9419
9420         * threads.c (mono_thread_create): new function to create thread
9421         from C
9422
9423 2002-03-20  Martin Baulig  <martin@gnome.org>
9424
9425         * icall.c (ves_icall_InternalInvoke): Create a new object if the
9426         method is a constructor.
9427         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
9428         points to ves_icall_InternalInvoke().
9429
9430 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
9431
9432         * file-io.c: Flush shouldn't throw exceptions.
9433
9434 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
9435
9436         * file-io.c: FileStream flush support; FileSetLength now
9437         restores file pointer.
9438
9439 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
9440
9441         * class.c: set image for pointer classes.
9442
9443 2002/03/19  Nick Drochak <ndrochak@gol.com>
9444
9445         * sysmath.c: Forgot one.
9446
9447 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
9448
9449         * sysmath.c: Avoid redefining existing names.
9450
9451 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
9452
9453         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
9454         handled by runtime as icall rather than dllimport from libm.so
9455         * file-io.c, file-io.h: fixed handle argument type.
9456
9457 2002-03-18  Dick Porter  <dick@ximian.com>
9458
9459         * reflection.c (mono_image_get_type_info): rename interface to
9460         iface, because of "#define interface struct" on windows.
9461
9462 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
9463
9464         * class.c, class.h: rename and export mono_ptr_class_get().
9465         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
9466         * reflection.c, reflection.h, icall.c: better/saner type name
9467         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
9468         method signatures.
9469
9470 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
9471
9472         * class.c (mono_class_init): removed hardcoded GHC_SLOT
9473
9474         * icall.c (ves_icall_InternalInvoke): impl.
9475
9476 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9477
9478         * reflection.c: output the interface map table, too.
9479
9480 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
9481
9482         * class.c (class_compute_field_layout): separate computation of 
9483         static field layout
9484
9485 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
9486
9487         * icall.c: added System.Buffer support.
9488         * file-io.c: moved file icalls from PAL to FileStream.
9489
9490 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
9491
9492         * icall.c (ves_icall_System_Object_GetHashCode): impl.
9493
9494 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
9495
9496         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
9497
9498 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9499
9500         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
9501
9502 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
9503
9504         * debug-helpers.{c,h}: moved here from monograph some useful functions
9505         to locate a method by name/signature in a class or image. Included
9506         also a small and flexible IL disassembler.
9507
9508 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
9509
9510         * reflection.c: fixup tokens in methods with small header size, too.
9511
9512 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
9513
9514         * object.c (mono_string_to_utf8): remove assert(!error), instead
9515         print a warning. 
9516
9517 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
9518
9519         * icall.c: update to the new mono_Array_class_get interface.
9520
9521 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
9522
9523         * appdomain.c, object.c: Boehm-GC enable.
9524         * icall.c: make get_data_chunk() support split data requests.
9525         Ensure a class is initialized in more cases. Return only the first
9526         property found in GetProperties() or the compiler gets confused. 
9527         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
9528         * reflection.h, reflection.c: add fixup mechanism for field and method
9529         tokens. Initialize assembly->typeref in a single place. Output
9530         properties after events. Support custom attributes for events, too.
9531         Typo fix for paramter custom attrs.
9532
9533 2002-03-07  Martin Baulig  <martin@gnome.org>
9534
9535         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
9536
9537 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
9538
9539         * class.c (mono_array_class_get): fix. for multi. dim. arrays
9540
9541 2002-03-06  Martin Baulig  <martin@gnome.org>
9542
9543         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
9544         non-zero lower bounds. See testcases #F10-#F13.
9545
9546 2002-03-05  Martin Baulig  <martin@gnome.org>
9547
9548         * exception.c (mono_get_exception_argument_out_of_range): New exception.
9549
9550         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
9551         ves_icall_System_Array_GetValue(), only calculate the absolute array position
9552         here.
9553         (ves_icall_System_Array_SetValue): Likewise.
9554         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
9555         as argument and does the actual work. This function is used when copying a
9556         multi-dimensional array.
9557         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
9558         now do all the widening conversions of value types.
9559         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
9560
9561 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9562
9563         * class.c: remove some magic numbers and use the smbolic names,
9564         instead. Added init_events() to load event info at class init time.
9565         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
9566         and mono_metadata_methods_from_event().
9567         * reflection.h, reflection.c: added support for writing out the evnets
9568         related information.
9569
9570 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
9571
9572         * reflection.h, icall.c: use a different method (GetInterfaces)
9573         to gather interface info and add isbyref, isprimitive and
9574         ispointer to the ves_icall_get_type_info() return value.
9575
9576 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
9577
9578         * class.h: stared adding support for events.
9579         * icall.c: split find_members implementation. Added debug icall to get
9580         the address of an object.
9581         * reflection.c: handle TypeBuilders in mono_type_get_object().
9582
9583 2002-03-01  Martin Baulig  <martin@gnome.org>
9584
9585         * icall.c (ves_icall_System_Array_GetLength): This must throw an
9586         ArgumentOutOfRangeException(), not an ArgumentException().
9587         (ves_icall_System_Array_GetLowerBound): Likewise.
9588         (ves_icall_System_Array_GetValue): Improved argument checking.
9589         (ves_icall_System_Array_SetValue): Improved argument checking.
9590
9591 2002-03-01  Martin Baulig  <martin@gnome.org>
9592
9593         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
9594         called with invalid arguments rather than just dying with g_assert().
9595         (ves_icall_System_Array_SetValue): Likewise.
9596         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
9597         raise a NotImplementedException instead.
9598         (ves_icall_System_Array_GetLength): Added argument checking.
9599         (ves_icall_System_Array_GetLowerBound): Added argument checking.
9600
9601 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
9602
9603         * object.h (mono_assert): new macros mono_assert and
9604         mono_assert_not_reached
9605
9606 2002-02-28  Martin Baulig  <martin@gnome.org>
9607
9608         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
9609         and "System::String::IsInterned" to "System::String::_IsInterned".
9610
9611 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
9612
9613         * icall.c: remove hacks for typebuilder. Added icall to create a
9614         modified type from a tybebuilder.
9615         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
9616         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
9617         to create a backing MonoClass for a TypeBuilder.
9618
9619 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9620
9621         * class.c, class.h: more refactoring of class init.
9622         Export mono_class_setup_mono_type() and mono_class_setup_parent().
9623
9624 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
9625
9626         * marshal.c, marshal.h: start of marshaling interface.
9627
9628 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
9629
9630         * icall.c: fix order in assembly qualified name icall.
9631
9632 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
9633
9634         * class.c: do not free str, since we store it in the hash table.
9635         * reflection.h: add label field to MonoILExceptionInfo.
9636         * reflection.c: handle references to more than one assembly. Handle
9637         case when there isn't a module created in the assembly.
9638
9639 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
9640
9641         * class.c: Fix typo. Start refactoring of class init code.
9642
9643 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
9644
9645         * appdomain.c: exit with 1 on error.
9646         * class.c: we already have the name in MonoClassField.
9647         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
9648         MonoStreamHeader instead of an offset of image->raw_metadata.
9649
9650 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
9651
9652         * appdomain.c (mono_init): Be even more descriptive about the error.
9653
9654 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
9655
9656         * appdomain.c: give the user an informative message when corlib can't
9657         be loaded.
9658
9659 2002-02-26  Martin Baulig  <martin@gnome.org>
9660
9661         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
9662         New icall to get the time zone data.
9663
9664 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9665
9666         * reflection.c: set virtual and raw size of section correctly.
9667         * threads.c: transfer domain information to newly created threads.
9668
9669 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
9670
9671         * class.c: when instancing a class in a domain, load the default
9672         vaules for static fields from the constant table. Fix System.Enum to
9673         not be an enum.
9674         * icall.c: implement Object::GetType() internalcall. Implemented
9675         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
9676         Fixed checking of binding flags in find_members().
9677         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
9678         * reflection.c: handle enumerations when writing to the constant
9679         table. Use a different object cache for types.
9680
9681
9682 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
9683
9684         * object.c (mono_object_isinst): fix for arrays
9685
9686         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
9687
9688 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
9689
9690         * object.c: don't use mprotect ()  and fix intern pool hash table
9691         lookup for big endian systems.
9692
9693 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
9694
9695         * icall.c: change type_is_subtype_of () signature.
9696
9697 2002-02-21  Mark Crichton  <crichton@gimp.org>
9698
9699         * rand.c, rand.h: Added random number generator for
9700         System.Security.Cryptography classes.
9701
9702         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
9703
9704         * icall.c: Added System.Security.Cryptography calls.
9705
9706 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9707
9708         * class.c, icall.c, metadata.c: better support for pointer types.
9709         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
9710         * reflection.c: Add support for getting custom attrs for properties
9711         and simplify some code.
9712
9713 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
9714
9715         * icall.c: change getToken () and add custom attribute GetBlob()helper
9716         method.
9717         * reflection.h: add custom attrs array to the reflection builder structures.
9718         * reflection.c: encode and emit custom attributes for all the relevant
9719         reflection objects. Cache fieldref and methodref tokens. Change
9720         mono_image_create_token() interface to take a MonoDynamicAssembly.
9721         More complete custom attributes decoder. Load custom attributes for
9722         Assembly, Field, Method and Constructor objects, too. Make the
9723         returned array an Attribute[] one, not object[]. Added
9724         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
9725         custom attribute constructor.
9726
9727 2002-02-20  Dick Porter  <dick@ximian.com>
9728
9729         * icall.c:
9730         * rawbuffer.c:
9731         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
9732         problem code out for now).
9733
9734 2002-02-19  Radek Doulik  <rodo@ximian.com>
9735
9736         * object.c (mono_ldstr): use hash table to avoid multiple swapping
9737
9738 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
9739
9740         * icall.c: register the GetCustomAttributes method.
9741         * object.c, object.h: add mono_string_new_len ().
9742         * reflection.h, reflection.c: added mono_runtime_invoke(),
9743         mono_install_runtime_invoke(). Added
9744         mono_reflection_get_custom_attrs () to load custom attributes and
9745         create the attribute objects.
9746
9747 2002-02-19  Dick Porter  <dick@ximian.com>
9748         * threads-dummy-types.c:
9749         * threads-dummy-types.h:
9750         * threads-dummy.c:
9751         * threads-dummy.h:
9752         * threads-pthread-types.c:
9753         * threads-pthread-types.h:
9754         * threads-pthread.c:
9755         * threads-pthread.h:  Deleted obsolete files
9756
9757 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
9758
9759         * class.c (mono_class_vtable): runtime init the class when we
9760         allocate static class data.
9761
9762         * icall.c (ves_icall_System_Array_SetValue): check for null values.
9763
9764         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
9765         and String - but we will need generic marshalling support in the
9766         future. 
9767         (mono_init): set the domain name in a ms compatible way
9768
9769         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
9770         String[].
9771
9772 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
9773
9774         * object.c (mono_array_clone): use alloca() instead of g_malloc  
9775         for sizes
9776
9777         * appdomain.c (mono_domain_unload): impl.
9778
9779 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9780
9781         * appdomain.c, object.c: fix intern pool implementation.
9782         * class.c: fix alignment code.
9783
9784 2002-02-16  Radek Doulik  <rodo@ximian.com>
9785
9786         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
9787         and s2 > s1, just copy lower bytes to be compatible with little
9788         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
9789         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
9790
9791         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
9792         force big_endian to be 1 for big endian machines 
9793         (ves_icall_iconv_new_decoder): ditto
9794
9795 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
9796
9797         * socket-io.c (convert_sockopt_level_and_name): If the system
9798         doesn't define SOL_IP or SOL_TCP, get them by hand using
9799         getprotobyname() and caching the values (because this could be a
9800         slow operation).
9801         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
9802         Use the appropriate struct when the system does support it. Ie,
9803         not all systems have struct ip_mreqn so use struct ip_mreq when
9804         appropriate.
9805
9806 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
9807
9808         * reflection.c: handle finally clauses.
9809
9810 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
9811
9812         * socket-io.c: use g_snprintf() instead of snprintf.
9813
9814 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
9815
9816         * reflection.c (mono_param_get_objects): Cast second argument to
9817         mono_method_get_param_names to a const char** to silence the
9818         compiler warning.
9819
9820         * appdomain.c (mono_domain_assembly_open): Put parens around the
9821         truth statement in the for-loop.
9822
9823         * unicode.c (iconv_convert): Got rid of a compiler warning about
9824         int i being unused when the system has a new iconv.
9825         (iconv_get_length): Same.
9826
9827         * image.c (load_class_names): Cast the second argument to
9828         g_hash_table_insert() to char* to hush compiler warnings about the
9829         arg being a const.
9830         (mono_image_open): Same here.
9831
9832         * socket-io.c: Don't conditionally include sys/filio.h or
9833         sys/sockio.h here anymore since we now get them from
9834         io-layer/io-layer.h
9835         (inet_pton): If the system doesn't support inet_aton, implement
9836         using inet_addr and also #define INADDR_NONE if it isn't defined
9837         by the system.
9838
9839 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9840
9841         * metadata.c, metadata.h: added function to get packing and size info
9842         of a typedef.
9843         * reflection.h, reflection.c: handle field RVA data. Save info about
9844         the table layout if needed. Assign typedef indexes to all the types
9845         before dumping the info about them to avoid forward reference problems.
9846
9847 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
9848
9849         * socket-io.c (convert_sockopt_level_and_name): ifdef
9850         SO_ACCEPTCONN because it is not defined on my system (old debian)
9851
9852 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9853
9854         * opcode.c: use stddef.h to get NULL.
9855
9856 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
9857
9858         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
9859         for FIONBIO, FIONREAD and SIOCATMARK.
9860         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
9861         define INADDR_NONE and besides, inet_addr() is deprecated and
9862         should not be used. Use inet_pton() instead - it also has the
9863         added bonus that it can easily handle IPv6 addresses as well.
9864         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
9865
9866 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
9867
9868         * decimal.c: remove _MSC_VER conditional.
9869
9870 2002-02-13  Dick Porter  <dick@ximian.com>
9871
9872         * socket-io.c: 
9873         * icall.c: Internal calls for Blocking, Select, Shutdown,
9874         GetSocketOption and SetSocketOption
9875
9876 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9877
9878         * assembly.cs: better resolver: use it instead of some kludgy
9879         code.
9880
9881 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
9882
9883         * reflection.c: the best way to speed-up the compiler is to avoid
9884         infinite loops.
9885
9886 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
9887
9888         * class.c (mono_class_vtable): changed the object layout
9889         (obj->vtable->class). 
9890         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
9891
9892 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9893
9894         * assembly.c: look for assemblies in the assembly dir, too.
9895
9896 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9897
9898         * class.c: fix thinko in mono_class_from_type().
9899
9900 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9901
9902         * exception.h, exception.c: added TypeLoadException.
9903         * object.h, object.c: added mono_array_clone ().
9904         * icall.c: handle throwOnError in AssemblyGetType().
9905         Added Array.Clone().
9906         * opcode.h, opcode.c: use a single value for the opcode val.
9907         Compile fix for non-gcc compilers.
9908
9909 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
9910
9911         * opcodes.c, opcodes.h: export interesting info about opcodes.
9912
9913 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
9914
9915         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
9916         icalls. 
9917
9918         * class.c (class_compute_field_layout): set element_class for enums
9919         (mono_class_create_from_typedef): set element_class for normal classes
9920
9921         * icall.c (ves_icall_System_Enum_get_value): impl.
9922
9923         * class.c (mono_class_create_from_typedef): do not set valuetype
9924         flag for System.ValueType and System.Enum
9925
9926 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
9927
9928         * unicode.c (iconv_convert): fix big endian problem.
9929
9930 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9931
9932         * class.c: add asserts if we are ever going to scribble over memory.
9933         * socket-io.c: not all systems have AF_IRDA defined.
9934
9935 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
9936
9937         * class.c (class_compute_field_layout): do not consider static
9938         fields to compute alignment
9939
9940 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
9941
9942         * appdomain.c (mono_appdomain_get): impl.
9943         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
9944
9945 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
9946
9947         * icall.c: ignore "file://" prefix when loading an assembly.
9948
9949 2002-01-23  Dick Porter  <dick@ximian.com>
9950
9951         * socket-io.c:
9952         * icall.c:
9953         * Makefile.am: Added socket support
9954
9955 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
9956
9957         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
9958         code back.  This should return the assemblies that are loaded by
9959         the runtime on behalf of an application domain. 
9960
9961         The current implementation is still broken, it just returns every
9962         assembly loaded, but until we get real applications domain this
9963         will do.
9964
9965 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
9966
9967         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
9968         AppDomain object.
9969
9970 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
9971
9972         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
9973         the mono_class_from_name lookup.
9974         (ves_icall_get_parameter_info): ditto.
9975         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
9976         method.
9977         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
9978
9979 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9980
9981         * class.c: load also nested classes on class init.
9982         System.ValueType instance methods gets passed boxed
9983         values, unless methods in derived classed that get a pointer to the
9984         data.
9985         * icall.c: use better name parsing code in GetType().
9986         * image.c, image.h: add mono_image_loaded ().
9987         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
9988         * reflection.c, reflection.h: added mono_reflection_parse_type().
9989
9990 2002-01-22  Veronica De Santis <veron78@interfree.it>
9991
9992         * icall.c : Added mapping of internal calls for Manual and Auto reset events
9993         * threads.c : Added the implementation of internal calls for events
9994         * threads.h : Added prototypes of internal calls for events
9995         
9996 2002-01-21  Radek Doulik  <rodo@ximian.com>
9997
9998         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
9999
10000 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
10001
10002         * class.c (mono_class_init): set min_align to 1 (instead of 0)
10003         (mono_class_value_size): use min_align
10004
10005 2002-01-20  Dick Porter  <dick@ximian.com>
10006
10007         * threads.h:
10008         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
10009         so it compiles on w32.
10010
10011 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
10012
10013         * metadata.c (mono_type_stack_size): impl.
10014
10015         * class.c (mono_class_get_field): impl. memberref token
10016
10017 2002-01-16 Veronica De Santis <veron78@@interfree.it>
10018
10019         * icall.h : Added the internal calls mapping for CreateMutex_internal
10020                     and ReleaseMutex_internal.
10021         * threads.h : Added the prototype of mutexes internal calls.
10022         * threads.c : Added the implementations of mutexes internal calls.
10023
10024 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
10025
10026         * metaparse.h: removed unused file.
10027         * reflection.c, reflection.h: added stream_data_align () function 
10028         to align data in streams and keep stream aligned. Add support for
10029         exception support in method headers.
10030
10031 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
10032
10033         * unicode.c: make iconv_convert () return the number of bytess written
10034         in the output buffer.
10035
10036 2002-01-15  Dick Porter  <dick@ximian.com>
10037         * threads.c: Make the runtime's idea of infinite timeouts coincide
10038         with the class library's
10039
10040         Fix a particularly egregious bug in mono_thread_cleanup(). That
10041         code was so utterly bogus it must have been written on a Monday.
10042
10043 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
10044
10045         * reflection.h: add subtypes field to TypeBuilder.
10046         * reflection.c: encode constants for literal fields.
10047         Handle subtypes. Fix user string token (and add a zero byte)
10048         at the end.
10049         
10050 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
10051
10052         * class.c (mono_class_init): bug fix: assign slot numbers for
10053         abstract methods.
10054
10055 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10056
10057         * reflection.c: don't try to output a code RVA for abstract methods.
10058         Small fixes for method header format. Output parameter info to the
10059         ParamDef table. Save method overriding info to MethodImpl table.
10060         Fix property support. Allow typedef.extends to be a type in the
10061         building assembly.
10062         * verify.c: fix off-by-one error.
10063
10064 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
10065
10066         * class.c: fix mono_class_from_mono_type () for szarray types.
10067         Remove unused cache check in mono_class_from_type_spec().
10068         * icall.c: *type_from_name () functions handle simple arrays and byref.
10069         * reflection.c: handle byref and szarray types. Handle methods without
10070         body (gets P/Invoke compilation working). Handle types and fields in
10071         get_token ().
10072         * reflection.h: add rank to MonoTypeInfo.
10073
10074 2002-01-10  Dick Porter  <dick@ximian.com>
10075
10076         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
10077         internal calls
10078
10079 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
10080
10081         * icall.c: initialize class in type_from_handle ().
10082         Loop also in parent classes for get_method ().
10083         * reflection.c: properly encode class and valuetype types.
10084         Start on encoding TypeBuilder types. Handle fieldrefs.
10085         Use correct length when registering a user string.
10086         Handle ConstructorBuilder and MonoMethod in get_token ().
10087         Make mono_type_get_object () aware of cached types.
10088         * object.c: back out change to mono_string_new ().
10089
10090 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
10091         * object.c: mono_string_new should return a NULL when the string 
10092         passed in is NULL -- not try to deference it.
10093         
10094 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
10095
10096         * icall.c: hack to make IsSubType work for TypeBuilders.
10097         * reflection.c: emit constructors before methods.
10098         Retrieve param names in mono_param_get_objects().
10099
10100 2002/01/05  Nick Drochak  <ndrochak@gol.com>
10101
10102         * Makefile.am: fix list of headers and sources so automake 1.5
10103         doesn't complain. Removed \# at end of list.
10104
10105 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
10106
10107         * reflection.c: get token for a method ref. Set return type of
10108         constructor to void.
10109         * loader.c: debug message.
10110         * class.c: typo fix.
10111
10112 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
10113
10114         * icall.c: fix array init with rank > 1. FindMembers
10115         loops in parent class as well.
10116         * image.c: do not insert nested types in name cache.
10117         * reflection.c: warning fix.
10118         * reflection.h: add override method (for interface impl).
10119
10120 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
10121
10122         * metadata.c: fix customattr decoding.
10123
10124 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
10125
10126         * rawbuffer.cs: Added native Win32 implementation, avoids using
10127         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
10128
10129 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
10130
10131         * class.c: make the low-level routines handle the cache.
10132
10133 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
10134
10135         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
10136
10137 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
10138
10139         * class.c: fix mono_array_element_size() for objects.
10140         * class.h, class.c: add properties to MonoClass and load them
10141         at init time.
10142         * icall.c: check with isinst() when assigning a value to an array
10143         instead of requiring the classes to match exactly.
10144         Implemented icall for System.Type::GetType().
10145         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
10146         enums. Handle bindingflags when looking for methods and fields.
10147         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
10148         and mono_metadata_methods_from_property().
10149         * reflection.h, reflection.c: added structures for propreties,
10150         parameters and enums. Implemented mono_property_get_object() and
10151         mono_param_get_objects().
10152
10153 2001-12-18  Dick Porter  <dick@ximian.com>
10154
10155         * file-io.c: Use mono_string_to_utf16() instead of
10156         mono_string_chars()
10157
10158         * object.c: Added mono_string_to_utf16(), which copies the non
10159         NULL-terminated MonoString into a new double-null-terminated
10160         buffer.
10161
10162 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
10163
10164         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
10165
10166 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
10167
10168         * file-io.c: raise exceptions if handle is invalid.
10169
10170 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
10171
10172         * assembly.c: yet another check for mscorlib.
10173         * class.c, class.h: load nesting info for classes.
10174         * icall.c: many new functions to support the Reflection classes.
10175         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
10176         * reflection.h, reflection.c: mono_image_create_token(),
10177         mono_assembly_get_object(), mono_type_get_object(),
10178         mono_method_get_object(), mono_field_get_object(): methods to return
10179         objects that parallel the C representation of assemblies, types,
10180         methods, fields.
10181
10182 2001-12-11  Dick Porter  <dick@ximian.com>
10183
10184         * icall.c:
10185         * file-io.c: Internal calls for file IO.
10186
10187 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
10188
10189         * tabledefs.h: missing FileAttributes.
10190         * verify.h, verify.c: use is_valid_string () to simplify and check for
10191         valid strings more correctly. Fix warnings and speeling.
10192         Check more tables: Filed, File, ModuleRef, StandAloneSig.
10193         Check code: branches, maxstack, method calls.
10194
10195 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
10196
10197         * object.c (mono_object_allocate): removed static, so that the jit
10198         can allocate value types.
10199
10200         * icall.c (ves_icall_System_DateTime_GetNow): impl.
10201
10202 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
10203
10204         * class.c: init enum types right away and register the
10205         token->MonoClass map in mono_class_create_from_typedef ().
10206         * verify.h, verify.c: first cut of the verifier.
10207         * pedump.c: add --verify switch to verify metadata tables.
10208         * tabledefs.h: add some missing enums.
10209
10210 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
10211
10212         * class.c (mono_install_runtime_class_init): impl.
10213         (mono_class_init): renamed mono_class_metadata_init to
10214         mono_class_init, also removed the metadata_inited flag
10215
10216         * object.c (mono_object_isinst): use faster algorithm
10217
10218 2001-11-30  Radek Doulik  <rodo@ximian.com>
10219
10220         * mono-endian.h: reverted last change
10221         added function prototypes
10222
10223         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
10224         add mono-endian.c back
10225
10226         * mono-endian.c: returned back, as Paolo pointed out, it's needed
10227         for unaligned access, I've mistaked it with endianess. I am
10228         sorry.
10229         (mono_read16): fix reverted endianess
10230         (mono_read64): ditto
10231         (mono_read32): ditto
10232
10233 2001-11-30  Dick Porter  <dick@ximian.com>
10234
10235         * exception.c: Implement mono_exception_from_name()
10236
10237 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
10238
10239         * metadata.h, metadata.c: remove params_size and locals_size and their
10240         calculation from the metadata code: they are only usefult to the
10241         interp.
10242
10243 2001-11-29  Radek Doulik  <rodo@ximian.com>
10244
10245         * object.c (mono_ldstr): swap bytes here, it's probably not the
10246         best place, but works for me now, I'll redo it once I know mono
10247         better, also note that I add PROT_WRITE and don't reset back, also
10248         note that it's only affects big endians, so x86 should be OK
10249
10250         * mono-endian.h (read16): use just glib macros for both endians
10251
10252         * mono-endian.c: removed as glib macros are used in in
10253         mono-endian.h so we don't need to care about endianess for read
10254         macros as glib does that for us already
10255
10256 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
10257
10258         * class.h, class.h: take minimum alignment into consideration so
10259         that the fields of a class remain aligned also when in an array.
10260
10261 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
10262
10263         * loader.h, loader.c: add mono_method_get_param_names().
10264         * class.c: 0-init class fields.
10265
10266 2001-11-26  Dick Porter  <dick@ximian.com>
10267
10268         * icall.c:
10269         * threads-types.h:
10270         * threads.c: New file that handles System.Threading on all platforms
10271
10272         * object.c: 
10273         * object.h: Remove the synchronisation struct from MonoObject,
10274         replace it with a pointer that gets initialised on demand
10275
10276         * Makefile.am: Replace all the system-specific threading code with
10277         a single file that uses the new wrapper library
10278
10279 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
10280
10281         * class.c, class.h: add mono_install_trampoline() so that the runtime
10282         can register a function to create a trampoline: removes the ugly
10283         requirement that a runtime needed to export arch_create_jit_trampoline.
10284         * object.h, object.c: added mono_install_handler() so that the runtime
10285         can install an handler for exceptions generated in C code (with
10286         mono_raise_exception()). Added C struct for System.Delegate.
10287         * pedump.c: removed arch_create_jit_trampoline.
10288         * reflection.c: some cleanups to allow registering user strings and
10289         later getting a token for methodrefs and fieldrefs before the assembly
10290         is built.
10291         * row-indexes.h: updates and fixes from the new ECMA specs.
10292
10293 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
10294
10295         * class.h, class.c: add enum_basetype field to MonoClass.
10296         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
10297         to get index in the constant table reated to a field, param or
10298         property.
10299         * reflection.h, reflection.c: handle constructors. Set public-key and
10300         version number of the built assembly to 0.
10301         * row-indexes.h: update from new ECMA spec.
10302
10303 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
10304
10305         * class.h, class.c: add a max_interface_id to MonoClass.
10306         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
10307         since it's used to do that. Added mono_type_type_from_obj().
10308         Make GetType() return NULL instead of segfaulting if the type was not
10309         found. Handle simple arrays in assQualifiedName.
10310         * object.h: add a struct to represent an Exception.
10311         * reflection.c: output call convention in method signature.
10312         Add code to support P/Invoke methods and fixed offsets for fields.
10313
10314 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
10315
10316         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
10317         the value.
10318         * icall.c: use mono_array_addr instead of array->vector: fixes the
10319         reflection image writing.
10320         * reflection.c: init call convention byte to 0 in method signature.
10321         Encode the property signature. Don't output property-related methods
10322         twice. Really process the properties for a type (don't cast a field to
10323         a property, my mom always told me that).
10324         Fix 64 bit issues in pointer alignment in a different and more
10325         readable way.
10326
10327 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
10328
10329         * loader.h: Removed type class from MonoDefaults, added monotype
10330
10331         * loader.c: Loaded MonoType, removed loading of Type
10332
10333         * icall.c (my_mono_new_object): Now returns a System.MonoType,
10334         and fills in System.Type._impl with a RuntimeTypeHandle rather
10335         than the actual MonoClass *
10336
10337         (ves_icall_type_from_handle): change from type_class to
10338         monotype_class
10339
10340         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
10341         implemented
10342
10343         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
10344         implemented
10345
10346         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
10347
10348         (ves_icall_System_Reflection_Assembly_GetType): implemented
10349
10350         (ves_icall_System_MonoType_assQualifiedName): implemented
10351
10352         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
10353
10354 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
10355
10356         * assembly.c (mono_assembly_open): Implement a cache for the
10357         assemblies. 
10358
10359         (mono_assembly_close): only destroy the assembly when the last
10360         reference is gone.
10361         
10362 2001-11-09  Dick Porter  <dick@ximian.com>
10363
10364         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
10365
10366 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
10367
10368         * class.c (mono_class_metadata_init): bug fix: compute the right slot
10369
10370 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
10371
10372         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
10373         from Martin Weindel.
10374         * object.h: add mono_string_chars ().
10375
10376 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
10377
10378         * reflection.c (build_compressed_metadata): Eliminates warnings
10379         and uses 64-bit clean code.
10380
10381         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
10382         (mono_type_equal): Change signature to eliminate warnings.
10383
10384 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
10385
10386         * icall.c, loader.c: remove the internalcall array constructors.
10387         Changes to match the new MonoArray structure.
10388         * object.h, object.c: an array object doesn't allocate an extra
10389         vector. Add mono_array_new_full () to create jagged arrays easily.
10390
10391 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
10392
10393         * metadata.h, metadata.c: add mono_metadata_field_info () to
10394         retreive all the info about a field from vairous tables.
10395         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
10396         * class.h, class.c: augment MonoClassField with more info.
10397         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
10398         policy and load a field's RVA if needed.
10399
10400 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
10401
10402         * class.c (mono_class_metadata_init): create a trampoline for all
10403         virtual functions instead of actually compiling them.
10404
10405 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
10406
10407         * class.h, class.c: include name in MonoClassField.
10408         * class.c: fix fundamental type of System.Object and System.String.
10409         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
10410         tokens in ldtoken.
10411         * icall.c: remove internalcalls for the Reflection stuff that is now
10412         done in C# code.
10413         * loader.c: mono_field_from_memberref () implementation.
10414         * mono-endian.c: thinko (s/struct/union/g).
10415         * object.c, object.h: make the mono_string_* prototypes actually use
10416         MonoString instead of MonoObject.
10417         * reflection.c, reflection.h: updates for changes in the reflection
10418         code in corlib: we use C structures that map to the actual C# classes.
10419         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
10420         fat method header if needed and use the info from the ILGenerator for
10421         methods. Handle fields in types. Misc fixes.
10422
10423 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
10424
10425         * class.c (mono_class_metadata_init): bug fix: always allocate
10426         space for static class data
10427
10428 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
10429
10430         * class.c (mono_compute_relative_numbering): use relative
10431         numbering to support fast runtime type checks.
10432
10433 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
10434
10435         * class.c (mono_class_create_from_typeref): added debugging output
10436         to print class name when MonoDummy is returned instead of real class
10437
10438 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
10439
10440         * class.c (mono_class_metadata_init): interface offset table now
10441         contains pointers into the vtable - this is more efficient for the jit
10442
10443 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
10444
10445         * class.c (mono_class_metadata_init): use a temporary vtable (the
10446         old algorithm only worked for the interpreter, but not for the jit)
10447
10448 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
10449
10450         * loader.c (method_from_memberref): use mono_class_get to get the
10451         class of an array instead of using System.Array directly.
10452         (mono_get_method): also add MEMBERREF methods to the method cache
10453         which usefull for arrays.
10454
10455 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
10456
10457         * pedump.c (arch_compile_method): added to compute vtable entry
10458
10459         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
10460         number of interfaces.
10461         
10462         * class.h: merged MonoArrayClass into MonoClass
10463
10464         * class.c (mono_class_create_from_typedef): compute the vtable size and
10465         allocate space to include the vtable inside MonoClass
10466         (mono_class_metadata_init): initialize the vtable
10467
10468 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
10469
10470         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
10471         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
10472         * image.c: endian fixes by Laurent Rioux.
10473         * object.h, object.c: rename MonoStringObject to MonoString and
10474         MonoArrayObject to MonoArray. Change some function names to conform to
10475         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
10476         guint16* as first argument, so don't use char*.
10477         Provide macros to do the interesting things on arrays in a portable way.
10478         * threads-pthread.c: updates for the API changes and #include <sched.h>
10479         (required for sched_yield()).
10480         * icall.c: updates for the API changes above.
10481         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
10482         platforms that need them.
10483
10484 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
10485
10486         * class.c: set the correct type for all the fundamental
10487         type when loading the class.
10488
10489 2001-10-05  Dick Porter  <dick@ximian.com>
10490
10491         * threads-pthread.c (pthread_mutex_timedlock): Simple
10492         compatibility version for C libraries that lack this call.
10493
10494 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
10495
10496         * class.c: MonoTypes stored in MonoClass are stored as
10497         fundamental MonoTypes when the class represents a
10498         fundamental type (System.Int32, ...).
10499         The TypeHandle return by ldtoken is a MonoType*.
10500         * icall.c: ves_icall_get_data_chunk () write out all the
10501         PE/COFF stuff. Implement ves_icall_define_method (),
10502         ves_icall_set_method_body (), ves_icall_type_from_handle ().
10503         * image.c: properly skip unknown streams.
10504         * loader.h, loader.c: add type_class to mono_defaults.
10505         * metadata.c, metadata.h: export compute_size () as
10506         mono_metadata_compute_size () with a better interface.
10507         Typo and C&P fixes.
10508         * pedump.c: don't try to print the entry point RVA if there is no entry point.
10509         * reflection.c, reflection.h: many cleanups, fixes, output method
10510         signatures and headers, typedef and typeref info, compress the metadata
10511         tables, output all the heap streams, cli header etc.
10512         * row-indexes.h: typo fixes.
10513
10514 2001-10-04  Dick Porter  <dick@ximian.com>
10515
10516         * object.h: Add a synchronisation mutex struct to MonoObject
10517
10518         * object.c (mono_new_object): Initialise the object
10519         synchronisation mutexes
10520
10521         * icall.c: System.Threading.Monitor internal calls
10522         
10523         * threads-pthread.h:
10524         * threads-pthread.c: System.Threading.Monitor internal calls
10525
10526         * threads-types.h: New file, includes the system-specific thread
10527         structures
10528         
10529         * threads-pthread-types.h:
10530         * threads-pthread-types.c: New files, handle pthread-specific
10531         synchronisation types
10532
10533         * threads-dummy-types.h: 
10534         * threads-dummy-types.c: New files of dummy support for
10535         thread-specific types
10536
10537         * metadata.c:
10538         * image.c:
10539         * pedump.c: include mono-endian.h not endian.h
10540         
10541         * Makefile.am: More threads files.
10542         Name mono-endian.h not endian.h
10543
10544 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
10545
10546         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
10547         stuff and implement a few more bits.
10548         * icall.c: a field needs to be dereferenced twice. Do not use the same
10549         name for two variables in the same scope.
10550         * image.c, image.h: cleanups.
10551
10552 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
10553
10554         * class.c (mono_class_metadata_init): bug fix: compute the right size
10555
10556 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
10557
10558         * icall.c: implemented some of the Reflection internalcalls.
10559         * image.c, image.h: start writing out the PE/COFF image.
10560         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
10561         that does the reverse than decode_blob_size ().
10562         * object.c: use mono_metadata_encode_value (). Move here
10563         temporary implementation of mono_string_to_utf8 ().
10564         * rawbuffer.c: make malloc_map static.
10565
10566 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
10567
10568         * metadata.c: fix type comparison for arrays.
10569         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
10570         Added a couple of new classes to monodefaults.
10571         * icall.c: added a couple of Reflection-related internalcalls.
10572         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
10573         Added a byval_arg MonoType to MonoClass.
10574
10575 2001-09-28  Dick Porter  <dick@ximian.com>
10576
10577         * icall.c:
10578         * threads-pthread.h: 
10579         * threads-pthread.c: Implemented internal calls for
10580         LocalDataStoreSlot operations.  Applied mutexes around all shared
10581         data.  Reworked the thread creation and Start() operations to
10582         avoid a race condition.
10583         
10584         * threads-dummy.h:
10585         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
10586
10587 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
10588
10589         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
10590
10591 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
10592
10593         * class.c, loader.c: warn and return NULL instead of erroring out.
10594         * icall.c: added System.AppDomain::getCurDomain().
10595         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
10596
10597 2001-09-25  Dick Porter  <dick@ximian.com>
10598
10599         * threads-pthread.h:
10600         * threads-pthread.c: Implemented timed thread joining and added
10601         System.Threading.Thread::Join_internal internal call
10602
10603         * icall.c: Added System.Threading.Thread::Join_internal internal call
10604
10605         * threads-dummy.h:
10606         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
10607
10608 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
10609
10610         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
10611         mono_string_intern () to implement the semantics of the ldstr opcode
10612         and the interning of System.Strings.
10613         * icall.c: provide hooks to make String::IsIntern and String::Intern
10614         internalcalls.
10615
10616 2001-09-23  Dick Porter  <dick@ximian.com>
10617
10618         * threads-dummy.c: 
10619         * threads-dummy.h: New files of dummy threading routines
10620
10621         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
10622         support code based on system specifics
10623
10624         Rename PTHREAD_LIBS to THREAD_LIBS
10625         
10626 2001-09-23  Dick Porter  <dick@ximian.com>
10627
10628         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
10629         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
10630         internal calls.
10631         (mono_thread_init): Set up a Thread object instance to return when
10632         the main thread calls Thread.CurrentThread
10633         (mono_thread_cleanup): Wait for all subthreads to exit
10634
10635         * icall.c: New internal calls for System.Threading.Thread::Sleep
10636         (including Schedule) and CurrentThread
10637
10638         * threads.h: New file, to insulate thread-specific stuff from the
10639         rest of the code
10640
10641 2001-09-21  Dick Porter  <dick@ximian.com>
10642
10643         * threads-pthread.h: 
10644         * threads-pthread.c: New file, for handling pthreads-style
10645         threading support.  Start() now starts a new thread and executes
10646         the ThreadStart delegate instance.
10647
10648         * icall.c: Added the internalcall for
10649         System.Threading.Thread::Start_internal
10650
10651         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
10652
10653 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
10654
10655         * loader.c: work around the different signatures for delegates
10656         constructors csc generates in compiled code vs the ones compiled in mscorlib.
10657
10658 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
10659
10660         * class.h, class.c: add mono_class_get_field_from_name ().
10661         * *: Fix C comments and other ANSI C issues.
10662
10663 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
10664
10665         * endian.h, assembly.c: fix some endianness issues.
10666
10667 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
10668
10669         * loader.h, load.c: add delegate_class to mono_defaults.
10670         Handle runtime provided methods in mono_get_method ().
10671
10672 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
10673
10674         * loader.c (mono_get_method): use pinvoke for internal call
10675
10676         * icall.c: use pinvoke for internal call
10677
10678         * loader.c (method_from_memberref): set the method name
10679
10680 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
10681
10682         * metadata.c: help the compiler generate better code for
10683         mono_class_from_mono_type ().
10684
10685 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
10686
10687         * class.c (mono_class_metadata_init): delayed computing of the
10688         class size to mono_class_metadata_init ()
10689
10690 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
10691
10692         * class.c, class.h: add an interfaces member to MonoClass.
10693         * image.c, image.h: add assembly_name field to MonoImage
10694         from the assembly table.
10695         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
10696
10697 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
10698
10699         * class.c: Handle Array in mono_class_from_mono_type ().
10700         * metadata.c, pedump.c: some endian fixes.
10701
10702 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
10703
10704         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
10705         * metadata.c: fix small problem introduced with the latest commit.
10706
10707 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
10708
10709         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
10710         We don't need a MonoMetadata pointer anymore to compare signatures in
10711         mono_metadata_signature_equal (), update callers.
10712         Reduced memory usage an number of allocations for MonoMethodHeader and
10713         MonoMethodSignature.
10714
10715 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
10716
10717         * metadata.c: added compare for szarray.
10718
10719 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
10720
10721         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
10722         and add a couple more types to it and mono_defaults. Give an hint on
10723         classes that need implementing in our corlib and are referenced
10724         in mscorlib.
10725
10726 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
10727
10728         * class.h, class.c: keep track if a class is also an Enum.
10729         * loader.c: Implement a couple more types for use in libffi
10730         marshalling. Gives better diagnostics when failing to dlopen
10731         a library. Set method->klass for P/Invoke methods, too.
10732
10733 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
10734
10735         * class.c, class.h: add a MonoType this_arg to MonoClass that
10736         represents a pointer to an object of the class' type that
10737         can be used by the interpreter and later the type cache.
10738         Add best guess alignment info for valuetype objects.
10739
10740 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
10741
10742         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
10743         into MonoType: one less level of indirection and allocation and
10744         simplifies quite a bit of code. Added cache for MonoTypes that are
10745         used frequently, so that we don't need to allocate them all the time.
10746
10747 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
10748
10749         * class.c (mono_class_create_from_typedef): System.Enum is also a
10750         value type, although it does not derive from System.ValueType
10751         (maybe a bug in the ms compiler?)
10752
10753         * metadata.c (mono_type_size): return the right size for value types
10754
10755         * loader.c (mono_get_method): only initialize method header if not abstract
10756
10757         * class.c (mono_class_from_mono_type): use mono_default values. 
10758
10759 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
10760
10761         * *: use MonoClass pointers instead of <type_tokens>
10762         
10763         * class.h: new flag: metadata_inited.
10764
10765         * class.c (mono_class_metadata_init): impl.
10766         (mono_class_instance_size): impl.
10767         (mono_class_data_size): impl.
10768
10769 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
10770
10771         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
10772         MonoClass now has the name and name_space fields. 
10773         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
10774         mono_get_method () takes and optional MonoClass as argument.
10775         Removed mono_typedef_from_name() and added mono_class_token_from_name()
10776         instead that takes advantage of a map from class names to typedef
10777         tokens in MonoImage.
10778
10779 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
10780
10781         * metadata.c: zero is not a valid alignment boundary.
10782         Merge MONO_TYPE_VOID in default decoding code.
10783
10784 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
10785
10786         * image.h: merged MonoMetadata into MonoImage
10787
10788         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
10789         identify the type of elements.
10790
10791 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
10792
10793         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
10794         * cil-coff.h: split MonoMSDOSHeader and add size info.
10795         * image.c: add some consistency checks.
10796         * metadata.c: fix row size computation: one programmer
10797         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
10798         add explanation for the locator routine.
10799         Fix decoding of size in method header.
10800         
10801 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
10802
10803         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
10804         (g_concat_dir_and_file): Bring g_concat_dir_and_file
10805         function from gnome-libs.  This uses the right path separator
10806         based on the OS, and also works around a bug in some systems where
10807         a double slash is not allowed. 
10808         (default_assembly_name_resolver): Use g_concat_dir_and_file
10809         (mono_assembly_open): ditto.
10810
10811 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
10812
10813         * metadata.c (mono_metadata_signature_equal): impl.
10814
10815         * *: void is now a realy MonoType (instead of using NULL)
10816         
10817         * metadata.c (do_mono_metadata_parse_type): use
10818         mono_metadata_parse_type to parse void value.
10819
10820 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
10821
10822         * metadata.c, metadata.h: in the signature and method header store
10823         only the space required for holding the loca vars and incoming arguments.
10824
10825 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
10826
10827         * metadata.c (do_mono_metadata_parse_type): treat void like any
10828         other type (instead of assigning NULL);
10829
10830 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
10831
10832         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
10833
10834 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
10835
10836         * image.c (do_mono_image_open): added a cache for arrays.
10837
10838 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
10839
10840         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
10841         decode a single column from a row in a metadata table and changes
10842         to take advantage of it in the typedef locator (gives a nice speed up).
10843         Store offset info for function params.
10844
10845 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
10846
10847         * image.h (MONO_IMAGE_IS_CORLIB): removed 
10848
10849 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
10850
10851         * assembly.c: how could mono_assembly_close () had ever worked?
10852         * metadata.c, metadata.h: provide offset info for local vars.
10853         Implement mono_type_size () to take care of alignment as well
10854         as size (it was mono_field_type_size in cli/class.c before).
10855
10856 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
10857
10858         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
10859
10860         * assembly.h (CORLIB_NAME): set to corlib.dll
10861
10862         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
10863
10864 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
10865
10866         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
10867         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
10868         tokentype.h: massive namespace cleanup.
10869
10870 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
10871
10872         * metadata.h, metadata.c: decode exception clauses when parsing method header.
10873
10874 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
10875
10876         * metadata.c (mono_metadata_free_type): added check for type !=
10877         NULL (void) before calling mono_metadata_free_type()
10878
10879 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
10880
10881         * metadata.h, row_indexes.h: added header with enumerations to use
10882         to index in the columns from tables in metadata and to decode coded
10883         tokens: we should start using this instead of embedding magic numbers
10884         all over the code.
10885
10886 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
10887
10888         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
10889         Move metadata_t info from cli_image_info_t to MonoImage, where
10890         it's easily accessible. Changed all the uses accordingly.
10891         Added the method and class caches to MonoImage.
10892         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
10893         and mono_metadata_decode_value () signature to be more consistent
10894         with the other parse functions (and simplify code). Taken advantage
10895         of zero-length array allocation with GCC. Removed reduntant (and
10896         wrong) MonoFieldType struct and use MonoParam instead. Changed
10897         mono_metadata_parse_field_type () to use common code for parsing.
10898         Added mono_metadata_typedef_from_field () and
10899         mono_metadata_typedef_from_method () to lookup a typedef index from a
10900         field or method token.
10901         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
10902
10903 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
10904
10905         * metadata.c (mono_metadata_parse_field_type): Implement. 
10906         (do_mono_metadata_parse_type): Split engine from
10907         mono_metadata_parse_type, so that we can create smaller structures
10908         for things that just have one pointer to the MonoType (look at
10909         the MonoFieldType)
10910
10911 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
10912
10913         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
10914         as Jan Gray found out, it is incorrect. 
10915
10916 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
10917
10918         * assembly.c: Implement asssembly loading.  This loads an image
10919         and loads all the referenced assemblies.  Come to think of it, we
10920         could always do lazy loading of the assemblies. 
10921
10922         * image.c (mono_image_open): Keep loaded images in a hashtable.
10923
10924         * image.h (MonoImage): Add reference count.
10925
10926 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
10927
10928         * assembly.c (mono_assembly_open): Keep track of the file name in
10929         case the assembly has no ASSEMBLY table.
10930
10931         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
10932         from get.c here.
10933
10934 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
10935
10936         * metadata.c, metadata.h: decode local vars in method header
10937         parse function. Change callers accordingly.
10938
10939 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
10940
10941         * metadata.h, cil-coff.h: protect against multiple inclusion.
10942         Added some new structures to hold information decoded from metadata:
10943         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
10944         and relevant decoding/free functions.
10945         * metadata.c: implement decoding functions. Add warning for out of bounds
10946         index in mono_metadata_locate(). Implement mono_get_method () to retreive
10947         all the info about a method signature and invocation. Remove check on
10948         uninitialized local var in parse_mh() and fix memory leak.
10949
10950 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
10951
10952         * metadata.h: More macros.
10953
10954         * tokentype.h: New file.
10955
10956 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
10957
10958         * assembly.c: added a consistency check and initialize
10959         some structures with g_new0().
10960         * metadata.c: fixed a couple more bugs in table size computation
10961         and add other checks for out-of bound access to metadata.
10962
10963 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
10964
10965         * metatada.c: fix bugs computing table sizes. Spew a
10966         warning when index in string heap is out of bounds.
10967
10968 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
10969
10970         * metadata.h: Add a couple of macros to manipulate tokens. 
10971
10972 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
10973
10974         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
10975         cli_section_tables).
10976
10977 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
10978
10979         * metadata.c (mono_metadata_user_string): New function, provides
10980         access to the UserString heap. 
10981
10982 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
10983
10984         * metadata.c: Add inline documentation.
10985
10986 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
10987
10988         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
10989         files. 
10990
10991 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
10992
10993         * typeattr.h: New file, TypeAttribute flags. 
10994
10995 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
10996
10997         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
10998         mono_assembly_ensure_section): Section loading code.
10999         (load_section_tables): Load the sections.
11000
11001         * mono/metadata/metadata.c (mono_metadata_locate_token,
11002         mono_metadata_locate): Functions to locate the information
11003         definition given a token or a table and an index.
11004         (mono_metadata_compute_table_bases): New.
11005         (compute_size): New function to compute the sizes of the various
11006         tables.
11007
11008         * mono/metadata/metadata.h: Finish listing the different index
11009         types. 
11010
11011         * mono/metadata/pedump.c: Improve to dump new information.
11012
11013 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
11014
11015         * mono/metadata/metadata.c: Entered all the tables matching
11016         Beta2. 
11017
11018         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
11019