176bd3e3acf71be2d4a6080a08d663f34d74be69
[mono.git] / mono / metadata / ChangeLog
1 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
2
3         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
4         attempting to marshal the delegate_trampoline as the method_addr.
5         This patch has a static hashtable of marshalled delegates so that 
6         we can map delegate_trampoline addresses back to delegates.  This
7         allows a delegate passed to managed code to be passed back into native
8         code.  Fixes #67039
9
10 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11
12         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
13
14         * reflection.c (method_encode_code): Align method headers properly.
15         Fixes #66025.
16
17 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
18
19         * marshal.c: In the runtime invoke wrapper, reset the abort
20         exception if it is cached. This avoids the automatic rethrowal of 
21         the exception after the catch of the wrapper. Also check for pending
22         interruptions before calling the managed method. This is done using
23         the new method emit_thread_force_interrupt_checkpoint, since the
24         normal checkpoint method is ignored when running the invoke wrapper.
25         * object.c: If the abort exception is rethrown, set the abort_exc
26         field of the thread, so it will be rethrown aftere every catch.
27         * threadpool.c: Only run an interruption checkpoint if what has been
28         requested is a stop of the thread (aborts will be ignored).
29         * threads.c: By default, a thread will now never be interrumped while
30         running the runtime invoke wrapper (this ensures that runtime_invoke
31         will always return to the caller if an exception pointer is provided).
32         There is a new special method mono_thread_force_interruption_checkpoint()
33         to force an interruption checkpoint even if running a protected
34         wrapper, which is used by the same runtime invoke wrapper to do a check
35         at a safe point.
36
37 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
38
39         * object.c, object-internals.h: Implemented mono_release_type_locks,
40         which releases the cctor locks held by a thread.
41         * threads.c, threads.h: In thread_cleanup, release cctor locks held
42         by a thread. Added mono_thread_exit() method to be used to safely stop
43         a thread.
44
45 2004-09-28  Raja R Harinath  <rharinath@novell.com>
46
47         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
48         Move null check before dereference.  Avoid indexing beyond the end
49         of the 'modules' array.
50
51 2004-09-28  Raja R Harinath  <rharinath@novell.com>
52
53         * metadata-internals.h (MonoImage): Add module_count field.
54         * image.c (load_modules): Set image->module_count.
55         (mono_image_load_file_for_image): Use image->module_count.
56         * reflection.c (mono_image_load_module): Append to image->modules array 
57         of dynamic assembly.
58         (mono_module_get_object): Fix loop to actually increment index.
59         Use image->module_count.
60         * assembly.c (mono_assembly_load_references): Use image->module_count.
61         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
62         Likewise.
63
64 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
65
66         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
67         Avoid assert on generic types.
68
69 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
70
71         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
72
73         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
74
75         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
76         function to convert a MarshalSpec structure to its managed counterpart.
77
78         * reflection.c: Fix warnings.
79         
80         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
81         field.
82
83         * icall.c (mono_create_icall_signature): Fix build.
84
85 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
86
87         * icall.c: Add MakePointType icall.
88
89         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
90         warnings.
91
92 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
93
94         * threadpool.c: reuse allocated slots in the queue.
95
96 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
97
98         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
99
100         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
101
102         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
103         previous change.
104
105         * tabledefs.h: Add constants for pinvoke attributes BestFit and
106         ThrowOnUnmappableChar.
107
108         * icall.c (ves_icall_Type_GetPacking): New icall.
109
110 2004-09-24  Martin Baulig  <martin@ximian.com>
111
112         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
113
114 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
115
116         * appdomain.c:
117         (mono_domain_set): allow setting a domain that is being unloaded.
118         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
119         being unloaded.
120
121 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
122
123         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
124         the GetCustomAttributes icall.
125
126 2004-09-23  Martin Baulig  <martin@ximian.com>
127
128         * object-internals.h (MonoReflectionGenericParam): Replaced
129         'has_ctor_constraint', `has_reference_type' and `has_value_type'
130         with `guint32 attrs'.
131
132 2004-09-23  Martin Baulig  <martin@ximian.com>
133
134         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
135
136 2004-09-23  Martin Baulig  <martin@ximian.com>
137
138         * object-internals.h (GenericParameterAttributes): New enum.
139
140 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
141
142         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
143         
144         * class.c (init_events): Fill out event->other field.
145
146         * class.c: Fix warnings.
147
148         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
149
150 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
151
152         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
153         walk which doesn't supply the IL offset.
154
155 2004-09-22  Martin Baulig  <martin@ximian.com>
156
157         * reflection.c (mono_reflection_setup_internal_class): If we're
158         System.ValueType, System.Object or System.Enum, set
159         `klass->instance_size' and create the vtable.
160         (mono_reflection_create_internal_class): If we're an enum type,
161         get the base class from our current corlib.
162
163 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
164
165         * reflection.h (MonoResolveTokenError): New type.
166
167         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
168         icall.
169
170         * icall.c: Add an 'error' argument to the ResolveToken icalls.
171
172 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
173
174         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
175         Support also calling constructors, but only for already allocated objects.
176
177 2004-09-17  Geoff Norton <gnorton@customerdna.com>
178
179         * reflection.c (type_get_qualified_name): If the klass is null
180         return the typename to avoid a NullRefEx.
181         (encode_cattr_value): Get the qualified name of the boxed type,
182         not the underlying enumtype.  Fixes #62984.
183
184 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
185
186         * marshal.c: Fix problems with previous checkin.
187
188 2004-09-21    <vargaz@freemail.hu>
189
190         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
191         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
192
193         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
194
195 2004-09-21  Geoff Norton <gnorton@customerdna.com>
196
197         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
198         should only return a type for pointers, arrays, and passbyref types.
199         Fixes bug #63841.
200
201 2004-09-21  Martin Baulig  <martin@ximian.com>
202
203         * domain.c (mono_debugger_check_runtime_version): New public
204         function.
205
206         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
207
208 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
209
210         * reflection.c: Added missing sort to the declarative security 
211         attributes table. MS implementation stops seeing the attributes if the
212         token number regress in the table (as shown by ildasm and permview).
213
214 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
215
216         * object-internals.h (MonoReflectionModule): Add 'token' field.
217         
218         * reflection.c (mono_reflection_get_token): Add support for Module
219         and Assembly.
220         (mono_module_get_object): Set 'token' field.
221         (mono_module_file_get_object): Set 'token' field.
222
223         * icall.c: Add new Assembly and Module icalls.
224
225         * appdomain.c: Bump corlib version.
226
227 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
228
229         * loader.h loader.c class.h class.c: Add helper functions for obtaining
230         tokens of metadata objects.
231
232         * reflection.h reflection.c (mono_reflection_get_token): New function
233         to obtain the token of a metadata object.
234
235         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
236
237 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
238
239         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
240         
241         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
242
243 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
244
245         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
246         * object-internals.h: Added 3 MonoArray* members to MonoReflection
247         AssemblyBuilder to access the permissions set in the class lib.
248         * reflection.c: Added security attributes encoding step in 
249         mono_image_build_metadata.
250         * tabledefs.h: Added new security actions defined in 2.0:
251         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
252
253 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
254
255         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
256         macro parameter.
257
258 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
259  
260         * locales.c: nullify the ICU_collator member of CompareInfo when it is
261           finalized. There where random SIGSEVs at program termination, when
262           an object being finalized was trying to do a string comparison and
263           the current culture was already finalized.
264  
265 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
266
267         * threads.c: call thread_cleanup before finishing the thread if we get
268         there.
269
270 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
271
272         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
273         assemblies from the parent. Fixes #65665.
274
275 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
276
277         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
278         modifiers.
279
280 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
281
282         * reflection.h: add prototype for mono_get_dbnull_object
283         * reflection.c: add prototypes for get_default_param_value_blobs 
284         and mono_get_object_from_blob for fussier compilers
285
286 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
287  
288         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
289         false deadlock checks in class initialization.
290  
291 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
292
293         * image.c (mono_image_addref): Fix comment.
294
295         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
296         possible.
297
298 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
299
300         * reflection.c (mono_param_get_objects): Modified to return
301         ParameterInfo.DefaultValue object.
302
303         (get_default_param_value_blobs):
304         (mono_get_object_from_blob):
305         (mono_get_dbnull_object): New helper routines. 
306
307         * object.c (mono_get_constant_value_from_blob): New helper routine
308         carved out from get_default_field_value ()
309
310         * object-internals.h (mono_get_constant_value_from_blob): Added
311         function declaration.
312
313 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
314
315         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
316         referenced assemblies. Fixes #62135.
317
318         * exception.h exception.c (mono_get_exception_file_not_found2): New
319         helper function.
320
321 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
322
323         * class.h class.c: Add mono_type_get_underlying_type ().
324
325 2004-09-09  Geoff Norton <gnorton@customerndna.com>
326
327         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
328         Fix GetTypes() to support dynamically created assemblies.
329
330 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
331
332         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
333         
334         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
335         previous patch.
336
337         * reflection.h reflection.c loader.c: Allow dynamic construction of
338         pinvoke methods. Fixes #65571.
339         
340         * reflection.c (mono_reflection_get_type): Revert previous change since
341         it causes regressions.
342
343 2004-09-08  Martin Baulig  <martin@ximian.com>
344
345         * class.c (class_compute_field_layout): Don't call
346         mono_class_layout_fields() for open generic instances.
347
348 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
349         * threads.c appdomain.c: fix typo in GC macro
350
351 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
352
353         * threads.c: don't call mono_thread_detach() in start_wrapper(),
354         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
355
356 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
357
358         * image.c (mono_image_close): Applied patch from 
359         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
360         assembly is loaded multiple times from data.
361         
362         * image.c (mono_image_open): Fix warning.
363
364 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
365
366         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
367         once. Fixes #58334.
368         
369         * reflection.c (mono_reflection_create_runtime_class): Initialize
370         klass->nested_classes. Fixes #61224.
371
372 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
373
374         * threads.c: sched_yield() on exit, to allow threads to quit.
375
376 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
377
378         * object.c (mono_unhandled_exception): Remove leftover debug code.
379
380 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
381
382         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
383
384 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
385
386         * marshal.c (emit_marshal_array): Really null terminate string arrays.
387         
388         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
389
390 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
391
392         * marshal.c (emit_marshal_array): Null terminate string arrays.
393         
394         * marshal.c (raise_auto_layout_exception): Fix warning.
395
396         * reflection.c (mono_param_get_objects): Initialize the default value
397         with DBNull.Value, not null. Fixes #62123.
398
399 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
400
401         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
402         throw an exception with a cute explanation.
403
404 2004-09-06  Dick Porter  <dick@ximian.com>
405
406         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
407         Close the new process's thread handle, as we don't use it.  The
408         handle stays around forever otherwise.
409
410 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
411
412         * object.c (arith_overflow): Fix warning.
413
414         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
415         calling conventions in method refs. Fixes #65352.
416
417         * reflection.c: Fix warnings.
418
419 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
420
421         * icall.c: Add a new icall for Array.Clear
422
423 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
424
425         * object.c: When allocating an array, we have to throw
426         an overflow exception if any of the lengths are < 0.
427
428 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
429
430         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
431         properly. Also move implementation of string array marshalling to 
432         managed code. Fixes #42316.
433
434 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
435
436         * assembly.c: provide more information when loading an assembly fails.
437
438 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
439
440         * filewatcher.c: don't expect the development fam package to be
441         installed.
442
443 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
444
445         * marshal.c: Make a copy of the signature cookie since it will be
446         freed by the caller.
447         
448         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
449
450         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
451
452         * metadata.c (mono_metadata_free_marshal_spec): New function to free
453         marshal specs.
454
455         * marshal.c: More refactoring.
456         
457         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
458         smaller functions.
459
460 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
461
462         * object.c: In mono_message_invoke, fill the output parameter array after
463           calling the managed method (it was done before the call). This fixes
464           bug #59299.
465
466 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
467
468         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
469         as well.
470
471 2004-09-02  Martin Baulig  <martin@ximian.com>
472
473         * class.c (mono_class_instance_size): Don't allow generic type
474         definitions or open generic instances.
475         (mono_class_array_element_size): If we're a value type, call
476         mono_class_instance_size() on the original class.
477
478         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
479         handle generic instances.
480
481         * mono-debug-debugger.c (write_type): Handle generic instances
482         like classes.
483
484 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
485
486         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
487         the allocation request fails. Fixes #65089.
488
489         * object.c (mono_runtime_free_method): Do not call mono_free_method.
490         
491         * object.c (mono_runtime_free_method): New function to free a dynamic
492         method.
493
494         * marshal.c (mono_delegate_free_ftnptr): New function to free the
495         delegate trampoline.
496
497         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
498         with hasthis as dynamic,
499
500         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
501
502         * domain.c (mono_jit_info_table_remove): New function to remove an
503         entry from the jit info table.
504
505         * class-internals.h (MonoMethod): Add 'dynamic' field.
506
507         * loader.c: Fix warnings.
508
509 2004-09-01  Martin Baulig  <martin@ximian.com>
510
511         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
512         instead of mono_debugger_lock() because the latter one is a no-op
513         unless running in the debugger.
514
515 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
516
517         * class.c (class_compute_field_layout): Classes with auto-layout or
518         reference fields are not blittable.
519         
520 2004-09-01  Dick Porter  <dick@ximian.com>
521
522         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
523         mono_image_get_filename() to get the assembly location.
524
525         * icall.c:
526         * metadata.h: Fix compile warnings
527
528 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
529
530         * class.c (class_compute_field_layout): System.Object is blittable.
531
532         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
533         as in/out. Fixes #59909.
534
535 2004-09-01  Martin Baulig  <martin@ximian.com>
536
537         * metadata.h (MONO_TYPE_ISREFERENCE): Call
538         mono_metadata_generic_inst_is_valuetype() if we're a generic
539         instance to check whether our underlying type is a reference type.
540
541 2004-09-01  Martin Baulig  <martin@ximian.com>
542
543         * metadata.c (mono_type_size): If we're a generic instance, call
544         mono_class_value_size() for value types.
545
546 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
547
548         * marshal.c: Implement more custom marshalling functionality. Fixes
549         #64915.
550
551 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
552
553         * mono-debug.c, debug-mono-symfile.c: add some locking love.
554
555 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
556
557         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
558
559         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
560
561         * icall.c: Fix some warnings.
562
563         * threads.c (abort_appdomain_thread): Fix unref errors.
564         (mono_thread_current): Fix THREAD_DEBUG define.
565
566 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
567
568         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
569
570         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
571
572 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
573
574         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
575         string arrays.
576
577 2004-08-28  Martin Baulig  <martin@ximian.com>
578
579         * metadata.c
580         (mono_metadata_generic_inst_is_valuetype): New public function.
581
582         * metadata.h (MONO_TYPE_ISSTRUCT): Call
583         mono_metadata_generic_inst_is_valuetype() if we're a generic
584         instance to check whether our underlying type is a valuetype.
585
586 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
587
588         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
589         #63768.
590
591 2004-08-25  Martin Baulig  <martin@ximian.com>
592
593         * loader.c (mono_get_method_from_token): Abstract methods can also
594         be generic and thus have type parameters.
595
596         * metadata-internals.h
597         (MonoDynamicImage): Added `GPtrArray *gen_params'.
598
599         * reflection.c (mono_image_get_generic_param_info): Don't create a
600         metadata row, just add an entry to the `gen_params' array.
601         (build_compressed_metadata): Sort the `gen_params' array and then
602         actually create the metadata.
603
604 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
605
606         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
607
608 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
609
610         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
611
612 2004-08-24  Martin Baulig  <martin@ximian.com>
613
614         * class.cs (mono_class_is_subclass_of): Like an interface, a
615         generic instance also derives from System.Object.
616
617 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
618
619         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
620         custom modifiers to be in any order. Fixes #61990.
621
622 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
623
624         * object.c: Register mono_object_new_fast icall.
625         
626         * object.c (mono_class_get_allocation_ftn): Return to calling
627         mono_object_new_fast, since it seems faster to compute the object 
628         size in unmanaged code than passing it as a parameter.
629
630         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
631
632         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
633         this function with Boehm as the oom handler, so we don't have to check
634         the result of GC_malloc.
635
636         * object.c: Remove checks for oom.
637
638         * object.h object.c (mono_class_get_allocation_ftn): New function to
639         return the icall which can be used to allocate an instance of a given
640         class. 
641
642         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
643
644         * class-internals.h: Add 'enabled' field.
645
646 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
647
648         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
649
650 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
651         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
652         value 0x0010.
653
654 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
655
656         * appdomain.c: use the Tls function for appdomain too,
657         at Zoltan's request. Actually return in mono_context_get
658
659         * appdomain.c, profiler.c, threads.c: use __thread
660
661 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
662
663         * appdomain.c threads.c: Call GC_CreateThread on windows.
664
665         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
666         multiple libraries since this don't work on windows.
667
668 2004-08-18  Martin Baulig  <martin@ximian.com>
669
670         * class-internals.h
671         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
672         MonoMethodHeader.
673
674         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
675         MonoMethodNormal since we also need it for abstract and interface
676         methods.
677
678         * reflection.c
679         (build_compressed_metadata): Sort the GenericParam table.
680         (mono_image_create_token): Added `gboolean create_methodspec'
681         argument; this is false when generating a MethodImpl token.
682         (reflection_methodbuilder_to_mono_method): Abstract and interface
683         methods may also have generic parameters.
684
685 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
686
687         * appdomain.c: thread local alloc
688
689 2004-08-17  Martin Baulig  <martin@ximian.com>
690
691         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
692
693         * icall.c
694         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
695         argument.
696
697         * class.c (mono_type_get_full_name): New public function.
698         (mono_type_get_name): Don't include the type arguments.
699
700 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
701
702         * Makefile.am: Build static versions of libmetadata and libmonoruntime
703         for inclusion into the mono executable.
704
705 2004-08-16  Martin Baulig  <martin@ximian.com>
706
707         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
708         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
709
710 2004-08-14  Martin Baulig  <martin@ximian.com>
711
712         * class.c (dup_type): Also copy the `byref' field.
713
714 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
715
716         * reflection.c (create_dynamic_mono_image): Revert the last change 
717         since it breaks bootstrap.
718
719 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
720
721         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
722
723         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
724         not free them with g_free.
725
726 2004-08-11  Martin Baulig  <martin@ximian.com>
727
728         * reflection.c (mono_reflection_setup_internal_class): Also call
729         mono_class_setup_mono_type() if we already have a `tb->type.type'.
730
731 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
732
733         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
734         called during default (first) AppDomain creation. Keep track of
735         Evidence when loading assemblies.
736
737 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
738
739         * opcodes.c, opcodes.h: reduce runtime relocations.
740
741 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
742
743         * culture-info.h, locales.c: fixes and chages to sue the new
744         optimized format of the locale data.
745         * culture-info-tables.h: regenerated.
746
747 2004-08-06  Geoff Norton <gnorton@customerdna.com>
748         
749         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
750
751 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
752
753         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
754         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
755         * domain-internals.h: icall declaration.
756         * icall.c: icall registration.
757         * object-internals.h: New fields in MonoAssembly for CAS.
758
759 2004-08-05  Duncan Mak  <duncan@ximian.com>
760
761         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
762         CEE_LDELEM_ANY.
763
764 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
765
766         * reflection.c: fix to deal with object[] arrays in custom ctors
767         (bug #62550).
768
769 2004-08-05  Martin Baulig  <martin@ximian.com>
770
771         * class.c (mono_class_array_element_size): Added support for
772         generic instances and correctly handle "recursive" types.
773
774 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
775
776         * assembly.c: Fix warnings.
777
778 2004-08-04  Martin Baulig  <martin@ximian.com>
779
780         * class.c
781         (mono_type_get_name_recurse): Added `gboolean include_arity'
782         argument specifying whether or not we should include the generic
783         arity in the type name.
784         (_mono_type_get_name): New static function.
785         (mono_class_setup_vtable): If we're a generic instance, don't
786         include the generic arity in the names of explicit method
787         implementations.        
788
789 2004-08-03  Martin Baulig  <martin@ximian.com>
790
791         * class.c (mono_type_get_name_recurse): Enclose the generic type
792         arguments in `<', '>'.
793
794 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
795
796         * gc.c: make GC warning messages use the trace API, they are just
797         noise to most of the users.
798
799 2004-08-03  Martin Baulig  <martin@ximian.com>
800
801         * debug-mono-symfile.c (read_string): Correctly read the string.
802
803 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
804
805         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
806         
807         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
808         icalls.
809         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
810
811 2004-07-30  Martin Baulig  <martin@ximian.com>
812
813         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
814         Reflect latest symbol writer changes.   
815
816 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
817
818         * object.c: always create an object if null is passed
819         to Invoke() where a valuetype is expected.
820
821 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
822
823         * marshal.c (mono_marshal_init): make managed
824         signatures match native ones better for 64bits.
825
826 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
827
828         * appdomain.c: hack to build correctly the private bin path on windows.
829         Fixes bug #61991.
830
831 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
832
833         * assembly.c: Load mscorlib from the correct framework directory
834           (mono/<version>/mscorlib.dll).
835         * appdomain.h: Added prototypes for new functions.
836         * internals.h: Added some prototypes.
837         * domain.c: When initializing the runtime, get from the executable and
838           the configuration files the runtime version that the app supports.
839           Added support methods for reading app.exe.config. Added list of versions
840           supported by the JIT. Added two new methods: mono_init_from_assembly,
841           which initializes the runtime and determines the required version from
842           the provided exe file, and mono_init_version, which initializes
843           the runtime using the provided version.
844         * icall.c: Get machine.config from version-specific directory.
845         * reflection.c: When generating an image, embed the version number
846           of the current runtime.
847
848 2004-07-28  Dick Porter  <dick@ximian.com>
849
850         * socket-io.c
851         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
852         returned sockaddr size before creating the remote address object.
853         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
854         61608.
855
856 2004-07-28  Dick Porter  <dick@ximian.com>
857
858         * locales.c (string_invariant_compare_char): Fix invariant char
859         compares between upper and lower cases.  Fixes bug 61458.
860
861 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
862         
863         * marshal.c: actually cache stelem.ref wrappers.
864         
865 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
866
867         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
868         sections and remove the mono_cli_rva_map () function.
869
870 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
871
872         * debug-mono-symfile.c: fix one more endianess issue, from a patch
873         by Geoff Norton (<gnorton@customerdna.com>).
874
875 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
876
877         * class.c: fix class loads for pointer types (typeof(int) !=
878         typeof(int*)).
879
880 2004-07-27  Martin Baulig  <martin@ximian.com>
881
882         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
883         reading the debugging information from an external ".mdb" file.
884
885 2004-07-24  Martin Baulig  <martin@ximian.com>
886
887         * reflection.c (mono_image_get_type_info): Only write a class
888         layout entry if we actually have a size or a packing size.
889
890 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
891
892         * reflection.c (type_get_fully_qualified_name): 
893         insert cast to get type checking of ?: with non-gcc compilers
894
895 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
896
897         * rand.c: use g_getenv for both lookups of
898         MONO_EGD_SOCKET
899
900 2004-07-17  Martin Baulig  <martin@ximian.com>
901
902         * reflection.c (mono_reflection_bind_generic_method_parameters):
903         Set `gmethod->reflection_info'.
904
905 2004-07-17  Martin Baulig  <martin@ximian.com>
906
907         * class.c (mono_class_create_from_typedef): Insert the newly
908         created class into the hash table before computing the interfaces
909         since we could be called recursively.
910
911 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
912
913         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
914         function to implement stelem.ref in managed code
915         * class-internals.h, debug-helpers.c: a new wrapper type
916         for the above.
917
918 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
919
920         * gc.c: allow GC handles to work even when no GC is compiled in.
921         Fix part of bug #61134 (GetAddrOfPinnedObject).
922
923 2004-07-13  Peter Williams  <peter@newton.cx>
924  
925         * process.c (complete_path): Make sure we don't attempt to execute
926         directories.
927  
928 2004-07-12  Geoff Norton <gnorton@customerdna.com>
929
930         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
931           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
932           and will add/subtract the hour if needed
933
934 2004-07-12  Martin Baulig  <martin@ximian.com>
935
936         * reflection.c (mono_field_get_object): If we have
937         `field->generic_info', take the attributes from
938         `field->generic_info->generic_type'.    
939
940 2004-07-12  Martin Baulig  <martin@ximian.com>
941
942         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
943         This function must be called before initializing the runtime.
944         (mono_debug_init_1): New function; call this after initializing
945         the runtime, but before loading the assembly.  It tells the
946         debugger to load corlib and the builtin types.
947
948         * mono-debug-debugger.c: Did some larger changes in the debugging
949         code; support recursive class declarations, make sure we actually
950         add all classes.
951
952 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
953
954         * debug-helpers.c: undo my previous patch and fixed the real issue in
955         ../mini/exceptions-x86.c
956
957 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
958
959         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
960         when no HOME env. variable was set and a NullRef was thrown in a .cctor
961         called from other .cctors.
962
963 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
964
965         * loader.c: Removed the mono_loader_wine_init hack now that we are
966         doing a managed version of Windows.Forms.
967
968 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
969
970         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
971         threadpool.c, threads.c: remove static data from rootset.
972
973 2004-07-09  Dick Porter  <dick@ximian.com>
974
975         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
976         Don't do any more processing if the matched length was 0.  It was
977         increasing the size of the string before.  Fixes bug 61167.
978
979 2004-07-09  Dick Porter  <dick@ximian.com>
980
981         * socket-io.h:
982         * socket-io.c
983         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
984         Add support for SO_PEERCRED if its available.
985
986 2004-07-09  Peter Bartok <pbartok@novell.com>
987         * loader.c: winelib.exe.so error message is now only displayed if
988         MONO_DEBUG is set. To help us avoid questions when people are trying
989         out the new Managed.Windows.Forms.
990
991 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
992
993         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
994         for isinst and castclass wrappers.
995
996         * class-internals.h icall.c: Move registration and lookup of JIT icalls
997         to libmetadata from the JIT, so they could be used by the marshalling
998         code and the interpreter.
999
1000         * marshal.c: Register marshalling related JIT icalls here instead of
1001         in mini.c. Use CEE_MONO_ICALL instead of the family of 
1002         CEE_MONO_PROC<x> opcodes to call marshalling functions.
1003
1004         * metadata.h: Remove unneeded marshalling conversions.
1005
1006         * opcodes.c: Update for new opcodes.
1007         
1008 2004-07-08  Martin Baulig  <martin@ximian.com>
1009
1010         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
1011         (mono_debug_get_domain_data): Make this function static.
1012
1013 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
1014
1015         * gc.c, object.h: add nice GC handle API for embedders.
1016
1017 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
1018
1019         * reflection.c: more changes for the new api
1020
1021         * object.c: When we reflect on a field w/ a constant value, it
1022         will not have a memory location, so we must access metadata. Also,
1023         allow easier reading of strings so that we can read them from
1024         the constant data.
1025
1026         * class.c (mono_class_layout_fields): no need for literal fields here.
1027
1028         * class-internals.h: api changes for const fields
1029
1030         * icall.c (ves_icall_get_enum_info): use new apis for const fields
1031
1032 2004-07-06  Martin Baulig  <martin@ximian.com>
1033
1034         * mono-debug.h: Increment version number to 44.
1035
1036         * mono-debug.c (mono_debug_add_wrapper): The second argument is
1037         now a gpointer, rewrote this whole method.
1038
1039         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
1040         function.  Add information about the wrapper in a new "misc table".
1041
1042         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
1043         for the new misc table.
1044
1045 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
1046
1047         * metadata-internals.h image.c: Add a cache for helper signatures.
1048
1049         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
1050
1051 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
1052
1053         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
1054         delegates from a delegate. Fixes #61033.
1055         
1056         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
1057         marshalling of stringbuilder arrays. Fixes #59900.
1058
1059 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
1060
1061         * icall.c: Add EnumBuilder:setup_enum_type icall.
1062
1063 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
1064
1065         * icall.c: Added a new icall for the property version of
1066         OffsetOfStringData.
1067
1068 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
1069
1070         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
1071         it has a constant size across platforms.
1072
1073         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
1074         stack trace.
1075
1076 2004-06-29  Martin Baulig  <martin@ximian.com>
1077
1078         * mono-debug.c (mono_debug_add_method): Protect the whole function
1079         in mono_debugger_lock(), not just parts of it.
1080
1081 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
1082
1083         * reflection.c: make sure padding bytes in heaps are zeroed.
1084
1085 2004-06-24  David Waite  <mass@akuma.org>
1086
1087         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
1088         image.c, loader.c, locales.c, marshal.c, metadata.c,
1089         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
1090         string-icalls.c, threads.c: change to C90-style comments from C99 /
1091         C++ -style
1092
1093 2004-06-24  Dick Porter  <dick@ximian.com>
1094
1095         * threads.c
1096         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
1097         return createdNew.  Fixes bug 60412.
1098
1099         * threads-types.h: 
1100         * icall.c: Add createdNew parameter to CreateMutex icall
1101
1102 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
1103
1104         * reflection.c, object-internals.h: save default value in params.
1105
1106 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1107
1108         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
1109         no need to build a new path combining that with the application base.
1110         Fixes bug #60442.
1111
1112 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
1113
1114         * reflection.c: fixed minor standard compliance issues.
1115
1116 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
1117
1118         * reflection.c: fixed issue with encoding some custom attributes
1119         (arrays in properties and fields, bug #60411).
1120
1121 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1122
1123         * reflection.c: fix start address when copying the public key token.
1124
1125 2004-06-23  Martin Baulig  <martin@ximian.com>
1126
1127         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
1128         the `exc' object in a static object to put it into the GC's root set.
1129
1130 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
1131
1132         * reflection.c: make mono_reflection_setup_internal_class ()
1133         callable a second time to setup a new parent class.
1134
1135 2004-06-23  Dick Porter  <dick@ximian.com>
1136
1137         * threads.c: Check for WAIT_IO_COMPLETION return values.
1138
1139 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
1140
1141         * appdomain.c: Removed the g_free on the public key token. Now copy 
1142         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
1143         * assembly.c: Added public key token string value when loading 
1144         assemblies. Fix bug #60439.
1145         * icall.c: Added missing informations (like public key) in 
1146         GetReferencedAssemblies. Fix #60519.
1147         * image.h: Changed definition for public key token from const char*
1148         public_tok_value to guchar public_key_token [17];
1149         * reflection.c: Updated for changes to public key token.
1150
1151 2004-06-22  Lluis Sanchez Gual
1152
1153         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
1154         for the field in base classes.
1155
1156 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
1157
1158         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
1159         mark headers as not supported, they are installed only for use by the
1160         debugger.
1161
1162 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
1163
1164         * *.c, *.h: avoid namespace pollution in public headers.
1165
1166 2004-06-21  Martin Baulig  <martin@ximian.com>
1167
1168         * exception.c (mono_get_exception_security): It's in
1169         "System.Security", not in "System".
1170
1171         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
1172         the exception classes.
1173
1174 2004-06-21  Martin Baulig  <martin@ximian.com>
1175
1176         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
1177         Protect the exception object from being finalized.
1178
1179 2004-06-21  Martin Baulig  <martin@ximian.com>
1180
1181         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
1182         public function.
1183
1184 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
1185
1186         * reflection.c: Load the assembly in mono_reflection_type_from_name,
1187         if it was not loaded before. Fix parts of #60439.
1188
1189 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
1190
1191         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
1192         code that was broken since Ben's change: wrappers are now
1193         dependent on the method signature only again.
1194
1195 2004-06-21  Martin Baulig  <martin@ximian.com>
1196
1197         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
1198         added interface support.
1199
1200 2004-06-21  Martin Baulig  <martin@ximian.com>
1201
1202         * class.c (mono_vtable_get_static_field_data): New public method.
1203
1204 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1205
1206         * filewatcher.c : Windows build fix to be compliant with API changes.
1207
1208 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
1209
1210         * class.h, class.c: more accessors.
1211         * metadata.h, metadata.c: prepare for hiding MonoType and
1212         MonoMethodSignature: people should use the accessors from now on
1213         outside of the tree.
1214
1215 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
1216
1217         * *.c, *.h: more API cleanups.
1218
1219 2004-06-18  Jackson Harper  <jackson@ximian.com>
1220
1221         * assembly.c: Trace loading assemblies.
1222         * loader.c: Trace loading native libraries.
1223         * mono-config.c: Trace loading config files.
1224         
1225 2004-06-18  Dick Porter  <dick@ximian.com>
1226
1227         * locales.c: Tell ICU the lengths of strings, it can cope with
1228         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
1229
1230 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
1231
1232         * image.c: swapped name/filename;
1233
1234 2004-06-18  Martin Baulig  <martin@ximian.com>
1235
1236         * mono-debug-debugger.c (write_class): Write the parent class at
1237         the end of the header.
1238
1239 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
1240
1241         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
1242
1243 2004-06-17  Raja R Harinath  <rharinath@novell.com>
1244
1245         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
1246         (bundle_obj): New conditional define.
1247         (BUILT_SOURCES): Remove.
1248         ($(bundle_srcs)): Make parallel-make safe.
1249         (libmonoruntime_la_LIBADD): Make unconditional.
1250         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
1251         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
1252
1253 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
1254
1255         * culture-info-tables.h: It was inconsistent with the latest
1256           supp info files.
1257
1258 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
1259
1260         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
1261         be loaded.
1262
1263         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
1264         with gcc 2.95.
1265
1266 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
1267
1268         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
1269         cleaned up public header threads.h.
1270
1271 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
1272
1273         * Makefile.am, *.c, *.h: more API cleanups.
1274
1275 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
1276
1277         * Makefile.am: removed monosn from compilation.
1278         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
1279         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
1280         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
1281         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
1282         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
1283         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
1284
1285 2004-06-15  Jackson Harper  <jackson@ximian.com>
1286
1287         * assembly.c: Make locales lower case when searching the GAC for
1288         assemblies. gacutil will always make locales lowercase when
1289         installing so this effectively makes them case insensitive.
1290         
1291 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
1292
1293         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
1294         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
1295           parameter which allows to choose whether the wait can be interrupted or 
1296           not. Also added the method mono_monitor_enter(), which locks the monitor
1297           using an infinite wait and without allowing interruption.
1298           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
1299           interrupted.
1300         * object.h: Added new fields in MonoThread. suspend_event holds the event
1301           used to susped/resume the thread. synch_lock is the lock object to use for
1302           modifying the thread state.
1303         * threads.c: Use the new synch_lock object for locking, instead of "this",
1304           which can generate deadlocks.
1305           Moved thread state change in Thread.Sleep and Thread.Join from managed
1306           to unmanaged code. This avoids a deadlock when the thread was suspended
1307           just after acquiring the thread lock.
1308           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
1309           Implemented Thread.Suspend using an event instead of ThreadSuspend,
1310           which is not fully implemented in the io-layer.
1311         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
1312
1313 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
1314
1315         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
1316         threads-types.h: more API cleanups.
1317
1318 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
1319
1320         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
1321         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
1322         threadpool.c, threads.c: first pass at the exported API cleanup.
1323
1324 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
1325
1326         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
1327
1328 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1329
1330         * icall.c: added internalGetHome.
1331
1332 2004-06-14  Dick Porter  <dick@ximian.com>
1333
1334         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
1335         possible to return successfully when '.' or '..' were the only
1336         entries in a directory, but were skipped.  The MonoIOStat was not
1337         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
1338         Fixes bug 59574.
1339
1340 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1341
1342         * reflection.c: make binaries run on .Net 1.1 by default.
1343
1344 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
1345
1346         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
1347
1348 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
1349
1350         * marshal.c: keep track of struct size with explicit layout
1351         (bug #59979).
1352
1353 2004-06-12  Martin Baulig  <martin@ximian.com>
1354
1355         * mono-debug-debugger.c: Comment out a debugging g_message().
1356
1357 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
1358
1359         * reflection.c, reflection.h: do not free custom attrs that are cached.
1360         * icall.c: use braces to make code clearer.
1361
1362 2004-06-11  Martin Baulig  <martin@ximian.com>
1363
1364         * class.h (MonoInflatedField): New type.
1365         (MonoClassField): Replaced `MonoType *generic_type' with
1366         `MonoInflatedField *generic_info'.
1367
1368         * icall.c
1369         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
1370
1371 2004-06-11  Martin Baulig  <martin@ximian.com>
1372
1373         * reflection.c (mono_image_create_method_token): Correctly encode
1374         varargs methods.
1375
1376 2004-06-11  Martin Baulig  <martin@ximian.com>
1377
1378         * metadata.c (mono_metadata_parse_method_signature): When parsing
1379         a MethodDef which has VarArgs, also set sentinelpos if we don't
1380         have any parameters.
1381
1382 2004-06-11  Martin Baulig  <martin@ximian.com>
1383
1384         * verify.c (mono_method_verify): In CEE_CALL, use
1385         mono_method_get_signature() to get the method's signature, unless
1386         we're a PInvoke method.
1387
1388 2004-06-10  Jackson Harper  <jackson@ximian.com>
1389
1390         * assembly.c: Use <path>/lib/mono/gac for the extra paths
1391         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
1392         logical name as the supplied path is just a prefix to the gac not
1393         the direct path to it.
1394         
1395 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
1396
1397         * reflection.c: make the token for a created method match
1398         the token of the MethodBuilder it was created from
1399         (IKVM requires this behaviour now).
1400
1401 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
1402
1403         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
1404         reflection.c, socket-io.c: leak fixes.
1405
1406 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
1407
1408         * icall.c: handle sentinel pos in vararg methods in position different
1409         from 0.
1410
1411 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1412
1413         * culture-info-tables.h: freshly generated.
1414
1415 2004-06-09  Martin Baulig  <martin@ximian.com>
1416
1417         * loader.c (mono_get_method_constrained): Call `mono_class_init
1418         (constrained_class)'.   
1419
1420 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
1421
1422         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
1423         any methods. Fixes #59629.
1424
1425 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1426
1427         * culture-info-tables.h: reflecting locale-builder updates.
1428
1429 2004-06-08  Dick Porter  <dick@ximian.com>
1430
1431         * object.h:
1432         * locales.c: Fixed compile warnings, including a real bug in
1433         CompareInfo_internal_compare.
1434         
1435 2004-06-08  Dick Porter  <dick@ximian.com>
1436
1437         * locales.c
1438         (ves_icall_System_Globalization_CompareInfo_internal_index):
1439         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
1440         Double-check the resuls of usearches, because ICU currently
1441         ignores most of the collator settings here.  Fixes bug 59720.
1442         
1443 2004-06-08  Dick Porter  <dick@ximian.com>
1444
1445         * locales.c
1446         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
1447         Fix memory leak and segfault-causing typo.  No idea how this one
1448         lasted so long without being noticed.
1449
1450 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
1451
1452         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
1453         any methods. Fixes #59629.
1454
1455 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1456
1457         * assembly.c:
1458         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
1459         own the critical section before). Removed dead code (that's done
1460         in the preload hook).
1461
1462         (mono_assembly_load_with_partial_name): call the preload hook.
1463
1464 2004-06-08  Martin Baulig  <martin@ximian.com>
1465
1466         * metadata.c (mono_metadata_signature_alloc): Default
1467         `sentinelpos' to -1.
1468
1469         * reflection.c (mono_image_get_array_token): Likewise.
1470
1471 2004-06-08  Martin Baulig  <martin@ximian.com>
1472
1473         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
1474
1475         * metadata.c (mono_metadata_parse_method_signature): When parsing
1476         a MethodDef which has VarArgs, set sentinelpos.
1477
1478         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
1479         `gint16' since we're using -1 for non-varargs methods.
1480
1481         * reflection.c
1482         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
1483         (method_encode_signature): Added varargs support.
1484         (method_builder_encode_signature): Likewise.
1485         (mono_image_get_varargs_method_token): New static method.
1486         (mono_image_create_method_token): New public method; this is
1487         called via an icall instead of mono_image_create_token() when
1488         calling a varargs method.       
1489
1490 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
1491
1492         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
1493
1494 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1495
1496         * culture-info-tables.h : Reflecting the latest locale-builder that
1497           fixed empty array representation ({} to {0}).
1498
1499 2004-06-07  Jackson Harper  <jackson@ximian.com>
1500
1501         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
1502         looking up extra gac paths. This allows MONO_GAC_PATH to act
1503         exactly like a prefix.
1504         
1505 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
1506
1507         * reflection.c (mono_reflection_type_from_name): Make a copy of the
1508         type name before modifying it. Fixes #59405.
1509
1510 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1511
1512         * culture-info.h: added fields for "all datetime patterns".
1513         * locales.c: (  ves_icall_System_Globalization_CultureInfo
1514           _construct_datetime_format ()): fill xxx_patterns fields.
1515         * object.h: added fields for "all datetime patterns" to
1516           MonoDateTimeFormatInfo.
1517         * culture-info-tables.h: reflecting locale-builder updates.
1518
1519 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
1520
1521         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
1522         the event has no add and remove methods. Fixes #59629.
1523
1524 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
1525
1526         * object.c: Fixed possible integer overflow when allocating large
1527         strings.
1528
1529 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
1530
1531         * culture-info-tables.h: reflecting locale-builder updates.
1532
1533 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
1534
1535         * culture-info-tables.h: reflecting locale-builder updates.
1536
1537 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
1538
1539         * culture-info-tables.h: reflecting locale-builder updates.
1540
1541 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
1542
1543         * threads.c: Made Thread.Sleep abortable.
1544
1545 2004-06-02  Martin Baulig  <martin@ximian.com>
1546
1547         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
1548
1549         * debug-mono-symfile.h: Bumped symbol file version number to 37.
1550
1551 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
1552
1553         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
1554
1555 2004-05-30  Jackson Harper  <jackson@ximian.com>
1556
1557         * reflection.c: Do not hardcode assembly versions or public key
1558         tokens anymore. All of this except the corlib section was dead
1559         code anyways.
1560         
1561 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
1562
1563         * object.c (mono_runtime_invoke_array): Automatically create boxed
1564         objects for byref valuetypes if needed. Fixes #59300.
1565         
1566         * object.c (mono_method_return_message_restore): Handle 
1567         MONO_TYPE_OBJECT as well.
1568
1569 2004-05-28  Jackson Harper  <jackson@ximian.com>
1570
1571         * reflection.c: The modified type encoding was causing build
1572         problems. Reverted for now.
1573         
1574 2004-05-28  Jackson Harper  <jackson@ximian.com>
1575
1576         * reflection.c/h: Take an assembly ref so that we dont create
1577         fully qualified names when encoding types in the same assembly as
1578         the custom attribute being emitted.
1579         * appdomain.c: Increment version number.
1580         
1581 2004-05-26  Duncan Mak  <duncan@ximian.com>
1582
1583         * icall.c
1584         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
1585         Set the full version number (major, minor, build, revision).
1586
1587 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
1588
1589         * marshal.c (emit_struct_conv): increment src/dst after blit
1590         (mono_marshal_get_managed_wrapper,
1591         mono_marshal_get_native_wrapper): make sure we have marshalling
1592         info before marshalling params (info computation affects
1593         blittable)
1594
1595         * class.c (class_compute_field_layout): correctly deal with
1596         blittable
1597         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
1598         value types (as per what windows dows by default)
1599         (mono_class_setup_mono_type): System.ValueType is blittable
1600         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
1601         blittable
1602
1603         * marshal.c (mono_marshal_load_type_info): flag types  as
1604         non-blittable if the native layout doesn't match the managed
1605         layout
1606
1607 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1608
1609         * appdomain.c: don't add stuff in the private search path that is
1610         above the application base. If application base is not set, there's
1611         no private search path.
1612
1613 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
1614
1615         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
1616         byref struct arguments in native->managed marshalling.
1617
1618 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
1619
1620         * marshal.c (mono_marshal_get_runtime_invoke): correctly
1621         cache methods using signature (special case for methods
1622         that are value type or string class)
1623         
1624         * image.c (mono_image_close): clean up allocated GSList's
1625         in runtime_invoke_cache.
1626
1627 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1628
1629         * mono-config.c: set the correct path for mono_cfg_dir on windows when
1630         there's no MONO_CFG_DIR environment variable defined.
1631
1632 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1633
1634         * threads.c: windows version must be >= 0x0500 to include OpenThread.
1635
1636 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
1637
1638         * threadpool.c: Really wait for 500ms after the async call, even if the wait
1639           is interrumped.
1640         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
1641           before waiting for it, and call CloseHandle after the wait to unref it.
1642           This will make sure that handles are not disposed too early.
1643
1644 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1645
1646         * appdomain.c:
1647         * appdomain.h:
1648         * icall.c: removed
1649         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
1650         needed now.
1651
1652         * object.c: se the application_base only for the domain that runs
1653         Main. Fixes bug #59216,
1654
1655 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1656
1657         * appdomain.c:
1658         * object.c: only the domain in which Main is run have
1659         SetupInformation.ConfigurationFile set, so moved a few lines from
1660         appdomain.c to object.c.
1661
1662 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1663
1664         * appdomain.c: we tried to load [name].(dll|exe), but according
1665         to bug #57710, we must also try [culture]/[name].(dll|exe) and
1666         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
1667         There's a test case attached to bug #58922.
1668
1669 2004-05-27  Dick Porter  <dick@ximian.com>
1670
1671         * icall.c:
1672         * file-io.c: Implemented icalls for locking and unlocking regions
1673         in a file.
1674         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
1675         FALSE on error (fixes both compiler warning and real bug.)
1676
1677 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
1678
1679         * culture-info-tables.h: reflecting locale-builder updates.
1680
1681           (Added missing ChangeLog entry for 05/26)
1682
1683 2004-05-27  Jackson Harper  <jackson@ximian.com>
1684
1685         * locales.c: Fix some cut and paste errors.
1686         
1687 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1688
1689         * mono-config.c: set the correct path for config. directory on windows.
1690
1691 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1692
1693         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
1694           on win32.
1695
1696 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
1697
1698         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
1699         from pinvoke functions.
1700         
1701         * marshal.c (mono_ftnptr_to_delegate): Implement this.
1702
1703 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1704
1705         * culture-info-tables.h: reflecting locale-builder updates.
1706
1707 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
1708
1709         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
1710         #59086.
1711
1712 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
1713
1714         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
1715         * icall.c: Modified icalls for RNG.
1716         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
1717         Windows (CryptoAPI).
1718
1719 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
1720
1721         * locales.c: Fix build.
1722
1723 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1724
1725         * culture-info-tables.h: reflecting locale-builder updates.
1726
1727 2004-05-25  Jackson Harper  <jackson@ximian.com>
1728
1729         * locales.c: When creating the current culture use the $LANGs
1730         specific culture. So DateTimeFormat and NumberFormat entries are created.
1731         
1732 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
1733
1734         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
1735         a char array as parameter.
1736
1737 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
1738
1739         * image.c: In mono_image_open(), always use an absolute path name to
1740           look for already loaded images.
1741
1742 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
1743
1744         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
1745         missing in the windows build (like older cygwin include files).
1746
1747 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
1748
1749         * icall.c: Fixed check for possible integer overflow in Buffer_
1750         BlockCopy icall. Replaced comments style // by /* */.
1751
1752 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
1753
1754         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
1755         
1756         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
1757         check after MONO_VTADDR. Fixes pinvoke2.exe.
1758
1759         * marshal.h marshal.c metadata.h: Add beginnings of support for
1760         ftnptr -> delegate marshalling.
1761
1762 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
1763
1764         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
1765         * threads.c: Fix warnings.
1766
1767 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
1768
1769         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
1770         * icall.c: Registered icalls for Suspend and Resume.
1771         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
1772           Thread.Abort.
1773         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
1774         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
1775         * process.c: Use WaitForSingleObjectEx.
1776         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
1777           checkpoints.
1778         * threads.c, threads.h: Make use of new Ex wait methods. Improved
1779           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
1780           for Suspend and Resume. Added new mono_thread_stop, used for stoping
1781           background threads. Added basic support for Abort in Windows.
1782           Start new threads using a managed delegate invoke wrapper. This wrapper
1783           has an interruption checkpoint that is needed since an interruption
1784           can be requested before the thread leaves the unmanaged code that starts 
1785           the thread.
1786         * marshal.c: Added interruption checkpoint after every native call, and
1787           also before managed calls for wrappers called from unmanaged code to
1788           go into managed code.
1789         * object.h: Added new field in MonoThread to keep track of interruption
1790           requests.
1791
1792 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
1793
1794         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
1795         calls.
1796
1797 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1798
1799         * appdomain.c:
1800         * assembly.c:
1801         * gc.c:
1802         * locales.c:
1803         * mono-config.c:
1804         * rand.c: getenv -> g_getenv (windows!)
1805
1806         * process.c: complete_path is also used on non-windows platforms.
1807
1808 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1809
1810         * icall.c: new signature for Process_Start.
1811
1812         * process.[ch]: new signature for Process_Start. If we're on windows
1813         and UseShellExecute is false, we have to search for the program by
1814         ourselves if we don't get a full path.
1815
1816 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
1817
1818         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
1819         marshalling and call CleanUpNativeData if needed. Fixes #58646.
1820
1821 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1822
1823         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
1824         Fixes bug #58373.
1825
1826 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1827
1828         * process.c: use double quotes to quote program name and arguments on
1829         windows. Fixes bug #58575.
1830
1831 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1832
1833         * file-io.c: don't return "." and ".." when using windows Find*File.
1834
1835 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
1836
1837         * marshal.c: Don't pass wrappers to message init because method 
1838         addressed used to lookup metadata. part of remoting[2|3] fix.
1839
1840 2004-05-15  Jackson Harper  <jackson@ximian.com>
1841
1842         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
1843         path is essentially the same as MONO_PATH except that it points to
1844         GACs instead of lib directories.
1845         * loader.h: The user gac is gone so we dont need function to
1846         enable/disable it.
1847         * mono-config.c: user gac option is now gone.
1848         
1849 2004-05-15  Jackson Harper  <jackson@ximian.com>
1850
1851         * culture-info.h: Make defines more consistent, add calendar data
1852         to the culture info table.
1853         * culture-info-tables.h: Add basic calendar data. Basically
1854         everyone gets default gregorian until all the data is
1855         updated.
1856         * locales.c: Use the new consistent defines. Set calendar data for
1857         culture info objects.
1858         * object.h: add a field for calendar data to CultureInfo
1859         
1860 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
1861
1862         * image.c: image->runtime_invoke_cache is keyed on signatures now.
1863         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
1864         a signature.
1865         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
1866         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
1867         an extra param that is the pointer of the method to invoke. The IL for
1868         the invoke method is no longer specific to the method, but to the
1869         signature of the method. Thus, we can share the same code for multiple
1870         methods. This reduces the number of methods that have to be compiled.
1871
1872 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
1873
1874         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
1875
1876         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1877
1878         * icall.c: Optimize Buffer.BlockCopy.
1879
1880 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1881
1882         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
1883         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
1884         quote). Changed them to "MMMM yyyy".
1885
1886 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
1887
1888         * rand.c
1889         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
1890
1891 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
1892
1893         * reflection.h: Updated after changes to managed structures.
1894
1895         * appdomain.c: Bump corlib version.
1896
1897 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1898
1899         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
1900         windows.
1901
1902 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1903
1904         * Makefile.am: link to ../os/libmonoos.la on windows.
1905
1906         * assembly.c:
1907                 -If MONO_DEBUG, warn about non-existing directories in
1908                 MONO_PATH.
1909                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
1910                 compile time variable.
1911                 -Removed init_default_path and call mono_set_rootdir from
1912                 libmonoos.a instead (windows only).
1913
1914         * assembly.h: declare mono_assembly_getrootdir().
1915
1916         * domain.c:
1917         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
1918
1919         * loader.c: s/getenv/g_getenv/
1920
1921 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
1922
1923         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
1924
1925         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
1926
1927         * metadata.h: Add new marshalling conversions.
1928
1929         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
1930         function.
1931
1932         * reflection.c (mono_reflection_get_type): Lookup the type in all
1933         modules of a multi-module assembly. Fixes #58291.
1934
1935 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
1936
1937         * threads.c: Before aborting a background, set the StopRequested
1938         state.  This avoids throwing the Abort exception.
1939         In mono_thread_manage, don't continue with the shutdown until all
1940         aborted threads have actually stopped.
1941
1942 2004-05-10  Jackson Harper  <jackson@ximian.com>
1943
1944         * locales.c: Remove the modifier from culture names.
1945         
1946 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1947
1948         * Makefile.am: monosn is not installed any more. It has been deprecated
1949         in favor of sn.
1950
1951 2004-05-07  Jackson Harper  <jackson@ximian.com>
1952
1953         * locales.c
1954         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
1955         Fix array construction, add bailout if the length is 0.
1956
1957 2004-05-07  Dick Porter  <dick@ximian.com>
1958
1959         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
1960         machine doesn't have a DNS entry.  Patch by Urs Muff
1961         (umuff@quark.com), fixes bug 57928.
1962
1963 2004-05-06  Jackson Harper  <jackson@ximian.com>
1964
1965         * reflection.c: Handle null PublicTokens properly. alloc mem for
1966         assembly names culture so we dont crash when freeing it.
1967         
1968 2004-05-06  Jackson Harper  <jackson@ximian.com>
1969
1970         * assembly.c: Check the usergac when loading with partial names.
1971         
1972 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
1973
1974         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
1975         does nothing for now (not required for Linux/Windows) but the class
1976         library can call it (and a newer or modified runtime could need it).
1977         * icall.c: Registred icall.
1978
1979 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1980
1981         * loader.c: prints a message on module loading error we set MONO_DEBUG
1982         environment variable.
1983
1984 2004-05-05  Jackson Harper  <jackson@ximian.com>
1985
1986         * appdomain.c: Handle PublicKeyToken=null properly.
1987         
1988 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
1989
1990         * environment.c|h: Added icall ves_icall_System_Environment_
1991         GetOSVersionString to get the current OS version as a string.
1992         * icall.c: Registred icall.
1993
1994 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
1995
1996         * object.c: in mono_object_get_virtual_method(), take into account that
1997         non-virtual methods don't have a slot in the vtable. Check needed when
1998         the object is a proxy.
1999
2000 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
2001
2002         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
2003         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
2004
2005         * object.c (mono_class_compute_gc_descriptor): Fix warning.
2006
2007         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
2008         passed when a valuetype is expected.
2009
2010         * object.c (mono_unhandled_exception): Only set the exit code if the
2011         exception happens in the main thread. Fixes thread5.exe.
2012
2013         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
2014         invalid names. Fixes #58047.
2015
2016 2004-05-03  Jackson Harper  <jackson@ximian.com>
2017
2018         * assembly.c: This line was committed accidently and is unneeded.
2019         
2020 2004-05-03  Jackson Harper  <jackson@ximian.com>
2021
2022         * icall.c: Add new icall for Assembly::LoadWithPartialName
2023         * assembly.c/.h: new function that probes the GAC to load partial
2024         assembly names by Paolo Molaro.
2025         
2026 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2027
2028         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
2029         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
2030         (type_get_fully_qualified_name): Added PublicKeyToken when building a
2031         full type name.
2032
2033 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2034
2035         * appdomain.c: fixed check for 'neutral' culture and removed warning.
2036         * reflection.c: fix bug when parsing a full type name and Version is not
2037         the last thing in the string.
2038
2039 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
2040
2041         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
2042         crashes when it is freed.
2043
2044 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2045
2046         * assembly.c: print the compat warning to stderr.
2047
2048 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
2049
2050         * assembly.c (mono_assembly_load_references): Add a compatibility
2051         hack to run old applications that might be still referencing the
2052         3300-based assemblies, only do this for System.xxx.
2053
2054 2004-05-01  Jackson Harper  <jackson@ximian.com>
2055
2056         * appdomain.c: If the culture is neutral we set it to "".
2057         
2058 2004-04-29  Jackson Harper  <jackson@ximian.com>
2059
2060         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
2061
2062 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2063  
2064         * string-icalls.c: added low overhead function for copying chars
2065         * icall.c: added needed icall for the above function
2066  
2067 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2068
2069         * icall.c: fix return value of get_global_assembly_cache.  Implemented
2070         Environment.GetLogicalDrives.
2071
2072 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
2073
2074         * rand.c: try and talk to egd or prngd
2075         for random bytes if opening devices fail.
2076
2077 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
2078
2079         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
2080         alignment for the type using the native alignment of its members 
2081         instead of using klass->min_align.
2082
2083         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
2084
2085 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2086
2087         * file-io.c:
2088         * socket-io.c: added check for sys/aio.h.
2089
2090 2004-04-28  Dick Porter  <dick@ximian.com>
2091
2092         * threads.c: Don't abort a thread thats already aborting, when
2093         terminating everything.
2094
2095 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2096
2097         * icall.c: added 2 new async calls for Socket.
2098
2099         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
2100         IO on *nix systems.
2101
2102         * threadpool.c: removed unused variable.
2103
2104 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
2105
2106         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
2107
2108 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2109
2110         * locales.c: put back string_invariant_tolower () and
2111         string_invariant_toupper ().
2112
2113 2004-04-26 David Waite <mass@akuma.org>
2114
2115         * file-io.h:
2116         * socket-io.h:
2117         * threads.h:
2118         * unicode.h: remove comma from end of enumeration declarations
2119
2120 2004-04-26 David Waite <mass@akuma.org>
2121
2122         * debug-mono-symfile.h:
2123         * decimal.c:
2124         * mono_debug.h:
2125         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
2126
2127
2128 2004-04-26  Jackson Harper  <jackson@ximian.com>
2129
2130         * appdomain.c: Increment version number.
2131         
2132 2004-04-26  Jackson Harper  <jackson@ximian.com>
2133
2134         * appdomain.c: Set assembly references public token value when
2135         PublicKeyToken is specified, not the hash_value. Free public token
2136         values when free assembly name data. Previously the public key
2137         token was hex decoded, however we are using hex encoded public key
2138         tokens, so this is not neccasary.
2139         * assembly.c: Lookup assemblies in the gac if their public token
2140         value is set. Add function to allow enabling user gac
2141         lookups. Specify whether or not the assembly was loaded from the
2142         GAC. Compare full assembly names when checking the cache for
2143         assemblies (Temporarily disabled see comment in code). Remove
2144         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
2145         specifies trace-loader they get extra info to stdout on the
2146         loading of assemblies.
2147         * image.h: Add a field for an assembly references public token
2148         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
2149         whether an assembly has been loaded from the GAC.
2150         * image.c: Remove a corlib -> mscorlib name mapping.
2151         * loader.h: Add function to enable/disable the user gac.
2152         * mono-config.c: Check if the usergac is enabled in the config
2153         file.
2154         * icall.c: New icall to determine whether or not an assembly has
2155         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
2156         * tabldefs.h: Add constant for assemblyref flag that specifies a
2157         full public key is used instead of a public token.
2158         * reflection.c: Remove mscorlib -> corlib mappings. Set
2159         PublicTokenValue instead of hash value. This value is a hex
2160         string so it does not need to be expanded.
2161
2162 2004-04-26  Martin Baulig  <martin@ximian.com>
2163
2164         * mono-debug-debugger.c (mono_debugger_initialize): Set
2165         `mono_debugger_initialized' before calling mono_debug_lock().
2166
2167 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
2168
2169         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
2170           InternalToUpper/InternalToLower.
2171         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
2172           removed invariant culture shortcut.  This is now done in managed code.
2173         * locales.c: (string_invariant_toupper/tolower) removed.
2174
2175 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2176
2177         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
2178         Added Poll internal call.
2179
2180         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
2181         call for Poll. Select was too heavy for polling a single socket.
2182
2183         * threadpool.[ch]: added mono_threadpool_cleanup.
2184         * threads.c: use it. Don't use Thread_Abort on windows.
2185
2186 2004-04-23  Martin Baulig  <martin@ximian.com>
2187
2188         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
2189
2190 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
2191
2192         * icall.c: Registred new icalls for key pair protection and added an
2193         icall for Environment.GetFolderPath on Windows.
2194         * security.c|h: Added new icalls for key pair protection.
2195
2196 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2197
2198         * socket-io.c: don't display the non-supported family warning for known
2199         families. Now this is not displayed on windows when checking support
2200         for IPv4/IPv6.
2201
2202 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2203
2204         * class.c: don't display the layout warning for static fields.
2205
2206 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
2207
2208         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
2209         * locales.c, locales.h: Added new icalls for culture-specific
2210         Char.ToLower and Char.ToUpper.
2211
2212 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2213
2214         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
2215         by David Waite.
2216
2217 2004-04-20  Martin Baulig  <martin@ximian.com>
2218
2219         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
2220         of the type name before passing it to mono_reflection_type_from_name().
2221
2222 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
2223
2224         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
2225         encodings here. Fixes #56965.
2226
2227 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
2228
2229         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
2230         fix test on strstr result not that I can see anything that
2231         relies on the result.
2232
2233 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
2234
2235         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
2236         Fixes #57081.
2237
2238         * marshal.c (mono_marshal_get_string_encoding): New helper function.
2239
2240         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
2241         function to determine which marshalling to use for strings. Fixes
2242         #56965.
2243
2244         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
2245
2246         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
2247
2248 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
2249
2250         * icall.c: #include mono-config.h
2251
2252 2004-04-15  Jackson Harper  <jackson@ximian.com>
2253
2254         * culture-info-tables.h: Fix date formats for en-US culture.
2255         
2256 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
2257
2258         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
2259         ThreadPool.SetMinThreads.
2260         * threadpool.c: Implemented ThreadPool.GetMinThreads and
2261         ThreadPool.SetMinThreads.
2262
2263 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2264
2265         * mono-config.c: also load the .config file in the directory
2266         where the assembly was found.
2267
2268 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
2269
2270         * assembly.c: load per-assembly config files.
2271         * icall.c: decrapified code to get the config dir and moved to
2272         mono-config.c.
2273         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
2274         per-assembly config files. When doing a dll map lookup give precedence
2275         to the per-assembly data.
2276
2277 2004-04-14  Martin Baulig  <martin@ximian.com>
2278
2279         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
2280         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
2281         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
2282
2283         * mono-debugger-debugger.c: While the debugger is locked, remember
2284         whether the symbol tables have changes and send one single
2285         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
2286
2287 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
2288
2289         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
2290
2291         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
2292         function.
2293
2294         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
2295         account when marshalling string arrays. Fixes #56965.
2296
2297 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
2298
2299         * icall.c: Add new icalls mapping for security.
2300         * security.c|h: Add internal calls for WindowsIdentity,
2301         WindowsImpersonationContext and WindowsPrincipal.
2302
2303 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
2304
2305         * class.c: Added comment to ensure the System.MonoDummy class
2306         is removed when no longer necessary
2307
2308 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
2309
2310         * appdomain.c: Pass arguments to the bootstraping exceptions to
2311         minimize JITed methods at boot
2312
2313         * metadata.c (mono_exception_from_name_two_strings): Allow for the
2314         second string to be null.
2315
2316         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
2317         Change the protocol to minimize the JIT methods at startup.  Now
2318         it Returns the internal codepage, if the value of "int_code_page"
2319         is 1 at entry, and we can not compute a suitable code page
2320         number, returns the code page as a string.
2321
2322 2004-04-13  Jackson Harper  <jackson@ximian.com>
2323
2324         * culture-info-tables.h: Fix number of decimal digits for all
2325         english locales.
2326
2327 2004-04-13  Jackson Harper  <jackson@ximian.com>
2328
2329         * icall.c: Clairfy out of sync error message. It is not always
2330         your corlib that is out of sync.
2331
2332 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
2333
2334         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
2335         properties when only the set accessor is overriden. Fixes #55874.
2336
2337 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
2338
2339         * assembly.c (mono_assembly_load_references): Make this thread safe.
2340         Fixes #56327.
2341
2342 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
2343
2344         * monosn.c: Add missing initialization calls.
2345
2346 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
2347
2348         * locales.c:
2349         ves_icall_System_Globalization_CultureInfo_construct_number_format
2350         Fix g_assert so it compiles on fussier compilers re int/ptr
2351         mismatch
2352
2353 2004-04-08  Dick Porter  <dick@ximian.com>
2354
2355         * socket-io.h:
2356         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
2357         53992.  Also rearrange the code so that the internal calls return
2358         an error value and exceptions are thrown from managed code.
2359
2360         * icall.c: Add type info to the socket icalls.
2361
2362 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2363
2364         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
2365         owes me a beer.
2366
2367 2004-04-07  Martin Baulig  <martin@ximian.com>
2368
2369         * class.c (mono_class_from_generic_parameter): Don't default
2370         `klass->parent' to `mono_defaults.object_type'.
2371
2372 2004-04-07  Martin Baulig  <martin@ximian.com>
2373
2374         * reflection.c (mono_reflection_initialize_generic_parameter): Set
2375         `param->pklass->reflection_info'.       
2376
2377 2004-04-07  Jackson Harper  <jackson@ximian.com>
2378
2379         * culture-info-tables.h: Fix date separator symbol.
2380         
2381 2004-04-07  Martin Baulig  <martin@ximian.com>
2382
2383         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
2384         from System.Type to System.MonoType.
2385
2386 2004-04-07  Martin Baulig  <martin@ximian.com>
2387
2388         * reflection.h
2389         (MonoReflectionGenericParam): Added `has_reference_type' and
2390         `has_value_type' fields.
2391
2392         * reflection.c (mono_image_get_generic_param_info): Encode the
2393         correct flags if we have the `class' or `struct' constraint.
2394
2395 2004-04-07  Martin Baulig  <martin@ximian.com>
2396
2397         * reflection.h
2398         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
2399
2400 2004-04-07  Jackson Harper  <jackson@ximian.com>
2401
2402         * appdomain.c: Revert extra patches, just wanted to bump the
2403         version number.
2404         
2405 2004-04-07  Jackson Harper  <jackson@ximian.com>
2406
2407         * Makefile.am: Add culture-info private headers.
2408         * icall.c: Add new icalls for contructing locales.
2409         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
2410         * locales.h: Declare new culture info construction methods.
2411         * object.h: Add new fields used to avoid the CultureMap to
2412         MonoCultureInfo.
2413         * culture-info.h: Definition of structs used in the culture info
2414         tables.
2415         * culture-info-tables.h: Autogenerated tables that contain culture
2416         info data. This file was generated with the locale-builder tool.
2417         * appdomain.c: Incement corlib version number.
2418         
2419 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
2420
2421         * appdomain.c: (mono_runtime_init) move mono_thread_init
2422         to before mono_object_new calls so critical sections
2423         are initialized before use.
2424
2425 2004-04-07  Martin Baulig  <martin@ximian.com>
2426
2427         * icall.c
2428         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
2429         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
2430         (ves_icall_MonoGenericParam_initialize): Removed.
2431         (monogenericparam_icalls): Removed.
2432         (generictypeparambuilder_icalls): Added new table for
2433         System.Reflection.Emit.GenericTypeParameterBuilder.
2434
2435         * reflection.c
2436         (mono_reflection_define_generic_parameter): Removed.
2437         (mono_reflection_initialize_generic_parameter): This is now called
2438         from GenericTypeParameterBuilder's .ctor.
2439
2440 2004-04-06  Martin Baulig  <martin@ximian.com>
2441
2442         * class.c (mono_class_init): Don't inflate nested classes in a
2443         generic instance.
2444         (mono_type_get_name_recurse): Include the generic arguments for
2445         generic instances and generic type declarations.
2446         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
2447         (_mono_class_get_instantiation_name): Removed.
2448         (mono_class_create_generic): Always use `gklass->name' as our name.
2449
2450         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
2451
2452         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
2453         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
2454         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
2455         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
2456         closed generic methods here.
2457
2458         * reflection.c
2459         (mono_reflection_generic_inst_get_nested_types): Removed.
2460         (inflate_mono_method): Copy the generic parameters from the
2461         MonoMethodHeader into out MonoGenericMethod.
2462
2463 2004-04-06  Martin Baulig  <martin@ximian.com>
2464
2465         * row-indexes.h
2466         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
2467
2468         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
2469
2470         * reflection.c (build_compressed_metadata): If we have any entries
2471         in the GenericParam, MethodSpec or GenericParamConstraint tables,
2472         set the header version to 1.1.
2473
2474 2004-04-06  Martin Baulig  <martin@ximian.com>
2475
2476         * class.c (mono_class_init): If we're a generic instance,
2477         initialize our nested classes, too.
2478         (_mono_class_get_instantiation_name): Deal with the new `!%d'
2479         suffix. 
2480
2481 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2482
2483         * process.c: quote the argument passed to the shell on windows.
2484
2485 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
2486
2487         * threads.c (mono_alloc_special_static_data): Allow this to be
2488         called during startup.
2489
2490 2004-04-02  Martin Baulig  <martin@ximian.com>
2491
2492         * icall.c
2493         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
2494
2495 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
2496
2497         * icall.c: Fix build.
2498
2499 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
2500
2501         * Makefile.am: Added security.c|h.
2502         * icall.c: Added icall for get_UserName;
2503         * security.c: New file for security related icalls. Added function
2504         get_UserName for System.Environment (fix #56144).
2505         * security.h: New. Header file for security.c
2506
2507 2004-04-02  Dick Porter  <dick@ximian.com>
2508
2509         * icall.c: Deleted the icalls that were obsoleted some time ago
2510         by the ICU string code, and which were mixed into the icall
2511         rearranging.  Fixes bug 55969.
2512
2513         * string-icalls.h: 
2514         * string-icalls.c: Deleted the code that those icalls reference.
2515
2516 2004-04-01  Martin Baulig  <martin@ximian.com>
2517
2518         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
2519
2520         * class.c (mono_class_from_generic_parameter): Don't set 
2521         TYPE_ATTRIBUTE_INTERFACE.
2522         (my_mono_class_from_generic_parameter): Likewise.
2523
2524 2004-04-01  Martin Baulig  <martin@ximian.com>
2525
2526         * loader.c (find_method): Added an optional `MonoClass *ic'
2527         argument to search in a specific interface.
2528         (mono_get_method_constrained): New public function.
2529
2530 2004-04-01  Martin Baulig  <martin@ximian.com>
2531
2532         * reflection.c (mono_image_get_generic_field_token): Use the
2533         `handleref' cache here.
2534
2535 2004-04-01  Martin Baulig  <martin@ximian.com>
2536
2537         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
2538
2539         * reflection.c (create_generic_typespec): Use the `typespec' hash
2540         here, not the `typeref' one.    
2541
2542 2004-04-01  Martin Baulig  <martin@ximian.com>
2543
2544         * class.c (mono_class_inflate_generic_type): Moved the
2545         functionality into a new static inflate_generic_type() which
2546         returns NULL if it didn't do anything.  Only increment the
2547         `mono_stats.inflated_type_count' if we actually inflated
2548         something.
2549         (mono_class_get_full): Check the classes type to see whether we
2550         need to inflate it; also inflate MONO_TYPE_(M)VAR.
2551
2552 2004-04-01  Jackson Harper  <jackson@ximian.com>
2553
2554         * reflection.c: Set culture for assembly references.
2555         
2556 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
2557
2558         * reflection.[ch], icall.[ch], Fix support for pinning variables.
2559
2560 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2561
2562         * assembly.c:
2563         (do_mono_assembly_open): the critical section also covers
2564         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
2565
2566 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2567
2568         * threads.c:
2569         (mono_manage_threads): abort the background threads when finishing.
2570         Fixes bug #47232.
2571
2572 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2573
2574         * gc.c: only close the done_event handle if there was no timeout.
2575         C-ified comments.
2576
2577 2004-03-30  Martin Baulig  <martin@ximian.com>
2578
2579         * icall.c (icall_entries): It's called "System.Activator", not
2580         "System.Activation".    
2581
2582 2004-03-30  Martin Baulig  <martin@ximian.com>
2583
2584         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
2585         (mono_class_create_from_typespec): Likewise.
2586
2587 2004-03-30  Martin Baulig  <martin@ximian.com>
2588
2589         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
2590         `has_ctor_constraint' and `initialized'.
2591
2592 2004-03-30  Martin Baulig  <martin@ximian.com>
2593
2594         * reflection.c (encode_new_constraint): New static function to add
2595         the constructor constraint attribute to a type parameter.
2596         (encode_constraints): Call encode_new_constraint() if necessary.
2597
2598         * reflection.h
2599         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
2600
2601         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
2602         
2603 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
2604
2605         * reflection.c, icall.c: add support for pinning variables. 
2606
2607 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
2608
2609         * marshal.c (mono_marshal_get_managed_wrapper):
2610         init bool local with zero rather than null.
2611
2612 2004-03-29  Martin Baulig  <martin@ximian.com>
2613
2614         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
2615         the "official" behavior here.
2616         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
2617
2618 2004-03-29  Martin Baulig  <martin@ximian.com>
2619
2620         * icall.c: Reflect latest API changes.
2621
2622 2004-03-29  Martin Baulig  <martin@ximian.com>
2623
2624         * loader.c (mono_get_method_from_token): Also call
2625         mono_metadata_load_generic_params () for abstract and interface
2626         methods; replace the type arguments in the method signature with
2627         the ones which are loaded from the metadata.
2628
2629 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
2630
2631         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
2632         of the lock is not the current thread. MS.NET don't do it, in spite of
2633         what the documentation says. See bug #56157.
2634
2635 2004-03-28  Martin Baulig  <martin@ximian.com>
2636
2637         * class.c (mono_class_init): Don't call init_properties() and
2638         init_events() for generic instances; set `prop->parent' when
2639         inflating properties.
2640
2641         * reflection.c (mono_generic_inst_get_object): Call
2642         `mono_class_init (ginst->klass)'.
2643         (mono_type_get_object): Only create a MonoGenericInst if your
2644         generic type is a TypeBuilder.
2645         (do_mono_reflection_bind_generic_parameters): Only set
2646         `ginst->is_dynamic' if our generic type is a TypeBuilder.
2647
2648 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
2649
2650         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
2651         Fixes #56091.
2652
2653 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2654
2655         * icall.c: added Kill_internal icall.
2656         * process.[ch]: added Kill_internal icall.
2657
2658 2004-03-25  Martin Baulig  <martin@ximian.com>
2659
2660         * class.h (MonoStats): Added `generic_instance_count',
2661         `inflated_method_count', `inflated_type_count' and
2662         `generics_metadata_size'.       
2663
2664 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2665
2666         * reflection.c: no warnings now.
2667
2668 2004-03-25  Martin Baulig  <martin@ximian.com>
2669
2670         * class.c (mono_class_get_full): New public function; does a
2671         mono_class_get(), but also takes a `MonoGenericContext *'.
2672
2673         * loader.c (mono_field_from_memberref): Renamed to
2674         `field_from_memberref', made static and added `MonoGenericContext *'
2675         argument.
2676         (mono_field_from_token): Added `MonoGenericInst *' argument.
2677         (method_from_memberef): Likewise.
2678         (mono_get_method_from_token): Likewise.
2679         (mono_get_method_full): New public function; does a
2680         mono_get_method(), but also takes a `MonoGenericContext *'.
2681
2682         * verify.c (mono_method_verify): Get the method's generic context
2683         and pass it to mono_field_from_token(), mono_get_method_full() and
2684         mono_class_get_full().
2685
2686 2004-03-25  Martin Baulig  <martin@ximian.com>
2687
2688         * class.c (mono_class_inflate_generic_type): Take a
2689         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
2690         `MonoGenericMethod *'.
2691
2692 2004-03-25  Martin Baulig  <martin@ximian.com>
2693
2694         * loader.h (MonoMethodInflated): Store the MonoGenericContext
2695         instead of the MonoGenericMethod here.
2696
2697 2004-03-25  Martin Baulig  <martin@ximian.com>
2698
2699         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
2700         each time we create a new MonoGenericInst, we also create a new
2701         context which points back to us.
2702
2703         * class.c (inflate_method): Use `ginst->context' instead of
2704         creating a new context.
2705
2706         * loader.c (method_from_memberref): Use
2707         `klass->generic_inst->context' instead of creating a new context.
2708
2709 2004-03-25  Martin Baulig  <martin@ximian.com>
2710
2711         * class.h (MonoGenericContext): New struct.
2712         (MonoGenericMethod): Removed `generic_inst'.
2713
2714         * class.c (mono_class_inflate_generic_method): Take a
2715         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
2716
2717 2004-03-25  Martin Baulig  <martin@ximian.com>
2718
2719         * loader.h (MonoMethodInflated): New typedef.
2720
2721         * metadata.h (MonoMethodSignature): Removed `gen_method', make
2722         `generic_param_count' consume just 30 bits, added `is_inflated'
2723         and `has_type_parameters' flags (one bit each).
2724
2725         * class.c (mono_class_inflate_generic_method): Create a
2726         MonoMethodInflated instead of a MonoMethodNormal and set
2727         `is_inflated' in the method signature.
2728
2729         * class.h (MonoGenericMethod): Removed `generic_method'.
2730
2731 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
2732
2733         * image.c: Make sure the name of a MonoImage is always an absolute path.
2734           This fixes bug #54415.
2735
2736 2004-03-24  Martin Baulig  <martin@ximian.com>
2737
2738         * class.c (mono_class_setup_vtable): If we're a generic instance,
2739         use our generic type's vtable size.
2740
2741 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
2742
2743         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
2744         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
2745         problems.
2746
2747 2004-03-23  Martin Baulig  <martin@ximian.com>
2748
2749         * class.h (MonoDynamicGenericInst): Added `int count_events' and
2750         `MonoEvent *events'.
2751
2752         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
2753         (typebuilder_icalls): Added "get_event_info"; calls
2754         mono_reflection_event_builder_get_event_info(). 
2755
2756         * reflection.c (mono_reflection_generic_inst_initialize): Added
2757         `MonoArray *events'.
2758         (mono_reflection_event_builder_get_event_info): New function.
2759
2760 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
2761
2762         * object.h: add mono_type_initialization_init
2763
2764         * object.c (mono_runtime_class_init): 
2765         implement class constructor synchronization rules
2766         to cope with threading issues.  
2767         add mono_type_initialization_init
2768
2769         * appdomain.c (mono_runtime_init): call 
2770         mono_type_initialization_init
2771
2772         * class.h: removing initializing field from MonoVTable
2773
2774 2004-03-23  Martin Baulig  <martin@ximian.com>
2775
2776         * class.c (my_mono_class_from_generic_parameter): Use
2777         `param->name' if it's not NULL. 
2778
2779 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
2780
2781         * class.c: do not insert non-virtual methods in the vtable.
2782         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
2783         that means the method is non-virtual. This never would have
2784         happened before.
2785
2786 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
2787
2788         * profiler.c: Added lock for accessing coverage_hash.
2789
2790 2004-03-22  Martin Baulig  <martin@ximian.com>
2791
2792         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
2793         `method->method->signature->generic_param_count != 0' to make it
2794         work for interface methods.
2795
2796 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2797
2798         * process.c: quote the string passed to the shell using g_shell_quote.
2799
2800 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2801
2802         * threads.c:
2803         (mono_threads_manage): don't remove the finalizer thread and self
2804         from the threads hash table so that mono_thread_manage can be called
2805         more than once.
2806
2807 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2808
2809         * process.c: quote the arguments when UseShellExecute is true. Fixes
2810         bug #55790.
2811
2812 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2813
2814         * threads.c: set mono_thread_detach as a cleanup routine for every
2815         thread. This way it's always executed upon thread termination, either
2816         aborted or finished normally. No more xsp hangs!
2817
2818 2004-03-17  Martin Baulig  <martin@ximian.com>
2819
2820         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
2821         `int count_nested' and a `MonoType **nested'.
2822
2823         * reflection.c (mono_reflection_bind_generic_parameters): Moved
2824         most of the functionality into a new static
2825         do_mono_reflection_bind_generic_parameters() and don't take a
2826         `MonoType *nested_in' argument any more.  Don't compute nested
2827         types here.
2828         (mono_reflection_generic_inst_get_nested_types): New public method
2829         to get nested types.
2830
2831         * class.c (mono_class_create_generic): Set `klass->nested_in' if
2832         we're a nested class.
2833
2834         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
2835         mono_reflection_generic_inst_get_nested_types() to compute the
2836         nested types.
2837
2838 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
2839
2840         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
2841         descriptive error message under windows.
2842         
2843 2004-03-17  Martin Baulig  <martin@ximian.com>
2844
2845         * class.c (dup_type): Added `const MonoType *original' argument;
2846         copy the attrs from the original type.
2847
2848 2004-03-17  Martin Baulig  <martin@ximian.com>
2849
2850         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
2851         `m->generic_inst_cache' here.
2852
2853 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
2854
2855         * exception.h exception.c: Add stack_overflow_exception.
2856
2857 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2858
2859         * threadpool.c:
2860         (overlapped_callback): call SetEvent *after* invoking the callback.
2861         No need to call CloseHandle.
2862
2863 2004-03-16  Martin Baulig  <martin@ximian.com>
2864
2865         * reflection.c (mono_image_get_fieldref_token): Take a
2866         `MonoReflectionField *' instead of a `MonoClassField *' and a
2867         `MonoClass *'; store the `MonoReflectionField *' in the hash.
2868
2869 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2870
2871         * appdomain.c: don't add the culture to the filename we're looking for
2872         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
2873
2874 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2875
2876         * locales.c: don't ignore symbols when doing case insensitive compares.
2877         Thanks Dick! Fixes bug #54046.
2878
2879         * threads.c: surround 'threads' usage with enter/leave in
2880         mono_thread_manage.
2881
2882 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
2883
2884         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
2885         implicitly marshalled as [Out]. Fixes #55450.
2886
2887         (mono_marshal_get_runtime_invoke): Zero out the result if there is
2888         an exception.
2889
2890 2004-03-16  Martin Baulig  <martin@ximian.com>
2891
2892         * class.c (mono_class_from_generic_parameter): Use the actual
2893         parameter name. 
2894
2895 2004-03-16  Martin Baulig  <martin@ximian.com>
2896
2897         * reflection.c (type_get_signature_size): New static function.
2898         Compues the size of the type in a method signature.
2899         (method_get_signature_size): New static function; calls
2900         type_get_signature_size() to compute the actual size of the
2901         method's signature.
2902         (method_encode_signature): Use method_get_signature_size() to get
2903         the signature's size rather than using `nparams * 10'.
2904
2905 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2906
2907         * file-io.h: define here WapiOverlapped on windows. I don't want the
2908         regular OVERLAPPED one.
2909
2910         * file-io.c:
2911         * threadpool.c: somehow, BindIoCompletionCallback is not found.
2912         Disabling AIO on windows.
2913
2914 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2915
2916         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
2917         bug #55385.
2918
2919 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2920
2921         * appdomain.c: upgraded corlib version.
2922
2923         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
2924         and BeginWrite. Allow opening files for asynchrnous operations.
2925
2926         * file-io.h: new struct that maps FileStreamAsyncResult.
2927         * icall.c: added new icalls.
2928         * process.[ch]: support setting child process environment variables
2929         and use the SHELL or COMSPEC when UseShellExecute is true.
2930
2931         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
2932         callback for async. IO is here and also BindHandle.
2933
2934         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
2935         from here.
2936
2937 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
2938
2939         * reflection.c (create_custom_attr): Allow len == 0.
2940
2941         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
2942         computation on big-endian machines.
2943
2944 2004-03-13  Martin Baulig  <martin@ximian.com>
2945
2946         * class.h (MonoGenericInst): Added `int count_ifaces'.
2947
2948         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
2949         `ginst->count_ifaces' instead `klass->interface_count' since we
2950         may get called before the vtable is created.
2951
2952         * loader.c (mono_method_get_param_names): If we're a generic
2953         instance, return and don't initialize the class.
2954
2955         * reflection.c (mono_reflection_setup_generic_class): Don't call
2956         ensure_runtime_vtable().
2957         (mono_reflection_bind_generic_parameters): Set
2958         `ginst->count_ifaces'.
2959
2960 2004-03-11  Jackson Harper <jackson@ximian.com>
2961
2962         * icall.c:
2963         * unicode.c:
2964         * unicode.h: Remove unused System.Char icalls.
2965         
2966 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
2967
2968         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
2969         code when we P/Invoke the first library in Windows.Forms, instead
2970         of when we first open the assembly.
2971
2972         * assembly.c: Drop the lookup from here.
2973
2974 2004-03-10  Martin Baulig  <martin@ximian.com>
2975
2976         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
2977         class for properties, fields and events.  Finally fixes #54945.
2978
2979 2004-03-10  Martin Baulig  <martin@ximian.com>
2980
2981         * metadata.c (mono_metadata_class_equal): New static function;
2982         checks whether two generic instances or two generic parameters are
2983         equal.
2984         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
2985         compare classes.        
2986
2987 2004-03-10  Martin Baulig  <martin@ximian.com>
2988
2989         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
2990
2991         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
2992         argument and write it into the `reflection_info' field.
2993
2994         * icall.c
2995         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
2996         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
2997
2998 2004-03-09  Jackson Harper  <jackson@ximian.com>
2999
3000         * char-conversions.h: use 8 bits for numeric data its all we need
3001         * icall.c: numeric data is only 8 bits now.
3002
3003 2004-03-09  Martin Baulig  <martin@ximian.com>
3004
3005         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
3006
3007         * class.c (init_properties, init_events): Initialize the new
3008         `parent' field.
3009
3010         * reflection.c (typebuilder_setup_properties): Likewise.
3011         (typebuilder_setup_events): Likewise.
3012
3013         * reflection.h (MonoEventInfo): Replaced `parent with
3014         `declaring_type' and `reflected_type'.
3015
3016         * icall.c (ves_icall_get_property_info): Distinguish between
3017         declaring and reflected type.
3018         (ves_icall_get_event_info): Likewise.
3019
3020 2004-03-09  Martin Baulig  <martin@ximian.com>
3021
3022         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
3023         (ves_icall_Type_GetField): Correctly set field->klass.
3024
3025 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
3026
3027         * loader.h: Fix warning.
3028
3029 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
3030
3031         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
3032         library routine if present.  Notice that it will still continue
3033         executing even if its missing, for those working on the Gtk#
3034         edition of Windows.Forms.
3035
3036         * assembly.c (do_mono_assembly_open): If loading the
3037         System.Windows.Forms call mono_loader_wini_init.
3038
3039 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
3040
3041         * class.h: Added MonoRemoteClass struct.
3042         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
3043         function for MonoStrings.
3044         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
3045         Added internal call for getting the proxy type.
3046         * marshal.c: Get the type of transparent proxies from its remote_class.
3047         Added methods that generate the IL for type checks and casts:
3048         mono_marshal_get_isinst, mono_marshal_get_castclass, 
3049         mono_marshal_get_proxy_cancast.
3050         * marshal.h: Declaration of the previous new methods.
3051         * object.c: Added new moethods for creating and updating MonoRemoteClass
3052         instances: mono_remote_class, mono_upgrade_remote_class, 
3053         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
3054         * verify.c: FIx transparent_proxy_fields layout.
3055         * appdomain.c: Bump corlib version.
3056
3057 2004-03-04  Jackson Harper  <jackson@ximian.com>
3058
3059         * icall.c: Add icall to access char conversion tables.
3060         * char-conversions.h: Character conversion tables.
3061         * Makefile.am: Add char-conversions.h private header file.
3062         
3063 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
3064
3065         * appdomain.c (unload_thread_main): Increase unloading timeout to
3066         10 sec as a temporary workaround for Nant problems.
3067
3068 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
3069
3070         * gc.c: Add checks for GC_enable and GC_disable.
3071
3072         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
3073         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
3074         (bug #54988).
3075         
3076 2004-02-27  Martin Baulig  <martin@ximian.com>
3077
3078         * reflection.c (mono_reflection_bind_generic_parameters): Take a
3079         `MonoReflectionType *' instead of a `MonoType *'.
3080
3081 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
3082
3083         * gc.c (run_finalize): Avoid finalizing the object representing the
3084         finalizer thread.
3085         (finalizer_thread): Fix warning.
3086
3087 2004-02-25  Martin Baulig  <martin@ximian.com>
3088
3089         * class.c (_mono_class_get_instantiation_name): Added `int offset'
3090         argument for nested types.
3091         (mono_class_create_generic): Added support for nested generictypes.
3092
3093         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
3094         `GList *nested'.
3095
3096         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
3097
3098         * reflection.c (method_encode_signature): Increase the minimum
3099         value of `size' from 10 to 11.
3100         (mono_reflection_bind_generic_parameters): Take `int type_argc'
3101         and `MonoType **types' arguments instead of the `MonoArray
3102         *types'; added `MonoType *nested_in'.  Recursively instantiate
3103         nested classes. 
3104
3105 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
3106
3107         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
3108         stack_overflow_ex members which are used by exception handling.
3109
3110         * appdomain.c (mono_runtime_init): Initialize the new members.
3111
3112         * gc.c (mono_gc_enable): New helper function.
3113         * gc.c (mono_gc_disable): New helper function.
3114
3115 2004-02-23  Martin Baulig  <martin@ximian.com>
3116
3117         * icall.c: I must have been really stupid - make it actually work
3118         this time ;-)
3119
3120 2004-02-23  Martin Baulig  <martin@ximian.com>
3121
3122         * loader.c (method_from_memberref): Only inflate the method if
3123         it's in another klass.
3124
3125 2004-02-23  Martin Baulig  <martin@ximian.com>
3126
3127         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
3128         (mono_class_init): If we're a generic instance and an interface,
3129         compute `class->interface_id'; also create `class->interfaces'
3130         here and inflate them.
3131
3132         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
3133         `ginst->is_open'.
3134         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
3135
3136         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
3137
3138 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
3139
3140         * reflection.c (method_encode_code): Improved the error message
3141         generated by the exception.
3142
3143 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3144
3145         * icall.c: Martin did not do what he said in the ChangeLog for
3146         2004-02-18, but put back the changes for properties and events.
3147         Commenting those changes out again and adding comment to bug #54518.
3148         
3149         * process.c: removed warning.
3150
3151 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
3152
3153         * marshal.c (emit_struct_conv): Print an error message instead of
3154         asserting when a type does not have the StructLayout attribute.
3155
3156 2004-02-20  Martin Baulig  <martin@ximian.com>
3157
3158         * reflection.c (mono_type_get_object): Also use the cache for
3159         generic instances.
3160         (mono_reflection_bind_generic_parameters): Always compute
3161         `ginst->ifaces'.        
3162
3163 2004-02-20  Martin Baulig  <martin@ximian.com>
3164
3165         * class.h (MonoGenericMethod): Removed `klass'.
3166
3167         * class.c (mono_class_inflate_generic_method): Added `MonoClass
3168         *klass' argument.
3169
3170 2004-02-20  Martin Baulig  <martin@ximian.com>
3171
3172         * reflection.c (method_encode_methodspec): Actually use the
3173         uninflated signature for the memberref.
3174
3175 2004-02-20  Martin Baulig  <martin@ximian.com>
3176
3177         * class.h (MonoGenericMethod): Removed `declaring'.
3178
3179         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
3180         is NULL, compute it here.
3181
3182 2004-02-20  Martin Baulig  <martin@ximian.com>
3183
3184         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
3185
3186         * metadata.c (mono_metadata_generic_inst_hash): New method.
3187         (mono_metadata_generic_inst_equal): New method.
3188
3189         * reflection.c (mono_reflection_bind_generic_parameters): Use the
3190         `klass->image->generic_inst_cache' cache to avoid creating
3191         duplicate MonoGenericInst's.
3192
3193         * class.c (mono_class_inflate_generic_type): Use the cache.
3194
3195 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
3196
3197         * object.c: fixed gc descriptor calculation for embedded valuetypes.
3198
3199 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3200
3201         * icall.c: added Socket.WSAIoctl icall.
3202
3203         * socket-io.[ch]: implemented
3204         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
3205
3206 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
3207
3208         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
3209
3210 2004-02-18  Urs C Muff  <umuff@quark.com>
3211
3212         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
3213         this work on PPC and other big-endian architectures.
3214
3215         * debug-mono-symfile.h: Prepended the names of all the `guint32'
3216         fields with an underscore to make sure they're only accessed by
3217         the read32() macro.
3218
3219 2004-02-18  Martin Baulig  <martin@ximian.com>
3220
3221         * icall.c: Put the klass->refclass changes back for methods and
3222         fields, but not for properties and events.  We're currently not
3223         distinguishing between DeclaringType and ReflectedType for
3224         properties and events, that's what caused the regressions.
3225
3226 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3227
3228         * object.c:
3229         (mono_async_result_new): the handle can be NULL.
3230
3231         * threadpool.c: Use an event instead of a semaphore, don't initialize
3232         it until needed. This saves quite a few semaphores from being created
3233         when using the threadpool.
3234
3235 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
3236
3237         * object.c (mono_string_is_interned_lookup): Fix interning of long
3238         strings. Fixes #54473.
3239
3240         * domain.c (ldstr_equal): Optimize if the two strings are equal.
3241
3242         * icall.c: Revert the klass->refclass changes since they introduce
3243         regressions (bug #54518).
3244
3245 2004-02-18  Martin Baulig  <martin@ximian.com>
3246
3247         * class.c (mono_class_init): If we're a generic instance and don't
3248         come from a TypeBuilder, inflate our members here.
3249         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
3250         (mono_class_create_generic): New public method.
3251         (mono_class_initialize_generic): Removed.
3252         (get_instantiation_name): Renamed to
3253         _mono_class_get_instantiation_name() and made it public.
3254
3255 2004-02-18  Martin Baulig  <martin@ximian.com>
3256
3257         * class.c (mono_class_inflate_generic_type): Clear the new
3258         instance's `nginst->klass' when inflating a generic instance.
3259         (mono_class_is_subclass_of): Added (basic) support for generic
3260         instances.
3261
3262 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
3263
3264         * appdomain.h, domain.c: use a MonoCodeManager instead of a
3265         MonoMempool to hold compiled native code.
3266
3267 2004-02-17  Martin Baulig  <martin@ximian.com>
3268
3269         * class.h (MonoDynamicGenericInst): Added `count_properties' and
3270         `properties'.
3271
3272         * reflection.c (mono_reflection_generic_inst_initialize): Added
3273         `MonoArray *properties' argument.
3274
3275         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
3276
3277 2004-02-17  Martin Baulig  <martin@ximian.com>
3278
3279         * icall.c (ves_icall_Type_GetFields): Renamed to
3280         ves_icall_Type_GetFields_internal() and added a
3281         `MonoReflectionType *rtype' argument; pass it to
3282         mono_field_get_object() to set the field's "reflected" type.
3283         (ves_icall_Type_GetConstructors): Likewise.
3284         (ves_icall_Type_GetEvents): Likewise.
3285         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
3286         argument; pass it to mono_method_get_object() to set the method's
3287         "reflected" type.       
3288
3289 2004-02-17  Martin Baulig  <martin@ximian.com>
3290
3291         * class.h (MonoDynamicGenericInst): New type.
3292         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
3293
3294         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
3295         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
3296         (ves_icall_MonoGenericInst_GetFields): New interncall.
3297
3298         * class.c (mono_class_from_generic): Don't call
3299         mono_class_initialize_generic() if this is a dynamic instance;
3300         ie. it's being created from a TypeBuilder.
3301         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
3302         `class->byval_arg.type'.
3303
3304         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
3305         to `inflate_method' and made static.
3306         (mono_reflection_inflate_field): Removed.
3307         (mono_reflection_generic_inst_initialize): New public method.
3308
3309         * reflection.h (MonoReflectionGenericInst): Removed `methods',
3310         `ctors' and `fields'; added `initialized'.
3311
3312 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
3313
3314         * debug-helpers.c (mono_method_full_name): Fix output for empty
3315         namespaces.
3316
3317 2004-02-12  Martin Baulig  <martin@ximian.com>
3318
3319         * class.h (MonoClassField): Added `MonoType *generic_type'.
3320
3321         * reflection.c (mono_image_get_fieldref_token): Added support for
3322         instantiated generic types.
3323         (field_encode_inflated_field): Removed.
3324         (mono_image_get_inflated_field_token): Removed.
3325         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
3326
3327         * reflection.h (MonoReflectionInflatedField): Removed.
3328
3329 2004-02-12  Martin Baulig  <martin@ximian.com>
3330
3331         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
3332         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
3333
3334         * reflection.c (mono_image_get_methodspec_token): Take a
3335         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
3336         (mono_image_create_token): Check whether we have a
3337         `method->signature->gen_method' and call
3338         mono_image_get_methodspec_token() if appropriate.
3339         (inflated_method_get_object): Removed.
3340         (mono_reflection_bind_generic_method_parameters): Return a
3341         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
3342         (mono_reflection_inflate_method_or_ctor): Likewise.
3343
3344         * reflection.h (MonoReflectionInflatedMethod): Removed.
3345
3346 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
3347
3348         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
3349         for custom valuetype marshalling.
3350
3351         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
3352
3353 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3354
3355         * icall.c: fixed WSAGetLastError_internal name.
3356
3357 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
3358
3359         * threads.c (mono_thread_attach): Allow this to be called multiple
3360         times for a thread.
3361         
3362         * threads.c (build_wait_tids): Do not wait for ourselves.
3363
3364         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
3365         appdomain list is empty.
3366
3367         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
3368         memory returned by mono_string_builder_to_utf16, since it points into
3369         managed memory. Thanks to Bernie Solomon for noticing this.
3370
3371         * icall.c: Add AppDomainSetup icalls.
3372
3373         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
3374
3375         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
3376         types.
3377
3378         * reflection.c (reflection_methodbuilder_to_mono_method): Save
3379         custom attributes to the method_aux struct. Also fix array indexes etc.
3380
3381         * loader.c (mono_method_get_param_names): Make dynamic case work again.
3382         
3383 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
3384
3385         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
3386         (both static and runtime) and reduce startup time.
3387
3388 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
3389
3390         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
3391         AsAny marshalling conversion instead of crashing.
3392
3393         * marshal.c: Fix warnings.
3394
3395 2004-02-09  Martin Baulig  <martin@ximian.com>
3396
3397         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
3398
3399         * reflection.h (MonoReflectionInflatedMethod): Removed the
3400         `declaring' field, it's now in the unmanaged MonoGenericMethod.
3401
3402         * reflection.c (method_encode_methodspec): Removed the `method'
3403         argument; we get it from `gmethod->declaring'.
3404         (inflated_method_get_object): Removed the `declaring' argument.
3405
3406 2004-02-09  Martin Baulig  <martin@ximian.com>
3407
3408         * class.h (MonoGenericMethod): New type.
3409         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
3410         `generic_method'.
3411
3412         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
3413         a `MonoGenericMethod *gen_method' one.
3414
3415         * class.c (mono_class_inflate_generic_type): Take an additional
3416         `MonoGenericMethod * argument.  This is only non-NULL if we're
3417         inflating types for a generic method.   
3418         (mono_class_inflate_generic_signature): Renamed to
3419         inflate_generic_signature() and made static; take a
3420         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
3421         (inflate_generic_header): Take a `MonoGenericMethod *' argument
3422         instead of a `MonoGenericInst *' one.
3423         (mono_class_inflate_generic_method): Likewise.
3424
3425         * reflection.c (encode_generic_method_sig): Take a
3426         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
3427         (method_encode_methodspec): Likewise.
3428         (inflated_method_get_object): Likewise. 
3429
3430         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
3431         field with a `MonoGenericMethod *gmethod' one.  
3432
3433 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
3434
3435         * class.h (mono_class_has_parent): add parens to expansion
3436         so you can ! this.
3437
3438 2004-02-08  Martin Baulig  <martin@ximian.com>
3439
3440         * image.h (MonoImage): Removed `generics_cache'.
3441
3442         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
3443         instead of a `MonoType *' argument; removed the `inflate_methods'
3444         argument.  Don't inflate methods here.
3445
3446         * loader.c (find_method): If it's a generic instance, call
3447         mono_class_init() on the `sclass->generic_inst->generic_type'.
3448
3449         * metadata.c (mono_type_size): Make this work on uninitialized
3450         generic instances; call it on the `ginst->generic_type's class.
3451
3452         * reflection.c (mono_reflection_bind_generic_parameters): Call
3453         mono_class_from_generic() to create the `ginst->klass'.
3454
3455 2004-02-08  Martin Baulig  <martin@ximian.com>
3456
3457         * class.h (MonoClass): Changed type of `generic_inst' from
3458         `MonoType *' to `MonoGenericInst *'.
3459
3460 2004-02-08  Martin Baulig  <martin@ximian.com>
3461
3462         * icall.c (ves_icall_Type_BindGenericParameters): Just call
3463         mono_type_get_object(), this is now creating a `MonoGenericInst'
3464         for MONO_TYPE_GENERICINST.
3465         (ves_icall_MonoGenericInst_GetParentType): Likewise.
3466         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
3467
3468         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
3469         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
3470         (inflated_method_get_object): Added `MonoClass *refclass' argument.
3471         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
3472         and reflected type.
3473
3474         * reflection.h (MonoReflectionInflatedMethod): Removed
3475         `declaring_type' and `reflected_type'.
3476
3477 2004-02-08  Martin Baulig  <martin@ximian.com>
3478
3479         * class.h (MonoGenericInst): Added `MonoType *parent' and
3480         `MonoType **ifaces'.
3481
3482         * reflection.h (MonoReflectionGenericInst): Removed `klass',
3483         `parent' and `interfaces'.
3484
3485         * reflection.c (mono_reflection_bind_generic_parameters): Take a
3486         `MonoType *' argument and return a `MonoType *'.
3487
3488         * icall.c
3489         (ves_icall_MonoGenericInst_GetParentType): New interncall.
3490         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
3491
3492 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
3493
3494         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
3495         valuetype marshalling.
3496
3497 2004-02-06  Martin Baulig  <martin@ximian.com>
3498
3499         * class.c
3500         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
3501         (my_mono_class_from_generic_parameter): Likewise.
3502
3503 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
3504
3505         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
3506         contents of the symbol files lazily.
3507
3508         * object.h (MonoThread): Add 'name' and 'name_len' fields.
3509
3510         * threads.h threads.c icall.c: New icalls for getting and setting the
3511         threads name.
3512
3513 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
3514
3515         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
3516         Raise an exception when the domain is not found.
3517
3518 2004-02-03  Martin Baulig  <martin@ximian.com>
3519
3520         * reflection.c (mono_image_get_methodspec_token): Use the
3521         uninflated signature; fixes gen-33.
3522
3523 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
3524
3525         * gc.c threads.c: Make the finalizer thread a normal managed thread so
3526         the finalizer code can use thread functionality.
3527
3528         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
3529         the finalizer thread.
3530
3531         * threads.c: Make some functions more robust.
3532
3533         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
3534
3535         * metadata.h: Add new marshalling conventions.
3536
3537         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
3538         stringbuilder marshalling. Fixes #53700.
3539
3540         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
3541
3542         * reflection.c (mono_image_get_type_info): Save declarative security
3543         info.
3544
3545         * reflection.c (mono_image_get_field_info): Handle uninitialized 
3546         unmanaged fields as well.
3547
3548         * appdomain.c: Bump corlib version.
3549
3550 2004-02-01  Martin Baulig  <martin@ximian.com>
3551
3552         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
3553         method type arguments.  
3554
3555 2004-01-30  Duncan Mak  <duncan@ximian.com>
3556
3557         * marshal.h: Add prototype for
3558         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
3559         and
3560         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
3561         fix the build.
3562
3563 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
3564
3565         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
3566         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
3567
3568 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
3569
3570         * marshal.c (mono_marshal_get_native_wrapper): Add support for
3571         custom marshalling of valuetypes.
3572
3573         * marshal.c: Fix some warnings.
3574
3575 2004-01-29  Martin Baulig  <martin@ximian.com>
3576
3577         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
3578         for generic method parameters.
3579
3580         * reflection.c (method_encode_methodspec): Write the uninflated
3581         signature into the methodspec table.
3582         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
3583         is always the uninflated method.
3584         (reflection_methodbuilder_to_mono_method): Copy the generic
3585         parameters from the MethodBuilder into `header->gen_params'.
3586
3587 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
3588
3589         * class.c (mono_class_from_generic_parameter): Fix warning.
3590
3591 2004-01-27  Martin Baulig  <martin@ximian.com>
3592
3593         * class.c (mono_class_from_generic_parameter): Don't create
3594         `klass->methods' here.  
3595
3596 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
3597
3598         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
3599         extension since it does not work with libraries named lib<FOO>.dll.so.
3600
3601 2004-01-25  Martin Baulig  <martin@ximian.com>
3602
3603         * class.c (mono_class_inflate_generic_type): Added support for
3604         MONO_TYPE_GENERICINST.
3605
3606         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
3607         inflate methods on open constructed types.      
3608
3609 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3610
3611         * object.c: fire ProcessExit event in the root AppDomain after running
3612         Main. Fixes bug #53299.
3613
3614 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
3615
3616         * socket-io.c: include the new socket-wrappers.h header.
3617         Use the wrappers instead of the unix socket functions to make the code
3618         more clear.
3619
3620 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
3621
3622         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
3623
3624         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
3625         Fixes #22532.
3626
3627 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
3628
3629         * reflection.c (mono_image_create_pefile): Handle the case when the
3630         entry point is not a MethodBuilder.
3631
3632         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
3633         field to ReflectionMethod since it is not allways a builder.
3634
3635         * reflection.c (type_get_fully_qualified_name): New helper function to
3636         return the fully qualified name of a type.
3637
3638         * reflection.c (encode_marshal_blob): Always emit the fully qualified
3639         type name for custom marshallers.
3640
3641         * reflection.c (mono_marshal_spec_from_builder): Ditto.
3642
3643         * class.c (mono_class_setup_vtable): If a parent class already 
3644         implements an interface, use the implementing methods from that class.
3645         Fixes #53148.
3646
3647 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3648
3649         * threadpool.c: just return instead of ExitThread to allow for thread
3650         clean up earlier.
3651
3652 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
3653
3654         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
3655         when closing resource modules.
3656
3657         * reflection.c (mono_image_create_pefile): Handle the case when the
3658         entry point is not a MethodBuilder.
3659
3660         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
3661         field to ReflectionMethod since it is not allways a builder.
3662
3663 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
3664
3665         * marshal.c (mono_marshal_get_managed_wrapper): 
3666         mono_marshal_alloc takes native int so CONV_I
3667         the arg for 64bits.
3668
3669 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
3670
3671         * reflection.c (fixup_cattrs): New function to fixup the methoddef
3672         tokens in the cattr table. Fixes #53108.
3673
3674 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3675
3676         * loader.c: don't trim ".dll" before looking up in the config file.
3677         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
3678
3679 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
3680
3681         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
3682         Return the module which contains the resource as well.
3683         (ves_icall_System_Reflection_Module_Close): New icall.
3684
3685         * appdomain.c: Bump corlib version number.
3686
3687         * image.c (mono_image_addref): New public function.
3688
3689         * assembly.c: Call mono_image_addref.
3690
3691         * reflection.c (mono_module_get_object): Increase reference count of 
3692         the image.
3693
3694         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
3695         Fixes #22532.
3696
3697         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
3698         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
3699         proper exceptions on DllImport problems.
3700
3701 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
3702
3703         * class.c, metadata.c: eliminate CSIZE macro.
3704
3705 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
3706
3707         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
3708         * object.h: Added async_callback field in MonoAsyncResult.
3709         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
3710         * verify.c: Added async_callback in MonoAsyncResult layout.
3711
3712 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
3713
3714         * reflection.c (mono_reflection_get_custom_attrs): Add support
3715         for Modules.
3716
3717 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
3718
3719         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
3720         marshalling.
3721         (mono_marshal_method_from_wrapper): Add null pointer check.
3722
3723 2004-01-16  Martin Baulig  <martin@ximian.com>
3724
3725         * debug-mono-symfile.h: Set version number to 36 and reflect
3726         latest symbol writer changes.
3727
3728 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
3729
3730         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
3731         multi-dimensional arrays.
3732         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
3733         (mono_class_from_mono_type): Use bounded_array_class_get.
3734         
3735         * class.c (mono_bounded_array_class_get): New function which takes
3736         a 'bounded' bool argument to distinguish vectors from one dimensional
3737         arrays.
3738
3739         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
3740         bounded_array_class_get if the array has bounds.
3741
3742         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
3743         Search modules loaded using AssemblyBuilder:AddModule as well.
3744
3745 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3746
3747         * appdomain.c: increased corlib version.
3748         * filewatcher.c: removed g_print.
3749         * icall.c:
3750         (get_property_info): only allocate what is actually requested.
3751         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
3752
3753 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3754
3755         * Makefile.am: added filewatcher.[ch]
3756         * filewatcher.[ch]: FileSystemWatcher runtime support.
3757         * icall.c: added new FSW icalls.
3758
3759 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
3760
3761         * string-icalls.c: fix stringbuilder regression as suggested by
3762         Iain McCoy <iain@mccoy.id.au>.
3763
3764 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
3765
3766         * process.c (process_read_stringtable_block): Recognize '007f' as
3767         a language neutral stringtable block.
3768
3769 2004-01-12  Patrik Torstensson
3770
3771         * object.h (MonoStringBuilder) : Changed layout to support our
3772         new stringbuilder class.
3773         * marshal.c: Change marshalling to support the new layout of 
3774         string builder.
3775         * appdomain.c: increased version number because new layout of
3776         string builder.
3777
3778 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
3779
3780         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
3781         assembly name as an string instead of an AssemblyName, since it is
3782         easier to extract info from it.
3783
3784         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
3785         the culture subdirectories too. Fixes #52231.
3786
3787 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3788
3789         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
3790         It takes 2 new parameters with an optional name for the method to look
3791         for and case ignoring info.
3792
3793         * threadpool.c: removed unused variable.
3794
3795 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3796
3797         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
3798         It takes 2 new parameters with an optional name for the property to look
3799         for and case ignoring info.
3800         Fixes bug #52753.
3801
3802 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
3803
3804         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
3805         Fix #52451.
3806
3807 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3808
3809         * appdomain.c:
3810         * assembly.c: escape the uri before passing it to g_filename_from_uri.
3811         Fixes bug #52630.
3812
3813 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
3814
3815         * reflection.c: Add support for more than one unmanaged resource.
3816
3817         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
3818         in field->def_value, as done in all other cases.
3819
3820         * reflection.c (mono_reflection_get_custom_attrs): Add support for
3821         TypeBuilders.
3822
3823         * reflection.c (mono_reflection_create_runtime_class): Remove 
3824         errorneous assignment to klass->element_class, since it is already
3825         done in mono_reflection_setup_internal_class.
3826
3827 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3828
3829         * gc.c: added missing LeaveCriticalSection.
3830         * icall.c: indented a couple of lines.
3831         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
3832         if we call EndInvoke inside a callback. Fixes bug #52601.
3833
3834 2004-01-07  Martin Baulig  <martin@ximian.com>
3835
3836         * mono-debug-debugger.h
3837         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
3838
3839 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
3840
3841         * appdomain.c: Use messages in NotImplementedException.
3842
3843         * exception.c (mono_get_exception_not_implemented): Now this takes
3844         a message argument.
3845
3846         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
3847         exception instead of g_asserting an aborting when something is not
3848         implemented.
3849
3850         Add some inline docs.
3851
3852 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
3853
3854         * reflection.h: Update after changes to object layout.
3855
3856         * reflection.c: Implement saving of unmanaged aka win32 resources.
3857
3858         * appdomain.c: Bump version number.
3859
3860         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
3861         Handle missing domains gracefully.
3862
3863 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
3864
3865         * file-io.c : On Windows, there are much more invalid_path_chars.
3866
3867 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
3868
3869         * class.h, object.c: prepare for GetType () speedup.
3870
3871 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
3872
3873         * profiler.c: workaround for --profile null reference exception on
3874           cygwin. Patch by Patrik Torstensson.
3875
3876 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
3877
3878         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
3879         make work for unaligned access.
3880
3881 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
3882
3883         * class.c: small cleanup (class->fields [i] -> field).
3884         * image.c: check address of metadata is valid.
3885
3886 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
3887
3888         * assembly.h assembly.c (mono_assembly_loaded): New public function to
3889         search the list of loaded assemblies.
3890
3891         * reflection.c (mono_reflection_type_from_name): Use 
3892         mono_assembly_loaded instead of mono_image_loaded.
3893
3894         * reflection.c: Fix warnings.
3895
3896 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
3897
3898         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
3899         is dynamic. This is needed since an assembly can contain both dynamic and
3900         non-dynamic images.
3901
3902         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
3903         assembly->dynamic.
3904
3905         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
3906
3907         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
3908         to store modules loaded using AddModule.
3909
3910         * reflection.c (mono_image_fill_file_table): Generalize this so it works
3911         on Modules.
3912
3913         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
3914
3915         * reflection.c (mono_image_fill_export_table_from_module): New function to
3916         fill out the EXPORTEDTYPES table from a module.
3917
3918         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
3919         into a separate function. Also handle loaded non-dynamic modules.
3920
3921         * reflection.c (mono_image_basic_init): Fix memory allocation.
3922
3923         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3924
3925         * assembly.c (mono_assembly_load_references): Make this public.
3926
3927 2003-12-19  Martin Baulig  <martin@ximian.com>
3928
3929         * class.c (mono_class_initialize_generic): Made this static, take
3930         a `MonoGenericInst *' instead of a `MonoClass *'.
3931         (mono_class_from_generic): Call mono_class_initialize_generic()
3932         unless we're already initialized or being called from
3933         do_mono_metadata_parse_generic_inst().
3934
3935         * class.h (MonoGenericInst): Added `initialized' and
3936         `init_pending' flags.
3937
3938         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
3939         `mono_class_init (gklass)' or mono_class_initialize_generic()
3940         here; set `generic_inst->init_pending' while parsing the
3941         `type_argv'.
3942
3943 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
3944
3945         * locales.c: include string.h for memxxx prototypes
3946
3947 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
3948
3949         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
3950         constructor when accessing literal fields.
3951
3952 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
3953
3954         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3955
3956         * reflection.c (assembly_add_resource_manifest): New function to fill
3957         the MANIFESTRESOURCE table.
3958
3959         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
3960
3961         * reflection.h: Update to changes in class layout.
3962
3963         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
3964         Reenable call to mono_runtime_is_shutting_down ().
3965
3966         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
3967         determine if the runtime is shutting down.
3968
3969 2003-12-16  Jackson Harper <jackson@ximian.com>
3970
3971         * icall.c: comment out call to mono_runtime_is_shutting_down to
3972         fix build.
3973         
3974 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
3975
3976         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
3977         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
3978
3979 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
3980
3981         * reflection.c: move definition of swap_with_size
3982         to before its first call
3983
3984 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
3985
3986         * appdomain.c (mono_runtime_is_shutting_down): New public function.
3987
3988         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
3989         icall.
3990
3991         * object.c: Fix warnings.
3992
3993         * icall.c (ves_icall_Type_Get...): Only consider inherited static
3994         members if FlattenHierarchy is set.
3995
3996         * reflection.c (mono_image_add_decl_security): New function to emit
3997         declarative security.
3998
3999         * reflection.h reflection.c: Add support for declarative security.
4000
4001         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
4002         
4003 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
4004
4005         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
4006         
4007         * appdomain.c verify.c: Moved corlib version checking into its own
4008         function in appdomain.c since it needs to create vtables etc.
4009
4010 2003-12-13  Patrik Torstensson <p@rxc.se>
4011
4012         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
4013         instead of unwrapped server.
4014
4015 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
4016
4017         * verify.c (check_corlib): Fix field index.
4018
4019 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
4020
4021         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
4022         GetGacPath icall.
4023
4024 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
4025
4026         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
4027         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
4028         cope with sizeof(size_t) != sizeof(guint32).
4029
4030 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4031
4032         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
4033         in case of failure.
4034
4035 2003-12-10  Mark Crichton <crichton@gimp.org>
4036
4037         * icall.c: removed the GetNonZeroBytes.  We now handle this case
4038         in managed code.
4039
4040         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
4041
4042 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
4043
4044         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
4045         marked as deleted.
4046
4047 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
4048
4049         * verify.c (check_corlib): Handle the case when the version field is 
4050         initialized by a static constructor.
4051
4052 2003-12-08  Patrik Torstensson  <p@rxc.se>
4053
4054     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
4055
4056 2003-12-08  Martin Baulig  <martin@ximian.com>
4057
4058         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
4059         a MonoReflectionGenericParameter, also take the parameter index
4060         and name as arguments.
4061         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
4062         (ves_icall_MonoGenericParam_initialize): New interncall.
4063         (ves_icall_Type_make_byref_type): New interncall.
4064
4065         * reflection.h (MonoReflectionGenericParam): Derive from
4066         MonoReflectionType, not just from MonoObject.  Added `refobj' and
4067         `index' fields.
4068
4069         * reflection.c (mono_reflection_define_generic_parameter): Create
4070         and return a new MonoReflectionGenericParam; don't initialize the
4071         constraints here.
4072         (mono_reflection_initialize_generic_parameter): New public method;
4073         initializes the constraints and creates the `param->pklass'.
4074
4075 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
4076
4077         * reflection.h reflection.c: Use the new fields 'num_types', 
4078         'num_fields' and 'num_methods' to track the number of types etc.
4079
4080         * verify.c (check_corlib): Check corlib version number.
4081
4082 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
4083
4084         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
4085         function works on all methods.
4086
4087 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
4088
4089         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
4090         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
4091         the custom_type_info flag of the transparent proxy.
4092         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
4093         objects that supports IRemotingTypeInfo.
4094         * object.h: Added custom_type_info field in transparent proxy.
4095
4096 2003-12-06  Martin Baulig  <martin@ximian.com>
4097
4098         * class.c (mono_class_create_from_generic): Removed.
4099         (mono_class_from_generic): Check `ginst->klass' before doing
4100         anything else.  This is important to fully support "recursive"
4101         generic types.
4102
4103         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
4104         empty `generic_inst->klass' before doing anything else.
4105
4106 2003-12-06  Dick Porter  <dick@ximian.com>
4107
4108         * verify.c: 
4109         * object.h:
4110         * icall.c:
4111         * locales.c: Use C structs to access class fields.  Don't do a
4112         conversion between MonoString and UChar because both are
4113         platform-endian UTF-16.  Compare now takes startindex and count
4114         parameters.  Add a char overload for IndexOf.  Speed up the
4115         invariant string IndexOf.
4116
4117 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
4118
4119         * Makefile.am (monosn_LDADD): Fix parallel build.
4120
4121 2003-12-04  Martin Baulig  <martin@ximian.com>
4122
4123         * icall.c
4124         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
4125         (ves_icall_Type_make_array_type): New interncall.       
4126
4127 2003-12-04  Martin Baulig  <martin@ximian.com>
4128
4129         * locales.c: also change it in the !HAVE_ICU case.
4130
4131 2003-12-04  Dick Porter  <dick@ximian.com>
4132
4133         * icall.c:
4134         * locales.c: construct_compareinfo is now in CompareInfo, not
4135         CultureInfo.
4136
4137 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
4138
4139         * image.c (mono_image_load_file_for_image): Cache loaded images in the
4140         image->files array.
4141
4142         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
4143         table as well.
4144
4145         * assembly.c (mono_assembly_load_references): Only load references
4146         once.
4147
4148         * class.c (mono_class_from_name): Avoid linear search of the 
4149         EXPORTEDTYPE table.
4150
4151         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
4152
4153 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
4154
4155         * image.h (MonoImage): Add 'field_cache' field.
4156
4157         * loader.c (mono_field_from_token): Cache field lookups.
4158         
4159         * reflection.c (mono_module_get_object): Fix name property.
4160
4161         * icall.c (ves_icall_get_enum_info): Update after changes to 
4162         mono_metadata_get_constant_index ().
4163
4164         * icall.c: Get rid of get_type_info icall, use a separate icall for
4165         each type property to avoid needless memory allocations. Fixes #51514.
4166
4167         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
4168         to avoid needless binary searches.
4169
4170         * class.c (class_compute_field_layout): Move the initialization of
4171         field->def_value to mono_class_vtable ().
4172
4173         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
4174         non-corlib types.
4175
4176         * object.c (mono_object_allocate): Make it inline.
4177
4178         * object.c (mono_object_allocate_spec): Make it inline.
4179         
4180 2003-12-02  Dick Porter  <dick@ximian.com>
4181
4182         * locales.c (create_NumberFormat): NumberFormatInfo construction.
4183         Patch by Mohammad DAMT (mdamt@cdl2000.com).
4184
4185 2003-12-01  Dick Porter  <dick@ximian.com>
4186
4187         * threads.c: Fix signature and call in CreateMutex and
4188         CreateEvent.
4189
4190 2003-12-01  Dick Porter  <dick@ximian.com>
4191
4192         * icall.c: 
4193         * locales.c: Implement string compares and searching
4194
4195         * object.h: Add extra Thread field
4196
4197 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
4198
4199         * reflection.c (fixup_method): Add support for MonoCMethod.
4200
4201 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
4202
4203         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
4204
4205         * reflection.c (assembly_name_to_aname): Allow extra characters in
4206         assembly names. Fixes #51468.
4207
4208 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
4209
4210         * exception.c (mono_exception_from_name_domain): New helper function.
4211
4212         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
4213         exception object in the correct domain.
4214
4215         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
4216         formatting + make a copy a the input data.
4217
4218         * loader.c (mono_get_method_from_token): Methods which contain
4219         native code do not have entries in the ImplMap.
4220
4221         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
4222         Thanks to Gonzalo for spotting this.
4223         
4224         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
4225         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
4226
4227         * assembly.h (mono_assembly_load_from): Split the second part of 
4228         assembly loading into a new public function.
4229
4230         * exception.h (mono_get_exception_bad_image_format): New function.
4231
4232 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
4233
4234         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4235         Enumerate all modules inside a dynamic assembly. Fixes #51293.
4236         
4237         * icall.c: Add new icall for creating dynamic methods.
4238
4239         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
4240
4241         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
4242
4243         * reflection.c (mono_reflection_create_dynamic_method): New icall to
4244         create a dynamic method.
4245
4246         * reflection.c (resolve_object): New helper function.
4247
4248         * reflection.c: Generalize ReflectionMethodBuilder and the functions
4249         which manipulate it so they can also work on dynamic methods.
4250
4251         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
4252         creating the MonoReflectionMethodAux structure if it is not needed.
4253         
4254         * reflection.h verify.c: Update after changes to object layout.
4255
4256         * reflection.c (method_builder_encode_signature): Fix compilation on
4257         gcc 2.95.x.
4258
4259 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
4260
4261         * appdomain.h: Added support for context static fields. Added static_data
4262           field to MonoAppContext and renamed thread_static_fields to a more
4263           generic special_static_fields in MonoAppDomain, since it can now contain
4264           context static fields.
4265         * domain.c: Updated hashtable name.
4266         * object.c: Replaced field_is_thread_static() for a more generic
4267           field_is_special_static() which also checks for context static attribute.
4268           In mono_class_vtable(), added support for static context fields.
4269         * threads.c: Changed methods that manage thread static fields to more
4270           generic methods so they can be reused both for thread and context static
4271           data.
4272         * threads.h: Declared some new methods.
4273
4274 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
4275
4276         * reflection.h: Update after changes to the managed types.
4277
4278         * reflection.c (encode_custom_modifiers): New helper function.
4279
4280         * reflection.c (method_encode_signature): Emit custom modifiers.
4281
4282         * reflection.c (field_encode_signature): Emit custom modifiers.
4283
4284 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
4285
4286         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
4287
4288         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
4289         implementation.
4290
4291         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
4292         icall.
4293
4294         * object.c (mono_field_get_value_object): New function.
4295
4296         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
4297         specific.
4298
4299 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
4300
4301         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
4302         return a preallocated out-of-memory exception instance.
4303
4304         * object.c (out_of_memory): Use the new function.
4305
4306         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
4307         flag is before the custom modifiers. Fixes #49802.
4308
4309 2003-11-16  Martin Baulig  <martin@ximian.com>
4310
4311         * class.c (mono_class_is_open_constructed_type): Implemented the
4312         MONO_TYPE_GENERICINST case.
4313
4314 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
4315
4316         * assembly.c (mono_assembly_fill_assembly_name): New function to
4317         fill out the MonoAssemblyName structure.
4318         (mono_assembly_open): Use the new function.
4319
4320         * icall.c (fill_reflection_assembly_name): New helper function.
4321
4322         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
4323         new function.
4324
4325         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
4326
4327 2003-11-15  Martin Baulig  <martin@ximian.com>
4328
4329         * class.c (mono_class_is_open_constructed_type): New public
4330         function; checks whether a type is an open constructed type,
4331         ie. whether it still contains type parameters.
4332         (mono_class_inflate_generic_type): If we're a type parameter and
4333         the inflated type is also a MONO_TYPE_(M)VAR, return the original
4334         type.
4335
4336         * class.h (MonoGenericInst): Added `guint32 is_open'.
4337
4338         * loader.c (method_from_methodspec): Check whether we're an open
4339         or closed constructed type and set `ginst->is_open'.
4340
4341         * reflection.c (mono_reflection_bind_generic_parameters): Check
4342         whether we're an open or closed constructed type and set
4343         `ginst->is_open'.
4344         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
4345         from open constructed types.
4346
4347 2003-11-15  Martin Baulig  <martin@ximian.com>
4348
4349         * reflection.c (mono_reflection_bind_generic_parameters): If we're
4350         a generic instance (instead of a generic type declaration) with
4351         unbound generic parameters, bind them to our actual types.
4352
4353 2003-11-14  Martin Baulig  <martin@ximian.com>
4354
4355         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
4356
4357         * reflection.c (mono_reflection_bind_generic_parameters): If we're
4358         an interface type, populate `res->interfaces' with instantiated
4359         versions of all the interfaces we inherit.
4360
4361 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
4362
4363         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
4364         when MONO_PATH is set but doesn't contain the install dir.
4365
4366 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4367
4368         * icall.c:
4369         (ves_icall_Type_GetInterfaces): don't return an interface twice when
4370         it's also implemented in base classes. Fixes bug #50927.
4371
4372 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
4373
4374         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
4375         if this method is called from a finalizer. Fixes #50913.
4376
4377 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
4378
4379         * threads.c: Implement VolatileRead/VolatileWrite
4380
4381         * icall.c: Add new icalls for VolatileRead/VolatileWrite
4382
4383 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
4384
4385         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
4386         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
4387         2.95.3.
4388
4389         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
4390         from Peter Ross (pro@missioncriticalit.com).
4391         
4392 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
4393
4394         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
4395
4396 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
4397
4398         * assembly.c (mono_assembly_load_references): Disable check because it
4399         triggers on older corlibs which lots of people have.
4400
4401 2003-11-12  Jackson Harper  <jackson@ximian.com>
4402
4403         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
4404         load corlib.dll if mscorlib.dll is not found.
4405         * assembly.h: Remove corlib name define.
4406         * class.c:
4407         * domain.c:
4408         * image.c: Change corlib name to mscorlib.
4409         
4410 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
4411
4412         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
4413
4414 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
4415
4416         * appdomain.h: Added loader_optimization here to sync with the C#
4417         code, and add disallow_binding_redirects field.
4418
4419 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
4420
4421         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
4422
4423         * reflection.c (mono_image_build_metadata): Fix crash on modules
4424         with no types.
4425
4426         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
4427
4428         * icall.c (ves_icall_get_method_info): Return callingConvention as
4429         well.
4430
4431         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
4432         namespaces from the EXPORTEDTYPE table as well.
4433
4434         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
4435         from all modules inside the assembly.
4436         
4437 2003-11-11  Martin Baulig  <martin@ximian.com>
4438
4439         * reflection.c (mono_reflection_bind_generic_parameters): Make
4440         this work for interfaces.
4441
4442 2003-11-11  Martin Baulig  <martin@ximian.com>
4443
4444         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
4445
4446 2003-11-11  Martin Baulig  <martin@ximian.com>
4447
4448         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
4449         "MonoInflatedMethod" and "MonoInflatedCtor".
4450
4451 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
4452
4453         * reflection.c (resolution_scope_from_image): Use the assembly table
4454         from the manifest module, since other modules don't have it.
4455
4456         * debug-helpers.c (mono_type_full_name): New helper function.
4457
4458         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
4459
4460         * image.c (mono_image_load_file_for_image): New public function which
4461         is a replacement for the load_file_for_image in class.c.
4462
4463         * assembly.c (mono_assembly_load_module): A wrapper for the function
4464         above which does assembly association and reference loading too.
4465
4466         * class.c (mono_class_from_name): Call mono_assembly_load_module.
4467
4468 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4469
4470         * appdomain.c: not all of the attributes for the full assembly name
4471         are required and the order doesn't matter. Fixes bug #50787.
4472
4473 2003-11-10  Dick Porter  <dick@ximian.com>
4474
4475         * locales.c: Use platform-endian UTF16
4476
4477 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
4478
4479         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
4480         
4481 2003-11-10  Martin Baulig  <martin@ximian.com>
4482
4483         * metadata.c
4484         (mono_metadata_load_generic_params): Make this actually work.
4485
4486         * reflection.c (mono_reflection_bind_generic_parameters): If our
4487         parent is a generic instance, pass all the `types' to it, no
4488         matter whether it has the same number of type parameters or not.
4489
4490 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
4491
4492         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
4493
4494         * assembly.c (mono_assembly_load_references): Move the image<->assembly
4495         assignment code to this function so it gets called recursively for all
4496         modules.
4497
4498         * image.c (load_modules): Remove the assembly assignment since it is
4499         now done by mono_assembly_load_references.
4500         
4501         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4502         Add 'module' argument.
4503         (mono_module_get_types): New helper function.
4504         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
4505
4506 2003-11-08  Martin Baulig  <martin@ximian.com>
4507
4508         * class.c (mono_class_inflate_generic_method): Interface method
4509         don't have a header.
4510
4511         * reflection.c (mono_image_get_methodspec_token): Take an
4512         additional `MonoGenericInst *' argument instead of reading it from
4513         the header; this is necessary to support interfaces.
4514         (mono_image_create_token): Pass the `MonoGenericInst *' from the
4515         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
4516         (inflated_method_get_object): Take an additional `MonoGenericInst *'
4517         argument.
4518
4519         * reflection.h (MonoReflectionInflatedMethod): Added
4520         `MonoGenericInst *ginst'.
4521
4522 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
4523
4524         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
4525
4526 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
4527
4528         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
4529
4530 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
4531
4532         * reflection.c 
4533         (reflection_methodbuilder_from_method_builder):
4534         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
4535         initialize a ReflectionMethodBuilder structure.
4536         (mono_image_get_methodbuilder_token):
4537         (mono_image_get_ctorbuilder_token): New functions to emit memberref
4538         tokens which point to types in another module inside the same assembly.
4539
4540         * reflection.c: Use the new helper functions.
4541         
4542         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
4543
4544         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
4545         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
4546
4547         * reflection.c (resolution_scope_from_image): Emit a moduleref if
4548         neccesary.
4549
4550         * reflection.c (mono_image_build_metadata): Emit metadata only for the
4551         current module. Emit the manifest only for the main module.
4552
4553         * reflection.c (mono_image_create_token): Add assertion when a 
4554         memberref needs to be created.
4555
4556         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
4557
4558         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
4559         larger buffer for the custom attribute blob. Fixes #50637.
4560         
4561 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4562
4563         * threadpool.c: notify listener on async processing handles after
4564         invoking the async callback. Thanks to Zoltan.
4565
4566 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
4567
4568         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
4569         avoid code duplication.
4570
4571         * reflection.h (MonoDynamicImage): New type which is currently unused,
4572         but will be used through the ref.emit code in place of 
4573         MonoDynamicAssembly.
4574
4575         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
4576         object layout.
4577
4578         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
4579         a MonoDynamicImage instead of just a MonoImage.
4580         
4581         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
4582         icalls to ModuleBuilder but keep their semantics, so they will work
4583         with moduleb->assemblyb. This will change later.
4584         
4585 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
4586
4587         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
4588         object layout.
4589
4590         * reflection.c (mono_image_build_metadata): Avoid creation of a default
4591         main module, since it is now done by the managed code.
4592
4593 2003-11-03  Martin Baulig  <martin@ximian.com>
4594
4595         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
4596         `ginst->klass' here.
4597         (method_encode_methodspec): Don't use the `ginst->generic_method's
4598         klass if it's a generic instance, use `ginst->klass' in this case.
4599
4600 2003-11-03  Martin Baulig  <martin@ximian.com>
4601
4602         * reflection.c (mono_image_get_generic_method_param_info):
4603         Removed, use mono_image_get_generic_param_info() instead.
4604         (mono_image_get_type_info): Write the GenericParam table before
4605         the Method table.  This is neccessary because in the GenericParam
4606         table, type parameters of the class (ie. '!0' etc.) must come
4607         before the ones from its generic methods (ie. '!!0' etc).
4608
4609 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
4610
4611         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
4612
4613 2003-11-02  Martin Baulig  <martin@ximian.com>
4614
4615         * reflection.c (create_generic_typespec): Take a
4616         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
4617         the generic parameters from it.
4618
4619 2003-11-02  Martin Baulig  <martin@ximian.com>
4620
4621         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
4622         instead of a `MonoClassField *' since we just need the type.
4623         (create_generic_typespec): New static function.  Creates a
4624         TypeSpec token for a generic type declaration.
4625         (mono_image_get_generic_field_token): New static function.
4626         (mono_image_create_token): If we're a FieldBuilder in a generic
4627         type declaration, call mono_image_get_generic_field_token() to get
4628         the token.
4629
4630 2003-11-02  Martin Baulig  <martin@ximian.com>
4631
4632         * reflection.h
4633         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
4634         `MonoReflectionGenericInst *declaring_type' and
4635         `MonoReflectionGenericInst *reflected_type' fields.
4636
4637         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
4638         `MonoReflectionGenericInst *declaring_type' and a
4639         `MonoReflectionGenericInst *reflected_type' argument instead of a
4640         single `MonoReflectionGenericInst *type' one.  Set
4641         `res->declaring_type' and `res->reflected_type' from them.
4642         (mono_reflection_inflate_field): Likewise.      
4643
4644 2003-11-02  Martin Baulig  <martin@ximian.com>
4645
4646         * class.c (mono_class_setup_vtable): Don't store generic methods
4647         in the vtable.  
4648
4649 2003-11-02  Martin Baulig  <martin@ximian.com>
4650
4651         * reflection.h (MonoReflectionGenericInst): Added
4652         `MonoReflectionType *declaring_type'.
4653
4654         * reflection.c (mono_reflection_bind_generic_parameters): Use
4655         `if (tb->parent)' instead of `klass->parent'.
4656
4657 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
4658
4659         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
4660         with an empty ASSEMBLY table.
4661
4662         * reflection.c (mono_image_build_metadata): Avoid using the same loop
4663         variable in the inner and outer loops.
4664
4665 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
4666
4667         * metadata.h (mono_metadata_make_token): Put parentheses around macro
4668         argument.
4669
4670         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
4671         
4672         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
4673         icalls. Instead, do everything in managed code. This is needed since
4674         it is hard to restore the original domain etc. in unmanaged code in the
4675         presence of undeniable exceptions.
4676
4677         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
4678         New icalls to push and pop appdomain refs.
4679
4680 2003-10-31  Martin Baulig  <martin@ximian.com>
4681
4682         * class.c (inflate_generic_type): Renamed to
4683         mono_class_inflate_generic_type() and made it public.
4684
4685         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
4686         New interncall.
4687
4688         * loader.c (mono_field_from_memberref): Also set the retklass for
4689         typespecs.
4690
4691         * fielder.c (mono_image_get_inflated_field_token): New static
4692         method; creates a metadata token for an inflated field.
4693         (mono_image_create_token, fixup_method): Added support for
4694         "MonoInflatedField".
4695         (fieldbuilder_to_mono_class_field): New static function.
4696         (mono_reflection_inflate_field): New public function.
4697
4698         * reflection.h
4699         (MonoReflectionGenericInst): Added `MonoArray *fields'.
4700         (MonoReflectionInflatedField): New typedef.     
4701
4702 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
4703
4704         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
4705         for Solaris and other platforms without s6_addr16
4706
4707 2003-10-30  Martin Baulig  <martin@ximian.com>
4708
4709         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
4710         argument instead of two.
4711         (mono_class_inflate_generic_signature): Likewise.
4712         (inflate_generic_header): Likewise.
4713         (mono_class_inflate_generic_method): Likewise.  In addition, if
4714         `ginst->klass' is set, it becomes the new `method->klass'.
4715
4716         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
4717         field.
4718
4719         * reflection.c (encode_generic_method_sig): Write a 0xa as the
4720         first byte. [FIXME]
4721         (method_encode_methodspec): If we have generic parameters, create
4722         a MethodSpec instead of a MethodRef.
4723         (fixup_method): Added support for "MonoInflatedMethod" and
4724         "MonoInflatedCtor".
4725         (mono_image_create_token): Added support for "MonoInflatedMethod"
4726         and "MonoInflatedCtor".
4727         (inflated_method_get_object): New static function; returns a
4728         managed "System.Reflection.MonoInflatedMethod" object.
4729         (mono_reflection_bind_generic_method_parameters): Return a
4730         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
4731         (mono_reflection_inflate_method_or_ctor): Likewise.
4732         (mono_image_get_generic_method_param_info): Initialize unused
4733         fields to zero.
4734         (mono_image_get_generic_param_info): Likewise.
4735
4736         * reflection.h (MonoReflectionInflatedMethod): New public
4737         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
4738         "S.R.MonoInflatedCtor" classes.
4739
4740         * loader.c (method_from_memberref): If we're a TypeSpec and it
4741         resolves to a generic instance, inflate the method.
4742
4743 2003-10-28  Dick Porter  <dick@ximian.com>
4744
4745         * object.c (mono_runtime_run_main): Convert command-line arguments
4746         into utf8, falling back to the user's locale encoding to do so.
4747
4748 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
4749
4750         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
4751         at this time.
4752
4753         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
4754
4755         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
4756         up icalls at method definition time. Partially fixes #33569.
4757
4758 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
4759
4760         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
4761         marshalling of arrays. Fixes #50116.
4762
4763         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
4764
4765         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
4766         points to a vtable in the dying appdomain.
4767
4768         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
4769         listeners into unmanaged code inside the lock.
4770
4771         * object.c (mono_class_vtable): Turn off typed allocation in non-root
4772         domains and add some comments.
4773
4774 2003-10-25  Martin Baulig  <martin@ximian.com>
4775
4776         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
4777
4778         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
4779
4780         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
4781         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
4782         currently parsing.  Create the generic class and store it in
4783         `generic_inst->klass' before parsing the type arguments.  This is
4784         required to support "recursive" definitions; see mcs/tests/gen-23.cs
4785         for an example.
4786         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
4787         to support recursive typespec entries.
4788
4789         * class.c (mono_class_setup_parent): If our parent is a generic
4790         instance, we may get called before it has its name set.
4791         (mono_class_from_generic): Splitted into
4792         mono_class_create_from_generic() and mono_class_initialize_generic().
4793
4794 2003-10-25  Martin Baulig  <martin@ximian.com>
4795
4796         * icall.c (ves_icall_Type_BindGenericParameters): Return a
4797         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
4798         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
4799         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
4800
4801         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
4802         (create_typespec): Likewise.
4803         (mono_reflection_bind_generic_parameters): Return a
4804         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
4805         (mono_reflection_inflate_method_or_ctor): New public function.
4806
4807         * reflection.h (MonoReflectionGenericInst): New typedef.        
4808
4809 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
4810
4811         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
4812         inside the domain lock. Fixes #49993.
4813         
4814         * object.c (mono_class_vtable): When typed allocation is used, 
4815         allocate vtables in the GC heap instead of in the mempool, since the
4816         vtables contain GC descriptors which are used by the collector even
4817         after the domain owning the mempool is unloaded.
4818
4819         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
4820
4821         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
4822         reflect what it does. Also invalidate mempools instead of freeing
4823         them if a define is set.
4824
4825         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
4826         of the appdomain.
4827         
4828         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
4829         hold the finalizable objects in this domain.
4830
4831         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
4832         appdomain.
4833
4834         * appdomain.c (mono_domain_set): New function to set the current
4835         appdomain, but only if it is not being unloaded.
4836
4837         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
4838         appdomain which is being unloaded.
4839         
4840         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
4841         unloading of the root appdomain.
4842
4843         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
4844         icall to execute a method in another appdomain. Intended as a 
4845         replacement for InternalSetDomain, which can confuse the code 
4846         generation in the JIT.
4847
4848         * appdomain.c (mono_domain_is_unloading): New function to determine
4849         whenever an appdomain is unloading.
4850
4851         * appdomain.c (mono_domain_unload): New function to correctly unload
4852         an appdomain.
4853
4854         * assembly.c (mono_assembly_load_references): Check that an assembly
4855         does not references itself.
4856
4857         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
4858         domain manually, it asks the finalizer thread to do it, then waits for
4859         the result. Also added a timeout.
4860
4861         * icall.c: Register the new icalls.
4862
4863         * threads.h threads.c: Export the mono_gc_stop_world and 
4864         mono_gc_start_world functions.
4865         
4866         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
4867         function to fill out the mempool with 0x2a.
4868
4869 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
4870
4871         * reflection.h (MonoReflectionMethodAux): New structure to store
4872         information which is rarely used, thus is not in the MonoMethod
4873         structure.
4874
4875         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
4876         store the aux info.
4877
4878         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
4879         and marshalling info into the aux structure.
4880
4881         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
4882         from the aux structure.
4883
4884         * loader.c (mono_method_get_param_names): Retrieve the param names from
4885         the aux structure.
4886         
4887 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
4888
4889         * exception.h exception.c: Add AppDomainUnloadedException && fix 
4890         warning.
4891
4892 2003-10-21  Dick Porter  <dick@ximian.com>
4893
4894         * socket-io.c
4895         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
4896         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
4897
4898 2003-10-21  Martin Baulig  <martin@ximian.com>
4899
4900         * reflection.c (mono_reflection_bind_generic_parameters):
4901         `klass->parent' is NULL for interfaces.
4902
4903 2003-10-21  Martin Baulig  <martin@ximian.com>
4904
4905         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
4906
4907 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
4908
4909         * exception.c (mono_exception_from_name_msg): New helper function for
4910         creating exceptions and initializing their message field.
4911
4912         * exception.c: Simplify functions using the new helper.
4913
4914         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
4915         New function.
4916
4917         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
4918         mono_raise_exception, since otherwise gcc doesn't generate the function
4919         epilog for raise_exception, confusing the stack unwinding in the JIT.
4920         Fixes #45043.
4921
4922         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
4923         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
4924         Fixes #49499.
4925
4926 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4927
4928         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
4929         utf8.
4930
4931 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
4932
4933         * icall.c: Removed GetUninitializedObject method because
4934           AllocateUninitializedClassInstance does the same.
4935
4936 2003-10-18  Martin Baulig  <martin@ximian.com>
4937
4938         * class.c (inflate_generic_signature): Renamed to
4939         mono_class_inflate_generic_signature() and made it public.
4940         (my_mono_class_from_generic_parameter): New static function; if we
4941         don't already have the generic parameter's MonoClass, create a
4942         very simple one which is just used internally in the runtime and
4943         not passed back to managed code.
4944
4945         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
4946
4947         * metadata.h (MonoMethodSignature): Moved the
4948         `MonoGenericParam *gen_params' to the MonoMethodHeader.
4949         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
4950
4951         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
4952         ves_icall_MonoMethod_GetGenericArguments(); this is now an
4953         interncall on the MonoMethod class, not on MethodInfo.
4954         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
4955         calling mono_reflection_bind_generic_method_parameters() directly.
4956
4957         * loader.c (mono_method_get_signature): If this is a MethodSpec;
4958         return the already computed `method->signature'.
4959         (method_from_methodspec): New static function to load a method
4960         from a MethodSpec entry.
4961         (mono_get_method_from_token): Call the new method_from_methodspec()
4962         for MethodSpec tokens.  
4963         (mono_get_method_from_token): If we're a generic method, load the
4964         type parameters.
4965
4966         * reflection.c (mono_image_get_memberref_token): Allow
4967         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
4968         table.
4969         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
4970         (mono_image_create_token): First check whether it's a generic
4971         method (so we'd need to create a MethodSpec), then do the other
4972         two alternatives.
4973         (mono_reflection_bind_generic_method_parameters): Return a
4974         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
4975         called directly from the interncall.
4976
4977 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
4978
4979         * reflection.c (load_public_key): Move loading of the public key
4980         into managed code.
4981
4982         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
4983
4984         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
4985         fields.
4986
4987         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
4988         culture, hash_alg and public_key. Fixes #49555.
4989
4990 2003-10-17  Martin Baulig  <martin@ximian.com>
4991
4992         * class.h (MonoGenericInst): Moved this declaration here and added
4993         `MonoMethod *generic_method'.
4994
4995         * icall.c
4996         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
4997         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
4998
4999         * metadata.c (mono_metadata_type_equal): Two types of
5000         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
5001         index; ie. don't compare the address of the `MonoGenericParam'
5002         structure.
5003         (mono_metadata_load_generic_params): Removed the `MonoMethod
5004         *method' argument.
5005
5006         * metadata.h (MonoGenericInst): Moved declaration to class.h.
5007         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
5008
5009         * reflection.c (method_encode_signature): Encode the number of
5010         generic parameters.
5011         (encode_generic_method_sig): New static function.
5012         (method_encode_methodspec): New static function; creates an entry
5013         in the MethodSpec table for a generic method.
5014         (mono_image_get_methodspec_token): New static function.
5015         (mono_image_create_token): Call mono_image_get_methodspec_token()
5016         for generic methods.
5017         (mono_reflection_bind_generic_method_parameters): New public
5018         function.  Instantiates a generic method.
5019
5020 2003-10-16  Martin Baulig  <martin@ximian.com>
5021
5022         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
5023         *gen_params' here from MonoMethodHeader.
5024
5025         * metadata.c (mono_metadata_parse_method_signature): If we have
5026         generic parameters, initialize `method->gen_params' and then set
5027         the correct `type->data.generic_param' in all the parameters.
5028
5029 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
5030
5031         * threads.c (mono_threads_get_default_stacksize): New function to 
5032         return the default stacksize.
5033
5034         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
5035         termination of the finalizer thread, since the previous method had
5036         race conditions. Fixes #49628.
5037
5038         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
5039         as for the other managed threads.
5040
5041 2003-10-16  Martin Baulig  <martin@ximian.com>
5042
5043         * class.c (inflate_generic_signature): Copy `generic_param_count'
5044         and `gen_params'.
5045
5046         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
5047         New interncall.
5048
5049         * metadata.c (mono_metadata_parse_method_signature): Actually set
5050         the `method->generic_param_count' here.
5051         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
5052
5053 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
5054
5055         * object.h: Add a new field to TypedRef to simplify the implementation
5056         of the REFANY opcodes in the JIT.
5057
5058         * icall.c: Make use of the new field.
5059
5060         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
5061         dynamically.
5062
5063 2003-10-15  Martin Baulig  <martin@ximian.com>
5064
5065         * class.c (mono_class_from_gen_param): Renamed to
5066         mono_class_from_generic_parameter() and moved most of the
5067         functionality from mono_reflection_define_generic_parameter()
5068         here; ie. we create a "real" class here.
5069         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
5070         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
5071         previously been called.
5072
5073         * class.h (MonoGenericParam): Moved the declaration of this struct
5074         here from metadata.h and added `MonoMethod *method'.
5075
5076         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
5077         interncall.
5078
5079         * loader.c (mono_get_method_from_token): If we have any generic
5080         parameters, call mono_metadata_load_generic_params() to read them
5081         from the MONO_TABLE_GENERICPAR.
5082
5083         * metadata.c (mono_metadata_load_generic_params): Added
5084         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
5085
5086         * metadata.h (MonoMethodSignature): Replaced
5087         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
5088         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
5089
5090         * reflection.c (mono_reflection_define_generic_parameter): Moved
5091         most of the functionality into the new
5092         mono_class_from_generic_parameter(); set the `method' field if
5093         we're a method parameter.       
5094
5095 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
5096
5097         * marshal.c (emit_struct_conv): if native size is 0
5098         emit no code.
5099
5100 2003-10-14  Martin Baulig  <martin@ximian.com>
5101
5102         * icall.c: The generics API has changed in the spec since it was
5103         added to System.Type; these modifications make it match the spec
5104         again.
5105         (ves_icall_Type_GetGenericParameters): Renamed to
5106         `ves_icall_Type_GetGenericArguments'.
5107         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
5108         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
5109         `ves_icall_MonoType_get_HasGenericArguments'.
5110         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
5111         `ves_icall_MonoType_get_IsGenericParameter'.
5112         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
5113         this is no interncall anymore.
5114         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
5115         `ves_icall_TypeBuilder_get_IsGenericParameter'.
5116
5117 2003-10-14  Martin Baulig  <martin@ximian.com>
5118
5119         * reflection.c (mono_reflection_bind_generic_parameters): Also
5120         inflate generic methods if we're reading the class from IL.
5121
5122 2003-10-13  Martin Baulig  <martin@ximian.com>
5123
5124         * reflection.c (mono_reflection_define_generic_parameter): This
5125         method isn't called directly from the icall anymore; take a
5126         `MonoReflectionAssemblyBuilder *' so we can use this for type and
5127         method generic parameters.
5128         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
5129         (method_builder_encode_signature): Encode generic parameters.
5130         (mono_image_get_method_info): Write generic params to the
5131         MONO_TABLE_GENERICPARAM table.
5132
5133         * reflection.h (MonoReflectionMethodBuilder): Added
5134         `MonoArray *generic_params'.
5135
5136         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
5137
5138         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
5139         wrapper for mono_reflection_define_generic_parameter().
5140         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
5141
5142 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
5143
5144         * marshal.h: Add missing function to fix build.
5145
5146         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
5147         the SetLastError pinvoke attribute.
5148
5149         * marshal.c (mono_marshal_set_last_error): New helper function called
5150         by the generated code.
5151         
5152         * marshal.c (mono_mb_emit_branch): New helper function.
5153
5154         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
5155
5156         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
5157         classes as parameters and return values of delegates. Fixes #29256. 
5158
5159 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
5160
5161         * locales.c: use gint32 in non HAVE_ICU case
5162
5163 2003-10-11  Martin Baulig  <martin@ximian.com>
5164
5165         * mono-debug.c (mono_debug_add_method): Added a workaround for
5166         bug #48591.
5167
5168 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
5169
5170         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
5171         delegates passed to native code must use the STDCALL calling 
5172         convention. Fixes #35987.
5173
5174 2003-10-10  Martin Baulig  <martin@ximian.com>
5175
5176         * class.c (inflate_generic_type): If we're inflating for a generic
5177         type instance (and not for a generic method), return
5178         MONO_TYPE_MVAR unchanged.
5179
5180 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5181
5182         * string-icalls.c: Join ignores null strings in the source array.
5183         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
5184         * threads.c: GetAvailableTheads is slightly more accurate.
5185
5186 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
5187
5188         * threads.h threads.c : add mono_threads_set_default_stacksize
5189         and pass default to CreateThread calls.
5190
5191 2003-10-09  Dick Porter  <dick@ximian.com>
5192
5193         * icall.c:
5194         * locales.h:
5195         * locales.c: Internal calls for constructing CultureInfo and
5196         related objects from libicu (if its available.)
5197
5198 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
5199
5200         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
5201
5202 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5203
5204         * threadpool.c: added an argument to async_invoke_thread that is the
5205         item to process, pass the MonoAsyncResult to the thread start function
5206         when creating a new thread. This way we don't need to acquire any lock
5207         when we're creating a new thread. Readded a semaphore for faster
5208         response times (instead of that Sleep i added).
5209
5210 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
5211
5212         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
5213         get daylight change dates better on Windows, fix handling
5214         of platforms without tm_gmtoff.
5215
5216 2003-10-06  Martin Baulig  <martin@ximian.com>
5217
5218         * class.c (inflate_generic_method): Renamed to
5219         mono_class_inflate_generic_method() and made public.
5220         (mono_class_init): Don't inflate the generic methods here.
5221         (mono_class_from_generic): Added `gboolean inflate_methods'
5222         argument.  Inflate the methods here.
5223
5224         * loader.c (mono_method_get_param_names): Ignore instances of
5225         generic types for the moment.
5226
5227         * reflection.c (fixup_method): Added support for inflated methods.
5228         (mono_image_create_token): Use mono_image_get_methodref_token()
5229         for inflated methods.
5230         (mono_custom_attrs_from_param): Ignore instances of generic types
5231         for the moment.
5232         (mono_reflection_bind_generic_parameters): New public function.
5233         Moved all the functionality from
5234         ves_icall_Type_BindGenericParameters() here and added support for
5235         dynamic types.
5236         (mono_reflection_define_generic_parameter): Initialize
5237         `klass->methods' here.
5238
5239         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
5240         functionality into mono_reflection_define_generic_parameter().
5241         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
5242         TypeBuilder, return that TypeBuilder.
5243
5244 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5245
5246         * appdomain.c: removed mono_delegate_semaphore.
5247
5248         * threadpool.c:
5249         (mono_thread_pool_add): moved hash table creation inside and the thread 
5250         creation outside of the critical region.
5251         (mono_thread_pool_finish): removed obsolete code.
5252         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
5253         continue or exit the thread depending on the queue.
5254
5255 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
5256
5257         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
5258         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
5259         handle more bool marshalling options
5260
5261 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
5262
5263         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
5264         arrays of structs. Also add a more descriptive error message when
5265         a structure member is marshalled as LPArray.
5266
5267 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
5268
5269         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5270         marshalling arrays of complex types. Fixes #29098. Also remove an
5271         usused and incomplete function.
5272
5273 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
5274
5275         * gc.c: report heap_size - free_bytes as total memory allocated
5276         (bug#49362).
5277
5278 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
5279
5280         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
5281         fix timezone handling problems on Windows.
5282         
5283         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
5284         asserts when the year is outside the range handled by ms the functions.
5285
5286         * class.c (setup_interface_offsets): If the class is an interface,
5287         fill out its interface_offsets slot.
5288
5289 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5290
5291         * threadpool.c: mark threadpool threads as background.
5292
5293 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
5294
5295         * decimal.c - define DECINLINE to nothing if not using GCC
5296
5297 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
5298
5299         * assembly.c: More refcount fixes.
5300
5301 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5302
5303         * string-icalls.c: if we're not trimming, return the same string.
5304         When not splitting, don't create a new string.
5305
5306 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5307
5308         * image.c:
5309         (mono_image_open): increment the ref_count inside the critical section.
5310
5311 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
5312
5313         * image.c (mono_image_open): Fix reference counting bug.
5314
5315 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
5316
5317         * marshal.c (mono_marshal_type_size) struct alignment changed for 
5318         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
5319         64bits. Avoid leak in mono_marshal_get_native_wrapper when
5320         mono_lookup_pinvoke_call throws.        
5321
5322 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
5323
5324         * reflection.c (mono_reflection_parse_type): Fix #49114.
5325
5326         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
5327         temporary workaround for cygwin header problem.
5328
5329         * object.c (mono_object_isinst): Synchronize this with the code
5330         generated by the JIT for casts.
5331
5332 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
5333
5334         * reflection.c (encode_type): Fix #38332.
5335
5336 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
5337
5338         * marshal.c (mono_marshal_method_from_wrapper): New function to return
5339         the original method from the wrapper method.
5340
5341 2003-09-25  Martin Baulig  <martin@ximian.com>
5342
5343         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
5344         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
5345         (ves_icall_Type_get_IsGenericInstance): New interncall.
5346
5347 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
5348
5349         * object.c: fix cast warning in big endian code.
5350
5351 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
5352
5353         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
5354         
5355 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5356
5357         * assembly.c: don't call check_env from mono_assembly_load. It's
5358         already done once in mono_assemblies_init and may cause headaches when
5359         multiple threads are loading assemblies.
5360
5361 2003-09-19  Martin Baulig  <martin@ximian.com>
5362
5363         * reflection.c (mono_reflection_define_generic_parameter): Don't
5364         allocate `klass->methods', set `klass->flags' to
5365         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
5366
5367 2003-09-18  Martin Baulig  <martin@ximian.com>
5368
5369         * class.c (mono_class_init): Don't create `class->methods' if it's
5370         already initialized.
5371
5372         * metadata.c (mono_metadata_load_generic_params): Make this
5373         actually work.
5374
5375         * reflection.c (mono_reflection_define_generic_parameter): Set
5376         parent class and interfaces from the constraints.
5377
5378         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
5379         to keep this struct in sync with the declaration in TypeBuilder.cs.
5380
5381 2003-09-17  Martin Baulig  <martin@ximian.com>
5382
5383         * metadata.h (MonoType): Replaced the data's `int type_param'
5384         field with `MonoGenericParam *generic_param'.
5385         (MonoGenericParam): Added `MonoClass *klass'.
5386
5387         * class.c (mono_class_from_gen_param): Removed the
5388         `MonoImage *image' and `int type_num' arguments.
5389
5390         * metadata.c (mono_metadata_parse_generic_param): New static
5391         method; creates a MonoGenericParam which just contains the index.
5392         (do_mono_metadata_parse_type): Call
5393         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
5394         MONO_TYPE_MVAR.
5395
5396         * reflection.c (mono_image_typedef_or_ref): Generic type
5397         parameters may be in the same assembly, but never use a typedef
5398         for them.
5399         (mono_reflection_define_generic_parameter): We're now creating a
5400         "real" class for the type parameter; it's now safe to call
5401         mono_class_from_mono_type() on the class'es type, it'll do the
5402         right thing.
5403
5404 2003-09-16  Martin Baulig  <martin@ximian.com>
5405
5406         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
5407         `symfile->range_entry_size' and `symfile->class_entry_size' here;
5408         the `symfile' data structure must be fully initialized before it
5409         gets added to the table.
5410
5411 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
5412
5413         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
5414
5415         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
5416         class init trampolines.
5417
5418 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
5419
5420         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
5421         to the built-in profiler to turn off time and allocation profiling
5422         respectively.
5423
5424 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
5425
5426         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
5427         g_direct_equal.
5428
5429         * debug-helpers.c (mono_method_full_name): Print the wrapper type
5430         in human readable form.
5431
5432 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
5433
5434         * reflection.c icall.c: Fixed warnings.
5435
5436         * image.c (load_class_names): Use a temporary hash table to hold the
5437         namespaces in order to avoid doing many string comparisons.
5438
5439         * image.h: Fix typo.
5440
5441         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
5442         Pass NULL instead of g_direct_equal to the GHashTable constructor 
5443         since the NULL case is short-circuited inside g_hash_table_lookup, 
5444         leading to better performance.  
5445
5446         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
5447         obtain the first custom attribute for a given index. Depends on the
5448         CustomAttribute table being sorted by the parent field.
5449
5450         * reflection.c (mono_custom_attrs_from_index): Use the new function 
5451         for better performance.
5452
5453 2003-09-07  Martin Baulig  <martin@ximian.com>
5454
5455         * class.c (mono_class_init): If we're a generic instance, inflate
5456         all our methods instead of loading them from the image.
5457         (mono_class_from_generic): Set `class->methods = gklass->methods'.
5458
5459 2003-09-07  Martin Baulig  <martin@ximian.com>
5460
5461         * mono-debug-debugger.c: Added support for constructors.
5462
5463 2003-09-06  Martin Baulig  <martin@ximian.com>
5464
5465         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
5466         New interncall.
5467
5468         * reflection.c (mono_reflection_setup_generic_class): Call
5469         ensure_runtime_vtable() to create the vtable.
5470
5471 2003-09-05  Martin Baulig  <martin@ximian.com>
5472
5473         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
5474         MONO_TYPE_MVAR.
5475
5476 2003-09-04  Martin Baulig  <martin@ximian.com>
5477
5478         * reflection.c (mono_reflection_define_generic_parameter): Generic
5479         parameters start with zero.
5480
5481 2003-09-04  Martin Baulig  <martin@ximian.com>
5482
5483         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5484
5485         * reflection.h (MonoReflectionGenericParam): New typedef.
5486         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
5487         the generic parameters from the managed TypeBuilder.
5488
5489         * reflection.c (mono_reflection_define_generic_parameter): New function.
5490         (mono_reflection_create_runtime_class): Encode generic parameters.
5491         (mono_reflection_setup_generic_class): New function; this is
5492         called after adding adding all generic params to the TypeBuilder.
5493         (encode_type): Added MONO_TYPE_VAR.
5494
5495 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
5496
5497         * class.h class.c (mono_class_needs_cctor_run): Moved this method
5498         here from the JIT.
5499
5500         * assembly.h assembly.c: Moved the AOT loading code into an assembly
5501         load hook.
5502
5503 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
5504
5505         * reflection.h reflection.c class.h class.c: Delete duplicate 
5506         definition of mono_type_get_name () from reflection.c and export the
5507         one in class.c.
5508
5509         * class.c: Class loading fixes from Bernie Solomon 
5510         (bernard@ugsolutions.com).
5511
5512         * reflection.c: Endianness fixes from Bernie Solomon 
5513         (bernard@ugsolutions.com).
5514         
5515 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
5516
5517         * assembly.h assembly.c: Define a file format version for AOT
5518         libraries.
5519         
5520         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
5521
5522         * appdomain.h (MonoJitInfo): New field to determine whenever the
5523         code is domain neutral.
5524         
5525 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
5526
5527         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
5528
5529 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
5530
5531         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
5532         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
5533         Avoid caching the result since strings must be domain specific. Fixes
5534         #48050.
5535
5536 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
5537
5538         * marshal.c (mono_marshal_init): Make this callable multiple times
5539         since it is hard to find a correct place to call it.
5540
5541         * object.c (mono_runtime_class_init): Execute static constructors in
5542         the correct appdomain.
5543
5544         * image.c (build_guid_table): Handle the case when multiple images have
5545         the same GUID.
5546
5547 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5548
5549         * icall.c: added a couple of icalls for System.Web.
5550
5551 2003-08-28  Martin Baulig  <martin@ximian.com>
5552
5553         * icall.c (ves_icall_Type_BindGenericParameters): Use
5554         `klass->generic_inst' instead of `&klass->byval_arg' in the
5555         mono_type_get_object() call.  The returned type must be
5556         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
5557
5558 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
5559
5560         * NOTES: New file.
5561
5562         * object.c (mono_class_proxy_vtable): Make it thread safe.
5563
5564         * pedump.c: Fix warning.
5565
5566         * object.c appdomain.h: Get rid of metadata_section. 
5567         It is no longer needed and it was causing deadlocks with domain->lock.
5568
5569         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
5570
5571 2003-08-26  Martin Baulig  <martin@ximian.com>
5572
5573         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
5574
5575 2003-08-26  Martin Baulig  <martin@ximian.com>
5576
5577         * pedump.c (main): Call mono_metadata_init(),
5578         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
5579         and mono_loader_init().
5580
5581 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
5582
5583         * loader.h: Add missing include to fix build.
5584
5585         * image.h: mono_image_load_references is no more.
5586
5587         * assembly.c: Reworked assembly loading to make it really thread safe.
5588         After these changes, the assembly returned by mono_assembly_open is
5589         fully initialized, i.e. all its references assemblies are loaded.
5590
5591         * assembly.c (mono_image_load_references): Renamed to 
5592         mono_assembly_load_references, and made private, since clients no
5593         longer need to call it.
5594
5595         * class.c: Removed calls to mono_assembly_load_references, since it was
5596         a source of deadlocks.
5597
5598         * loader.h loader.c class.h class.c: Protect data structures using a 
5599         new lock, the loader lock.
5600
5601         * class.c (mono_class_setup_vtable): Create temporary hash tables and
5602         GPtrArrays only when needed.
5603
5604         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
5605         into empty structures by mcs. Fixes pinvoke7.cs.
5606         
5607         * domain.c (mono_init): Call a new initialization function.
5608
5609         * appdomain.c (mono_runtime_init): Call the new initializer function
5610         of the marshal module.
5611
5612         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
5613         inserted into empty structures by mcs. Fixes pinvoke7.cs.
5614
5615         * marshal.h marshal.c: Added locks around the wrapper caches to make
5616         this module thread safe.
5617
5618         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
5619         this argument. Fixes pinvoke1.exe.
5620
5621 2003-08-25  Lluis Sanchez <lluis@ximian.com>
5622
5623         * object.h: Added call_type field to MonoMethodMessage and the corresponding
5624         enumeration of values. Removed fields to store remote call output values in
5625         MonoAsyncResult. Not needed any more.
5626         * object.c: Initialize call_type and async_result fields in mono_message_init.
5627         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
5628         dispatching the message.
5629         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
5630         async call to finish. To do it use a message with EndInvoke call type.
5631
5632 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
5633
5634         * loader.h loader.c (mono_method_hash_marhal_info): New function which
5635         determines whenever a method has marshalling info.
5636
5637 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5638
5639         * assembly.c: fix the build on windows.
5640
5641 2003-08-22 Lluis Sanchez <lluis@ximian.com>
5642
5643         * object.cs: Fixed bug #47785.
5644
5645 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
5646
5647         * string-icalls.c (StringReplace): If their are no occurances of
5648         the old string found return a reference to the supplied
5649         string. This saves some memory and matches MS behavoir.
5650         
5651 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5652
5653         * socket-io.c: fixed compilation for systems that define AF_INET6
5654         and don't define SOL_IP/SOL_IPV6.
5655
5656 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
5657
5658         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
5659         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
5660
5661         * rawbuffer.c rawbuffer.h: Make this module thread safe.
5662
5663         * domain.c: Make this module thread safe.
5664
5665         * domain.c (mono_init): Call new initialization function.
5666
5667         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
5668         reference types too. Fixes #38812.
5669
5670         * image.c (mono_image_init): Fixed warnings.
5671
5672         * class.c (mono_class_from_typeref): Handle assembly load failure
5673         correctly.
5674
5675         * appdomain.c (add_assemblies_to_domain): Handle the case when
5676         the references of an assembly are not yet loaded.
5677
5678         * metadata.c image.c assembly.c: Moved initialization of global
5679         variables to a separate function called at startup since lazy 
5680         initialization of these variables is not thread safe.
5681         
5682         * image.c assembly.c: Made this module thread safe by adding locks in 
5683         the appropriate places.
5684
5685         * domain.c (mono_init): Call the new initialization functions of the
5686         three modules.
5687
5688 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
5689
5690         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
5691           make a direct call. It is proxy's work to make the call asynchronous.
5692           mono_delegate_end_invoke(): If the targe is a proxy, just collect
5693           the return values.
5694         * object.cs: mono_method_call_message_new(): read AsyncResult and
5695           state object from parameters list, if this info is requested.
5696         * object.h: Added fields to store remote call output values in
5697           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
5698
5699 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
5700
5701         * object.h: add needed fields to MonoThread.
5702         * threads.c, threads.h: allow registering a function to cleanup data
5703         allocated per thread by the JIT.
5704
5705 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
5706
5707         * loader.h: portability fix by Bernie Solomon
5708         * <bernard@ugsolutions.com>.
5709
5710 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
5711
5712         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
5713         return a MonoArray. This simplifies the code and also ensures that
5714         the cache allways contains an object reference as a value.
5715
5716         * icall.c (ves_icall_get_parameter_info): Simplified using the new
5717         function.
5718
5719 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5720
5721         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
5722         fixes a problem with byte ordering when getting the address family for
5723         a socket.
5724
5725 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
5726
5727         * .cvsignore: Added monosn.
5728
5729         * reflection.h reflection.c loader.c: Added support for parameter
5730         marshalling to dynamically created types. Fixes #47295.
5731
5732 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
5733
5734         * rand.c: remove useless warnings.
5735
5736 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
5737
5738         * class.c: implemented ldtoken for methods and fieldrefs.
5739
5740 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5741
5742         * threadpool.c: when mono_async_invoke was called, no one took care of
5743         monitoring the queue. So if the method invoked took some time and we
5744         got new async invoke requests after 500 ms (the thread created waited
5745         that long in WaitForSingleObject), the new async invoke was not called
5746         until the previous one finished.
5747
5748         This is fixed now. Thanks to Totte for helping with it.
5749
5750 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5751
5752         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
5753
5754 2003-08-11  Martin Baulig  <martin@ximian.com>
5755
5756         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
5757
5758 2003-08-06  Martin Baulig  <martin@ximian.com>
5759
5760         * mono-debug-debugger.c: Added support for static fields,
5761         properties and methods.
5762
5763 2003-08-06  Martin Baulig  <martin@ximian.com>
5764
5765         * mono-debug-debugger.c: Don't store the MonoString's vtable to
5766         make this work for applications with multiple application domains.
5767
5768 2003-08-04  Martin Baulig  <martin@ximian.com>
5769
5770         * mono-debug-debugger.c: Completely reworked the type support; the
5771         most important thing is that we're now just using one single
5772         `MonoType' instance per type.
5773
5774 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
5775
5776         * mono-endian.h, mono-endian.c, icall.c: Added icall
5777         ves_icall_System_Double_AssertEndianity to assert double word endianity
5778         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
5779
5780 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5781
5782         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
5783         support, icalls and fixes.
5784
5785 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
5786
5787         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
5788         classes that are a punctuation character in .NET is not the same a
5789         g_unichar_ispunct.
5790
5791 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
5792
5793         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
5794
5795 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
5796
5797         * icall.c: Add new MemCopy internalcall.
5798         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
5799         Simplified code; It is not necessary to handle all the cases here,
5800         as the C# code takes care of it.  Only handle the case of the name
5801         resource embedded into the assembly.
5802
5803         Changed signature to return the data pointer and the size of the
5804         data. 
5805
5806 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
5807
5808         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
5809         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
5810
5811 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
5812
5813         * socket-io.c: ignore EINTR error in select.
5814
5815 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
5816
5817         * class.h, class.c: removed unused subclasses field in MonoClass.
5818
5819 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
5820
5821         * icall.c: improve fix of get_base_definition(). If the parent class
5822           doesn't have the mehod, look at the parent of the parent.
5823         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
5824           to check if a parameter is an in or out parameter
5825           (PARAM_ATTRIBUTE_IN is not set by default).
5826           mono_method_return_message_restore(): Use mono_class_value_size to
5827           get the size of a value type. mono_type_stack_size (parameterType)
5828           does not return the correct value if parameterType is byRef.
5829           mono_load_remote_field(), mono_load_remote_field_new(),
5830           mono_store_remote_field(), mono_store_remote_field_new():
5831           raise exception if the remote call returns an exception.
5832
5833 2003-07-28  Martin Baulig  <martin@ximian.com>
5834
5835         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
5836         method.  This is a wrapper around mono_runtime_invoke() which
5837         boxes the instance object if neccessary.
5838
5839 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5840
5841         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
5842         metadata.h, row-indexes.h, verify.c: first cut of generics support.
5843
5844 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5845
5846         * icall.c: disable mcs bug workaround.
5847
5848 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
5849
5850         * object.c (mono_runtime_class_init): Take the metadata_section
5851         mutex before obtaining the domain mutex.
5852
5853         * appdomain.h: Added definition of metadata_section mutex here. 
5854
5855         * object.c: define metadata_mutex here.
5856
5857 2003-07-24  Ravi Pratap  <ravi@ximian.com>
5858
5859         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
5860         fixed.
5861
5862 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
5863
5864         * reflection.c: Fix bug #46669
5865
5866 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5867
5868         * exception.c:
5869         * exception.h:
5870         * icall.c:
5871         * object.h: fill in the type name for TypeLoadException.
5872
5873 2003-07-23  Ravi Pratap  <ravi@ximian.com>
5874
5875         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
5876         relationship between TypeBuilders while compiling corlib) and bug
5877         45993 (Array types returned from the runtime while compiling
5878         corlib were from the loaded corlib).
5879
5880 2003-07-22  Martin Baulig  <martin@ximian.com>
5881
5882         * mono-debug-debugger.c: Reworked the type support a bit more;
5883         distinguish between types and classes.
5884
5885 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
5886
5887         * icall.c: add IsArrayImpl icall.
5888
5889 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
5890
5891         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
5892         initializing real_size only once. Also fix bug #46602.
5893
5894 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
5895
5896         * object.c: Renamed mono_metadata_section to metadata_section.
5897
5898 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
5899
5900         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
5901           empty array if the type is an array. Fixed.
5902           ves_icall_MonoMethod_get_base_definition: if the base method
5903           is abstract, get the MethodInfo from the list of methods of
5904           the class.
5905         * reflection.c: ParameterInfo.PositionImpl should be zero-based
5906           and it was 1-based. Fixed in mono_param_get_objects.
5907
5908 2003-07-20  Martin Baulig  <martin@ximian.com>
5909
5910         * mono-debug.h: Set version number to 31.
5911         (mono_debug_init): Added `MonoDomain *' argument.
5912
5913         * mono-debug-debugger.c: Reworked the type support; explicitly
5914         tell the debugger about builtin types; pass the `klass' address to
5915         the debugger.
5916
5917 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
5918
5919         * image.c: Allow new metadata tables to be loaded without a
5920         warning. Also update the warning message to give the new constant value.
5921                 
5922 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
5923
5924         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
5925         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
5926         array type representation changes.
5927
5928 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
5929
5930         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
5931         on Environment.Exit () call.
5932
5933 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
5934
5935         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
5936         requires a matching corlib.
5937
5938 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
5939
5940         * Changelog: My editor decided to add a CR to each line. Sorry about that.
5941           Committed again without the CRs.
5942         
5943 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
5944
5945         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
5946           getting it from the "this" socket instance. Did not work
5947           if the socket is a subclass of Socket.
5948           Also fixed bug #35371.
5949
5950 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
5951
5952         * metadata.c: fixed size for TypedByRef.
5953         * loader.c: when searching for a method, consider the vararg amrker.
5954         * unicode.c, decimal.c: constify some arrays.
5955
5956 2003-07-15  Dick Porter  <dick@ximian.com>
5957
5958         * socket-io.c: Fixed compilation for gcc < 3.2.
5959
5960         Fixed compilation for machines that don't have AF_INET6 (thanks to
5961         Bernie Solomon <bernard@ugsolutions.com> for that part.)
5962
5963         Fixed compile warnings.
5964         
5965         Fixed formatting and line endings.
5966
5967 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
5968
5969         * socket-io.h:
5970         * socket-io.c: Added IPv6 support.
5971
5972 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
5973
5974         * class.c (mono_class_is_assignable_from): New function to implement
5975         the is_assignable_from logic. Used by mono_object_isinst, 
5976         Type::IsAssignableFrom () and the interpreter.
5977
5978         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
5979         Object, even interfaces.
5980         
5981         * object.c (mono_object_isinst): Implement in terms of 
5982         is_assignable_from.
5983
5984         * icall.c (ves_icall_type_is_assignable_from): New icall.
5985
5986 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
5987
5988         * domain.c (foreach_domain): fix compiler warning.
5989
5990 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
5991
5992         * image.c (load_metadata_ptrs): use g_strndup because strndup is
5993         not available on all plattforms
5994
5995 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
5996
5997         * image.h image.c: Store the metadata version string in MonoImage.
5998         * icall.c: New icall to retrieve the image version.
5999         * reflection.c (create_dynamic_image): Fill in the image version field
6000         * reflection.c (build_compressed_metadata): Use the image version
6001         from the image structure.
6002
6003 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6004
6005         * appdomain.c: modified comment.
6006         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
6007         That will be its last iteration when mono_gc_cleanup is called from
6008         mono_runtime_cleanup and before the domain is unloaded.
6009
6010         Fixes bug #45962.
6011
6012 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
6013
6014         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
6015         attributes.
6016
6017 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6018
6019         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
6020         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
6021         Bernie Solomon <bernard@ugsolutions.com>.
6022
6023 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
6024
6025         * object.c, object.h: provide mono_object_new_fast() for faster
6026         allocation in some special cases.
6027
6028 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
6029
6030         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
6031         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
6032
6033 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
6034
6035         * threadpool.c: fix leaks.
6036
6037 2003-07-01  Dick Porter  <dick@ximian.com>
6038
6039         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
6040         using MonoGHashTables.  Fixes threadpool bug posted to list.
6041
6042 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6043
6044         * image.h, image.c: added support to load an assembly from a byte array.
6045         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
6046         assembly bundle support.
6047
6048 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
6049
6050         * threadpool.c (mono_thread_pool_add): keep a reference to the
6051         AsyncResult to prevent GC
6052
6053 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
6054
6055         * class.c: leak fix.
6056
6057 2003-06-25  Dick Porter  <dick@ximian.com>
6058
6059         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
6060         for the async object, the WaitHandle object will close the handle.
6061         Fixes bug 45321.
6062
6063 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
6064
6065         * class.c: in mono_array_class_get (), lookup from the hash with the
6066         same type we insert: this works around a bug in
6067         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
6068         lluis. The real fix will have to wait for after the release.
6069
6070 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6071
6072         * icall.c: fix memory leak when getting type members.
6073
6074 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
6075
6076         * reflection.c: added more pubtoken special cases.
6077
6078 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
6079
6080         * class.c: handle field offset correctly when class size
6081         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
6082
6083 2003-06-20  Martin Baulig  <martin@ximian.com>
6084
6085         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
6086         *image' field.
6087
6088 2003-06-20  Martin Baulig  <martin@ximian.com>
6089
6090         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
6091
6092 2003-06-20  Martin Baulig  <martin@ximian.com>
6093
6094         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
6095         just distinguish between variables in registers and variables at
6096         an offset relative to a register.
6097
6098 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6099
6100         * icall.c: #ifdef out latest changes until mcs is fixed.
6101
6102 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6103
6104         * icall.c: return members in metadata order.
6105
6106 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
6107
6108         * icall.c: avoid infinite loop in GetTimeZoneData.
6109
6110 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
6111
6112         * icall.c: added Marshal.Prelink/All icalls.
6113
6114 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
6115
6116         * object.c, object.h: fix warnings and do some overflow checking
6117         when creating arrays.
6118
6119 2003-06-17  Dick Porter  <dick@ximian.com>
6120
6121         * file-io.h:
6122         * file-io.c: File attributes need to be tweaked slightly when
6123         passed from the managed to the w32 world.
6124
6125 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
6126         * profiler.h profiler-private.h profiler.c: Rework last patch
6127         based on suggestion by Paolo.
6128         
6129 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
6130
6131         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
6132         instruction level coverage data collection.
6133         * profiler.h profiler.c (: Added new callback function which can be
6134         used by the profiler to limit which functions should have coverage
6135         instrumentation.
6136         * profiler.c (mono_profiler_load): Call g_module_build_path to
6137         generate the file name of the profiler library.
6138
6139 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
6140
6141         * profiler.c, profiler.h, profiler-private.h: added basic block 
6142         coverage profiling API.
6143
6144 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
6145
6146         * reflection.c (mono_reflection_create_runtime_class): Add support
6147         for events in dynamically generated code.
6148
6149         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
6150         not allocated.
6151
6152 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
6153
6154         * icall.c: when getting timezone info, return reasonable values if we
6155         can't get the actual data.
6156
6157 2003-06-14  Dick Porter  <dick@ximian.com>
6158
6159         * threads.c (start_wrapper): Remove the reference to the thread
6160         object in the TLS data, so the thread object can be finalized.
6161         This won't be reached if the thread threw an uncaught exception,
6162         so those thread handles will stay referenced :-( (This is due to
6163         missing support for scanning thread-specific data in the Boehm GC
6164         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
6165
6166 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
6167
6168         * reflection.c: ensure streams and tables are first allocated with
6169         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
6170
6171 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
6172
6173         * icall.c: fixed GetElementType for byrefs (bug# 44792).
6174
6175 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
6176
6177         * reflection.c (mono_reflection_create_runtime_class): Add support for
6178         properties to dynamically created classes.
6179         * reflection.c: Fix a few places where non-MonoObjects were inserted
6180         into the tokens hashtable.
6181
6182 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6183
6184         * object.c: some support to handle out of memory exceptions.
6185
6186 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
6187
6188         * marshal.c (mono_marshal_get_native_wrapper): support reference
6189         return types
6190
6191 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
6192
6193         * object.h, object.c: more portability stuff from Bernie Solomon.
6194         Unexport mono_object_allocate(). Added mono_object_unbox ().
6195         Set exitcode when an unhandled exception is thrown.
6196
6197 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
6198
6199         * marshal.c (mono_marshal_get_native_wrapper): use custom
6200         marshaler for return types.
6201
6202 2003-06-10  Dick Porter  <dick@ximian.com>
6203
6204         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
6205         ip_mreq is available
6206
6207 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
6208
6209         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
6210         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
6211         by Bernie Solomon <bernard@ugsolutions.com>.
6212
6213 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
6214
6215         * gc.c (mono_gc_init): Avoid error message on shutdown when
6216         GC_DONT_GC=1 is used.
6217
6218         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
6219         New icall to return the GUID of a module.
6220
6221 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
6222
6223         * class.c: ensure instance size always includes the parent's size
6224         even whem class size is set explicitly (fixes bug#44294).
6225
6226 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
6227
6228         * profiler.h, profiler.c: made the simple profiler thread-safe,
6229         get more accurate timing info. Allow the loading of an
6230         externally-developed profiler module.
6231
6232 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
6233
6234         * marshal.c (mono_marshal_get_native_wrapper): improved
6235         class/byref arguments.
6236         (mono_marshal_get_native_wrapper): better string marshaling support.
6237
6238 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
6239
6240         * class.c: ensure .pack and .size are handled correctly and
6241         simplified layout of static fields.
6242
6243 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
6244
6245         * appdomain.c
6246         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
6247
6248         * loader.c (mono_lookup_pinvoke_call): look for modules in the
6249         current directory (fix bug 44008)
6250
6251 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
6252
6253         * marshal.c (mono_marshal_get_native_wrapper): started support for
6254         custom marshalers.
6255         (mono_delegate_to_ftnptr): consider marshalling specifications
6256
6257 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
6258
6259         * reflection.c, reflection.h: emit custom marshal info.
6260
6261 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6262
6263         * object.c: free the GError.
6264         * icall.c: added CloseEvent_internal.
6265         * threads.[ch]:
6266         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
6267         call.
6268
6269 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
6270
6271         * loader.c (mono_method_get_signature): Add support for dynamic
6272         assemblies.
6273
6274 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
6275
6276         * reflection.c: fixed bug #43905.
6277
6278 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
6279
6280         * class.c, domain.c, icall.c, metadata.h, object.h: support for
6281         handling TypedReference and ArgIterator.
6282         * loader.c, loader.h: added function to get signature at call site.
6283
6284 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6285
6286         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
6287         data readonly. Buglets and warning fixes. Some MethodSpec support.
6288
6289 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
6290
6291         * class.h, class.c, object.c: remove relative numbering support.
6292
6293 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
6294
6295         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
6296         free the string, until we get a chance to fix Gtk#
6297
6298 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6299
6300         * marshal.c: revert last patch.
6301
6302 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
6303
6304         * icall.c: updates for new mono_class_vtable() not calling
6305         the type constructor anymore.
6306
6307 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
6308
6309         * object.h, object.c: separate vtable creation from type
6310         initialization. Make running the .cctor thread safe.
6311
6312 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
6313
6314         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
6315
6316 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
6317
6318         * loader.c (mono_get_method): consider calling convention
6319
6320 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
6321
6322         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
6323         to return the invisible global type for a module.
6324
6325         * reflection.c (mono_image_build_metadata): Emit global fields too.
6326
6327 2003-05-20  Peter Williams  <peterw@ximian.com>
6328
6329         * loader.c (mono_lookup_internal_call): Add a few newlines.
6330
6331 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
6332
6333         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
6334         literal strings.
6335
6336         * appdomain.c (set_domain_search_path): Recalculate search path when
6337         AppDomainSetup.PrivateBinPath changes.
6338
6339         * object.c (mono_class_compute_gc_descriptor): It turns out some
6340         parts of the class libs (like System.Thread) holds pointers to
6341         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
6342         to treat native int a pointer type here.
6343         
6344 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
6345
6346         * appdomain.h, domain.c: add hashtable for jump target resolution.
6347
6348 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
6349
6350         * reflection.h reflection.c icall.c: Added new icalls 
6351         GetManifestResourceInfoInternal, GetModulesInternal and support
6352         infrastructure.
6353
6354 2003-05-16  Dick Porter  <dick@ximian.com>
6355
6356         * icall.c:
6357         * file-io.h:
6358         * file-io.c: Implement System.IO.MonoIO::GetTempPath
6359
6360 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
6361
6362         * object.c: mono_store_remote_field: little fix to previous patch.
6363
6364 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6365
6366         * class.c: add constructors to array classes.
6367         * icall.c: special case array construction for InternalInvoke (),
6368
6369 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
6370
6371         * class.h class.c reflection.c object.c: Added support for field
6372         defaults in dynamically generated classes.
6373
6374 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
6375
6376         * reflection.c: properly encode charset for ddlimport.
6377
6378 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
6379
6380         * threads.c: allow compiling without GC.
6381
6382 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
6383
6384         * appdomain.h, object.c, object.h, threads.c, threads.h: added
6385         handling of thread static data.
6386
6387 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6388
6389         * reflection.h, reflection.c: added mono_custom_attrs_free ().
6390
6391 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
6392
6393         * class.c (mono_array_class_get): always set the serializable flags
6394         (mono_array_class_get): always set the SEALED attribute for array types
6395
6396 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
6397
6398         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
6399         attributes (fix for bug 42021).
6400
6401 2003-05-12  Dick Porter  <dick@ximian.com>
6402
6403         * gc.c: Don't run finalizers when the finalizer thread is
6404         finishing up, because the default domain has already been
6405         destroyed.
6406
6407 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
6408
6409         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
6410         value is null, we should throw an exception.   This is slightly
6411         different than the other conventions used for the constructor.
6412
6413 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6414
6415         * socket-io.c: fixed windows build.
6416
6417 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6418
6419         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
6420
6421 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
6422
6423         * object.c (mono_string_new_wrapper): Compatibility fix for MS
6424         compilers.
6425
6426 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
6427
6428         * class.c (mono_class_layout_fields): Add experimental GC aware
6429         auto layout facility. Requires class library changes to work correctly.
6430
6431         (mono_class_setup_vtable): Avoid overriding explicit interface
6432         method implementations. Fixes iface3.exe test.
6433
6434         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
6435         object reference.
6436         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
6437         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
6438
6439         * metadata.h: Add new type classification macro which determines
6440         whenever the type holds an object reference.
6441
6442 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
6443
6444         * marshal.c (mono_marshal_get_native_wrapper): cleanups
6445
6446 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
6447
6448         * gc.c (finalizer_thread): Work around a GC bug.
6449
6450 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
6451
6452         * marshal.c (emit_struct_conv): allow unions
6453
6454         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
6455
6456 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
6457
6458         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
6459
6460 2003-05-06  Martin Baulig  <martin@ximian.com>
6461
6462         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
6463
6464 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6465
6466         * socket-io.c:
6467         (Select_internal): allow NULLs, don't create arrays if not needed.
6468         Coupled with Socket.cs changes.
6469
6470         * threadpool.c:
6471         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
6472         register a finalizer for it that will close the semaphore handle. This
6473         fixes the leak and make Lupus' test run with > 4080 loops.
6474
6475 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
6476
6477         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
6478         Jerome Laban (bug #42287)
6479
6480 2003-05-02  Martin Baulig  <martin@ximian.com>
6481
6482         * debug-mono-symfile.h
6483         (MonoSymbolFile): Moved declaration into mono-debug.h.
6484         (MonoDebugMethodJitInfo): Likewise.
6485         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
6486         argument.
6487         (_mono_debug_address_from_il_offset): Take a
6488         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
6489
6490         * mono-debug.h
6491         (MonoDebugDomainData): New struct.
6492         (mono_debug_get_domain_data): New function.
6493         (mono_debug_add_method): Take an additional `MonoDomain *'
6494         argument.
6495         (mono_debug_source_location_from_address): Likewise.
6496         (mono_debug_il_offset_from_address): Likewise.
6497         (mono_debug_address_from_il_offset): Likewise.
6498
6499 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
6500
6501         * reflection.c: one more check for null type in custom attrs.
6502
6503 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6504
6505         * reflection.c: avoid warning (comparison is always false due to limited
6506         range of data type).
6507
6508 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6509
6510         * icall.c: throw an exception in Type.GetField if the argument 'name'
6511         is NULL.
6512
6513 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
6514
6515         * reflection.c: fixed handling of enums in named arguments to custom
6516         attributes (bug #42123).
6517
6518 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
6519
6520         * reflection.c: use the right array element type and handle
6521         a null for a Type argument, too.
6522
6523 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
6524
6525         * reflection.c: handle arrays as arguments to custom attributes.
6526
6527 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
6528
6529         * reflection.c: handle a string value in a custom attr
6530         ctor that takes an object.
6531
6532 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
6533
6534         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
6535         (fix bug #42063)
6536
6537 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
6538
6539         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
6540
6541 2003-04-27  Martin Baulig  <martin@ximian.com>
6542
6543         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
6544         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
6545         MONO_DEBUGGER_EVENT_BREAKPOINT.
6546         (mono_breakpoint_trampoline_code): Removed.
6547         (mono_debugger_event_handler): The last argument is now a
6548         `guint32'.
6549         (mono_debugger_insert_breakpoint_full): Removed the
6550         `use_trampoline' argument.
6551         (mono_debugger_method_has_breakpoint): Likewise.
6552         (mono_debugger_trampoline_breakpoint_callback): Renamed to
6553         mono_debugger_breakpoint_callback(); take the method and
6554         breakpoint number as arguments.
6555
6556 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
6557
6558         * metadata.c: fix off by one when loading parameters attributes.
6559
6560 2003-04-24  Martin Baulig  <martin@ximian.com>
6561
6562         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
6563
6564 2003-04-24  Martin Baulig  <martin@ximian.com>
6565
6566         * mono-debug-debugger.c: Moved all code which interacts with the
6567         Mono Debugger here.
6568
6569         * debug-mono-symfile.c: This code now just deals with the symbol
6570         file itself, the debugger code is now in mono-debug-debugger.c.
6571
6572 2003-04-23  Martin Baulig  <martin@ximian.com>
6573
6574         * mono-debug.c (mono_debug_source_location_from_il_offset):
6575         New method; like mono_debug_source_location_from_address(), but
6576         takes an IL offset instead of a machine address.
6577
6578 2003-04-23  Martin Baulig  <martin@ximian.com>
6579
6580         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
6581         `line' field; this is now computed by the debugger.
6582
6583 2003-04-23  Martin Baulig  <martin@ximian.com>
6584
6585         * mono-debug.[ch]: New files.  This is the new debugging interface.
6586
6587         * mono-debug-debugger.[ch]: New files.  Moved all code which
6588         interacts with the Mono Debugger here.
6589
6590 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
6591
6592         * domain.c (mono_init): initialize mono_defaults.monitor_class
6593
6594 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
6595
6596         * reflection.c (method_encode_code): Add a spicy exception to help
6597         future compiler authors.
6598
6599 2003-04-21  Martin Baulig  <martin@ximian.com>
6600
6601         * icall.c
6602         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
6603         Make this work with relative pathnames; g_filename_to_uri() needs
6604         an absolute filename.
6605
6606 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
6607
6608         * icall.c: Track name changes in Object and ValueType.
6609
6610 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
6611
6612         * metadata.c (mono_type_stack_size): size should be a multiple of
6613         sizeof (gpointer)
6614
6615 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6616
6617         * gc.c:
6618         (internal_domain_finalize): moved into mono_domain_finalize. No need
6619         to create another thread because the finalizers will be run in the
6620         finalizer thread.
6621         
6622         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
6623         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
6624         to be run (MS does this too).
6625
6626 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
6627
6628         * object.c (mono_class_compute_gc_descriptor): Update comment.
6629
6630         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
6631
6632         * image.h: Add synchronized wrapper cache.
6633
6634         * image.c (do_mono_image_open): Initialize cache.
6635
6636         * reflection.c (create_dynamic_mono_image): Initialize cache.
6637
6638 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6639
6640         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
6641         ves_icall_System_Buffer_ByteLengthInternal.
6642
6643 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6644
6645         * reflection.c: setup klass->nested_in earlier. Allow
6646         a dash in the assembly name.
6647
6648 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
6649
6650         * metadata.c (mono_type_to_unmanaged): dont access
6651         type->data.klass for MONO_TYPE_OBJECT
6652         (mono_type_to_unmanaged): consider System.Delegate class
6653
6654 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
6655
6656         * class.c: just setup supertypes in the proper place instead of
6657         initializing the full element class for arrays.
6658
6659 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
6660
6661         * class.c: ensure the element class of arrays is initialized.
6662         Setup the supertype info for array classes, too.
6663
6664 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
6665
6666         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
6667
6668 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6669
6670         * Makefile.am: re-added -m option when running cygpath. This way,
6671         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
6672         separator.
6673         * mono-config.c: same codepath for locating mono config file for WIN32
6674         and the rest.
6675         * assembly.c: if mono_assembly_setrootdir is called, don't override
6676         the value set.
6677
6678 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6679
6680         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
6681         MONO_ASSEMBLIES variable.
6682
6683 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
6684
6685         * icall.c: added Assembly::GetNamespaces() icall.
6686
6687 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6688
6689         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
6690
6691 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
6692
6693         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
6694         * object.c: fixed bug in the construction of vtable for proxies
6695
6696 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
6697
6698         * object.c (mono_array_new): Mark mono_array_new as an icall.
6699
6700 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6701
6702         * class.c: fixed test for public method when overriding interfaces.
6703         Closes bug #40970.
6704
6705 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6706
6707         * appdomain.h, domain.c: added mono_domain_foreach() to
6708         be able to access the currently loaded appdomains.
6709         * object.c: make string interning work across sppdomains.
6710         Mark some functions for use as icalls.
6711
6712 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
6713
6714         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
6715
6716         * reflection.h reflection.c: Allocate long living data using 
6717         GC_MALLOC_ATOMIC so the collector does not need to scan it.
6718
6719         * reflection.c: Double the allocation size in streams instead of
6720         increasing it, to prevent unneccesary copying on large assemblies.
6721         
6722         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
6723         creation if the assembly does not have the Run flag set.
6724
6725 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6726
6727         * class.h: avoid the C++ keywords in header files (Jerome Laban
6728         spotted and fixed this).
6729
6730 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6731
6732         * object.c:
6733         (mono_unhandled_exception): fill in the arguments for the
6734         UnhandledException event. Only trigger that event for the default
6735         domain (as MS does).
6736
6737 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
6738
6739         * object.c: Improve typed allocation stuff based on suggestions from
6740         Paolo. Also turn it on if the GC library supports it.
6741
6742 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
6743
6744         * object.c object.h class.h: Added experimental typed allocation
6745         facility using the interfaces in gc_gcj.h.
6746
6747         * os/gc_wrapper.h: Added new include files.
6748         
6749 2003-04-03  Martin Baulig  <martin@ximian.com>
6750
6751         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
6752         which is not yet enabled by default.
6753
6754         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
6755         functions.
6756         (mono_gc_lock, mono_gc_unlock): New static functions.
6757
6758         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
6759         functions; stop/start the world for the garbage collector.  This
6760         is using the windows API; we need to complete the SuspendThread()/
6761         ResumeThread() implementation in the io-layer to make this work on Unix.
6762         (mono_gc_push_all_stacks): New public function; tells the garbage
6763         collector about the stack pointers from all managed threads.
6764
6765 2003-04-03  Martin Baulig  <martin@ximian.com>
6766
6767         * object.h (MonoThread): Added `gpointer stack_ptr'.
6768
6769         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
6770
6771 2003-04-03  Martin Baulig  <martin@ximian.com>
6772
6773         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
6774
6775 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
6776
6777         * reflection.c (typebuilder_setup_fields): Initialize field.first and
6778         field.last.
6779
6780 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
6781
6782         * loader.c (mono_lookup_internal_call): Report the corlib that is
6783         out of sync.
6784
6785 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
6786
6787         * icall.c (ves_icall_type_GetTypeCode): fixed check for
6788         System.DBNull (it's class not valuetype).
6789
6790 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
6791
6792         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
6793         if the array method was already assigned a token (fixes bug#40646).
6794
6795 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
6796
6797         * reflection.c (mono_reflection_get_type): Attempt type resolve even
6798         if no assembly is given.
6799
6800 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
6801
6802         * metadata.h: Added the new tables.
6803
6804         * row-indexes.h: Added definitions for new tables.
6805
6806         * metadata.c: Add schemas for new tables, and add support for
6807         computing the sizes of them.
6808
6809         * class.c: Update for handling the new type cases.
6810
6811 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
6812
6813         * metadata.h (MONO_TYPE_IS_VOID): new macro
6814
6815 2003-03-31  Martin Baulig  <martin@ximian.com>
6816
6817         * threads.h (MonoThreadCallbacks): Added `thread_created'.
6818
6819         * threads.c (mono_thread_new_init): Call `thread_created' in the
6820         mono_thread_callbacks.
6821
6822 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
6823
6824         * loader.h: added marshalbyrefobject_class to mono_defaults
6825         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
6826         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
6827           generation of output parameters.
6828           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
6829         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
6830           contextbound and the target object belongs to the context of the caller.
6831         * object.h: added context and unwrapped_server variables in MonoRealProxy.
6832         * object.c: Implemented support for interfaces and abstract classes
6833           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
6834           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
6835
6836 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
6837
6838         * class.h class.c (mono_class_is_subclass_of): New function.
6839         
6840         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
6841         routines for most common case (calls from ArrayList::ToArray).
6842
6843         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
6844         routine so programs which call Environment::Exit() can be profiled.
6845
6846         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
6847         Added MONO_ARCH_SAVE_REGS.
6848
6849         * icall.c (ves_icall_type_is_subtype_of): Use new function.
6850
6851 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
6852
6853         * blob.h: Add a couple of new MonoType types definitions.
6854
6855         * tabledefs.h: Add a couple of new call convs.
6856
6857 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
6858
6859         * reflection.h (MonoReflectionDynamicAssembly): track changes in
6860         the layout of the class.
6861
6862         * reflection.c (alloc_table): double the size on overflow to avoid
6863         unnecessary copying.
6864
6865         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
6866         avoid filling out metadata tables and blobs. Also set mb->ilgen to
6867         null so it can be garbage collected.
6868         
6869 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
6870
6871         * reflection.c (mono_reflection_get_type): Return the resolved type
6872         only if it is in the assembly we searched.
6873
6874         * reflection.c (ensure_runtime_vtable): Initialize method slots.
6875
6876         * class.c (mono_class_setup_vtable): Set the slot of the overriding
6877         method.
6878
6879 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6880
6881         * appdomain.c:
6882         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
6883         the right one is 'file:///blah', but MS allows it.
6884         * assembly.c:
6885         (mono_assembly_open): allow 'file://blah'
6886
6887         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
6888
6889 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
6890
6891         * socket-io.c: fixes bug #40310.
6892
6893 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
6894
6895         * reflection.c (mono_reflection_parse_type): handle deeply nested
6896         types correctly.
6897
6898         * reflection.c (mono_image_create_token): Use unique token values
6899         since they will be put into a hash table.
6900
6901         * class.c (mono_class_setup_vtable): If a method occurs in more than
6902         one place in the vtable, and it gets overriden, then change the
6903         other occurances too.
6904
6905         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6906         object as return type.
6907
6908 2003-03-22  Pedro Martínez Juliá  <yoros@wanadoo.es>
6909
6910         * icall.c: Deleted "ToString" implementation for double and float
6911         because they are full implemented in managed code.
6912
6913 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
6914
6915         * reflection.c, reflection.h: implemented and exported functions
6916         to retrieve info about custom attributes.
6917
6918 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6919
6920         * appdomain.c: moved Uri handling to assembly.c
6921         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
6922         work when using a file Uri in *nix and windows.
6923
6924         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
6925         GetReferencedAssemblies.
6926
6927 2003-03-18  Dick Porter  <dick@ximian.com>
6928
6929         * icall.c: Rename a couple of internal calls
6930
6931         * threads.c: Set the thread state to Stopped when a thread exits.
6932         Fixes bug 39377.
6933
6934 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
6935
6936         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
6937         New icall.
6938
6939         * object.c (mono_class_vtable): fix warning.
6940
6941 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
6942
6943         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
6944
6945         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
6946         memory.
6947         (method_encode_clauses): Create exception info structures in the right
6948         order.
6949         (mono_reflection_setup_internal_class): Initialize supertypes field.
6950
6951         * class.c object.c: Handle interfaces which implement other interfaces 
6952         correctly.
6953
6954         * class.h class.c: Move the supertypes array initialization code into 
6955         a separate function so it can be used for dynamic types too. Also call
6956         it earlier, in mono_class_init(), since it can be used before the
6957         type is initialized.
6958
6959 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6960
6961         * Makefile.am:
6962         * assembly.c:
6963         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
6964
6965         * appdomain.c:
6966         * appdomain.h:
6967         * marshal.c:
6968         * object.c: remove warnings.
6969
6970 2003-03-13  Martin Baulig  <martin@ximian.com>
6971
6972         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
6973         (MonoDebugLexicalBlockEntry): New types.
6974
6975         * debug-mono-symfile.c
6976         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
6977
6978 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6979
6980         * process.c: ret can be any non-zero value accroding to MS doc.
6981
6982 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
6983
6984         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
6985         fixing a warning for a miss-used prototype, would have cause
6986         random memory corruption.
6987
6988 2003-03-07  Martin Baulig  <martin@ximian.com>
6989
6990         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
6991         getting really annoying ....
6992
6993 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
6994
6995         * reflection.c (fixup_method): added support for array methods.
6996
6997 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
6998
6999         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
7000         (pointed out by Michael Adams).
7001
7002 2003-03-04  Dick Porter  <dick@ximian.com>
7003
7004         * icall.c: Temporarily reverted the Double and Single ToString()
7005         change, because it broke nunit.
7006
7007 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
7008
7009         * object.h, threads.h: make include files compatible with C++
7010         (patch by Jerome Laban <jlaban@wanadoo.fr>).
7011
7012 2003-03-04  Pedro Martínez Juliá  <yoros@wanadoo.es>
7013
7014         * icall.c: Erased ToString helper functions for Double and Single.
7015         Now, that implementations ar all in managed code (Double and Single
7016         Formatters).
7017
7018 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
7019
7020         * appdomain.c: Added method for initializing the default context of
7021         a domain. Added internal call for getting the default context.
7022         * appdomain.h: Added context variable in MonoDomain struct.
7023         * domain.c: mono_domain_set also sets the default context of the domain
7024         * icall.c: Mapped internal method InternalGetDefaultContext.
7025         * object.c: mono_object_get_virtual_method returns always a remoting
7026         wrapper if the object is a transparent proxy.
7027         mono_runtime_invoke_array: when creating an object by calling the
7028         constructor, if the created object is a proxy, then the constructor should
7029         be called using the a remoting wrapper.
7030
7031 2003-03-03  Dick Porter  <dick@ximian.com>
7032
7033         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
7034         variable so it compiles on solaris.  Problem spotted by
7035         Christopher Taylor <ct@cs.clemson.edu>
7036
7037 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7038
7039         * appdomain.c:
7040         (get_info_from_assembly_name): don't leak value.
7041
7042         * icall.c:
7043         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
7044         result.
7045
7046 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
7047
7048         * assembly.c: export mono_image_load_references ().
7049         * class.c: handle function pointers. mono_class_from_name() now
7050         supports nested type names directly.
7051
7052 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
7053
7054         * reflection.h reflection.c: Encode already created dynamic methods 
7055         and fields correctly as a DEF instead of a REF.
7056
7057         * reflection.c: Get rid of the force_ref argument to 
7058         mono_image_typedef_or_ref since it was wrong in the first place.
7059
7060         * string-icalls.c: add error checking to string constructors according
7061         to the MSDN docs.
7062
7063         * reflection.c: Emit types in the order their TypeBuilders were 
7064         created. Previously, a new table index was assigned to each type before
7065         the tables were emitted. This was wrong because the signature blob
7066         might already refer to a type by its original table index.
7067
7068 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
7069
7070         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
7071         change.
7072         
7073 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7074
7075         * Makefile.am: make assemblies dir have \ instead of / on windows.
7076
7077 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
7078
7079         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
7080         iterate over the NESTEDCLASS table using a linear search since the
7081         table is not guaranteed to be sorted by the secondary key.
7082
7083         * class.c (mono_class_create_from_typedef): fixed up call to
7084         mono_metadata_nesting_typedef.
7085         
7086 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
7087
7088         * marshal.c (mono_string_to_byvalstr): clear the memory as
7089         suggested by Jerome Laban <jlaban@wanadoo.fr>
7090
7091 2003-02-26  Dick Porter  <dick@ximian.com>
7092
7093         * process.c: Cope with padding in .rsrc blocks
7094
7095 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
7096
7097         * metadata.h: reverted the filter_len change, it breaks reflection
7098         
7099 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
7100
7101         * metadata.h: added a new field to store the filter_len
7102         
7103
7104 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
7105
7106         * reflection.c: handle custom attributes for types and members
7107         created with Reflection.Emit (bug#38422).
7108
7109 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
7110
7111         * reflection.c: define RTSpecialName automatically for constructors for
7112         compatibility with MS.NET.
7113
7114         * reflection.c (mono_reflection_create_runtime_class): initialize
7115         nested_in field of dynamically created classes.
7116
7117 2003-02-22  Martin Baulig  <martin@ximian.com>
7118
7119         * debug-mono-symfile.h: Incremented version number.
7120
7121 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
7122
7123         * object.h icall.c process.c: fix warnings.
7124
7125 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
7126
7127         * appdomain.h appdomain.c:
7128         (mono_domain_try_type_resolve): split the 
7129         name_or_tb argument into a name and a tb argument.
7130         (mono_domain_has_type_resolve): new function to check whenever the
7131         application has registered a TypeResolve event handler.
7132         
7133         * icall.c reflection.h reflection.c: move the type resolve logic into
7134         mono_reflection_get_type () so it will be invoked when 
7135         Assembly::GetType () is called.
7136
7137         * reflection.c:
7138         (mono_reflection_get_type): renamed to get_type_internal.
7139         (mono_reflection_get_type): fixed type name generation so it works 
7140         for nested types too.
7141         (mono_reflection_get_type): call has_type_resolve () to avoid the 
7142         costly type name generation if there is no resolve event handler.
7143
7144 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7145
7146         * class.c, image.c: load exported types from file references.
7147
7148 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
7149
7150         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
7151           used to cache the managed methods used to create proxies and make 
7152           remote invocation of methods.
7153         * class.h: Added in MonoVTable a flag to indicate that a class needs 
7154           to be remotely created.
7155         * object.c: Modified the method mono_class_vtable(). It now initializes 
7156           the remote flag of the vtable. Modified mono_object_new_specific(), 
7157           so now it checks the remote flag.
7158         * icall.c: Added a couple of internal methods, one for enabling instance 
7159           creation interception for a type, and one for creating objects bypassing
7160           the remote check.
7161
7162 2003-02-18  Martin Baulig  <martin@ximian.com>
7163
7164         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
7165         New interncall to get a method's metadata token.
7166
7167         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
7168         New interncall for the debugger.
7169
7170 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
7171
7172         * class.c (mono_class_setup_vtable): allocate supertype array
7173
7174 2003-02-18  Martin Baulig  <martin@ximian.com>
7175
7176         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
7177
7178 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7179
7180         * reflection.c:
7181         (assembly_name_to_aname): jump over unknown properties (i've found
7182         something like: 'type, assembly, version=xxx, custom=null, public...',
7183         so now will ignore custom=null and still get the rest of the values).
7184
7185 2003-02-17  Dick Porter  <dick@ximian.com>
7186
7187         * threads.c: Have Thread.Start() wait for a semaphore to signal
7188         that the thread has set up all its local data.  This fixes bug
7189         34323, where Abort() raced the new thread's TLS data.
7190
7191         Also removes the handle_store() call from start_wrapper, because
7192         threads are now always created suspended and there is no longer a
7193         race between the parent and child threads to store the info.
7194
7195 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
7196
7197         * image.c: explain the #- heap issue in a message, hopefully
7198         avoiding FAQs on mono-list.
7199
7200 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7201
7202         * icall.c:
7203         (GetEntryAssembly): if the domain has not invoked
7204         AppDomain.ExecuteAssembly yet, return the assembly of the default
7205         AppDomain.
7206
7207 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
7208
7209         * class.c (mono_ldtoken): make it work in dynamic assemblies.
7210
7211 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
7212
7213         * metadata.c, reflection.c: simple speedup to type hash
7214         and equals code.
7215
7216 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
7217
7218         * image.c, image.h, class.c, assembly.c: move module loading
7219         to MonoImage. When loading metadata, consider alignemnet from
7220         the start of metadata, not from the metadata address in memory.
7221
7222 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
7223
7224         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
7225         AssemblyBuilder objects. Factored out custom attribute creation into
7226         a separate function.
7227         (create_custom_attr): new function to create custom attributes.
7228
7229 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
7230
7231         * Makefile.am: Got tired of typing the full pathname to pedump.
7232         Until there is another option, am installing this.
7233
7234 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
7235
7236         * class.c (class_compute_field_layout): always set field->parent 
7237         (mono_ldtoken): use mono_defaults.fieldhandle_class;
7238
7239 2003-02-11  Dick Porter  <dick@ximian.com>
7240
7241         * threads-types.h:
7242         * monitor.c: Rewrote Monitor, making lock much faster and
7243         Pulse/Wait work as specified.  Also uses much fewer handles, and only
7244         creates them as needed.
7245
7246         * exception.c: Added SynchronizationLockException
7247
7248         * threads.c: Deleted old Monitor implementation.  The new one is
7249         in a new file.
7250
7251 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
7252
7253         * class.c: handled TypedReference type code. Set the correct size for
7254         class data. Setup interface_offsets for interface classes, too.
7255
7256 2003-02-09  Martin Baulig  <martin@ximian.com>
7257
7258         * debug-mono-symfile.h: Reflect latest symbol writer changes.
7259
7260 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
7261
7262         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
7263         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
7264         * object.c: fixed mono_object_get_virtual_method () for interfaces.
7265         * verify.c: check for code that runs after the end of the method.
7266
7267 2003-02-08  Pedro Martínez Juliá  <yoros@wanadoo.es>
7268
7269         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
7270         "System.Math::Round2".
7271         * sysmath.h: Added Floor, Round and Round2 definitions.
7272         * sysmath.c: Modified certain functions that were not 100% compliant
7273         with MS.NET (math precision) and added the implementation of Floor,
7274         Round and Round2.
7275
7276 2003-02-07  Martin Baulig  <martin@ximian.com>
7277
7278         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
7279
7280 2003-02-07  Martin Baulig  <martin@ximian.com>
7281
7282         * debug-mono-symfile.c: Reflected latest symwriter changes.
7283         (mono_debug_create_mono_symbol_file): Removed.
7284         (mono_debug_open_mono_symbol_file): Take an argument which
7285         specifies whether to create a dynamic symbol file.
7286
7287 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
7288
7289         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
7290
7291 2003-02-05  Martin Baulig  <martin@ximian.com>
7292
7293         * reflection.c (mono_image_build_metadata): Make this public,
7294         protect it against being called multiple times, don't create
7295         resources and don't build the compressed metadata here.
7296         (mono_image_create_pefile): Do this here.
7297
7298         * icall.c
7299         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
7300
7301 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7302
7303         * socket-io.c: fixed bug #36322.
7304
7305 2003-02-06  Piers Haken <piersh@friskit.com>
7306
7307         * appdomain.[ch]:
7308         * class.h:
7309         * debug-mono-symfile.c:
7310         * icall.c:
7311         * loader.c:
7312         * mono-config.c:
7313         * monosn.c:
7314         * reflection.c:
7315         * socket-io.c: warning cleanups
7316
7317 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
7318
7319         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
7320         function. works like remoting invoke, but does a check for the Proxy first.
7321
7322 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
7323
7324         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
7325
7326 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
7327
7328         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
7329         array of pointers.
7330         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
7331         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
7332
7333         * object.c (mono_store_remote_field_new): used by the new jit
7334         instead of mono_store_remote_field
7335         (mono_load_remote_field_new): used by the new jit
7336         instead of mono_load_remote_field
7337
7338 2003-02-05  Patrik Torstensson
7339
7340         * appdomain.c: changed unload to take the domain id instead
7341         of domain
7342         
7343         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
7344
7345
7346 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7347
7348         * appdomain.c: don't look for assemblies in ApplicationBase if
7349         PrivateBinPathProbe is set.
7350
7351 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7352
7353         * object.c: make the first argument in main_args contain the absolute
7354         path to the assembly. Fixes bug #37511.
7355
7356 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7357
7358         * icall.c: get correct UTC offset for countries not using daylight
7359         time saving. Fixes bug #30030.
7360
7361 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7362
7363         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
7364         and 1 are the family).
7365
7366 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
7367
7368         * icall.c (ves_icall_InternalExecute): removed wrong assertion
7369
7370         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
7371
7372 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
7373
7374         * reflection.c: added support for SignatureHelper tokens, which is
7375         needed by the Calli opcode.
7376
7377         * reflection.h: track changes to SignatureHelper class.
7378
7379         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
7380
7381 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7382
7383         * appdomain.c: fixed loading assemblies from PrivateBinPath.
7384
7385 2003-02-03  Patrik Torstensson
7386         * appdomain.[c|h], domain.c : 
7387          - Added support for getting a domain via domain id
7388          - Support for setting and getting domain from System.AppDomain 
7389            (used in cross appdomain channel)
7390          - Added support for get/set for a MonoAppContext on a thread 
7391            (Context class in System.Runtime.Remoting.Contexts),
7392          - Removed hack in Get/SetData and ExecuteAssembly.
7393         
7394         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
7395         the managed world to get control when a proxy is created.
7396
7397         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
7398         
7399 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
7400
7401         * icall.c
7402         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7403         Populate the codebase field as well.
7404
7405 2003-02-02  Martin Baulig  <martin@ximian.com>
7406
7407         * debug-mono-symfile.c
7408         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
7409         (mono_debug_symfile_add_method): Allow interncalls.
7410
7411 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7412
7413         * icall.c: throw parse exception if strtod fails or the string is empty.
7414
7415 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
7416
7417         * marshal.c: handle object type separately from defined
7418         class types.
7419
7420 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
7421
7422         * marshal.c: handle NATIVE_LPSTR for strings when it's
7423         explicitly specified.
7424
7425 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
7426
7427         * reflection.c, reflection.h, icall.c: setup the reflection
7428         handle cache for ModuleBuilders and AssemblyBuilders.
7429
7430 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
7431
7432         * reflection.c (reflection_methodbuilder_to_mono_method): set
7433         pinvoke flag
7434
7435 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7436
7437         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
7438
7439 2003-01-29  Dick Porter  <dick@ximian.com>
7440
7441         * threads.c: No need for the fake_thread kludge now that Thread
7442         doesn't run a class constructor
7443         
7444 2003-01-29  Dick Porter  <dick@ximian.com>
7445
7446         * threads.c: Use g_direct_hash instead of the rather bogus
7447         g_int_hash
7448
7449 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
7450
7451         * marshal.c (mono_marshal_get_native_wrapper): add check for null
7452         (fix pinvoke12.exe)
7453         (mono_marshal_get_struct_to_ptr): generate valid IL code
7454         (mono_marshal_get_ptr_to_struct): generate valid IL code
7455         (*): correctly set sig->pinvoke, we need to memdup the signature
7456         to do that
7457
7458 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7459
7460         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
7461         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
7462
7463 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
7464
7465         * profiler.c: provide more callers information.
7466
7467 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
7468
7469         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
7470
7471         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
7472
7473         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
7474
7475 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7476
7477         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
7478         exception instead of going into an infinite loop on dates which it 
7479         can't yet handle.
7480
7481         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
7482         out-of-range exception if needed.
7483
7484         * class.c (mono_class_setup_vtable): allow a virtual method to provide
7485         an implementation for an interface method and to override an inherited
7486         method at the same time. 
7487         Imagine a scenario when a virtual method is used to override a
7488         virtual abstract method in a parent class, and this same method 
7489         provides an implementation for an method inherited from an interface. 
7490         In this case, the interface resolution code will set im->slot, which 
7491         means that the virtual method override pass will skip this method 
7492         which means a pointer to the abstract method inherited from the parent
7493         will remain in the vtable of this non-abstract class.
7494
7495         * class.c: (mono_class_setup_vtable): continue search for a real 
7496         method if only an abstract method is found.     
7497
7498 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
7499
7500         * reflection.c: add size to encoding for ByValStr and ByValArray
7501         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
7502
7503 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7504
7505         * class.c (mono_class_setup_vtable): pass the override info as an
7506         argument.
7507
7508         * class.c (mono_class_setup_vtable): set the slot of overriding methods
7509         correctly.
7510         
7511         * reflection.c (ensure_runtime_vtable); add support for method 
7512         overrides.
7513         
7514 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7515
7516         * reflection.c (resolution_scope_from_image): Hack to work to work with
7517         dynamic assemblies.
7518
7519         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
7520         added a 'force_ref' argument to force this function to allways return 
7521         a TypeRef. This is needed by mono_image_get_memberref_token ().
7522         
7523 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7524
7525         * reflection.c (mono_image_get_type_info): interfaces really don't have
7526         a parent.
7527
7528         * reflection.c (mono_image_basic_init): fill out missing fields of
7529         image structure.
7530
7531         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
7532         dynamic assemblies. This is required so dynamic assemblies show up in
7533         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
7534         Type::GetType() etc. This is consistent with MS behaviour.
7535
7536         * image.c image.h reflection.c: add newly created classes to the name 
7537         cache so mono_class_get () will find them.      
7538
7539 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7540
7541         First part of changes to get IKVM.NET running under mono.
7542         
7543         * appdomain.h, appdomain.c: added new function 
7544         mono_domain_try_type_resolve() which will emit TypeResolve events. 
7545         This function will call AppDomain::DoTypeResolve to do the actual work.
7546
7547         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
7548         moved existing code dealing with dynamic tokens to a new function 
7549         called mono_reflection_lookup_dynamic_token (). This function will 
7550         raise TypeResolve events when appropriate. Since reflection.c is not 
7551         part of libmetadata, a new hook function called 
7552         mono_lookup_dynamic_token() is added to class.c which will call this.
7553
7554         * assembly.h assembly.c: make the invoke_load_hook function public,
7555         so it can be called for dynamic assemblies.
7556
7557         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
7558
7559         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
7560         type isn't found.
7561
7562         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
7563         MonoGHashTable, since it contains pointers to objects which the GC 
7564         needs to track.
7565
7566         * assembly.c (search_loaded): remove unused variable.
7567         
7568 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
7569
7570         * object.c: fixed issue exposed by gcc-generated IL programs
7571         that use RVA data for pointers.
7572
7573 2003-01-25  Martin Baulig  <martin@ximian.com>
7574
7575         * threads.c (start_wrapper): Moved the initialization of
7576         `start_func' above the mono_new_thread_init() call to which we
7577         pass it as argument.
7578
7579 2003-01-24  Martin Baulig  <martin@ximian.com>
7580
7581         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
7582         the MonoThread pointer.
7583
7584 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
7585
7586         * icall.c: Rename `PowImpl' to Pow.
7587
7588 2003-01-23  Dick Porter  <dick@ximian.com>
7589
7590         * threads.c (start_wrapper): Create a Thread object if needed, so
7591         the Main() thread can do the class initialisation in a subthread
7592         that has been set up to allow managed code execution.
7593
7594         Pass the thread ID instead of the MonoThread pointer to the thread
7595         start and attach callbacks.  This change is required, because the
7596         jit thread start callback must be called _before_ the Thread
7597         object can be created.
7598         
7599         (mono_thread_init): Removed much object creation code that is no
7600         longer needed.  No managed code is called from here now.
7601
7602         * object.c (mono_runtime_exec_managed_code): Create a subthread
7603         for Main, and call back to the runtime to use it.
7604         Set the exit code when Main exits.
7605
7606         * gc.c: Make sure domain finalisation happens in a subthread.
7607         Re-enable threaded GC, fixing bug 31333 (again).
7608
7609         * environment.c: System.Environment internall calls (so far just
7610         ExitCode is here, the others are still in icall.c)
7611
7612         * appdomain.c (mono_runtime_cleanup): All threads running managed
7613         code should have finished before mono_runtime_cleanup() is
7614         reached, so no need to clean up threads.
7615
7616 2003-01-22  Martin Baulig  <martin@ximian.com>
7617
7618         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
7619         `gpointer func' arguments.      
7620         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
7621         but added `MonoThread *thread' argument.
7622         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
7623
7624         * threads.c (mono_new_thread_init): Added `gpointer func' argument
7625         and pass it to the mono_thread_start_cb callback.
7626         (mono_install_thread_callbacks): New public function to install a
7627         set of callbacks which are set by the debugger.
7628         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
7629
7630 2003-01-22  Martin Baulig  <martin@ximian.com>
7631
7632         * Makefile.am: Install debug-mono-symfile.h.
7633
7634 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
7635
7636         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
7637
7638 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
7639
7640         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
7641         * class.c (mono_ptr_class_get): correctly set access levels of pointers
7642         (mono_array_class_get): correctly set access levels of arrays
7643
7644 2003-01-20      Patrik Torstensson
7645         * image.h (MonoAssemblyName): changed major, minor, build, revision
7646         from signed to unsigned.
7647
7648 2003-01-20  sean kasun <skasun@azstarnet.com>
7649
7650         * reflection.c (load_cattr_value): Now this handles
7651         MONO_TYPE_SZARRAY.  Fixes bug #35629
7652
7653 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
7654
7655         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
7656         integer value
7657
7658 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7659
7660         * decimal.c: fixed bug #26056.
7661
7662 2003-01-17  Martin Baulig  <martin@ximian.com>
7663
7664         * gc.c: Raise an ExecutionEngineException instead of using g_error().
7665
7666 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7667
7668         * exception.[ch]:
7669         (mono_get_exception_type_initialization): new function.
7670
7671         * object.c: throw a TypeInitializationException when an exception is
7672         thrown invoking the class constructor.
7673
7674 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7675
7676         * reflection.c: fixed attribute reading.
7677
7678 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7679
7680         * icall.c:
7681         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
7682         provided, look for the type in the calling assembly and then in
7683         mscorlib; if the assembly name is provided, only try that one.
7684
7685 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
7686
7687         * object.c: register the vtable before there is a chance it's
7688         queried again recursively.
7689
7690 2003-01-13  Duncan Mak  <duncan@ximian.com>
7691
7692         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
7693         gc-internal.h. 
7694         
7695 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
7696
7697         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
7698
7699 2003-01-11  Martin Baulig  <martin@ximian.com>
7700
7701         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
7702         this to 20 for the release.
7703
7704 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
7705
7706         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
7707
7708         * loader.c (mono_method_get_marshal_info): bug fix
7709
7710         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
7711         structures with explicit layout
7712
7713 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
7714
7715         * profiler.c: made the output more readable (and sorted). 
7716         Added caller information for the allocation profiler.
7717
7718 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
7719
7720         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
7721
7722 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7723
7724         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
7725         to get value types.
7726         
7727 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
7728
7729         * object.c, profiler.h, profiler.c, profiler-private.h:
7730         Added object allocation profiler.
7731
7732 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
7733
7734         * reflection.h, reflection.c: handle global methods.
7735         Compress blob entries.
7736
7737 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
7738
7739         * marshal.c: fix compilation.
7740
7741 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
7742
7743         * loader.c (mono_method_get_marshal_info): impl.
7744
7745         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
7746
7747 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7748
7749         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
7750         for reference types.
7751
7752 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
7753
7754         * loader.c: fixed off by one error in loaded parameter names.
7755
7756 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
7757
7758         * marshal.c (mono_marshal_get_icall_wrapper): like
7759         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
7760         instead of a MonoMethod.
7761
7762 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7763
7764         * decimal.c: fixed bug #36537.
7765
7766 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
7767
7768         * marshal.c: throw a missing method exception if a
7769         P/Invoke method is not found.
7770
7771 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
7772
7773         * icall.c: allow a null this for constructors.
7774
7775 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
7776
7777         * icall.c: raise the proper exceptions if the arguments to the
7778         internal Invoke are incorrect.
7779
7780 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
7781
7782         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
7783
7784 2003-01-03  Martin Baulig  <martin@ximian.com>
7785
7786         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
7787
7788 2002-12-31  Martin Baulig  <martin@ximian.com>
7789
7790         * debug-mono-symfile.c: Completely rewrote the type section.
7791         Instead of using individual malloc()ed fields, we use one big
7792         continuous memory area and offsets into this area.
7793         See the comments in the source code for details.
7794
7795 2002-12-30  Martin Baulig  <martin@ximian.com>
7796
7797         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
7798
7799 2002-12-30  Martin Baulig  <martin@ximian.com>
7800
7801         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
7802         line number table in this data blob instead of using an external
7803         pointer.
7804
7805 2002-12-28  Martin Baulig  <martin@ximian.com>
7806
7807         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
7808
7809 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
7810
7811         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
7812         as a boxed return type.
7813
7814 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
7815
7816         * appdomain.c
7817         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
7818         g_build_filename to properly get separators on the filename created.
7819
7820         * object.h: Small change, introduce MonoMarshalByRefObject to
7821         track the layout of that structure in the C# universe as we make
7822         changes there.
7823
7824 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
7825
7826         * object.c: removed assert to allow static fields on interfaces.
7827         * loader.c: a TypeSpec may be used for any type, not just arrays.
7828
7829 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
7830
7831         * class.c, class.h: added mono_class_array_element_size ().
7832         Ignore static methods in interfaces.
7833
7834 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7835
7836         * threads.c: fixed the build under cygwin.
7837
7838 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
7839
7840         * reflection.c: handle nullref constants. Allocate keys for
7841         reflection handles with the GC.
7842
7843 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
7844
7845         * threads.c, threads.h: added mono_thread_get_abort_signal()
7846         to get a suitable signal for thread abort.
7847
7848 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
7849
7850         * metadata.c: fix handling of ExportedType table.
7851
7852 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7853
7854         * icall.c: added WriteWindowsDebugString internal call.
7855
7856 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7857
7858         * reflection.h: added fields to match C# implementation.
7859
7860 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7861
7862         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
7863
7864 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
7865
7866         * gc.h, gc-internal.h: Rename header for GC internal calls to
7867         gc-internal.h from gc.h as to not clash with Boehm GC having its
7868         header installed as <gc.h> in outside include paths.
7869         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
7870         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
7871
7872 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7873
7874         * icall.c: assign minor, build and revision in FillName.
7875
7876 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
7877
7878         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
7879         Added support for running code generated by Reflection.Emit.
7880
7881 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7882
7883         * appdomain.c: check for NULL argument in LoadFrom.
7884
7885 2002-12-10  Dick Porter  <dick@ximian.com>
7886
7887         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
7888
7889 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7890
7891         * appdomain.c: fix buglet when building exe file name.  Handle full
7892         assembly name (needed after latest changes to AssemblyName).
7893         * image.c:
7894         (mono_image_close): free some hashtables.
7895
7896 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
7897
7898         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
7899         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
7900         on some systems (redhat 7.3) 
7901
7902 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
7903
7904         * threads.c: delete the critical section of a sync block,
7905         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
7906
7907 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
7908
7909         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
7910
7911 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7912
7913         * appdomain.[ch]: handle the assembly preload event to try loading the
7914         assemblies using the paths we have in the current domain.
7915
7916         * assembly.[ch]: created an assembly preload hook that is called to try
7917         loading the assembly by other means that the ones provided here.
7918
7919         * domain.c: initialize the domain search path.
7920
7921         From now on, assemblies (TODO: except corlib and System) are loaded
7922         according to these rules when using mono_assembly_load ():
7923
7924                 1. It tries to load the assembly from the ApplicationBase
7925                 of the current domain appending .dll and .exe (TODO: have to
7926                 try loading from name/name.dll and name/name.exe).
7927
7928                 2. It tries the search path specified in PrivateBinPath for the
7929                 current domain (if any).
7930
7931                 3. Previous behavior.
7932
7933 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
7934
7935         * icall.c: implemented GetInterfaceMap() related icall.
7936         * domain.c, loader.h: load MethodInfo in mono_defaults.
7937
7938 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
7939
7940         * gc.c: disable the finalizer thread for now, untill all the issues
7941         with it are resolved.
7942
7943 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
7944
7945         * string-icalls.c: handle embedded nulls in string ctor when the
7946         length is specified.
7947
7948 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
7949
7950         * class.c: look for explicit interface implementation in parent
7951         classes, too.
7952
7953 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
7954
7955         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
7956
7957 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
7958
7959         * gc.c: protect handles with a critical section.
7960
7961 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7962
7963         * icall.c:
7964         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
7965         parameters. If no assembly specified, try getting the type from all
7966         the assemblies in the current domain, else, load the assembly and get
7967         the type from it.
7968
7969 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7970
7971         * marshal.c: applied patch from Aleksey Demakov that fixes
7972         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
7973
7974 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7975
7976         * icall.c: fixed get_location.
7977
7978 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
7979
7980         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
7981         declarations to make it work with older gcc. 
7982
7983         * loader.c (mono_get_method): set signature->pinvoke for native calls
7984
7985 2002-11-20  Dick Porter  <dick@ximian.com>
7986
7987         * threads.c (mono_thread_init): Set the main thread's handle
7988
7989 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
7990
7991         * gc.c: allow compilation without GC support. Changed to match the
7992         mono coding style.
7993
7994 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
7995
7996         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
7997
7998 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
7999
8000         * reflection.c: set a public key token on the core assemblies.
8001
8002 2002-11-18  Dick Porter  <dick@ximian.com>
8003
8004         * threads.c: Split out some thread initialisation so that other
8005         files can set the start callback function.
8006
8007         * gc.c: Run finalisers in a separate thread, to avoid stack
8008         overflow.  Fixes bug 31333.
8009
8010         * appdomain.c: Set up GC finalisation thread.
8011
8012         * reflection.c: 
8013         * object.c: 
8014         * domain.c: Use gc.h macros for GC_malloc
8015         
8016 2002-11-15  Dick Porter  <dick@ximian.com>
8017
8018         * threadpool.c: 
8019         * threads.c:
8020         * appdomain.c: Removed mono_runtime_init_with_attach(),
8021         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
8022         merging the extra parameter with the existing function.  Removed
8023         unneeded code in mono_thread_attach().
8024
8025 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
8026
8027         * image.c (mono_image_loaded_by_guid): a method to get loaded
8028         images by guid. 
8029         (load_metadata_ptrs): we store the guid as string.
8030
8031 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
8032
8033         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
8034
8035         * metadata.c (mono_guid_to_string): imported method form Zoltan
8036         Varga (slightly modified)
8037
8038         * assembly.c (mono_assembly_open): load precompiled code
8039
8040         * loader.h (MonoMethod): we store the method token for use in the
8041         aot compiler. 
8042
8043 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8044
8045         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
8046         the hook function called when an assembly is loaded.
8047         
8048         * domain.c: Modified file.
8049         (mono_domain_assembly_load): removed hash table insertion of assemblies.
8050
8051         Fixes bug #33196.
8052
8053 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
8054
8055         * reflection.c: Map PEFileKind to the value expected by the WinNT
8056         image loader. 
8057
8058 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8059
8060         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
8061         Read until the buffer is filled completely.
8062
8063 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8064
8065         * icall.c: implemented MonoType.InternalGetEvent ().
8066
8067 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8068
8069         * appdomain.c: implemented InitAppDomainSetup. Delayed
8070         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
8071         the entry_assembly.
8072
8073         * assembly.c: base_dir is now an absolute path ending with
8074         G_DIR_SEPARATOR.
8075
8076         * icall.c: modified get_location according to the above changes.
8077
8078         * object.c: init AppDomain.SetupInformation for the default domain after
8079         we have the entry assembly.
8080
8081         * domain.c: when unloading a domain, setup = NULL.
8082
8083 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
8084
8085         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
8086
8087 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
8088
8089         * object.h, object.c: introduced mono_object_get_virtual_method ()
8090         to lookup the method invoked on an object when a callvirt is done on
8091         a method.
8092         * icall.c: make MethodInfo::Invoke() always do a virtual call.
8093
8094 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8095
8096         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
8097         current domain when loaded an assembly and failed to load it.
8098
8099         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
8100
8101 2002-10-31  Dick Porter  <dick@ximian.com>
8102
8103         * icall.c: 
8104         * file-io.h: 
8105         * file-io.c: Return the error status in a parameter, as the
8106         GetLastError() value has long since been blown away if we try and
8107         look it up in a subsequent internal call invocation.  Delete the
8108         GetLastError() internal call, because it's useless.
8109
8110 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
8111
8112         * class.[ch]: added cast_class to fix bug 29517
8113
8114 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
8115
8116         * marshal.c: create valid IL code in the filter clause:
8117         the new JIT is less forgiving:-)
8118
8119 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8120
8121         * icall.c: removed get_property internal call.
8122
8123 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
8124
8125         * appdomain.h domain.c: Added an ID to appdomains.
8126         
8127         * threads.c threads.h icall.c: Implement icall
8128         Thread:GetDomainID(), and remove unused icall 
8129         CurrentThreadDomain_internal.
8130
8131 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8132
8133         * icall.c: Don't recurse through the base types in GetConstructor.
8134         Fixes bug #32063. 
8135
8136 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
8137
8138         * mempool.h, mempool.c: added mono_mempool_empty() and
8139         mono_mempool_stats().
8140
8141 2002-10-23  Dick Porter  <dick@ximian.com>
8142
8143         * file-io.c: 
8144         * file-io.h: 
8145         * icall.c: Added MonoIO.GetFileType internal call
8146
8147 2002-10-17  Dick Porter  <dick@ximian.com>
8148
8149         * appdomain.c (mono_runtime_cleanup): Don't signal the async
8150         delegate semaphore before waiting for all threads to finish,
8151         because new threads can also call async delegates.  Fixes bug
8152         32004.
8153
8154         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
8155         of 3 seconds, in case another async job is queued.  (This part is
8156         needed because the bug fix reintroduced the 3s exit lag.)  This
8157         makes the mono_runtime_shutdown flag superfluous.
8158
8159 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
8160
8161         * reflection.c: include ehader size in method section headers.
8162         Really check for suplicated modules entries.
8163
8164 2002-10-17  Martin Baulig  <martin@gnome.org>
8165
8166         * debug-mono-symfile.c: Added back support for locals.
8167
8168 2002-10-14  Martin Baulig  <martin@gnome.org>
8169
8170         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
8171         MONO_TYPE_VOID.
8172
8173 2002-10-14  Martin Baulig  <martin@gnome.org>
8174
8175         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
8176         mono_class_get() instead of looking in the class cache. 
8177
8178 2002-10-13  Martin Baulig  <martin@gnome.org>
8179
8180         * debug-mono-symfile.c: Set version number to 28, include the
8181         signature in method names.
8182
8183 2002-10-13  Martin Baulig  <martin@gnome.org>
8184
8185         * debug-mono-symfile.h: Set version number to 27.
8186
8187 2002-10-11  Martin Baulig  <martin@gnome.org>
8188
8189         * gc.c: Don't register/unregister NULL pointers as disappearing links.
8190
8191 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
8192
8193         * metadata.c, metadata.h: added helper function to allocate signatures.
8194
8195 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8196
8197         * icall.c: added internal call to get the location of machine.config.
8198
8199 2002-10-08  Martin Baulig  <martin@gnome.org>
8200
8201         * debug-mono-symfile.c: Ignore classes with a pending init for the
8202         moment.
8203
8204 2002-10-03  Dick Porter  <dick@ximian.com>
8205
8206         * threads.c: Freebsd pthread_t is a pointer
8207
8208 2002-10-03  Dick Porter  <dick@ximian.com>
8209
8210         * socket-io.c: Implemented GetHostName_internal
8211
8212 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8213
8214         * mono-config.c:
8215         (mono_config_parse_file): don't leak the text.
8216
8217 2002-10-02  Martin Baulig  <martin@gnome.org>
8218
8219         * debug-mono-symfile.c: Added support for methods.
8220
8221 2002-10-01  Martin Baulig  <martin@gnome.org>
8222
8223         * debug-mono-symfile.c: Don't emit methods and line numbers for
8224         the dynamic symbol file, just write the type table.  We can easily
8225         have an external helper program which creates a symbol file for an
8226         IL file.        
8227
8228 2002-10-01  Dick Porter  <dick@ximian.com>
8229
8230         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
8231         Only add the handle to the cleanup array when we're about to
8232         launch the thread.  Bug 31425 deadlocked when the test was run on
8233         mono under w32.
8234
8235 2002-10-01  Martin Baulig  <martin@gnome.org>
8236
8237         * debug-mono-symfile.c: Added support for properties.
8238
8239 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
8240
8241         * reflection.c: unaligned store fix from Mark Crichton
8242         <crichton@gimp.org>.
8243
8244 2002-09-27  Martin Baulig  <martin@gnome.org>
8245
8246         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
8247         New interncall.
8248
8249 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
8250
8251         * assembly.h, assembly.c: use a sane API to hook into the assembly
8252         loading process instead of a useless special-purpouse hack
8253         (ngen needs a hook, too, for example).
8254
8255 2002-09-27  Dick Porter  <dick@ximian.com>
8256
8257         * threads.c (mono_thread_init): Call GetCurrentProcess() so
8258         io-layer can set up some process handle info.  Not needed on w32,
8259         but doesn't hurt either.
8260
8261         * process.c: Pass the program name in the second parameter to
8262         CreateProcess, so the path is searched.  Include the working
8263         directory. Implemented process name, process enumeration, and some
8264         process detail internal calls.
8265         
8266         * icall.c: Added internal calls for process lookup, and some
8267         process details
8268
8269 2002-09-26  Martin Baulig  <martin@gnome.org>
8270
8271         * assembly.c (mono_install_open_assembly_hook): New global
8272         function to install a function to be invoked each time a new
8273         assembly is loaded.
8274         (mono_assembly_open): Run this callback function if set.
8275
8276         * debug-mono-symfile.c: Put back line numbers for the dynamic
8277         symbol file and also record the .il file as source file.  This
8278         allows us to install the temporary symbol file as `file.dbg' just
8279         like a compiler-generated one.
8280
8281 2002-09-26  Nick Zigarovich <nick@chemlab.org>
8282
8283         * Corrected typo in gc.c (BOHEM vs BOEHM).
8284
8285 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8286
8287         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
8288         GetProperties. Also avoid calling g_slist_length in GetProperties and
8289         GetMethods.
8290
8291 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
8292
8293         * reflection.c: avoid unaligned stores (bug spotted by
8294         Mark Crichton  <crichton@gimp.org>).
8295
8296 2002-09-25  Martin Baulig  <martin@gnome.org>
8297
8298         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
8299         instead of guint64 for addresses and added prologue/epilogue info.
8300
8301 2002-09-25  Martin Baulig  <martin@gnome.org>
8302
8303         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
8304         store line number info.  For the dynamic symbol file, we only need
8305         to provide the JIT generated dynamic line number info for the dynamic
8306         symbol file.
8307
8308 2002-09-25  Martin Baulig  <martin@gnome.org>
8309
8310         * debug-mono-symfile.h: Incremented version number.
8311
8312 2002-09-24  Martin Baulig  <martin@gnome.org>
8313
8314         * class.c (mono_debugger_class_init_func): New global function
8315         pointer variable.
8316         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
8317         call it.
8318
8319         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
8320         function.  This is called via the mono_debugger_class_init_func
8321         hook to add all types to the dynamic type table.
8322         (ves_icall_MonoDebugger_GetType): New interncall to get a class
8323         from its metadata token.
8324
8325         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
8326         New interncall for the debugger.
8327
8328 2002-09-24  Nick Drochak <ndrochak@gol.com>
8329
8330         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
8331         before using it in case it is null.
8332         
8333 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8334
8335         * metadata.c: allow custom modifiers in local var signatures
8336         (bug spotted by Zoltan Varga).
8337
8338 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
8339
8340         * class.c: deal with the <Module> class that may have a NULL vtable.
8341         Eliminate warnings.
8342
8343 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8344
8345         * image.c, image.h: more strong name helpers.
8346         * monosn.c: more work: convert pem keys to cryptoapi format.
8347
8348 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
8349
8350         * string-icalls.c: speedup IndexOf.
8351
8352 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8353
8354         * icall.c: updates from Zoltan.2.Varga@nokia.com.
8355
8356 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8357
8358         * icall.c: cleanup: use mono_object_domain ().
8359
8360 2002-09-23  Martin Baulig  <martin@gnome.org>
8361
8362         * debug-mono-symfile.c: Improved type support.
8363
8364 2002-09-22  Martin Baulig  <martin@gnome.org>
8365
8366         * debug-mono-symfile.c: Added support for reference types and strings.
8367
8368 2002-09-22  Martin Baulig  <martin@gnome.org>
8369
8370         * debug-mono-symfile.c: Started to work on the type table.
8371
8372 2002-09-21  Martin Baulig  <martin@gnome.org>
8373
8374         * debug-mono-symfile.c: Largely reworked the symbol table format.
8375         The symbol table is now incrementally updated each time a new
8376         method is added.  We're now also using our own magic and version
8377         so that you don't need to recompile all your classes if the
8378         dynamic table changes.
8379         (mono_debug_update_mono_symbol_file): Removed.
8380         (mono_debug_symfile_add_method): New function to add a method.
8381
8382 2002-09-21  Martin Baulig  <martin@gnome.org>
8383
8384         * icall.c
8385         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
8386         New interncall.
8387
8388         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
8389         New interncall to get a method from its metadata token.
8390
8391 2002-09-21  Martin Baulig  <martin@gnome.org>
8392
8393         * debug-mono-symfile.c: Create type table.
8394
8395 2002-09-20  Martin Baulig  <martin@gnome.org>
8396
8397         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
8398
8399 2002-09-20  Martin Baulig  <martin@gnome.org>
8400
8401         * debug-mono-symfile.c: Provide information about params and locals.
8402
8403 2002-09-20  Martin Baulig  <martin@gnome.org>
8404
8405         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
8406         New interncall.
8407
8408         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
8409         interncall to get a method from its metadata token.
8410
8411 2002-09-20  Martin Baulig  <martin@gnome.org>
8412
8413         * debug-mono-symfile.c: Added a few checks for method->header
8414         being non-NULL.  This should never happen, but for the moment
8415         let's use a g_warning() rather than a g_assert().
8416
8417 2002-09-19  Mark Crichton  <crichton@gimp.org>
8418
8419         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
8420         even if support for it isn't present.  Added an #ifdef to fix this.
8421
8422         * socket-io.c: Added checks back for Solaris support.
8423
8424 2002-09-19  Martin Baulig  <martin@gnome.org>
8425
8426         * debug-mono-symfile.c (read_string, write_string): Reflect latest
8427         changes in the symbol file format.
8428
8429 2002-09-18  Martin Baulig  <martin@gnome.org>
8430
8431         * debug-mono-symfile.c: Set version number to 21.
8432
8433 2002-09-18  Dick Porter  <dick@ximian.com>
8434
8435         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
8436         on netbsd.  Fixes bug 30051.
8437
8438 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8439
8440         * reflection.c:
8441         (set_version_from_string): little fix.
8442
8443 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8444
8445         * monosn.c, Makefile.am: added strong name utility.
8446         * reflection.h, reflection.c: implemented delayed signing,
8447         locale, version and hash id assembly attributes.
8448
8449 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
8450
8451         * loader.c, metadata.c: load param attributes in signatures.
8452
8453 2002-09-16  Martin Baulig  <martin@gnome.org>
8454
8455         * debug-mono-symfile.c: Added string table with all method names.
8456
8457 2002-09-14  Martin Baulig  <martin@gnome.org>
8458
8459         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
8460         fast method lookup.
8461
8462 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
8463
8464         * reflection.c: record the public key token of referenced assemblies.
8465
8466 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
8467
8468         * image.c, image.h: added functions to get the strong name and the
8469         public key of an assembly.
8470         * pedump.c: use them.
8471
8472 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
8473
8474         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
8475
8476 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
8477
8478         * marshal.c (mono_marshal_get_managed_wrapper): Added
8479         MONO_TYPE_BOOLEAN 
8480
8481 2002-09-11  Martin Baulig  <martin@gnome.org>
8482
8483         * gc.c: Call GC_unregister_disappearing_link() on all links when
8484         finalizing them, this is necessary to aviod a crash in boehm's
8485         finalize handler.
8486
8487 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8488
8489         * gc.c: handle GetTarget for finalized objects spotted and fixed by
8490         nick@chemlab.org.
8491
8492 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
8493
8494         * icall.c: implemented MonoType::Module.
8495         * reflection.c, reflection.h: mono_module_get_object () from
8496         Tomi Pakarinen <tomi.pakarinen@welho.com>.
8497
8498 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
8499
8500         * icall.c: ignore overridden methods in GetMethods ().
8501         Fix for FieldInfo::SetValue().
8502         * object.c: handle float/double in runtime invoke.
8503
8504 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
8505
8506         * object.c: allow a constructor to be called again on an object.
8507
8508 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8509
8510         * class.h, class.c: move field layout code to it's own function and
8511         export it. Get an interface id earlier. Move fields in MonoClass
8512         so they are more cache friendly and align the bitfields.
8513         * loader.c: temporary handle get_param_names() for a runtime method.
8514         * reflection.c, reflection.h: more code to handle runtime creation of
8515         types.
8516
8517 2002-09-09  Martin Baulig  <martin@gnome.org>
8518
8519         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
8520         signature with the pinvoke field being set for the actual call.
8521
8522 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8523
8524         * icall.c: removed some unused icalls. Start of map of glib charsets
8525         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
8526
8527 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
8528
8529         * debug-helpers.c: break infinite loop (found and fixed by
8530         Holger Arnold <harnold@gmx.de>).
8531
8532 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
8533
8534         * icall.c: target may be null in create_delegate.
8535
8536 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8537
8538         * marshal.c: handle a boolean return type.
8539
8540 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8541
8542         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
8543
8544 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
8545
8546         * gc.c: fix weakreferences.
8547
8548 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
8549
8550         * icall.c: added icall to get default codepage.
8551
8552 2002-09-03  Dick Porter  <dick@ximian.com>
8553
8554         * threads.h: 
8555         * threads.c: Use MonoThread instead of MonoObject where
8556         apropriate.
8557
8558         Store running thread objects in a hash table, so that we have all
8559         the info to hand when waiting for them to finish
8560         (means we don't need OpenThread() any more, so mingw builds should
8561         be fully functional again.)
8562
8563         * verify.c:
8564         * object.h: Added thread ID to MonoThread
8565
8566 2002-09-03  Martin Baulig  <martin@gnome.org>
8567
8568         * icall.c (System.Reflection.Assembly::get_location): New interncall.
8569
8570 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8571
8572         * icall.c: fixed leak in get_temp_path. Thanks lupus.
8573
8574 2002-09-03  Martin Baulig  <martin@gnome.org>
8575
8576         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
8577         argument to store the end address of the disassembled instruction.
8578
8579         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
8580         here from debug-symfile.h.
8581         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
8582         JIT into this struct.
8583         (MonoSymbolFile): Added `char *image_file' field.
8584         (MonoDebugGetMethodFunc): Removed.
8585         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
8586         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
8587         (mono_debug_find_method): New method.
8588
8589         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
8590         create a full symbol file.
8591         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
8592         and static symbol files.
8593         (mono_debug_find_method): The symbol file keeps an internal method hash,
8594         call this to get a MonoDebugMethodInfo from a MonoMethod.
8595
8596         * debug-symfile.[ch]: Removed.
8597
8598 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
8599
8600         * image.c (do_mono_image_open): Remove linker version check.
8601
8602 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
8603
8604         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
8605         wrappers for instance methods.
8606         
8607 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8608
8609         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
8610
8611 2002-08-28  Dick Porter  <dick@ximian.com>
8612
8613         * Makefile.am: Export HOST_CC for w32 builds
8614
8615 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
8616
8617         * file-io.c process.c: MonoString are null terminated, no
8618         need for mono_string_to_utf16() anymore.
8619
8620 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8621
8622         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
8623
8624 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
8625
8626         * icall.c, reflection.h: speedup System.MonoType.
8627
8628 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
8629
8630         * reflection.c: allow null as the value of a string argument in
8631         custom attributes constructors.
8632
8633 2002-08-27  Martin Baulig  <martin@gnome.org>
8634
8635         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
8636         `trampoline_address' field.
8637
8638 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
8639
8640         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
8641         check (fixes bug #29486) 
8642
8643 2002-08-27  Martin Baulig  <martin@gnome.org>
8644
8645         * debug-mono-symfile.c: Changed the file format in a way that allows us
8646         open it read-only and to use a specially malloced area for all the
8647         dynamic data.  We can now also generate a symbol file on-the-fly if we're
8648         debugging IL code and there is no MCS generated symbol file for it.
8649
8650 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
8651
8652         * object.c: added a define for a good string and array
8653         creation speedup (not enabled by default because we need to deal with
8654         the synch stuff).
8655
8656 2002-08-26  Martin Baulig  <martin@gnome.org>
8657
8658         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
8659         function to create a dynamic symbol file.  This is used by the
8660         debugger to create a symbol file for IL code on-the-fly.
8661
8662 2002-08-26  Martin Baulig  <martin@gnome.org>
8663
8664         * loader.c (mono_lookup_pinvoke_call): Include the error message
8665         from g_module_error() in the error message.
8666
8667 2002-08-24  Martin Baulig  <martin@gnome.org>
8668
8669         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
8670         function to update the symbol file.  The symbol file is mmap()ed
8671         writable, but private.  This allows us to install the symbol file
8672         together with the assembly.
8673
8674 2002-08-24  Martin Baulig  <martin@gnome.org>
8675
8676         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
8677         but they can read the new symbol file format which mcs is now creating.
8678
8679         * debug-symfile.c (mono_debug_find_source_location): Moved to
8680         debug-mono-symfile.c; this is now operating on the new symbol file.
8681
8682 2002-08-23  Martin Baulig  <martin@gnome.org>
8683
8684         * debug-helpers.c (mono_method_desc_from_method): New function to get
8685         a MonoMethodDesc from a MonoMethod.
8686
8687 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
8688
8689         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
8690         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
8691
8692 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
8693
8694         * string-icalls.[ch]: make helper methods static.
8695
8696 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8697
8698         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
8699         types to it and to SetValueInternal.
8700
8701         * object.c: Moved handle_enum label to its proper place. This was the
8702         f... bug! ;-)
8703
8704         This time i compiled mcs and gtk-sharp and they both work.
8705
8706 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8707
8708         * icall.c: reverted partially my previous patch until 
8709         object.c:set_value handles enums correcly.
8710
8711 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8712
8713         * icall.c:
8714         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
8715         (ves_icall_System_Environment_get_MachineName): removed warning when
8716         compiling under cygwin.
8717
8718 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
8719
8720         * object.c: fixed field_get_value() for reference types.
8721
8722 2002-08-22  Dick Porter  <dick@ximian.com>
8723
8724         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
8725         Don't free a buffer while it's still needed.  Patch from Jonathan
8726         Liger <Jonathan.liger@wanadoo.fr>
8727
8728 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
8729
8730         * icall.c (ves_icall_System_Environment_get_Platform): Add new
8731         internal call.
8732
8733 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
8734
8735         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
8736         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
8737
8738         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
8739         we call unmanaged code which throws exceptions.
8740
8741 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8742
8743         * appdomain.h: added per-domain entry_assembly.
8744         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
8745         arguments.
8746         * icall.c: Assembly::GetEntryAssembly icall.
8747         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
8748         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
8749
8750 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8751
8752         * appdomain.h, gc.c: added mono_domain_finalize ().
8753
8754 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8755
8756         * object.c:
8757         (mono_print_unhandled_exception): changed g_warning by g_printerr
8758         because g_log has a 1024 characters limit (yeah, i got a big stack
8759         trace). Don't print exception name, that should be in ToString 
8760         returned string.
8761
8762 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8763
8764         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
8765         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
8766
8767 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8768
8769         * object.c:
8770         (mono_print_unhandled_exception): after previous commit, i realized
8771         that MS calls ToString on the exception. I changed this function to
8772         do that. This way we get stack_trace for free.
8773
8774 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8775
8776         * object.c:
8777         (mono_print_unhandled_exception): invoke Message property instead of
8778         getting 'message' field from Exception. Don't allocate memory for
8779         'trace' and 'message' if not needed.
8780
8781 2002-08-18  Dick Porter  <dick@ximian.com>
8782
8783         * unicode.c: Fix asserts to match Encoder.cs checks
8784
8785 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8786
8787         * marshal.c: fix unaligned store issue and a few wrong
8788         opcode argument types.
8789
8790 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8791
8792         * icall.c: added GetUninitializedObjectInternal internal call.
8793
8794 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
8795
8796         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
8797         to the right domain.
8798
8799 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
8800
8801         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
8802
8803         * class.c (class_compute_field_layout): set blittable to false for Strings
8804
8805         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
8806
8807 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8808
8809         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
8810         first chunk of code to create types at runtime. Code to
8811         handle ReflectedType/DeclaringType. Make reflection handles
8812         domain specific.
8813
8814 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
8815
8816         * class.c: set correct name in arrays.
8817
8818 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
8819
8820         * appdomain.c (mono_domain_transfer_object): make it work with
8821         valuetypes. bug fixes.
8822
8823 2002-08-12  Dick Porter  <dick@ximian.com>
8824
8825         * object.h: Rename some parameters to avoid c++ keywords (Patch
8826         from Joseph Wenninger <kde@jowenn.at>)
8827
8828 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
8829
8830         * icall.c: added icall to implement Assembly.GetFile*.
8831
8832 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8833
8834         * reflection.h, reflection.c: code to embed managed resources.
8835
8836 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
8837
8838         * class.c: move all the type size stuff into
8839         class_compute_field_layout().
8840
8841 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8842
8843         * class.c: ensure enums have always the correct instance size.
8844         * unicode.c: remove wrong assert.
8845
8846 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
8847
8848         * assembly.c: fix mem corruption issue.
8849         * image.h, image.c: added mono_image_get_resource () to access
8850         managed resources.
8851         * icall.c: implemented Assembly.EntryPoint property and some
8852         Managed Resources related internalcalls.
8853
8854
8855 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
8856
8857         * image.c, image.h: impemented mono_image_get_entry_point ().
8858         * appdomain.c: use mono_image_get_entry_point.
8859
8860 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8861
8862         * reflection.c: support the object type argument when loading
8863         custom attributes.
8864
8865 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
8866
8867         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
8868         String as return type.
8869
8870 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
8871
8872         * reflection.c: fix encoding of named args for custom attrs to match
8873         the ms implementation. Read them back when instantiating custom
8874         attributes.
8875
8876 2002-08-02  Radek Doulik  <rodo@ximian.com>
8877
8878         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
8879         by Dietmar as quick fix
8880         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
8881         16 as stack size, used on more places as quick fix before Dietmar
8882         will fix it properly
8883
8884 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8885
8886         * object.h, object.c: added accessors for fields and properties.
8887
8888 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8889
8890         * class.c, class.h: made mono_class_get_field_from_name ()
8891         loop on parent types.
8892         Added mono_class_get_property_from_name ().
8893
8894 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
8895
8896         * class.c, class.h: move the code to setup the type vtable in its own
8897         function so that it can be reused also for types created at runtime.
8898         Eliminate the "class" identifier from the header file.
8899         * reflection.c: setup the vtable for enums so that we can create
8900         objects for use in SetConstant ().
8901
8902 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
8903
8904         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
8905         instead of the delegate itself as this pointer (bug #28383)
8906
8907 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
8908
8909         * marshal.c (mono_marshal_get_managed_wrapper): added return type
8910         conversions.
8911
8912 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8913
8914         * loader.c: don't set the pinvoke bit on icalls.
8915
8916 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
8917
8918         * debug-helpers.c (mono_method_full_name): only print a number to
8919         indicate wrapper type (so that the output is more readable in traces).
8920
8921 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
8922
8923         * class.c (mono_class_init): include method override patch from Paolo
8924
8925 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
8926
8927         * icall.c: fixed GetTypeCode().
8928
8929 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
8930
8931         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
8932         use real delegate invoke function to make it work with multicast
8933         delegates (fix bug# 28291).
8934
8935 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
8936
8937         * object.c: load constant strings.
8938
8939 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
8940
8941         * reflection.c: no magic numbers.
8942         * tabledefs.h: security action enum.
8943
8944 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
8945
8946         * assembly.c: fix possible memory corruption.
8947
8948 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
8949
8950         * reflection.h, reflection.c: added support for linking resources.
8951         * verify.c: check we have an updated corlib.
8952
8953 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
8954
8955         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
8956         string arrays.
8957         (mono_marshal_string_array): null terminate unmanaged string arrays.
8958         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
8959
8960 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
8961
8962         * icall.c: Type.GetType () can now return also types from the
8963         calling assembly.
8964
8965 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
8966
8967         * loader.h, loader.c: stack walking support.
8968         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
8969         GetCallingAssembly.
8970
8971 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
8972
8973         * marshal.c: added optimisations for blittable types 
8974
8975         * class.c (mono_array_class_get): do not set blittable attribute on arrays
8976         (mono_class_setup_mono_type): set blittable attribute for single
8977         and double.
8978
8979         * marshal.c (mono_string_utf8_to_builder): impl.
8980         (mono_string_builder_to_utf8): impl.
8981         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
8982
8983 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
8984
8985         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
8986         (mono_marshal_get_managed_wrapper): impl. byref types
8987
8988 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8989
8990         * icall.c:
8991         (search_method): don't display debug message. 
8992
8993 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
8994
8995         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
8996
8997 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
8998
8999         * appdomain.c: set the missing filename when throwing exception.
9000
9001 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
9002
9003         * metadata.c (mono_type_size): code cleanup
9004         (mono_type_stack_size): removed some test code
9005
9006 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
9007
9008         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
9009         mono_get_exception_file_not_found now.
9010
9011         * exception.c (mono_exception_from_name_two_strings): New version
9012         that will call a constructor with two string arguments. 
9013         (mono_get_exception_file_not_found): New helper routine, used to
9014         report file-not-found errors.
9015
9016 2002-07-20  Dick Porter  <dick@ximian.com>
9017
9018         * process.h:
9019         * process.c: Pass file handles to CreateProcess
9020         
9021         * icall.c:
9022         * file-io.h:
9023         * file-io.c: Implemented CreatePipe
9024
9025 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
9026
9027         * metadata.c (mono_get_param_info): set alignment for value types
9028
9029 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9030
9031         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
9032         Constify mono_domain_assembly_open().
9033         * loader.c: handle null namespace in icalls.
9034
9035 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
9036
9037         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
9038         (emit_str_to_ptr_conv): marshal object as structs
9039
9040         * metadata.c (mono_type_to_unmanaged): marshal object as structs
9041
9042         * marshal.c (mono_marshal_get_runtime_invoke): support value types
9043
9044 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
9045
9046         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
9047         (mono_marshal_get_native_wrapper): we an now return value types
9048
9049 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9050
9051         * verify.c: more checks implemented.
9052
9053 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
9054
9055         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
9056         (fix bug #27695)
9057         (mono_marshal_get_native_wrapper): allow byref arguments
9058         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
9059         impl. PtrToStringXXX methods
9060         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
9061         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
9062         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
9063         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
9064         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
9065
9066 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9067
9068         * reflection.c: fix buglet in parsing an assembly name.
9069
9070 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
9071
9072         * marshal.c (emit_ptr_to_str_conv): first impl.
9073
9074 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9075
9076         * object.c, class.h: cache the vtable in the class as suggested by
9077         vargaz@freemail.hu (Zoltan Varga).
9078
9079 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9080
9081         * class.h, loader.c: added mono_field_from_token().
9082         * verify.c: first cut of type checking code.
9083
9084 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
9085
9086         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
9087
9088 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
9089
9090         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
9091         (fix bug #27782)
9092         (mono_marshal_get_remoting_invoke): impl.
9093         (mono_delegate_begin_invoke): impl.
9094         (mono_mb_emit_save_args): impl.
9095         (mono_delegate_end_invoke): impl.
9096         (mono_marshal_get_delegate_begin_invoke):
9097         (mono_marshal_get_delegate_end_invoke):
9098         (mono_marshal_get_delegate_invoke): generate a special name for
9099         those methods (including the signature) and associate them whith
9100         the delegate class. 
9101
9102 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
9103
9104         * reflection.[ch]: 
9105         (mono_reflection_type_from_name): now it has a MonoImage parameter
9106         which is used as the default image to search the type in. If the image
9107         is NULL or getting the type from it fails, it defaults to corlib.
9108
9109         * icall.c: changed 1 call to mono_reflection_type_from_name to match
9110         new parameter.
9111
9112 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9113
9114         * reflection.c: update the parameter table index.
9115
9116 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
9117
9118         * domain.c: don't include the mark byte in the string hash.
9119
9120 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
9121
9122         * icall.cs: icall for Type.GetTypeCode ().
9123         * verify: a couple of fixes and disabled local initialization checks.
9124
9125 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
9126
9127         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
9128
9129         * debug-helpers.c (mono_method_full_name): print the type of the
9130         runtime wrapper
9131
9132         * metadata.c (mono_signature_hash): a hash function for signatures
9133         (mono_signature_hash): better hash algorithm
9134
9135         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
9136
9137         * debug-helpers.c (mono_method_full_name): this can now generate
9138         method names with signatures
9139
9140         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
9141         method dont have this pointers.
9142
9143 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9144
9145         * reflection.c: fixup typebuilder tokens.
9146         * image.c: fix buglet.
9147         * marshal.h: remove whitespace.
9148         * metadata.h, metadata.c: reinstate code that was removed.
9149         * verify.c: handle catch directives and fix another couple of bugs.
9150
9151 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
9152
9153         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
9154         (mono_marshal_get_native_wrapper): make it comp. with the old code
9155         (mono_marshal_get_native_wrapper): support boolean
9156         (mono_marshal_get_managed_wrapper): support more types
9157
9158 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
9159
9160         * class.c (class_compute_field_layout): compute class->blittable attribute.
9161
9162 2002-07-09  Dick Porter  <dick@ximian.com>
9163
9164         * threads.c: Make the thread cleaning up cope with threads that
9165         call ExitThread()
9166
9167 2002-07-08  Radek Doulik  <rodo@ximian.com>
9168
9169         * reflection.c (method_encode_code): use non-translated values to
9170         compute finally_start, this fixes exception handling on ppc, yay!
9171
9172         * decimal.h (struct signscale): fix endianess
9173
9174 2002-07-07  Radek Doulik  <rodo@ximian.com>
9175
9176         * reflection.c: swap box_val and not val
9177
9178 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
9179
9180         * reflection.c, reflection.h: handle full assembly info in type name.
9181         Handle Type arguments when loading custom attributes.
9182         * icall.c: updated to use new mono_reflection_type_from_name () method.
9183
9184 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9185
9186         * loader.c:
9187         (method_from_memberref): also print assembly name when method not found.
9188
9189 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9190
9191         * icall.c:
9192         (ves_icall_TypeGetProperties): fixed bug #27473. 
9193
9194 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9195
9196         * reflection.c: display image name and token when cannot find the
9197         .ctor for an attribute.
9198
9199 2002-07-05  Martin Baulig  <martin@gnome.org>
9200
9201         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
9202
9203 2002-07-04  Dick Porter  <dick@ximian.com>
9204
9205         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
9206         compile on mingw.  This will cause mingw builds to not wait for
9207         subthreads to terminate after the main thread does.  I've lodged a
9208         bug with the mingw developers for them to wrap OpenThread().
9209
9210 2002-07-03  Dick Porter  <dick@ximian.com>
9211
9212         * threads.c: Store thread IDs instead of handles, because
9213         GetCurrentThread() returns a pseudohandle and therefore stores
9214         useless values.  mono_thread_cleanup() continues checking the
9215         array of threads until it is empty, to cope with subthreads
9216         spawning new threads after the main thread has finished.
9217
9218         * profiler.h:
9219         * profiler.c:
9220         * profiler-private.h: Pass the thread ID to thread profiler
9221         functions, instead of a handle
9222
9223 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9224
9225         * verify.c: fixes to make it more usable.
9226         * pedump.c: added --verify code to verify IL code in an assembly.
9227
9228 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9229
9230         * reflection.c: turn errors into warnings to allow compiling corlib.
9231
9232 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
9233
9234         * reflection.c: add special cases to compile corlib.
9235
9236 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9237
9238         * reflection.c: handle properties with only a set method.
9239
9240 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9241
9242         * opcodes.h: add enum with opcodes in opval order.
9243
9244 2002-07-01  Dick Porter  <dick@ximian.com>
9245         
9246         * object.h:
9247         * object.c (mono_runtime_run_main): Removed unneeded argument
9248
9249 2002-06-28  Martin Baulig  <martin@gnome.org>
9250
9251         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
9252
9253 2002-06-27  Dick Porter  <dick@ximian.com>
9254
9255         * threads.c: Store the handle in both the parent thread and in the
9256         subthread, to minimise the time between starting a new thread and
9257         storing its ID.
9258
9259 2002-06-26  Dick Porter  <dick@ximian.com>
9260
9261         * appdomain.c (mono_runtime_cleanup): Close the socket library
9262         after all the threads have finished, not before
9263
9264 2002-06-26  Martin Baulig  <martin@gnome.org>
9265
9266         * debug-symfile.c (mono_debug_find_source_location): Added
9267         `guint32 *line_number' argument.  If it's not NULL, store the line number
9268         there and return the file name without the line number.
9269
9270 2002-06-25  Dick Porter  <dick@ximian.com>
9271
9272         * icall.c:
9273         * process.h:
9274         * process.c: Process forking and other support functions
9275
9276 2002-06-25  Dick Porter  <dick@ximian.com>
9277
9278         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
9279         things dont happen when the image is closed.
9280         (mono_image_lookup_resource): Walk the resource section looking
9281         for a particular entry
9282
9283         * cil-coff.h: PE resource section decoding
9284
9285 2002-06-25  Dick Porter  <dick@ximian.com>
9286         
9287         * assembly.h:
9288         * assembly.c: 
9289         (mono_assembly_foreach): Accessor functions to walk the list of
9290         loaded assemblies
9291         (mono_assembly_set_main):
9292         (mono_assembly_get_main): Process methods need to know which
9293         assembly is the "main" one
9294
9295         * object.c (mono_runtime_run_main): Record the main assembly
9296
9297         * debug-helpers.c: Fix typo
9298
9299 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
9300
9301         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
9302         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
9303
9304 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9305
9306         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
9307
9308 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
9309
9310         * image.c (do_mono_image_open): Initialize reference count,
9311         otherwise we leak the MonoImage.
9312
9313 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9314
9315         * reflection.c: small tweak to handle self-hosting.
9316
9317 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9318
9319         * reflection.c: fix type name parse code.
9320
9321 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9322
9323         * reflection.c: break out of the loop.
9324         * image.c: special case corlib.
9325
9326 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9327
9328         * reflection.c: add all the custom attrs at the end to ensure the
9329         ctors have been properly initialized when the attributes are defined
9330         in the current assembly.
9331
9332 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9333
9334         * reflection.c: handle correctly multiple-nested types.
9335
9336 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9337
9338         * row-indexes.h: fix typos.
9339         * reflection.c: adjust for typos and fix method_def_or_ref
9340         encoding in MethodImpl table.
9341
9342 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9343
9344         * reflection.c: fix entry point patching (thanks Serge!).
9345
9346 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
9347
9348         * verify.c: add check for System.Exception
9349
9350 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
9351
9352         * image.c, class.c: minifix for code just c&p'ed.
9353         * reflection.c: warning fix.
9354         * object.h, loader.h, domain.c: load also StringBuilder.
9355
9356 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9357
9358         * marshal.h, marshal.c: some support code to handle complex marshaling.
9359
9360 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9361
9362         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
9363         Better signatures with vtable error dump.
9364
9365 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
9366
9367         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
9368
9369 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
9370
9371         * icall.c (ves_icall_Type_GetField): impl.
9372
9373 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9374
9375         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
9376         to retrieve a marshal description blob for a field or param.
9377
9378 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9379
9380         * reflection.h, reflection.c: change order of nested type emission
9381         to avoid table corruption. The NestedTypes table is sorted.
9382         * icall.c: change order of GetConstructor results to workaround mcs bug.
9383
9384 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9385
9386         * reflection.h, reflection.c: handle field and param marshal
9387         information.
9388
9389 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9390
9391         * icall.c, marshal.c marshal.h: more Marshal class implementation.
9392
9393 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9394
9395         * reflection.c: fix call convention.
9396
9397 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9398
9399         * reflection.h, reflection.c: mono_image_get_memberref_token()
9400         takes a type instead of a class, now. Added
9401         mono_image_get_array_token() to create tokens for the special
9402         multi-dim array methods.
9403
9404 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9405
9406         * assembly.c: handle modules (no assembly table). Split
9407         loading references in its own function.
9408         * class.c: handle moduleref resolution scope.
9409         * image.c, image.h: cache module name in image.
9410
9411 2002-06-07  Martin Baulig  <martin@gnome.org>
9412
9413         * reflection.c (mono_image_get_type_info): Only add a class layout entry
9414         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
9415
9416 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9417
9418         * icall.c: more signature fixes that used uint instead of int.
9419
9420 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9421
9422         * reflection.c: fixed signature of field refs.
9423
9424 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9425
9426         * class.c, reflection.c: handle typerefs of nested types
9427         (both on read and when writing files).
9428
9429 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9430
9431         * icall.c: fix method signatures that tried to workaround the previous
9432         typo, d'oh!
9433
9434 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9435
9436         * debug-helpers.c: fix typo.
9437
9438 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9439
9440         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
9441         rewrote the PE/COFF writing code (our programs are understood by the
9442         ms runtime, now).
9443
9444 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9445
9446         * gc.c, gc.h, icall.c: weakreference support.
9447
9448 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9449
9450         * Makefile.am, mono-config.c: use $(sysconfdir).
9451
9452 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9453
9454         * icall.c: changed default precision of Double.ToString() to 15.
9455         Fixed memory leak. Unified with Single.ToString.
9456
9457 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9458
9459         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
9460
9461 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9462
9463         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
9464         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
9465         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
9466         and myself.
9467
9468 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9469
9470         * debug-symfile.c, sysmath.c: yet more compilation fixes.
9471
9472 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9473
9474         * reflection.c, socket-io.c: more compilation fixes.
9475
9476 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9477
9478         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
9479         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
9480         unicode.c: warning and compiler compatibility fixes.
9481
9482 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9483
9484         * class.h, metadata.c: fixed warnings/compilation errors.
9485
9486 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9487
9488         * Makefile.am, mono-config.c, mono-config.h: configuration file
9489         support routines.
9490         * loader.c, loader.h: make Dll mapping configurable at runtime in the
9491         config file. Export methods to insert and lookup mappings.
9492
9493 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9494
9495         * reflection.c: handle types and boxed objects in custom attr
9496         constructors.
9497
9498 2002-05-30  Martin Baulig  <martin@gnome.org>
9499
9500         * debug-symfile.c
9501         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
9502
9503 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
9504
9505         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
9506         to lookup the implmap row for a P/Invoke method.
9507         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
9508         P/Invoke method from the runtime on an as needed basis.
9509
9510 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
9511
9512         * metadata.c (mono_metadata_parse_signature): impl.
9513
9514 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9515
9516         * class.c: handle .pack directive.
9517
9518 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9519
9520         * object.c: initialize static fields with RVA data.
9521
9522 2002-05-25  Martin Baulig  <martin@gnome.org>
9523
9524         * debug-symfile.c
9525         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
9526
9527 2002-05-24  Martin Baulig  <martin@gnome.org>
9528
9529         * debug-symfile.c
9530         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
9531         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
9532         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
9533
9534 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9535
9536         * object.c: special case string ctros in invoke.
9537         * gc.c: silly whitespace changes.
9538
9539 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
9540
9541         * threadpool.[ch]: impl. a threadpool that can
9542         be used by mint and mono.
9543
9544 2002-05-22  Martin Baulig  <martin@gnome.org>
9545
9546         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
9547         The first argument is now a `MonoReflectionModuleBuilder *', the return
9548         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
9549         `methods' field to get the method builder.  The `token' argument is the
9550         unfixed token.
9551
9552         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
9553         invalid characters instead of g_assert_not_reached()ing.  This seems
9554         to be the behaviour of mscorlib.
9555
9556 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
9557
9558         * object.c (mono_runtime_invoke_array): applied patch from Rachel
9559         Hestilow to fix bug #25104
9560
9561 2002-05-21  Martin Baulig  <martin@gnome.org>
9562
9563         * debug-symfile.c (mono_debug_find_source_location): New function.
9564         Looks up an IL offset in the line number table and returns the source
9565         location as a string.
9566
9567 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9568
9569         * icall.c:
9570         (mono_double_ToStringImpl): changed %f by %g until we have something
9571         better.
9572
9573 2002-05-21  Nick Drochak  <ndrochak@gol.com>
9574
9575         * icall.c : Use different name for Math.Pow's icall.  Needed to check
9576         parameters first in C#.
9577
9578 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9579
9580         * icall.c, reflection.h: added icall to get info about an event.
9581
9582 2002-05-20  Radek Doulik  <rodo@ximian.com>
9583
9584         * object.c (mono_value_box): don't use memcpy for boxing on BIG
9585         endian
9586         (mono_value_box): don't use memcpy for small sizes on
9587         architectures with unaligned access
9588
9589 2002-05-20  Martin Baulig  <martin@gnome.org>
9590
9591         * reflection.c (mono_reflection_setup_internal_class): Don't crash
9592         if `tb->parent == NULL'.
9593         (mono_reflection_create_internal_class): New function.  This is
9594         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
9595         for enum types.
9596
9597         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
9598         New interncall.
9599
9600 2002-05-19  Martin Baulig  <martin@gnome.org>
9601
9602         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
9603         argument to get the length, don't default to the array length.
9604
9605 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
9606
9607         * assembly.c (mono_assembly_setrootdir): New function used to
9608         override the MONO_ASSEMBLIES directory.
9609
9610 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9611
9612         * icall.c: ValueType_GetHashCode() initialize local var.
9613
9614 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9615
9616         * reflection.c: sort custom attributes table.
9617
9618 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9619
9620         * reflection.c: support named args in custom attributes (write support).
9621
9622 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
9623
9624         * reflection.c: fix finally position calculation.
9625
9626 2002-05-15  Radek Doulik  <rodo@ximian.com>
9627
9628         * reflection.c: fixed endianess at many places
9629
9630         * icall.c (ves_icall_InitializeArray): comment out debug msg
9631
9632 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
9633
9634         * object.c (mono_unhandled_exception): new function to handle
9635         unhandled exceptions.
9636         (mono_unhandled_exception): call the UnhandledException event.
9637         (mono_runtime_delegate_invoke): impl.
9638
9639 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
9640
9641         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
9642         returns the RVA, not the direct pointer to the data. Handle the case
9643         when the class size is fixed.
9644
9645 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9646
9647         * reflection.c: fix some endianess issues.
9648
9649 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
9650
9651         * object.c (mono_runtime_invoke): is now able to catch exceptions.
9652
9653         * threads.c (mono_thread_init): added a callback which is invoked
9654         at thread start.
9655
9656 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
9657         
9658         * icall.c: make GetHashCode return non-negative values.
9659
9660 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
9661
9662         * object.c, icall.c, gc.c: revert to address-based hashcode.
9663
9664 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
9665
9666         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
9667
9668 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9669
9670         * icall.c, class.c: special case <Module>.
9671
9672 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
9673
9674         * icall.c: fix bug in GetNow().
9675
9676 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
9677
9678         * object.c (mono_runtime_class_init): make sure that we call all
9679         static class constructors.
9680
9681 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9682
9683         * reflection.c: sort methodsemantics table.
9684
9685 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9686
9687         * reflection.h, reflection.c: honour init locals setting.
9688
9689 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
9690
9691         * icall.c: copied Double ToStringImpl for Single ToStringImpl
9692
9693 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9694
9695         * reflection.c: support ContructorBuilders in attribute blob creation.
9696
9697 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9698
9699         * reflection.c: some changes to build a binary that can be run
9700         directly in windows.
9701
9702 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
9703
9704         * loader.c: print a big message when an icall can't be found.
9705
9706 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9707
9708         * string-icalls.c: fix bug 24248.
9709
9710 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
9711
9712         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
9713         icall.c, reflection.h: separate assembly loading by pathname and by
9714         assembly name. Use the MONO_PATH env var to search for assemblies.
9715
9716 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9717
9718         * assembly.c, image.h: add some support for assemblies
9719         with multiple modules.
9720         * class.c, class.h: export mono_class_from_typeref().
9721         * loader.c: remove duplicated code and use mono_class_from_typeref(),
9722         instead.
9723
9724 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9725
9726         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
9727         documentation says (the ECMA one is correct).
9728
9729 2002-05-02  Dick Porter  <dick@ximian.com>
9730
9731         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
9732         Don't name the synchronisation mutex.
9733
9734 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
9735
9736         * rand.c
9737         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
9738         Make the prototypes match.
9739         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
9740         Same.
9741
9742         * icall.c
9743         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
9744         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
9745         all systems have tm.tm_zone, so use strftime() with %Z to print
9746         the timezone abreviation into a temp string.
9747
9748         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
9749         rather than mono_array_addr() on a MonoString on Big Endian
9750         machines.
9751
9752 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
9753
9754         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
9755         fix bug 24041
9756
9757 2002-04-30  Dick Porter  <dick@ximian.com>
9758
9759         * socket-io.c: Cope with SOCKET being an integer rather than a
9760         pointer now.
9761
9762         * threads.c: Added Thread_free_internal, to deal with thread
9763         handle cleanup.  Moved calls to handle_store() and handle_remove()
9764         to start_wrapper(), so each can only be called once.  Allocate
9765         synchronisation blocks with GC_malloc(), and use GC finalisation
9766         to close the handles.
9767
9768         * icall.c: added System.Threading.Thread::Thread_free_internal
9769
9770 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9771
9772         * icall.c: support Environment.Exit, CommandLineArgs().
9773
9774 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9775
9776         * object.c, object.h: added mono_runtime_run_main () and
9777         mono_runtime_get_main_args () for use in System.Environment.
9778
9779 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9780
9781         * gc.c: fix thinko, enable actual finalization since the jit is now
9782         fixed.
9783
9784 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9785
9786         * gc.c, object.c: take into account that an object may be offset wrt the address
9787         returned by GC_malloc().
9788
9789 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9790
9791         * image.c: handle files without entries in the assembly table (modules).
9792
9793 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
9794
9795         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
9796         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
9797         allowed to be null when it's System.Object class setup.
9798
9799 2002-04-27  Martin Baulig  <martin@gnome.org>
9800
9801         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
9802         if `tb->parent == NULL' rather than crashing.
9803
9804 2002-04-28  Nick Drochak  <ndrochak@gol.com>
9805
9806         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
9807         calling acos() where asin() should have been called.
9808
9809 2002-04-26  Martin Baulig  <martin@gnome.org>
9810
9811         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
9812         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
9813         there's a subdirectory called `System', but we don't want to read that
9814         subdirectory as an assembly.
9815
9816 2002-04-25  Martin Baulig  <martin@gnome.org>
9817
9818         * debug-symfile.c: Reflect latest MonoString changes.
9819
9820 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9821
9822         * rand.c, rand.h: instance method icalls need to have an explicit
9823         this pointer as first argument in the C implementation.
9824
9825 2002-04-25  Nick Drochak <ndrochak@gol.com>
9826
9827         * icall.c: Fix typo in map for GetNonZeroBytes
9828
9829 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
9830
9831         * string-icalls.c : String does now passes unit tests without any 
9832         errors, the following changes has been made:
9833         
9834         Implemented replace methods.
9835         Renaming of methods to (try) follow the standard.
9836         Fixed compare ordinal
9837         Made all memory allocated directly to function instead of via icall function.
9838         Small performance fix in is_in_array function
9839                         
9840  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
9841
9842         c (mono_string_Internal_ctor_charp_int_int):
9843         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
9844         sindex < 0, throw ArgumentOutOfRangeException instead of
9845         ArgumentNullException.
9846
9847         Added new check for length == 0, however
9848         I need to make it return String.Empty from the C code.
9849         
9850         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
9851         that calculate the length for us here.
9852         
9853         (mono_string_Internal_ctor_sbytep_int_int): Replaced
9854         mono_string_new_utf16 with mono_string_new, since value is utf8.
9855
9856 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9857
9858         * object.c: register the object for finalization if needed.
9859         Allocate one more char in the string for the terminating 0 char.
9860
9861 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9862
9863         * class.c, class.h, image.c: check if a type implemenst a destructor.
9864         Use the proper key for array class lookups.
9865         * icall.c: register the icalls in the System.GC class.
9866         * gc.c, gc.h: GC-related functions and icalls.
9867
9868 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9869
9870         * icall.c:
9871         * socket-io.c:
9872         * unicode.c: free some strings gotten from mono_string_to_utf8 and
9873         changed a couple of free () by g_free ().
9874
9875         * decimal.c: one-liner in the comments for decimal2string ().
9876
9877 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
9878
9879         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
9880
9881 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
9882
9883         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
9884         * object.c (mono_runtime_invoke_array) : handle null in params
9885
9886 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
9887
9888         * string-icalls.c: fixed bug in split (one off bug)
9889
9890 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
9891
9892         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
9893         * icalls.c: added String::Equals as internal method
9894
9895 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
9896
9897         * threads.c: fixed bug in the double interlocked functions
9898
9899 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
9900
9901         * threads.c: implemented all of the new interlocked icalls.
9902         * string-icalls.c: fix a bug in insert.
9903         * icalls.c: added the icalls for interlocked, removed old string functions.
9904         
9905 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9906
9907         * loader.c: fix off-by-one error when reading argument names.
9908
9909 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9910
9911         * profiler.c: win32 counter implementation (untested).
9912         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
9913         (the latter needs testing and more complete impl. from win32 folks).
9914
9915 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
9916
9917         * object.c: mono_array_new_full workaround mono_array_class_get
9918         problem.
9919
9920 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9921
9922         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
9923         * object.h (mono_string_chars): Changed casting type.
9924
9925 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9926
9927         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
9928                            method signatures to use gunichar2 instead of gint16.
9929
9930 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
9931
9932         * object.h, object.c: domain-specific versions of mono_object_new and
9933         mono_array_new.
9934
9935 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
9936
9937         * object.c: changed String layout
9938
9939         * string-icalls.c (mono_string_Internal_ctor_chara): added
9940         internal string constructors.
9941
9942 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
9943
9944         * threads.c: pass 'this' to the thread start routine.
9945
9946 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9947
9948         * string-icalls.c: fix IndexOf and LastIndexOf. Now
9949         InternalCompareStr don't call twice mono_string_cmp_char for the last
9950         character. Improved performance in mono_string_cmp_char.
9951
9952 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9953
9954         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
9955         code into its own library: libmonoruntime.
9956
9957 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
9958
9959         * object.h, object.c: changed array format so that szarrays do not
9960         require a bounds structure.
9961         * icall.c, appdomain.c: support for new szarray format.
9962
9963 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
9964
9965         * metadata.c: compare also the retuns type when comparing signatures:
9966         we didn't do this as an optimization since really overloaded methods
9967         must differ also in the arguments, but this doesn't work with
9968         low-level IL code (or when using explicit conversion operators: see
9969         bug#23498 for an example).
9970
9971 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9972
9973         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
9974
9975 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9976
9977         * icall.c: make MonoType::GetElementType its own icall.
9978
9979 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9980
9981         * icall.c: remove MonoMethod_get_Name().
9982         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
9983         object.
9984
9985 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9986
9987         * string-icalls.c: optimized a few methods.
9988
9989 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9990
9991         * icall.c: added all new string internal calls
9992         * string-icalls.c: added, new string internal call implementation.
9993         * object.c: added mono_string_new_size for allocating a string a size
9994
9995 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
9996
9997         * object.c (mono_object_isinst): use the same code as in the
9998         optimized x86 version.
9999
10000 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10001
10002         * profiler.c: TSC-based timer code (faster and more accurate).
10003         Not hooked up in configure, yet (set USE_X86TSC to 1).
10004
10005 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
10006
10007         * profiler.c, profiler.h: track time spent compiling methods.
10008         * threads.c: track thread creation/destruction.
10009
10010 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
10011
10012         * profiler.c, profiler.h, profiler-private.h: profiling interface
10013         and sample implementation. Moved here so that it can be used also by
10014         the jit.
10015
10016 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
10017
10018         * reflection.c, reflection.h: keep types and other handles separate in
10019         the hash tables for referred tokens. Add guid for modules.
10020
10021 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10022
10023         * assembly.c: fix bugs found with valgrind.
10024         * metadata.h, metadata.c: added mono_metadata_guid_heap().
10025
10026 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
10027
10028         * threads: added icall support for getting current domain for
10029                    the thread.
10030  
10031 2002-04-13  Martin Baulig  <martin@gnome.org>
10032
10033         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
10034         (MonoDebugVarInfo): Added `index' field for register based addresses.
10035         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
10036         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
10037         `MonoDebugVarInfo *params' and `guint32 this_offset' with
10038         `MonoDebugVarInfo *this_var'.
10039
10040         * debug-symfile.c (relocate_variable): New static function to write
10041         a location description for a local variable or method parameter.
10042
10043 2002-04-12  Martin Baulig  <martin@gnome.org>
10044
10045         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
10046         stack offset and begin/end scope address of a local variable.
10047         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
10048         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
10049         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
10050
10051         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
10052         Added new relocation types for start/end scope of a local variable.
10053
10054 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10055
10056         * object.h: add mono_object_domain() macro.
10057         * reflection.c: handle typespecs.
10058         * icall.c: MonoMethod::get_Name() implementation.
10059
10060 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10061
10062         * icall.c: String::GetHashCode() icall implementation.
10063
10064 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10065
10066         * icall.c: String::IndexOfAny icall.
10067         * object.c, object.h: make array->max_length more useful.
10068         Intrduced mono_object_class() and mono_string_length() macros.
10069
10070 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10071
10072         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
10073         instead of g_unichar_isdigit.
10074
10075 2002-04-11  Nick Drochak  <ndrochak@gol.com>
10076
10077         * icall.c: Implement a simple Double.ToString().
10078
10079 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
10080
10081         * appdomain.h: only io-layer.h is supposed to be included.
10082         * icall.c: explicitly import environ. Fix warning.
10083
10084 2002-04-10  Nick Drochak  <ndrochak@gol.com>
10085
10086         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
10087                 return true even if it's not Daylight Savings time.
10088                 Only return false for the case where the function isn't
10089                 implemented for a plaform (read Windows).
10090
10091 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10092
10093         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
10094         data with a mutex.
10095
10096 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
10097
10098         * mempool.c (mono_mempool_alloc): only use g_malloc when
10099         absolutely necessary.
10100
10101 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
10102
10103         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
10104
10105         * class.c (mono_class_vtable): use domain mempool to allocate vtable
10106         (mono_class_proxy_vtable): use domain mempool
10107
10108 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10109
10110         * appdomain.h, appdomain.c: split initialization that requires the
10111         execution engine support into mono_runtime_init().
10112
10113 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
10114
10115         * class.c (mono_class_init): don't include vtable inside MonoClass
10116         to save some memory, gather some statistics.
10117         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
10118
10119 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10120
10121         * icall.c: internalcall implementation for ValueType.Equals().
10122
10123 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
10124
10125         * object.c (mono_message_init): moved 
10126         (mono_runtime_exec_main): new arch. independent impl.
10127         (mono_runtime_invoke_array): new method - like
10128         mono_runtime_invoke, but you can pass an array of objects.
10129         (mono_remoting_invoke): new arch. independent impl.
10130         (mono_message_invoke): new arch. independent impl.
10131         (mono_runtime_class_init): new arch. independent impl.
10132         (mono_runtime_object_init): new arch. independent impl.
10133
10134 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10135
10136         * metadata.c, object.c, reflection.c: documented the exported
10137         functions.
10138
10139 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
10140
10141         * icall.c: simpler code to pass the assembly builder data to corlib.
10142         Implement GetNestedTypes() internalcall.
10143
10144 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10145
10146         * class.c: warn if a type can't be loaded.
10147
10148 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
10149
10150         * image.h: typedef MonoImageOpenStatus
10151         * types.h: removed unused file
10152         
10153 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
10154
10155         * icall.c: Enum_ToObject accepts enum value arguments.
10156
10157 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10158
10159         * class.c: move initialization of properties, events and nested
10160         classes, so that they happen for interfaces, too.
10161
10162 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10163
10164         * icall.c: cleanup some ugly casts in Array_SetValue*.
10165
10166 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10167
10168         * icall.c: the values array fro enums is of the correct type, now.
10169         Implement (correctly) getFullName instead of assQualifiedName for
10170         MonoType.
10171         * reflection.h, reflection.c: added mono_type_get_name ().
10172
10173 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10174
10175         * assembly.c, image.h: for each MonoImage, record from wich assembly
10176         it was loaded.
10177         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
10178         Make Type.Assembly work.
10179
10180 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
10181
10182         * debug-symfile.h: use char* instead of gpointer to avoid
10183         unnecessary casts.
10184
10185         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
10186
10187         * icall.c (ves_icall_InternalExecute): impl. FielSetter
10188         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
10189
10190 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
10191
10192         * icall.c (mono_message_init): impl. (code cleanup)
10193         (ves_icall_InternalExecute): impl. FieldGetter
10194
10195         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
10196         defined we call all (non-static)methods through the vtable. 
10197
10198 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
10199
10200         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
10201         finalizer even though the memory is still referenced (and the chunk of
10202         memory is not freed).
10203
10204 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
10205
10206         * assembly.c: fix brokeness.
10207
10208 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
10209
10210         * class.c: kill some warnings. Check explicit interface method
10211         implementation also without considering the namespace.
10212         Load also literal strings in static class data.
10213
10214 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
10215
10216         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
10217         (default_assembly_name_resolver): Make the resolver take the
10218         "base" directory where the assembly was originally defined, so we
10219         can load DLLs that are in the same directory as the assembly that
10220         is being referenced.
10221
10222 2002-03-28  Dick Porter  <dick@ximian.com>
10223
10224         * file-io.h: 
10225         * file-io.c:
10226         * socket-io.c: 
10227         * unicode.h: 
10228         * unicode.c: Warning cleanups
10229
10230 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
10231
10232         * object.h, reflection.h: use the correct type instead of MonoObject.
10233
10234 2002-03-28  Martin Baulig  <martin@gnome.org>
10235
10236         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
10237         (mono_debug_update_symbol_file): Initialize classes if necessary.
10238
10239 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
10240
10241         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
10242         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
10243
10244 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
10245
10246         * assembly.h: fix function prototype.
10247         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
10248         * mono-endian.h: use const cast.
10249
10250 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
10251
10252         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
10253
10254 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
10255
10256         * loader.c: don't assert when a typeref can't be loaded, give
10257         a chance to the runtime to trow an exception instead.
10258         * loader.h: fix warning.
10259
10260 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
10261
10262         * class.c (mono_class_proxy_vtable): added proxy support
10263
10264 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
10265
10266         * icall.c: removed last of PAL calls, added System.Environment
10267         * file-io.h, file-io.c: MonoIO implementation
10268         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
10269
10270 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
10271
10272         * appdomain.c: do not use the byte marker in ldstr table lookup.
10273         * debug-helpers.c: allow two ':' to separate class and method name.
10274         * object.c: allocate arrays bounds with the GC, too.
10275         * verify: add a few more checks.
10276
10277 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
10278
10279         * reflection.c: output also literal strings. Allocate parameter data
10280         with GC_malloc() (thanks, Martin, for catching this!).
10281
10282 2002-03-26  Martin Baulig  <martin@gnome.org>
10283
10284         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
10285         include the `this' offset in the `param_offsets'.
10286
10287 2002-03-25  Martin Baulig  <martin@gnome.org>
10288
10289         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
10290         mono_debug_get_class() function to get the classes. Added new
10291         relocation types for arrays and strings.
10292         (mono_debug_get_class): New static function to search in all
10293         referenced assemblies for a metadata token.
10294
10295         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
10296
10297 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
10298
10299         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
10300         hold gc-allocated objects. Make the string heap a stream like the
10301         others. Removed duplicated code when writing stream info.
10302         Added asserts to catch possible buffer overflows. Set the sorted map
10303         for tables that need sorting. Added some documentation.
10304
10305 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
10306
10307         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
10308         for interned strings and vtables.
10309
10310 2002-03-24  Martin Baulig  <martin@gnome.org>
10311
10312         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
10313         it in the array since it was created with g_slist_prepend().
10314
10315 2002-03-24  Martin Baulig  <martin@gnome.org>
10316
10317         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
10318         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
10319         (mono_debug_method_from_token): Renamed to
10320         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
10321         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
10322
10323         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
10324         relocation types.
10325
10326         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
10327
10328 2002-03-24  Martin Baulig  <martin@gnome.org>
10329
10330         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
10331         (mono_debug_method_from_token): New func.
10332
10333         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
10334         New interncall, calls mono_debug_local_type_from_signature().
10335         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
10336         calls mono_debug_method_from_token().
10337
10338 2002-03-23  Martin Baulig  <martin@gnome.org>
10339
10340         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
10341         specifies the number of bytes to be converted, not the array size.
10342         Return the number of chars, not the number of bytes.
10343         (ves_icall_iconv_get_chars): The `byteCount' argument
10344         specifies the number of bytes to be converted, not the array size.
10345
10346 2002-03-23  Martin Baulig  <martin@gnome.org>
10347
10348         * reflection.h (MonoReflectionSigHelper): New type.
10349
10350         * reflection.c (mono_reflection_sighelper_get_signature_local),
10351         (mono_reflection_sighelper_get_signature_local): New functions.
10352
10353         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
10354         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
10355         interncalls.
10356
10357 2002-03-23  Martin Baulig  <martin@gnome.org>
10358
10359         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
10360         is_writeable is set.
10361         (mono_raw_buffer_update): New function to write the modified map
10362         back to disk.
10363
10364         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
10365
10366         * debug-symfile.c (mono_debug_update_symbol_file): Call
10367         mono_raw_buffer_update() when done writing.
10368
10369 2002-03-23  Martin Baulig  <martin@gnome.org>
10370
10371         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
10372
10373         * debug-symfile.c: Added support for arguments and local variables.
10374
10375 2002-03-23  Dick Porter  <dick@ximian.com>
10376
10377         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
10378         protected by ifdefs, hence breaking the w32 build.
10379
10380 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10381
10382         * object.c: implement is_interned() the right way.
10383
10384 2002-03-21  Martin Baulig  <martin@gnome.org>
10385
10386         * debug-symfile.[ch]: New files to handle debugging information
10387         files. There's also support to dynamically update these symbol
10388         files to include machine dependent information.
10389
10390 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
10391
10392         * threads.c (mono_thread_create): new function to create thread
10393         from C
10394
10395 2002-03-20  Martin Baulig  <martin@gnome.org>
10396
10397         * icall.c (ves_icall_InternalInvoke): Create a new object if the
10398         method is a constructor.
10399         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
10400         points to ves_icall_InternalInvoke().
10401
10402 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
10403
10404         * file-io.c: Flush shouldn't throw exceptions.
10405
10406 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
10407
10408         * file-io.c: FileStream flush support; FileSetLength now
10409         restores file pointer.
10410
10411 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
10412
10413         * class.c: set image for pointer classes.
10414
10415 2002/03/19  Nick Drochak <ndrochak@gol.com>
10416
10417         * sysmath.c: Forgot one.
10418
10419 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
10420
10421         * sysmath.c: Avoid redefining existing names.
10422
10423 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
10424
10425         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
10426         handled by runtime as icall rather than dllimport from libm.so
10427         * file-io.c, file-io.h: fixed handle argument type.
10428
10429 2002-03-18  Dick Porter  <dick@ximian.com>
10430
10431         * reflection.c (mono_image_get_type_info): rename interface to
10432         iface, because of "#define interface struct" on windows.
10433
10434 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
10435
10436         * class.c, class.h: rename and export mono_ptr_class_get().
10437         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
10438         * reflection.c, reflection.h, icall.c: better/saner type name
10439         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
10440         method signatures.
10441
10442 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
10443
10444         * class.c (mono_class_init): removed hardcoded GHC_SLOT
10445
10446         * icall.c (ves_icall_InternalInvoke): impl.
10447
10448 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
10449
10450         * reflection.c: output the interface map table, too.
10451
10452 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
10453
10454         * class.c (class_compute_field_layout): separate computation of 
10455         static field layout
10456
10457 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
10458
10459         * icall.c: added System.Buffer support.
10460         * file-io.c: moved file icalls from PAL to FileStream.
10461
10462 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
10463
10464         * icall.c (ves_icall_System_Object_GetHashCode): impl.
10465
10466 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
10467
10468         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
10469
10470 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10471
10472         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
10473
10474 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
10475
10476         * debug-helpers.{c,h}: moved here from monograph some useful functions
10477         to locate a method by name/signature in a class or image. Included
10478         also a small and flexible IL disassembler.
10479
10480 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10481
10482         * reflection.c: fixup tokens in methods with small header size, too.
10483
10484 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
10485
10486         * object.c (mono_string_to_utf8): remove assert(!error), instead
10487         print a warning. 
10488
10489 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
10490
10491         * icall.c: update to the new mono_Array_class_get interface.
10492
10493 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
10494
10495         * appdomain.c, object.c: Boehm-GC enable.
10496         * icall.c: make get_data_chunk() support split data requests.
10497         Ensure a class is initialized in more cases. Return only the first
10498         property found in GetProperties() or the compiler gets confused. 
10499         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
10500         * reflection.h, reflection.c: add fixup mechanism for field and method
10501         tokens. Initialize assembly->typeref in a single place. Output
10502         properties after events. Support custom attributes for events, too.
10503         Typo fix for paramter custom attrs.
10504
10505 2002-03-07  Martin Baulig  <martin@gnome.org>
10506
10507         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
10508
10509 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
10510
10511         * class.c (mono_array_class_get): fix. for multi. dim. arrays
10512
10513 2002-03-06  Martin Baulig  <martin@gnome.org>
10514
10515         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
10516         non-zero lower bounds. See testcases #F10-#F13.
10517
10518 2002-03-05  Martin Baulig  <martin@gnome.org>
10519
10520         * exception.c (mono_get_exception_argument_out_of_range): New exception.
10521
10522         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
10523         ves_icall_System_Array_GetValue(), only calculate the absolute array position
10524         here.
10525         (ves_icall_System_Array_SetValue): Likewise.
10526         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
10527         as argument and does the actual work. This function is used when copying a
10528         multi-dimensional array.
10529         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
10530         now do all the widening conversions of value types.
10531         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
10532
10533 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10534
10535         * class.c: remove some magic numbers and use the smbolic names,
10536         instead. Added init_events() to load event info at class init time.
10537         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
10538         and mono_metadata_methods_from_event().
10539         * reflection.h, reflection.c: added support for writing out the evnets
10540         related information.
10541
10542 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
10543
10544         * reflection.h, icall.c: use a different method (GetInterfaces)
10545         to gather interface info and add isbyref, isprimitive and
10546         ispointer to the ves_icall_get_type_info() return value.
10547
10548 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
10549
10550         * class.h: stared adding support for events.
10551         * icall.c: split find_members implementation. Added debug icall to get
10552         the address of an object.
10553         * reflection.c: handle TypeBuilders in mono_type_get_object().
10554
10555 2002-03-01  Martin Baulig  <martin@gnome.org>
10556
10557         * icall.c (ves_icall_System_Array_GetLength): This must throw an
10558         ArgumentOutOfRangeException(), not an ArgumentException().
10559         (ves_icall_System_Array_GetLowerBound): Likewise.
10560         (ves_icall_System_Array_GetValue): Improved argument checking.
10561         (ves_icall_System_Array_SetValue): Improved argument checking.
10562
10563 2002-03-01  Martin Baulig  <martin@gnome.org>
10564
10565         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
10566         called with invalid arguments rather than just dying with g_assert().
10567         (ves_icall_System_Array_SetValue): Likewise.
10568         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
10569         raise a NotImplementedException instead.
10570         (ves_icall_System_Array_GetLength): Added argument checking.
10571         (ves_icall_System_Array_GetLowerBound): Added argument checking.
10572
10573 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
10574
10575         * object.h (mono_assert): new macros mono_assert and
10576         mono_assert_not_reached
10577
10578 2002-02-28  Martin Baulig  <martin@gnome.org>
10579
10580         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
10581         and "System::String::IsInterned" to "System::String::_IsInterned".
10582
10583 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
10584
10585         * icall.c: remove hacks for typebuilder. Added icall to create a
10586         modified type from a tybebuilder.
10587         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
10588         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
10589         to create a backing MonoClass for a TypeBuilder.
10590
10591 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10592
10593         * class.c, class.h: more refactoring of class init.
10594         Export mono_class_setup_mono_type() and mono_class_setup_parent().
10595
10596 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
10597
10598         * marshal.c, marshal.h: start of marshaling interface.
10599
10600 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
10601
10602         * icall.c: fix order in assembly qualified name icall.
10603
10604 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
10605
10606         * class.c: do not free str, since we store it in the hash table.
10607         * reflection.h: add label field to MonoILExceptionInfo.
10608         * reflection.c: handle references to more than one assembly. Handle
10609         case when there isn't a module created in the assembly.
10610
10611 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
10612
10613         * class.c: Fix typo. Start refactoring of class init code.
10614
10615 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
10616
10617         * appdomain.c: exit with 1 on error.
10618         * class.c: we already have the name in MonoClassField.
10619         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
10620         MonoStreamHeader instead of an offset of image->raw_metadata.
10621
10622 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
10623
10624         * appdomain.c (mono_init): Be even more descriptive about the error.
10625
10626 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
10627
10628         * appdomain.c: give the user an informative message when corlib can't
10629         be loaded.
10630
10631 2002-02-26  Martin Baulig  <martin@gnome.org>
10632
10633         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
10634         New icall to get the time zone data.
10635
10636 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10637
10638         * reflection.c: set virtual and raw size of section correctly.
10639         * threads.c: transfer domain information to newly created threads.
10640
10641 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
10642
10643         * class.c: when instancing a class in a domain, load the default
10644         vaules for static fields from the constant table. Fix System.Enum to
10645         not be an enum.
10646         * icall.c: implement Object::GetType() internalcall. Implemented
10647         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
10648         Fixed checking of binding flags in find_members().
10649         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
10650         * reflection.c: handle enumerations when writing to the constant
10651         table. Use a different object cache for types.
10652
10653
10654 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
10655
10656         * object.c (mono_object_isinst): fix for arrays
10657
10658         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
10659
10660 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
10661
10662         * object.c: don't use mprotect ()  and fix intern pool hash table
10663         lookup for big endian systems.
10664
10665 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10666
10667         * icall.c: change type_is_subtype_of () signature.
10668
10669 2002-02-21  Mark Crichton  <crichton@gimp.org>
10670
10671         * rand.c, rand.h: Added random number generator for
10672         System.Security.Cryptography classes.
10673
10674         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
10675
10676         * icall.c: Added System.Security.Cryptography calls.
10677
10678 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
10679
10680         * class.c, icall.c, metadata.c: better support for pointer types.
10681         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
10682         * reflection.c: Add support for getting custom attrs for properties
10683         and simplify some code.
10684
10685 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10686
10687         * icall.c: change getToken () and add custom attribute GetBlob()helper
10688         method.
10689         * reflection.h: add custom attrs array to the reflection builder structures.
10690         * reflection.c: encode and emit custom attributes for all the relevant
10691         reflection objects. Cache fieldref and methodref tokens. Change
10692         mono_image_create_token() interface to take a MonoDynamicAssembly.
10693         More complete custom attributes decoder. Load custom attributes for
10694         Assembly, Field, Method and Constructor objects, too. Make the
10695         returned array an Attribute[] one, not object[]. Added
10696         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
10697         custom attribute constructor.
10698
10699 2002-02-20  Dick Porter  <dick@ximian.com>
10700
10701         * icall.c:
10702         * rawbuffer.c:
10703         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
10704         problem code out for now).
10705
10706 2002-02-19  Radek Doulik  <rodo@ximian.com>
10707
10708         * object.c (mono_ldstr): use hash table to avoid multiple swapping
10709
10710 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
10711
10712         * icall.c: register the GetCustomAttributes method.
10713         * object.c, object.h: add mono_string_new_len ().
10714         * reflection.h, reflection.c: added mono_runtime_invoke(),
10715         mono_install_runtime_invoke(). Added
10716         mono_reflection_get_custom_attrs () to load custom attributes and
10717         create the attribute objects.
10718
10719 2002-02-19  Dick Porter  <dick@ximian.com>
10720         * threads-dummy-types.c:
10721         * threads-dummy-types.h:
10722         * threads-dummy.c:
10723         * threads-dummy.h:
10724         * threads-pthread-types.c:
10725         * threads-pthread-types.h:
10726         * threads-pthread.c:
10727         * threads-pthread.h:  Deleted obsolete files
10728
10729 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
10730
10731         * class.c (mono_class_vtable): runtime init the class when we
10732         allocate static class data.
10733
10734         * icall.c (ves_icall_System_Array_SetValue): check for null values.
10735
10736         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
10737         and String - but we will need generic marshalling support in the
10738         future. 
10739         (mono_init): set the domain name in a ms compatible way
10740
10741         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
10742         String[].
10743
10744 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
10745
10746         * object.c (mono_array_clone): use alloca() instead of g_malloc  
10747         for sizes
10748
10749         * appdomain.c (mono_domain_unload): impl.
10750
10751 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
10752
10753         * appdomain.c, object.c: fix intern pool implementation.
10754         * class.c: fix alignment code.
10755
10756 2002-02-16  Radek Doulik  <rodo@ximian.com>
10757
10758         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
10759         and s2 > s1, just copy lower bytes to be compatible with little
10760         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
10761         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
10762
10763         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
10764         force big_endian to be 1 for big endian machines 
10765         (ves_icall_iconv_new_decoder): ditto
10766
10767 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
10768
10769         * socket-io.c (convert_sockopt_level_and_name): If the system
10770         doesn't define SOL_IP or SOL_TCP, get them by hand using
10771         getprotobyname() and caching the values (because this could be a
10772         slow operation).
10773         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
10774         Use the appropriate struct when the system does support it. Ie,
10775         not all systems have struct ip_mreqn so use struct ip_mreq when
10776         appropriate.
10777
10778 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
10779
10780         * reflection.c: handle finally clauses.
10781
10782 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
10783
10784         * socket-io.c: use g_snprintf() instead of snprintf.
10785
10786 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
10787
10788         * reflection.c (mono_param_get_objects): Cast second argument to
10789         mono_method_get_param_names to a const char** to silence the
10790         compiler warning.
10791
10792         * appdomain.c (mono_domain_assembly_open): Put parens around the
10793         truth statement in the for-loop.
10794
10795         * unicode.c (iconv_convert): Got rid of a compiler warning about
10796         int i being unused when the system has a new iconv.
10797         (iconv_get_length): Same.
10798
10799         * image.c (load_class_names): Cast the second argument to
10800         g_hash_table_insert() to char* to hush compiler warnings about the
10801         arg being a const.
10802         (mono_image_open): Same here.
10803
10804         * socket-io.c: Don't conditionally include sys/filio.h or
10805         sys/sockio.h here anymore since we now get them from
10806         io-layer/io-layer.h
10807         (inet_pton): If the system doesn't support inet_aton, implement
10808         using inet_addr and also #define INADDR_NONE if it isn't defined
10809         by the system.
10810
10811 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
10812
10813         * metadata.c, metadata.h: added function to get packing and size info
10814         of a typedef.
10815         * reflection.h, reflection.c: handle field RVA data. Save info about
10816         the table layout if needed. Assign typedef indexes to all the types
10817         before dumping the info about them to avoid forward reference problems.
10818
10819 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
10820
10821         * socket-io.c (convert_sockopt_level_and_name): ifdef
10822         SO_ACCEPTCONN because it is not defined on my system (old debian)
10823
10824 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
10825
10826         * opcode.c: use stddef.h to get NULL.
10827
10828 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
10829
10830         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
10831         for FIONBIO, FIONREAD and SIOCATMARK.
10832         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
10833         define INADDR_NONE and besides, inet_addr() is deprecated and
10834         should not be used. Use inet_pton() instead - it also has the
10835         added bonus that it can easily handle IPv6 addresses as well.
10836         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
10837
10838 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
10839
10840         * decimal.c: remove _MSC_VER conditional.
10841
10842 2002-02-13  Dick Porter  <dick@ximian.com>
10843
10844         * socket-io.c: 
10845         * icall.c: Internal calls for Blocking, Select, Shutdown,
10846         GetSocketOption and SetSocketOption
10847
10848 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10849
10850         * assembly.cs: better resolver: use it instead of some kludgy
10851         code.
10852
10853 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
10854
10855         * reflection.c: the best way to speed-up the compiler is to avoid
10856         infinite loops.
10857
10858 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
10859
10860         * class.c (mono_class_vtable): changed the object layout
10861         (obj->vtable->class). 
10862         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
10863
10864 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10865
10866         * assembly.c: look for assemblies in the assembly dir, too.
10867
10868 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10869
10870         * class.c: fix thinko in mono_class_from_type().
10871
10872 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10873
10874         * exception.h, exception.c: added TypeLoadException.
10875         * object.h, object.c: added mono_array_clone ().
10876         * icall.c: handle throwOnError in AssemblyGetType().
10877         Added Array.Clone().
10878         * opcode.h, opcode.c: use a single value for the opcode val.
10879         Compile fix for non-gcc compilers.
10880
10881 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
10882
10883         * opcodes.c, opcodes.h: export interesting info about opcodes.
10884
10885 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
10886
10887         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
10888         icalls. 
10889
10890         * class.c (class_compute_field_layout): set element_class for enums
10891         (mono_class_create_from_typedef): set element_class for normal classes
10892
10893         * icall.c (ves_icall_System_Enum_get_value): impl.
10894
10895         * class.c (mono_class_create_from_typedef): do not set valuetype
10896         flag for System.ValueType and System.Enum
10897
10898 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
10899
10900         * unicode.c (iconv_convert): fix big endian problem.
10901
10902 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
10903
10904         * class.c: add asserts if we are ever going to scribble over memory.
10905         * socket-io.c: not all systems have AF_IRDA defined.
10906
10907 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
10908
10909         * class.c (class_compute_field_layout): do not consider static
10910         fields to compute alignment
10911
10912 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
10913
10914         * appdomain.c (mono_appdomain_get): impl.
10915         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
10916
10917 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
10918
10919         * icall.c: ignore "file://" prefix when loading an assembly.
10920
10921 2002-01-23  Dick Porter  <dick@ximian.com>
10922
10923         * socket-io.c:
10924         * icall.c:
10925         * Makefile.am: Added socket support
10926
10927 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
10928
10929         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
10930         code back.  This should return the assemblies that are loaded by
10931         the runtime on behalf of an application domain. 
10932
10933         The current implementation is still broken, it just returns every
10934         assembly loaded, but until we get real applications domain this
10935         will do.
10936
10937 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
10938
10939         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
10940         AppDomain object.
10941
10942 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
10943
10944         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
10945         the mono_class_from_name lookup.
10946         (ves_icall_get_parameter_info): ditto.
10947         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
10948         method.
10949         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
10950
10951 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
10952
10953         * class.c: load also nested classes on class init.
10954         System.ValueType instance methods gets passed boxed
10955         values, unless methods in derived classed that get a pointer to the
10956         data.
10957         * icall.c: use better name parsing code in GetType().
10958         * image.c, image.h: add mono_image_loaded ().
10959         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
10960         * reflection.c, reflection.h: added mono_reflection_parse_type().
10961
10962 2002-01-22  Veronica De Santis <veron78@interfree.it>
10963
10964         * icall.c : Added mapping of internal calls for Manual and Auto reset events
10965         * threads.c : Added the implementation of internal calls for events
10966         * threads.h : Added prototypes of internal calls for events
10967         
10968 2002-01-21  Radek Doulik  <rodo@ximian.com>
10969
10970         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
10971
10972 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
10973
10974         * class.c (mono_class_init): set min_align to 1 (instead of 0)
10975         (mono_class_value_size): use min_align
10976
10977 2002-01-20  Dick Porter  <dick@ximian.com>
10978
10979         * threads.h:
10980         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
10981         so it compiles on w32.
10982
10983 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
10984
10985         * metadata.c (mono_type_stack_size): impl.
10986
10987         * class.c (mono_class_get_field): impl. memberref token
10988
10989 2002-01-16 Veronica De Santis <veron78@@interfree.it>
10990
10991         * icall.h : Added the internal calls mapping for CreateMutex_internal
10992                     and ReleaseMutex_internal.
10993         * threads.h : Added the prototype of mutexes internal calls.
10994         * threads.c : Added the implementations of mutexes internal calls.
10995
10996 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
10997
10998         * metaparse.h: removed unused file.
10999         * reflection.c, reflection.h: added stream_data_align () function 
11000         to align data in streams and keep stream aligned. Add support for
11001         exception support in method headers.
11002
11003 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
11004
11005         * unicode.c: make iconv_convert () return the number of bytess written
11006         in the output buffer.
11007
11008 2002-01-15  Dick Porter  <dick@ximian.com>
11009         * threads.c: Make the runtime's idea of infinite timeouts coincide
11010         with the class library's
11011
11012         Fix a particularly egregious bug in mono_thread_cleanup(). That
11013         code was so utterly bogus it must have been written on a Monday.
11014
11015 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
11016
11017         * reflection.h: add subtypes field to TypeBuilder.
11018         * reflection.c: encode constants for literal fields.
11019         Handle subtypes. Fix user string token (and add a zero byte)
11020         at the end.
11021         
11022 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
11023
11024         * class.c (mono_class_init): bug fix: assign slot numbers for
11025         abstract methods.
11026
11027 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11028
11029         * reflection.c: don't try to output a code RVA for abstract methods.
11030         Small fixes for method header format. Output parameter info to the
11031         ParamDef table. Save method overriding info to MethodImpl table.
11032         Fix property support. Allow typedef.extends to be a type in the
11033         building assembly.
11034         * verify.c: fix off-by-one error.
11035
11036 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
11037
11038         * class.c: fix mono_class_from_mono_type () for szarray types.
11039         Remove unused cache check in mono_class_from_type_spec().
11040         * icall.c: *type_from_name () functions handle simple arrays and byref.
11041         * reflection.c: handle byref and szarray types. Handle methods without
11042         body (gets P/Invoke compilation working). Handle types and fields in
11043         get_token ().
11044         * reflection.h: add rank to MonoTypeInfo.
11045
11046 2002-01-10  Dick Porter  <dick@ximian.com>
11047
11048         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
11049         internal calls
11050
11051 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
11052
11053         * icall.c: initialize class in type_from_handle ().
11054         Loop also in parent classes for get_method ().
11055         * reflection.c: properly encode class and valuetype types.
11056         Start on encoding TypeBuilder types. Handle fieldrefs.
11057         Use correct length when registering a user string.
11058         Handle ConstructorBuilder and MonoMethod in get_token ().
11059         Make mono_type_get_object () aware of cached types.
11060         * object.c: back out change to mono_string_new ().
11061
11062 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
11063         * object.c: mono_string_new should return a NULL when the string 
11064         passed in is NULL -- not try to deference it.
11065         
11066 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11067
11068         * icall.c: hack to make IsSubType work for TypeBuilders.
11069         * reflection.c: emit constructors before methods.
11070         Retrieve param names in mono_param_get_objects().
11071
11072 2002/01/05  Nick Drochak  <ndrochak@gol.com>
11073
11074         * Makefile.am: fix list of headers and sources so automake 1.5
11075         doesn't complain. Removed \# at end of list.
11076
11077 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
11078
11079         * reflection.c: get token for a method ref. Set return type of
11080         constructor to void.
11081         * loader.c: debug message.
11082         * class.c: typo fix.
11083
11084 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
11085
11086         * icall.c: fix array init with rank > 1. FindMembers
11087         loops in parent class as well.
11088         * image.c: do not insert nested types in name cache.
11089         * reflection.c: warning fix.
11090         * reflection.h: add override method (for interface impl).
11091
11092 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
11093
11094         * metadata.c: fix customattr decoding.
11095
11096 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
11097
11098         * rawbuffer.cs: Added native Win32 implementation, avoids using
11099         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
11100
11101 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
11102
11103         * class.c: make the low-level routines handle the cache.
11104
11105 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
11106
11107         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
11108
11109 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
11110
11111         * class.c: fix mono_array_element_size() for objects.
11112         * class.h, class.c: add properties to MonoClass and load them
11113         at init time.
11114         * icall.c: check with isinst() when assigning a value to an array
11115         instead of requiring the classes to match exactly.
11116         Implemented icall for System.Type::GetType().
11117         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
11118         enums. Handle bindingflags when looking for methods and fields.
11119         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
11120         and mono_metadata_methods_from_property().
11121         * reflection.h, reflection.c: added structures for propreties,
11122         parameters and enums. Implemented mono_property_get_object() and
11123         mono_param_get_objects().
11124
11125 2001-12-18  Dick Porter  <dick@ximian.com>
11126
11127         * file-io.c: Use mono_string_to_utf16() instead of
11128         mono_string_chars()
11129
11130         * object.c: Added mono_string_to_utf16(), which copies the non
11131         NULL-terminated MonoString into a new double-null-terminated
11132         buffer.
11133
11134 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
11135
11136         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
11137
11138 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
11139
11140         * file-io.c: raise exceptions if handle is invalid.
11141
11142 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
11143
11144         * assembly.c: yet another check for mscorlib.
11145         * class.c, class.h: load nesting info for classes.
11146         * icall.c: many new functions to support the Reflection classes.
11147         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
11148         * reflection.h, reflection.c: mono_image_create_token(),
11149         mono_assembly_get_object(), mono_type_get_object(),
11150         mono_method_get_object(), mono_field_get_object(): methods to return
11151         objects that parallel the C representation of assemblies, types,
11152         methods, fields.
11153
11154 2001-12-11  Dick Porter  <dick@ximian.com>
11155
11156         * icall.c:
11157         * file-io.c: Internal calls for file IO.
11158
11159 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
11160
11161         * tabledefs.h: missing FileAttributes.
11162         * verify.h, verify.c: use is_valid_string () to simplify and check for
11163         valid strings more correctly. Fix warnings and speeling.
11164         Check more tables: Filed, File, ModuleRef, StandAloneSig.
11165         Check code: branches, maxstack, method calls.
11166
11167 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
11168
11169         * object.c (mono_object_allocate): removed static, so that the jit
11170         can allocate value types.
11171
11172         * icall.c (ves_icall_System_DateTime_GetNow): impl.
11173
11174 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
11175
11176         * class.c: init enum types right away and register the
11177         token->MonoClass map in mono_class_create_from_typedef ().
11178         * verify.h, verify.c: first cut of the verifier.
11179         * pedump.c: add --verify switch to verify metadata tables.
11180         * tabledefs.h: add some missing enums.
11181
11182 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
11183
11184         * class.c (mono_install_runtime_class_init): impl.
11185         (mono_class_init): renamed mono_class_metadata_init to
11186         mono_class_init, also removed the metadata_inited flag
11187
11188         * object.c (mono_object_isinst): use faster algorithm
11189
11190 2001-11-30  Radek Doulik  <rodo@ximian.com>
11191
11192         * mono-endian.h: reverted last change
11193         added function prototypes
11194
11195         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
11196         add mono-endian.c back
11197
11198         * mono-endian.c: returned back, as Paolo pointed out, it's needed
11199         for unaligned access, I've mistaked it with endianess. I am
11200         sorry.
11201         (mono_read16): fix reverted endianess
11202         (mono_read64): ditto
11203         (mono_read32): ditto
11204
11205 2001-11-30  Dick Porter  <dick@ximian.com>
11206
11207         * exception.c: Implement mono_exception_from_name()
11208
11209 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
11210
11211         * metadata.h, metadata.c: remove params_size and locals_size and their
11212         calculation from the metadata code: they are only usefult to the
11213         interp.
11214
11215 2001-11-29  Radek Doulik  <rodo@ximian.com>
11216
11217         * object.c (mono_ldstr): swap bytes here, it's probably not the
11218         best place, but works for me now, I'll redo it once I know mono
11219         better, also note that I add PROT_WRITE and don't reset back, also
11220         note that it's only affects big endians, so x86 should be OK
11221
11222         * mono-endian.h (read16): use just glib macros for both endians
11223
11224         * mono-endian.c: removed as glib macros are used in in
11225         mono-endian.h so we don't need to care about endianess for read
11226         macros as glib does that for us already
11227
11228 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
11229
11230         * class.h, class.h: take minimum alignment into consideration so
11231         that the fields of a class remain aligned also when in an array.
11232
11233 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
11234
11235         * loader.h, loader.c: add mono_method_get_param_names().
11236         * class.c: 0-init class fields.
11237
11238 2001-11-26  Dick Porter  <dick@ximian.com>
11239
11240         * icall.c:
11241         * threads-types.h:
11242         * threads.c: New file that handles System.Threading on all platforms
11243
11244         * object.c: 
11245         * object.h: Remove the synchronisation struct from MonoObject,
11246         replace it with a pointer that gets initialised on demand
11247
11248         * Makefile.am: Replace all the system-specific threading code with
11249         a single file that uses the new wrapper library
11250
11251 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
11252
11253         * class.c, class.h: add mono_install_trampoline() so that the runtime
11254         can register a function to create a trampoline: removes the ugly
11255         requirement that a runtime needed to export arch_create_jit_trampoline.
11256         * object.h, object.c: added mono_install_handler() so that the runtime
11257         can install an handler for exceptions generated in C code (with
11258         mono_raise_exception()). Added C struct for System.Delegate.
11259         * pedump.c: removed arch_create_jit_trampoline.
11260         * reflection.c: some cleanups to allow registering user strings and
11261         later getting a token for methodrefs and fieldrefs before the assembly
11262         is built.
11263         * row-indexes.h: updates and fixes from the new ECMA specs.
11264
11265 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
11266
11267         * class.h, class.c: add enum_basetype field to MonoClass.
11268         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
11269         to get index in the constant table reated to a field, param or
11270         property.
11271         * reflection.h, reflection.c: handle constructors. Set public-key and
11272         version number of the built assembly to 0.
11273         * row-indexes.h: update from new ECMA spec.
11274
11275 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
11276
11277         * class.h, class.c: add a max_interface_id to MonoClass.
11278         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
11279         since it's used to do that. Added mono_type_type_from_obj().
11280         Make GetType() return NULL instead of segfaulting if the type was not
11281         found. Handle simple arrays in assQualifiedName.
11282         * object.h: add a struct to represent an Exception.
11283         * reflection.c: output call convention in method signature.
11284         Add code to support P/Invoke methods and fixed offsets for fields.
11285
11286 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
11287
11288         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
11289         the value.
11290         * icall.c: use mono_array_addr instead of array->vector: fixes the
11291         reflection image writing.
11292         * reflection.c: init call convention byte to 0 in method signature.
11293         Encode the property signature. Don't output property-related methods
11294         twice. Really process the properties for a type (don't cast a field to
11295         a property, my mom always told me that).
11296         Fix 64 bit issues in pointer alignment in a different and more
11297         readable way.
11298
11299 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
11300
11301         * loader.h: Removed type class from MonoDefaults, added monotype
11302
11303         * loader.c: Loaded MonoType, removed loading of Type
11304
11305         * icall.c (my_mono_new_object): Now returns a System.MonoType,
11306         and fills in System.Type._impl with a RuntimeTypeHandle rather
11307         than the actual MonoClass *
11308
11309         (ves_icall_type_from_handle): change from type_class to
11310         monotype_class
11311
11312         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
11313         implemented
11314
11315         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
11316         implemented
11317
11318         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
11319
11320         (ves_icall_System_Reflection_Assembly_GetType): implemented
11321
11322         (ves_icall_System_MonoType_assQualifiedName): implemented
11323
11324         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
11325
11326 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
11327
11328         * assembly.c (mono_assembly_open): Implement a cache for the
11329         assemblies. 
11330
11331         (mono_assembly_close): only destroy the assembly when the last
11332         reference is gone.
11333         
11334 2001-11-09  Dick Porter  <dick@ximian.com>
11335
11336         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
11337
11338 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
11339
11340         * class.c (mono_class_metadata_init): bug fix: compute the right slot
11341
11342 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
11343
11344         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
11345         from Martin Weindel.
11346         * object.h: add mono_string_chars ().
11347
11348 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
11349
11350         * reflection.c (build_compressed_metadata): Eliminates warnings
11351         and uses 64-bit clean code.
11352
11353         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
11354         (mono_type_equal): Change signature to eliminate warnings.
11355
11356 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
11357
11358         * icall.c, loader.c: remove the internalcall array constructors.
11359         Changes to match the new MonoArray structure.
11360         * object.h, object.c: an array object doesn't allocate an extra
11361         vector. Add mono_array_new_full () to create jagged arrays easily.
11362
11363 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
11364
11365         * metadata.h, metadata.c: add mono_metadata_field_info () to
11366         retreive all the info about a field from vairous tables.
11367         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
11368         * class.h, class.c: augment MonoClassField with more info.
11369         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
11370         policy and load a field's RVA if needed.
11371
11372 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
11373
11374         * class.c (mono_class_metadata_init): create a trampoline for all
11375         virtual functions instead of actually compiling them.
11376
11377 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
11378
11379         * class.h, class.c: include name in MonoClassField.
11380         * class.c: fix fundamental type of System.Object and System.String.
11381         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
11382         tokens in ldtoken.
11383         * icall.c: remove internalcalls for the Reflection stuff that is now
11384         done in C# code.
11385         * loader.c: mono_field_from_memberref () implementation.
11386         * mono-endian.c: thinko (s/struct/union/g).
11387         * object.c, object.h: make the mono_string_* prototypes actually use
11388         MonoString instead of MonoObject.
11389         * reflection.c, reflection.h: updates for changes in the reflection
11390         code in corlib: we use C structures that map to the actual C# classes.
11391         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
11392         fat method header if needed and use the info from the ILGenerator for
11393         methods. Handle fields in types. Misc fixes.
11394
11395 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
11396
11397         * class.c (mono_class_metadata_init): bug fix: always allocate
11398         space for static class data
11399
11400 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
11401
11402         * class.c (mono_compute_relative_numbering): use relative
11403         numbering to support fast runtime type checks.
11404
11405 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
11406
11407         * class.c (mono_class_create_from_typeref): added debugging output
11408         to print class name when MonoDummy is returned instead of real class
11409
11410 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
11411
11412         * class.c (mono_class_metadata_init): interface offset table now
11413         contains pointers into the vtable - this is more efficient for the jit
11414
11415 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
11416
11417         * class.c (mono_class_metadata_init): use a temporary vtable (the
11418         old algorithm only worked for the interpreter, but not for the jit)
11419
11420 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
11421
11422         * loader.c (method_from_memberref): use mono_class_get to get the
11423         class of an array instead of using System.Array directly.
11424         (mono_get_method): also add MEMBERREF methods to the method cache
11425         which usefull for arrays.
11426
11427 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
11428
11429         * pedump.c (arch_compile_method): added to compute vtable entry
11430
11431         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
11432         number of interfaces.
11433         
11434         * class.h: merged MonoArrayClass into MonoClass
11435
11436         * class.c (mono_class_create_from_typedef): compute the vtable size and
11437         allocate space to include the vtable inside MonoClass
11438         (mono_class_metadata_init): initialize the vtable
11439
11440 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
11441
11442         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
11443         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
11444         * image.c: endian fixes by Laurent Rioux.
11445         * object.h, object.c: rename MonoStringObject to MonoString and
11446         MonoArrayObject to MonoArray. Change some function names to conform to
11447         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
11448         guint16* as first argument, so don't use char*.
11449         Provide macros to do the interesting things on arrays in a portable way.
11450         * threads-pthread.c: updates for the API changes and #include <sched.h>
11451         (required for sched_yield()).
11452         * icall.c: updates for the API changes above.
11453         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
11454         platforms that need them.
11455
11456 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
11457
11458         * class.c: set the correct type for all the fundamental
11459         type when loading the class.
11460
11461 2001-10-05  Dick Porter  <dick@ximian.com>
11462
11463         * threads-pthread.c (pthread_mutex_timedlock): Simple
11464         compatibility version for C libraries that lack this call.
11465
11466 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11467
11468         * class.c: MonoTypes stored in MonoClass are stored as
11469         fundamental MonoTypes when the class represents a
11470         fundamental type (System.Int32, ...).
11471         The TypeHandle return by ldtoken is a MonoType*.
11472         * icall.c: ves_icall_get_data_chunk () write out all the
11473         PE/COFF stuff. Implement ves_icall_define_method (),
11474         ves_icall_set_method_body (), ves_icall_type_from_handle ().
11475         * image.c: properly skip unknown streams.
11476         * loader.h, loader.c: add type_class to mono_defaults.
11477         * metadata.c, metadata.h: export compute_size () as
11478         mono_metadata_compute_size () with a better interface.
11479         Typo and C&P fixes.
11480         * pedump.c: don't try to print the entry point RVA if there is no entry point.
11481         * reflection.c, reflection.h: many cleanups, fixes, output method
11482         signatures and headers, typedef and typeref info, compress the metadata
11483         tables, output all the heap streams, cli header etc.
11484         * row-indexes.h: typo fixes.
11485
11486 2001-10-04  Dick Porter  <dick@ximian.com>
11487
11488         * object.h: Add a synchronisation mutex struct to MonoObject
11489
11490         * object.c (mono_new_object): Initialise the object
11491         synchronisation mutexes
11492
11493         * icall.c: System.Threading.Monitor internal calls
11494         
11495         * threads-pthread.h:
11496         * threads-pthread.c: System.Threading.Monitor internal calls
11497
11498         * threads-types.h: New file, includes the system-specific thread
11499         structures
11500         
11501         * threads-pthread-types.h:
11502         * threads-pthread-types.c: New files, handle pthread-specific
11503         synchronisation types
11504
11505         * threads-dummy-types.h: 
11506         * threads-dummy-types.c: New files of dummy support for
11507         thread-specific types
11508
11509         * metadata.c:
11510         * image.c:
11511         * pedump.c: include mono-endian.h not endian.h
11512         
11513         * Makefile.am: More threads files.
11514         Name mono-endian.h not endian.h
11515
11516 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
11517
11518         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
11519         stuff and implement a few more bits.
11520         * icall.c: a field needs to be dereferenced twice. Do not use the same
11521         name for two variables in the same scope.
11522         * image.c, image.h: cleanups.
11523
11524 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
11525
11526         * class.c (mono_class_metadata_init): bug fix: compute the right size
11527
11528 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
11529
11530         * icall.c: implemented some of the Reflection internalcalls.
11531         * image.c, image.h: start writing out the PE/COFF image.
11532         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
11533         that does the reverse than decode_blob_size ().
11534         * object.c: use mono_metadata_encode_value (). Move here
11535         temporary implementation of mono_string_to_utf8 ().
11536         * rawbuffer.c: make malloc_map static.
11537
11538 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11539
11540         * metadata.c: fix type comparison for arrays.
11541         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
11542         Added a couple of new classes to monodefaults.
11543         * icall.c: added a couple of Reflection-related internalcalls.
11544         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
11545         Added a byval_arg MonoType to MonoClass.
11546
11547 2001-09-28  Dick Porter  <dick@ximian.com>
11548
11549         * icall.c:
11550         * threads-pthread.h: 
11551         * threads-pthread.c: Implemented internal calls for
11552         LocalDataStoreSlot operations.  Applied mutexes around all shared
11553         data.  Reworked the thread creation and Start() operations to
11554         avoid a race condition.
11555         
11556         * threads-dummy.h:
11557         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
11558
11559 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
11560
11561         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
11562
11563 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
11564
11565         * class.c, loader.c: warn and return NULL instead of erroring out.
11566         * icall.c: added System.AppDomain::getCurDomain().
11567         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
11568
11569 2001-09-25  Dick Porter  <dick@ximian.com>
11570
11571         * threads-pthread.h:
11572         * threads-pthread.c: Implemented timed thread joining and added
11573         System.Threading.Thread::Join_internal internal call
11574
11575         * icall.c: Added System.Threading.Thread::Join_internal internal call
11576
11577         * threads-dummy.h:
11578         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
11579
11580 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
11581
11582         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
11583         mono_string_intern () to implement the semantics of the ldstr opcode
11584         and the interning of System.Strings.
11585         * icall.c: provide hooks to make String::IsIntern and String::Intern
11586         internalcalls.
11587
11588 2001-09-23  Dick Porter  <dick@ximian.com>
11589
11590         * threads-dummy.c: 
11591         * threads-dummy.h: New files of dummy threading routines
11592
11593         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
11594         support code based on system specifics
11595
11596         Rename PTHREAD_LIBS to THREAD_LIBS
11597         
11598 2001-09-23  Dick Porter  <dick@ximian.com>
11599
11600         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
11601         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
11602         internal calls.
11603         (mono_thread_init): Set up a Thread object instance to return when
11604         the main thread calls Thread.CurrentThread
11605         (mono_thread_cleanup): Wait for all subthreads to exit
11606
11607         * icall.c: New internal calls for System.Threading.Thread::Sleep
11608         (including Schedule) and CurrentThread
11609
11610         * threads.h: New file, to insulate thread-specific stuff from the
11611         rest of the code
11612
11613 2001-09-21  Dick Porter  <dick@ximian.com>
11614
11615         * threads-pthread.h: 
11616         * threads-pthread.c: New file, for handling pthreads-style
11617         threading support.  Start() now starts a new thread and executes
11618         the ThreadStart delegate instance.
11619
11620         * icall.c: Added the internalcall for
11621         System.Threading.Thread::Start_internal
11622
11623         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
11624
11625 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
11626
11627         * loader.c: work around the different signatures for delegates
11628         constructors csc generates in compiled code vs the ones compiled in mscorlib.
11629
11630 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
11631
11632         * class.h, class.c: add mono_class_get_field_from_name ().
11633         * *: Fix C comments and other ANSI C issues.
11634
11635 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
11636
11637         * endian.h, assembly.c: fix some endianness issues.
11638
11639 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
11640
11641         * loader.h, load.c: add delegate_class to mono_defaults.
11642         Handle runtime provided methods in mono_get_method ().
11643
11644 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
11645
11646         * loader.c (mono_get_method): use pinvoke for internal call
11647
11648         * icall.c: use pinvoke for internal call
11649
11650         * loader.c (method_from_memberref): set the method name
11651
11652 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
11653
11654         * metadata.c: help the compiler generate better code for
11655         mono_class_from_mono_type ().
11656
11657 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
11658
11659         * class.c (mono_class_metadata_init): delayed computing of the
11660         class size to mono_class_metadata_init ()
11661
11662 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
11663
11664         * class.c, class.h: add an interfaces member to MonoClass.
11665         * image.c, image.h: add assembly_name field to MonoImage
11666         from the assembly table.
11667         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
11668
11669 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
11670
11671         * class.c: Handle Array in mono_class_from_mono_type ().
11672         * metadata.c, pedump.c: some endian fixes.
11673
11674 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
11675
11676         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
11677         * metadata.c: fix small problem introduced with the latest commit.
11678
11679 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
11680
11681         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
11682         We don't need a MonoMetadata pointer anymore to compare signatures in
11683         mono_metadata_signature_equal (), update callers.
11684         Reduced memory usage an number of allocations for MonoMethodHeader and
11685         MonoMethodSignature.
11686
11687 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
11688
11689         * metadata.c: added compare for szarray.
11690
11691 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
11692
11693         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
11694         and add a couple more types to it and mono_defaults. Give an hint on
11695         classes that need implementing in our corlib and are referenced
11696         in mscorlib.
11697
11698 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
11699
11700         * class.h, class.c: keep track if a class is also an Enum.
11701         * loader.c: Implement a couple more types for use in libffi
11702         marshalling. Gives better diagnostics when failing to dlopen
11703         a library. Set method->klass for P/Invoke methods, too.
11704
11705 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
11706
11707         * class.c, class.h: add a MonoType this_arg to MonoClass that
11708         represents a pointer to an object of the class' type that
11709         can be used by the interpreter and later the type cache.
11710         Add best guess alignment info for valuetype objects.
11711
11712 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
11713
11714         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
11715         into MonoType: one less level of indirection and allocation and
11716         simplifies quite a bit of code. Added cache for MonoTypes that are
11717         used frequently, so that we don't need to allocate them all the time.
11718
11719 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
11720
11721         * class.c (mono_class_create_from_typedef): System.Enum is also a
11722         value type, although it does not derive from System.ValueType
11723         (maybe a bug in the ms compiler?)
11724
11725         * metadata.c (mono_type_size): return the right size for value types
11726
11727         * loader.c (mono_get_method): only initialize method header if not abstract
11728
11729         * class.c (mono_class_from_mono_type): use mono_default values. 
11730
11731 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
11732
11733         * *: use MonoClass pointers instead of <type_tokens>
11734         
11735         * class.h: new flag: metadata_inited.
11736
11737         * class.c (mono_class_metadata_init): impl.
11738         (mono_class_instance_size): impl.
11739         (mono_class_data_size): impl.
11740
11741 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11742
11743         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
11744         MonoClass now has the name and name_space fields. 
11745         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
11746         mono_get_method () takes and optional MonoClass as argument.
11747         Removed mono_typedef_from_name() and added mono_class_token_from_name()
11748         instead that takes advantage of a map from class names to typedef
11749         tokens in MonoImage.
11750
11751 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
11752
11753         * metadata.c: zero is not a valid alignment boundary.
11754         Merge MONO_TYPE_VOID in default decoding code.
11755
11756 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
11757
11758         * image.h: merged MonoMetadata into MonoImage
11759
11760         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
11761         identify the type of elements.
11762
11763 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
11764
11765         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
11766         * cil-coff.h: split MonoMSDOSHeader and add size info.
11767         * image.c: add some consistency checks.
11768         * metadata.c: fix row size computation: one programmer
11769         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
11770         add explanation for the locator routine.
11771         Fix decoding of size in method header.
11772         
11773 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
11774
11775         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
11776         (g_concat_dir_and_file): Bring g_concat_dir_and_file
11777         function from gnome-libs.  This uses the right path separator
11778         based on the OS, and also works around a bug in some systems where
11779         a double slash is not allowed. 
11780         (default_assembly_name_resolver): Use g_concat_dir_and_file
11781         (mono_assembly_open): ditto.
11782
11783 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
11784
11785         * metadata.c (mono_metadata_signature_equal): impl.
11786
11787         * *: void is now a realy MonoType (instead of using NULL)
11788         
11789         * metadata.c (do_mono_metadata_parse_type): use
11790         mono_metadata_parse_type to parse void value.
11791
11792 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
11793
11794         * metadata.c, metadata.h: in the signature and method header store
11795         only the space required for holding the loca vars and incoming arguments.
11796
11797 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
11798
11799         * metadata.c (do_mono_metadata_parse_type): treat void like any
11800         other type (instead of assigning NULL);
11801
11802 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
11803
11804         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
11805
11806 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
11807
11808         * image.c (do_mono_image_open): added a cache for arrays.
11809
11810 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
11811
11812         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
11813         decode a single column from a row in a metadata table and changes
11814         to take advantage of it in the typedef locator (gives a nice speed up).
11815         Store offset info for function params.
11816
11817 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
11818
11819         * image.h (MONO_IMAGE_IS_CORLIB): removed 
11820
11821 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
11822
11823         * assembly.c: how could mono_assembly_close () had ever worked?
11824         * metadata.c, metadata.h: provide offset info for local vars.
11825         Implement mono_type_size () to take care of alignment as well
11826         as size (it was mono_field_type_size in cli/class.c before).
11827
11828 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
11829
11830         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
11831
11832         * assembly.h (CORLIB_NAME): set to corlib.dll
11833
11834         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
11835
11836 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
11837
11838         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
11839         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
11840         tokentype.h: massive namespace cleanup.
11841
11842 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
11843
11844         * metadata.h, metadata.c: decode exception clauses when parsing method header.
11845
11846 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
11847
11848         * metadata.c (mono_metadata_free_type): added check for type !=
11849         NULL (void) before calling mono_metadata_free_type()
11850
11851 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
11852
11853         * metadata.h, row_indexes.h: added header with enumerations to use
11854         to index in the columns from tables in metadata and to decode coded
11855         tokens: we should start using this instead of embedding magic numbers
11856         all over the code.
11857
11858 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
11859
11860         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
11861         Move metadata_t info from cli_image_info_t to MonoImage, where
11862         it's easily accessible. Changed all the uses accordingly.
11863         Added the method and class caches to MonoImage.
11864         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
11865         and mono_metadata_decode_value () signature to be more consistent
11866         with the other parse functions (and simplify code). Taken advantage
11867         of zero-length array allocation with GCC. Removed reduntant (and
11868         wrong) MonoFieldType struct and use MonoParam instead. Changed
11869         mono_metadata_parse_field_type () to use common code for parsing.
11870         Added mono_metadata_typedef_from_field () and
11871         mono_metadata_typedef_from_method () to lookup a typedef index from a
11872         field or method token.
11873         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
11874
11875 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
11876
11877         * metadata.c (mono_metadata_parse_field_type): Implement. 
11878         (do_mono_metadata_parse_type): Split engine from
11879         mono_metadata_parse_type, so that we can create smaller structures
11880         for things that just have one pointer to the MonoType (look at
11881         the MonoFieldType)
11882
11883 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
11884
11885         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
11886         as Jan Gray found out, it is incorrect. 
11887
11888 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
11889
11890         * assembly.c: Implement asssembly loading.  This loads an image
11891         and loads all the referenced assemblies.  Come to think of it, we
11892         could always do lazy loading of the assemblies. 
11893
11894         * image.c (mono_image_open): Keep loaded images in a hashtable.
11895
11896         * image.h (MonoImage): Add reference count.
11897
11898 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
11899
11900         * assembly.c (mono_assembly_open): Keep track of the file name in
11901         case the assembly has no ASSEMBLY table.
11902
11903         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
11904         from get.c here.
11905
11906 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
11907
11908         * metadata.c, metadata.h: decode local vars in method header
11909         parse function. Change callers accordingly.
11910
11911 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
11912
11913         * metadata.h, cil-coff.h: protect against multiple inclusion.
11914         Added some new structures to hold information decoded from metadata:
11915         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
11916         and relevant decoding/free functions.
11917         * metadata.c: implement decoding functions. Add warning for out of bounds
11918         index in mono_metadata_locate(). Implement mono_get_method () to retreive
11919         all the info about a method signature and invocation. Remove check on
11920         uninitialized local var in parse_mh() and fix memory leak.
11921
11922 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
11923
11924         * metadata.h: More macros.
11925
11926         * tokentype.h: New file.
11927
11928 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
11929
11930         * assembly.c: added a consistency check and initialize
11931         some structures with g_new0().
11932         * metadata.c: fixed a couple more bugs in table size computation
11933         and add other checks for out-of bound access to metadata.
11934
11935 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
11936
11937         * metatada.c: fix bugs computing table sizes. Spew a
11938         warning when index in string heap is out of bounds.
11939
11940 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
11941
11942         * metadata.h: Add a couple of macros to manipulate tokens. 
11943
11944 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
11945
11946         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
11947         cli_section_tables).
11948
11949 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
11950
11951         * metadata.c (mono_metadata_user_string): New function, provides
11952         access to the UserString heap. 
11953
11954 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
11955
11956         * metadata.c: Add inline documentation.
11957
11958 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
11959
11960         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
11961         files. 
11962
11963 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
11964
11965         * typeattr.h: New file, TypeAttribute flags. 
11966
11967 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
11968
11969         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
11970         mono_assembly_ensure_section): Section loading code.
11971         (load_section_tables): Load the sections.
11972
11973         * mono/metadata/metadata.c (mono_metadata_locate_token,
11974         mono_metadata_locate): Functions to locate the information
11975         definition given a token or a table and an index.
11976         (mono_metadata_compute_table_bases): New.
11977         (compute_size): New function to compute the sizes of the various
11978         tables.
11979
11980         * mono/metadata/metadata.h: Finish listing the different index
11981         types. 
11982
11983         * mono/metadata/pedump.c: Improve to dump new information.
11984
11985 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
11986
11987         * mono/metadata/metadata.c: Entered all the tables matching
11988         Beta2. 
11989
11990         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
11991