2004-09-13 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / ChangeLog
1 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
2
3         * image.c (mono_image_addref): Fix comment.
4
5         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
6         possible.
7
8 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
9
10         * reflection.c (mono_param_get_objects): Modified to return
11         ParameterInfo.DefaultValue object.
12
13         (get_default_param_value_blobs):
14         (mono_get_object_from_blob):
15         (mono_get_dbnull_object): New helper routines. 
16
17         * object.c (mono_get_constant_value_from_blob): New helper routine
18         carved out from get_default_field_value ()
19
20         * object-internals.h (mono_get_constant_value_from_blob): Added
21         function declaration.
22
23 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
24
25         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
26         referenced assemblies. Fixes #62135.
27
28         * exception.h exception.c (mono_get_exception_file_not_found2): New
29         helper function.
30
31 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
32
33         * class.h class.c: Add mono_type_get_underlying_type ().
34
35 2004-09-09  Geoff Norton <gnorton@customerndna.com>
36
37         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
38         Fix GetTypes() to support dynamically created assemblies.
39
40 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
41
42         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
43         
44         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
45         previous patch.
46
47         * reflection.h reflection.c loader.c: Allow dynamic construction of
48         pinvoke methods. Fixes #65571.
49         
50         * reflection.c (mono_reflection_get_type): Revert previous change since
51         it causes regressions.
52
53 2004-09-08  Martin Baulig  <martin@ximian.com>
54
55         * class.c (class_compute_field_layout): Don't call
56         mono_class_layout_fields() for open generic instances.
57
58 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
59         * threads.c appdomain.c: fix typo in GC macro
60
61 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
62
63         * threads.c: don't call mono_thread_detach() in start_wrapper(),
64         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
65
66 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
67
68         * image.c (mono_image_close): Applied patch from 
69         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
70         assembly is loaded multiple times from data.
71         
72         * image.c (mono_image_open): Fix warning.
73
74 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
75
76         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
77         once. Fixes #58334.
78         
79         * reflection.c (mono_reflection_create_runtime_class): Initialize
80         klass->nested_classes. Fixes #61224.
81
82 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
83
84         * threads.c: sched_yield() on exit, to allow threads to quit.
85
86 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
87
88         * object.c (mono_unhandled_exception): Remove leftover debug code.
89
90 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
91
92         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
93
94 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
95
96         * marshal.c (emit_marshal_array): Really null terminate string arrays.
97         
98         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
99
100 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
101
102         * marshal.c (emit_marshal_array): Null terminate string arrays.
103         
104         * marshal.c (raise_auto_layout_exception): Fix warning.
105
106         * reflection.c (mono_param_get_objects): Initialize the default value
107         with DBNull.Value, not null. Fixes #62123.
108
109 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
110
111         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
112         throw an exception with a cute explanation.
113
114 2004-09-06  Dick Porter  <dick@ximian.com>
115
116         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
117         Close the new process's thread handle, as we don't use it.  The
118         handle stays around forever otherwise.
119
120 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
121
122         * object.c (arith_overflow): Fix warning.
123
124         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
125         calling conventions in method refs. Fixes #65352.
126
127         * reflection.c: Fix warnings.
128
129 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
130
131         * icall.c: Add a new icall for Array.Clear
132
133 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
134
135         * object.c: When allocating an array, we have to throw
136         an overflow exception if any of the lengths are < 0.
137
138 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
139
140         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
141         properly. Also move implementation of string array marshalling to 
142         managed code. Fixes #42316.
143
144 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
145
146         * assembly.c: provide more information when loading an assembly fails.
147
148 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
149
150         * filewatcher.c: don't expect the development fam package to be
151         installed.
152
153 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
154
155         * marshal.c: Make a copy of the signature cookie since it will be
156         freed by the caller.
157         
158         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
159
160         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
161
162         * metadata.c (mono_metadata_free_marshal_spec): New function to free
163         marshal specs.
164
165         * marshal.c: More refactoring.
166         
167         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
168         smaller functions.
169
170 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
171
172         * object.c: In mono_message_invoke, fill the output parameter array after
173           calling the managed method (it was done before the call). This fixes
174           bug #59299.
175
176 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
177
178         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
179         as well.
180
181 2004-09-02  Martin Baulig  <martin@ximian.com>
182
183         * class.c (mono_class_instance_size): Don't allow generic type
184         definitions or open generic instances.
185         (mono_class_array_element_size): If we're a value type, call
186         mono_class_instance_size() on the original class.
187
188         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
189         handle generic instances.
190
191         * mono-debug-debugger.c (write_type): Handle generic instances
192         like classes.
193
194 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
195
196         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
197         the allocation request fails. Fixes #65089.
198
199         * object.c (mono_runtime_free_method): Do not call mono_free_method.
200         
201         * object.c (mono_runtime_free_method): New function to free a dynamic
202         method.
203
204         * marshal.c (mono_delegate_free_ftnptr): New function to free the
205         delegate trampoline.
206
207         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
208         with hasthis as dynamic,
209
210         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
211
212         * domain.c (mono_jit_info_table_remove): New function to remove an
213         entry from the jit info table.
214
215         * class-internals.h (MonoMethod): Add 'dynamic' field.
216
217         * loader.c: Fix warnings.
218
219 2004-09-01  Martin Baulig  <martin@ximian.com>
220
221         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
222         instead of mono_debugger_lock() because the latter one is a no-op
223         unless running in the debugger.
224
225 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
226
227         * class.c (class_compute_field_layout): Classes with auto-layout or
228         reference fields are not blittable.
229         
230 2004-09-01  Dick Porter  <dick@ximian.com>
231
232         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
233         mono_image_get_filename() to get the assembly location.
234
235         * icall.c:
236         * metadata.h: Fix compile warnings
237
238 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
239
240         * class.c (class_compute_field_layout): System.Object is blittable.
241
242         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
243         as in/out. Fixes #59909.
244
245 2004-09-01  Martin Baulig  <martin@ximian.com>
246
247         * metadata.h (MONO_TYPE_ISREFERENCE): Call
248         mono_metadata_generic_inst_is_valuetype() if we're a generic
249         instance to check whether our underlying type is a reference type.
250
251 2004-09-01  Martin Baulig  <martin@ximian.com>
252
253         * metadata.c (mono_type_size): If we're a generic instance, call
254         mono_class_value_size() for value types.
255
256 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
257
258         * marshal.c: Implement more custom marshalling functionality. Fixes
259         #64915.
260
261 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
262
263         * mono-debug.c, debug-mono-symfile.c: add some locking love.
264
265 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
266
267         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
268
269         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
270
271         * icall.c: Fix some warnings.
272
273         * threads.c (abort_appdomain_thread): Fix unref errors.
274         (mono_thread_current): Fix THREAD_DEBUG define.
275
276 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
277
278         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
279
280         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
281
282 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
283
284         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
285         string arrays.
286
287 2004-08-28  Martin Baulig  <martin@ximian.com>
288
289         * metadata.c
290         (mono_metadata_generic_inst_is_valuetype): New public function.
291
292         * metadata.h (MONO_TYPE_ISSTRUCT): Call
293         mono_metadata_generic_inst_is_valuetype() if we're a generic
294         instance to check whether our underlying type is a valuetype.
295
296 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
297
298         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
299         #63768.
300
301 2004-08-25  Martin Baulig  <martin@ximian.com>
302
303         * loader.c (mono_get_method_from_token): Abstract methods can also
304         be generic and thus have type parameters.
305
306         * metadata-internals.h
307         (MonoDynamicImage): Added `GPtrArray *gen_params'.
308
309         * reflection.c (mono_image_get_generic_param_info): Don't create a
310         metadata row, just add an entry to the `gen_params' array.
311         (build_compressed_metadata): Sort the `gen_params' array and then
312         actually create the metadata.
313
314 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
315
316         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
317
318 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
319
320         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
321
322 2004-08-24  Martin Baulig  <martin@ximian.com>
323
324         * class.cs (mono_class_is_subclass_of): Like an interface, a
325         generic instance also derives from System.Object.
326
327 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
328
329         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
330         custom modifiers to be in any order. Fixes #61990.
331
332 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
333
334         * object.c: Register mono_object_new_fast icall.
335         
336         * object.c (mono_class_get_allocation_ftn): Return to calling
337         mono_object_new_fast, since it seems faster to compute the object 
338         size in unmanaged code than passing it as a parameter.
339
340         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
341
342         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
343         this function with Boehm as the oom handler, so we don't have to check
344         the result of GC_malloc.
345
346         * object.c: Remove checks for oom.
347
348         * object.h object.c (mono_class_get_allocation_ftn): New function to
349         return the icall which can be used to allocate an instance of a given
350         class. 
351
352         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
353
354         * class-internals.h: Add 'enabled' field.
355
356 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
357
358         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
359
360 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
361         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
362         value 0x0010.
363
364 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
365
366         * appdomain.c: use the Tls function for appdomain too,
367         at Zoltan's request. Actually return in mono_context_get
368
369         * appdomain.c, profiler.c, threads.c: use __thread
370
371 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
372
373         * appdomain.c threads.c: Call GC_CreateThread on windows.
374
375         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
376         multiple libraries since this don't work on windows.
377
378 2004-08-18  Martin Baulig  <martin@ximian.com>
379
380         * class-internals.h
381         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
382         MonoMethodHeader.
383
384         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
385         MonoMethodNormal since we also need it for abstract and interface
386         methods.
387
388         * reflection.c
389         (build_compressed_metadata): Sort the GenericParam table.
390         (mono_image_create_token): Added `gboolean create_methodspec'
391         argument; this is false when generating a MethodImpl token.
392         (reflection_methodbuilder_to_mono_method): Abstract and interface
393         methods may also have generic parameters.
394
395 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
396
397         * appdomain.c: thread local alloc
398
399 2004-08-17  Martin Baulig  <martin@ximian.com>
400
401         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
402
403         * icall.c
404         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
405         argument.
406
407         * class.c (mono_type_get_full_name): New public function.
408         (mono_type_get_name): Don't include the type arguments.
409
410 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
411
412         * Makefile.am: Build static versions of libmetadata and libmonoruntime
413         for inclusion into the mono executable.
414
415 2004-08-16  Martin Baulig  <martin@ximian.com>
416
417         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
418         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
419
420 2004-08-14  Martin Baulig  <martin@ximian.com>
421
422         * class.c (dup_type): Also copy the `byref' field.
423
424 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
425
426         * reflection.c (create_dynamic_mono_image): Revert the last change 
427         since it breaks bootstrap.
428
429 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
430
431         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
432
433         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
434         not free them with g_free.
435
436 2004-08-11  Martin Baulig  <martin@ximian.com>
437
438         * reflection.c (mono_reflection_setup_internal_class): Also call
439         mono_class_setup_mono_type() if we already have a `tb->type.type'.
440
441 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
442
443         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
444         called during default (first) AppDomain creation. Keep track of
445         Evidence when loading assemblies.
446
447 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
448
449         * opcodes.c, opcodes.h: reduce runtime relocations.
450
451 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
452
453         * culture-info.h, locales.c: fixes and chages to sue the new
454         optimized format of the locale data.
455         * culture-info-tables.h: regenerated.
456
457 2004-08-06  Geoff Norton <gnorton@customerdna.com>
458         
459         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
460
461 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
462
463         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
464         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
465         * domain-internals.h: icall declaration.
466         * icall.c: icall registration.
467         * object-internals.h: New fields in MonoAssembly for CAS.
468
469 2004-08-05  Duncan Mak  <duncan@ximian.com>
470
471         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
472         CEE_LDELEM_ANY.
473
474 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
475
476         * reflection.c: fix to deal with object[] arrays in custom ctors
477         (bug #62550).
478
479 2004-08-05  Martin Baulig  <martin@ximian.com>
480
481         * class.c (mono_class_array_element_size): Added support for
482         generic instances and correctly handle "recursive" types.
483
484 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
485
486         * assembly.c: Fix warnings.
487
488 2004-08-04  Martin Baulig  <martin@ximian.com>
489
490         * class.c
491         (mono_type_get_name_recurse): Added `gboolean include_arity'
492         argument specifying whether or not we should include the generic
493         arity in the type name.
494         (_mono_type_get_name): New static function.
495         (mono_class_setup_vtable): If we're a generic instance, don't
496         include the generic arity in the names of explicit method
497         implementations.        
498
499 2004-08-03  Martin Baulig  <martin@ximian.com>
500
501         * class.c (mono_type_get_name_recurse): Enclose the generic type
502         arguments in `<', '>'.
503
504 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
505
506         * gc.c: make GC warning messages use the trace API, they are just
507         noise to most of the users.
508
509 2004-08-03  Martin Baulig  <martin@ximian.com>
510
511         * debug-mono-symfile.c (read_string): Correctly read the string.
512
513 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
514
515         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
516         
517         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
518         icalls.
519         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
520
521 2004-07-30  Martin Baulig  <martin@ximian.com>
522
523         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
524         Reflect latest symbol writer changes.   
525
526 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
527
528         * object.c: always create an object if null is passed
529         to Invoke() where a valuetype is expected.
530
531 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
532
533         * marshal.c (mono_marshal_init): make managed
534         signatures match native ones better for 64bits.
535
536 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
537
538         * appdomain.c: hack to build correctly the private bin path on windows.
539         Fixes bug #61991.
540
541 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
542
543         * assembly.c: Load mscorlib from the correct framework directory
544           (mono/<version>/mscorlib.dll).
545         * appdomain.h: Added prototypes for new functions.
546         * internals.h: Added some prototypes.
547         * domain.c: When initializing the runtime, get from the executable and
548           the configuration files the runtime version that the app supports.
549           Added support methods for reading app.exe.config. Added list of versions
550           supported by the JIT. Added two new methods: mono_init_from_assembly,
551           which initializes the runtime and determines the required version from
552           the provided exe file, and mono_init_version, which initializes
553           the runtime using the provided version.
554         * icall.c: Get machine.config from version-specific directory.
555         * reflection.c: When generating an image, embed the version number
556           of the current runtime.
557
558 2004-07-28  Dick Porter  <dick@ximian.com>
559
560         * socket-io.c
561         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
562         returned sockaddr size before creating the remote address object.
563         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
564         61608.
565
566 2004-07-28  Dick Porter  <dick@ximian.com>
567
568         * locales.c (string_invariant_compare_char): Fix invariant char
569         compares between upper and lower cases.  Fixes bug 61458.
570
571 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
572         
573         * marshal.c: actually cache stelem.ref wrappers.
574         
575 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
576
577         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
578         sections and remove the mono_cli_rva_map () function.
579
580 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
581
582         * debug-mono-symfile.c: fix one more endianess issue, from a patch
583         by Geoff Norton (<gnorton@customerdna.com>).
584
585 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
586
587         * class.c: fix class loads for pointer types (typeof(int) !=
588         typeof(int*)).
589
590 2004-07-27  Martin Baulig  <martin@ximian.com>
591
592         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
593         reading the debugging information from an external ".mdb" file.
594
595 2004-07-24  Martin Baulig  <martin@ximian.com>
596
597         * reflection.c (mono_image_get_type_info): Only write a class
598         layout entry if we actually have a size or a packing size.
599
600 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
601
602         * reflection.c (type_get_fully_qualified_name): 
603         insert cast to get type checking of ?: with non-gcc compilers
604
605 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
606
607         * rand.c: use g_getenv for both lookups of
608         MONO_EGD_SOCKET
609
610 2004-07-17  Martin Baulig  <martin@ximian.com>
611
612         * reflection.c (mono_reflection_bind_generic_method_parameters):
613         Set `gmethod->reflection_info'.
614
615 2004-07-17  Martin Baulig  <martin@ximian.com>
616
617         * class.c (mono_class_create_from_typedef): Insert the newly
618         created class into the hash table before computing the interfaces
619         since we could be called recursively.
620
621 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
622
623         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
624         function to implement stelem.ref in managed code
625         * class-internals.h, debug-helpers.c: a new wrapper type
626         for the above.
627
628 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
629
630         * gc.c: allow GC handles to work even when no GC is compiled in.
631         Fix part of bug #61134 (GetAddrOfPinnedObject).
632
633 2004-07-13  Peter Williams  <peter@newton.cx>
634  
635         * process.c (complete_path): Make sure we don't attempt to execute
636         directories.
637  
638 2004-07-12  Geoff Norton <gnorton@customerdna.com>
639
640         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
641           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
642           and will add/subtract the hour if needed
643
644 2004-07-12  Martin Baulig  <martin@ximian.com>
645
646         * reflection.c (mono_field_get_object): If we have
647         `field->generic_info', take the attributes from
648         `field->generic_info->generic_type'.    
649
650 2004-07-12  Martin Baulig  <martin@ximian.com>
651
652         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
653         This function must be called before initializing the runtime.
654         (mono_debug_init_1): New function; call this after initializing
655         the runtime, but before loading the assembly.  It tells the
656         debugger to load corlib and the builtin types.
657
658         * mono-debug-debugger.c: Did some larger changes in the debugging
659         code; support recursive class declarations, make sure we actually
660         add all classes.
661
662 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
663
664         * debug-helpers.c: undo my previous patch and fixed the real issue in
665         ../mini/exceptions-x86.c
666
667 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
668
669         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
670         when no HOME env. variable was set and a NullRef was thrown in a .cctor
671         called from other .cctors.
672
673 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
674
675         * loader.c: Removed the mono_loader_wine_init hack now that we are
676         doing a managed version of Windows.Forms.
677
678 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
679
680         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
681         threadpool.c, threads.c: remove static data from rootset.
682
683 2004-07-09  Dick Porter  <dick@ximian.com>
684
685         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
686         Don't do any more processing if the matched length was 0.  It was
687         increasing the size of the string before.  Fixes bug 61167.
688
689 2004-07-09  Dick Porter  <dick@ximian.com>
690
691         * socket-io.h:
692         * socket-io.c
693         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
694         Add support for SO_PEERCRED if its available.
695
696 2004-07-09  Peter Bartok <pbartok@novell.com>
697         * loader.c: winelib.exe.so error message is now only displayed if
698         MONO_DEBUG is set. To help us avoid questions when people are trying
699         out the new Managed.Windows.Forms.
700
701 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
702
703         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
704         for isinst and castclass wrappers.
705
706         * class-internals.h icall.c: Move registration and lookup of JIT icalls
707         to libmetadata from the JIT, so they could be used by the marshalling
708         code and the interpreter.
709
710         * marshal.c: Register marshalling related JIT icalls here instead of
711         in mini.c. Use CEE_MONO_ICALL instead of the family of 
712         CEE_MONO_PROC<x> opcodes to call marshalling functions.
713
714         * metadata.h: Remove unneeded marshalling conversions.
715
716         * opcodes.c: Update for new opcodes.
717         
718 2004-07-08  Martin Baulig  <martin@ximian.com>
719
720         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
721         (mono_debug_get_domain_data): Make this function static.
722
723 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
724
725         * gc.c, object.h: add nice GC handle API for embedders.
726
727 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
728
729         * reflection.c: more changes for the new api
730
731         * object.c: When we reflect on a field w/ a constant value, it
732         will not have a memory location, so we must access metadata. Also,
733         allow easier reading of strings so that we can read them from
734         the constant data.
735
736         * class.c (mono_class_layout_fields): no need for literal fields here.
737
738         * class-internals.h: api changes for const fields
739
740         * icall.c (ves_icall_get_enum_info): use new apis for const fields
741
742 2004-07-06  Martin Baulig  <martin@ximian.com>
743
744         * mono-debug.h: Increment version number to 44.
745
746         * mono-debug.c (mono_debug_add_wrapper): The second argument is
747         now a gpointer, rewrote this whole method.
748
749         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
750         function.  Add information about the wrapper in a new "misc table".
751
752         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
753         for the new misc table.
754
755 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
756
757         * metadata-internals.h image.c: Add a cache for helper signatures.
758
759         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
760
761 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
762
763         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
764         delegates from a delegate. Fixes #61033.
765         
766         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
767         marshalling of stringbuilder arrays. Fixes #59900.
768
769 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
770
771         * icall.c: Add EnumBuilder:setup_enum_type icall.
772
773 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
774
775         * icall.c: Added a new icall for the property version of
776         OffsetOfStringData.
777
778 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
779
780         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
781         it has a constant size across platforms.
782
783         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
784         stack trace.
785
786 2004-06-29  Martin Baulig  <martin@ximian.com>
787
788         * mono-debug.c (mono_debug_add_method): Protect the whole function
789         in mono_debugger_lock(), not just parts of it.
790
791 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
792
793         * reflection.c: make sure padding bytes in heaps are zeroed.
794
795 2004-06-24  David Waite  <mass@akuma.org>
796
797         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
798         image.c, loader.c, locales.c, marshal.c, metadata.c,
799         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
800         string-icalls.c, threads.c: change to C90-style comments from C99 /
801         C++ -style
802
803 2004-06-24  Dick Porter  <dick@ximian.com>
804
805         * threads.c
806         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
807         return createdNew.  Fixes bug 60412.
808
809         * threads-types.h: 
810         * icall.c: Add createdNew parameter to CreateMutex icall
811
812 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
813
814         * reflection.c, object-internals.h: save default value in params.
815
816 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
817
818         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
819         no need to build a new path combining that with the application base.
820         Fixes bug #60442.
821
822 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
823
824         * reflection.c: fixed minor standard compliance issues.
825
826 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
827
828         * reflection.c: fixed issue with encoding some custom attributes
829         (arrays in properties and fields, bug #60411).
830
831 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
832
833         * reflection.c: fix start address when copying the public key token.
834
835 2004-06-23  Martin Baulig  <martin@ximian.com>
836
837         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
838         the `exc' object in a static object to put it into the GC's root set.
839
840 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
841
842         * reflection.c: make mono_reflection_setup_internal_class ()
843         callable a second time to setup a new parent class.
844
845 2004-06-23  Dick Porter  <dick@ximian.com>
846
847         * threads.c: Check for WAIT_IO_COMPLETION return values.
848
849 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
850
851         * appdomain.c: Removed the g_free on the public key token. Now copy 
852         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
853         * assembly.c: Added public key token string value when loading 
854         assemblies. Fix bug #60439.
855         * icall.c: Added missing informations (like public key) in 
856         GetReferencedAssemblies. Fix #60519.
857         * image.h: Changed definition for public key token from const char*
858         public_tok_value to guchar public_key_token [17];
859         * reflection.c: Updated for changes to public key token.
860
861 2004-06-22  Lluis Sanchez Gual
862
863         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
864         for the field in base classes.
865
866 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
867
868         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
869         mark headers as not supported, they are installed only for use by the
870         debugger.
871
872 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
873
874         * *.c, *.h: avoid namespace pollution in public headers.
875
876 2004-06-21  Martin Baulig  <martin@ximian.com>
877
878         * exception.c (mono_get_exception_security): It's in
879         "System.Security", not in "System".
880
881         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
882         the exception classes.
883
884 2004-06-21  Martin Baulig  <martin@ximian.com>
885
886         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
887         Protect the exception object from being finalized.
888
889 2004-06-21  Martin Baulig  <martin@ximian.com>
890
891         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
892         public function.
893
894 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
895
896         * reflection.c: Load the assembly in mono_reflection_type_from_name,
897         if it was not loaded before. Fix parts of #60439.
898
899 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
900
901         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
902         code that was broken since Ben's change: wrappers are now
903         dependent on the method signature only again.
904
905 2004-06-21  Martin Baulig  <martin@ximian.com>
906
907         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
908         added interface support.
909
910 2004-06-21  Martin Baulig  <martin@ximian.com>
911
912         * class.c (mono_vtable_get_static_field_data): New public method.
913
914 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
915
916         * filewatcher.c : Windows build fix to be compliant with API changes.
917
918 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
919
920         * class.h, class.c: more accessors.
921         * metadata.h, metadata.c: prepare for hiding MonoType and
922         MonoMethodSignature: people should use the accessors from now on
923         outside of the tree.
924
925 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
926
927         * *.c, *.h: more API cleanups.
928
929 2004-06-18  Jackson Harper  <jackson@ximian.com>
930
931         * assembly.c: Trace loading assemblies.
932         * loader.c: Trace loading native libraries.
933         * mono-config.c: Trace loading config files.
934         
935 2004-06-18  Dick Porter  <dick@ximian.com>
936
937         * locales.c: Tell ICU the lengths of strings, it can cope with
938         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
939
940 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
941
942         * image.c: swapped name/filename;
943
944 2004-06-18  Martin Baulig  <martin@ximian.com>
945
946         * mono-debug-debugger.c (write_class): Write the parent class at
947         the end of the header.
948
949 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
950
951         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
952
953 2004-06-17  Raja R Harinath  <rharinath@novell.com>
954
955         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
956         (bundle_obj): New conditional define.
957         (BUILT_SOURCES): Remove.
958         ($(bundle_srcs)): Make parallel-make safe.
959         (libmonoruntime_la_LIBADD): Make unconditional.
960         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
961         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
962
963 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
964
965         * culture-info-tables.h: It was inconsistent with the latest
966           supp info files.
967
968 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
969
970         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
971         be loaded.
972
973         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
974         with gcc 2.95.
975
976 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
977
978         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
979         cleaned up public header threads.h.
980
981 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
982
983         * Makefile.am, *.c, *.h: more API cleanups.
984
985 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
986
987         * Makefile.am: removed monosn from compilation.
988         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
989         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
990         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
991         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
992         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
993         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
994
995 2004-06-15  Jackson Harper  <jackson@ximian.com>
996
997         * assembly.c: Make locales lower case when searching the GAC for
998         assemblies. gacutil will always make locales lowercase when
999         installing so this effectively makes them case insensitive.
1000         
1001 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
1002
1003         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
1004         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
1005           parameter which allows to choose whether the wait can be interrupted or 
1006           not. Also added the method mono_monitor_enter(), which locks the monitor
1007           using an infinite wait and without allowing interruption.
1008           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
1009           interrupted.
1010         * object.h: Added new fields in MonoThread. suspend_event holds the event
1011           used to susped/resume the thread. synch_lock is the lock object to use for
1012           modifying the thread state.
1013         * threads.c: Use the new synch_lock object for locking, instead of "this",
1014           which can generate deadlocks.
1015           Moved thread state change in Thread.Sleep and Thread.Join from managed
1016           to unmanaged code. This avoids a deadlock when the thread was suspended
1017           just after acquiring the thread lock.
1018           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
1019           Implemented Thread.Suspend using an event instead of ThreadSuspend,
1020           which is not fully implemented in the io-layer.
1021         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
1022
1023 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
1024
1025         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
1026         threads-types.h: more API cleanups.
1027
1028 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
1029
1030         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
1031         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
1032         threadpool.c, threads.c: first pass at the exported API cleanup.
1033
1034 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
1035
1036         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
1037
1038 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1039
1040         * icall.c: added internalGetHome.
1041
1042 2004-06-14  Dick Porter  <dick@ximian.com>
1043
1044         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
1045         possible to return successfully when '.' or '..' were the only
1046         entries in a directory, but were skipped.  The MonoIOStat was not
1047         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
1048         Fixes bug 59574.
1049
1050 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
1051
1052         * reflection.c: make binaries run on .Net 1.1 by default.
1053
1054 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
1055
1056         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
1057
1058 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
1059
1060         * marshal.c: keep track of struct size with explicit layout
1061         (bug #59979).
1062
1063 2004-06-12  Martin Baulig  <martin@ximian.com>
1064
1065         * mono-debug-debugger.c: Comment out a debugging g_message().
1066
1067 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
1068
1069         * reflection.c, reflection.h: do not free custom attrs that are cached.
1070         * icall.c: use braces to make code clearer.
1071
1072 2004-06-11  Martin Baulig  <martin@ximian.com>
1073
1074         * class.h (MonoInflatedField): New type.
1075         (MonoClassField): Replaced `MonoType *generic_type' with
1076         `MonoInflatedField *generic_info'.
1077
1078         * icall.c
1079         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
1080
1081 2004-06-11  Martin Baulig  <martin@ximian.com>
1082
1083         * reflection.c (mono_image_create_method_token): Correctly encode
1084         varargs methods.
1085
1086 2004-06-11  Martin Baulig  <martin@ximian.com>
1087
1088         * metadata.c (mono_metadata_parse_method_signature): When parsing
1089         a MethodDef which has VarArgs, also set sentinelpos if we don't
1090         have any parameters.
1091
1092 2004-06-11  Martin Baulig  <martin@ximian.com>
1093
1094         * verify.c (mono_method_verify): In CEE_CALL, use
1095         mono_method_get_signature() to get the method's signature, unless
1096         we're a PInvoke method.
1097
1098 2004-06-10  Jackson Harper  <jackson@ximian.com>
1099
1100         * assembly.c: Use <path>/lib/mono/gac for the extra paths
1101         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
1102         logical name as the supplied path is just a prefix to the gac not
1103         the direct path to it.
1104         
1105 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
1106
1107         * reflection.c: make the token for a created method match
1108         the token of the MethodBuilder it was created from
1109         (IKVM requires this behaviour now).
1110
1111 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
1112
1113         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
1114         reflection.c, socket-io.c: leak fixes.
1115
1116 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
1117
1118         * icall.c: handle sentinel pos in vararg methods in position different
1119         from 0.
1120
1121 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1122
1123         * culture-info-tables.h: freshly generated.
1124
1125 2004-06-09  Martin Baulig  <martin@ximian.com>
1126
1127         * loader.c (mono_get_method_constrained): Call `mono_class_init
1128         (constrained_class)'.   
1129
1130 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
1131
1132         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
1133         any methods. Fixes #59629.
1134
1135 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1136
1137         * culture-info-tables.h: reflecting locale-builder updates.
1138
1139 2004-06-08  Dick Porter  <dick@ximian.com>
1140
1141         * object.h:
1142         * locales.c: Fixed compile warnings, including a real bug in
1143         CompareInfo_internal_compare.
1144         
1145 2004-06-08  Dick Porter  <dick@ximian.com>
1146
1147         * locales.c
1148         (ves_icall_System_Globalization_CompareInfo_internal_index):
1149         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
1150         Double-check the resuls of usearches, because ICU currently
1151         ignores most of the collator settings here.  Fixes bug 59720.
1152         
1153 2004-06-08  Dick Porter  <dick@ximian.com>
1154
1155         * locales.c
1156         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
1157         Fix memory leak and segfault-causing typo.  No idea how this one
1158         lasted so long without being noticed.
1159
1160 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
1161
1162         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
1163         any methods. Fixes #59629.
1164
1165 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1166
1167         * assembly.c:
1168         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
1169         own the critical section before). Removed dead code (that's done
1170         in the preload hook).
1171
1172         (mono_assembly_load_with_partial_name): call the preload hook.
1173
1174 2004-06-08  Martin Baulig  <martin@ximian.com>
1175
1176         * metadata.c (mono_metadata_signature_alloc): Default
1177         `sentinelpos' to -1.
1178
1179         * reflection.c (mono_image_get_array_token): Likewise.
1180
1181 2004-06-08  Martin Baulig  <martin@ximian.com>
1182
1183         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
1184
1185         * metadata.c (mono_metadata_parse_method_signature): When parsing
1186         a MethodDef which has VarArgs, set sentinelpos.
1187
1188         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
1189         `gint16' since we're using -1 for non-varargs methods.
1190
1191         * reflection.c
1192         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
1193         (method_encode_signature): Added varargs support.
1194         (method_builder_encode_signature): Likewise.
1195         (mono_image_get_varargs_method_token): New static method.
1196         (mono_image_create_method_token): New public method; this is
1197         called via an icall instead of mono_image_create_token() when
1198         calling a varargs method.       
1199
1200 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
1201
1202         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
1203
1204 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1205
1206         * culture-info-tables.h : Reflecting the latest locale-builder that
1207           fixed empty array representation ({} to {0}).
1208
1209 2004-06-07  Jackson Harper  <jackson@ximian.com>
1210
1211         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
1212         looking up extra gac paths. This allows MONO_GAC_PATH to act
1213         exactly like a prefix.
1214         
1215 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
1216
1217         * reflection.c (mono_reflection_type_from_name): Make a copy of the
1218         type name before modifying it. Fixes #59405.
1219
1220 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
1221
1222         * culture-info.h: added fields for "all datetime patterns".
1223         * locales.c: (  ves_icall_System_Globalization_CultureInfo
1224           _construct_datetime_format ()): fill xxx_patterns fields.
1225         * object.h: added fields for "all datetime patterns" to
1226           MonoDateTimeFormatInfo.
1227         * culture-info-tables.h: reflecting locale-builder updates.
1228
1229 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
1230
1231         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
1232         the event has no add and remove methods. Fixes #59629.
1233
1234 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
1235
1236         * object.c: Fixed possible integer overflow when allocating large
1237         strings.
1238
1239 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
1240
1241         * culture-info-tables.h: reflecting locale-builder updates.
1242
1243 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
1244
1245         * culture-info-tables.h: reflecting locale-builder updates.
1246
1247 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
1248
1249         * culture-info-tables.h: reflecting locale-builder updates.
1250
1251 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
1252
1253         * threads.c: Made Thread.Sleep abortable.
1254
1255 2004-06-02  Martin Baulig  <martin@ximian.com>
1256
1257         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
1258
1259         * debug-mono-symfile.h: Bumped symbol file version number to 37.
1260
1261 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
1262
1263         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
1264
1265 2004-05-30  Jackson Harper  <jackson@ximian.com>
1266
1267         * reflection.c: Do not hardcode assembly versions or public key
1268         tokens anymore. All of this except the corlib section was dead
1269         code anyways.
1270         
1271 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
1272
1273         * object.c (mono_runtime_invoke_array): Automatically create boxed
1274         objects for byref valuetypes if needed. Fixes #59300.
1275         
1276         * object.c (mono_method_return_message_restore): Handle 
1277         MONO_TYPE_OBJECT as well.
1278
1279 2004-05-28  Jackson Harper  <jackson@ximian.com>
1280
1281         * reflection.c: The modified type encoding was causing build
1282         problems. Reverted for now.
1283         
1284 2004-05-28  Jackson Harper  <jackson@ximian.com>
1285
1286         * reflection.c/h: Take an assembly ref so that we dont create
1287         fully qualified names when encoding types in the same assembly as
1288         the custom attribute being emitted.
1289         * appdomain.c: Increment version number.
1290         
1291 2004-05-26  Duncan Mak  <duncan@ximian.com>
1292
1293         * icall.c
1294         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
1295         Set the full version number (major, minor, build, revision).
1296
1297 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
1298
1299         * marshal.c (emit_struct_conv): increment src/dst after blit
1300         (mono_marshal_get_managed_wrapper,
1301         mono_marshal_get_native_wrapper): make sure we have marshalling
1302         info before marshalling params (info computation affects
1303         blittable)
1304
1305         * class.c (class_compute_field_layout): correctly deal with
1306         blittable
1307         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
1308         value types (as per what windows dows by default)
1309         (mono_class_setup_mono_type): System.ValueType is blittable
1310         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
1311         blittable
1312
1313         * marshal.c (mono_marshal_load_type_info): flag types  as
1314         non-blittable if the native layout doesn't match the managed
1315         layout
1316
1317 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1318
1319         * appdomain.c: don't add stuff in the private search path that is
1320         above the application base. If application base is not set, there's
1321         no private search path.
1322
1323 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
1324
1325         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
1326         byref struct arguments in native->managed marshalling.
1327
1328 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
1329
1330         * marshal.c (mono_marshal_get_runtime_invoke): correctly
1331         cache methods using signature (special case for methods
1332         that are value type or string class)
1333         
1334         * image.c (mono_image_close): clean up allocated GSList's
1335         in runtime_invoke_cache.
1336
1337 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1338
1339         * mono-config.c: set the correct path for mono_cfg_dir on windows when
1340         there's no MONO_CFG_DIR environment variable defined.
1341
1342 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1343
1344         * threads.c: windows version must be >= 0x0500 to include OpenThread.
1345
1346 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
1347
1348         * threadpool.c: Really wait for 500ms after the async call, even if the wait
1349           is interrumped.
1350         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
1351           before waiting for it, and call CloseHandle after the wait to unref it.
1352           This will make sure that handles are not disposed too early.
1353
1354 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1355
1356         * appdomain.c:
1357         * appdomain.h:
1358         * icall.c: removed
1359         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
1360         needed now.
1361
1362         * object.c: se the application_base only for the domain that runs
1363         Main. Fixes bug #59216,
1364
1365 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1366
1367         * appdomain.c:
1368         * object.c: only the domain in which Main is run have
1369         SetupInformation.ConfigurationFile set, so moved a few lines from
1370         appdomain.c to object.c.
1371
1372 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1373
1374         * appdomain.c: we tried to load [name].(dll|exe), but according
1375         to bug #57710, we must also try [culture]/[name].(dll|exe) and
1376         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
1377         There's a test case attached to bug #58922.
1378
1379 2004-05-27  Dick Porter  <dick@ximian.com>
1380
1381         * icall.c:
1382         * file-io.c: Implemented icalls for locking and unlocking regions
1383         in a file.
1384         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
1385         FALSE on error (fixes both compiler warning and real bug.)
1386
1387 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
1388
1389         * culture-info-tables.h: reflecting locale-builder updates.
1390
1391           (Added missing ChangeLog entry for 05/26)
1392
1393 2004-05-27  Jackson Harper  <jackson@ximian.com>
1394
1395         * locales.c: Fix some cut and paste errors.
1396         
1397 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1398
1399         * mono-config.c: set the correct path for config. directory on windows.
1400
1401 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1402
1403         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
1404           on win32.
1405
1406 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
1407
1408         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
1409         from pinvoke functions.
1410         
1411         * marshal.c (mono_ftnptr_to_delegate): Implement this.
1412
1413 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
1414
1415         * culture-info-tables.h: reflecting locale-builder updates.
1416
1417 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
1418
1419         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
1420         #59086.
1421
1422 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
1423
1424         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
1425         * icall.c: Modified icalls for RNG.
1426         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
1427         Windows (CryptoAPI).
1428
1429 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
1430
1431         * locales.c: Fix build.
1432
1433 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
1434
1435         * culture-info-tables.h: reflecting locale-builder updates.
1436
1437 2004-05-25  Jackson Harper  <jackson@ximian.com>
1438
1439         * locales.c: When creating the current culture use the $LANGs
1440         specific culture. So DateTimeFormat and NumberFormat entries are created.
1441         
1442 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
1443
1444         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
1445         a char array as parameter.
1446
1447 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
1448
1449         * image.c: In mono_image_open(), always use an absolute path name to
1450           look for already loaded images.
1451
1452 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
1453
1454         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
1455         missing in the windows build (like older cygwin include files).
1456
1457 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
1458
1459         * icall.c: Fixed check for possible integer overflow in Buffer_
1460         BlockCopy icall. Replaced comments style // by /* */.
1461
1462 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
1463
1464         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
1465         
1466         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
1467         check after MONO_VTADDR. Fixes pinvoke2.exe.
1468
1469         * marshal.h marshal.c metadata.h: Add beginnings of support for
1470         ftnptr -> delegate marshalling.
1471
1472 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
1473
1474         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
1475         * threads.c: Fix warnings.
1476
1477 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
1478
1479         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
1480         * icall.c: Registered icalls for Suspend and Resume.
1481         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
1482           Thread.Abort.
1483         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
1484         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
1485         * process.c: Use WaitForSingleObjectEx.
1486         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
1487           checkpoints.
1488         * threads.c, threads.h: Make use of new Ex wait methods. Improved
1489           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
1490           for Suspend and Resume. Added new mono_thread_stop, used for stoping
1491           background threads. Added basic support for Abort in Windows.
1492           Start new threads using a managed delegate invoke wrapper. This wrapper
1493           has an interruption checkpoint that is needed since an interruption
1494           can be requested before the thread leaves the unmanaged code that starts 
1495           the thread.
1496         * marshal.c: Added interruption checkpoint after every native call, and
1497           also before managed calls for wrappers called from unmanaged code to
1498           go into managed code.
1499         * object.h: Added new field in MonoThread to keep track of interruption
1500           requests.
1501
1502 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
1503
1504         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
1505         calls.
1506
1507 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1508
1509         * appdomain.c:
1510         * assembly.c:
1511         * gc.c:
1512         * locales.c:
1513         * mono-config.c:
1514         * rand.c: getenv -> g_getenv (windows!)
1515
1516         * process.c: complete_path is also used on non-windows platforms.
1517
1518 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1519
1520         * icall.c: new signature for Process_Start.
1521
1522         * process.[ch]: new signature for Process_Start. If we're on windows
1523         and UseShellExecute is false, we have to search for the program by
1524         ourselves if we don't get a full path.
1525
1526 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
1527
1528         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
1529         marshalling and call CleanUpNativeData if needed. Fixes #58646.
1530
1531 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1532
1533         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
1534         Fixes bug #58373.
1535
1536 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1537
1538         * process.c: use double quotes to quote program name and arguments on
1539         windows. Fixes bug #58575.
1540
1541 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1542
1543         * file-io.c: don't return "." and ".." when using windows Find*File.
1544
1545 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
1546
1547         * marshal.c: Don't pass wrappers to message init because method 
1548         addressed used to lookup metadata. part of remoting[2|3] fix.
1549
1550 2004-05-15  Jackson Harper  <jackson@ximian.com>
1551
1552         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
1553         path is essentially the same as MONO_PATH except that it points to
1554         GACs instead of lib directories.
1555         * loader.h: The user gac is gone so we dont need function to
1556         enable/disable it.
1557         * mono-config.c: user gac option is now gone.
1558         
1559 2004-05-15  Jackson Harper  <jackson@ximian.com>
1560
1561         * culture-info.h: Make defines more consistent, add calendar data
1562         to the culture info table.
1563         * culture-info-tables.h: Add basic calendar data. Basically
1564         everyone gets default gregorian until all the data is
1565         updated.
1566         * locales.c: Use the new consistent defines. Set calendar data for
1567         culture info objects.
1568         * object.h: add a field for calendar data to CultureInfo
1569         
1570 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
1571
1572         * image.c: image->runtime_invoke_cache is keyed on signatures now.
1573         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
1574         a signature.
1575         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
1576         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
1577         an extra param that is the pointer of the method to invoke. The IL for
1578         the invoke method is no longer specific to the method, but to the
1579         signature of the method. Thus, we can share the same code for multiple
1580         methods. This reduces the number of methods that have to be compiled.
1581
1582 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
1583
1584         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
1585
1586         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1587
1588         * icall.c: Optimize Buffer.BlockCopy.
1589
1590 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1591
1592         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
1593         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
1594         quote). Changed them to "MMMM yyyy".
1595
1596 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
1597
1598         * rand.c
1599         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
1600
1601 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
1602
1603         * reflection.h: Updated after changes to managed structures.
1604
1605         * appdomain.c: Bump corlib version.
1606
1607 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1608
1609         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
1610         windows.
1611
1612 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1613
1614         * Makefile.am: link to ../os/libmonoos.la on windows.
1615
1616         * assembly.c:
1617                 -If MONO_DEBUG, warn about non-existing directories in
1618                 MONO_PATH.
1619                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
1620                 compile time variable.
1621                 -Removed init_default_path and call mono_set_rootdir from
1622                 libmonoos.a instead (windows only).
1623
1624         * assembly.h: declare mono_assembly_getrootdir().
1625
1626         * domain.c:
1627         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
1628
1629         * loader.c: s/getenv/g_getenv/
1630
1631 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
1632
1633         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
1634
1635         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
1636
1637         * metadata.h: Add new marshalling conversions.
1638
1639         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
1640         function.
1641
1642         * reflection.c (mono_reflection_get_type): Lookup the type in all
1643         modules of a multi-module assembly. Fixes #58291.
1644
1645 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
1646
1647         * threads.c: Before aborting a background, set the StopRequested
1648         state.  This avoids throwing the Abort exception.
1649         In mono_thread_manage, don't continue with the shutdown until all
1650         aborted threads have actually stopped.
1651
1652 2004-05-10  Jackson Harper  <jackson@ximian.com>
1653
1654         * locales.c: Remove the modifier from culture names.
1655         
1656 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1657
1658         * Makefile.am: monosn is not installed any more. It has been deprecated
1659         in favor of sn.
1660
1661 2004-05-07  Jackson Harper  <jackson@ximian.com>
1662
1663         * locales.c
1664         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
1665         Fix array construction, add bailout if the length is 0.
1666
1667 2004-05-07  Dick Porter  <dick@ximian.com>
1668
1669         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
1670         machine doesn't have a DNS entry.  Patch by Urs Muff
1671         (umuff@quark.com), fixes bug 57928.
1672
1673 2004-05-06  Jackson Harper  <jackson@ximian.com>
1674
1675         * reflection.c: Handle null PublicTokens properly. alloc mem for
1676         assembly names culture so we dont crash when freeing it.
1677         
1678 2004-05-06  Jackson Harper  <jackson@ximian.com>
1679
1680         * assembly.c: Check the usergac when loading with partial names.
1681         
1682 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
1683
1684         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
1685         does nothing for now (not required for Linux/Windows) but the class
1686         library can call it (and a newer or modified runtime could need it).
1687         * icall.c: Registred icall.
1688
1689 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1690
1691         * loader.c: prints a message on module loading error we set MONO_DEBUG
1692         environment variable.
1693
1694 2004-05-05  Jackson Harper  <jackson@ximian.com>
1695
1696         * appdomain.c: Handle PublicKeyToken=null properly.
1697         
1698 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
1699
1700         * environment.c|h: Added icall ves_icall_System_Environment_
1701         GetOSVersionString to get the current OS version as a string.
1702         * icall.c: Registred icall.
1703
1704 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
1705
1706         * object.c: in mono_object_get_virtual_method(), take into account that
1707         non-virtual methods don't have a slot in the vtable. Check needed when
1708         the object is a proxy.
1709
1710 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
1711
1712         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
1713         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
1714
1715         * object.c (mono_class_compute_gc_descriptor): Fix warning.
1716
1717         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
1718         passed when a valuetype is expected.
1719
1720         * object.c (mono_unhandled_exception): Only set the exit code if the
1721         exception happens in the main thread. Fixes thread5.exe.
1722
1723         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
1724         invalid names. Fixes #58047.
1725
1726 2004-05-03  Jackson Harper  <jackson@ximian.com>
1727
1728         * assembly.c: This line was committed accidently and is unneeded.
1729         
1730 2004-05-03  Jackson Harper  <jackson@ximian.com>
1731
1732         * icall.c: Add new icall for Assembly::LoadWithPartialName
1733         * assembly.c/.h: new function that probes the GAC to load partial
1734         assembly names by Paolo Molaro.
1735         
1736 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1737
1738         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
1739         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
1740         (type_get_fully_qualified_name): Added PublicKeyToken when building a
1741         full type name.
1742
1743 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1744
1745         * appdomain.c: fixed check for 'neutral' culture and removed warning.
1746         * reflection.c: fix bug when parsing a full type name and Version is not
1747         the last thing in the string.
1748
1749 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
1750
1751         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
1752         crashes when it is freed.
1753
1754 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1755
1756         * assembly.c: print the compat warning to stderr.
1757
1758 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
1759
1760         * assembly.c (mono_assembly_load_references): Add a compatibility
1761         hack to run old applications that might be still referencing the
1762         3300-based assemblies, only do this for System.xxx.
1763
1764 2004-05-01  Jackson Harper  <jackson@ximian.com>
1765
1766         * appdomain.c: If the culture is neutral we set it to "".
1767         
1768 2004-04-29  Jackson Harper  <jackson@ximian.com>
1769
1770         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
1771
1772 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1773  
1774         * string-icalls.c: added low overhead function for copying chars
1775         * icall.c: added needed icall for the above function
1776  
1777 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1778
1779         * icall.c: fix return value of get_global_assembly_cache.  Implemented
1780         Environment.GetLogicalDrives.
1781
1782 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
1783
1784         * rand.c: try and talk to egd or prngd
1785         for random bytes if opening devices fail.
1786
1787 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
1788
1789         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
1790         alignment for the type using the native alignment of its members 
1791         instead of using klass->min_align.
1792
1793         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
1794
1795 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1796
1797         * file-io.c:
1798         * socket-io.c: added check for sys/aio.h.
1799
1800 2004-04-28  Dick Porter  <dick@ximian.com>
1801
1802         * threads.c: Don't abort a thread thats already aborting, when
1803         terminating everything.
1804
1805 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1806
1807         * icall.c: added 2 new async calls for Socket.
1808
1809         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
1810         IO on *nix systems.
1811
1812         * threadpool.c: removed unused variable.
1813
1814 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
1815
1816         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
1817
1818 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
1819
1820         * locales.c: put back string_invariant_tolower () and
1821         string_invariant_toupper ().
1822
1823 2004-04-26 David Waite <mass@akuma.org>
1824
1825         * file-io.h:
1826         * socket-io.h:
1827         * threads.h:
1828         * unicode.h: remove comma from end of enumeration declarations
1829
1830 2004-04-26 David Waite <mass@akuma.org>
1831
1832         * debug-mono-symfile.h:
1833         * decimal.c:
1834         * mono_debug.h:
1835         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
1836
1837
1838 2004-04-26  Jackson Harper  <jackson@ximian.com>
1839
1840         * appdomain.c: Increment version number.
1841         
1842 2004-04-26  Jackson Harper  <jackson@ximian.com>
1843
1844         * appdomain.c: Set assembly references public token value when
1845         PublicKeyToken is specified, not the hash_value. Free public token
1846         values when free assembly name data. Previously the public key
1847         token was hex decoded, however we are using hex encoded public key
1848         tokens, so this is not neccasary.
1849         * assembly.c: Lookup assemblies in the gac if their public token
1850         value is set. Add function to allow enabling user gac
1851         lookups. Specify whether or not the assembly was loaded from the
1852         GAC. Compare full assembly names when checking the cache for
1853         assemblies (Temporarily disabled see comment in code). Remove
1854         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
1855         specifies trace-loader they get extra info to stdout on the
1856         loading of assemblies.
1857         * image.h: Add a field for an assembly references public token
1858         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
1859         whether an assembly has been loaded from the GAC.
1860         * image.c: Remove a corlib -> mscorlib name mapping.
1861         * loader.h: Add function to enable/disable the user gac.
1862         * mono-config.c: Check if the usergac is enabled in the config
1863         file.
1864         * icall.c: New icall to determine whether or not an assembly has
1865         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
1866         * tabldefs.h: Add constant for assemblyref flag that specifies a
1867         full public key is used instead of a public token.
1868         * reflection.c: Remove mscorlib -> corlib mappings. Set
1869         PublicTokenValue instead of hash value. This value is a hex
1870         string so it does not need to be expanded.
1871
1872 2004-04-26  Martin Baulig  <martin@ximian.com>
1873
1874         * mono-debug-debugger.c (mono_debugger_initialize): Set
1875         `mono_debugger_initialized' before calling mono_debug_lock().
1876
1877 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
1878
1879         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
1880           InternalToUpper/InternalToLower.
1881         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
1882           removed invariant culture shortcut.  This is now done in managed code.
1883         * locales.c: (string_invariant_toupper/tolower) removed.
1884
1885 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1886
1887         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
1888         Added Poll internal call.
1889
1890         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
1891         call for Poll. Select was too heavy for polling a single socket.
1892
1893         * threadpool.[ch]: added mono_threadpool_cleanup.
1894         * threads.c: use it. Don't use Thread_Abort on windows.
1895
1896 2004-04-23  Martin Baulig  <martin@ximian.com>
1897
1898         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
1899
1900 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
1901
1902         * icall.c: Registred new icalls for key pair protection and added an
1903         icall for Environment.GetFolderPath on Windows.
1904         * security.c|h: Added new icalls for key pair protection.
1905
1906 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1907
1908         * socket-io.c: don't display the non-supported family warning for known
1909         families. Now this is not displayed on windows when checking support
1910         for IPv4/IPv6.
1911
1912 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1913
1914         * class.c: don't display the layout warning for static fields.
1915
1916 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
1917
1918         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
1919         * locales.c, locales.h: Added new icalls for culture-specific
1920         Char.ToLower and Char.ToUpper.
1921
1922 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1923
1924         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
1925         by David Waite.
1926
1927 2004-04-20  Martin Baulig  <martin@ximian.com>
1928
1929         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
1930         of the type name before passing it to mono_reflection_type_from_name().
1931
1932 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
1933
1934         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
1935         encodings here. Fixes #56965.
1936
1937 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
1938
1939         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
1940         fix test on strstr result not that I can see anything that
1941         relies on the result.
1942
1943 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
1944
1945         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
1946         Fixes #57081.
1947
1948         * marshal.c (mono_marshal_get_string_encoding): New helper function.
1949
1950         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
1951         function to determine which marshalling to use for strings. Fixes
1952         #56965.
1953
1954         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
1955
1956         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
1957
1958 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
1959
1960         * icall.c: #include mono-config.h
1961
1962 2004-04-15  Jackson Harper  <jackson@ximian.com>
1963
1964         * culture-info-tables.h: Fix date formats for en-US culture.
1965         
1966 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
1967
1968         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
1969         ThreadPool.SetMinThreads.
1970         * threadpool.c: Implemented ThreadPool.GetMinThreads and
1971         ThreadPool.SetMinThreads.
1972
1973 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
1974
1975         * mono-config.c: also load the .config file in the directory
1976         where the assembly was found.
1977
1978 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
1979
1980         * assembly.c: load per-assembly config files.
1981         * icall.c: decrapified code to get the config dir and moved to
1982         mono-config.c.
1983         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
1984         per-assembly config files. When doing a dll map lookup give precedence
1985         to the per-assembly data.
1986
1987 2004-04-14  Martin Baulig  <martin@ximian.com>
1988
1989         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
1990         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
1991         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
1992
1993         * mono-debugger-debugger.c: While the debugger is locked, remember
1994         whether the symbol tables have changes and send one single
1995         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
1996
1997 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
1998
1999         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
2000
2001         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
2002         function.
2003
2004         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
2005         account when marshalling string arrays. Fixes #56965.
2006
2007 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
2008
2009         * icall.c: Add new icalls mapping for security.
2010         * security.c|h: Add internal calls for WindowsIdentity,
2011         WindowsImpersonationContext and WindowsPrincipal.
2012
2013 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
2014
2015         * class.c: Added comment to ensure the System.MonoDummy class
2016         is removed when no longer necessary
2017
2018 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
2019
2020         * appdomain.c: Pass arguments to the bootstraping exceptions to
2021         minimize JITed methods at boot
2022
2023         * metadata.c (mono_exception_from_name_two_strings): Allow for the
2024         second string to be null.
2025
2026         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
2027         Change the protocol to minimize the JIT methods at startup.  Now
2028         it Returns the internal codepage, if the value of "int_code_page"
2029         is 1 at entry, and we can not compute a suitable code page
2030         number, returns the code page as a string.
2031
2032 2004-04-13  Jackson Harper  <jackson@ximian.com>
2033
2034         * culture-info-tables.h: Fix number of decimal digits for all
2035         english locales.
2036
2037 2004-04-13  Jackson Harper  <jackson@ximian.com>
2038
2039         * icall.c: Clairfy out of sync error message. It is not always
2040         your corlib that is out of sync.
2041
2042 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
2043
2044         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
2045         properties when only the set accessor is overriden. Fixes #55874.
2046
2047 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
2048
2049         * assembly.c (mono_assembly_load_references): Make this thread safe.
2050         Fixes #56327.
2051
2052 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
2053
2054         * monosn.c: Add missing initialization calls.
2055
2056 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
2057
2058         * locales.c:
2059         ves_icall_System_Globalization_CultureInfo_construct_number_format
2060         Fix g_assert so it compiles on fussier compilers re int/ptr
2061         mismatch
2062
2063 2004-04-08  Dick Porter  <dick@ximian.com>
2064
2065         * socket-io.h:
2066         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
2067         53992.  Also rearrange the code so that the internal calls return
2068         an error value and exceptions are thrown from managed code.
2069
2070         * icall.c: Add type info to the socket icalls.
2071
2072 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2073
2074         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
2075         owes me a beer.
2076
2077 2004-04-07  Martin Baulig  <martin@ximian.com>
2078
2079         * class.c (mono_class_from_generic_parameter): Don't default
2080         `klass->parent' to `mono_defaults.object_type'.
2081
2082 2004-04-07  Martin Baulig  <martin@ximian.com>
2083
2084         * reflection.c (mono_reflection_initialize_generic_parameter): Set
2085         `param->pklass->reflection_info'.       
2086
2087 2004-04-07  Jackson Harper  <jackson@ximian.com>
2088
2089         * culture-info-tables.h: Fix date separator symbol.
2090         
2091 2004-04-07  Martin Baulig  <martin@ximian.com>
2092
2093         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
2094         from System.Type to System.MonoType.
2095
2096 2004-04-07  Martin Baulig  <martin@ximian.com>
2097
2098         * reflection.h
2099         (MonoReflectionGenericParam): Added `has_reference_type' and
2100         `has_value_type' fields.
2101
2102         * reflection.c (mono_image_get_generic_param_info): Encode the
2103         correct flags if we have the `class' or `struct' constraint.
2104
2105 2004-04-07  Martin Baulig  <martin@ximian.com>
2106
2107         * reflection.h
2108         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
2109
2110 2004-04-07  Jackson Harper  <jackson@ximian.com>
2111
2112         * appdomain.c: Revert extra patches, just wanted to bump the
2113         version number.
2114         
2115 2004-04-07  Jackson Harper  <jackson@ximian.com>
2116
2117         * Makefile.am: Add culture-info private headers.
2118         * icall.c: Add new icalls for contructing locales.
2119         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
2120         * locales.h: Declare new culture info construction methods.
2121         * object.h: Add new fields used to avoid the CultureMap to
2122         MonoCultureInfo.
2123         * culture-info.h: Definition of structs used in the culture info
2124         tables.
2125         * culture-info-tables.h: Autogenerated tables that contain culture
2126         info data. This file was generated with the locale-builder tool.
2127         * appdomain.c: Incement corlib version number.
2128         
2129 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
2130
2131         * appdomain.c: (mono_runtime_init) move mono_thread_init
2132         to before mono_object_new calls so critical sections
2133         are initialized before use.
2134
2135 2004-04-07  Martin Baulig  <martin@ximian.com>
2136
2137         * icall.c
2138         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
2139         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
2140         (ves_icall_MonoGenericParam_initialize): Removed.
2141         (monogenericparam_icalls): Removed.
2142         (generictypeparambuilder_icalls): Added new table for
2143         System.Reflection.Emit.GenericTypeParameterBuilder.
2144
2145         * reflection.c
2146         (mono_reflection_define_generic_parameter): Removed.
2147         (mono_reflection_initialize_generic_parameter): This is now called
2148         from GenericTypeParameterBuilder's .ctor.
2149
2150 2004-04-06  Martin Baulig  <martin@ximian.com>
2151
2152         * class.c (mono_class_init): Don't inflate nested classes in a
2153         generic instance.
2154         (mono_type_get_name_recurse): Include the generic arguments for
2155         generic instances and generic type declarations.
2156         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
2157         (_mono_class_get_instantiation_name): Removed.
2158         (mono_class_create_generic): Always use `gklass->name' as our name.
2159
2160         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
2161
2162         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
2163         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
2164         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
2165         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
2166         closed generic methods here.
2167
2168         * reflection.c
2169         (mono_reflection_generic_inst_get_nested_types): Removed.
2170         (inflate_mono_method): Copy the generic parameters from the
2171         MonoMethodHeader into out MonoGenericMethod.
2172
2173 2004-04-06  Martin Baulig  <martin@ximian.com>
2174
2175         * row-indexes.h
2176         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
2177
2178         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
2179
2180         * reflection.c (build_compressed_metadata): If we have any entries
2181         in the GenericParam, MethodSpec or GenericParamConstraint tables,
2182         set the header version to 1.1.
2183
2184 2004-04-06  Martin Baulig  <martin@ximian.com>
2185
2186         * class.c (mono_class_init): If we're a generic instance,
2187         initialize our nested classes, too.
2188         (_mono_class_get_instantiation_name): Deal with the new `!%d'
2189         suffix. 
2190
2191 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2192
2193         * process.c: quote the argument passed to the shell on windows.
2194
2195 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
2196
2197         * threads.c (mono_alloc_special_static_data): Allow this to be
2198         called during startup.
2199
2200 2004-04-02  Martin Baulig  <martin@ximian.com>
2201
2202         * icall.c
2203         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
2204
2205 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
2206
2207         * icall.c: Fix build.
2208
2209 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
2210
2211         * Makefile.am: Added security.c|h.
2212         * icall.c: Added icall for get_UserName;
2213         * security.c: New file for security related icalls. Added function
2214         get_UserName for System.Environment (fix #56144).
2215         * security.h: New. Header file for security.c
2216
2217 2004-04-02  Dick Porter  <dick@ximian.com>
2218
2219         * icall.c: Deleted the icalls that were obsoleted some time ago
2220         by the ICU string code, and which were mixed into the icall
2221         rearranging.  Fixes bug 55969.
2222
2223         * string-icalls.h: 
2224         * string-icalls.c: Deleted the code that those icalls reference.
2225
2226 2004-04-01  Martin Baulig  <martin@ximian.com>
2227
2228         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
2229
2230         * class.c (mono_class_from_generic_parameter): Don't set 
2231         TYPE_ATTRIBUTE_INTERFACE.
2232         (my_mono_class_from_generic_parameter): Likewise.
2233
2234 2004-04-01  Martin Baulig  <martin@ximian.com>
2235
2236         * loader.c (find_method): Added an optional `MonoClass *ic'
2237         argument to search in a specific interface.
2238         (mono_get_method_constrained): New public function.
2239
2240 2004-04-01  Martin Baulig  <martin@ximian.com>
2241
2242         * reflection.c (mono_image_get_generic_field_token): Use the
2243         `handleref' cache here.
2244
2245 2004-04-01  Martin Baulig  <martin@ximian.com>
2246
2247         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
2248
2249         * reflection.c (create_generic_typespec): Use the `typespec' hash
2250         here, not the `typeref' one.    
2251
2252 2004-04-01  Martin Baulig  <martin@ximian.com>
2253
2254         * class.c (mono_class_inflate_generic_type): Moved the
2255         functionality into a new static inflate_generic_type() which
2256         returns NULL if it didn't do anything.  Only increment the
2257         `mono_stats.inflated_type_count' if we actually inflated
2258         something.
2259         (mono_class_get_full): Check the classes type to see whether we
2260         need to inflate it; also inflate MONO_TYPE_(M)VAR.
2261
2262 2004-04-01  Jackson Harper  <jackson@ximian.com>
2263
2264         * reflection.c: Set culture for assembly references.
2265         
2266 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
2267
2268         * reflection.[ch], icall.[ch], Fix support for pinning variables.
2269
2270 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2271
2272         * assembly.c:
2273         (do_mono_assembly_open): the critical section also covers
2274         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
2275
2276 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2277
2278         * threads.c:
2279         (mono_manage_threads): abort the background threads when finishing.
2280         Fixes bug #47232.
2281
2282 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2283
2284         * gc.c: only close the done_event handle if there was no timeout.
2285         C-ified comments.
2286
2287 2004-03-30  Martin Baulig  <martin@ximian.com>
2288
2289         * icall.c (icall_entries): It's called "System.Activator", not
2290         "System.Activation".    
2291
2292 2004-03-30  Martin Baulig  <martin@ximian.com>
2293
2294         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
2295         (mono_class_create_from_typespec): Likewise.
2296
2297 2004-03-30  Martin Baulig  <martin@ximian.com>
2298
2299         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
2300         `has_ctor_constraint' and `initialized'.
2301
2302 2004-03-30  Martin Baulig  <martin@ximian.com>
2303
2304         * reflection.c (encode_new_constraint): New static function to add
2305         the constructor constraint attribute to a type parameter.
2306         (encode_constraints): Call encode_new_constraint() if necessary.
2307
2308         * reflection.h
2309         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
2310
2311         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
2312         
2313 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
2314
2315         * reflection.c, icall.c: add support for pinning variables. 
2316
2317 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
2318
2319         * marshal.c (mono_marshal_get_managed_wrapper):
2320         init bool local with zero rather than null.
2321
2322 2004-03-29  Martin Baulig  <martin@ximian.com>
2323
2324         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
2325         the "official" behavior here.
2326         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
2327
2328 2004-03-29  Martin Baulig  <martin@ximian.com>
2329
2330         * icall.c: Reflect latest API changes.
2331
2332 2004-03-29  Martin Baulig  <martin@ximian.com>
2333
2334         * loader.c (mono_get_method_from_token): Also call
2335         mono_metadata_load_generic_params () for abstract and interface
2336         methods; replace the type arguments in the method signature with
2337         the ones which are loaded from the metadata.
2338
2339 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
2340
2341         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
2342         of the lock is not the current thread. MS.NET don't do it, in spite of
2343         what the documentation says. See bug #56157.
2344
2345 2004-03-28  Martin Baulig  <martin@ximian.com>
2346
2347         * class.c (mono_class_init): Don't call init_properties() and
2348         init_events() for generic instances; set `prop->parent' when
2349         inflating properties.
2350
2351         * reflection.c (mono_generic_inst_get_object): Call
2352         `mono_class_init (ginst->klass)'.
2353         (mono_type_get_object): Only create a MonoGenericInst if your
2354         generic type is a TypeBuilder.
2355         (do_mono_reflection_bind_generic_parameters): Only set
2356         `ginst->is_dynamic' if our generic type is a TypeBuilder.
2357
2358 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
2359
2360         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
2361         Fixes #56091.
2362
2363 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2364
2365         * icall.c: added Kill_internal icall.
2366         * process.[ch]: added Kill_internal icall.
2367
2368 2004-03-25  Martin Baulig  <martin@ximian.com>
2369
2370         * class.h (MonoStats): Added `generic_instance_count',
2371         `inflated_method_count', `inflated_type_count' and
2372         `generics_metadata_size'.       
2373
2374 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2375
2376         * reflection.c: no warnings now.
2377
2378 2004-03-25  Martin Baulig  <martin@ximian.com>
2379
2380         * class.c (mono_class_get_full): New public function; does a
2381         mono_class_get(), but also takes a `MonoGenericContext *'.
2382
2383         * loader.c (mono_field_from_memberref): Renamed to
2384         `field_from_memberref', made static and added `MonoGenericContext *'
2385         argument.
2386         (mono_field_from_token): Added `MonoGenericInst *' argument.
2387         (method_from_memberef): Likewise.
2388         (mono_get_method_from_token): Likewise.
2389         (mono_get_method_full): New public function; does a
2390         mono_get_method(), but also takes a `MonoGenericContext *'.
2391
2392         * verify.c (mono_method_verify): Get the method's generic context
2393         and pass it to mono_field_from_token(), mono_get_method_full() and
2394         mono_class_get_full().
2395
2396 2004-03-25  Martin Baulig  <martin@ximian.com>
2397
2398         * class.c (mono_class_inflate_generic_type): Take a
2399         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
2400         `MonoGenericMethod *'.
2401
2402 2004-03-25  Martin Baulig  <martin@ximian.com>
2403
2404         * loader.h (MonoMethodInflated): Store the MonoGenericContext
2405         instead of the MonoGenericMethod here.
2406
2407 2004-03-25  Martin Baulig  <martin@ximian.com>
2408
2409         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
2410         each time we create a new MonoGenericInst, we also create a new
2411         context which points back to us.
2412
2413         * class.c (inflate_method): Use `ginst->context' instead of
2414         creating a new context.
2415
2416         * loader.c (method_from_memberref): Use
2417         `klass->generic_inst->context' instead of creating a new context.
2418
2419 2004-03-25  Martin Baulig  <martin@ximian.com>
2420
2421         * class.h (MonoGenericContext): New struct.
2422         (MonoGenericMethod): Removed `generic_inst'.
2423
2424         * class.c (mono_class_inflate_generic_method): Take a
2425         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
2426
2427 2004-03-25  Martin Baulig  <martin@ximian.com>
2428
2429         * loader.h (MonoMethodInflated): New typedef.
2430
2431         * metadata.h (MonoMethodSignature): Removed `gen_method', make
2432         `generic_param_count' consume just 30 bits, added `is_inflated'
2433         and `has_type_parameters' flags (one bit each).
2434
2435         * class.c (mono_class_inflate_generic_method): Create a
2436         MonoMethodInflated instead of a MonoMethodNormal and set
2437         `is_inflated' in the method signature.
2438
2439         * class.h (MonoGenericMethod): Removed `generic_method'.
2440
2441 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
2442
2443         * image.c: Make sure the name of a MonoImage is always an absolute path.
2444           This fixes bug #54415.
2445
2446 2004-03-24  Martin Baulig  <martin@ximian.com>
2447
2448         * class.c (mono_class_setup_vtable): If we're a generic instance,
2449         use our generic type's vtable size.
2450
2451 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
2452
2453         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
2454         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
2455         problems.
2456
2457 2004-03-23  Martin Baulig  <martin@ximian.com>
2458
2459         * class.h (MonoDynamicGenericInst): Added `int count_events' and
2460         `MonoEvent *events'.
2461
2462         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
2463         (typebuilder_icalls): Added "get_event_info"; calls
2464         mono_reflection_event_builder_get_event_info(). 
2465
2466         * reflection.c (mono_reflection_generic_inst_initialize): Added
2467         `MonoArray *events'.
2468         (mono_reflection_event_builder_get_event_info): New function.
2469
2470 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
2471
2472         * object.h: add mono_type_initialization_init
2473
2474         * object.c (mono_runtime_class_init): 
2475         implement class constructor synchronization rules
2476         to cope with threading issues.  
2477         add mono_type_initialization_init
2478
2479         * appdomain.c (mono_runtime_init): call 
2480         mono_type_initialization_init
2481
2482         * class.h: removing initializing field from MonoVTable
2483
2484 2004-03-23  Martin Baulig  <martin@ximian.com>
2485
2486         * class.c (my_mono_class_from_generic_parameter): Use
2487         `param->name' if it's not NULL. 
2488
2489 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
2490
2491         * class.c: do not insert non-virtual methods in the vtable.
2492         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
2493         that means the method is non-virtual. This never would have
2494         happened before.
2495
2496 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
2497
2498         * profiler.c: Added lock for accessing coverage_hash.
2499
2500 2004-03-22  Martin Baulig  <martin@ximian.com>
2501
2502         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
2503         `method->method->signature->generic_param_count != 0' to make it
2504         work for interface methods.
2505
2506 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2507
2508         * process.c: quote the string passed to the shell using g_shell_quote.
2509
2510 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2511
2512         * threads.c:
2513         (mono_threads_manage): don't remove the finalizer thread and self
2514         from the threads hash table so that mono_thread_manage can be called
2515         more than once.
2516
2517 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2518
2519         * process.c: quote the arguments when UseShellExecute is true. Fixes
2520         bug #55790.
2521
2522 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2523
2524         * threads.c: set mono_thread_detach as a cleanup routine for every
2525         thread. This way it's always executed upon thread termination, either
2526         aborted or finished normally. No more xsp hangs!
2527
2528 2004-03-17  Martin Baulig  <martin@ximian.com>
2529
2530         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
2531         `int count_nested' and a `MonoType **nested'.
2532
2533         * reflection.c (mono_reflection_bind_generic_parameters): Moved
2534         most of the functionality into a new static
2535         do_mono_reflection_bind_generic_parameters() and don't take a
2536         `MonoType *nested_in' argument any more.  Don't compute nested
2537         types here.
2538         (mono_reflection_generic_inst_get_nested_types): New public method
2539         to get nested types.
2540
2541         * class.c (mono_class_create_generic): Set `klass->nested_in' if
2542         we're a nested class.
2543
2544         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
2545         mono_reflection_generic_inst_get_nested_types() to compute the
2546         nested types.
2547
2548 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
2549
2550         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
2551         descriptive error message under windows.
2552         
2553 2004-03-17  Martin Baulig  <martin@ximian.com>
2554
2555         * class.c (dup_type): Added `const MonoType *original' argument;
2556         copy the attrs from the original type.
2557
2558 2004-03-17  Martin Baulig  <martin@ximian.com>
2559
2560         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
2561         `m->generic_inst_cache' here.
2562
2563 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
2564
2565         * exception.h exception.c: Add stack_overflow_exception.
2566
2567 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2568
2569         * threadpool.c:
2570         (overlapped_callback): call SetEvent *after* invoking the callback.
2571         No need to call CloseHandle.
2572
2573 2004-03-16  Martin Baulig  <martin@ximian.com>
2574
2575         * reflection.c (mono_image_get_fieldref_token): Take a
2576         `MonoReflectionField *' instead of a `MonoClassField *' and a
2577         `MonoClass *'; store the `MonoReflectionField *' in the hash.
2578
2579 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2580
2581         * appdomain.c: don't add the culture to the filename we're looking for
2582         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
2583
2584 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2585
2586         * locales.c: don't ignore symbols when doing case insensitive compares.
2587         Thanks Dick! Fixes bug #54046.
2588
2589         * threads.c: surround 'threads' usage with enter/leave in
2590         mono_thread_manage.
2591
2592 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
2593
2594         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
2595         implicitly marshalled as [Out]. Fixes #55450.
2596
2597         (mono_marshal_get_runtime_invoke): Zero out the result if there is
2598         an exception.
2599
2600 2004-03-16  Martin Baulig  <martin@ximian.com>
2601
2602         * class.c (mono_class_from_generic_parameter): Use the actual
2603         parameter name. 
2604
2605 2004-03-16  Martin Baulig  <martin@ximian.com>
2606
2607         * reflection.c (type_get_signature_size): New static function.
2608         Compues the size of the type in a method signature.
2609         (method_get_signature_size): New static function; calls
2610         type_get_signature_size() to compute the actual size of the
2611         method's signature.
2612         (method_encode_signature): Use method_get_signature_size() to get
2613         the signature's size rather than using `nparams * 10'.
2614
2615 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2616
2617         * file-io.h: define here WapiOverlapped on windows. I don't want the
2618         regular OVERLAPPED one.
2619
2620         * file-io.c:
2621         * threadpool.c: somehow, BindIoCompletionCallback is not found.
2622         Disabling AIO on windows.
2623
2624 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2625
2626         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
2627         bug #55385.
2628
2629 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2630
2631         * appdomain.c: upgraded corlib version.
2632
2633         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
2634         and BeginWrite. Allow opening files for asynchrnous operations.
2635
2636         * file-io.h: new struct that maps FileStreamAsyncResult.
2637         * icall.c: added new icalls.
2638         * process.[ch]: support setting child process environment variables
2639         and use the SHELL or COMSPEC when UseShellExecute is true.
2640
2641         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
2642         callback for async. IO is here and also BindHandle.
2643
2644         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
2645         from here.
2646
2647 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
2648
2649         * reflection.c (create_custom_attr): Allow len == 0.
2650
2651         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
2652         computation on big-endian machines.
2653
2654 2004-03-13  Martin Baulig  <martin@ximian.com>
2655
2656         * class.h (MonoGenericInst): Added `int count_ifaces'.
2657
2658         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
2659         `ginst->count_ifaces' instead `klass->interface_count' since we
2660         may get called before the vtable is created.
2661
2662         * loader.c (mono_method_get_param_names): If we're a generic
2663         instance, return and don't initialize the class.
2664
2665         * reflection.c (mono_reflection_setup_generic_class): Don't call
2666         ensure_runtime_vtable().
2667         (mono_reflection_bind_generic_parameters): Set
2668         `ginst->count_ifaces'.
2669
2670 2004-03-11  Jackson Harper <jackson@ximian.com>
2671
2672         * icall.c:
2673         * unicode.c:
2674         * unicode.h: Remove unused System.Char icalls.
2675         
2676 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
2677
2678         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
2679         code when we P/Invoke the first library in Windows.Forms, instead
2680         of when we first open the assembly.
2681
2682         * assembly.c: Drop the lookup from here.
2683
2684 2004-03-10  Martin Baulig  <martin@ximian.com>
2685
2686         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
2687         class for properties, fields and events.  Finally fixes #54945.
2688
2689 2004-03-10  Martin Baulig  <martin@ximian.com>
2690
2691         * metadata.c (mono_metadata_class_equal): New static function;
2692         checks whether two generic instances or two generic parameters are
2693         equal.
2694         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
2695         compare classes.        
2696
2697 2004-03-10  Martin Baulig  <martin@ximian.com>
2698
2699         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
2700
2701         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
2702         argument and write it into the `reflection_info' field.
2703
2704         * icall.c
2705         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
2706         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
2707
2708 2004-03-09  Jackson Harper  <jackson@ximian.com>
2709
2710         * char-conversions.h: use 8 bits for numeric data its all we need
2711         * icall.c: numeric data is only 8 bits now.
2712
2713 2004-03-09  Martin Baulig  <martin@ximian.com>
2714
2715         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
2716
2717         * class.c (init_properties, init_events): Initialize the new
2718         `parent' field.
2719
2720         * reflection.c (typebuilder_setup_properties): Likewise.
2721         (typebuilder_setup_events): Likewise.
2722
2723         * reflection.h (MonoEventInfo): Replaced `parent with
2724         `declaring_type' and `reflected_type'.
2725
2726         * icall.c (ves_icall_get_property_info): Distinguish between
2727         declaring and reflected type.
2728         (ves_icall_get_event_info): Likewise.
2729
2730 2004-03-09  Martin Baulig  <martin@ximian.com>
2731
2732         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
2733         (ves_icall_Type_GetField): Correctly set field->klass.
2734
2735 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
2736
2737         * loader.h: Fix warning.
2738
2739 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
2740
2741         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
2742         library routine if present.  Notice that it will still continue
2743         executing even if its missing, for those working on the Gtk#
2744         edition of Windows.Forms.
2745
2746         * assembly.c (do_mono_assembly_open): If loading the
2747         System.Windows.Forms call mono_loader_wini_init.
2748
2749 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
2750
2751         * class.h: Added MonoRemoteClass struct.
2752         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
2753         function for MonoStrings.
2754         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
2755         Added internal call for getting the proxy type.
2756         * marshal.c: Get the type of transparent proxies from its remote_class.
2757         Added methods that generate the IL for type checks and casts:
2758         mono_marshal_get_isinst, mono_marshal_get_castclass, 
2759         mono_marshal_get_proxy_cancast.
2760         * marshal.h: Declaration of the previous new methods.
2761         * object.c: Added new moethods for creating and updating MonoRemoteClass
2762         instances: mono_remote_class, mono_upgrade_remote_class, 
2763         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
2764         * verify.c: FIx transparent_proxy_fields layout.
2765         * appdomain.c: Bump corlib version.
2766
2767 2004-03-04  Jackson Harper  <jackson@ximian.com>
2768
2769         * icall.c: Add icall to access char conversion tables.
2770         * char-conversions.h: Character conversion tables.
2771         * Makefile.am: Add char-conversions.h private header file.
2772         
2773 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
2774
2775         * appdomain.c (unload_thread_main): Increase unloading timeout to
2776         10 sec as a temporary workaround for Nant problems.
2777
2778 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
2779
2780         * gc.c: Add checks for GC_enable and GC_disable.
2781
2782         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
2783         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
2784         (bug #54988).
2785         
2786 2004-02-27  Martin Baulig  <martin@ximian.com>
2787
2788         * reflection.c (mono_reflection_bind_generic_parameters): Take a
2789         `MonoReflectionType *' instead of a `MonoType *'.
2790
2791 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
2792
2793         * gc.c (run_finalize): Avoid finalizing the object representing the
2794         finalizer thread.
2795         (finalizer_thread): Fix warning.
2796
2797 2004-02-25  Martin Baulig  <martin@ximian.com>
2798
2799         * class.c (_mono_class_get_instantiation_name): Added `int offset'
2800         argument for nested types.
2801         (mono_class_create_generic): Added support for nested generictypes.
2802
2803         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
2804         `GList *nested'.
2805
2806         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
2807
2808         * reflection.c (method_encode_signature): Increase the minimum
2809         value of `size' from 10 to 11.
2810         (mono_reflection_bind_generic_parameters): Take `int type_argc'
2811         and `MonoType **types' arguments instead of the `MonoArray
2812         *types'; added `MonoType *nested_in'.  Recursively instantiate
2813         nested classes. 
2814
2815 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
2816
2817         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
2818         stack_overflow_ex members which are used by exception handling.
2819
2820         * appdomain.c (mono_runtime_init): Initialize the new members.
2821
2822         * gc.c (mono_gc_enable): New helper function.
2823         * gc.c (mono_gc_disable): New helper function.
2824
2825 2004-02-23  Martin Baulig  <martin@ximian.com>
2826
2827         * icall.c: I must have been really stupid - make it actually work
2828         this time ;-)
2829
2830 2004-02-23  Martin Baulig  <martin@ximian.com>
2831
2832         * loader.c (method_from_memberref): Only inflate the method if
2833         it's in another klass.
2834
2835 2004-02-23  Martin Baulig  <martin@ximian.com>
2836
2837         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
2838         (mono_class_init): If we're a generic instance and an interface,
2839         compute `class->interface_id'; also create `class->interfaces'
2840         here and inflate them.
2841
2842         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
2843         `ginst->is_open'.
2844         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
2845
2846         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
2847
2848 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
2849
2850         * reflection.c (method_encode_code): Improved the error message
2851         generated by the exception.
2852
2853 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2854
2855         * icall.c: Martin did not do what he said in the ChangeLog for
2856         2004-02-18, but put back the changes for properties and events.
2857         Commenting those changes out again and adding comment to bug #54518.
2858         
2859         * process.c: removed warning.
2860
2861 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
2862
2863         * marshal.c (emit_struct_conv): Print an error message instead of
2864         asserting when a type does not have the StructLayout attribute.
2865
2866 2004-02-20  Martin Baulig  <martin@ximian.com>
2867
2868         * reflection.c (mono_type_get_object): Also use the cache for
2869         generic instances.
2870         (mono_reflection_bind_generic_parameters): Always compute
2871         `ginst->ifaces'.        
2872
2873 2004-02-20  Martin Baulig  <martin@ximian.com>
2874
2875         * class.h (MonoGenericMethod): Removed `klass'.
2876
2877         * class.c (mono_class_inflate_generic_method): Added `MonoClass
2878         *klass' argument.
2879
2880 2004-02-20  Martin Baulig  <martin@ximian.com>
2881
2882         * reflection.c (method_encode_methodspec): Actually use the
2883         uninflated signature for the memberref.
2884
2885 2004-02-20  Martin Baulig  <martin@ximian.com>
2886
2887         * class.h (MonoGenericMethod): Removed `declaring'.
2888
2889         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
2890         is NULL, compute it here.
2891
2892 2004-02-20  Martin Baulig  <martin@ximian.com>
2893
2894         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
2895
2896         * metadata.c (mono_metadata_generic_inst_hash): New method.
2897         (mono_metadata_generic_inst_equal): New method.
2898
2899         * reflection.c (mono_reflection_bind_generic_parameters): Use the
2900         `klass->image->generic_inst_cache' cache to avoid creating
2901         duplicate MonoGenericInst's.
2902
2903         * class.c (mono_class_inflate_generic_type): Use the cache.
2904
2905 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
2906
2907         * object.c: fixed gc descriptor calculation for embedded valuetypes.
2908
2909 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2910
2911         * icall.c: added Socket.WSAIoctl icall.
2912
2913         * socket-io.[ch]: implemented
2914         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
2915
2916 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
2917
2918         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
2919
2920 2004-02-18  Urs C Muff  <umuff@quark.com>
2921
2922         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
2923         this work on PPC and other big-endian architectures.
2924
2925         * debug-mono-symfile.h: Prepended the names of all the `guint32'
2926         fields with an underscore to make sure they're only accessed by
2927         the read32() macro.
2928
2929 2004-02-18  Martin Baulig  <martin@ximian.com>
2930
2931         * icall.c: Put the klass->refclass changes back for methods and
2932         fields, but not for properties and events.  We're currently not
2933         distinguishing between DeclaringType and ReflectedType for
2934         properties and events, that's what caused the regressions.
2935
2936 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2937
2938         * object.c:
2939         (mono_async_result_new): the handle can be NULL.
2940
2941         * threadpool.c: Use an event instead of a semaphore, don't initialize
2942         it until needed. This saves quite a few semaphores from being created
2943         when using the threadpool.
2944
2945 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
2946
2947         * object.c (mono_string_is_interned_lookup): Fix interning of long
2948         strings. Fixes #54473.
2949
2950         * domain.c (ldstr_equal): Optimize if the two strings are equal.
2951
2952         * icall.c: Revert the klass->refclass changes since they introduce
2953         regressions (bug #54518).
2954
2955 2004-02-18  Martin Baulig  <martin@ximian.com>
2956
2957         * class.c (mono_class_init): If we're a generic instance and don't
2958         come from a TypeBuilder, inflate our members here.
2959         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
2960         (mono_class_create_generic): New public method.
2961         (mono_class_initialize_generic): Removed.
2962         (get_instantiation_name): Renamed to
2963         _mono_class_get_instantiation_name() and made it public.
2964
2965 2004-02-18  Martin Baulig  <martin@ximian.com>
2966
2967         * class.c (mono_class_inflate_generic_type): Clear the new
2968         instance's `nginst->klass' when inflating a generic instance.
2969         (mono_class_is_subclass_of): Added (basic) support for generic
2970         instances.
2971
2972 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
2973
2974         * appdomain.h, domain.c: use a MonoCodeManager instead of a
2975         MonoMempool to hold compiled native code.
2976
2977 2004-02-17  Martin Baulig  <martin@ximian.com>
2978
2979         * class.h (MonoDynamicGenericInst): Added `count_properties' and
2980         `properties'.
2981
2982         * reflection.c (mono_reflection_generic_inst_initialize): Added
2983         `MonoArray *properties' argument.
2984
2985         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
2986
2987 2004-02-17  Martin Baulig  <martin@ximian.com>
2988
2989         * icall.c (ves_icall_Type_GetFields): Renamed to
2990         ves_icall_Type_GetFields_internal() and added a
2991         `MonoReflectionType *rtype' argument; pass it to
2992         mono_field_get_object() to set the field's "reflected" type.
2993         (ves_icall_Type_GetConstructors): Likewise.
2994         (ves_icall_Type_GetEvents): Likewise.
2995         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
2996         argument; pass it to mono_method_get_object() to set the method's
2997         "reflected" type.       
2998
2999 2004-02-17  Martin Baulig  <martin@ximian.com>
3000
3001         * class.h (MonoDynamicGenericInst): New type.
3002         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
3003
3004         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
3005         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
3006         (ves_icall_MonoGenericInst_GetFields): New interncall.
3007
3008         * class.c (mono_class_from_generic): Don't call
3009         mono_class_initialize_generic() if this is a dynamic instance;
3010         ie. it's being created from a TypeBuilder.
3011         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
3012         `class->byval_arg.type'.
3013
3014         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
3015         to `inflate_method' and made static.
3016         (mono_reflection_inflate_field): Removed.
3017         (mono_reflection_generic_inst_initialize): New public method.
3018
3019         * reflection.h (MonoReflectionGenericInst): Removed `methods',
3020         `ctors' and `fields'; added `initialized'.
3021
3022 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
3023
3024         * debug-helpers.c (mono_method_full_name): Fix output for empty
3025         namespaces.
3026
3027 2004-02-12  Martin Baulig  <martin@ximian.com>
3028
3029         * class.h (MonoClassField): Added `MonoType *generic_type'.
3030
3031         * reflection.c (mono_image_get_fieldref_token): Added support for
3032         instantiated generic types.
3033         (field_encode_inflated_field): Removed.
3034         (mono_image_get_inflated_field_token): Removed.
3035         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
3036
3037         * reflection.h (MonoReflectionInflatedField): Removed.
3038
3039 2004-02-12  Martin Baulig  <martin@ximian.com>
3040
3041         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
3042         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
3043
3044         * reflection.c (mono_image_get_methodspec_token): Take a
3045         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
3046         (mono_image_create_token): Check whether we have a
3047         `method->signature->gen_method' and call
3048         mono_image_get_methodspec_token() if appropriate.
3049         (inflated_method_get_object): Removed.
3050         (mono_reflection_bind_generic_method_parameters): Return a
3051         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
3052         (mono_reflection_inflate_method_or_ctor): Likewise.
3053
3054         * reflection.h (MonoReflectionInflatedMethod): Removed.
3055
3056 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
3057
3058         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
3059         for custom valuetype marshalling.
3060
3061         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
3062
3063 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3064
3065         * icall.c: fixed WSAGetLastError_internal name.
3066
3067 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
3068
3069         * threads.c (mono_thread_attach): Allow this to be called multiple
3070         times for a thread.
3071         
3072         * threads.c (build_wait_tids): Do not wait for ourselves.
3073
3074         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
3075         appdomain list is empty.
3076
3077         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
3078         memory returned by mono_string_builder_to_utf16, since it points into
3079         managed memory. Thanks to Bernie Solomon for noticing this.
3080
3081         * icall.c: Add AppDomainSetup icalls.
3082
3083         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
3084
3085         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
3086         types.
3087
3088         * reflection.c (reflection_methodbuilder_to_mono_method): Save
3089         custom attributes to the method_aux struct. Also fix array indexes etc.
3090
3091         * loader.c (mono_method_get_param_names): Make dynamic case work again.
3092         
3093 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
3094
3095         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
3096         (both static and runtime) and reduce startup time.
3097
3098 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
3099
3100         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
3101         AsAny marshalling conversion instead of crashing.
3102
3103         * marshal.c: Fix warnings.
3104
3105 2004-02-09  Martin Baulig  <martin@ximian.com>
3106
3107         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
3108
3109         * reflection.h (MonoReflectionInflatedMethod): Removed the
3110         `declaring' field, it's now in the unmanaged MonoGenericMethod.
3111
3112         * reflection.c (method_encode_methodspec): Removed the `method'
3113         argument; we get it from `gmethod->declaring'.
3114         (inflated_method_get_object): Removed the `declaring' argument.
3115
3116 2004-02-09  Martin Baulig  <martin@ximian.com>
3117
3118         * class.h (MonoGenericMethod): New type.
3119         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
3120         `generic_method'.
3121
3122         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
3123         a `MonoGenericMethod *gen_method' one.
3124
3125         * class.c (mono_class_inflate_generic_type): Take an additional
3126         `MonoGenericMethod * argument.  This is only non-NULL if we're
3127         inflating types for a generic method.   
3128         (mono_class_inflate_generic_signature): Renamed to
3129         inflate_generic_signature() and made static; take a
3130         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
3131         (inflate_generic_header): Take a `MonoGenericMethod *' argument
3132         instead of a `MonoGenericInst *' one.
3133         (mono_class_inflate_generic_method): Likewise.
3134
3135         * reflection.c (encode_generic_method_sig): Take a
3136         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
3137         (method_encode_methodspec): Likewise.
3138         (inflated_method_get_object): Likewise. 
3139
3140         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
3141         field with a `MonoGenericMethod *gmethod' one.  
3142
3143 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
3144
3145         * class.h (mono_class_has_parent): add parens to expansion
3146         so you can ! this.
3147
3148 2004-02-08  Martin Baulig  <martin@ximian.com>
3149
3150         * image.h (MonoImage): Removed `generics_cache'.
3151
3152         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
3153         instead of a `MonoType *' argument; removed the `inflate_methods'
3154         argument.  Don't inflate methods here.
3155
3156         * loader.c (find_method): If it's a generic instance, call
3157         mono_class_init() on the `sclass->generic_inst->generic_type'.
3158
3159         * metadata.c (mono_type_size): Make this work on uninitialized
3160         generic instances; call it on the `ginst->generic_type's class.
3161
3162         * reflection.c (mono_reflection_bind_generic_parameters): Call
3163         mono_class_from_generic() to create the `ginst->klass'.
3164
3165 2004-02-08  Martin Baulig  <martin@ximian.com>
3166
3167         * class.h (MonoClass): Changed type of `generic_inst' from
3168         `MonoType *' to `MonoGenericInst *'.
3169
3170 2004-02-08  Martin Baulig  <martin@ximian.com>
3171
3172         * icall.c (ves_icall_Type_BindGenericParameters): Just call
3173         mono_type_get_object(), this is now creating a `MonoGenericInst'
3174         for MONO_TYPE_GENERICINST.
3175         (ves_icall_MonoGenericInst_GetParentType): Likewise.
3176         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
3177
3178         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
3179         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
3180         (inflated_method_get_object): Added `MonoClass *refclass' argument.
3181         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
3182         and reflected type.
3183
3184         * reflection.h (MonoReflectionInflatedMethod): Removed
3185         `declaring_type' and `reflected_type'.
3186
3187 2004-02-08  Martin Baulig  <martin@ximian.com>
3188
3189         * class.h (MonoGenericInst): Added `MonoType *parent' and
3190         `MonoType **ifaces'.
3191
3192         * reflection.h (MonoReflectionGenericInst): Removed `klass',
3193         `parent' and `interfaces'.
3194
3195         * reflection.c (mono_reflection_bind_generic_parameters): Take a
3196         `MonoType *' argument and return a `MonoType *'.
3197
3198         * icall.c
3199         (ves_icall_MonoGenericInst_GetParentType): New interncall.
3200         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
3201
3202 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
3203
3204         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
3205         valuetype marshalling.
3206
3207 2004-02-06  Martin Baulig  <martin@ximian.com>
3208
3209         * class.c
3210         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
3211         (my_mono_class_from_generic_parameter): Likewise.
3212
3213 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
3214
3215         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
3216         contents of the symbol files lazily.
3217
3218         * object.h (MonoThread): Add 'name' and 'name_len' fields.
3219
3220         * threads.h threads.c icall.c: New icalls for getting and setting the
3221         threads name.
3222
3223 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
3224
3225         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
3226         Raise an exception when the domain is not found.
3227
3228 2004-02-03  Martin Baulig  <martin@ximian.com>
3229
3230         * reflection.c (mono_image_get_methodspec_token): Use the
3231         uninflated signature; fixes gen-33.
3232
3233 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
3234
3235         * gc.c threads.c: Make the finalizer thread a normal managed thread so
3236         the finalizer code can use thread functionality.
3237
3238         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
3239         the finalizer thread.
3240
3241         * threads.c: Make some functions more robust.
3242
3243         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
3244
3245         * metadata.h: Add new marshalling conventions.
3246
3247         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
3248         stringbuilder marshalling. Fixes #53700.
3249
3250         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
3251
3252         * reflection.c (mono_image_get_type_info): Save declarative security
3253         info.
3254
3255         * reflection.c (mono_image_get_field_info): Handle uninitialized 
3256         unmanaged fields as well.
3257
3258         * appdomain.c: Bump corlib version.
3259
3260 2004-02-01  Martin Baulig  <martin@ximian.com>
3261
3262         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
3263         method type arguments.  
3264
3265 2004-01-30  Duncan Mak  <duncan@ximian.com>
3266
3267         * marshal.h: Add prototype for
3268         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
3269         and
3270         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
3271         fix the build.
3272
3273 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
3274
3275         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
3276         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
3277
3278 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
3279
3280         * marshal.c (mono_marshal_get_native_wrapper): Add support for
3281         custom marshalling of valuetypes.
3282
3283         * marshal.c: Fix some warnings.
3284
3285 2004-01-29  Martin Baulig  <martin@ximian.com>
3286
3287         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
3288         for generic method parameters.
3289
3290         * reflection.c (method_encode_methodspec): Write the uninflated
3291         signature into the methodspec table.
3292         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
3293         is always the uninflated method.
3294         (reflection_methodbuilder_to_mono_method): Copy the generic
3295         parameters from the MethodBuilder into `header->gen_params'.
3296
3297 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
3298
3299         * class.c (mono_class_from_generic_parameter): Fix warning.
3300
3301 2004-01-27  Martin Baulig  <martin@ximian.com>
3302
3303         * class.c (mono_class_from_generic_parameter): Don't create
3304         `klass->methods' here.  
3305
3306 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
3307
3308         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
3309         extension since it does not work with libraries named lib<FOO>.dll.so.
3310
3311 2004-01-25  Martin Baulig  <martin@ximian.com>
3312
3313         * class.c (mono_class_inflate_generic_type): Added support for
3314         MONO_TYPE_GENERICINST.
3315
3316         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
3317         inflate methods on open constructed types.      
3318
3319 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3320
3321         * object.c: fire ProcessExit event in the root AppDomain after running
3322         Main. Fixes bug #53299.
3323
3324 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
3325
3326         * socket-io.c: include the new socket-wrappers.h header.
3327         Use the wrappers instead of the unix socket functions to make the code
3328         more clear.
3329
3330 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
3331
3332         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
3333
3334         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
3335         Fixes #22532.
3336
3337 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
3338
3339         * reflection.c (mono_image_create_pefile): Handle the case when the
3340         entry point is not a MethodBuilder.
3341
3342         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
3343         field to ReflectionMethod since it is not allways a builder.
3344
3345         * reflection.c (type_get_fully_qualified_name): New helper function to
3346         return the fully qualified name of a type.
3347
3348         * reflection.c (encode_marshal_blob): Always emit the fully qualified
3349         type name for custom marshallers.
3350
3351         * reflection.c (mono_marshal_spec_from_builder): Ditto.
3352
3353         * class.c (mono_class_setup_vtable): If a parent class already 
3354         implements an interface, use the implementing methods from that class.
3355         Fixes #53148.
3356
3357 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3358
3359         * threadpool.c: just return instead of ExitThread to allow for thread
3360         clean up earlier.
3361
3362 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
3363
3364         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
3365         when closing resource modules.
3366
3367         * reflection.c (mono_image_create_pefile): Handle the case when the
3368         entry point is not a MethodBuilder.
3369
3370         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
3371         field to ReflectionMethod since it is not allways a builder.
3372
3373 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
3374
3375         * marshal.c (mono_marshal_get_managed_wrapper): 
3376         mono_marshal_alloc takes native int so CONV_I
3377         the arg for 64bits.
3378
3379 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
3380
3381         * reflection.c (fixup_cattrs): New function to fixup the methoddef
3382         tokens in the cattr table. Fixes #53108.
3383
3384 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3385
3386         * loader.c: don't trim ".dll" before looking up in the config file.
3387         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
3388
3389 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
3390
3391         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
3392         Return the module which contains the resource as well.
3393         (ves_icall_System_Reflection_Module_Close): New icall.
3394
3395         * appdomain.c: Bump corlib version number.
3396
3397         * image.c (mono_image_addref): New public function.
3398
3399         * assembly.c: Call mono_image_addref.
3400
3401         * reflection.c (mono_module_get_object): Increase reference count of 
3402         the image.
3403
3404         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
3405         Fixes #22532.
3406
3407         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
3408         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
3409         proper exceptions on DllImport problems.
3410
3411 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
3412
3413         * class.c, metadata.c: eliminate CSIZE macro.
3414
3415 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
3416
3417         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
3418         * object.h: Added async_callback field in MonoAsyncResult.
3419         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
3420         * verify.c: Added async_callback in MonoAsyncResult layout.
3421
3422 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
3423
3424         * reflection.c (mono_reflection_get_custom_attrs): Add support
3425         for Modules.
3426
3427 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
3428
3429         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
3430         marshalling.
3431         (mono_marshal_method_from_wrapper): Add null pointer check.
3432
3433 2004-01-16  Martin Baulig  <martin@ximian.com>
3434
3435         * debug-mono-symfile.h: Set version number to 36 and reflect
3436         latest symbol writer changes.
3437
3438 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
3439
3440         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
3441         multi-dimensional arrays.
3442         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
3443         (mono_class_from_mono_type): Use bounded_array_class_get.
3444         
3445         * class.c (mono_bounded_array_class_get): New function which takes
3446         a 'bounded' bool argument to distinguish vectors from one dimensional
3447         arrays.
3448
3449         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
3450         bounded_array_class_get if the array has bounds.
3451
3452         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
3453         Search modules loaded using AssemblyBuilder:AddModule as well.
3454
3455 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3456
3457         * appdomain.c: increased corlib version.
3458         * filewatcher.c: removed g_print.
3459         * icall.c:
3460         (get_property_info): only allocate what is actually requested.
3461         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
3462
3463 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3464
3465         * Makefile.am: added filewatcher.[ch]
3466         * filewatcher.[ch]: FileSystemWatcher runtime support.
3467         * icall.c: added new FSW icalls.
3468
3469 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
3470
3471         * string-icalls.c: fix stringbuilder regression as suggested by
3472         Iain McCoy <iain@mccoy.id.au>.
3473
3474 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
3475
3476         * process.c (process_read_stringtable_block): Recognize '007f' as
3477         a language neutral stringtable block.
3478
3479 2004-01-12  Patrik Torstensson
3480
3481         * object.h (MonoStringBuilder) : Changed layout to support our
3482         new stringbuilder class.
3483         * marshal.c: Change marshalling to support the new layout of 
3484         string builder.
3485         * appdomain.c: increased version number because new layout of
3486         string builder.
3487
3488 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
3489
3490         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
3491         assembly name as an string instead of an AssemblyName, since it is
3492         easier to extract info from it.
3493
3494         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
3495         the culture subdirectories too. Fixes #52231.
3496
3497 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3498
3499         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
3500         It takes 2 new parameters with an optional name for the method to look
3501         for and case ignoring info.
3502
3503         * threadpool.c: removed unused variable.
3504
3505 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3506
3507         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
3508         It takes 2 new parameters with an optional name for the property to look
3509         for and case ignoring info.
3510         Fixes bug #52753.
3511
3512 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
3513
3514         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
3515         Fix #52451.
3516
3517 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3518
3519         * appdomain.c:
3520         * assembly.c: escape the uri before passing it to g_filename_from_uri.
3521         Fixes bug #52630.
3522
3523 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
3524
3525         * reflection.c: Add support for more than one unmanaged resource.
3526
3527         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
3528         in field->def_value, as done in all other cases.
3529
3530         * reflection.c (mono_reflection_get_custom_attrs): Add support for
3531         TypeBuilders.
3532
3533         * reflection.c (mono_reflection_create_runtime_class): Remove 
3534         errorneous assignment to klass->element_class, since it is already
3535         done in mono_reflection_setup_internal_class.
3536
3537 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3538
3539         * gc.c: added missing LeaveCriticalSection.
3540         * icall.c: indented a couple of lines.
3541         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
3542         if we call EndInvoke inside a callback. Fixes bug #52601.
3543
3544 2004-01-07  Martin Baulig  <martin@ximian.com>
3545
3546         * mono-debug-debugger.h
3547         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
3548
3549 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
3550
3551         * appdomain.c: Use messages in NotImplementedException.
3552
3553         * exception.c (mono_get_exception_not_implemented): Now this takes
3554         a message argument.
3555
3556         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
3557         exception instead of g_asserting an aborting when something is not
3558         implemented.
3559
3560         Add some inline docs.
3561
3562 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
3563
3564         * reflection.h: Update after changes to object layout.
3565
3566         * reflection.c: Implement saving of unmanaged aka win32 resources.
3567
3568         * appdomain.c: Bump version number.
3569
3570         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
3571         Handle missing domains gracefully.
3572
3573 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
3574
3575         * file-io.c : On Windows, there are much more invalid_path_chars.
3576
3577 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
3578
3579         * class.h, object.c: prepare for GetType () speedup.
3580
3581 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
3582
3583         * profiler.c: workaround for --profile null reference exception on
3584           cygwin. Patch by Patrik Torstensson.
3585
3586 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
3587
3588         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
3589         make work for unaligned access.
3590
3591 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
3592
3593         * class.c: small cleanup (class->fields [i] -> field).
3594         * image.c: check address of metadata is valid.
3595
3596 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
3597
3598         * assembly.h assembly.c (mono_assembly_loaded): New public function to
3599         search the list of loaded assemblies.
3600
3601         * reflection.c (mono_reflection_type_from_name): Use 
3602         mono_assembly_loaded instead of mono_image_loaded.
3603
3604         * reflection.c: Fix warnings.
3605
3606 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
3607
3608         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
3609         is dynamic. This is needed since an assembly can contain both dynamic and
3610         non-dynamic images.
3611
3612         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
3613         assembly->dynamic.
3614
3615         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
3616
3617         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
3618         to store modules loaded using AddModule.
3619
3620         * reflection.c (mono_image_fill_file_table): Generalize this so it works
3621         on Modules.
3622
3623         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
3624
3625         * reflection.c (mono_image_fill_export_table_from_module): New function to
3626         fill out the EXPORTEDTYPES table from a module.
3627
3628         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
3629         into a separate function. Also handle loaded non-dynamic modules.
3630
3631         * reflection.c (mono_image_basic_init): Fix memory allocation.
3632
3633         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3634
3635         * assembly.c (mono_assembly_load_references): Make this public.
3636
3637 2003-12-19  Martin Baulig  <martin@ximian.com>
3638
3639         * class.c (mono_class_initialize_generic): Made this static, take
3640         a `MonoGenericInst *' instead of a `MonoClass *'.
3641         (mono_class_from_generic): Call mono_class_initialize_generic()
3642         unless we're already initialized or being called from
3643         do_mono_metadata_parse_generic_inst().
3644
3645         * class.h (MonoGenericInst): Added `initialized' and
3646         `init_pending' flags.
3647
3648         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
3649         `mono_class_init (gklass)' or mono_class_initialize_generic()
3650         here; set `generic_inst->init_pending' while parsing the
3651         `type_argv'.
3652
3653 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
3654
3655         * locales.c: include string.h for memxxx prototypes
3656
3657 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
3658
3659         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
3660         constructor when accessing literal fields.
3661
3662 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
3663
3664         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3665
3666         * reflection.c (assembly_add_resource_manifest): New function to fill
3667         the MANIFESTRESOURCE table.
3668
3669         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
3670
3671         * reflection.h: Update to changes in class layout.
3672
3673         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
3674         Reenable call to mono_runtime_is_shutting_down ().
3675
3676         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
3677         determine if the runtime is shutting down.
3678
3679 2003-12-16  Jackson Harper <jackson@ximian.com>
3680
3681         * icall.c: comment out call to mono_runtime_is_shutting_down to
3682         fix build.
3683         
3684 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
3685
3686         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
3687         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
3688
3689 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
3690
3691         * reflection.c: move definition of swap_with_size
3692         to before its first call
3693
3694 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
3695
3696         * appdomain.c (mono_runtime_is_shutting_down): New public function.
3697
3698         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
3699         icall.
3700
3701         * object.c: Fix warnings.
3702
3703         * icall.c (ves_icall_Type_Get...): Only consider inherited static
3704         members if FlattenHierarchy is set.
3705
3706         * reflection.c (mono_image_add_decl_security): New function to emit
3707         declarative security.
3708
3709         * reflection.h reflection.c: Add support for declarative security.
3710
3711         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
3712         
3713 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
3714
3715         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
3716         
3717         * appdomain.c verify.c: Moved corlib version checking into its own
3718         function in appdomain.c since it needs to create vtables etc.
3719
3720 2003-12-13  Patrik Torstensson <p@rxc.se>
3721
3722         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
3723         instead of unwrapped server.
3724
3725 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
3726
3727         * verify.c (check_corlib): Fix field index.
3728
3729 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
3730
3731         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
3732         GetGacPath icall.
3733
3734 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
3735
3736         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
3737         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
3738         cope with sizeof(size_t) != sizeof(guint32).
3739
3740 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3741
3742         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
3743         in case of failure.
3744
3745 2003-12-10  Mark Crichton <crichton@gimp.org>
3746
3747         * icall.c: removed the GetNonZeroBytes.  We now handle this case
3748         in managed code.
3749
3750         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
3751
3752 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
3753
3754         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
3755         marked as deleted.
3756
3757 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
3758
3759         * verify.c (check_corlib): Handle the case when the version field is 
3760         initialized by a static constructor.
3761
3762 2003-12-08  Patrik Torstensson  <p@rxc.se>
3763
3764     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
3765
3766 2003-12-08  Martin Baulig  <martin@ximian.com>
3767
3768         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
3769         a MonoReflectionGenericParameter, also take the parameter index
3770         and name as arguments.
3771         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
3772         (ves_icall_MonoGenericParam_initialize): New interncall.
3773         (ves_icall_Type_make_byref_type): New interncall.
3774
3775         * reflection.h (MonoReflectionGenericParam): Derive from
3776         MonoReflectionType, not just from MonoObject.  Added `refobj' and
3777         `index' fields.
3778
3779         * reflection.c (mono_reflection_define_generic_parameter): Create
3780         and return a new MonoReflectionGenericParam; don't initialize the
3781         constraints here.
3782         (mono_reflection_initialize_generic_parameter): New public method;
3783         initializes the constraints and creates the `param->pklass'.
3784
3785 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
3786
3787         * reflection.h reflection.c: Use the new fields 'num_types', 
3788         'num_fields' and 'num_methods' to track the number of types etc.
3789
3790         * verify.c (check_corlib): Check corlib version number.
3791
3792 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
3793
3794         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
3795         function works on all methods.
3796
3797 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
3798
3799         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
3800         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
3801         the custom_type_info flag of the transparent proxy.
3802         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
3803         objects that supports IRemotingTypeInfo.
3804         * object.h: Added custom_type_info field in transparent proxy.
3805
3806 2003-12-06  Martin Baulig  <martin@ximian.com>
3807
3808         * class.c (mono_class_create_from_generic): Removed.
3809         (mono_class_from_generic): Check `ginst->klass' before doing
3810         anything else.  This is important to fully support "recursive"
3811         generic types.
3812
3813         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
3814         empty `generic_inst->klass' before doing anything else.
3815
3816 2003-12-06  Dick Porter  <dick@ximian.com>
3817
3818         * verify.c: 
3819         * object.h:
3820         * icall.c:
3821         * locales.c: Use C structs to access class fields.  Don't do a
3822         conversion between MonoString and UChar because both are
3823         platform-endian UTF-16.  Compare now takes startindex and count
3824         parameters.  Add a char overload for IndexOf.  Speed up the
3825         invariant string IndexOf.
3826
3827 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
3828
3829         * Makefile.am (monosn_LDADD): Fix parallel build.
3830
3831 2003-12-04  Martin Baulig  <martin@ximian.com>
3832
3833         * icall.c
3834         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
3835         (ves_icall_Type_make_array_type): New interncall.       
3836
3837 2003-12-04  Martin Baulig  <martin@ximian.com>
3838
3839         * locales.c: also change it in the !HAVE_ICU case.
3840
3841 2003-12-04  Dick Porter  <dick@ximian.com>
3842
3843         * icall.c:
3844         * locales.c: construct_compareinfo is now in CompareInfo, not
3845         CultureInfo.
3846
3847 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
3848
3849         * image.c (mono_image_load_file_for_image): Cache loaded images in the
3850         image->files array.
3851
3852         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
3853         table as well.
3854
3855         * assembly.c (mono_assembly_load_references): Only load references
3856         once.
3857
3858         * class.c (mono_class_from_name): Avoid linear search of the 
3859         EXPORTEDTYPE table.
3860
3861         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
3862
3863 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
3864
3865         * image.h (MonoImage): Add 'field_cache' field.
3866
3867         * loader.c (mono_field_from_token): Cache field lookups.
3868         
3869         * reflection.c (mono_module_get_object): Fix name property.
3870
3871         * icall.c (ves_icall_get_enum_info): Update after changes to 
3872         mono_metadata_get_constant_index ().
3873
3874         * icall.c: Get rid of get_type_info icall, use a separate icall for
3875         each type property to avoid needless memory allocations. Fixes #51514.
3876
3877         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
3878         to avoid needless binary searches.
3879
3880         * class.c (class_compute_field_layout): Move the initialization of
3881         field->def_value to mono_class_vtable ().
3882
3883         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
3884         non-corlib types.
3885
3886         * object.c (mono_object_allocate): Make it inline.
3887
3888         * object.c (mono_object_allocate_spec): Make it inline.
3889         
3890 2003-12-02  Dick Porter  <dick@ximian.com>
3891
3892         * locales.c (create_NumberFormat): NumberFormatInfo construction.
3893         Patch by Mohammad DAMT (mdamt@cdl2000.com).
3894
3895 2003-12-01  Dick Porter  <dick@ximian.com>
3896
3897         * threads.c: Fix signature and call in CreateMutex and
3898         CreateEvent.
3899
3900 2003-12-01  Dick Porter  <dick@ximian.com>
3901
3902         * icall.c: 
3903         * locales.c: Implement string compares and searching
3904
3905         * object.h: Add extra Thread field
3906
3907 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
3908
3909         * reflection.c (fixup_method): Add support for MonoCMethod.
3910
3911 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
3912
3913         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
3914
3915         * reflection.c (assembly_name_to_aname): Allow extra characters in
3916         assembly names. Fixes #51468.
3917
3918 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
3919
3920         * exception.c (mono_exception_from_name_domain): New helper function.
3921
3922         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
3923         exception object in the correct domain.
3924
3925         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
3926         formatting + make a copy a the input data.
3927
3928         * loader.c (mono_get_method_from_token): Methods which contain
3929         native code do not have entries in the ImplMap.
3930
3931         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
3932         Thanks to Gonzalo for spotting this.
3933         
3934         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
3935         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
3936
3937         * assembly.h (mono_assembly_load_from): Split the second part of 
3938         assembly loading into a new public function.
3939
3940         * exception.h (mono_get_exception_bad_image_format): New function.
3941
3942 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
3943
3944         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
3945         Enumerate all modules inside a dynamic assembly. Fixes #51293.
3946         
3947         * icall.c: Add new icall for creating dynamic methods.
3948
3949         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
3950
3951         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
3952
3953         * reflection.c (mono_reflection_create_dynamic_method): New icall to
3954         create a dynamic method.
3955
3956         * reflection.c (resolve_object): New helper function.
3957
3958         * reflection.c: Generalize ReflectionMethodBuilder and the functions
3959         which manipulate it so they can also work on dynamic methods.
3960
3961         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
3962         creating the MonoReflectionMethodAux structure if it is not needed.
3963         
3964         * reflection.h verify.c: Update after changes to object layout.
3965
3966         * reflection.c (method_builder_encode_signature): Fix compilation on
3967         gcc 2.95.x.
3968
3969 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
3970
3971         * appdomain.h: Added support for context static fields. Added static_data
3972           field to MonoAppContext and renamed thread_static_fields to a more
3973           generic special_static_fields in MonoAppDomain, since it can now contain
3974           context static fields.
3975         * domain.c: Updated hashtable name.
3976         * object.c: Replaced field_is_thread_static() for a more generic
3977           field_is_special_static() which also checks for context static attribute.
3978           In mono_class_vtable(), added support for static context fields.
3979         * threads.c: Changed methods that manage thread static fields to more
3980           generic methods so they can be reused both for thread and context static
3981           data.
3982         * threads.h: Declared some new methods.
3983
3984 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
3985
3986         * reflection.h: Update after changes to the managed types.
3987
3988         * reflection.c (encode_custom_modifiers): New helper function.
3989
3990         * reflection.c (method_encode_signature): Emit custom modifiers.
3991
3992         * reflection.c (field_encode_signature): Emit custom modifiers.
3993
3994 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
3995
3996         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
3997
3998         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
3999         implementation.
4000
4001         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
4002         icall.
4003
4004         * object.c (mono_field_get_value_object): New function.
4005
4006         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
4007         specific.
4008
4009 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
4010
4011         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
4012         return a preallocated out-of-memory exception instance.
4013
4014         * object.c (out_of_memory): Use the new function.
4015
4016         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
4017         flag is before the custom modifiers. Fixes #49802.
4018
4019 2003-11-16  Martin Baulig  <martin@ximian.com>
4020
4021         * class.c (mono_class_is_open_constructed_type): Implemented the
4022         MONO_TYPE_GENERICINST case.
4023
4024 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
4025
4026         * assembly.c (mono_assembly_fill_assembly_name): New function to
4027         fill out the MonoAssemblyName structure.
4028         (mono_assembly_open): Use the new function.
4029
4030         * icall.c (fill_reflection_assembly_name): New helper function.
4031
4032         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
4033         new function.
4034
4035         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
4036
4037 2003-11-15  Martin Baulig  <martin@ximian.com>
4038
4039         * class.c (mono_class_is_open_constructed_type): New public
4040         function; checks whether a type is an open constructed type,
4041         ie. whether it still contains type parameters.
4042         (mono_class_inflate_generic_type): If we're a type parameter and
4043         the inflated type is also a MONO_TYPE_(M)VAR, return the original
4044         type.
4045
4046         * class.h (MonoGenericInst): Added `guint32 is_open'.
4047
4048         * loader.c (method_from_methodspec): Check whether we're an open
4049         or closed constructed type and set `ginst->is_open'.
4050
4051         * reflection.c (mono_reflection_bind_generic_parameters): Check
4052         whether we're an open or closed constructed type and set
4053         `ginst->is_open'.
4054         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
4055         from open constructed types.
4056
4057 2003-11-15  Martin Baulig  <martin@ximian.com>
4058
4059         * reflection.c (mono_reflection_bind_generic_parameters): If we're
4060         a generic instance (instead of a generic type declaration) with
4061         unbound generic parameters, bind them to our actual types.
4062
4063 2003-11-14  Martin Baulig  <martin@ximian.com>
4064
4065         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
4066
4067         * reflection.c (mono_reflection_bind_generic_parameters): If we're
4068         an interface type, populate `res->interfaces' with instantiated
4069         versions of all the interfaces we inherit.
4070
4071 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
4072
4073         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
4074         when MONO_PATH is set but doesn't contain the install dir.
4075
4076 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4077
4078         * icall.c:
4079         (ves_icall_Type_GetInterfaces): don't return an interface twice when
4080         it's also implemented in base classes. Fixes bug #50927.
4081
4082 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
4083
4084         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
4085         if this method is called from a finalizer. Fixes #50913.
4086
4087 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
4088
4089         * threads.c: Implement VolatileRead/VolatileWrite
4090
4091         * icall.c: Add new icalls for VolatileRead/VolatileWrite
4092
4093 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
4094
4095         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
4096         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
4097         2.95.3.
4098
4099         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
4100         from Peter Ross (pro@missioncriticalit.com).
4101         
4102 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
4103
4104         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
4105
4106 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
4107
4108         * assembly.c (mono_assembly_load_references): Disable check because it
4109         triggers on older corlibs which lots of people have.
4110
4111 2003-11-12  Jackson Harper  <jackson@ximian.com>
4112
4113         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
4114         load corlib.dll if mscorlib.dll is not found.
4115         * assembly.h: Remove corlib name define.
4116         * class.c:
4117         * domain.c:
4118         * image.c: Change corlib name to mscorlib.
4119         
4120 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
4121
4122         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
4123
4124 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
4125
4126         * appdomain.h: Added loader_optimization here to sync with the C#
4127         code, and add disallow_binding_redirects field.
4128
4129 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
4130
4131         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
4132
4133         * reflection.c (mono_image_build_metadata): Fix crash on modules
4134         with no types.
4135
4136         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
4137
4138         * icall.c (ves_icall_get_method_info): Return callingConvention as
4139         well.
4140
4141         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
4142         namespaces from the EXPORTEDTYPE table as well.
4143
4144         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
4145         from all modules inside the assembly.
4146         
4147 2003-11-11  Martin Baulig  <martin@ximian.com>
4148
4149         * reflection.c (mono_reflection_bind_generic_parameters): Make
4150         this work for interfaces.
4151
4152 2003-11-11  Martin Baulig  <martin@ximian.com>
4153
4154         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
4155
4156 2003-11-11  Martin Baulig  <martin@ximian.com>
4157
4158         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
4159         "MonoInflatedMethod" and "MonoInflatedCtor".
4160
4161 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
4162
4163         * reflection.c (resolution_scope_from_image): Use the assembly table
4164         from the manifest module, since other modules don't have it.
4165
4166         * debug-helpers.c (mono_type_full_name): New helper function.
4167
4168         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
4169
4170         * image.c (mono_image_load_file_for_image): New public function which
4171         is a replacement for the load_file_for_image in class.c.
4172
4173         * assembly.c (mono_assembly_load_module): A wrapper for the function
4174         above which does assembly association and reference loading too.
4175
4176         * class.c (mono_class_from_name): Call mono_assembly_load_module.
4177
4178 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4179
4180         * appdomain.c: not all of the attributes for the full assembly name
4181         are required and the order doesn't matter. Fixes bug #50787.
4182
4183 2003-11-10  Dick Porter  <dick@ximian.com>
4184
4185         * locales.c: Use platform-endian UTF16
4186
4187 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
4188
4189         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
4190         
4191 2003-11-10  Martin Baulig  <martin@ximian.com>
4192
4193         * metadata.c
4194         (mono_metadata_load_generic_params): Make this actually work.
4195
4196         * reflection.c (mono_reflection_bind_generic_parameters): If our
4197         parent is a generic instance, pass all the `types' to it, no
4198         matter whether it has the same number of type parameters or not.
4199
4200 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
4201
4202         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
4203
4204         * assembly.c (mono_assembly_load_references): Move the image<->assembly
4205         assignment code to this function so it gets called recursively for all
4206         modules.
4207
4208         * image.c (load_modules): Remove the assembly assignment since it is
4209         now done by mono_assembly_load_references.
4210         
4211         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
4212         Add 'module' argument.
4213         (mono_module_get_types): New helper function.
4214         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
4215
4216 2003-11-08  Martin Baulig  <martin@ximian.com>
4217
4218         * class.c (mono_class_inflate_generic_method): Interface method
4219         don't have a header.
4220
4221         * reflection.c (mono_image_get_methodspec_token): Take an
4222         additional `MonoGenericInst *' argument instead of reading it from
4223         the header; this is necessary to support interfaces.
4224         (mono_image_create_token): Pass the `MonoGenericInst *' from the
4225         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
4226         (inflated_method_get_object): Take an additional `MonoGenericInst *'
4227         argument.
4228
4229         * reflection.h (MonoReflectionInflatedMethod): Added
4230         `MonoGenericInst *ginst'.
4231
4232 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
4233
4234         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
4235
4236 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
4237
4238         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
4239
4240 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
4241
4242         * reflection.c 
4243         (reflection_methodbuilder_from_method_builder):
4244         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
4245         initialize a ReflectionMethodBuilder structure.
4246         (mono_image_get_methodbuilder_token):
4247         (mono_image_get_ctorbuilder_token): New functions to emit memberref
4248         tokens which point to types in another module inside the same assembly.
4249
4250         * reflection.c: Use the new helper functions.
4251         
4252         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
4253
4254         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
4255         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
4256
4257         * reflection.c (resolution_scope_from_image): Emit a moduleref if
4258         neccesary.
4259
4260         * reflection.c (mono_image_build_metadata): Emit metadata only for the
4261         current module. Emit the manifest only for the main module.
4262
4263         * reflection.c (mono_image_create_token): Add assertion when a 
4264         memberref needs to be created.
4265
4266         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
4267
4268         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
4269         larger buffer for the custom attribute blob. Fixes #50637.
4270         
4271 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4272
4273         * threadpool.c: notify listener on async processing handles after
4274         invoking the async callback. Thanks to Zoltan.
4275
4276 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
4277
4278         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
4279         avoid code duplication.
4280
4281         * reflection.h (MonoDynamicImage): New type which is currently unused,
4282         but will be used through the ref.emit code in place of 
4283         MonoDynamicAssembly.
4284
4285         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
4286         object layout.
4287
4288         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
4289         a MonoDynamicImage instead of just a MonoImage.
4290         
4291         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
4292         icalls to ModuleBuilder but keep their semantics, so they will work
4293         with moduleb->assemblyb. This will change later.
4294         
4295 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
4296
4297         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
4298         object layout.
4299
4300         * reflection.c (mono_image_build_metadata): Avoid creation of a default
4301         main module, since it is now done by the managed code.
4302
4303 2003-11-03  Martin Baulig  <martin@ximian.com>
4304
4305         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
4306         `ginst->klass' here.
4307         (method_encode_methodspec): Don't use the `ginst->generic_method's
4308         klass if it's a generic instance, use `ginst->klass' in this case.
4309
4310 2003-11-03  Martin Baulig  <martin@ximian.com>
4311
4312         * reflection.c (mono_image_get_generic_method_param_info):
4313         Removed, use mono_image_get_generic_param_info() instead.
4314         (mono_image_get_type_info): Write the GenericParam table before
4315         the Method table.  This is neccessary because in the GenericParam
4316         table, type parameters of the class (ie. '!0' etc.) must come
4317         before the ones from its generic methods (ie. '!!0' etc).
4318
4319 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
4320
4321         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
4322
4323 2003-11-02  Martin Baulig  <martin@ximian.com>
4324
4325         * reflection.c (create_generic_typespec): Take a
4326         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
4327         the generic parameters from it.
4328
4329 2003-11-02  Martin Baulig  <martin@ximian.com>
4330
4331         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
4332         instead of a `MonoClassField *' since we just need the type.
4333         (create_generic_typespec): New static function.  Creates a
4334         TypeSpec token for a generic type declaration.
4335         (mono_image_get_generic_field_token): New static function.
4336         (mono_image_create_token): If we're a FieldBuilder in a generic
4337         type declaration, call mono_image_get_generic_field_token() to get
4338         the token.
4339
4340 2003-11-02  Martin Baulig  <martin@ximian.com>
4341
4342         * reflection.h
4343         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
4344         `MonoReflectionGenericInst *declaring_type' and
4345         `MonoReflectionGenericInst *reflected_type' fields.
4346
4347         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
4348         `MonoReflectionGenericInst *declaring_type' and a
4349         `MonoReflectionGenericInst *reflected_type' argument instead of a
4350         single `MonoReflectionGenericInst *type' one.  Set
4351         `res->declaring_type' and `res->reflected_type' from them.
4352         (mono_reflection_inflate_field): Likewise.      
4353
4354 2003-11-02  Martin Baulig  <martin@ximian.com>
4355
4356         * class.c (mono_class_setup_vtable): Don't store generic methods
4357         in the vtable.  
4358
4359 2003-11-02  Martin Baulig  <martin@ximian.com>
4360
4361         * reflection.h (MonoReflectionGenericInst): Added
4362         `MonoReflectionType *declaring_type'.
4363
4364         * reflection.c (mono_reflection_bind_generic_parameters): Use
4365         `if (tb->parent)' instead of `klass->parent'.
4366
4367 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
4368
4369         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
4370         with an empty ASSEMBLY table.
4371
4372         * reflection.c (mono_image_build_metadata): Avoid using the same loop
4373         variable in the inner and outer loops.
4374
4375 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
4376
4377         * metadata.h (mono_metadata_make_token): Put parentheses around macro
4378         argument.
4379
4380         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
4381         
4382         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
4383         icalls. Instead, do everything in managed code. This is needed since
4384         it is hard to restore the original domain etc. in unmanaged code in the
4385         presence of undeniable exceptions.
4386
4387         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
4388         New icalls to push and pop appdomain refs.
4389
4390 2003-10-31  Martin Baulig  <martin@ximian.com>
4391
4392         * class.c (inflate_generic_type): Renamed to
4393         mono_class_inflate_generic_type() and made it public.
4394
4395         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
4396         New interncall.
4397
4398         * loader.c (mono_field_from_memberref): Also set the retklass for
4399         typespecs.
4400
4401         * fielder.c (mono_image_get_inflated_field_token): New static
4402         method; creates a metadata token for an inflated field.
4403         (mono_image_create_token, fixup_method): Added support for
4404         "MonoInflatedField".
4405         (fieldbuilder_to_mono_class_field): New static function.
4406         (mono_reflection_inflate_field): New public function.
4407
4408         * reflection.h
4409         (MonoReflectionGenericInst): Added `MonoArray *fields'.
4410         (MonoReflectionInflatedField): New typedef.     
4411
4412 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
4413
4414         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
4415         for Solaris and other platforms without s6_addr16
4416
4417 2003-10-30  Martin Baulig  <martin@ximian.com>
4418
4419         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
4420         argument instead of two.
4421         (mono_class_inflate_generic_signature): Likewise.
4422         (inflate_generic_header): Likewise.
4423         (mono_class_inflate_generic_method): Likewise.  In addition, if
4424         `ginst->klass' is set, it becomes the new `method->klass'.
4425
4426         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
4427         field.
4428
4429         * reflection.c (encode_generic_method_sig): Write a 0xa as the
4430         first byte. [FIXME]
4431         (method_encode_methodspec): If we have generic parameters, create
4432         a MethodSpec instead of a MethodRef.
4433         (fixup_method): Added support for "MonoInflatedMethod" and
4434         "MonoInflatedCtor".
4435         (mono_image_create_token): Added support for "MonoInflatedMethod"
4436         and "MonoInflatedCtor".
4437         (inflated_method_get_object): New static function; returns a
4438         managed "System.Reflection.MonoInflatedMethod" object.
4439         (mono_reflection_bind_generic_method_parameters): Return a
4440         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
4441         (mono_reflection_inflate_method_or_ctor): Likewise.
4442         (mono_image_get_generic_method_param_info): Initialize unused
4443         fields to zero.
4444         (mono_image_get_generic_param_info): Likewise.
4445
4446         * reflection.h (MonoReflectionInflatedMethod): New public
4447         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
4448         "S.R.MonoInflatedCtor" classes.
4449
4450         * loader.c (method_from_memberref): If we're a TypeSpec and it
4451         resolves to a generic instance, inflate the method.
4452
4453 2003-10-28  Dick Porter  <dick@ximian.com>
4454
4455         * object.c (mono_runtime_run_main): Convert command-line arguments
4456         into utf8, falling back to the user's locale encoding to do so.
4457
4458 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
4459
4460         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
4461         at this time.
4462
4463         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
4464
4465         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
4466         up icalls at method definition time. Partially fixes #33569.
4467
4468 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
4469
4470         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
4471         marshalling of arrays. Fixes #50116.
4472
4473         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
4474
4475         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
4476         points to a vtable in the dying appdomain.
4477
4478         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
4479         listeners into unmanaged code inside the lock.
4480
4481         * object.c (mono_class_vtable): Turn off typed allocation in non-root
4482         domains and add some comments.
4483
4484 2003-10-25  Martin Baulig  <martin@ximian.com>
4485
4486         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
4487
4488         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
4489
4490         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
4491         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
4492         currently parsing.  Create the generic class and store it in
4493         `generic_inst->klass' before parsing the type arguments.  This is
4494         required to support "recursive" definitions; see mcs/tests/gen-23.cs
4495         for an example.
4496         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
4497         to support recursive typespec entries.
4498
4499         * class.c (mono_class_setup_parent): If our parent is a generic
4500         instance, we may get called before it has its name set.
4501         (mono_class_from_generic): Splitted into
4502         mono_class_create_from_generic() and mono_class_initialize_generic().
4503
4504 2003-10-25  Martin Baulig  <martin@ximian.com>
4505
4506         * icall.c (ves_icall_Type_BindGenericParameters): Return a
4507         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
4508         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
4509         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
4510
4511         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
4512         (create_typespec): Likewise.
4513         (mono_reflection_bind_generic_parameters): Return a
4514         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
4515         (mono_reflection_inflate_method_or_ctor): New public function.
4516
4517         * reflection.h (MonoReflectionGenericInst): New typedef.        
4518
4519 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
4520
4521         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
4522         inside the domain lock. Fixes #49993.
4523         
4524         * object.c (mono_class_vtable): When typed allocation is used, 
4525         allocate vtables in the GC heap instead of in the mempool, since the
4526         vtables contain GC descriptors which are used by the collector even
4527         after the domain owning the mempool is unloaded.
4528
4529         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
4530
4531         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
4532         reflect what it does. Also invalidate mempools instead of freeing
4533         them if a define is set.
4534
4535         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
4536         of the appdomain.
4537         
4538         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
4539         hold the finalizable objects in this domain.
4540
4541         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
4542         appdomain.
4543
4544         * appdomain.c (mono_domain_set): New function to set the current
4545         appdomain, but only if it is not being unloaded.
4546
4547         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
4548         appdomain which is being unloaded.
4549         
4550         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
4551         unloading of the root appdomain.
4552
4553         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
4554         icall to execute a method in another appdomain. Intended as a 
4555         replacement for InternalSetDomain, which can confuse the code 
4556         generation in the JIT.
4557
4558         * appdomain.c (mono_domain_is_unloading): New function to determine
4559         whenever an appdomain is unloading.
4560
4561         * appdomain.c (mono_domain_unload): New function to correctly unload
4562         an appdomain.
4563
4564         * assembly.c (mono_assembly_load_references): Check that an assembly
4565         does not references itself.
4566
4567         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
4568         domain manually, it asks the finalizer thread to do it, then waits for
4569         the result. Also added a timeout.
4570
4571         * icall.c: Register the new icalls.
4572
4573         * threads.h threads.c: Export the mono_gc_stop_world and 
4574         mono_gc_start_world functions.
4575         
4576         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
4577         function to fill out the mempool with 0x2a.
4578
4579 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
4580
4581         * reflection.h (MonoReflectionMethodAux): New structure to store
4582         information which is rarely used, thus is not in the MonoMethod
4583         structure.
4584
4585         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
4586         store the aux info.
4587
4588         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
4589         and marshalling info into the aux structure.
4590
4591         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
4592         from the aux structure.
4593
4594         * loader.c (mono_method_get_param_names): Retrieve the param names from
4595         the aux structure.
4596         
4597 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
4598
4599         * exception.h exception.c: Add AppDomainUnloadedException && fix 
4600         warning.
4601
4602 2003-10-21  Dick Porter  <dick@ximian.com>
4603
4604         * socket-io.c
4605         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
4606         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
4607
4608 2003-10-21  Martin Baulig  <martin@ximian.com>
4609
4610         * reflection.c (mono_reflection_bind_generic_parameters):
4611         `klass->parent' is NULL for interfaces.
4612
4613 2003-10-21  Martin Baulig  <martin@ximian.com>
4614
4615         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
4616
4617 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
4618
4619         * exception.c (mono_exception_from_name_msg): New helper function for
4620         creating exceptions and initializing their message field.
4621
4622         * exception.c: Simplify functions using the new helper.
4623
4624         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
4625         New function.
4626
4627         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
4628         mono_raise_exception, since otherwise gcc doesn't generate the function
4629         epilog for raise_exception, confusing the stack unwinding in the JIT.
4630         Fixes #45043.
4631
4632         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
4633         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
4634         Fixes #49499.
4635
4636 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4637
4638         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
4639         utf8.
4640
4641 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
4642
4643         * icall.c: Removed GetUninitializedObject method because
4644           AllocateUninitializedClassInstance does the same.
4645
4646 2003-10-18  Martin Baulig  <martin@ximian.com>
4647
4648         * class.c (inflate_generic_signature): Renamed to
4649         mono_class_inflate_generic_signature() and made it public.
4650         (my_mono_class_from_generic_parameter): New static function; if we
4651         don't already have the generic parameter's MonoClass, create a
4652         very simple one which is just used internally in the runtime and
4653         not passed back to managed code.
4654
4655         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
4656
4657         * metadata.h (MonoMethodSignature): Moved the
4658         `MonoGenericParam *gen_params' to the MonoMethodHeader.
4659         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
4660
4661         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
4662         ves_icall_MonoMethod_GetGenericArguments(); this is now an
4663         interncall on the MonoMethod class, not on MethodInfo.
4664         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
4665         calling mono_reflection_bind_generic_method_parameters() directly.
4666
4667         * loader.c (mono_method_get_signature): If this is a MethodSpec;
4668         return the already computed `method->signature'.
4669         (method_from_methodspec): New static function to load a method
4670         from a MethodSpec entry.
4671         (mono_get_method_from_token): Call the new method_from_methodspec()
4672         for MethodSpec tokens.  
4673         (mono_get_method_from_token): If we're a generic method, load the
4674         type parameters.
4675
4676         * reflection.c (mono_image_get_memberref_token): Allow
4677         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
4678         table.
4679         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
4680         (mono_image_create_token): First check whether it's a generic
4681         method (so we'd need to create a MethodSpec), then do the other
4682         two alternatives.
4683         (mono_reflection_bind_generic_method_parameters): Return a
4684         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
4685         called directly from the interncall.
4686
4687 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
4688
4689         * reflection.c (load_public_key): Move loading of the public key
4690         into managed code.
4691
4692         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
4693
4694         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
4695         fields.
4696
4697         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
4698         culture, hash_alg and public_key. Fixes #49555.
4699
4700 2003-10-17  Martin Baulig  <martin@ximian.com>
4701
4702         * class.h (MonoGenericInst): Moved this declaration here and added
4703         `MonoMethod *generic_method'.
4704
4705         * icall.c
4706         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
4707         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
4708
4709         * metadata.c (mono_metadata_type_equal): Two types of
4710         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
4711         index; ie. don't compare the address of the `MonoGenericParam'
4712         structure.
4713         (mono_metadata_load_generic_params): Removed the `MonoMethod
4714         *method' argument.
4715
4716         * metadata.h (MonoGenericInst): Moved declaration to class.h.
4717         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
4718
4719         * reflection.c (method_encode_signature): Encode the number of
4720         generic parameters.
4721         (encode_generic_method_sig): New static function.
4722         (method_encode_methodspec): New static function; creates an entry
4723         in the MethodSpec table for a generic method.
4724         (mono_image_get_methodspec_token): New static function.
4725         (mono_image_create_token): Call mono_image_get_methodspec_token()
4726         for generic methods.
4727         (mono_reflection_bind_generic_method_parameters): New public
4728         function.  Instantiates a generic method.
4729
4730 2003-10-16  Martin Baulig  <martin@ximian.com>
4731
4732         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
4733         *gen_params' here from MonoMethodHeader.
4734
4735         * metadata.c (mono_metadata_parse_method_signature): If we have
4736         generic parameters, initialize `method->gen_params' and then set
4737         the correct `type->data.generic_param' in all the parameters.
4738
4739 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
4740
4741         * threads.c (mono_threads_get_default_stacksize): New function to 
4742         return the default stacksize.
4743
4744         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
4745         termination of the finalizer thread, since the previous method had
4746         race conditions. Fixes #49628.
4747
4748         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
4749         as for the other managed threads.
4750
4751 2003-10-16  Martin Baulig  <martin@ximian.com>
4752
4753         * class.c (inflate_generic_signature): Copy `generic_param_count'
4754         and `gen_params'.
4755
4756         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
4757         New interncall.
4758
4759         * metadata.c (mono_metadata_parse_method_signature): Actually set
4760         the `method->generic_param_count' here.
4761         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
4762
4763 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
4764
4765         * object.h: Add a new field to TypedRef to simplify the implementation
4766         of the REFANY opcodes in the JIT.
4767
4768         * icall.c: Make use of the new field.
4769
4770         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
4771         dynamically.
4772
4773 2003-10-15  Martin Baulig  <martin@ximian.com>
4774
4775         * class.c (mono_class_from_gen_param): Renamed to
4776         mono_class_from_generic_parameter() and moved most of the
4777         functionality from mono_reflection_define_generic_parameter()
4778         here; ie. we create a "real" class here.
4779         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
4780         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
4781         previously been called.
4782
4783         * class.h (MonoGenericParam): Moved the declaration of this struct
4784         here from metadata.h and added `MonoMethod *method'.
4785
4786         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
4787         interncall.
4788
4789         * loader.c (mono_get_method_from_token): If we have any generic
4790         parameters, call mono_metadata_load_generic_params() to read them
4791         from the MONO_TABLE_GENERICPAR.
4792
4793         * metadata.c (mono_metadata_load_generic_params): Added
4794         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
4795
4796         * metadata.h (MonoMethodSignature): Replaced
4797         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
4798         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
4799
4800         * reflection.c (mono_reflection_define_generic_parameter): Moved
4801         most of the functionality into the new
4802         mono_class_from_generic_parameter(); set the `method' field if
4803         we're a method parameter.       
4804
4805 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
4806
4807         * marshal.c (emit_struct_conv): if native size is 0
4808         emit no code.
4809
4810 2003-10-14  Martin Baulig  <martin@ximian.com>
4811
4812         * icall.c: The generics API has changed in the spec since it was
4813         added to System.Type; these modifications make it match the spec
4814         again.
4815         (ves_icall_Type_GetGenericParameters): Renamed to
4816         `ves_icall_Type_GetGenericArguments'.
4817         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
4818         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
4819         `ves_icall_MonoType_get_HasGenericArguments'.
4820         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
4821         `ves_icall_MonoType_get_IsGenericParameter'.
4822         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
4823         this is no interncall anymore.
4824         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
4825         `ves_icall_TypeBuilder_get_IsGenericParameter'.
4826
4827 2003-10-14  Martin Baulig  <martin@ximian.com>
4828
4829         * reflection.c (mono_reflection_bind_generic_parameters): Also
4830         inflate generic methods if we're reading the class from IL.
4831
4832 2003-10-13  Martin Baulig  <martin@ximian.com>
4833
4834         * reflection.c (mono_reflection_define_generic_parameter): This
4835         method isn't called directly from the icall anymore; take a
4836         `MonoReflectionAssemblyBuilder *' so we can use this for type and
4837         method generic parameters.
4838         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
4839         (method_builder_encode_signature): Encode generic parameters.
4840         (mono_image_get_method_info): Write generic params to the
4841         MONO_TABLE_GENERICPARAM table.
4842
4843         * reflection.h (MonoReflectionMethodBuilder): Added
4844         `MonoArray *generic_params'.
4845
4846         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
4847
4848         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
4849         wrapper for mono_reflection_define_generic_parameter().
4850         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
4851
4852 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
4853
4854         * marshal.h: Add missing function to fix build.
4855
4856         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
4857         the SetLastError pinvoke attribute.
4858
4859         * marshal.c (mono_marshal_set_last_error): New helper function called
4860         by the generated code.
4861         
4862         * marshal.c (mono_mb_emit_branch): New helper function.
4863
4864         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
4865
4866         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
4867         classes as parameters and return values of delegates. Fixes #29256. 
4868
4869 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
4870
4871         * locales.c: use gint32 in non HAVE_ICU case
4872
4873 2003-10-11  Martin Baulig  <martin@ximian.com>
4874
4875         * mono-debug.c (mono_debug_add_method): Added a workaround for
4876         bug #48591.
4877
4878 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
4879
4880         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
4881         delegates passed to native code must use the STDCALL calling 
4882         convention. Fixes #35987.
4883
4884 2003-10-10  Martin Baulig  <martin@ximian.com>
4885
4886         * class.c (inflate_generic_type): If we're inflating for a generic
4887         type instance (and not for a generic method), return
4888         MONO_TYPE_MVAR unchanged.
4889
4890 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4891
4892         * string-icalls.c: Join ignores null strings in the source array.
4893         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
4894         * threads.c: GetAvailableTheads is slightly more accurate.
4895
4896 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
4897
4898         * threads.h threads.c : add mono_threads_set_default_stacksize
4899         and pass default to CreateThread calls.
4900
4901 2003-10-09  Dick Porter  <dick@ximian.com>
4902
4903         * icall.c:
4904         * locales.h:
4905         * locales.c: Internal calls for constructing CultureInfo and
4906         related objects from libicu (if its available.)
4907
4908 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
4909
4910         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
4911
4912 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4913
4914         * threadpool.c: added an argument to async_invoke_thread that is the
4915         item to process, pass the MonoAsyncResult to the thread start function
4916         when creating a new thread. This way we don't need to acquire any lock
4917         when we're creating a new thread. Readded a semaphore for faster
4918         response times (instead of that Sleep i added).
4919
4920 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
4921
4922         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
4923         get daylight change dates better on Windows, fix handling
4924         of platforms without tm_gmtoff.
4925
4926 2003-10-06  Martin Baulig  <martin@ximian.com>
4927
4928         * class.c (inflate_generic_method): Renamed to
4929         mono_class_inflate_generic_method() and made public.
4930         (mono_class_init): Don't inflate the generic methods here.
4931         (mono_class_from_generic): Added `gboolean inflate_methods'
4932         argument.  Inflate the methods here.
4933
4934         * loader.c (mono_method_get_param_names): Ignore instances of
4935         generic types for the moment.
4936
4937         * reflection.c (fixup_method): Added support for inflated methods.
4938         (mono_image_create_token): Use mono_image_get_methodref_token()
4939         for inflated methods.
4940         (mono_custom_attrs_from_param): Ignore instances of generic types
4941         for the moment.
4942         (mono_reflection_bind_generic_parameters): New public function.
4943         Moved all the functionality from
4944         ves_icall_Type_BindGenericParameters() here and added support for
4945         dynamic types.
4946         (mono_reflection_define_generic_parameter): Initialize
4947         `klass->methods' here.
4948
4949         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
4950         functionality into mono_reflection_define_generic_parameter().
4951         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
4952         TypeBuilder, return that TypeBuilder.
4953
4954 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4955
4956         * appdomain.c: removed mono_delegate_semaphore.
4957
4958         * threadpool.c:
4959         (mono_thread_pool_add): moved hash table creation inside and the thread 
4960         creation outside of the critical region.
4961         (mono_thread_pool_finish): removed obsolete code.
4962         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
4963         continue or exit the thread depending on the queue.
4964
4965 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
4966
4967         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
4968         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
4969         handle more bool marshalling options
4970
4971 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
4972
4973         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
4974         arrays of structs. Also add a more descriptive error message when
4975         a structure member is marshalled as LPArray.
4976
4977 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
4978
4979         * marshal.c (mono_marshal_get_native_wrapper): Add support for
4980         marshalling arrays of complex types. Fixes #29098. Also remove an
4981         usused and incomplete function.
4982
4983 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
4984
4985         * gc.c: report heap_size - free_bytes as total memory allocated
4986         (bug#49362).
4987
4988 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
4989
4990         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
4991         fix timezone handling problems on Windows.
4992         
4993         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
4994         asserts when the year is outside the range handled by ms the functions.
4995
4996         * class.c (setup_interface_offsets): If the class is an interface,
4997         fill out its interface_offsets slot.
4998
4999 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5000
5001         * threadpool.c: mark threadpool threads as background.
5002
5003 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
5004
5005         * decimal.c - define DECINLINE to nothing if not using GCC
5006
5007 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
5008
5009         * assembly.c: More refcount fixes.
5010
5011 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5012
5013         * string-icalls.c: if we're not trimming, return the same string.
5014         When not splitting, don't create a new string.
5015
5016 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5017
5018         * image.c:
5019         (mono_image_open): increment the ref_count inside the critical section.
5020
5021 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
5022
5023         * image.c (mono_image_open): Fix reference counting bug.
5024
5025 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
5026
5027         * marshal.c (mono_marshal_type_size) struct alignment changed for 
5028         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
5029         64bits. Avoid leak in mono_marshal_get_native_wrapper when
5030         mono_lookup_pinvoke_call throws.        
5031
5032 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
5033
5034         * reflection.c (mono_reflection_parse_type): Fix #49114.
5035
5036         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
5037         temporary workaround for cygwin header problem.
5038
5039         * object.c (mono_object_isinst): Synchronize this with the code
5040         generated by the JIT for casts.
5041
5042 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
5043
5044         * reflection.c (encode_type): Fix #38332.
5045
5046 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
5047
5048         * marshal.c (mono_marshal_method_from_wrapper): New function to return
5049         the original method from the wrapper method.
5050
5051 2003-09-25  Martin Baulig  <martin@ximian.com>
5052
5053         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
5054         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
5055         (ves_icall_Type_get_IsGenericInstance): New interncall.
5056
5057 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
5058
5059         * object.c: fix cast warning in big endian code.
5060
5061 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
5062
5063         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
5064         
5065 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5066
5067         * assembly.c: don't call check_env from mono_assembly_load. It's
5068         already done once in mono_assemblies_init and may cause headaches when
5069         multiple threads are loading assemblies.
5070
5071 2003-09-19  Martin Baulig  <martin@ximian.com>
5072
5073         * reflection.c (mono_reflection_define_generic_parameter): Don't
5074         allocate `klass->methods', set `klass->flags' to
5075         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
5076
5077 2003-09-18  Martin Baulig  <martin@ximian.com>
5078
5079         * class.c (mono_class_init): Don't create `class->methods' if it's
5080         already initialized.
5081
5082         * metadata.c (mono_metadata_load_generic_params): Make this
5083         actually work.
5084
5085         * reflection.c (mono_reflection_define_generic_parameter): Set
5086         parent class and interfaces from the constraints.
5087
5088         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
5089         to keep this struct in sync with the declaration in TypeBuilder.cs.
5090
5091 2003-09-17  Martin Baulig  <martin@ximian.com>
5092
5093         * metadata.h (MonoType): Replaced the data's `int type_param'
5094         field with `MonoGenericParam *generic_param'.
5095         (MonoGenericParam): Added `MonoClass *klass'.
5096
5097         * class.c (mono_class_from_gen_param): Removed the
5098         `MonoImage *image' and `int type_num' arguments.
5099
5100         * metadata.c (mono_metadata_parse_generic_param): New static
5101         method; creates a MonoGenericParam which just contains the index.
5102         (do_mono_metadata_parse_type): Call
5103         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
5104         MONO_TYPE_MVAR.
5105
5106         * reflection.c (mono_image_typedef_or_ref): Generic type
5107         parameters may be in the same assembly, but never use a typedef
5108         for them.
5109         (mono_reflection_define_generic_parameter): We're now creating a
5110         "real" class for the type parameter; it's now safe to call
5111         mono_class_from_mono_type() on the class'es type, it'll do the
5112         right thing.
5113
5114 2003-09-16  Martin Baulig  <martin@ximian.com>
5115
5116         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
5117         `symfile->range_entry_size' and `symfile->class_entry_size' here;
5118         the `symfile' data structure must be fully initialized before it
5119         gets added to the table.
5120
5121 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
5122
5123         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
5124
5125         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
5126         class init trampolines.
5127
5128 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
5129
5130         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
5131         to the built-in profiler to turn off time and allocation profiling
5132         respectively.
5133
5134 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
5135
5136         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
5137         g_direct_equal.
5138
5139         * debug-helpers.c (mono_method_full_name): Print the wrapper type
5140         in human readable form.
5141
5142 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
5143
5144         * reflection.c icall.c: Fixed warnings.
5145
5146         * image.c (load_class_names): Use a temporary hash table to hold the
5147         namespaces in order to avoid doing many string comparisons.
5148
5149         * image.h: Fix typo.
5150
5151         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
5152         Pass NULL instead of g_direct_equal to the GHashTable constructor 
5153         since the NULL case is short-circuited inside g_hash_table_lookup, 
5154         leading to better performance.  
5155
5156         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
5157         obtain the first custom attribute for a given index. Depends on the
5158         CustomAttribute table being sorted by the parent field.
5159
5160         * reflection.c (mono_custom_attrs_from_index): Use the new function 
5161         for better performance.
5162
5163 2003-09-07  Martin Baulig  <martin@ximian.com>
5164
5165         * class.c (mono_class_init): If we're a generic instance, inflate
5166         all our methods instead of loading them from the image.
5167         (mono_class_from_generic): Set `class->methods = gklass->methods'.
5168
5169 2003-09-07  Martin Baulig  <martin@ximian.com>
5170
5171         * mono-debug-debugger.c: Added support for constructors.
5172
5173 2003-09-06  Martin Baulig  <martin@ximian.com>
5174
5175         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
5176         New interncall.
5177
5178         * reflection.c (mono_reflection_setup_generic_class): Call
5179         ensure_runtime_vtable() to create the vtable.
5180
5181 2003-09-05  Martin Baulig  <martin@ximian.com>
5182
5183         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
5184         MONO_TYPE_MVAR.
5185
5186 2003-09-04  Martin Baulig  <martin@ximian.com>
5187
5188         * reflection.c (mono_reflection_define_generic_parameter): Generic
5189         parameters start with zero.
5190
5191 2003-09-04  Martin Baulig  <martin@ximian.com>
5192
5193         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5194
5195         * reflection.h (MonoReflectionGenericParam): New typedef.
5196         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
5197         the generic parameters from the managed TypeBuilder.
5198
5199         * reflection.c (mono_reflection_define_generic_parameter): New function.
5200         (mono_reflection_create_runtime_class): Encode generic parameters.
5201         (mono_reflection_setup_generic_class): New function; this is
5202         called after adding adding all generic params to the TypeBuilder.
5203         (encode_type): Added MONO_TYPE_VAR.
5204
5205 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
5206
5207         * class.h class.c (mono_class_needs_cctor_run): Moved this method
5208         here from the JIT.
5209
5210         * assembly.h assembly.c: Moved the AOT loading code into an assembly
5211         load hook.
5212
5213 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
5214
5215         * reflection.h reflection.c class.h class.c: Delete duplicate 
5216         definition of mono_type_get_name () from reflection.c and export the
5217         one in class.c.
5218
5219         * class.c: Class loading fixes from Bernie Solomon 
5220         (bernard@ugsolutions.com).
5221
5222         * reflection.c: Endianness fixes from Bernie Solomon 
5223         (bernard@ugsolutions.com).
5224         
5225 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
5226
5227         * assembly.h assembly.c: Define a file format version for AOT
5228         libraries.
5229         
5230         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
5231
5232         * appdomain.h (MonoJitInfo): New field to determine whenever the
5233         code is domain neutral.
5234         
5235 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
5236
5237         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
5238
5239 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
5240
5241         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
5242         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
5243         Avoid caching the result since strings must be domain specific. Fixes
5244         #48050.
5245
5246 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
5247
5248         * marshal.c (mono_marshal_init): Make this callable multiple times
5249         since it is hard to find a correct place to call it.
5250
5251         * object.c (mono_runtime_class_init): Execute static constructors in
5252         the correct appdomain.
5253
5254         * image.c (build_guid_table): Handle the case when multiple images have
5255         the same GUID.
5256
5257 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5258
5259         * icall.c: added a couple of icalls for System.Web.
5260
5261 2003-08-28  Martin Baulig  <martin@ximian.com>
5262
5263         * icall.c (ves_icall_Type_BindGenericParameters): Use
5264         `klass->generic_inst' instead of `&klass->byval_arg' in the
5265         mono_type_get_object() call.  The returned type must be
5266         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
5267
5268 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
5269
5270         * NOTES: New file.
5271
5272         * object.c (mono_class_proxy_vtable): Make it thread safe.
5273
5274         * pedump.c: Fix warning.
5275
5276         * object.c appdomain.h: Get rid of metadata_section. 
5277         It is no longer needed and it was causing deadlocks with domain->lock.
5278
5279         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
5280
5281 2003-08-26  Martin Baulig  <martin@ximian.com>
5282
5283         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
5284
5285 2003-08-26  Martin Baulig  <martin@ximian.com>
5286
5287         * pedump.c (main): Call mono_metadata_init(),
5288         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
5289         and mono_loader_init().
5290
5291 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
5292
5293         * loader.h: Add missing include to fix build.
5294
5295         * image.h: mono_image_load_references is no more.
5296
5297         * assembly.c: Reworked assembly loading to make it really thread safe.
5298         After these changes, the assembly returned by mono_assembly_open is
5299         fully initialized, i.e. all its references assemblies are loaded.
5300
5301         * assembly.c (mono_image_load_references): Renamed to 
5302         mono_assembly_load_references, and made private, since clients no
5303         longer need to call it.
5304
5305         * class.c: Removed calls to mono_assembly_load_references, since it was
5306         a source of deadlocks.
5307
5308         * loader.h loader.c class.h class.c: Protect data structures using a 
5309         new lock, the loader lock.
5310
5311         * class.c (mono_class_setup_vtable): Create temporary hash tables and
5312         GPtrArrays only when needed.
5313
5314         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
5315         into empty structures by mcs. Fixes pinvoke7.cs.
5316         
5317         * domain.c (mono_init): Call a new initialization function.
5318
5319         * appdomain.c (mono_runtime_init): Call the new initializer function
5320         of the marshal module.
5321
5322         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
5323         inserted into empty structures by mcs. Fixes pinvoke7.cs.
5324
5325         * marshal.h marshal.c: Added locks around the wrapper caches to make
5326         this module thread safe.
5327
5328         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
5329         this argument. Fixes pinvoke1.exe.
5330
5331 2003-08-25  Lluis Sanchez <lluis@ximian.com>
5332
5333         * object.h: Added call_type field to MonoMethodMessage and the corresponding
5334         enumeration of values. Removed fields to store remote call output values in
5335         MonoAsyncResult. Not needed any more.
5336         * object.c: Initialize call_type and async_result fields in mono_message_init.
5337         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
5338         dispatching the message.
5339         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
5340         async call to finish. To do it use a message with EndInvoke call type.
5341
5342 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
5343
5344         * loader.h loader.c (mono_method_hash_marhal_info): New function which
5345         determines whenever a method has marshalling info.
5346
5347 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5348
5349         * assembly.c: fix the build on windows.
5350
5351 2003-08-22 Lluis Sanchez <lluis@ximian.com>
5352
5353         * object.cs: Fixed bug #47785.
5354
5355 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
5356
5357         * string-icalls.c (StringReplace): If their are no occurances of
5358         the old string found return a reference to the supplied
5359         string. This saves some memory and matches MS behavoir.
5360         
5361 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5362
5363         * socket-io.c: fixed compilation for systems that define AF_INET6
5364         and don't define SOL_IP/SOL_IPV6.
5365
5366 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
5367
5368         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
5369         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
5370
5371         * rawbuffer.c rawbuffer.h: Make this module thread safe.
5372
5373         * domain.c: Make this module thread safe.
5374
5375         * domain.c (mono_init): Call new initialization function.
5376
5377         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
5378         reference types too. Fixes #38812.
5379
5380         * image.c (mono_image_init): Fixed warnings.
5381
5382         * class.c (mono_class_from_typeref): Handle assembly load failure
5383         correctly.
5384
5385         * appdomain.c (add_assemblies_to_domain): Handle the case when
5386         the references of an assembly are not yet loaded.
5387
5388         * metadata.c image.c assembly.c: Moved initialization of global
5389         variables to a separate function called at startup since lazy 
5390         initialization of these variables is not thread safe.
5391         
5392         * image.c assembly.c: Made this module thread safe by adding locks in 
5393         the appropriate places.
5394
5395         * domain.c (mono_init): Call the new initialization functions of the
5396         three modules.
5397
5398 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
5399
5400         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
5401           make a direct call. It is proxy's work to make the call asynchronous.
5402           mono_delegate_end_invoke(): If the targe is a proxy, just collect
5403           the return values.
5404         * object.cs: mono_method_call_message_new(): read AsyncResult and
5405           state object from parameters list, if this info is requested.
5406         * object.h: Added fields to store remote call output values in
5407           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
5408
5409 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
5410
5411         * object.h: add needed fields to MonoThread.
5412         * threads.c, threads.h: allow registering a function to cleanup data
5413         allocated per thread by the JIT.
5414
5415 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
5416
5417         * loader.h: portability fix by Bernie Solomon
5418         * <bernard@ugsolutions.com>.
5419
5420 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
5421
5422         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
5423         return a MonoArray. This simplifies the code and also ensures that
5424         the cache allways contains an object reference as a value.
5425
5426         * icall.c (ves_icall_get_parameter_info): Simplified using the new
5427         function.
5428
5429 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5430
5431         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
5432         fixes a problem with byte ordering when getting the address family for
5433         a socket.
5434
5435 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
5436
5437         * .cvsignore: Added monosn.
5438
5439         * reflection.h reflection.c loader.c: Added support for parameter
5440         marshalling to dynamically created types. Fixes #47295.
5441
5442 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
5443
5444         * rand.c: remove useless warnings.
5445
5446 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
5447
5448         * class.c: implemented ldtoken for methods and fieldrefs.
5449
5450 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5451
5452         * threadpool.c: when mono_async_invoke was called, no one took care of
5453         monitoring the queue. So if the method invoked took some time and we
5454         got new async invoke requests after 500 ms (the thread created waited
5455         that long in WaitForSingleObject), the new async invoke was not called
5456         until the previous one finished.
5457
5458         This is fixed now. Thanks to Totte for helping with it.
5459
5460 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5461
5462         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
5463
5464 2003-08-11  Martin Baulig  <martin@ximian.com>
5465
5466         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
5467
5468 2003-08-06  Martin Baulig  <martin@ximian.com>
5469
5470         * mono-debug-debugger.c: Added support for static fields,
5471         properties and methods.
5472
5473 2003-08-06  Martin Baulig  <martin@ximian.com>
5474
5475         * mono-debug-debugger.c: Don't store the MonoString's vtable to
5476         make this work for applications with multiple application domains.
5477
5478 2003-08-04  Martin Baulig  <martin@ximian.com>
5479
5480         * mono-debug-debugger.c: Completely reworked the type support; the
5481         most important thing is that we're now just using one single
5482         `MonoType' instance per type.
5483
5484 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
5485
5486         * mono-endian.h, mono-endian.c, icall.c: Added icall
5487         ves_icall_System_Double_AssertEndianity to assert double word endianity
5488         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
5489
5490 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5491
5492         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
5493         support, icalls and fixes.
5494
5495 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
5496
5497         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
5498         classes that are a punctuation character in .NET is not the same a
5499         g_unichar_ispunct.
5500
5501 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
5502
5503         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
5504
5505 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
5506
5507         * icall.c: Add new MemCopy internalcall.
5508         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
5509         Simplified code; It is not necessary to handle all the cases here,
5510         as the C# code takes care of it.  Only handle the case of the name
5511         resource embedded into the assembly.
5512
5513         Changed signature to return the data pointer and the size of the
5514         data. 
5515
5516 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
5517
5518         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
5519         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
5520
5521 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
5522
5523         * socket-io.c: ignore EINTR error in select.
5524
5525 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
5526
5527         * class.h, class.c: removed unused subclasses field in MonoClass.
5528
5529 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
5530
5531         * icall.c: improve fix of get_base_definition(). If the parent class
5532           doesn't have the mehod, look at the parent of the parent.
5533         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
5534           to check if a parameter is an in or out parameter
5535           (PARAM_ATTRIBUTE_IN is not set by default).
5536           mono_method_return_message_restore(): Use mono_class_value_size to
5537           get the size of a value type. mono_type_stack_size (parameterType)
5538           does not return the correct value if parameterType is byRef.
5539           mono_load_remote_field(), mono_load_remote_field_new(),
5540           mono_store_remote_field(), mono_store_remote_field_new():
5541           raise exception if the remote call returns an exception.
5542
5543 2003-07-28  Martin Baulig  <martin@ximian.com>
5544
5545         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
5546         method.  This is a wrapper around mono_runtime_invoke() which
5547         boxes the instance object if neccessary.
5548
5549 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5550
5551         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
5552         metadata.h, row-indexes.h, verify.c: first cut of generics support.
5553
5554 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5555
5556         * icall.c: disable mcs bug workaround.
5557
5558 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
5559
5560         * object.c (mono_runtime_class_init): Take the metadata_section
5561         mutex before obtaining the domain mutex.
5562
5563         * appdomain.h: Added definition of metadata_section mutex here. 
5564
5565         * object.c: define metadata_mutex here.
5566
5567 2003-07-24  Ravi Pratap  <ravi@ximian.com>
5568
5569         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
5570         fixed.
5571
5572 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
5573
5574         * reflection.c: Fix bug #46669
5575
5576 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5577
5578         * exception.c:
5579         * exception.h:
5580         * icall.c:
5581         * object.h: fill in the type name for TypeLoadException.
5582
5583 2003-07-23  Ravi Pratap  <ravi@ximian.com>
5584
5585         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
5586         relationship between TypeBuilders while compiling corlib) and bug
5587         45993 (Array types returned from the runtime while compiling
5588         corlib were from the loaded corlib).
5589
5590 2003-07-22  Martin Baulig  <martin@ximian.com>
5591
5592         * mono-debug-debugger.c: Reworked the type support a bit more;
5593         distinguish between types and classes.
5594
5595 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
5596
5597         * icall.c: add IsArrayImpl icall.
5598
5599 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
5600
5601         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
5602         initializing real_size only once. Also fix bug #46602.
5603
5604 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
5605
5606         * object.c: Renamed mono_metadata_section to metadata_section.
5607
5608 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
5609
5610         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
5611           empty array if the type is an array. Fixed.
5612           ves_icall_MonoMethod_get_base_definition: if the base method
5613           is abstract, get the MethodInfo from the list of methods of
5614           the class.
5615         * reflection.c: ParameterInfo.PositionImpl should be zero-based
5616           and it was 1-based. Fixed in mono_param_get_objects.
5617
5618 2003-07-20  Martin Baulig  <martin@ximian.com>
5619
5620         * mono-debug.h: Set version number to 31.
5621         (mono_debug_init): Added `MonoDomain *' argument.
5622
5623         * mono-debug-debugger.c: Reworked the type support; explicitly
5624         tell the debugger about builtin types; pass the `klass' address to
5625         the debugger.
5626
5627 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
5628
5629         * image.c: Allow new metadata tables to be loaded without a
5630         warning. Also update the warning message to give the new constant value.
5631                 
5632 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
5633
5634         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
5635         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
5636         array type representation changes.
5637
5638 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
5639
5640         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
5641         on Environment.Exit () call.
5642
5643 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
5644
5645         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
5646         requires a matching corlib.
5647
5648 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
5649
5650         * Changelog: My editor decided to add a CR to each line. Sorry about that.
5651           Committed again without the CRs.
5652         
5653 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
5654
5655         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
5656           getting it from the "this" socket instance. Did not work
5657           if the socket is a subclass of Socket.
5658           Also fixed bug #35371.
5659
5660 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
5661
5662         * metadata.c: fixed size for TypedByRef.
5663         * loader.c: when searching for a method, consider the vararg amrker.
5664         * unicode.c, decimal.c: constify some arrays.
5665
5666 2003-07-15  Dick Porter  <dick@ximian.com>
5667
5668         * socket-io.c: Fixed compilation for gcc < 3.2.
5669
5670         Fixed compilation for machines that don't have AF_INET6 (thanks to
5671         Bernie Solomon <bernard@ugsolutions.com> for that part.)
5672
5673         Fixed compile warnings.
5674         
5675         Fixed formatting and line endings.
5676
5677 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
5678
5679         * socket-io.h:
5680         * socket-io.c: Added IPv6 support.
5681
5682 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
5683
5684         * class.c (mono_class_is_assignable_from): New function to implement
5685         the is_assignable_from logic. Used by mono_object_isinst, 
5686         Type::IsAssignableFrom () and the interpreter.
5687
5688         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
5689         Object, even interfaces.
5690         
5691         * object.c (mono_object_isinst): Implement in terms of 
5692         is_assignable_from.
5693
5694         * icall.c (ves_icall_type_is_assignable_from): New icall.
5695
5696 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
5697
5698         * domain.c (foreach_domain): fix compiler warning.
5699
5700 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
5701
5702         * image.c (load_metadata_ptrs): use g_strndup because strndup is
5703         not available on all plattforms
5704
5705 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
5706
5707         * image.h image.c: Store the metadata version string in MonoImage.
5708         * icall.c: New icall to retrieve the image version.
5709         * reflection.c (create_dynamic_image): Fill in the image version field
5710         * reflection.c (build_compressed_metadata): Use the image version
5711         from the image structure.
5712
5713 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5714
5715         * appdomain.c: modified comment.
5716         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
5717         That will be its last iteration when mono_gc_cleanup is called from
5718         mono_runtime_cleanup and before the domain is unloaded.
5719
5720         Fixes bug #45962.
5721
5722 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
5723
5724         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
5725         attributes.
5726
5727 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5728
5729         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
5730         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
5731         Bernie Solomon <bernard@ugsolutions.com>.
5732
5733 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
5734
5735         * object.c, object.h: provide mono_object_new_fast() for faster
5736         allocation in some special cases.
5737
5738 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
5739
5740         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
5741         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
5742
5743 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
5744
5745         * threadpool.c: fix leaks.
5746
5747 2003-07-01  Dick Porter  <dick@ximian.com>
5748
5749         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
5750         using MonoGHashTables.  Fixes threadpool bug posted to list.
5751
5752 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
5753
5754         * image.h, image.c: added support to load an assembly from a byte array.
5755         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
5756         assembly bundle support.
5757
5758 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
5759
5760         * threadpool.c (mono_thread_pool_add): keep a reference to the
5761         AsyncResult to prevent GC
5762
5763 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
5764
5765         * class.c: leak fix.
5766
5767 2003-06-25  Dick Porter  <dick@ximian.com>
5768
5769         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
5770         for the async object, the WaitHandle object will close the handle.
5771         Fixes bug 45321.
5772
5773 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
5774
5775         * class.c: in mono_array_class_get (), lookup from the hash with the
5776         same type we insert: this works around a bug in
5777         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
5778         lluis. The real fix will have to wait for after the release.
5779
5780 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
5781
5782         * icall.c: fix memory leak when getting type members.
5783
5784 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
5785
5786         * reflection.c: added more pubtoken special cases.
5787
5788 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
5789
5790         * class.c: handle field offset correctly when class size
5791         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
5792
5793 2003-06-20  Martin Baulig  <martin@ximian.com>
5794
5795         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
5796         *image' field.
5797
5798 2003-06-20  Martin Baulig  <martin@ximian.com>
5799
5800         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
5801
5802 2003-06-20  Martin Baulig  <martin@ximian.com>
5803
5804         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
5805         just distinguish between variables in registers and variables at
5806         an offset relative to a register.
5807
5808 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5809
5810         * icall.c: #ifdef out latest changes until mcs is fixed.
5811
5812 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
5813
5814         * icall.c: return members in metadata order.
5815
5816 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
5817
5818         * icall.c: avoid infinite loop in GetTimeZoneData.
5819
5820 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
5821
5822         * icall.c: added Marshal.Prelink/All icalls.
5823
5824 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
5825
5826         * object.c, object.h: fix warnings and do some overflow checking
5827         when creating arrays.
5828
5829 2003-06-17  Dick Porter  <dick@ximian.com>
5830
5831         * file-io.h:
5832         * file-io.c: File attributes need to be tweaked slightly when
5833         passed from the managed to the w32 world.
5834
5835 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
5836         * profiler.h profiler-private.h profiler.c: Rework last patch
5837         based on suggestion by Paolo.
5838         
5839 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
5840
5841         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
5842         instruction level coverage data collection.
5843         * profiler.h profiler.c (: Added new callback function which can be
5844         used by the profiler to limit which functions should have coverage
5845         instrumentation.
5846         * profiler.c (mono_profiler_load): Call g_module_build_path to
5847         generate the file name of the profiler library.
5848
5849 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
5850
5851         * profiler.c, profiler.h, profiler-private.h: added basic block 
5852         coverage profiling API.
5853
5854 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
5855
5856         * reflection.c (mono_reflection_create_runtime_class): Add support
5857         for events in dynamically generated code.
5858
5859         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
5860         not allocated.
5861
5862 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
5863
5864         * icall.c: when getting timezone info, return reasonable values if we
5865         can't get the actual data.
5866
5867 2003-06-14  Dick Porter  <dick@ximian.com>
5868
5869         * threads.c (start_wrapper): Remove the reference to the thread
5870         object in the TLS data, so the thread object can be finalized.
5871         This won't be reached if the thread threw an uncaught exception,
5872         so those thread handles will stay referenced :-( (This is due to
5873         missing support for scanning thread-specific data in the Boehm GC
5874         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
5875
5876 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
5877
5878         * reflection.c: ensure streams and tables are first allocated with
5879         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
5880
5881 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
5882
5883         * icall.c: fixed GetElementType for byrefs (bug# 44792).
5884
5885 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
5886
5887         * reflection.c (mono_reflection_create_runtime_class): Add support for
5888         properties to dynamically created classes.
5889         * reflection.c: Fix a few places where non-MonoObjects were inserted
5890         into the tokens hashtable.
5891
5892 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
5893
5894         * object.c: some support to handle out of memory exceptions.
5895
5896 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
5897
5898         * marshal.c (mono_marshal_get_native_wrapper): support reference
5899         return types
5900
5901 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
5902
5903         * object.h, object.c: more portability stuff from Bernie Solomon.
5904         Unexport mono_object_allocate(). Added mono_object_unbox ().
5905         Set exitcode when an unhandled exception is thrown.
5906
5907 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
5908
5909         * marshal.c (mono_marshal_get_native_wrapper): use custom
5910         marshaler for return types.
5911
5912 2003-06-10  Dick Porter  <dick@ximian.com>
5913
5914         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
5915         ip_mreq is available
5916
5917 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
5918
5919         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
5920         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
5921         by Bernie Solomon <bernard@ugsolutions.com>.
5922
5923 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
5924
5925         * gc.c (mono_gc_init): Avoid error message on shutdown when
5926         GC_DONT_GC=1 is used.
5927
5928         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
5929         New icall to return the GUID of a module.
5930
5931 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
5932
5933         * class.c: ensure instance size always includes the parent's size
5934         even whem class size is set explicitly (fixes bug#44294).
5935
5936 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
5937
5938         * profiler.h, profiler.c: made the simple profiler thread-safe,
5939         get more accurate timing info. Allow the loading of an
5940         externally-developed profiler module.
5941
5942 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
5943
5944         * marshal.c (mono_marshal_get_native_wrapper): improved
5945         class/byref arguments.
5946         (mono_marshal_get_native_wrapper): better string marshaling support.
5947
5948 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
5949
5950         * class.c: ensure .pack and .size are handled correctly and
5951         simplified layout of static fields.
5952
5953 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
5954
5955         * appdomain.c
5956         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
5957
5958         * loader.c (mono_lookup_pinvoke_call): look for modules in the
5959         current directory (fix bug 44008)
5960
5961 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
5962
5963         * marshal.c (mono_marshal_get_native_wrapper): started support for
5964         custom marshalers.
5965         (mono_delegate_to_ftnptr): consider marshalling specifications
5966
5967 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
5968
5969         * reflection.c, reflection.h: emit custom marshal info.
5970
5971 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5972
5973         * object.c: free the GError.
5974         * icall.c: added CloseEvent_internal.
5975         * threads.[ch]:
5976         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
5977         call.
5978
5979 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
5980
5981         * loader.c (mono_method_get_signature): Add support for dynamic
5982         assemblies.
5983
5984 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
5985
5986         * reflection.c: fixed bug #43905.
5987
5988 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
5989
5990         * class.c, domain.c, icall.c, metadata.h, object.h: support for
5991         handling TypedReference and ArgIterator.
5992         * loader.c, loader.h: added function to get signature at call site.
5993
5994 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
5995
5996         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
5997         data readonly. Buglets and warning fixes. Some MethodSpec support.
5998
5999 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
6000
6001         * class.h, class.c, object.c: remove relative numbering support.
6002
6003 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
6004
6005         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
6006         free the string, until we get a chance to fix Gtk#
6007
6008 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6009
6010         * marshal.c: revert last patch.
6011
6012 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
6013
6014         * icall.c: updates for new mono_class_vtable() not calling
6015         the type constructor anymore.
6016
6017 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
6018
6019         * object.h, object.c: separate vtable creation from type
6020         initialization. Make running the .cctor thread safe.
6021
6022 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
6023
6024         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
6025
6026 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
6027
6028         * loader.c (mono_get_method): consider calling convention
6029
6030 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
6031
6032         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
6033         to return the invisible global type for a module.
6034
6035         * reflection.c (mono_image_build_metadata): Emit global fields too.
6036
6037 2003-05-20  Peter Williams  <peterw@ximian.com>
6038
6039         * loader.c (mono_lookup_internal_call): Add a few newlines.
6040
6041 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
6042
6043         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
6044         literal strings.
6045
6046         * appdomain.c (set_domain_search_path): Recalculate search path when
6047         AppDomainSetup.PrivateBinPath changes.
6048
6049         * object.c (mono_class_compute_gc_descriptor): It turns out some
6050         parts of the class libs (like System.Thread) holds pointers to
6051         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
6052         to treat native int a pointer type here.
6053         
6054 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
6055
6056         * appdomain.h, domain.c: add hashtable for jump target resolution.
6057
6058 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
6059
6060         * reflection.h reflection.c icall.c: Added new icalls 
6061         GetManifestResourceInfoInternal, GetModulesInternal and support
6062         infrastructure.
6063
6064 2003-05-16  Dick Porter  <dick@ximian.com>
6065
6066         * icall.c:
6067         * file-io.h:
6068         * file-io.c: Implement System.IO.MonoIO::GetTempPath
6069
6070 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
6071
6072         * object.c: mono_store_remote_field: little fix to previous patch.
6073
6074 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
6075
6076         * class.c: add constructors to array classes.
6077         * icall.c: special case array construction for InternalInvoke (),
6078
6079 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
6080
6081         * class.h class.c reflection.c object.c: Added support for field
6082         defaults in dynamically generated classes.
6083
6084 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
6085
6086         * reflection.c: properly encode charset for ddlimport.
6087
6088 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
6089
6090         * threads.c: allow compiling without GC.
6091
6092 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
6093
6094         * appdomain.h, object.c, object.h, threads.c, threads.h: added
6095         handling of thread static data.
6096
6097 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
6098
6099         * reflection.h, reflection.c: added mono_custom_attrs_free ().
6100
6101 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
6102
6103         * class.c (mono_array_class_get): always set the serializable flags
6104         (mono_array_class_get): always set the SEALED attribute for array types
6105
6106 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
6107
6108         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
6109         attributes (fix for bug 42021).
6110
6111 2003-05-12  Dick Porter  <dick@ximian.com>
6112
6113         * gc.c: Don't run finalizers when the finalizer thread is
6114         finishing up, because the default domain has already been
6115         destroyed.
6116
6117 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
6118
6119         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
6120         value is null, we should throw an exception.   This is slightly
6121         different than the other conventions used for the constructor.
6122
6123 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6124
6125         * socket-io.c: fixed windows build.
6126
6127 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6128
6129         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
6130
6131 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
6132
6133         * object.c (mono_string_new_wrapper): Compatibility fix for MS
6134         compilers.
6135
6136 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
6137
6138         * class.c (mono_class_layout_fields): Add experimental GC aware
6139         auto layout facility. Requires class library changes to work correctly.
6140
6141         (mono_class_setup_vtable): Avoid overriding explicit interface
6142         method implementations. Fixes iface3.exe test.
6143
6144         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
6145         object reference.
6146         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
6147         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
6148
6149         * metadata.h: Add new type classification macro which determines
6150         whenever the type holds an object reference.
6151
6152 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
6153
6154         * marshal.c (mono_marshal_get_native_wrapper): cleanups
6155
6156 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
6157
6158         * gc.c (finalizer_thread): Work around a GC bug.
6159
6160 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
6161
6162         * marshal.c (emit_struct_conv): allow unions
6163
6164         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
6165
6166 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
6167
6168         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
6169
6170 2003-05-06  Martin Baulig  <martin@ximian.com>
6171
6172         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
6173
6174 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6175
6176         * socket-io.c:
6177         (Select_internal): allow NULLs, don't create arrays if not needed.
6178         Coupled with Socket.cs changes.
6179
6180         * threadpool.c:
6181         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
6182         register a finalizer for it that will close the semaphore handle. This
6183         fixes the leak and make Lupus' test run with > 4080 loops.
6184
6185 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
6186
6187         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
6188         Jerome Laban (bug #42287)
6189
6190 2003-05-02  Martin Baulig  <martin@ximian.com>
6191
6192         * debug-mono-symfile.h
6193         (MonoSymbolFile): Moved declaration into mono-debug.h.
6194         (MonoDebugMethodJitInfo): Likewise.
6195         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
6196         argument.
6197         (_mono_debug_address_from_il_offset): Take a
6198         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
6199
6200         * mono-debug.h
6201         (MonoDebugDomainData): New struct.
6202         (mono_debug_get_domain_data): New function.
6203         (mono_debug_add_method): Take an additional `MonoDomain *'
6204         argument.
6205         (mono_debug_source_location_from_address): Likewise.
6206         (mono_debug_il_offset_from_address): Likewise.
6207         (mono_debug_address_from_il_offset): Likewise.
6208
6209 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
6210
6211         * reflection.c: one more check for null type in custom attrs.
6212
6213 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6214
6215         * reflection.c: avoid warning (comparison is always false due to limited
6216         range of data type).
6217
6218 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6219
6220         * icall.c: throw an exception in Type.GetField if the argument 'name'
6221         is NULL.
6222
6223 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
6224
6225         * reflection.c: fixed handling of enums in named arguments to custom
6226         attributes (bug #42123).
6227
6228 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
6229
6230         * reflection.c: use the right array element type and handle
6231         a null for a Type argument, too.
6232
6233 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
6234
6235         * reflection.c: handle arrays as arguments to custom attributes.
6236
6237 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
6238
6239         * reflection.c: handle a string value in a custom attr
6240         ctor that takes an object.
6241
6242 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
6243
6244         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
6245         (fix bug #42063)
6246
6247 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
6248
6249         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
6250
6251 2003-04-27  Martin Baulig  <martin@ximian.com>
6252
6253         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
6254         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
6255         MONO_DEBUGGER_EVENT_BREAKPOINT.
6256         (mono_breakpoint_trampoline_code): Removed.
6257         (mono_debugger_event_handler): The last argument is now a
6258         `guint32'.
6259         (mono_debugger_insert_breakpoint_full): Removed the
6260         `use_trampoline' argument.
6261         (mono_debugger_method_has_breakpoint): Likewise.
6262         (mono_debugger_trampoline_breakpoint_callback): Renamed to
6263         mono_debugger_breakpoint_callback(); take the method and
6264         breakpoint number as arguments.
6265
6266 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
6267
6268         * metadata.c: fix off by one when loading parameters attributes.
6269
6270 2003-04-24  Martin Baulig  <martin@ximian.com>
6271
6272         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
6273
6274 2003-04-24  Martin Baulig  <martin@ximian.com>
6275
6276         * mono-debug-debugger.c: Moved all code which interacts with the
6277         Mono Debugger here.
6278
6279         * debug-mono-symfile.c: This code now just deals with the symbol
6280         file itself, the debugger code is now in mono-debug-debugger.c.
6281
6282 2003-04-23  Martin Baulig  <martin@ximian.com>
6283
6284         * mono-debug.c (mono_debug_source_location_from_il_offset):
6285         New method; like mono_debug_source_location_from_address(), but
6286         takes an IL offset instead of a machine address.
6287
6288 2003-04-23  Martin Baulig  <martin@ximian.com>
6289
6290         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
6291         `line' field; this is now computed by the debugger.
6292
6293 2003-04-23  Martin Baulig  <martin@ximian.com>
6294
6295         * mono-debug.[ch]: New files.  This is the new debugging interface.
6296
6297         * mono-debug-debugger.[ch]: New files.  Moved all code which
6298         interacts with the Mono Debugger here.
6299
6300 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
6301
6302         * domain.c (mono_init): initialize mono_defaults.monitor_class
6303
6304 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
6305
6306         * reflection.c (method_encode_code): Add a spicy exception to help
6307         future compiler authors.
6308
6309 2003-04-21  Martin Baulig  <martin@ximian.com>
6310
6311         * icall.c
6312         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
6313         Make this work with relative pathnames; g_filename_to_uri() needs
6314         an absolute filename.
6315
6316 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
6317
6318         * icall.c: Track name changes in Object and ValueType.
6319
6320 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
6321
6322         * metadata.c (mono_type_stack_size): size should be a multiple of
6323         sizeof (gpointer)
6324
6325 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6326
6327         * gc.c:
6328         (internal_domain_finalize): moved into mono_domain_finalize. No need
6329         to create another thread because the finalizers will be run in the
6330         finalizer thread.
6331         
6332         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
6333         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
6334         to be run (MS does this too).
6335
6336 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
6337
6338         * object.c (mono_class_compute_gc_descriptor): Update comment.
6339
6340         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
6341
6342         * image.h: Add synchronized wrapper cache.
6343
6344         * image.c (do_mono_image_open): Initialize cache.
6345
6346         * reflection.c (create_dynamic_mono_image): Initialize cache.
6347
6348 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6349
6350         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
6351         ves_icall_System_Buffer_ByteLengthInternal.
6352
6353 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
6354
6355         * reflection.c: setup klass->nested_in earlier. Allow
6356         a dash in the assembly name.
6357
6358 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
6359
6360         * metadata.c (mono_type_to_unmanaged): dont access
6361         type->data.klass for MONO_TYPE_OBJECT
6362         (mono_type_to_unmanaged): consider System.Delegate class
6363
6364 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
6365
6366         * class.c: just setup supertypes in the proper place instead of
6367         initializing the full element class for arrays.
6368
6369 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
6370
6371         * class.c: ensure the element class of arrays is initialized.
6372         Setup the supertype info for array classes, too.
6373
6374 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
6375
6376         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
6377
6378 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6379
6380         * Makefile.am: re-added -m option when running cygpath. This way,
6381         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
6382         separator.
6383         * mono-config.c: same codepath for locating mono config file for WIN32
6384         and the rest.
6385         * assembly.c: if mono_assembly_setrootdir is called, don't override
6386         the value set.
6387
6388 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6389
6390         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
6391         MONO_ASSEMBLIES variable.
6392
6393 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
6394
6395         * icall.c: added Assembly::GetNamespaces() icall.
6396
6397 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6398
6399         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
6400
6401 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
6402
6403         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
6404         * object.c: fixed bug in the construction of vtable for proxies
6405
6406 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
6407
6408         * object.c (mono_array_new): Mark mono_array_new as an icall.
6409
6410 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6411
6412         * class.c: fixed test for public method when overriding interfaces.
6413         Closes bug #40970.
6414
6415 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
6416
6417         * appdomain.h, domain.c: added mono_domain_foreach() to
6418         be able to access the currently loaded appdomains.
6419         * object.c: make string interning work across sppdomains.
6420         Mark some functions for use as icalls.
6421
6422 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
6423
6424         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
6425
6426         * reflection.h reflection.c: Allocate long living data using 
6427         GC_MALLOC_ATOMIC so the collector does not need to scan it.
6428
6429         * reflection.c: Double the allocation size in streams instead of
6430         increasing it, to prevent unneccesary copying on large assemblies.
6431         
6432         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
6433         creation if the assembly does not have the Run flag set.
6434
6435 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
6436
6437         * class.h: avoid the C++ keywords in header files (Jerome Laban
6438         spotted and fixed this).
6439
6440 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6441
6442         * object.c:
6443         (mono_unhandled_exception): fill in the arguments for the
6444         UnhandledException event. Only trigger that event for the default
6445         domain (as MS does).
6446
6447 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
6448
6449         * object.c: Improve typed allocation stuff based on suggestions from
6450         Paolo. Also turn it on if the GC library supports it.
6451
6452 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
6453
6454         * object.c object.h class.h: Added experimental typed allocation
6455         facility using the interfaces in gc_gcj.h.
6456
6457         * os/gc_wrapper.h: Added new include files.
6458         
6459 2003-04-03  Martin Baulig  <martin@ximian.com>
6460
6461         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
6462         which is not yet enabled by default.
6463
6464         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
6465         functions.
6466         (mono_gc_lock, mono_gc_unlock): New static functions.
6467
6468         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
6469         functions; stop/start the world for the garbage collector.  This
6470         is using the windows API; we need to complete the SuspendThread()/
6471         ResumeThread() implementation in the io-layer to make this work on Unix.
6472         (mono_gc_push_all_stacks): New public function; tells the garbage
6473         collector about the stack pointers from all managed threads.
6474
6475 2003-04-03  Martin Baulig  <martin@ximian.com>
6476
6477         * object.h (MonoThread): Added `gpointer stack_ptr'.
6478
6479         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
6480
6481 2003-04-03  Martin Baulig  <martin@ximian.com>
6482
6483         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
6484
6485 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
6486
6487         * reflection.c (typebuilder_setup_fields): Initialize field.first and
6488         field.last.
6489
6490 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
6491
6492         * loader.c (mono_lookup_internal_call): Report the corlib that is
6493         out of sync.
6494
6495 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
6496
6497         * icall.c (ves_icall_type_GetTypeCode): fixed check for
6498         System.DBNull (it's class not valuetype).
6499
6500 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
6501
6502         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
6503         if the array method was already assigned a token (fixes bug#40646).
6504
6505 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
6506
6507         * reflection.c (mono_reflection_get_type): Attempt type resolve even
6508         if no assembly is given.
6509
6510 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
6511
6512         * metadata.h: Added the new tables.
6513
6514         * row-indexes.h: Added definitions for new tables.
6515
6516         * metadata.c: Add schemas for new tables, and add support for
6517         computing the sizes of them.
6518
6519         * class.c: Update for handling the new type cases.
6520
6521 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
6522
6523         * metadata.h (MONO_TYPE_IS_VOID): new macro
6524
6525 2003-03-31  Martin Baulig  <martin@ximian.com>
6526
6527         * threads.h (MonoThreadCallbacks): Added `thread_created'.
6528
6529         * threads.c (mono_thread_new_init): Call `thread_created' in the
6530         mono_thread_callbacks.
6531
6532 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
6533
6534         * loader.h: added marshalbyrefobject_class to mono_defaults
6535         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
6536         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
6537           generation of output parameters.
6538           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
6539         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
6540           contextbound and the target object belongs to the context of the caller.
6541         * object.h: added context and unwrapped_server variables in MonoRealProxy.
6542         * object.c: Implemented support for interfaces and abstract classes
6543           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
6544           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
6545
6546 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
6547
6548         * class.h class.c (mono_class_is_subclass_of): New function.
6549         
6550         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
6551         routines for most common case (calls from ArrayList::ToArray).
6552
6553         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
6554         routine so programs which call Environment::Exit() can be profiled.
6555
6556         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
6557         Added MONO_ARCH_SAVE_REGS.
6558
6559         * icall.c (ves_icall_type_is_subtype_of): Use new function.
6560
6561 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
6562
6563         * blob.h: Add a couple of new MonoType types definitions.
6564
6565         * tabledefs.h: Add a couple of new call convs.
6566
6567 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
6568
6569         * reflection.h (MonoReflectionDynamicAssembly): track changes in
6570         the layout of the class.
6571
6572         * reflection.c (alloc_table): double the size on overflow to avoid
6573         unnecessary copying.
6574
6575         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
6576         avoid filling out metadata tables and blobs. Also set mb->ilgen to
6577         null so it can be garbage collected.
6578         
6579 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
6580
6581         * reflection.c (mono_reflection_get_type): Return the resolved type
6582         only if it is in the assembly we searched.
6583
6584         * reflection.c (ensure_runtime_vtable): Initialize method slots.
6585
6586         * class.c (mono_class_setup_vtable): Set the slot of the overriding
6587         method.
6588
6589 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6590
6591         * appdomain.c:
6592         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
6593         the right one is 'file:///blah', but MS allows it.
6594         * assembly.c:
6595         (mono_assembly_open): allow 'file://blah'
6596
6597         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
6598
6599 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
6600
6601         * socket-io.c: fixes bug #40310.
6602
6603 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
6604
6605         * reflection.c (mono_reflection_parse_type): handle deeply nested
6606         types correctly.
6607
6608         * reflection.c (mono_image_create_token): Use unique token values
6609         since they will be put into a hash table.
6610
6611         * class.c (mono_class_setup_vtable): If a method occurs in more than
6612         one place in the vtable, and it gets overriden, then change the
6613         other occurances too.
6614
6615         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6616         object as return type.
6617
6618 2003-03-22  Pedro Martínez Juliá  <yoros@wanadoo.es>
6619
6620         * icall.c: Deleted "ToString" implementation for double and float
6621         because they are full implemented in managed code.
6622
6623 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
6624
6625         * reflection.c, reflection.h: implemented and exported functions
6626         to retrieve info about custom attributes.
6627
6628 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6629
6630         * appdomain.c: moved Uri handling to assembly.c
6631         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
6632         work when using a file Uri in *nix and windows.
6633
6634         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
6635         GetReferencedAssemblies.
6636
6637 2003-03-18  Dick Porter  <dick@ximian.com>
6638
6639         * icall.c: Rename a couple of internal calls
6640
6641         * threads.c: Set the thread state to Stopped when a thread exits.
6642         Fixes bug 39377.
6643
6644 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
6645
6646         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
6647         New icall.
6648
6649         * object.c (mono_class_vtable): fix warning.
6650
6651 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
6652
6653         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
6654
6655         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
6656         memory.
6657         (method_encode_clauses): Create exception info structures in the right
6658         order.
6659         (mono_reflection_setup_internal_class): Initialize supertypes field.
6660
6661         * class.c object.c: Handle interfaces which implement other interfaces 
6662         correctly.
6663
6664         * class.h class.c: Move the supertypes array initialization code into 
6665         a separate function so it can be used for dynamic types too. Also call
6666         it earlier, in mono_class_init(), since it can be used before the
6667         type is initialized.
6668
6669 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6670
6671         * Makefile.am:
6672         * assembly.c:
6673         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
6674
6675         * appdomain.c:
6676         * appdomain.h:
6677         * marshal.c:
6678         * object.c: remove warnings.
6679
6680 2003-03-13  Martin Baulig  <martin@ximian.com>
6681
6682         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
6683         (MonoDebugLexicalBlockEntry): New types.
6684
6685         * debug-mono-symfile.c
6686         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
6687
6688 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6689
6690         * process.c: ret can be any non-zero value accroding to MS doc.
6691
6692 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
6693
6694         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
6695         fixing a warning for a miss-used prototype, would have cause
6696         random memory corruption.
6697
6698 2003-03-07  Martin Baulig  <martin@ximian.com>
6699
6700         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
6701         getting really annoying ....
6702
6703 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
6704
6705         * reflection.c (fixup_method): added support for array methods.
6706
6707 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
6708
6709         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
6710         (pointed out by Michael Adams).
6711
6712 2003-03-04  Dick Porter  <dick@ximian.com>
6713
6714         * icall.c: Temporarily reverted the Double and Single ToString()
6715         change, because it broke nunit.
6716
6717 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
6718
6719         * object.h, threads.h: make include files compatible with C++
6720         (patch by Jerome Laban <jlaban@wanadoo.fr>).
6721
6722 2003-03-04  Pedro Martínez Juliá  <yoros@wanadoo.es>
6723
6724         * icall.c: Erased ToString helper functions for Double and Single.
6725         Now, that implementations ar all in managed code (Double and Single
6726         Formatters).
6727
6728 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
6729
6730         * appdomain.c: Added method for initializing the default context of
6731         a domain. Added internal call for getting the default context.
6732         * appdomain.h: Added context variable in MonoDomain struct.
6733         * domain.c: mono_domain_set also sets the default context of the domain
6734         * icall.c: Mapped internal method InternalGetDefaultContext.
6735         * object.c: mono_object_get_virtual_method returns always a remoting
6736         wrapper if the object is a transparent proxy.
6737         mono_runtime_invoke_array: when creating an object by calling the
6738         constructor, if the created object is a proxy, then the constructor should
6739         be called using the a remoting wrapper.
6740
6741 2003-03-03  Dick Porter  <dick@ximian.com>
6742
6743         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
6744         variable so it compiles on solaris.  Problem spotted by
6745         Christopher Taylor <ct@cs.clemson.edu>
6746
6747 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6748
6749         * appdomain.c:
6750         (get_info_from_assembly_name): don't leak value.
6751
6752         * icall.c:
6753         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
6754         result.
6755
6756 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
6757
6758         * assembly.c: export mono_image_load_references ().
6759         * class.c: handle function pointers. mono_class_from_name() now
6760         supports nested type names directly.
6761
6762 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
6763
6764         * reflection.h reflection.c: Encode already created dynamic methods 
6765         and fields correctly as a DEF instead of a REF.
6766
6767         * reflection.c: Get rid of the force_ref argument to 
6768         mono_image_typedef_or_ref since it was wrong in the first place.
6769
6770         * string-icalls.c: add error checking to string constructors according
6771         to the MSDN docs.
6772
6773         * reflection.c: Emit types in the order their TypeBuilders were 
6774         created. Previously, a new table index was assigned to each type before
6775         the tables were emitted. This was wrong because the signature blob
6776         might already refer to a type by its original table index.
6777
6778 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
6779
6780         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
6781         change.
6782         
6783 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6784
6785         * Makefile.am: make assemblies dir have \ instead of / on windows.
6786
6787 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
6788
6789         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
6790         iterate over the NESTEDCLASS table using a linear search since the
6791         table is not guaranteed to be sorted by the secondary key.
6792
6793         * class.c (mono_class_create_from_typedef): fixed up call to
6794         mono_metadata_nesting_typedef.
6795         
6796 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
6797
6798         * marshal.c (mono_string_to_byvalstr): clear the memory as
6799         suggested by Jerome Laban <jlaban@wanadoo.fr>
6800
6801 2003-02-26  Dick Porter  <dick@ximian.com>
6802
6803         * process.c: Cope with padding in .rsrc blocks
6804
6805 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
6806
6807         * metadata.h: reverted the filter_len change, it breaks reflection
6808         
6809 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
6810
6811         * metadata.h: added a new field to store the filter_len
6812         
6813
6814 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
6815
6816         * reflection.c: handle custom attributes for types and members
6817         created with Reflection.Emit (bug#38422).
6818
6819 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
6820
6821         * reflection.c: define RTSpecialName automatically for constructors for
6822         compatibility with MS.NET.
6823
6824         * reflection.c (mono_reflection_create_runtime_class): initialize
6825         nested_in field of dynamically created classes.
6826
6827 2003-02-22  Martin Baulig  <martin@ximian.com>
6828
6829         * debug-mono-symfile.h: Incremented version number.
6830
6831 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
6832
6833         * object.h icall.c process.c: fix warnings.
6834
6835 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
6836
6837         * appdomain.h appdomain.c:
6838         (mono_domain_try_type_resolve): split the 
6839         name_or_tb argument into a name and a tb argument.
6840         (mono_domain_has_type_resolve): new function to check whenever the
6841         application has registered a TypeResolve event handler.
6842         
6843         * icall.c reflection.h reflection.c: move the type resolve logic into
6844         mono_reflection_get_type () so it will be invoked when 
6845         Assembly::GetType () is called.
6846
6847         * reflection.c:
6848         (mono_reflection_get_type): renamed to get_type_internal.
6849         (mono_reflection_get_type): fixed type name generation so it works 
6850         for nested types too.
6851         (mono_reflection_get_type): call has_type_resolve () to avoid the 
6852         costly type name generation if there is no resolve event handler.
6853
6854 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
6855
6856         * class.c, image.c: load exported types from file references.
6857
6858 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
6859
6860         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
6861           used to cache the managed methods used to create proxies and make 
6862           remote invocation of methods.
6863         * class.h: Added in MonoVTable a flag to indicate that a class needs 
6864           to be remotely created.
6865         * object.c: Modified the method mono_class_vtable(). It now initializes 
6866           the remote flag of the vtable. Modified mono_object_new_specific(), 
6867           so now it checks the remote flag.
6868         * icall.c: Added a couple of internal methods, one for enabling instance 
6869           creation interception for a type, and one for creating objects bypassing
6870           the remote check.
6871
6872 2003-02-18  Martin Baulig  <martin@ximian.com>
6873
6874         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
6875         New interncall to get a method's metadata token.
6876
6877         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
6878         New interncall for the debugger.
6879
6880 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
6881
6882         * class.c (mono_class_setup_vtable): allocate supertype array
6883
6884 2003-02-18  Martin Baulig  <martin@ximian.com>
6885
6886         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
6887
6888 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6889
6890         * reflection.c:
6891         (assembly_name_to_aname): jump over unknown properties (i've found
6892         something like: 'type, assembly, version=xxx, custom=null, public...',
6893         so now will ignore custom=null and still get the rest of the values).
6894
6895 2003-02-17  Dick Porter  <dick@ximian.com>
6896
6897         * threads.c: Have Thread.Start() wait for a semaphore to signal
6898         that the thread has set up all its local data.  This fixes bug
6899         34323, where Abort() raced the new thread's TLS data.
6900
6901         Also removes the handle_store() call from start_wrapper, because
6902         threads are now always created suspended and there is no longer a
6903         race between the parent and child threads to store the info.
6904
6905 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
6906
6907         * image.c: explain the #- heap issue in a message, hopefully
6908         avoiding FAQs on mono-list.
6909
6910 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6911
6912         * icall.c:
6913         (GetEntryAssembly): if the domain has not invoked
6914         AppDomain.ExecuteAssembly yet, return the assembly of the default
6915         AppDomain.
6916
6917 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
6918
6919         * class.c (mono_ldtoken): make it work in dynamic assemblies.
6920
6921 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
6922
6923         * metadata.c, reflection.c: simple speedup to type hash
6924         and equals code.
6925
6926 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
6927
6928         * image.c, image.h, class.c, assembly.c: move module loading
6929         to MonoImage. When loading metadata, consider alignemnet from
6930         the start of metadata, not from the metadata address in memory.
6931
6932 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
6933
6934         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
6935         AssemblyBuilder objects. Factored out custom attribute creation into
6936         a separate function.
6937         (create_custom_attr): new function to create custom attributes.
6938
6939 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
6940
6941         * Makefile.am: Got tired of typing the full pathname to pedump.
6942         Until there is another option, am installing this.
6943
6944 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
6945
6946         * class.c (class_compute_field_layout): always set field->parent 
6947         (mono_ldtoken): use mono_defaults.fieldhandle_class;
6948
6949 2003-02-11  Dick Porter  <dick@ximian.com>
6950
6951         * threads-types.h:
6952         * monitor.c: Rewrote Monitor, making lock much faster and
6953         Pulse/Wait work as specified.  Also uses much fewer handles, and only
6954         creates them as needed.
6955
6956         * exception.c: Added SynchronizationLockException
6957
6958         * threads.c: Deleted old Monitor implementation.  The new one is
6959         in a new file.
6960
6961 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
6962
6963         * class.c: handled TypedReference type code. Set the correct size for
6964         class data. Setup interface_offsets for interface classes, too.
6965
6966 2003-02-09  Martin Baulig  <martin@ximian.com>
6967
6968         * debug-mono-symfile.h: Reflect latest symbol writer changes.
6969
6970 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
6971
6972         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
6973         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
6974         * object.c: fixed mono_object_get_virtual_method () for interfaces.
6975         * verify.c: check for code that runs after the end of the method.
6976
6977 2003-02-08  Pedro Martínez Juliá  <yoros@wanadoo.es>
6978
6979         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
6980         "System.Math::Round2".
6981         * sysmath.h: Added Floor, Round and Round2 definitions.
6982         * sysmath.c: Modified certain functions that were not 100% compliant
6983         with MS.NET (math precision) and added the implementation of Floor,
6984         Round and Round2.
6985
6986 2003-02-07  Martin Baulig  <martin@ximian.com>
6987
6988         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
6989
6990 2003-02-07  Martin Baulig  <martin@ximian.com>
6991
6992         * debug-mono-symfile.c: Reflected latest symwriter changes.
6993         (mono_debug_create_mono_symbol_file): Removed.
6994         (mono_debug_open_mono_symbol_file): Take an argument which
6995         specifies whether to create a dynamic symbol file.
6996
6997 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
6998
6999         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
7000
7001 2003-02-05  Martin Baulig  <martin@ximian.com>
7002
7003         * reflection.c (mono_image_build_metadata): Make this public,
7004         protect it against being called multiple times, don't create
7005         resources and don't build the compressed metadata here.
7006         (mono_image_create_pefile): Do this here.
7007
7008         * icall.c
7009         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
7010
7011 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7012
7013         * socket-io.c: fixed bug #36322.
7014
7015 2003-02-06  Piers Haken <piersh@friskit.com>
7016
7017         * appdomain.[ch]:
7018         * class.h:
7019         * debug-mono-symfile.c:
7020         * icall.c:
7021         * loader.c:
7022         * mono-config.c:
7023         * monosn.c:
7024         * reflection.c:
7025         * socket-io.c: warning cleanups
7026
7027 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
7028
7029         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
7030         function. works like remoting invoke, but does a check for the Proxy first.
7031
7032 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
7033
7034         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
7035
7036 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
7037
7038         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
7039         array of pointers.
7040         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
7041         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
7042
7043         * object.c (mono_store_remote_field_new): used by the new jit
7044         instead of mono_store_remote_field
7045         (mono_load_remote_field_new): used by the new jit
7046         instead of mono_load_remote_field
7047
7048 2003-02-05  Patrik Torstensson
7049
7050         * appdomain.c: changed unload to take the domain id instead
7051         of domain
7052         
7053         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
7054
7055
7056 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7057
7058         * appdomain.c: don't look for assemblies in ApplicationBase if
7059         PrivateBinPathProbe is set.
7060
7061 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7062
7063         * object.c: make the first argument in main_args contain the absolute
7064         path to the assembly. Fixes bug #37511.
7065
7066 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7067
7068         * icall.c: get correct UTC offset for countries not using daylight
7069         time saving. Fixes bug #30030.
7070
7071 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7072
7073         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
7074         and 1 are the family).
7075
7076 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
7077
7078         * icall.c (ves_icall_InternalExecute): removed wrong assertion
7079
7080         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
7081
7082 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
7083
7084         * reflection.c: added support for SignatureHelper tokens, which is
7085         needed by the Calli opcode.
7086
7087         * reflection.h: track changes to SignatureHelper class.
7088
7089         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
7090
7091 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7092
7093         * appdomain.c: fixed loading assemblies from PrivateBinPath.
7094
7095 2003-02-03  Patrik Torstensson
7096         * appdomain.[c|h], domain.c : 
7097          - Added support for getting a domain via domain id
7098          - Support for setting and getting domain from System.AppDomain 
7099            (used in cross appdomain channel)
7100          - Added support for get/set for a MonoAppContext on a thread 
7101            (Context class in System.Runtime.Remoting.Contexts),
7102          - Removed hack in Get/SetData and ExecuteAssembly.
7103         
7104         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
7105         the managed world to get control when a proxy is created.
7106
7107         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
7108         
7109 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
7110
7111         * icall.c
7112         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7113         Populate the codebase field as well.
7114
7115 2003-02-02  Martin Baulig  <martin@ximian.com>
7116
7117         * debug-mono-symfile.c
7118         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
7119         (mono_debug_symfile_add_method): Allow interncalls.
7120
7121 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7122
7123         * icall.c: throw parse exception if strtod fails or the string is empty.
7124
7125 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
7126
7127         * marshal.c: handle object type separately from defined
7128         class types.
7129
7130 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
7131
7132         * marshal.c: handle NATIVE_LPSTR for strings when it's
7133         explicitly specified.
7134
7135 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
7136
7137         * reflection.c, reflection.h, icall.c: setup the reflection
7138         handle cache for ModuleBuilders and AssemblyBuilders.
7139
7140 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
7141
7142         * reflection.c (reflection_methodbuilder_to_mono_method): set
7143         pinvoke flag
7144
7145 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7146
7147         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
7148
7149 2003-01-29  Dick Porter  <dick@ximian.com>
7150
7151         * threads.c: No need for the fake_thread kludge now that Thread
7152         doesn't run a class constructor
7153         
7154 2003-01-29  Dick Porter  <dick@ximian.com>
7155
7156         * threads.c: Use g_direct_hash instead of the rather bogus
7157         g_int_hash
7158
7159 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
7160
7161         * marshal.c (mono_marshal_get_native_wrapper): add check for null
7162         (fix pinvoke12.exe)
7163         (mono_marshal_get_struct_to_ptr): generate valid IL code
7164         (mono_marshal_get_ptr_to_struct): generate valid IL code
7165         (*): correctly set sig->pinvoke, we need to memdup the signature
7166         to do that
7167
7168 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
7169
7170         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
7171         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
7172
7173 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
7174
7175         * profiler.c: provide more callers information.
7176
7177 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
7178
7179         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
7180
7181         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
7182
7183         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
7184
7185 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7186
7187         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
7188         exception instead of going into an infinite loop on dates which it 
7189         can't yet handle.
7190
7191         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
7192         out-of-range exception if needed.
7193
7194         * class.c (mono_class_setup_vtable): allow a virtual method to provide
7195         an implementation for an interface method and to override an inherited
7196         method at the same time. 
7197         Imagine a scenario when a virtual method is used to override a
7198         virtual abstract method in a parent class, and this same method 
7199         provides an implementation for an method inherited from an interface. 
7200         In this case, the interface resolution code will set im->slot, which 
7201         means that the virtual method override pass will skip this method 
7202         which means a pointer to the abstract method inherited from the parent
7203         will remain in the vtable of this non-abstract class.
7204
7205         * class.c: (mono_class_setup_vtable): continue search for a real 
7206         method if only an abstract method is found.     
7207
7208 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
7209
7210         * reflection.c: add size to encoding for ByValStr and ByValArray
7211         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
7212
7213 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7214
7215         * class.c (mono_class_setup_vtable): pass the override info as an
7216         argument.
7217
7218         * class.c (mono_class_setup_vtable): set the slot of overriding methods
7219         correctly.
7220         
7221         * reflection.c (ensure_runtime_vtable); add support for method 
7222         overrides.
7223         
7224 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7225
7226         * reflection.c (resolution_scope_from_image): Hack to work to work with
7227         dynamic assemblies.
7228
7229         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
7230         added a 'force_ref' argument to force this function to allways return 
7231         a TypeRef. This is needed by mono_image_get_memberref_token ().
7232         
7233 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7234
7235         * reflection.c (mono_image_get_type_info): interfaces really don't have
7236         a parent.
7237
7238         * reflection.c (mono_image_basic_init): fill out missing fields of
7239         image structure.
7240
7241         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
7242         dynamic assemblies. This is required so dynamic assemblies show up in
7243         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
7244         Type::GetType() etc. This is consistent with MS behaviour.
7245
7246         * image.c image.h reflection.c: add newly created classes to the name 
7247         cache so mono_class_get () will find them.      
7248
7249 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
7250
7251         First part of changes to get IKVM.NET running under mono.
7252         
7253         * appdomain.h, appdomain.c: added new function 
7254         mono_domain_try_type_resolve() which will emit TypeResolve events. 
7255         This function will call AppDomain::DoTypeResolve to do the actual work.
7256
7257         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
7258         moved existing code dealing with dynamic tokens to a new function 
7259         called mono_reflection_lookup_dynamic_token (). This function will 
7260         raise TypeResolve events when appropriate. Since reflection.c is not 
7261         part of libmetadata, a new hook function called 
7262         mono_lookup_dynamic_token() is added to class.c which will call this.
7263
7264         * assembly.h assembly.c: make the invoke_load_hook function public,
7265         so it can be called for dynamic assemblies.
7266
7267         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
7268
7269         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
7270         type isn't found.
7271
7272         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
7273         MonoGHashTable, since it contains pointers to objects which the GC 
7274         needs to track.
7275
7276         * assembly.c (search_loaded): remove unused variable.
7277         
7278 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
7279
7280         * object.c: fixed issue exposed by gcc-generated IL programs
7281         that use RVA data for pointers.
7282
7283 2003-01-25  Martin Baulig  <martin@ximian.com>
7284
7285         * threads.c (start_wrapper): Moved the initialization of
7286         `start_func' above the mono_new_thread_init() call to which we
7287         pass it as argument.
7288
7289 2003-01-24  Martin Baulig  <martin@ximian.com>
7290
7291         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
7292         the MonoThread pointer.
7293
7294 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
7295
7296         * icall.c: Rename `PowImpl' to Pow.
7297
7298 2003-01-23  Dick Porter  <dick@ximian.com>
7299
7300         * threads.c (start_wrapper): Create a Thread object if needed, so
7301         the Main() thread can do the class initialisation in a subthread
7302         that has been set up to allow managed code execution.
7303
7304         Pass the thread ID instead of the MonoThread pointer to the thread
7305         start and attach callbacks.  This change is required, because the
7306         jit thread start callback must be called _before_ the Thread
7307         object can be created.
7308         
7309         (mono_thread_init): Removed much object creation code that is no
7310         longer needed.  No managed code is called from here now.
7311
7312         * object.c (mono_runtime_exec_managed_code): Create a subthread
7313         for Main, and call back to the runtime to use it.
7314         Set the exit code when Main exits.
7315
7316         * gc.c: Make sure domain finalisation happens in a subthread.
7317         Re-enable threaded GC, fixing bug 31333 (again).
7318
7319         * environment.c: System.Environment internall calls (so far just
7320         ExitCode is here, the others are still in icall.c)
7321
7322         * appdomain.c (mono_runtime_cleanup): All threads running managed
7323         code should have finished before mono_runtime_cleanup() is
7324         reached, so no need to clean up threads.
7325
7326 2003-01-22  Martin Baulig  <martin@ximian.com>
7327
7328         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
7329         `gpointer func' arguments.      
7330         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
7331         but added `MonoThread *thread' argument.
7332         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
7333
7334         * threads.c (mono_new_thread_init): Added `gpointer func' argument
7335         and pass it to the mono_thread_start_cb callback.
7336         (mono_install_thread_callbacks): New public function to install a
7337         set of callbacks which are set by the debugger.
7338         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
7339
7340 2003-01-22  Martin Baulig  <martin@ximian.com>
7341
7342         * Makefile.am: Install debug-mono-symfile.h.
7343
7344 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
7345
7346         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
7347
7348 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
7349
7350         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
7351         * class.c (mono_ptr_class_get): correctly set access levels of pointers
7352         (mono_array_class_get): correctly set access levels of arrays
7353
7354 2003-01-20      Patrik Torstensson
7355         * image.h (MonoAssemblyName): changed major, minor, build, revision
7356         from signed to unsigned.
7357
7358 2003-01-20  sean kasun <skasun@azstarnet.com>
7359
7360         * reflection.c (load_cattr_value): Now this handles
7361         MONO_TYPE_SZARRAY.  Fixes bug #35629
7362
7363 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
7364
7365         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
7366         integer value
7367
7368 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7369
7370         * decimal.c: fixed bug #26056.
7371
7372 2003-01-17  Martin Baulig  <martin@ximian.com>
7373
7374         * gc.c: Raise an ExecutionEngineException instead of using g_error().
7375
7376 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7377
7378         * exception.[ch]:
7379         (mono_get_exception_type_initialization): new function.
7380
7381         * object.c: throw a TypeInitializationException when an exception is
7382         thrown invoking the class constructor.
7383
7384 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7385
7386         * reflection.c: fixed attribute reading.
7387
7388 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7389
7390         * icall.c:
7391         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
7392         provided, look for the type in the calling assembly and then in
7393         mscorlib; if the assembly name is provided, only try that one.
7394
7395 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
7396
7397         * object.c: register the vtable before there is a chance it's
7398         queried again recursively.
7399
7400 2003-01-13  Duncan Mak  <duncan@ximian.com>
7401
7402         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
7403         gc-internal.h. 
7404         
7405 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
7406
7407         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
7408
7409 2003-01-11  Martin Baulig  <martin@ximian.com>
7410
7411         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
7412         this to 20 for the release.
7413
7414 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
7415
7416         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
7417
7418         * loader.c (mono_method_get_marshal_info): bug fix
7419
7420         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
7421         structures with explicit layout
7422
7423 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
7424
7425         * profiler.c: made the output more readable (and sorted). 
7426         Added caller information for the allocation profiler.
7427
7428 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
7429
7430         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
7431
7432 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7433
7434         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
7435         to get value types.
7436         
7437 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
7438
7439         * object.c, profiler.h, profiler.c, profiler-private.h:
7440         Added object allocation profiler.
7441
7442 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
7443
7444         * reflection.h, reflection.c: handle global methods.
7445         Compress blob entries.
7446
7447 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
7448
7449         * marshal.c: fix compilation.
7450
7451 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
7452
7453         * loader.c (mono_method_get_marshal_info): impl.
7454
7455         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
7456
7457 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7458
7459         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
7460         for reference types.
7461
7462 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
7463
7464         * loader.c: fixed off by one error in loaded parameter names.
7465
7466 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
7467
7468         * marshal.c (mono_marshal_get_icall_wrapper): like
7469         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
7470         instead of a MonoMethod.
7471
7472 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7473
7474         * decimal.c: fixed bug #36537.
7475
7476 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
7477
7478         * marshal.c: throw a missing method exception if a
7479         P/Invoke method is not found.
7480
7481 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
7482
7483         * icall.c: allow a null this for constructors.
7484
7485 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
7486
7487         * icall.c: raise the proper exceptions if the arguments to the
7488         internal Invoke are incorrect.
7489
7490 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
7491
7492         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
7493
7494 2003-01-03  Martin Baulig  <martin@ximian.com>
7495
7496         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
7497
7498 2002-12-31  Martin Baulig  <martin@ximian.com>
7499
7500         * debug-mono-symfile.c: Completely rewrote the type section.
7501         Instead of using individual malloc()ed fields, we use one big
7502         continuous memory area and offsets into this area.
7503         See the comments in the source code for details.
7504
7505 2002-12-30  Martin Baulig  <martin@ximian.com>
7506
7507         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
7508
7509 2002-12-30  Martin Baulig  <martin@ximian.com>
7510
7511         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
7512         line number table in this data blob instead of using an external
7513         pointer.
7514
7515 2002-12-28  Martin Baulig  <martin@ximian.com>
7516
7517         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
7518
7519 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
7520
7521         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
7522         as a boxed return type.
7523
7524 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
7525
7526         * appdomain.c
7527         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
7528         g_build_filename to properly get separators on the filename created.
7529
7530         * object.h: Small change, introduce MonoMarshalByRefObject to
7531         track the layout of that structure in the C# universe as we make
7532         changes there.
7533
7534 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
7535
7536         * object.c: removed assert to allow static fields on interfaces.
7537         * loader.c: a TypeSpec may be used for any type, not just arrays.
7538
7539 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
7540
7541         * class.c, class.h: added mono_class_array_element_size ().
7542         Ignore static methods in interfaces.
7543
7544 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7545
7546         * threads.c: fixed the build under cygwin.
7547
7548 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
7549
7550         * reflection.c: handle nullref constants. Allocate keys for
7551         reflection handles with the GC.
7552
7553 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
7554
7555         * threads.c, threads.h: added mono_thread_get_abort_signal()
7556         to get a suitable signal for thread abort.
7557
7558 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
7559
7560         * metadata.c: fix handling of ExportedType table.
7561
7562 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7563
7564         * icall.c: added WriteWindowsDebugString internal call.
7565
7566 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7567
7568         * reflection.h: added fields to match C# implementation.
7569
7570 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7571
7572         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
7573
7574 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
7575
7576         * gc.h, gc-internal.h: Rename header for GC internal calls to
7577         gc-internal.h from gc.h as to not clash with Boehm GC having its
7578         header installed as <gc.h> in outside include paths.
7579         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
7580         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
7581
7582 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7583
7584         * icall.c: assign minor, build and revision in FillName.
7585
7586 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
7587
7588         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
7589         Added support for running code generated by Reflection.Emit.
7590
7591 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7592
7593         * appdomain.c: check for NULL argument in LoadFrom.
7594
7595 2002-12-10  Dick Porter  <dick@ximian.com>
7596
7597         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
7598
7599 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7600
7601         * appdomain.c: fix buglet when building exe file name.  Handle full
7602         assembly name (needed after latest changes to AssemblyName).
7603         * image.c:
7604         (mono_image_close): free some hashtables.
7605
7606 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
7607
7608         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
7609         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
7610         on some systems (redhat 7.3) 
7611
7612 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
7613
7614         * threads.c: delete the critical section of a sync block,
7615         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
7616
7617 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
7618
7619         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
7620
7621 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7622
7623         * appdomain.[ch]: handle the assembly preload event to try loading the
7624         assemblies using the paths we have in the current domain.
7625
7626         * assembly.[ch]: created an assembly preload hook that is called to try
7627         loading the assembly by other means that the ones provided here.
7628
7629         * domain.c: initialize the domain search path.
7630
7631         From now on, assemblies (TODO: except corlib and System) are loaded
7632         according to these rules when using mono_assembly_load ():
7633
7634                 1. It tries to load the assembly from the ApplicationBase
7635                 of the current domain appending .dll and .exe (TODO: have to
7636                 try loading from name/name.dll and name/name.exe).
7637
7638                 2. It tries the search path specified in PrivateBinPath for the
7639                 current domain (if any).
7640
7641                 3. Previous behavior.
7642
7643 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
7644
7645         * icall.c: implemented GetInterfaceMap() related icall.
7646         * domain.c, loader.h: load MethodInfo in mono_defaults.
7647
7648 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
7649
7650         * gc.c: disable the finalizer thread for now, untill all the issues
7651         with it are resolved.
7652
7653 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
7654
7655         * string-icalls.c: handle embedded nulls in string ctor when the
7656         length is specified.
7657
7658 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
7659
7660         * class.c: look for explicit interface implementation in parent
7661         classes, too.
7662
7663 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
7664
7665         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
7666
7667 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
7668
7669         * gc.c: protect handles with a critical section.
7670
7671 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7672
7673         * icall.c:
7674         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
7675         parameters. If no assembly specified, try getting the type from all
7676         the assemblies in the current domain, else, load the assembly and get
7677         the type from it.
7678
7679 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7680
7681         * marshal.c: applied patch from Aleksey Demakov that fixes
7682         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
7683
7684 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7685
7686         * icall.c: fixed get_location.
7687
7688 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
7689
7690         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
7691         declarations to make it work with older gcc. 
7692
7693         * loader.c (mono_get_method): set signature->pinvoke for native calls
7694
7695 2002-11-20  Dick Porter  <dick@ximian.com>
7696
7697         * threads.c (mono_thread_init): Set the main thread's handle
7698
7699 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
7700
7701         * gc.c: allow compilation without GC support. Changed to match the
7702         mono coding style.
7703
7704 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
7705
7706         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
7707
7708 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
7709
7710         * reflection.c: set a public key token on the core assemblies.
7711
7712 2002-11-18  Dick Porter  <dick@ximian.com>
7713
7714         * threads.c: Split out some thread initialisation so that other
7715         files can set the start callback function.
7716
7717         * gc.c: Run finalisers in a separate thread, to avoid stack
7718         overflow.  Fixes bug 31333.
7719
7720         * appdomain.c: Set up GC finalisation thread.
7721
7722         * reflection.c: 
7723         * object.c: 
7724         * domain.c: Use gc.h macros for GC_malloc
7725         
7726 2002-11-15  Dick Porter  <dick@ximian.com>
7727
7728         * threadpool.c: 
7729         * threads.c:
7730         * appdomain.c: Removed mono_runtime_init_with_attach(),
7731         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
7732         merging the extra parameter with the existing function.  Removed
7733         unneeded code in mono_thread_attach().
7734
7735 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
7736
7737         * image.c (mono_image_loaded_by_guid): a method to get loaded
7738         images by guid. 
7739         (load_metadata_ptrs): we store the guid as string.
7740
7741 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
7742
7743         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
7744
7745         * metadata.c (mono_guid_to_string): imported method form Zoltan
7746         Varga (slightly modified)
7747
7748         * assembly.c (mono_assembly_open): load precompiled code
7749
7750         * loader.h (MonoMethod): we store the method token for use in the
7751         aot compiler. 
7752
7753 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7754
7755         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
7756         the hook function called when an assembly is loaded.
7757         
7758         * domain.c: Modified file.
7759         (mono_domain_assembly_load): removed hash table insertion of assemblies.
7760
7761         Fixes bug #33196.
7762
7763 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
7764
7765         * reflection.c: Map PEFileKind to the value expected by the WinNT
7766         image loader. 
7767
7768 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7769
7770         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
7771         Read until the buffer is filled completely.
7772
7773 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7774
7775         * icall.c: implemented MonoType.InternalGetEvent ().
7776
7777 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7778
7779         * appdomain.c: implemented InitAppDomainSetup. Delayed
7780         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
7781         the entry_assembly.
7782
7783         * assembly.c: base_dir is now an absolute path ending with
7784         G_DIR_SEPARATOR.
7785
7786         * icall.c: modified get_location according to the above changes.
7787
7788         * object.c: init AppDomain.SetupInformation for the default domain after
7789         we have the entry assembly.
7790
7791         * domain.c: when unloading a domain, setup = NULL.
7792
7793 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
7794
7795         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
7796
7797 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
7798
7799         * object.h, object.c: introduced mono_object_get_virtual_method ()
7800         to lookup the method invoked on an object when a callvirt is done on
7801         a method.
7802         * icall.c: make MethodInfo::Invoke() always do a virtual call.
7803
7804 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7805
7806         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
7807         current domain when loaded an assembly and failed to load it.
7808
7809         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
7810
7811 2002-10-31  Dick Porter  <dick@ximian.com>
7812
7813         * icall.c: 
7814         * file-io.h: 
7815         * file-io.c: Return the error status in a parameter, as the
7816         GetLastError() value has long since been blown away if we try and
7817         look it up in a subsequent internal call invocation.  Delete the
7818         GetLastError() internal call, because it's useless.
7819
7820 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
7821
7822         * class.[ch]: added cast_class to fix bug 29517
7823
7824 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
7825
7826         * marshal.c: create valid IL code in the filter clause:
7827         the new JIT is less forgiving:-)
7828
7829 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7830
7831         * icall.c: removed get_property internal call.
7832
7833 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
7834
7835         * appdomain.h domain.c: Added an ID to appdomains.
7836         
7837         * threads.c threads.h icall.c: Implement icall
7838         Thread:GetDomainID(), and remove unused icall 
7839         CurrentThreadDomain_internal.
7840
7841 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7842
7843         * icall.c: Don't recurse through the base types in GetConstructor.
7844         Fixes bug #32063. 
7845
7846 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
7847
7848         * mempool.h, mempool.c: added mono_mempool_empty() and
7849         mono_mempool_stats().
7850
7851 2002-10-23  Dick Porter  <dick@ximian.com>
7852
7853         * file-io.c: 
7854         * file-io.h: 
7855         * icall.c: Added MonoIO.GetFileType internal call
7856
7857 2002-10-17  Dick Porter  <dick@ximian.com>
7858
7859         * appdomain.c (mono_runtime_cleanup): Don't signal the async
7860         delegate semaphore before waiting for all threads to finish,
7861         because new threads can also call async delegates.  Fixes bug
7862         32004.
7863
7864         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
7865         of 3 seconds, in case another async job is queued.  (This part is
7866         needed because the bug fix reintroduced the 3s exit lag.)  This
7867         makes the mono_runtime_shutdown flag superfluous.
7868
7869 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
7870
7871         * reflection.c: include ehader size in method section headers.
7872         Really check for suplicated modules entries.
7873
7874 2002-10-17  Martin Baulig  <martin@gnome.org>
7875
7876         * debug-mono-symfile.c: Added back support for locals.
7877
7878 2002-10-14  Martin Baulig  <martin@gnome.org>
7879
7880         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
7881         MONO_TYPE_VOID.
7882
7883 2002-10-14  Martin Baulig  <martin@gnome.org>
7884
7885         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
7886         mono_class_get() instead of looking in the class cache. 
7887
7888 2002-10-13  Martin Baulig  <martin@gnome.org>
7889
7890         * debug-mono-symfile.c: Set version number to 28, include the
7891         signature in method names.
7892
7893 2002-10-13  Martin Baulig  <martin@gnome.org>
7894
7895         * debug-mono-symfile.h: Set version number to 27.
7896
7897 2002-10-11  Martin Baulig  <martin@gnome.org>
7898
7899         * gc.c: Don't register/unregister NULL pointers as disappearing links.
7900
7901 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
7902
7903         * metadata.c, metadata.h: added helper function to allocate signatures.
7904
7905 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7906
7907         * icall.c: added internal call to get the location of machine.config.
7908
7909 2002-10-08  Martin Baulig  <martin@gnome.org>
7910
7911         * debug-mono-symfile.c: Ignore classes with a pending init for the
7912         moment.
7913
7914 2002-10-03  Dick Porter  <dick@ximian.com>
7915
7916         * threads.c: Freebsd pthread_t is a pointer
7917
7918 2002-10-03  Dick Porter  <dick@ximian.com>
7919
7920         * socket-io.c: Implemented GetHostName_internal
7921
7922 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7923
7924         * mono-config.c:
7925         (mono_config_parse_file): don't leak the text.
7926
7927 2002-10-02  Martin Baulig  <martin@gnome.org>
7928
7929         * debug-mono-symfile.c: Added support for methods.
7930
7931 2002-10-01  Martin Baulig  <martin@gnome.org>
7932
7933         * debug-mono-symfile.c: Don't emit methods and line numbers for
7934         the dynamic symbol file, just write the type table.  We can easily
7935         have an external helper program which creates a symbol file for an
7936         IL file.        
7937
7938 2002-10-01  Dick Porter  <dick@ximian.com>
7939
7940         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
7941         Only add the handle to the cleanup array when we're about to
7942         launch the thread.  Bug 31425 deadlocked when the test was run on
7943         mono under w32.
7944
7945 2002-10-01  Martin Baulig  <martin@gnome.org>
7946
7947         * debug-mono-symfile.c: Added support for properties.
7948
7949 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
7950
7951         * reflection.c: unaligned store fix from Mark Crichton
7952         <crichton@gimp.org>.
7953
7954 2002-09-27  Martin Baulig  <martin@gnome.org>
7955
7956         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
7957         New interncall.
7958
7959 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
7960
7961         * assembly.h, assembly.c: use a sane API to hook into the assembly
7962         loading process instead of a useless special-purpouse hack
7963         (ngen needs a hook, too, for example).
7964
7965 2002-09-27  Dick Porter  <dick@ximian.com>
7966
7967         * threads.c (mono_thread_init): Call GetCurrentProcess() so
7968         io-layer can set up some process handle info.  Not needed on w32,
7969         but doesn't hurt either.
7970
7971         * process.c: Pass the program name in the second parameter to
7972         CreateProcess, so the path is searched.  Include the working
7973         directory. Implemented process name, process enumeration, and some
7974         process detail internal calls.
7975         
7976         * icall.c: Added internal calls for process lookup, and some
7977         process details
7978
7979 2002-09-26  Martin Baulig  <martin@gnome.org>
7980
7981         * assembly.c (mono_install_open_assembly_hook): New global
7982         function to install a function to be invoked each time a new
7983         assembly is loaded.
7984         (mono_assembly_open): Run this callback function if set.
7985
7986         * debug-mono-symfile.c: Put back line numbers for the dynamic
7987         symbol file and also record the .il file as source file.  This
7988         allows us to install the temporary symbol file as `file.dbg' just
7989         like a compiler-generated one.
7990
7991 2002-09-26  Nick Zigarovich <nick@chemlab.org>
7992
7993         * Corrected typo in gc.c (BOHEM vs BOEHM).
7994
7995 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7996
7997         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
7998         GetProperties. Also avoid calling g_slist_length in GetProperties and
7999         GetMethods.
8000
8001 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
8002
8003         * reflection.c: avoid unaligned stores (bug spotted by
8004         Mark Crichton  <crichton@gimp.org>).
8005
8006 2002-09-25  Martin Baulig  <martin@gnome.org>
8007
8008         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
8009         instead of guint64 for addresses and added prologue/epilogue info.
8010
8011 2002-09-25  Martin Baulig  <martin@gnome.org>
8012
8013         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
8014         store line number info.  For the dynamic symbol file, we only need
8015         to provide the JIT generated dynamic line number info for the dynamic
8016         symbol file.
8017
8018 2002-09-25  Martin Baulig  <martin@gnome.org>
8019
8020         * debug-mono-symfile.h: Incremented version number.
8021
8022 2002-09-24  Martin Baulig  <martin@gnome.org>
8023
8024         * class.c (mono_debugger_class_init_func): New global function
8025         pointer variable.
8026         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
8027         call it.
8028
8029         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
8030         function.  This is called via the mono_debugger_class_init_func
8031         hook to add all types to the dynamic type table.
8032         (ves_icall_MonoDebugger_GetType): New interncall to get a class
8033         from its metadata token.
8034
8035         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
8036         New interncall for the debugger.
8037
8038 2002-09-24  Nick Drochak <ndrochak@gol.com>
8039
8040         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
8041         before using it in case it is null.
8042         
8043 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8044
8045         * metadata.c: allow custom modifiers in local var signatures
8046         (bug spotted by Zoltan Varga).
8047
8048 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
8049
8050         * class.c: deal with the <Module> class that may have a NULL vtable.
8051         Eliminate warnings.
8052
8053 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8054
8055         * image.c, image.h: more strong name helpers.
8056         * monosn.c: more work: convert pem keys to cryptoapi format.
8057
8058 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
8059
8060         * string-icalls.c: speedup IndexOf.
8061
8062 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8063
8064         * icall.c: updates from Zoltan.2.Varga@nokia.com.
8065
8066 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8067
8068         * icall.c: cleanup: use mono_object_domain ().
8069
8070 2002-09-23  Martin Baulig  <martin@gnome.org>
8071
8072         * debug-mono-symfile.c: Improved type support.
8073
8074 2002-09-22  Martin Baulig  <martin@gnome.org>
8075
8076         * debug-mono-symfile.c: Added support for reference types and strings.
8077
8078 2002-09-22  Martin Baulig  <martin@gnome.org>
8079
8080         * debug-mono-symfile.c: Started to work on the type table.
8081
8082 2002-09-21  Martin Baulig  <martin@gnome.org>
8083
8084         * debug-mono-symfile.c: Largely reworked the symbol table format.
8085         The symbol table is now incrementally updated each time a new
8086         method is added.  We're now also using our own magic and version
8087         so that you don't need to recompile all your classes if the
8088         dynamic table changes.
8089         (mono_debug_update_mono_symbol_file): Removed.
8090         (mono_debug_symfile_add_method): New function to add a method.
8091
8092 2002-09-21  Martin Baulig  <martin@gnome.org>
8093
8094         * icall.c
8095         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
8096         New interncall.
8097
8098         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
8099         New interncall to get a method from its metadata token.
8100
8101 2002-09-21  Martin Baulig  <martin@gnome.org>
8102
8103         * debug-mono-symfile.c: Create type table.
8104
8105 2002-09-20  Martin Baulig  <martin@gnome.org>
8106
8107         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
8108
8109 2002-09-20  Martin Baulig  <martin@gnome.org>
8110
8111         * debug-mono-symfile.c: Provide information about params and locals.
8112
8113 2002-09-20  Martin Baulig  <martin@gnome.org>
8114
8115         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
8116         New interncall.
8117
8118         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
8119         interncall to get a method from its metadata token.
8120
8121 2002-09-20  Martin Baulig  <martin@gnome.org>
8122
8123         * debug-mono-symfile.c: Added a few checks for method->header
8124         being non-NULL.  This should never happen, but for the moment
8125         let's use a g_warning() rather than a g_assert().
8126
8127 2002-09-19  Mark Crichton  <crichton@gimp.org>
8128
8129         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
8130         even if support for it isn't present.  Added an #ifdef to fix this.
8131
8132         * socket-io.c: Added checks back for Solaris support.
8133
8134 2002-09-19  Martin Baulig  <martin@gnome.org>
8135
8136         * debug-mono-symfile.c (read_string, write_string): Reflect latest
8137         changes in the symbol file format.
8138
8139 2002-09-18  Martin Baulig  <martin@gnome.org>
8140
8141         * debug-mono-symfile.c: Set version number to 21.
8142
8143 2002-09-18  Dick Porter  <dick@ximian.com>
8144
8145         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
8146         on netbsd.  Fixes bug 30051.
8147
8148 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8149
8150         * reflection.c:
8151         (set_version_from_string): little fix.
8152
8153 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8154
8155         * monosn.c, Makefile.am: added strong name utility.
8156         * reflection.h, reflection.c: implemented delayed signing,
8157         locale, version and hash id assembly attributes.
8158
8159 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
8160
8161         * loader.c, metadata.c: load param attributes in signatures.
8162
8163 2002-09-16  Martin Baulig  <martin@gnome.org>
8164
8165         * debug-mono-symfile.c: Added string table with all method names.
8166
8167 2002-09-14  Martin Baulig  <martin@gnome.org>
8168
8169         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
8170         fast method lookup.
8171
8172 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
8173
8174         * reflection.c: record the public key token of referenced assemblies.
8175
8176 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
8177
8178         * image.c, image.h: added functions to get the strong name and the
8179         public key of an assembly.
8180         * pedump.c: use them.
8181
8182 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
8183
8184         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
8185
8186 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
8187
8188         * marshal.c (mono_marshal_get_managed_wrapper): Added
8189         MONO_TYPE_BOOLEAN 
8190
8191 2002-09-11  Martin Baulig  <martin@gnome.org>
8192
8193         * gc.c: Call GC_unregister_disappearing_link() on all links when
8194         finalizing them, this is necessary to aviod a crash in boehm's
8195         finalize handler.
8196
8197 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8198
8199         * gc.c: handle GetTarget for finalized objects spotted and fixed by
8200         nick@chemlab.org.
8201
8202 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
8203
8204         * icall.c: implemented MonoType::Module.
8205         * reflection.c, reflection.h: mono_module_get_object () from
8206         Tomi Pakarinen <tomi.pakarinen@welho.com>.
8207
8208 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
8209
8210         * icall.c: ignore overridden methods in GetMethods ().
8211         Fix for FieldInfo::SetValue().
8212         * object.c: handle float/double in runtime invoke.
8213
8214 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
8215
8216         * object.c: allow a constructor to be called again on an object.
8217
8218 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8219
8220         * class.h, class.c: move field layout code to it's own function and
8221         export it. Get an interface id earlier. Move fields in MonoClass
8222         so they are more cache friendly and align the bitfields.
8223         * loader.c: temporary handle get_param_names() for a runtime method.
8224         * reflection.c, reflection.h: more code to handle runtime creation of
8225         types.
8226
8227 2002-09-09  Martin Baulig  <martin@gnome.org>
8228
8229         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
8230         signature with the pinvoke field being set for the actual call.
8231
8232 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8233
8234         * icall.c: removed some unused icalls. Start of map of glib charsets
8235         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
8236
8237 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
8238
8239         * debug-helpers.c: break infinite loop (found and fixed by
8240         Holger Arnold <harnold@gmx.de>).
8241
8242 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
8243
8244         * icall.c: target may be null in create_delegate.
8245
8246 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
8247
8248         * marshal.c: handle a boolean return type.
8249
8250 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
8251
8252         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
8253
8254 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
8255
8256         * gc.c: fix weakreferences.
8257
8258 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
8259
8260         * icall.c: added icall to get default codepage.
8261
8262 2002-09-03  Dick Porter  <dick@ximian.com>
8263
8264         * threads.h: 
8265         * threads.c: Use MonoThread instead of MonoObject where
8266         apropriate.
8267
8268         Store running thread objects in a hash table, so that we have all
8269         the info to hand when waiting for them to finish
8270         (means we don't need OpenThread() any more, so mingw builds should
8271         be fully functional again.)
8272
8273         * verify.c:
8274         * object.h: Added thread ID to MonoThread
8275
8276 2002-09-03  Martin Baulig  <martin@gnome.org>
8277
8278         * icall.c (System.Reflection.Assembly::get_location): New interncall.
8279
8280 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8281
8282         * icall.c: fixed leak in get_temp_path. Thanks lupus.
8283
8284 2002-09-03  Martin Baulig  <martin@gnome.org>
8285
8286         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
8287         argument to store the end address of the disassembled instruction.
8288
8289         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
8290         here from debug-symfile.h.
8291         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
8292         JIT into this struct.
8293         (MonoSymbolFile): Added `char *image_file' field.
8294         (MonoDebugGetMethodFunc): Removed.
8295         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
8296         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
8297         (mono_debug_find_method): New method.
8298
8299         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
8300         create a full symbol file.
8301         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
8302         and static symbol files.
8303         (mono_debug_find_method): The symbol file keeps an internal method hash,
8304         call this to get a MonoDebugMethodInfo from a MonoMethod.
8305
8306         * debug-symfile.[ch]: Removed.
8307
8308 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
8309
8310         * image.c (do_mono_image_open): Remove linker version check.
8311
8312 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
8313
8314         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
8315         wrappers for instance methods.
8316         
8317 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8318
8319         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
8320
8321 2002-08-28  Dick Porter  <dick@ximian.com>
8322
8323         * Makefile.am: Export HOST_CC for w32 builds
8324
8325 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
8326
8327         * file-io.c process.c: MonoString are null terminated, no
8328         need for mono_string_to_utf16() anymore.
8329
8330 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8331
8332         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
8333
8334 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
8335
8336         * icall.c, reflection.h: speedup System.MonoType.
8337
8338 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
8339
8340         * reflection.c: allow null as the value of a string argument in
8341         custom attributes constructors.
8342
8343 2002-08-27  Martin Baulig  <martin@gnome.org>
8344
8345         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
8346         `trampoline_address' field.
8347
8348 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
8349
8350         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
8351         check (fixes bug #29486) 
8352
8353 2002-08-27  Martin Baulig  <martin@gnome.org>
8354
8355         * debug-mono-symfile.c: Changed the file format in a way that allows us
8356         open it read-only and to use a specially malloced area for all the
8357         dynamic data.  We can now also generate a symbol file on-the-fly if we're
8358         debugging IL code and there is no MCS generated symbol file for it.
8359
8360 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
8361
8362         * object.c: added a define for a good string and array
8363         creation speedup (not enabled by default because we need to deal with
8364         the synch stuff).
8365
8366 2002-08-26  Martin Baulig  <martin@gnome.org>
8367
8368         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
8369         function to create a dynamic symbol file.  This is used by the
8370         debugger to create a symbol file for IL code on-the-fly.
8371
8372 2002-08-26  Martin Baulig  <martin@gnome.org>
8373
8374         * loader.c (mono_lookup_pinvoke_call): Include the error message
8375         from g_module_error() in the error message.
8376
8377 2002-08-24  Martin Baulig  <martin@gnome.org>
8378
8379         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
8380         function to update the symbol file.  The symbol file is mmap()ed
8381         writable, but private.  This allows us to install the symbol file
8382         together with the assembly.
8383
8384 2002-08-24  Martin Baulig  <martin@gnome.org>
8385
8386         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
8387         but they can read the new symbol file format which mcs is now creating.
8388
8389         * debug-symfile.c (mono_debug_find_source_location): Moved to
8390         debug-mono-symfile.c; this is now operating on the new symbol file.
8391
8392 2002-08-23  Martin Baulig  <martin@gnome.org>
8393
8394         * debug-helpers.c (mono_method_desc_from_method): New function to get
8395         a MonoMethodDesc from a MonoMethod.
8396
8397 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
8398
8399         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
8400         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
8401
8402 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
8403
8404         * string-icalls.[ch]: make helper methods static.
8405
8406 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8407
8408         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
8409         types to it and to SetValueInternal.
8410
8411         * object.c: Moved handle_enum label to its proper place. This was the
8412         f... bug! ;-)
8413
8414         This time i compiled mcs and gtk-sharp and they both work.
8415
8416 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8417
8418         * icall.c: reverted partially my previous patch until 
8419         object.c:set_value handles enums correcly.
8420
8421 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8422
8423         * icall.c:
8424         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
8425         (ves_icall_System_Environment_get_MachineName): removed warning when
8426         compiling under cygwin.
8427
8428 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
8429
8430         * object.c: fixed field_get_value() for reference types.
8431
8432 2002-08-22  Dick Porter  <dick@ximian.com>
8433
8434         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
8435         Don't free a buffer while it's still needed.  Patch from Jonathan
8436         Liger <Jonathan.liger@wanadoo.fr>
8437
8438 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
8439
8440         * icall.c (ves_icall_System_Environment_get_Platform): Add new
8441         internal call.
8442
8443 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
8444
8445         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
8446         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
8447
8448         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
8449         we call unmanaged code which throws exceptions.
8450
8451 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8452
8453         * appdomain.h: added per-domain entry_assembly.
8454         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
8455         arguments.
8456         * icall.c: Assembly::GetEntryAssembly icall.
8457         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
8458         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
8459
8460 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8461
8462         * appdomain.h, gc.c: added mono_domain_finalize ().
8463
8464 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8465
8466         * object.c:
8467         (mono_print_unhandled_exception): changed g_warning by g_printerr
8468         because g_log has a 1024 characters limit (yeah, i got a big stack
8469         trace). Don't print exception name, that should be in ToString 
8470         returned string.
8471
8472 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8473
8474         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
8475         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
8476
8477 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8478
8479         * object.c:
8480         (mono_print_unhandled_exception): after previous commit, i realized
8481         that MS calls ToString on the exception. I changed this function to
8482         do that. This way we get stack_trace for free.
8483
8484 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8485
8486         * object.c:
8487         (mono_print_unhandled_exception): invoke Message property instead of
8488         getting 'message' field from Exception. Don't allocate memory for
8489         'trace' and 'message' if not needed.
8490
8491 2002-08-18  Dick Porter  <dick@ximian.com>
8492
8493         * unicode.c: Fix asserts to match Encoder.cs checks
8494
8495 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8496
8497         * marshal.c: fix unaligned store issue and a few wrong
8498         opcode argument types.
8499
8500 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8501
8502         * icall.c: added GetUninitializedObjectInternal internal call.
8503
8504 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
8505
8506         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
8507         to the right domain.
8508
8509 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
8510
8511         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
8512
8513         * class.c (class_compute_field_layout): set blittable to false for Strings
8514
8515         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
8516
8517 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8518
8519         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
8520         first chunk of code to create types at runtime. Code to
8521         handle ReflectedType/DeclaringType. Make reflection handles
8522         domain specific.
8523
8524 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
8525
8526         * class.c: set correct name in arrays.
8527
8528 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
8529
8530         * appdomain.c (mono_domain_transfer_object): make it work with
8531         valuetypes. bug fixes.
8532
8533 2002-08-12  Dick Porter  <dick@ximian.com>
8534
8535         * object.h: Rename some parameters to avoid c++ keywords (Patch
8536         from Joseph Wenninger <kde@jowenn.at>)
8537
8538 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
8539
8540         * icall.c: added icall to implement Assembly.GetFile*.
8541
8542 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8543
8544         * reflection.h, reflection.c: code to embed managed resources.
8545
8546 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
8547
8548         * class.c: move all the type size stuff into
8549         class_compute_field_layout().
8550
8551 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
8552
8553         * class.c: ensure enums have always the correct instance size.
8554         * unicode.c: remove wrong assert.
8555
8556 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
8557
8558         * assembly.c: fix mem corruption issue.
8559         * image.h, image.c: added mono_image_get_resource () to access
8560         managed resources.
8561         * icall.c: implemented Assembly.EntryPoint property and some
8562         Managed Resources related internalcalls.
8563
8564
8565 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
8566
8567         * image.c, image.h: impemented mono_image_get_entry_point ().
8568         * appdomain.c: use mono_image_get_entry_point.
8569
8570 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8571
8572         * reflection.c: support the object type argument when loading
8573         custom attributes.
8574
8575 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
8576
8577         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
8578         String as return type.
8579
8580 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
8581
8582         * reflection.c: fix encoding of named args for custom attrs to match
8583         the ms implementation. Read them back when instantiating custom
8584         attributes.
8585
8586 2002-08-02  Radek Doulik  <rodo@ximian.com>
8587
8588         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
8589         by Dietmar as quick fix
8590         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
8591         16 as stack size, used on more places as quick fix before Dietmar
8592         will fix it properly
8593
8594 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
8595
8596         * object.h, object.c: added accessors for fields and properties.
8597
8598 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
8599
8600         * class.c, class.h: made mono_class_get_field_from_name ()
8601         loop on parent types.
8602         Added mono_class_get_property_from_name ().
8603
8604 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
8605
8606         * class.c, class.h: move the code to setup the type vtable in its own
8607         function so that it can be reused also for types created at runtime.
8608         Eliminate the "class" identifier from the header file.
8609         * reflection.c: setup the vtable for enums so that we can create
8610         objects for use in SetConstant ().
8611
8612 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
8613
8614         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
8615         instead of the delegate itself as this pointer (bug #28383)
8616
8617 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
8618
8619         * marshal.c (mono_marshal_get_managed_wrapper): added return type
8620         conversions.
8621
8622 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8623
8624         * loader.c: don't set the pinvoke bit on icalls.
8625
8626 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
8627
8628         * debug-helpers.c (mono_method_full_name): only print a number to
8629         indicate wrapper type (so that the output is more readable in traces).
8630
8631 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
8632
8633         * class.c (mono_class_init): include method override patch from Paolo
8634
8635 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
8636
8637         * icall.c: fixed GetTypeCode().
8638
8639 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
8640
8641         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
8642         use real delegate invoke function to make it work with multicast
8643         delegates (fix bug# 28291).
8644
8645 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
8646
8647         * object.c: load constant strings.
8648
8649 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
8650
8651         * reflection.c: no magic numbers.
8652         * tabledefs.h: security action enum.
8653
8654 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
8655
8656         * assembly.c: fix possible memory corruption.
8657
8658 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
8659
8660         * reflection.h, reflection.c: added support for linking resources.
8661         * verify.c: check we have an updated corlib.
8662
8663 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
8664
8665         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
8666         string arrays.
8667         (mono_marshal_string_array): null terminate unmanaged string arrays.
8668         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
8669
8670 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
8671
8672         * icall.c: Type.GetType () can now return also types from the
8673         calling assembly.
8674
8675 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
8676
8677         * loader.h, loader.c: stack walking support.
8678         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
8679         GetCallingAssembly.
8680
8681 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
8682
8683         * marshal.c: added optimisations for blittable types 
8684
8685         * class.c (mono_array_class_get): do not set blittable attribute on arrays
8686         (mono_class_setup_mono_type): set blittable attribute for single
8687         and double.
8688
8689         * marshal.c (mono_string_utf8_to_builder): impl.
8690         (mono_string_builder_to_utf8): impl.
8691         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
8692
8693 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
8694
8695         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
8696         (mono_marshal_get_managed_wrapper): impl. byref types
8697
8698 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8699
8700         * icall.c:
8701         (search_method): don't display debug message. 
8702
8703 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
8704
8705         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
8706
8707 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
8708
8709         * appdomain.c: set the missing filename when throwing exception.
8710
8711 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
8712
8713         * metadata.c (mono_type_size): code cleanup
8714         (mono_type_stack_size): removed some test code
8715
8716 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
8717
8718         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
8719         mono_get_exception_file_not_found now.
8720
8721         * exception.c (mono_exception_from_name_two_strings): New version
8722         that will call a constructor with two string arguments. 
8723         (mono_get_exception_file_not_found): New helper routine, used to
8724         report file-not-found errors.
8725
8726 2002-07-20  Dick Porter  <dick@ximian.com>
8727
8728         * process.h:
8729         * process.c: Pass file handles to CreateProcess
8730         
8731         * icall.c:
8732         * file-io.h:
8733         * file-io.c: Implemented CreatePipe
8734
8735 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
8736
8737         * metadata.c (mono_get_param_info): set alignment for value types
8738
8739 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
8740
8741         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
8742         Constify mono_domain_assembly_open().
8743         * loader.c: handle null namespace in icalls.
8744
8745 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
8746
8747         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
8748         (emit_str_to_ptr_conv): marshal object as structs
8749
8750         * metadata.c (mono_type_to_unmanaged): marshal object as structs
8751
8752         * marshal.c (mono_marshal_get_runtime_invoke): support value types
8753
8754 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
8755
8756         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
8757         (mono_marshal_get_native_wrapper): we an now return value types
8758
8759 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
8760
8761         * verify.c: more checks implemented.
8762
8763 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
8764
8765         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
8766         (fix bug #27695)
8767         (mono_marshal_get_native_wrapper): allow byref arguments
8768         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
8769         impl. PtrToStringXXX methods
8770         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
8771         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
8772         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
8773         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
8774         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
8775
8776 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8777
8778         * reflection.c: fix buglet in parsing an assembly name.
8779
8780 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
8781
8782         * marshal.c (emit_ptr_to_str_conv): first impl.
8783
8784 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
8785
8786         * object.c, class.h: cache the vtable in the class as suggested by
8787         vargaz@freemail.hu (Zoltan Varga).
8788
8789 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
8790
8791         * class.h, loader.c: added mono_field_from_token().
8792         * verify.c: first cut of type checking code.
8793
8794 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
8795
8796         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
8797
8798 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
8799
8800         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
8801         (fix bug #27782)
8802         (mono_marshal_get_remoting_invoke): impl.
8803         (mono_delegate_begin_invoke): impl.
8804         (mono_mb_emit_save_args): impl.
8805         (mono_delegate_end_invoke): impl.
8806         (mono_marshal_get_delegate_begin_invoke):
8807         (mono_marshal_get_delegate_end_invoke):
8808         (mono_marshal_get_delegate_invoke): generate a special name for
8809         those methods (including the signature) and associate them whith
8810         the delegate class. 
8811
8812 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
8813
8814         * reflection.[ch]: 
8815         (mono_reflection_type_from_name): now it has a MonoImage parameter
8816         which is used as the default image to search the type in. If the image
8817         is NULL or getting the type from it fails, it defaults to corlib.
8818
8819         * icall.c: changed 1 call to mono_reflection_type_from_name to match
8820         new parameter.
8821
8822 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
8823
8824         * reflection.c: update the parameter table index.
8825
8826 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
8827
8828         * domain.c: don't include the mark byte in the string hash.
8829
8830 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
8831
8832         * icall.cs: icall for Type.GetTypeCode ().
8833         * verify: a couple of fixes and disabled local initialization checks.
8834
8835 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
8836
8837         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
8838
8839         * debug-helpers.c (mono_method_full_name): print the type of the
8840         runtime wrapper
8841
8842         * metadata.c (mono_signature_hash): a hash function for signatures
8843         (mono_signature_hash): better hash algorithm
8844
8845         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
8846
8847         * debug-helpers.c (mono_method_full_name): this can now generate
8848         method names with signatures
8849
8850         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
8851         method dont have this pointers.
8852
8853 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
8854
8855         * reflection.c: fixup typebuilder tokens.
8856         * image.c: fix buglet.
8857         * marshal.h: remove whitespace.
8858         * metadata.h, metadata.c: reinstate code that was removed.
8859         * verify.c: handle catch directives and fix another couple of bugs.
8860
8861 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
8862
8863         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
8864         (mono_marshal_get_native_wrapper): make it comp. with the old code
8865         (mono_marshal_get_native_wrapper): support boolean
8866         (mono_marshal_get_managed_wrapper): support more types
8867
8868 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
8869
8870         * class.c (class_compute_field_layout): compute class->blittable attribute.
8871
8872 2002-07-09  Dick Porter  <dick@ximian.com>
8873
8874         * threads.c: Make the thread cleaning up cope with threads that
8875         call ExitThread()
8876
8877 2002-07-08  Radek Doulik  <rodo@ximian.com>
8878
8879         * reflection.c (method_encode_code): use non-translated values to
8880         compute finally_start, this fixes exception handling on ppc, yay!
8881
8882         * decimal.h (struct signscale): fix endianess
8883
8884 2002-07-07  Radek Doulik  <rodo@ximian.com>
8885
8886         * reflection.c: swap box_val and not val
8887
8888 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
8889
8890         * reflection.c, reflection.h: handle full assembly info in type name.
8891         Handle Type arguments when loading custom attributes.
8892         * icall.c: updated to use new mono_reflection_type_from_name () method.
8893
8894 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8895
8896         * loader.c:
8897         (method_from_memberref): also print assembly name when method not found.
8898
8899 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8900
8901         * icall.c:
8902         (ves_icall_TypeGetProperties): fixed bug #27473. 
8903
8904 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8905
8906         * reflection.c: display image name and token when cannot find the
8907         .ctor for an attribute.
8908
8909 2002-07-05  Martin Baulig  <martin@gnome.org>
8910
8911         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
8912
8913 2002-07-04  Dick Porter  <dick@ximian.com>
8914
8915         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
8916         compile on mingw.  This will cause mingw builds to not wait for
8917         subthreads to terminate after the main thread does.  I've lodged a
8918         bug with the mingw developers for them to wrap OpenThread().
8919
8920 2002-07-03  Dick Porter  <dick@ximian.com>
8921
8922         * threads.c: Store thread IDs instead of handles, because
8923         GetCurrentThread() returns a pseudohandle and therefore stores
8924         useless values.  mono_thread_cleanup() continues checking the
8925         array of threads until it is empty, to cope with subthreads
8926         spawning new threads after the main thread has finished.
8927
8928         * profiler.h:
8929         * profiler.c:
8930         * profiler-private.h: Pass the thread ID to thread profiler
8931         functions, instead of a handle
8932
8933 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
8934
8935         * verify.c: fixes to make it more usable.
8936         * pedump.c: added --verify code to verify IL code in an assembly.
8937
8938 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
8939
8940         * reflection.c: turn errors into warnings to allow compiling corlib.
8941
8942 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
8943
8944         * reflection.c: add special cases to compile corlib.
8945
8946 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
8947
8948         * reflection.c: handle properties with only a set method.
8949
8950 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
8951
8952         * opcodes.h: add enum with opcodes in opval order.
8953
8954 2002-07-01  Dick Porter  <dick@ximian.com>
8955         
8956         * object.h:
8957         * object.c (mono_runtime_run_main): Removed unneeded argument
8958
8959 2002-06-28  Martin Baulig  <martin@gnome.org>
8960
8961         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
8962
8963 2002-06-27  Dick Porter  <dick@ximian.com>
8964
8965         * threads.c: Store the handle in both the parent thread and in the
8966         subthread, to minimise the time between starting a new thread and
8967         storing its ID.
8968
8969 2002-06-26  Dick Porter  <dick@ximian.com>
8970
8971         * appdomain.c (mono_runtime_cleanup): Close the socket library
8972         after all the threads have finished, not before
8973
8974 2002-06-26  Martin Baulig  <martin@gnome.org>
8975
8976         * debug-symfile.c (mono_debug_find_source_location): Added
8977         `guint32 *line_number' argument.  If it's not NULL, store the line number
8978         there and return the file name without the line number.
8979
8980 2002-06-25  Dick Porter  <dick@ximian.com>
8981
8982         * icall.c:
8983         * process.h:
8984         * process.c: Process forking and other support functions
8985
8986 2002-06-25  Dick Porter  <dick@ximian.com>
8987
8988         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
8989         things dont happen when the image is closed.
8990         (mono_image_lookup_resource): Walk the resource section looking
8991         for a particular entry
8992
8993         * cil-coff.h: PE resource section decoding
8994
8995 2002-06-25  Dick Porter  <dick@ximian.com>
8996         
8997         * assembly.h:
8998         * assembly.c: 
8999         (mono_assembly_foreach): Accessor functions to walk the list of
9000         loaded assemblies
9001         (mono_assembly_set_main):
9002         (mono_assembly_get_main): Process methods need to know which
9003         assembly is the "main" one
9004
9005         * object.c (mono_runtime_run_main): Record the main assembly
9006
9007         * debug-helpers.c: Fix typo
9008
9009 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
9010
9011         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
9012         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
9013
9014 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9015
9016         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
9017
9018 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
9019
9020         * image.c (do_mono_image_open): Initialize reference count,
9021         otherwise we leak the MonoImage.
9022
9023 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9024
9025         * reflection.c: small tweak to handle self-hosting.
9026
9027 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9028
9029         * reflection.c: fix type name parse code.
9030
9031 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9032
9033         * reflection.c: break out of the loop.
9034         * image.c: special case corlib.
9035
9036 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9037
9038         * reflection.c: add all the custom attrs at the end to ensure the
9039         ctors have been properly initialized when the attributes are defined
9040         in the current assembly.
9041
9042 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9043
9044         * reflection.c: handle correctly multiple-nested types.
9045
9046 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9047
9048         * row-indexes.h: fix typos.
9049         * reflection.c: adjust for typos and fix method_def_or_ref
9050         encoding in MethodImpl table.
9051
9052 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9053
9054         * reflection.c: fix entry point patching (thanks Serge!).
9055
9056 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
9057
9058         * verify.c: add check for System.Exception
9059
9060 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
9061
9062         * image.c, class.c: minifix for code just c&p'ed.
9063         * reflection.c: warning fix.
9064         * object.h, loader.h, domain.c: load also StringBuilder.
9065
9066 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
9067
9068         * marshal.h, marshal.c: some support code to handle complex marshaling.
9069
9070 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9071
9072         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
9073         Better signatures with vtable error dump.
9074
9075 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
9076
9077         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
9078
9079 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
9080
9081         * icall.c (ves_icall_Type_GetField): impl.
9082
9083 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9084
9085         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
9086         to retrieve a marshal description blob for a field or param.
9087
9088 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9089
9090         * reflection.h, reflection.c: change order of nested type emission
9091         to avoid table corruption. The NestedTypes table is sorted.
9092         * icall.c: change order of GetConstructor results to workaround mcs bug.
9093
9094 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9095
9096         * reflection.h, reflection.c: handle field and param marshal
9097         information.
9098
9099 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9100
9101         * icall.c, marshal.c marshal.h: more Marshal class implementation.
9102
9103 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9104
9105         * reflection.c: fix call convention.
9106
9107 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9108
9109         * reflection.h, reflection.c: mono_image_get_memberref_token()
9110         takes a type instead of a class, now. Added
9111         mono_image_get_array_token() to create tokens for the special
9112         multi-dim array methods.
9113
9114 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9115
9116         * assembly.c: handle modules (no assembly table). Split
9117         loading references in its own function.
9118         * class.c: handle moduleref resolution scope.
9119         * image.c, image.h: cache module name in image.
9120
9121 2002-06-07  Martin Baulig  <martin@gnome.org>
9122
9123         * reflection.c (mono_image_get_type_info): Only add a class layout entry
9124         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
9125
9126 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9127
9128         * icall.c: more signature fixes that used uint instead of int.
9129
9130 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9131
9132         * reflection.c: fixed signature of field refs.
9133
9134 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9135
9136         * class.c, reflection.c: handle typerefs of nested types
9137         (both on read and when writing files).
9138
9139 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
9140
9141         * icall.c: fix method signatures that tried to workaround the previous
9142         typo, d'oh!
9143
9144 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9145
9146         * debug-helpers.c: fix typo.
9147
9148 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9149
9150         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
9151         rewrote the PE/COFF writing code (our programs are understood by the
9152         ms runtime, now).
9153
9154 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
9155
9156         * gc.c, gc.h, icall.c: weakreference support.
9157
9158 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
9159
9160         * Makefile.am, mono-config.c: use $(sysconfdir).
9161
9162 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9163
9164         * icall.c: changed default precision of Double.ToString() to 15.
9165         Fixed memory leak. Unified with Single.ToString.
9166
9167 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
9168
9169         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
9170
9171 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
9172
9173         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
9174         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
9175         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
9176         and myself.
9177
9178 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9179
9180         * debug-symfile.c, sysmath.c: yet more compilation fixes.
9181
9182 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9183
9184         * reflection.c, socket-io.c: more compilation fixes.
9185
9186 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9187
9188         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
9189         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
9190         unicode.c: warning and compiler compatibility fixes.
9191
9192 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9193
9194         * class.h, metadata.c: fixed warnings/compilation errors.
9195
9196 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
9197
9198         * Makefile.am, mono-config.c, mono-config.h: configuration file
9199         support routines.
9200         * loader.c, loader.h: make Dll mapping configurable at runtime in the
9201         config file. Export methods to insert and lookup mappings.
9202
9203 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9204
9205         * reflection.c: handle types and boxed objects in custom attr
9206         constructors.
9207
9208 2002-05-30  Martin Baulig  <martin@gnome.org>
9209
9210         * debug-symfile.c
9211         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
9212
9213 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
9214
9215         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
9216         to lookup the implmap row for a P/Invoke method.
9217         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
9218         P/Invoke method from the runtime on an as needed basis.
9219
9220 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
9221
9222         * metadata.c (mono_metadata_parse_signature): impl.
9223
9224 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9225
9226         * class.c: handle .pack directive.
9227
9228 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9229
9230         * object.c: initialize static fields with RVA data.
9231
9232 2002-05-25  Martin Baulig  <martin@gnome.org>
9233
9234         * debug-symfile.c
9235         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
9236
9237 2002-05-24  Martin Baulig  <martin@gnome.org>
9238
9239         * debug-symfile.c
9240         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
9241         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
9242         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
9243
9244 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9245
9246         * object.c: special case string ctros in invoke.
9247         * gc.c: silly whitespace changes.
9248
9249 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
9250
9251         * threadpool.[ch]: impl. a threadpool that can
9252         be used by mint and mono.
9253
9254 2002-05-22  Martin Baulig  <martin@gnome.org>
9255
9256         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
9257         The first argument is now a `MonoReflectionModuleBuilder *', the return
9258         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
9259         `methods' field to get the method builder.  The `token' argument is the
9260         unfixed token.
9261
9262         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
9263         invalid characters instead of g_assert_not_reached()ing.  This seems
9264         to be the behaviour of mscorlib.
9265
9266 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
9267
9268         * object.c (mono_runtime_invoke_array): applied patch from Rachel
9269         Hestilow to fix bug #25104
9270
9271 2002-05-21  Martin Baulig  <martin@gnome.org>
9272
9273         * debug-symfile.c (mono_debug_find_source_location): New function.
9274         Looks up an IL offset in the line number table and returns the source
9275         location as a string.
9276
9277 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9278
9279         * icall.c:
9280         (mono_double_ToStringImpl): changed %f by %g until we have something
9281         better.
9282
9283 2002-05-21  Nick Drochak  <ndrochak@gol.com>
9284
9285         * icall.c : Use different name for Math.Pow's icall.  Needed to check
9286         parameters first in C#.
9287
9288 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9289
9290         * icall.c, reflection.h: added icall to get info about an event.
9291
9292 2002-05-20  Radek Doulik  <rodo@ximian.com>
9293
9294         * object.c (mono_value_box): don't use memcpy for boxing on BIG
9295         endian
9296         (mono_value_box): don't use memcpy for small sizes on
9297         architectures with unaligned access
9298
9299 2002-05-20  Martin Baulig  <martin@gnome.org>
9300
9301         * reflection.c (mono_reflection_setup_internal_class): Don't crash
9302         if `tb->parent == NULL'.
9303         (mono_reflection_create_internal_class): New function.  This is
9304         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
9305         for enum types.
9306
9307         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
9308         New interncall.
9309
9310 2002-05-19  Martin Baulig  <martin@gnome.org>
9311
9312         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
9313         argument to get the length, don't default to the array length.
9314
9315 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
9316
9317         * assembly.c (mono_assembly_setrootdir): New function used to
9318         override the MONO_ASSEMBLIES directory.
9319
9320 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9321
9322         * icall.c: ValueType_GetHashCode() initialize local var.
9323
9324 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9325
9326         * reflection.c: sort custom attributes table.
9327
9328 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9329
9330         * reflection.c: support named args in custom attributes (write support).
9331
9332 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
9333
9334         * reflection.c: fix finally position calculation.
9335
9336 2002-05-15  Radek Doulik  <rodo@ximian.com>
9337
9338         * reflection.c: fixed endianess at many places
9339
9340         * icall.c (ves_icall_InitializeArray): comment out debug msg
9341
9342 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
9343
9344         * object.c (mono_unhandled_exception): new function to handle
9345         unhandled exceptions.
9346         (mono_unhandled_exception): call the UnhandledException event.
9347         (mono_runtime_delegate_invoke): impl.
9348
9349 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
9350
9351         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
9352         returns the RVA, not the direct pointer to the data. Handle the case
9353         when the class size is fixed.
9354
9355 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
9356
9357         * reflection.c: fix some endianess issues.
9358
9359 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
9360
9361         * object.c (mono_runtime_invoke): is now able to catch exceptions.
9362
9363         * threads.c (mono_thread_init): added a callback which is invoked
9364         at thread start.
9365
9366 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
9367         
9368         * icall.c: make GetHashCode return non-negative values.
9369
9370 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
9371
9372         * object.c, icall.c, gc.c: revert to address-based hashcode.
9373
9374 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
9375
9376         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
9377
9378 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9379
9380         * icall.c, class.c: special case <Module>.
9381
9382 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
9383
9384         * icall.c: fix bug in GetNow().
9385
9386 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
9387
9388         * object.c (mono_runtime_class_init): make sure that we call all
9389         static class constructors.
9390
9391 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9392
9393         * reflection.c: sort methodsemantics table.
9394
9395 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
9396
9397         * reflection.h, reflection.c: honour init locals setting.
9398
9399 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
9400
9401         * icall.c: copied Double ToStringImpl for Single ToStringImpl
9402
9403 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9404
9405         * reflection.c: support ContructorBuilders in attribute blob creation.
9406
9407 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9408
9409         * reflection.c: some changes to build a binary that can be run
9410         directly in windows.
9411
9412 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
9413
9414         * loader.c: print a big message when an icall can't be found.
9415
9416 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9417
9418         * string-icalls.c: fix bug 24248.
9419
9420 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
9421
9422         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
9423         icall.c, reflection.h: separate assembly loading by pathname and by
9424         assembly name. Use the MONO_PATH env var to search for assemblies.
9425
9426 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9427
9428         * assembly.c, image.h: add some support for assemblies
9429         with multiple modules.
9430         * class.c, class.h: export mono_class_from_typeref().
9431         * loader.c: remove duplicated code and use mono_class_from_typeref(),
9432         instead.
9433
9434 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9435
9436         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
9437         documentation says (the ECMA one is correct).
9438
9439 2002-05-02  Dick Porter  <dick@ximian.com>
9440
9441         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
9442         Don't name the synchronisation mutex.
9443
9444 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
9445
9446         * rand.c
9447         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
9448         Make the prototypes match.
9449         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
9450         Same.
9451
9452         * icall.c
9453         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
9454         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
9455         all systems have tm.tm_zone, so use strftime() with %Z to print
9456         the timezone abreviation into a temp string.
9457
9458         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
9459         rather than mono_array_addr() on a MonoString on Big Endian
9460         machines.
9461
9462 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
9463
9464         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
9465         fix bug 24041
9466
9467 2002-04-30  Dick Porter  <dick@ximian.com>
9468
9469         * socket-io.c: Cope with SOCKET being an integer rather than a
9470         pointer now.
9471
9472         * threads.c: Added Thread_free_internal, to deal with thread
9473         handle cleanup.  Moved calls to handle_store() and handle_remove()
9474         to start_wrapper(), so each can only be called once.  Allocate
9475         synchronisation blocks with GC_malloc(), and use GC finalisation
9476         to close the handles.
9477
9478         * icall.c: added System.Threading.Thread::Thread_free_internal
9479
9480 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9481
9482         * icall.c: support Environment.Exit, CommandLineArgs().
9483
9484 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
9485
9486         * object.c, object.h: added mono_runtime_run_main () and
9487         mono_runtime_get_main_args () for use in System.Environment.
9488
9489 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
9490
9491         * gc.c: fix thinko, enable actual finalization since the jit is now
9492         fixed.
9493
9494 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9495
9496         * gc.c, object.c: take into account that an object may be offset wrt the address
9497         returned by GC_malloc().
9498
9499 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9500
9501         * image.c: handle files without entries in the assembly table (modules).
9502
9503 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
9504
9505         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
9506         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
9507         allowed to be null when it's System.Object class setup.
9508
9509 2002-04-27  Martin Baulig  <martin@gnome.org>
9510
9511         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
9512         if `tb->parent == NULL' rather than crashing.
9513
9514 2002-04-28  Nick Drochak  <ndrochak@gol.com>
9515
9516         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
9517         calling acos() where asin() should have been called.
9518
9519 2002-04-26  Martin Baulig  <martin@gnome.org>
9520
9521         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
9522         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
9523         there's a subdirectory called `System', but we don't want to read that
9524         subdirectory as an assembly.
9525
9526 2002-04-25  Martin Baulig  <martin@gnome.org>
9527
9528         * debug-symfile.c: Reflect latest MonoString changes.
9529
9530 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9531
9532         * rand.c, rand.h: instance method icalls need to have an explicit
9533         this pointer as first argument in the C implementation.
9534
9535 2002-04-25  Nick Drochak <ndrochak@gol.com>
9536
9537         * icall.c: Fix typo in map for GetNonZeroBytes
9538
9539 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
9540
9541         * string-icalls.c : String does now passes unit tests without any 
9542         errors, the following changes has been made:
9543         
9544         Implemented replace methods.
9545         Renaming of methods to (try) follow the standard.
9546         Fixed compare ordinal
9547         Made all memory allocated directly to function instead of via icall function.
9548         Small performance fix in is_in_array function
9549                         
9550  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
9551
9552         c (mono_string_Internal_ctor_charp_int_int):
9553         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
9554         sindex < 0, throw ArgumentOutOfRangeException instead of
9555         ArgumentNullException.
9556
9557         Added new check for length == 0, however
9558         I need to make it return String.Empty from the C code.
9559         
9560         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
9561         that calculate the length for us here.
9562         
9563         (mono_string_Internal_ctor_sbytep_int_int): Replaced
9564         mono_string_new_utf16 with mono_string_new, since value is utf8.
9565
9566 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9567
9568         * object.c: register the object for finalization if needed.
9569         Allocate one more char in the string for the terminating 0 char.
9570
9571 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
9572
9573         * class.c, class.h, image.c: check if a type implemenst a destructor.
9574         Use the proper key for array class lookups.
9575         * icall.c: register the icalls in the System.GC class.
9576         * gc.c, gc.h: GC-related functions and icalls.
9577
9578 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9579
9580         * icall.c:
9581         * socket-io.c:
9582         * unicode.c: free some strings gotten from mono_string_to_utf8 and
9583         changed a couple of free () by g_free ().
9584
9585         * decimal.c: one-liner in the comments for decimal2string ().
9586
9587 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
9588
9589         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
9590
9591 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
9592
9593         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
9594         * object.c (mono_runtime_invoke_array) : handle null in params
9595
9596 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
9597
9598         * string-icalls.c: fixed bug in split (one off bug)
9599
9600 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
9601
9602         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
9603         * icalls.c: added String::Equals as internal method
9604
9605 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
9606
9607         * threads.c: fixed bug in the double interlocked functions
9608
9609 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
9610
9611         * threads.c: implemented all of the new interlocked icalls.
9612         * string-icalls.c: fix a bug in insert.
9613         * icalls.c: added the icalls for interlocked, removed old string functions.
9614         
9615 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9616
9617         * loader.c: fix off-by-one error when reading argument names.
9618
9619 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9620
9621         * profiler.c: win32 counter implementation (untested).
9622         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
9623         (the latter needs testing and more complete impl. from win32 folks).
9624
9625 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
9626
9627         * object.c: mono_array_new_full workaround mono_array_class_get
9628         problem.
9629
9630 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9631
9632         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
9633         * object.h (mono_string_chars): Changed casting type.
9634
9635 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9636
9637         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
9638                            method signatures to use gunichar2 instead of gint16.
9639
9640 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
9641
9642         * object.h, object.c: domain-specific versions of mono_object_new and
9643         mono_array_new.
9644
9645 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
9646
9647         * object.c: changed String layout
9648
9649         * string-icalls.c (mono_string_Internal_ctor_chara): added
9650         internal string constructors.
9651
9652 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
9653
9654         * threads.c: pass 'this' to the thread start routine.
9655
9656 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9657
9658         * string-icalls.c: fix IndexOf and LastIndexOf. Now
9659         InternalCompareStr don't call twice mono_string_cmp_char for the last
9660         character. Improved performance in mono_string_cmp_char.
9661
9662 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
9663
9664         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
9665         code into its own library: libmonoruntime.
9666
9667 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
9668
9669         * object.h, object.c: changed array format so that szarrays do not
9670         require a bounds structure.
9671         * icall.c, appdomain.c: support for new szarray format.
9672
9673 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
9674
9675         * metadata.c: compare also the retuns type when comparing signatures:
9676         we didn't do this as an optimization since really overloaded methods
9677         must differ also in the arguments, but this doesn't work with
9678         low-level IL code (or when using explicit conversion operators: see
9679         bug#23498 for an example).
9680
9681 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
9682
9683         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
9684
9685 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
9686
9687         * icall.c: make MonoType::GetElementType its own icall.
9688
9689 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
9690
9691         * icall.c: remove MonoMethod_get_Name().
9692         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
9693         object.
9694
9695 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9696
9697         * string-icalls.c: optimized a few methods.
9698
9699 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
9700
9701         * icall.c: added all new string internal calls
9702         * string-icalls.c: added, new string internal call implementation.
9703         * object.c: added mono_string_new_size for allocating a string a size
9704
9705 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
9706
9707         * object.c (mono_object_isinst): use the same code as in the
9708         optimized x86 version.
9709
9710 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
9711
9712         * profiler.c: TSC-based timer code (faster and more accurate).
9713         Not hooked up in configure, yet (set USE_X86TSC to 1).
9714
9715 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
9716
9717         * profiler.c, profiler.h: track time spent compiling methods.
9718         * threads.c: track thread creation/destruction.
9719
9720 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
9721
9722         * profiler.c, profiler.h, profiler-private.h: profiling interface
9723         and sample implementation. Moved here so that it can be used also by
9724         the jit.
9725
9726 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
9727
9728         * reflection.c, reflection.h: keep types and other handles separate in
9729         the hash tables for referred tokens. Add guid for modules.
9730
9731 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
9732
9733         * assembly.c: fix bugs found with valgrind.
9734         * metadata.h, metadata.c: added mono_metadata_guid_heap().
9735
9736 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
9737
9738         * threads: added icall support for getting current domain for
9739                    the thread.
9740  
9741 2002-04-13  Martin Baulig  <martin@gnome.org>
9742
9743         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
9744         (MonoDebugVarInfo): Added `index' field for register based addresses.
9745         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
9746         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
9747         `MonoDebugVarInfo *params' and `guint32 this_offset' with
9748         `MonoDebugVarInfo *this_var'.
9749
9750         * debug-symfile.c (relocate_variable): New static function to write
9751         a location description for a local variable or method parameter.
9752
9753 2002-04-12  Martin Baulig  <martin@gnome.org>
9754
9755         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
9756         stack offset and begin/end scope address of a local variable.
9757         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
9758         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
9759         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
9760
9761         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
9762         Added new relocation types for start/end scope of a local variable.
9763
9764 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
9765
9766         * object.h: add mono_object_domain() macro.
9767         * reflection.c: handle typespecs.
9768         * icall.c: MonoMethod::get_Name() implementation.
9769
9770 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9771
9772         * icall.c: String::GetHashCode() icall implementation.
9773
9774 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9775
9776         * icall.c: String::IndexOfAny icall.
9777         * object.c, object.h: make array->max_length more useful.
9778         Intrduced mono_object_class() and mono_string_length() macros.
9779
9780 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9781
9782         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
9783         instead of g_unichar_isdigit.
9784
9785 2002-04-11  Nick Drochak  <ndrochak@gol.com>
9786
9787         * icall.c: Implement a simple Double.ToString().
9788
9789 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9790
9791         * appdomain.h: only io-layer.h is supposed to be included.
9792         * icall.c: explicitly import environ. Fix warning.
9793
9794 2002-04-10  Nick Drochak  <ndrochak@gol.com>
9795
9796         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
9797                 return true even if it's not Daylight Savings time.
9798                 Only return false for the case where the function isn't
9799                 implemented for a plaform (read Windows).
9800
9801 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9802
9803         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
9804         data with a mutex.
9805
9806 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
9807
9808         * mempool.c (mono_mempool_alloc): only use g_malloc when
9809         absolutely necessary.
9810
9811 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
9812
9813         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
9814
9815         * class.c (mono_class_vtable): use domain mempool to allocate vtable
9816         (mono_class_proxy_vtable): use domain mempool
9817
9818 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
9819
9820         * appdomain.h, appdomain.c: split initialization that requires the
9821         execution engine support into mono_runtime_init().
9822
9823 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
9824
9825         * class.c (mono_class_init): don't include vtable inside MonoClass
9826         to save some memory, gather some statistics.
9827         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
9828
9829 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9830
9831         * icall.c: internalcall implementation for ValueType.Equals().
9832
9833 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
9834
9835         * object.c (mono_message_init): moved 
9836         (mono_runtime_exec_main): new arch. independent impl.
9837         (mono_runtime_invoke_array): new method - like
9838         mono_runtime_invoke, but you can pass an array of objects.
9839         (mono_remoting_invoke): new arch. independent impl.
9840         (mono_message_invoke): new arch. independent impl.
9841         (mono_runtime_class_init): new arch. independent impl.
9842         (mono_runtime_object_init): new arch. independent impl.
9843
9844 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
9845
9846         * metadata.c, object.c, reflection.c: documented the exported
9847         functions.
9848
9849 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9850
9851         * icall.c: simpler code to pass the assembly builder data to corlib.
9852         Implement GetNestedTypes() internalcall.
9853
9854 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
9855
9856         * class.c: warn if a type can't be loaded.
9857
9858 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
9859
9860         * image.h: typedef MonoImageOpenStatus
9861         * types.h: removed unused file
9862         
9863 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
9864
9865         * icall.c: Enum_ToObject accepts enum value arguments.
9866
9867 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
9868
9869         * class.c: move initialization of properties, events and nested
9870         classes, so that they happen for interfaces, too.
9871
9872 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
9873
9874         * icall.c: cleanup some ugly casts in Array_SetValue*.
9875
9876 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
9877
9878         * icall.c: the values array fro enums is of the correct type, now.
9879         Implement (correctly) getFullName instead of assQualifiedName for
9880         MonoType.
9881         * reflection.h, reflection.c: added mono_type_get_name ().
9882
9883 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
9884
9885         * assembly.c, image.h: for each MonoImage, record from wich assembly
9886         it was loaded.
9887         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
9888         Make Type.Assembly work.
9889
9890 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
9891
9892         * debug-symfile.h: use char* instead of gpointer to avoid
9893         unnecessary casts.
9894
9895         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
9896
9897         * icall.c (ves_icall_InternalExecute): impl. FielSetter
9898         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
9899
9900 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
9901
9902         * icall.c (mono_message_init): impl. (code cleanup)
9903         (ves_icall_InternalExecute): impl. FieldGetter
9904
9905         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
9906         defined we call all (non-static)methods through the vtable. 
9907
9908 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
9909
9910         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
9911         finalizer even though the memory is still referenced (and the chunk of
9912         memory is not freed).
9913
9914 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
9915
9916         * assembly.c: fix brokeness.
9917
9918 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
9919
9920         * class.c: kill some warnings. Check explicit interface method
9921         implementation also without considering the namespace.
9922         Load also literal strings in static class data.
9923
9924 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
9925
9926         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
9927         (default_assembly_name_resolver): Make the resolver take the
9928         "base" directory where the assembly was originally defined, so we
9929         can load DLLs that are in the same directory as the assembly that
9930         is being referenced.
9931
9932 2002-03-28  Dick Porter  <dick@ximian.com>
9933
9934         * file-io.h: 
9935         * file-io.c:
9936         * socket-io.c: 
9937         * unicode.h: 
9938         * unicode.c: Warning cleanups
9939
9940 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
9941
9942         * object.h, reflection.h: use the correct type instead of MonoObject.
9943
9944 2002-03-28  Martin Baulig  <martin@gnome.org>
9945
9946         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
9947         (mono_debug_update_symbol_file): Initialize classes if necessary.
9948
9949 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
9950
9951         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
9952         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
9953
9954 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
9955
9956         * assembly.h: fix function prototype.
9957         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
9958         * mono-endian.h: use const cast.
9959
9960 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
9961
9962         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
9963
9964 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
9965
9966         * loader.c: don't assert when a typeref can't be loaded, give
9967         a chance to the runtime to trow an exception instead.
9968         * loader.h: fix warning.
9969
9970 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
9971
9972         * class.c (mono_class_proxy_vtable): added proxy support
9973
9974 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
9975
9976         * icall.c: removed last of PAL calls, added System.Environment
9977         * file-io.h, file-io.c: MonoIO implementation
9978         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
9979
9980 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
9981
9982         * appdomain.c: do not use the byte marker in ldstr table lookup.
9983         * debug-helpers.c: allow two ':' to separate class and method name.
9984         * object.c: allocate arrays bounds with the GC, too.
9985         * verify: add a few more checks.
9986
9987 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
9988
9989         * reflection.c: output also literal strings. Allocate parameter data
9990         with GC_malloc() (thanks, Martin, for catching this!).
9991
9992 2002-03-26  Martin Baulig  <martin@gnome.org>
9993
9994         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
9995         include the `this' offset in the `param_offsets'.
9996
9997 2002-03-25  Martin Baulig  <martin@gnome.org>
9998
9999         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
10000         mono_debug_get_class() function to get the classes. Added new
10001         relocation types for arrays and strings.
10002         (mono_debug_get_class): New static function to search in all
10003         referenced assemblies for a metadata token.
10004
10005         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
10006
10007 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
10008
10009         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
10010         hold gc-allocated objects. Make the string heap a stream like the
10011         others. Removed duplicated code when writing stream info.
10012         Added asserts to catch possible buffer overflows. Set the sorted map
10013         for tables that need sorting. Added some documentation.
10014
10015 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
10016
10017         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
10018         for interned strings and vtables.
10019
10020 2002-03-24  Martin Baulig  <martin@gnome.org>
10021
10022         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
10023         it in the array since it was created with g_slist_prepend().
10024
10025 2002-03-24  Martin Baulig  <martin@gnome.org>
10026
10027         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
10028         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
10029         (mono_debug_method_from_token): Renamed to
10030         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
10031         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
10032
10033         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
10034         relocation types.
10035
10036         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
10037
10038 2002-03-24  Martin Baulig  <martin@gnome.org>
10039
10040         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
10041         (mono_debug_method_from_token): New func.
10042
10043         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
10044         New interncall, calls mono_debug_local_type_from_signature().
10045         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
10046         calls mono_debug_method_from_token().
10047
10048 2002-03-23  Martin Baulig  <martin@gnome.org>
10049
10050         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
10051         specifies the number of bytes to be converted, not the array size.
10052         Return the number of chars, not the number of bytes.
10053         (ves_icall_iconv_get_chars): The `byteCount' argument
10054         specifies the number of bytes to be converted, not the array size.
10055
10056 2002-03-23  Martin Baulig  <martin@gnome.org>
10057
10058         * reflection.h (MonoReflectionSigHelper): New type.
10059
10060         * reflection.c (mono_reflection_sighelper_get_signature_local),
10061         (mono_reflection_sighelper_get_signature_local): New functions.
10062
10063         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
10064         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
10065         interncalls.
10066
10067 2002-03-23  Martin Baulig  <martin@gnome.org>
10068
10069         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
10070         is_writeable is set.
10071         (mono_raw_buffer_update): New function to write the modified map
10072         back to disk.
10073
10074         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
10075
10076         * debug-symfile.c (mono_debug_update_symbol_file): Call
10077         mono_raw_buffer_update() when done writing.
10078
10079 2002-03-23  Martin Baulig  <martin@gnome.org>
10080
10081         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
10082
10083         * debug-symfile.c: Added support for arguments and local variables.
10084
10085 2002-03-23  Dick Porter  <dick@ximian.com>
10086
10087         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
10088         protected by ifdefs, hence breaking the w32 build.
10089
10090 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10091
10092         * object.c: implement is_interned() the right way.
10093
10094 2002-03-21  Martin Baulig  <martin@gnome.org>
10095
10096         * debug-symfile.[ch]: New files to handle debugging information
10097         files. There's also support to dynamically update these symbol
10098         files to include machine dependent information.
10099
10100 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
10101
10102         * threads.c (mono_thread_create): new function to create thread
10103         from C
10104
10105 2002-03-20  Martin Baulig  <martin@gnome.org>
10106
10107         * icall.c (ves_icall_InternalInvoke): Create a new object if the
10108         method is a constructor.
10109         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
10110         points to ves_icall_InternalInvoke().
10111
10112 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
10113
10114         * file-io.c: Flush shouldn't throw exceptions.
10115
10116 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
10117
10118         * file-io.c: FileStream flush support; FileSetLength now
10119         restores file pointer.
10120
10121 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
10122
10123         * class.c: set image for pointer classes.
10124
10125 2002/03/19  Nick Drochak <ndrochak@gol.com>
10126
10127         * sysmath.c: Forgot one.
10128
10129 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
10130
10131         * sysmath.c: Avoid redefining existing names.
10132
10133 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
10134
10135         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
10136         handled by runtime as icall rather than dllimport from libm.so
10137         * file-io.c, file-io.h: fixed handle argument type.
10138
10139 2002-03-18  Dick Porter  <dick@ximian.com>
10140
10141         * reflection.c (mono_image_get_type_info): rename interface to
10142         iface, because of "#define interface struct" on windows.
10143
10144 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
10145
10146         * class.c, class.h: rename and export mono_ptr_class_get().
10147         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
10148         * reflection.c, reflection.h, icall.c: better/saner type name
10149         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
10150         method signatures.
10151
10152 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
10153
10154         * class.c (mono_class_init): removed hardcoded GHC_SLOT
10155
10156         * icall.c (ves_icall_InternalInvoke): impl.
10157
10158 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
10159
10160         * reflection.c: output the interface map table, too.
10161
10162 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
10163
10164         * class.c (class_compute_field_layout): separate computation of 
10165         static field layout
10166
10167 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
10168
10169         * icall.c: added System.Buffer support.
10170         * file-io.c: moved file icalls from PAL to FileStream.
10171
10172 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
10173
10174         * icall.c (ves_icall_System_Object_GetHashCode): impl.
10175
10176 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
10177
10178         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
10179
10180 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10181
10182         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
10183
10184 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
10185
10186         * debug-helpers.{c,h}: moved here from monograph some useful functions
10187         to locate a method by name/signature in a class or image. Included
10188         also a small and flexible IL disassembler.
10189
10190 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10191
10192         * reflection.c: fixup tokens in methods with small header size, too.
10193
10194 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
10195
10196         * object.c (mono_string_to_utf8): remove assert(!error), instead
10197         print a warning. 
10198
10199 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
10200
10201         * icall.c: update to the new mono_Array_class_get interface.
10202
10203 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
10204
10205         * appdomain.c, object.c: Boehm-GC enable.
10206         * icall.c: make get_data_chunk() support split data requests.
10207         Ensure a class is initialized in more cases. Return only the first
10208         property found in GetProperties() or the compiler gets confused. 
10209         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
10210         * reflection.h, reflection.c: add fixup mechanism for field and method
10211         tokens. Initialize assembly->typeref in a single place. Output
10212         properties after events. Support custom attributes for events, too.
10213         Typo fix for paramter custom attrs.
10214
10215 2002-03-07  Martin Baulig  <martin@gnome.org>
10216
10217         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
10218
10219 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
10220
10221         * class.c (mono_array_class_get): fix. for multi. dim. arrays
10222
10223 2002-03-06  Martin Baulig  <martin@gnome.org>
10224
10225         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
10226         non-zero lower bounds. See testcases #F10-#F13.
10227
10228 2002-03-05  Martin Baulig  <martin@gnome.org>
10229
10230         * exception.c (mono_get_exception_argument_out_of_range): New exception.
10231
10232         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
10233         ves_icall_System_Array_GetValue(), only calculate the absolute array position
10234         here.
10235         (ves_icall_System_Array_SetValue): Likewise.
10236         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
10237         as argument and does the actual work. This function is used when copying a
10238         multi-dimensional array.
10239         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
10240         now do all the widening conversions of value types.
10241         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
10242
10243 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10244
10245         * class.c: remove some magic numbers and use the smbolic names,
10246         instead. Added init_events() to load event info at class init time.
10247         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
10248         and mono_metadata_methods_from_event().
10249         * reflection.h, reflection.c: added support for writing out the evnets
10250         related information.
10251
10252 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
10253
10254         * reflection.h, icall.c: use a different method (GetInterfaces)
10255         to gather interface info and add isbyref, isprimitive and
10256         ispointer to the ves_icall_get_type_info() return value.
10257
10258 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
10259
10260         * class.h: stared adding support for events.
10261         * icall.c: split find_members implementation. Added debug icall to get
10262         the address of an object.
10263         * reflection.c: handle TypeBuilders in mono_type_get_object().
10264
10265 2002-03-01  Martin Baulig  <martin@gnome.org>
10266
10267         * icall.c (ves_icall_System_Array_GetLength): This must throw an
10268         ArgumentOutOfRangeException(), not an ArgumentException().
10269         (ves_icall_System_Array_GetLowerBound): Likewise.
10270         (ves_icall_System_Array_GetValue): Improved argument checking.
10271         (ves_icall_System_Array_SetValue): Improved argument checking.
10272
10273 2002-03-01  Martin Baulig  <martin@gnome.org>
10274
10275         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
10276         called with invalid arguments rather than just dying with g_assert().
10277         (ves_icall_System_Array_SetValue): Likewise.
10278         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
10279         raise a NotImplementedException instead.
10280         (ves_icall_System_Array_GetLength): Added argument checking.
10281         (ves_icall_System_Array_GetLowerBound): Added argument checking.
10282
10283 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
10284
10285         * object.h (mono_assert): new macros mono_assert and
10286         mono_assert_not_reached
10287
10288 2002-02-28  Martin Baulig  <martin@gnome.org>
10289
10290         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
10291         and "System::String::IsInterned" to "System::String::_IsInterned".
10292
10293 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
10294
10295         * icall.c: remove hacks for typebuilder. Added icall to create a
10296         modified type from a tybebuilder.
10297         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
10298         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
10299         to create a backing MonoClass for a TypeBuilder.
10300
10301 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10302
10303         * class.c, class.h: more refactoring of class init.
10304         Export mono_class_setup_mono_type() and mono_class_setup_parent().
10305
10306 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
10307
10308         * marshal.c, marshal.h: start of marshaling interface.
10309
10310 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
10311
10312         * icall.c: fix order in assembly qualified name icall.
10313
10314 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
10315
10316         * class.c: do not free str, since we store it in the hash table.
10317         * reflection.h: add label field to MonoILExceptionInfo.
10318         * reflection.c: handle references to more than one assembly. Handle
10319         case when there isn't a module created in the assembly.
10320
10321 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
10322
10323         * class.c: Fix typo. Start refactoring of class init code.
10324
10325 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
10326
10327         * appdomain.c: exit with 1 on error.
10328         * class.c: we already have the name in MonoClassField.
10329         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
10330         MonoStreamHeader instead of an offset of image->raw_metadata.
10331
10332 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
10333
10334         * appdomain.c (mono_init): Be even more descriptive about the error.
10335
10336 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
10337
10338         * appdomain.c: give the user an informative message when corlib can't
10339         be loaded.
10340
10341 2002-02-26  Martin Baulig  <martin@gnome.org>
10342
10343         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
10344         New icall to get the time zone data.
10345
10346 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10347
10348         * reflection.c: set virtual and raw size of section correctly.
10349         * threads.c: transfer domain information to newly created threads.
10350
10351 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
10352
10353         * class.c: when instancing a class in a domain, load the default
10354         vaules for static fields from the constant table. Fix System.Enum to
10355         not be an enum.
10356         * icall.c: implement Object::GetType() internalcall. Implemented
10357         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
10358         Fixed checking of binding flags in find_members().
10359         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
10360         * reflection.c: handle enumerations when writing to the constant
10361         table. Use a different object cache for types.
10362
10363
10364 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
10365
10366         * object.c (mono_object_isinst): fix for arrays
10367
10368         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
10369
10370 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
10371
10372         * object.c: don't use mprotect ()  and fix intern pool hash table
10373         lookup for big endian systems.
10374
10375 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10376
10377         * icall.c: change type_is_subtype_of () signature.
10378
10379 2002-02-21  Mark Crichton  <crichton@gimp.org>
10380
10381         * rand.c, rand.h: Added random number generator for
10382         System.Security.Cryptography classes.
10383
10384         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
10385
10386         * icall.c: Added System.Security.Cryptography calls.
10387
10388 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
10389
10390         * class.c, icall.c, metadata.c: better support for pointer types.
10391         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
10392         * reflection.c: Add support for getting custom attrs for properties
10393         and simplify some code.
10394
10395 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
10396
10397         * icall.c: change getToken () and add custom attribute GetBlob()helper
10398         method.
10399         * reflection.h: add custom attrs array to the reflection builder structures.
10400         * reflection.c: encode and emit custom attributes for all the relevant
10401         reflection objects. Cache fieldref and methodref tokens. Change
10402         mono_image_create_token() interface to take a MonoDynamicAssembly.
10403         More complete custom attributes decoder. Load custom attributes for
10404         Assembly, Field, Method and Constructor objects, too. Make the
10405         returned array an Attribute[] one, not object[]. Added
10406         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
10407         custom attribute constructor.
10408
10409 2002-02-20  Dick Porter  <dick@ximian.com>
10410
10411         * icall.c:
10412         * rawbuffer.c:
10413         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
10414         problem code out for now).
10415
10416 2002-02-19  Radek Doulik  <rodo@ximian.com>
10417
10418         * object.c (mono_ldstr): use hash table to avoid multiple swapping
10419
10420 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
10421
10422         * icall.c: register the GetCustomAttributes method.
10423         * object.c, object.h: add mono_string_new_len ().
10424         * reflection.h, reflection.c: added mono_runtime_invoke(),
10425         mono_install_runtime_invoke(). Added
10426         mono_reflection_get_custom_attrs () to load custom attributes and
10427         create the attribute objects.
10428
10429 2002-02-19  Dick Porter  <dick@ximian.com>
10430         * threads-dummy-types.c:
10431         * threads-dummy-types.h:
10432         * threads-dummy.c:
10433         * threads-dummy.h:
10434         * threads-pthread-types.c:
10435         * threads-pthread-types.h:
10436         * threads-pthread.c:
10437         * threads-pthread.h:  Deleted obsolete files
10438
10439 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
10440
10441         * class.c (mono_class_vtable): runtime init the class when we
10442         allocate static class data.
10443
10444         * icall.c (ves_icall_System_Array_SetValue): check for null values.
10445
10446         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
10447         and String - but we will need generic marshalling support in the
10448         future. 
10449         (mono_init): set the domain name in a ms compatible way
10450
10451         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
10452         String[].
10453
10454 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
10455
10456         * object.c (mono_array_clone): use alloca() instead of g_malloc  
10457         for sizes
10458
10459         * appdomain.c (mono_domain_unload): impl.
10460
10461 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
10462
10463         * appdomain.c, object.c: fix intern pool implementation.
10464         * class.c: fix alignment code.
10465
10466 2002-02-16  Radek Doulik  <rodo@ximian.com>
10467
10468         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
10469         and s2 > s1, just copy lower bytes to be compatible with little
10470         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
10471         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
10472
10473         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
10474         force big_endian to be 1 for big endian machines 
10475         (ves_icall_iconv_new_decoder): ditto
10476
10477 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
10478
10479         * socket-io.c (convert_sockopt_level_and_name): If the system
10480         doesn't define SOL_IP or SOL_TCP, get them by hand using
10481         getprotobyname() and caching the values (because this could be a
10482         slow operation).
10483         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
10484         Use the appropriate struct when the system does support it. Ie,
10485         not all systems have struct ip_mreqn so use struct ip_mreq when
10486         appropriate.
10487
10488 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
10489
10490         * reflection.c: handle finally clauses.
10491
10492 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
10493
10494         * socket-io.c: use g_snprintf() instead of snprintf.
10495
10496 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
10497
10498         * reflection.c (mono_param_get_objects): Cast second argument to
10499         mono_method_get_param_names to a const char** to silence the
10500         compiler warning.
10501
10502         * appdomain.c (mono_domain_assembly_open): Put parens around the
10503         truth statement in the for-loop.
10504
10505         * unicode.c (iconv_convert): Got rid of a compiler warning about
10506         int i being unused when the system has a new iconv.
10507         (iconv_get_length): Same.
10508
10509         * image.c (load_class_names): Cast the second argument to
10510         g_hash_table_insert() to char* to hush compiler warnings about the
10511         arg being a const.
10512         (mono_image_open): Same here.
10513
10514         * socket-io.c: Don't conditionally include sys/filio.h or
10515         sys/sockio.h here anymore since we now get them from
10516         io-layer/io-layer.h
10517         (inet_pton): If the system doesn't support inet_aton, implement
10518         using inet_addr and also #define INADDR_NONE if it isn't defined
10519         by the system.
10520
10521 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
10522
10523         * metadata.c, metadata.h: added function to get packing and size info
10524         of a typedef.
10525         * reflection.h, reflection.c: handle field RVA data. Save info about
10526         the table layout if needed. Assign typedef indexes to all the types
10527         before dumping the info about them to avoid forward reference problems.
10528
10529 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
10530
10531         * socket-io.c (convert_sockopt_level_and_name): ifdef
10532         SO_ACCEPTCONN because it is not defined on my system (old debian)
10533
10534 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
10535
10536         * opcode.c: use stddef.h to get NULL.
10537
10538 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
10539
10540         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
10541         for FIONBIO, FIONREAD and SIOCATMARK.
10542         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
10543         define INADDR_NONE and besides, inet_addr() is deprecated and
10544         should not be used. Use inet_pton() instead - it also has the
10545         added bonus that it can easily handle IPv6 addresses as well.
10546         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
10547
10548 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
10549
10550         * decimal.c: remove _MSC_VER conditional.
10551
10552 2002-02-13  Dick Porter  <dick@ximian.com>
10553
10554         * socket-io.c: 
10555         * icall.c: Internal calls for Blocking, Select, Shutdown,
10556         GetSocketOption and SetSocketOption
10557
10558 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10559
10560         * assembly.cs: better resolver: use it instead of some kludgy
10561         code.
10562
10563 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
10564
10565         * reflection.c: the best way to speed-up the compiler is to avoid
10566         infinite loops.
10567
10568 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
10569
10570         * class.c (mono_class_vtable): changed the object layout
10571         (obj->vtable->class). 
10572         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
10573
10574 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
10575
10576         * assembly.c: look for assemblies in the assembly dir, too.
10577
10578 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10579
10580         * class.c: fix thinko in mono_class_from_type().
10581
10582 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
10583
10584         * exception.h, exception.c: added TypeLoadException.
10585         * object.h, object.c: added mono_array_clone ().
10586         * icall.c: handle throwOnError in AssemblyGetType().
10587         Added Array.Clone().
10588         * opcode.h, opcode.c: use a single value for the opcode val.
10589         Compile fix for non-gcc compilers.
10590
10591 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
10592
10593         * opcodes.c, opcodes.h: export interesting info about opcodes.
10594
10595 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
10596
10597         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
10598         icalls. 
10599
10600         * class.c (class_compute_field_layout): set element_class for enums
10601         (mono_class_create_from_typedef): set element_class for normal classes
10602
10603         * icall.c (ves_icall_System_Enum_get_value): impl.
10604
10605         * class.c (mono_class_create_from_typedef): do not set valuetype
10606         flag for System.ValueType and System.Enum
10607
10608 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
10609
10610         * unicode.c (iconv_convert): fix big endian problem.
10611
10612 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
10613
10614         * class.c: add asserts if we are ever going to scribble over memory.
10615         * socket-io.c: not all systems have AF_IRDA defined.
10616
10617 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
10618
10619         * class.c (class_compute_field_layout): do not consider static
10620         fields to compute alignment
10621
10622 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
10623
10624         * appdomain.c (mono_appdomain_get): impl.
10625         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
10626
10627 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
10628
10629         * icall.c: ignore "file://" prefix when loading an assembly.
10630
10631 2002-01-23  Dick Porter  <dick@ximian.com>
10632
10633         * socket-io.c:
10634         * icall.c:
10635         * Makefile.am: Added socket support
10636
10637 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
10638
10639         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
10640         code back.  This should return the assemblies that are loaded by
10641         the runtime on behalf of an application domain. 
10642
10643         The current implementation is still broken, it just returns every
10644         assembly loaded, but until we get real applications domain this
10645         will do.
10646
10647 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
10648
10649         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
10650         AppDomain object.
10651
10652 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
10653
10654         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
10655         the mono_class_from_name lookup.
10656         (ves_icall_get_parameter_info): ditto.
10657         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
10658         method.
10659         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
10660
10661 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * class.c: load also nested classes on class init.
10664         System.ValueType instance methods gets passed boxed
10665         values, unless methods in derived classed that get a pointer to the
10666         data.
10667         * icall.c: use better name parsing code in GetType().
10668         * image.c, image.h: add mono_image_loaded ().
10669         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
10670         * reflection.c, reflection.h: added mono_reflection_parse_type().
10671
10672 2002-01-22  Veronica De Santis <veron78@interfree.it>
10673
10674         * icall.c : Added mapping of internal calls for Manual and Auto reset events
10675         * threads.c : Added the implementation of internal calls for events
10676         * threads.h : Added prototypes of internal calls for events
10677         
10678 2002-01-21  Radek Doulik  <rodo@ximian.com>
10679
10680         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
10681
10682 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
10683
10684         * class.c (mono_class_init): set min_align to 1 (instead of 0)
10685         (mono_class_value_size): use min_align
10686
10687 2002-01-20  Dick Porter  <dick@ximian.com>
10688
10689         * threads.h:
10690         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
10691         so it compiles on w32.
10692
10693 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
10694
10695         * metadata.c (mono_type_stack_size): impl.
10696
10697         * class.c (mono_class_get_field): impl. memberref token
10698
10699 2002-01-16 Veronica De Santis <veron78@@interfree.it>
10700
10701         * icall.h : Added the internal calls mapping for CreateMutex_internal
10702                     and ReleaseMutex_internal.
10703         * threads.h : Added the prototype of mutexes internal calls.
10704         * threads.c : Added the implementations of mutexes internal calls.
10705
10706 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
10707
10708         * metaparse.h: removed unused file.
10709         * reflection.c, reflection.h: added stream_data_align () function 
10710         to align data in streams and keep stream aligned. Add support for
10711         exception support in method headers.
10712
10713 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
10714
10715         * unicode.c: make iconv_convert () return the number of bytess written
10716         in the output buffer.
10717
10718 2002-01-15  Dick Porter  <dick@ximian.com>
10719         * threads.c: Make the runtime's idea of infinite timeouts coincide
10720         with the class library's
10721
10722         Fix a particularly egregious bug in mono_thread_cleanup(). That
10723         code was so utterly bogus it must have been written on a Monday.
10724
10725 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
10726
10727         * reflection.h: add subtypes field to TypeBuilder.
10728         * reflection.c: encode constants for literal fields.
10729         Handle subtypes. Fix user string token (and add a zero byte)
10730         at the end.
10731         
10732 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
10733
10734         * class.c (mono_class_init): bug fix: assign slot numbers for
10735         abstract methods.
10736
10737 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
10738
10739         * reflection.c: don't try to output a code RVA for abstract methods.
10740         Small fixes for method header format. Output parameter info to the
10741         ParamDef table. Save method overriding info to MethodImpl table.
10742         Fix property support. Allow typedef.extends to be a type in the
10743         building assembly.
10744         * verify.c: fix off-by-one error.
10745
10746 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
10747
10748         * class.c: fix mono_class_from_mono_type () for szarray types.
10749         Remove unused cache check in mono_class_from_type_spec().
10750         * icall.c: *type_from_name () functions handle simple arrays and byref.
10751         * reflection.c: handle byref and szarray types. Handle methods without
10752         body (gets P/Invoke compilation working). Handle types and fields in
10753         get_token ().
10754         * reflection.h: add rank to MonoTypeInfo.
10755
10756 2002-01-10  Dick Porter  <dick@ximian.com>
10757
10758         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
10759         internal calls
10760
10761 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
10762
10763         * icall.c: initialize class in type_from_handle ().
10764         Loop also in parent classes for get_method ().
10765         * reflection.c: properly encode class and valuetype types.
10766         Start on encoding TypeBuilder types. Handle fieldrefs.
10767         Use correct length when registering a user string.
10768         Handle ConstructorBuilder and MonoMethod in get_token ().
10769         Make mono_type_get_object () aware of cached types.
10770         * object.c: back out change to mono_string_new ().
10771
10772 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
10773         * object.c: mono_string_new should return a NULL when the string 
10774         passed in is NULL -- not try to deference it.
10775         
10776 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
10777
10778         * icall.c: hack to make IsSubType work for TypeBuilders.
10779         * reflection.c: emit constructors before methods.
10780         Retrieve param names in mono_param_get_objects().
10781
10782 2002/01/05  Nick Drochak  <ndrochak@gol.com>
10783
10784         * Makefile.am: fix list of headers and sources so automake 1.5
10785         doesn't complain. Removed \# at end of list.
10786
10787 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
10788
10789         * reflection.c: get token for a method ref. Set return type of
10790         constructor to void.
10791         * loader.c: debug message.
10792         * class.c: typo fix.
10793
10794 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
10795
10796         * icall.c: fix array init with rank > 1. FindMembers
10797         loops in parent class as well.
10798         * image.c: do not insert nested types in name cache.
10799         * reflection.c: warning fix.
10800         * reflection.h: add override method (for interface impl).
10801
10802 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
10803
10804         * metadata.c: fix customattr decoding.
10805
10806 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
10807
10808         * rawbuffer.cs: Added native Win32 implementation, avoids using
10809         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
10810
10811 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
10812
10813         * class.c: make the low-level routines handle the cache.
10814
10815 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
10816
10817         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
10818
10819 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
10820
10821         * class.c: fix mono_array_element_size() for objects.
10822         * class.h, class.c: add properties to MonoClass and load them
10823         at init time.
10824         * icall.c: check with isinst() when assigning a value to an array
10825         instead of requiring the classes to match exactly.
10826         Implemented icall for System.Type::GetType().
10827         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
10828         enums. Handle bindingflags when looking for methods and fields.
10829         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
10830         and mono_metadata_methods_from_property().
10831         * reflection.h, reflection.c: added structures for propreties,
10832         parameters and enums. Implemented mono_property_get_object() and
10833         mono_param_get_objects().
10834
10835 2001-12-18  Dick Porter  <dick@ximian.com>
10836
10837         * file-io.c: Use mono_string_to_utf16() instead of
10838         mono_string_chars()
10839
10840         * object.c: Added mono_string_to_utf16(), which copies the non
10841         NULL-terminated MonoString into a new double-null-terminated
10842         buffer.
10843
10844 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
10845
10846         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
10847
10848 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
10849
10850         * file-io.c: raise exceptions if handle is invalid.
10851
10852 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
10853
10854         * assembly.c: yet another check for mscorlib.
10855         * class.c, class.h: load nesting info for classes.
10856         * icall.c: many new functions to support the Reflection classes.
10857         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
10858         * reflection.h, reflection.c: mono_image_create_token(),
10859         mono_assembly_get_object(), mono_type_get_object(),
10860         mono_method_get_object(), mono_field_get_object(): methods to return
10861         objects that parallel the C representation of assemblies, types,
10862         methods, fields.
10863
10864 2001-12-11  Dick Porter  <dick@ximian.com>
10865
10866         * icall.c:
10867         * file-io.c: Internal calls for file IO.
10868
10869 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
10870
10871         * tabledefs.h: missing FileAttributes.
10872         * verify.h, verify.c: use is_valid_string () to simplify and check for
10873         valid strings more correctly. Fix warnings and speeling.
10874         Check more tables: Filed, File, ModuleRef, StandAloneSig.
10875         Check code: branches, maxstack, method calls.
10876
10877 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
10878
10879         * object.c (mono_object_allocate): removed static, so that the jit
10880         can allocate value types.
10881
10882         * icall.c (ves_icall_System_DateTime_GetNow): impl.
10883
10884 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
10885
10886         * class.c: init enum types right away and register the
10887         token->MonoClass map in mono_class_create_from_typedef ().
10888         * verify.h, verify.c: first cut of the verifier.
10889         * pedump.c: add --verify switch to verify metadata tables.
10890         * tabledefs.h: add some missing enums.
10891
10892 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
10893
10894         * class.c (mono_install_runtime_class_init): impl.
10895         (mono_class_init): renamed mono_class_metadata_init to
10896         mono_class_init, also removed the metadata_inited flag
10897
10898         * object.c (mono_object_isinst): use faster algorithm
10899
10900 2001-11-30  Radek Doulik  <rodo@ximian.com>
10901
10902         * mono-endian.h: reverted last change
10903         added function prototypes
10904
10905         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
10906         add mono-endian.c back
10907
10908         * mono-endian.c: returned back, as Paolo pointed out, it's needed
10909         for unaligned access, I've mistaked it with endianess. I am
10910         sorry.
10911         (mono_read16): fix reverted endianess
10912         (mono_read64): ditto
10913         (mono_read32): ditto
10914
10915 2001-11-30  Dick Porter  <dick@ximian.com>
10916
10917         * exception.c: Implement mono_exception_from_name()
10918
10919 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
10920
10921         * metadata.h, metadata.c: remove params_size and locals_size and their
10922         calculation from the metadata code: they are only usefult to the
10923         interp.
10924
10925 2001-11-29  Radek Doulik  <rodo@ximian.com>
10926
10927         * object.c (mono_ldstr): swap bytes here, it's probably not the
10928         best place, but works for me now, I'll redo it once I know mono
10929         better, also note that I add PROT_WRITE and don't reset back, also
10930         note that it's only affects big endians, so x86 should be OK
10931
10932         * mono-endian.h (read16): use just glib macros for both endians
10933
10934         * mono-endian.c: removed as glib macros are used in in
10935         mono-endian.h so we don't need to care about endianess for read
10936         macros as glib does that for us already
10937
10938 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
10939
10940         * class.h, class.h: take minimum alignment into consideration so
10941         that the fields of a class remain aligned also when in an array.
10942
10943 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
10944
10945         * loader.h, loader.c: add mono_method_get_param_names().
10946         * class.c: 0-init class fields.
10947
10948 2001-11-26  Dick Porter  <dick@ximian.com>
10949
10950         * icall.c:
10951         * threads-types.h:
10952         * threads.c: New file that handles System.Threading on all platforms
10953
10954         * object.c: 
10955         * object.h: Remove the synchronisation struct from MonoObject,
10956         replace it with a pointer that gets initialised on demand
10957
10958         * Makefile.am: Replace all the system-specific threading code with
10959         a single file that uses the new wrapper library
10960
10961 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
10962
10963         * class.c, class.h: add mono_install_trampoline() so that the runtime
10964         can register a function to create a trampoline: removes the ugly
10965         requirement that a runtime needed to export arch_create_jit_trampoline.
10966         * object.h, object.c: added mono_install_handler() so that the runtime
10967         can install an handler for exceptions generated in C code (with
10968         mono_raise_exception()). Added C struct for System.Delegate.
10969         * pedump.c: removed arch_create_jit_trampoline.
10970         * reflection.c: some cleanups to allow registering user strings and
10971         later getting a token for methodrefs and fieldrefs before the assembly
10972         is built.
10973         * row-indexes.h: updates and fixes from the new ECMA specs.
10974
10975 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
10976
10977         * class.h, class.c: add enum_basetype field to MonoClass.
10978         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
10979         to get index in the constant table reated to a field, param or
10980         property.
10981         * reflection.h, reflection.c: handle constructors. Set public-key and
10982         version number of the built assembly to 0.
10983         * row-indexes.h: update from new ECMA spec.
10984
10985 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
10986
10987         * class.h, class.c: add a max_interface_id to MonoClass.
10988         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
10989         since it's used to do that. Added mono_type_type_from_obj().
10990         Make GetType() return NULL instead of segfaulting if the type was not
10991         found. Handle simple arrays in assQualifiedName.
10992         * object.h: add a struct to represent an Exception.
10993         * reflection.c: output call convention in method signature.
10994         Add code to support P/Invoke methods and fixed offsets for fields.
10995
10996 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
10997
10998         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
10999         the value.
11000         * icall.c: use mono_array_addr instead of array->vector: fixes the
11001         reflection image writing.
11002         * reflection.c: init call convention byte to 0 in method signature.
11003         Encode the property signature. Don't output property-related methods
11004         twice. Really process the properties for a type (don't cast a field to
11005         a property, my mom always told me that).
11006         Fix 64 bit issues in pointer alignment in a different and more
11007         readable way.
11008
11009 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
11010
11011         * loader.h: Removed type class from MonoDefaults, added monotype
11012
11013         * loader.c: Loaded MonoType, removed loading of Type
11014
11015         * icall.c (my_mono_new_object): Now returns a System.MonoType,
11016         and fills in System.Type._impl with a RuntimeTypeHandle rather
11017         than the actual MonoClass *
11018
11019         (ves_icall_type_from_handle): change from type_class to
11020         monotype_class
11021
11022         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
11023         implemented
11024
11025         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
11026         implemented
11027
11028         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
11029
11030         (ves_icall_System_Reflection_Assembly_GetType): implemented
11031
11032         (ves_icall_System_MonoType_assQualifiedName): implemented
11033
11034         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
11035
11036 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
11037
11038         * assembly.c (mono_assembly_open): Implement a cache for the
11039         assemblies. 
11040
11041         (mono_assembly_close): only destroy the assembly when the last
11042         reference is gone.
11043         
11044 2001-11-09  Dick Porter  <dick@ximian.com>
11045
11046         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
11047
11048 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
11049
11050         * class.c (mono_class_metadata_init): bug fix: compute the right slot
11051
11052 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
11053
11054         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
11055         from Martin Weindel.
11056         * object.h: add mono_string_chars ().
11057
11058 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
11059
11060         * reflection.c (build_compressed_metadata): Eliminates warnings
11061         and uses 64-bit clean code.
11062
11063         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
11064         (mono_type_equal): Change signature to eliminate warnings.
11065
11066 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
11067
11068         * icall.c, loader.c: remove the internalcall array constructors.
11069         Changes to match the new MonoArray structure.
11070         * object.h, object.c: an array object doesn't allocate an extra
11071         vector. Add mono_array_new_full () to create jagged arrays easily.
11072
11073 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
11074
11075         * metadata.h, metadata.c: add mono_metadata_field_info () to
11076         retreive all the info about a field from vairous tables.
11077         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
11078         * class.h, class.c: augment MonoClassField with more info.
11079         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
11080         policy and load a field's RVA if needed.
11081
11082 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
11083
11084         * class.c (mono_class_metadata_init): create a trampoline for all
11085         virtual functions instead of actually compiling them.
11086
11087 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
11088
11089         * class.h, class.c: include name in MonoClassField.
11090         * class.c: fix fundamental type of System.Object and System.String.
11091         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
11092         tokens in ldtoken.
11093         * icall.c: remove internalcalls for the Reflection stuff that is now
11094         done in C# code.
11095         * loader.c: mono_field_from_memberref () implementation.
11096         * mono-endian.c: thinko (s/struct/union/g).
11097         * object.c, object.h: make the mono_string_* prototypes actually use
11098         MonoString instead of MonoObject.
11099         * reflection.c, reflection.h: updates for changes in the reflection
11100         code in corlib: we use C structures that map to the actual C# classes.
11101         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
11102         fat method header if needed and use the info from the ILGenerator for
11103         methods. Handle fields in types. Misc fixes.
11104
11105 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
11106
11107         * class.c (mono_class_metadata_init): bug fix: always allocate
11108         space for static class data
11109
11110 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
11111
11112         * class.c (mono_compute_relative_numbering): use relative
11113         numbering to support fast runtime type checks.
11114
11115 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
11116
11117         * class.c (mono_class_create_from_typeref): added debugging output
11118         to print class name when MonoDummy is returned instead of real class
11119
11120 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
11121
11122         * class.c (mono_class_metadata_init): interface offset table now
11123         contains pointers into the vtable - this is more efficient for the jit
11124
11125 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
11126
11127         * class.c (mono_class_metadata_init): use a temporary vtable (the
11128         old algorithm only worked for the interpreter, but not for the jit)
11129
11130 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
11131
11132         * loader.c (method_from_memberref): use mono_class_get to get the
11133         class of an array instead of using System.Array directly.
11134         (mono_get_method): also add MEMBERREF methods to the method cache
11135         which usefull for arrays.
11136
11137 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
11138
11139         * pedump.c (arch_compile_method): added to compute vtable entry
11140
11141         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
11142         number of interfaces.
11143         
11144         * class.h: merged MonoArrayClass into MonoClass
11145
11146         * class.c (mono_class_create_from_typedef): compute the vtable size and
11147         allocate space to include the vtable inside MonoClass
11148         (mono_class_metadata_init): initialize the vtable
11149
11150 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
11151
11152         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
11153         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
11154         * image.c: endian fixes by Laurent Rioux.
11155         * object.h, object.c: rename MonoStringObject to MonoString and
11156         MonoArrayObject to MonoArray. Change some function names to conform to
11157         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
11158         guint16* as first argument, so don't use char*.
11159         Provide macros to do the interesting things on arrays in a portable way.
11160         * threads-pthread.c: updates for the API changes and #include <sched.h>
11161         (required for sched_yield()).
11162         * icall.c: updates for the API changes above.
11163         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
11164         platforms that need them.
11165
11166 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
11167
11168         * class.c: set the correct type for all the fundamental
11169         type when loading the class.
11170
11171 2001-10-05  Dick Porter  <dick@ximian.com>
11172
11173         * threads-pthread.c (pthread_mutex_timedlock): Simple
11174         compatibility version for C libraries that lack this call.
11175
11176 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11177
11178         * class.c: MonoTypes stored in MonoClass are stored as
11179         fundamental MonoTypes when the class represents a
11180         fundamental type (System.Int32, ...).
11181         The TypeHandle return by ldtoken is a MonoType*.
11182         * icall.c: ves_icall_get_data_chunk () write out all the
11183         PE/COFF stuff. Implement ves_icall_define_method (),
11184         ves_icall_set_method_body (), ves_icall_type_from_handle ().
11185         * image.c: properly skip unknown streams.
11186         * loader.h, loader.c: add type_class to mono_defaults.
11187         * metadata.c, metadata.h: export compute_size () as
11188         mono_metadata_compute_size () with a better interface.
11189         Typo and C&P fixes.
11190         * pedump.c: don't try to print the entry point RVA if there is no entry point.
11191         * reflection.c, reflection.h: many cleanups, fixes, output method
11192         signatures and headers, typedef and typeref info, compress the metadata
11193         tables, output all the heap streams, cli header etc.
11194         * row-indexes.h: typo fixes.
11195
11196 2001-10-04  Dick Porter  <dick@ximian.com>
11197
11198         * object.h: Add a synchronisation mutex struct to MonoObject
11199
11200         * object.c (mono_new_object): Initialise the object
11201         synchronisation mutexes
11202
11203         * icall.c: System.Threading.Monitor internal calls
11204         
11205         * threads-pthread.h:
11206         * threads-pthread.c: System.Threading.Monitor internal calls
11207
11208         * threads-types.h: New file, includes the system-specific thread
11209         structures
11210         
11211         * threads-pthread-types.h:
11212         * threads-pthread-types.c: New files, handle pthread-specific
11213         synchronisation types
11214
11215         * threads-dummy-types.h: 
11216         * threads-dummy-types.c: New files of dummy support for
11217         thread-specific types
11218
11219         * metadata.c:
11220         * image.c:
11221         * pedump.c: include mono-endian.h not endian.h
11222         
11223         * Makefile.am: More threads files.
11224         Name mono-endian.h not endian.h
11225
11226 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
11227
11228         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
11229         stuff and implement a few more bits.
11230         * icall.c: a field needs to be dereferenced twice. Do not use the same
11231         name for two variables in the same scope.
11232         * image.c, image.h: cleanups.
11233
11234 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
11235
11236         * class.c (mono_class_metadata_init): bug fix: compute the right size
11237
11238 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
11239
11240         * icall.c: implemented some of the Reflection internalcalls.
11241         * image.c, image.h: start writing out the PE/COFF image.
11242         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
11243         that does the reverse than decode_blob_size ().
11244         * object.c: use mono_metadata_encode_value (). Move here
11245         temporary implementation of mono_string_to_utf8 ().
11246         * rawbuffer.c: make malloc_map static.
11247
11248 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11249
11250         * metadata.c: fix type comparison for arrays.
11251         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
11252         Added a couple of new classes to monodefaults.
11253         * icall.c: added a couple of Reflection-related internalcalls.
11254         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
11255         Added a byval_arg MonoType to MonoClass.
11256
11257 2001-09-28  Dick Porter  <dick@ximian.com>
11258
11259         * icall.c:
11260         * threads-pthread.h: 
11261         * threads-pthread.c: Implemented internal calls for
11262         LocalDataStoreSlot operations.  Applied mutexes around all shared
11263         data.  Reworked the thread creation and Start() operations to
11264         avoid a race condition.
11265         
11266         * threads-dummy.h:
11267         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
11268
11269 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
11270
11271         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
11272
11273 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
11274
11275         * class.c, loader.c: warn and return NULL instead of erroring out.
11276         * icall.c: added System.AppDomain::getCurDomain().
11277         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
11278
11279 2001-09-25  Dick Porter  <dick@ximian.com>
11280
11281         * threads-pthread.h:
11282         * threads-pthread.c: Implemented timed thread joining and added
11283         System.Threading.Thread::Join_internal internal call
11284
11285         * icall.c: Added System.Threading.Thread::Join_internal internal call
11286
11287         * threads-dummy.h:
11288         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
11289
11290 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
11291
11292         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
11293         mono_string_intern () to implement the semantics of the ldstr opcode
11294         and the interning of System.Strings.
11295         * icall.c: provide hooks to make String::IsIntern and String::Intern
11296         internalcalls.
11297
11298 2001-09-23  Dick Porter  <dick@ximian.com>
11299
11300         * threads-dummy.c: 
11301         * threads-dummy.h: New files of dummy threading routines
11302
11303         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
11304         support code based on system specifics
11305
11306         Rename PTHREAD_LIBS to THREAD_LIBS
11307         
11308 2001-09-23  Dick Porter  <dick@ximian.com>
11309
11310         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
11311         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
11312         internal calls.
11313         (mono_thread_init): Set up a Thread object instance to return when
11314         the main thread calls Thread.CurrentThread
11315         (mono_thread_cleanup): Wait for all subthreads to exit
11316
11317         * icall.c: New internal calls for System.Threading.Thread::Sleep
11318         (including Schedule) and CurrentThread
11319
11320         * threads.h: New file, to insulate thread-specific stuff from the
11321         rest of the code
11322
11323 2001-09-21  Dick Porter  <dick@ximian.com>
11324
11325         * threads-pthread.h: 
11326         * threads-pthread.c: New file, for handling pthreads-style
11327         threading support.  Start() now starts a new thread and executes
11328         the ThreadStart delegate instance.
11329
11330         * icall.c: Added the internalcall for
11331         System.Threading.Thread::Start_internal
11332
11333         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
11334
11335 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
11336
11337         * loader.c: work around the different signatures for delegates
11338         constructors csc generates in compiled code vs the ones compiled in mscorlib.
11339
11340 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
11341
11342         * class.h, class.c: add mono_class_get_field_from_name ().
11343         * *: Fix C comments and other ANSI C issues.
11344
11345 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
11346
11347         * endian.h, assembly.c: fix some endianness issues.
11348
11349 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
11350
11351         * loader.h, load.c: add delegate_class to mono_defaults.
11352         Handle runtime provided methods in mono_get_method ().
11353
11354 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
11355
11356         * loader.c (mono_get_method): use pinvoke for internal call
11357
11358         * icall.c: use pinvoke for internal call
11359
11360         * loader.c (method_from_memberref): set the method name
11361
11362 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
11363
11364         * metadata.c: help the compiler generate better code for
11365         mono_class_from_mono_type ().
11366
11367 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
11368
11369         * class.c (mono_class_metadata_init): delayed computing of the
11370         class size to mono_class_metadata_init ()
11371
11372 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
11373
11374         * class.c, class.h: add an interfaces member to MonoClass.
11375         * image.c, image.h: add assembly_name field to MonoImage
11376         from the assembly table.
11377         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
11378
11379 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
11380
11381         * class.c: Handle Array in mono_class_from_mono_type ().
11382         * metadata.c, pedump.c: some endian fixes.
11383
11384 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
11385
11386         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
11387         * metadata.c: fix small problem introduced with the latest commit.
11388
11389 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
11390
11391         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
11392         We don't need a MonoMetadata pointer anymore to compare signatures in
11393         mono_metadata_signature_equal (), update callers.
11394         Reduced memory usage an number of allocations for MonoMethodHeader and
11395         MonoMethodSignature.
11396
11397 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
11398
11399         * metadata.c: added compare for szarray.
11400
11401 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
11402
11403         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
11404         and add a couple more types to it and mono_defaults. Give an hint on
11405         classes that need implementing in our corlib and are referenced
11406         in mscorlib.
11407
11408 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
11409
11410         * class.h, class.c: keep track if a class is also an Enum.
11411         * loader.c: Implement a couple more types for use in libffi
11412         marshalling. Gives better diagnostics when failing to dlopen
11413         a library. Set method->klass for P/Invoke methods, too.
11414
11415 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
11416
11417         * class.c, class.h: add a MonoType this_arg to MonoClass that
11418         represents a pointer to an object of the class' type that
11419         can be used by the interpreter and later the type cache.
11420         Add best guess alignment info for valuetype objects.
11421
11422 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
11423
11424         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
11425         into MonoType: one less level of indirection and allocation and
11426         simplifies quite a bit of code. Added cache for MonoTypes that are
11427         used frequently, so that we don't need to allocate them all the time.
11428
11429 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
11430
11431         * class.c (mono_class_create_from_typedef): System.Enum is also a
11432         value type, although it does not derive from System.ValueType
11433         (maybe a bug in the ms compiler?)
11434
11435         * metadata.c (mono_type_size): return the right size for value types
11436
11437         * loader.c (mono_get_method): only initialize method header if not abstract
11438
11439         * class.c (mono_class_from_mono_type): use mono_default values. 
11440
11441 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
11442
11443         * *: use MonoClass pointers instead of <type_tokens>
11444         
11445         * class.h: new flag: metadata_inited.
11446
11447         * class.c (mono_class_metadata_init): impl.
11448         (mono_class_instance_size): impl.
11449         (mono_class_data_size): impl.
11450
11451 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
11452
11453         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
11454         MonoClass now has the name and name_space fields. 
11455         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
11456         mono_get_method () takes and optional MonoClass as argument.
11457         Removed mono_typedef_from_name() and added mono_class_token_from_name()
11458         instead that takes advantage of a map from class names to typedef
11459         tokens in MonoImage.
11460
11461 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
11462
11463         * metadata.c: zero is not a valid alignment boundary.
11464         Merge MONO_TYPE_VOID in default decoding code.
11465
11466 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
11467
11468         * image.h: merged MonoMetadata into MonoImage
11469
11470         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
11471         identify the type of elements.
11472
11473 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
11474
11475         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
11476         * cil-coff.h: split MonoMSDOSHeader and add size info.
11477         * image.c: add some consistency checks.
11478         * metadata.c: fix row size computation: one programmer
11479         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
11480         add explanation for the locator routine.
11481         Fix decoding of size in method header.
11482         
11483 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
11484
11485         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
11486         (g_concat_dir_and_file): Bring g_concat_dir_and_file
11487         function from gnome-libs.  This uses the right path separator
11488         based on the OS, and also works around a bug in some systems where
11489         a double slash is not allowed. 
11490         (default_assembly_name_resolver): Use g_concat_dir_and_file
11491         (mono_assembly_open): ditto.
11492
11493 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
11494
11495         * metadata.c (mono_metadata_signature_equal): impl.
11496
11497         * *: void is now a realy MonoType (instead of using NULL)
11498         
11499         * metadata.c (do_mono_metadata_parse_type): use
11500         mono_metadata_parse_type to parse void value.
11501
11502 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
11503
11504         * metadata.c, metadata.h: in the signature and method header store
11505         only the space required for holding the loca vars and incoming arguments.
11506
11507 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
11508
11509         * metadata.c (do_mono_metadata_parse_type): treat void like any
11510         other type (instead of assigning NULL);
11511
11512 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
11513
11514         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
11515
11516 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
11517
11518         * image.c (do_mono_image_open): added a cache for arrays.
11519
11520 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
11521
11522         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
11523         decode a single column from a row in a metadata table and changes
11524         to take advantage of it in the typedef locator (gives a nice speed up).
11525         Store offset info for function params.
11526
11527 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
11528
11529         * image.h (MONO_IMAGE_IS_CORLIB): removed 
11530
11531 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
11532
11533         * assembly.c: how could mono_assembly_close () had ever worked?
11534         * metadata.c, metadata.h: provide offset info for local vars.
11535         Implement mono_type_size () to take care of alignment as well
11536         as size (it was mono_field_type_size in cli/class.c before).
11537
11538 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
11539
11540         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
11541
11542         * assembly.h (CORLIB_NAME): set to corlib.dll
11543
11544         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
11545
11546 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
11547
11548         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
11549         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
11550         tokentype.h: massive namespace cleanup.
11551
11552 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
11553
11554         * metadata.h, metadata.c: decode exception clauses when parsing method header.
11555
11556 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
11557
11558         * metadata.c (mono_metadata_free_type): added check for type !=
11559         NULL (void) before calling mono_metadata_free_type()
11560
11561 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
11562
11563         * metadata.h, row_indexes.h: added header with enumerations to use
11564         to index in the columns from tables in metadata and to decode coded
11565         tokens: we should start using this instead of embedding magic numbers
11566         all over the code.
11567
11568 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
11569
11570         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
11571         Move metadata_t info from cli_image_info_t to MonoImage, where
11572         it's easily accessible. Changed all the uses accordingly.
11573         Added the method and class caches to MonoImage.
11574         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
11575         and mono_metadata_decode_value () signature to be more consistent
11576         with the other parse functions (and simplify code). Taken advantage
11577         of zero-length array allocation with GCC. Removed reduntant (and
11578         wrong) MonoFieldType struct and use MonoParam instead. Changed
11579         mono_metadata_parse_field_type () to use common code for parsing.
11580         Added mono_metadata_typedef_from_field () and
11581         mono_metadata_typedef_from_method () to lookup a typedef index from a
11582         field or method token.
11583         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
11584
11585 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
11586
11587         * metadata.c (mono_metadata_parse_field_type): Implement. 
11588         (do_mono_metadata_parse_type): Split engine from
11589         mono_metadata_parse_type, so that we can create smaller structures
11590         for things that just have one pointer to the MonoType (look at
11591         the MonoFieldType)
11592
11593 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
11594
11595         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
11596         as Jan Gray found out, it is incorrect. 
11597
11598 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
11599
11600         * assembly.c: Implement asssembly loading.  This loads an image
11601         and loads all the referenced assemblies.  Come to think of it, we
11602         could always do lazy loading of the assemblies. 
11603
11604         * image.c (mono_image_open): Keep loaded images in a hashtable.
11605
11606         * image.h (MonoImage): Add reference count.
11607
11608 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
11609
11610         * assembly.c (mono_assembly_open): Keep track of the file name in
11611         case the assembly has no ASSEMBLY table.
11612
11613         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
11614         from get.c here.
11615
11616 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
11617
11618         * metadata.c, metadata.h: decode local vars in method header
11619         parse function. Change callers accordingly.
11620
11621 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
11622
11623         * metadata.h, cil-coff.h: protect against multiple inclusion.
11624         Added some new structures to hold information decoded from metadata:
11625         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
11626         and relevant decoding/free functions.
11627         * metadata.c: implement decoding functions. Add warning for out of bounds
11628         index in mono_metadata_locate(). Implement mono_get_method () to retreive
11629         all the info about a method signature and invocation. Remove check on
11630         uninitialized local var in parse_mh() and fix memory leak.
11631
11632 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
11633
11634         * metadata.h: More macros.
11635
11636         * tokentype.h: New file.
11637
11638 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
11639
11640         * assembly.c: added a consistency check and initialize
11641         some structures with g_new0().
11642         * metadata.c: fixed a couple more bugs in table size computation
11643         and add other checks for out-of bound access to metadata.
11644
11645 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
11646
11647         * metatada.c: fix bugs computing table sizes. Spew a
11648         warning when index in string heap is out of bounds.
11649
11650 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
11651
11652         * metadata.h: Add a couple of macros to manipulate tokens. 
11653
11654 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
11655
11656         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
11657         cli_section_tables).
11658
11659 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
11660
11661         * metadata.c (mono_metadata_user_string): New function, provides
11662         access to the UserString heap. 
11663
11664 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
11665
11666         * metadata.c: Add inline documentation.
11667
11668 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
11669
11670         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
11671         files. 
11672
11673 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
11674
11675         * typeattr.h: New file, TypeAttribute flags. 
11676
11677 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
11678
11679         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
11680         mono_assembly_ensure_section): Section loading code.
11681         (load_section_tables): Load the sections.
11682
11683         * mono/metadata/metadata.c (mono_metadata_locate_token,
11684         mono_metadata_locate): Functions to locate the information
11685         definition given a token or a table and an index.
11686         (mono_metadata_compute_table_bases): New.
11687         (compute_size): New function to compute the sizes of the various
11688         tables.
11689
11690         * mono/metadata/metadata.h: Finish listing the different index
11691         types. 
11692
11693         * mono/metadata/pedump.c: Improve to dump new information.
11694
11695 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
11696
11697         * mono/metadata/metadata.c: Entered all the tables matching
11698         Beta2. 
11699
11700         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
11701