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