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