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