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