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