Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
3
4         * appdomain.c: fix infinite recursion when adding assemblies.
5
6 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
7
8         * object.c: Fix small typo to return all items for Environment.
9         GetCommandLineArgs.
10
11 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12
13         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
14         reflection.c: more domain and assembly-unload related fixes
15         and memory leaks plugs.
16
17 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
18
19         * class.c loader.c security.c loader.h process.c threads.c mono-debug-debugger.c profiler.c marshal.c rand.cpedump.c: Fix 64 bit warnings.
20
21 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
22
23         * loader.c (mono_method_signature): Make this method lazy
24         (mono_get_method_from_token): Don't computate the signature here.
25
26         Doing this saves quite a bit of memory. I got 90 kb on starting up
27         monodoc. It should also save some disk reads on startup.
28
29         * *: MonoMethod->signature might be NULL now. You *MUST* use
30         mono_method_signature.
31
32 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
33
34         * object.c (mono_runtime_get_main_args): Return an array from the
35         current domain here. Fixes #71938.
36
37 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
38
39         * monitor.c: formatting changes to comply with the
40         mono coding style and remove #ifdefs from the code.
41
42 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
43
44         * metadata.c, private.h: remove some unneeded data
45         and use a more compact representation for table schemas.
46
47 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
48
49         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
50         to get a better distribution in hash tables.
51         * *.c: use mono_aligned_addr_hash() where appropriate.
52         * assembly.c: make var static.
53
54 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
55
56         * domain-internals.h: Put MonoJitInfo on a diet.
57
58         * domain.c: Fix a warning.
59
60 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
61
62         * gc.c: rework the gc handles code to reuse handles
63         when freed.
64
65 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
66
67         * domain.c: fixed long standing bug in mono_string_equal() which
68         was brought to light with the ldstr changes.
69
70 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
71
72         * reflection.c: Remove warning by adding missing include for marshal.h
73
74 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
75
76         * domain.c, object.c: change the ldstr_table to hold
77         MonoString* as keys: makes the runtime isinterned lookup
78         faster and simplifies memory management.
79
80 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
81  
82         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
83         possible to add imperative security checks before calling the icall.
84         * reflection.c: Return security attributes on the original MonoMethod
85         (and not the wrapped one). This fix permissions on icalls.
86
87 2005-01-25  Dick Porter  <dick@ximian.com>
88
89         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
90         the check for mktime() support actually test the mktime() return
91         value.  "Fixes" bug 71682, though the output is still different to
92         MS.
93
94 2005-01-25  Martin Baulig  <martin@ximian.com>
95
96         * class.c (mono_class_is_assignable_from): Make this work for
97         generic instances.
98
99 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
100
101         * marshal.c (mono_string_utf8_to_builder)
102         (mono_string_builder_to_utf16): We might not have ownership of the
103         string. In thise case, we need to create a new buffer.
104
105         * object-internals.h (mono_stringbuilder_capacity): sb->str might
106         be null, in which case, use the default capacity.
107
108 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
109
110         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
111         GC events to the profiler.
112
113 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
114
115         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
116         if you don't want the GC to run.
117
118 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
119
120         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
121         start providing a GC API and keeping different implementations in
122         their own file.
123         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
124
125 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
126
127         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
128         mmap rather than allocating a huge buffer.
129         (mono_debug_close_mono_symbol_file): Free the buffer allocated
130         above.
131
132 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
133
134         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
135         and CheckExecutionRights.
136         * reflection.c|h: Keep the index of the declarative security to be 
137         used, instead of the pointer, when AOT compiler is used. Also add 
138         class initialization when requesting demands.
139         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
140         CheckExecutionRights. Both properties are now FALSE by default, and
141         unmodifiable, unless the --security option is used.
142
143 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
144
145         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
146         reflection.c: properly refcount images and assemblies, many leaks fixed.
147
148 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
149
150         * threadpool.c: increase the timeout for threads in the thread pool to
151         10s.  Fixes bug #67159.
152
153 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
154
155         * class-internals.h: Sun's compiler insists on explicit
156         signed on bit fields to handle then correctly.
157
158 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
159
160         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
161         Make the size of the array fit only the number of invalid path
162         chars that we have.
163
164         * class.c (_mono_class_get): Improve the error reporting when a
165         class referenced is not found, to assist debugging. 
166
167 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
168
169         * threads.c: fix off-by-one error.
170         * domain.c: free data allocated in the domain.
171
172 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
173
174         * reflection.c (mono_method_body_get_object): Fill out exception info
175         as well.
176
177         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
178         structure.
179         
180 2005-01-19  Martin Baulig  <martin@ximian.com>
181
182         * loader.c (mono_get_method_constrained): Make this work again.
183
184 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
185
186         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
187         guint16 to match the managed side.
188
189         * reflection.c (mono_reflection_body_get_object): Fill out local
190         variables array.
191
192         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
193         as well.
194
195         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
196         'local_var_sig_token'.
197
198 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
199
200         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
201         System.Drawing.
202
203         * reflection.c (mono_method_body_get_object): Handle abstract and
204         runtime methods.
205
206 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
207
208         * marshal.c, loader.c, class-internals.h, reflection.c:
209         store the emthod data for a wrapper in an array instead of a list.
210
211 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
212
213         * marshal.c: change the code to allocate memory more
214         conservatively for method wrappers.
215
216 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
217
218         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
219         fields from MonoClass to the marshal info structure where they belong.
220
221 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
222
223         * class.c, object.c, class-internals.h, marshal.c: rearrange
224         some fields and tweak some types to lower memory usage.
225
226 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
227
228         * threads.c (signal_thread_state_change): Handle the case when the
229         target thread is the current thread.
230
231         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
232
233         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
234         emit_ptr_to_object_conv. 
235
236         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
237         marshalling. Fixes #71352.
238
239 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
240
241         * metadata.h, blob.h: move table enum to blob.h so it can be included
242         in any header.
243         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
244         cut the size of MonoImage/MonoDynamicImage.
245
246 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
247
248         * profiler.c (mono_profiler_install_simple): Fix default arguments.
249
250 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
251
252         * reflection.c, reflection.h, icall.c: add a function to check
253         if an attribute type is defined for a metadata object.
254
255 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
256
257         * object-internals.h: Added some needed fields from StringBuilder class.
258         * marshal.c: Set the maxCapacity when creating a StringBuilder.
259
260 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
261
262         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
263         threads before shutting down the runtime.
264
265         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
266
267 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
268
269         * object-internal.h, threads.c: implement stacksize and 
270         parameterized thread start functionality (requires
271         matching corlib). Marked broken code for later removal.
272
273 2005-01-12  Martin Baulig  <martin@ximian.com>
274
275         * class-internals.h (MonoGenericClass): Moved the `initialized'
276         flag to MonoDynamicGenericClass, removed `init_pending'.
277         (MonoGenericInst): Added `is_reference' flag.
278
279 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
280
281         * reflection.c (mono_image_create_pefile): Only set the pe_offset
282         inside the MSDOS header. Fixes #71201.
283
284         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
285         gc thread.
286         (mono_domain_finalize): Ditto.
287
288 2005-01-12  Martin Baulig  <martin@ximian.com>
289
290         * class.c (mono_get_shared_generic_class): Use the cache for
291         non-dynamic generic classes.
292
293         * class-internals.h (mono_class_create_generic_2): Removed
294         function prototype, this function is now static inside class.c.
295
296         * class.c (mono_class_create_generic_2): Made this static, only
297         call it from mono_class_init() and mono_class_setup_parent().
298         (collect_implemented_interfaces_aux): Call mono_class_init() on
299         the interfaces we collect.
300         (mono_class_setup_vtable): Call mono_class_init (class->parent).
301
302 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
303
304         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
305         it a real thread handle.
306
307         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
308         MonoJitExceptionInfo, since each catch clause needs its own variable.
309         
310 2005-01-11  Dick Porter  <dick@ximian.com>
311
312         * image.c (mono_pe_file_open): New variant on mono_image_open()
313         that does not set up the CLI metadata; used for FileVersionInfo so
314         it can get the data for windows binaries too.
315         
316         * process.c (process_read_string_block): Don't read off the end of
317         the StringTable block.
318
319         These both fix bug 70766.
320
321 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
322
323         * gc.c: set some fields to NULL at GC cleanup time.
324         * threads.c: if we quit the main thread, call exit ().
325
326 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
327
328         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
329
330 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
331
332         * threads.h, threads.c, object.c: added accessor and settor for
333         main_thread. Handle it specially when exiting from it: wait
334         for other foreground threads to exit.
335
336 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
337
338         * process.c, verify.c: remove some bloat.
339
340 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
341
342         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
343         the calling convention to cdecl under win32.
344
345 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
346
347         * object.c (mono_object_get_size): New function to get the size of
348         an object instance.
349
350         * profiler.c (simple_allocation): Use above.
351
352 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
353
354         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
355         ves_icall_System_AppDomain_getRootDomain (as it's not required to
356         get an appdomain by it's id and we can't assume the root's id is 0).
357         * domain-internals.h: Change the function prototype to match.
358         * icall.c: Change the icall table for AppDomain.
359
360 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
361
362         * locales.c (string_invariant_compare_char): Only compute
363         GUnicodeTypes in the case where we need them.  Test for ordinality
364         first and return if so.
365
366         From the commit:
367
368                 /*
369                  * FIXME: here we must use the information from c1type and c2type
370                  * to find out the proper collation, even on the InvariantCulture, the
371                  * sorting is not done by computing the unicode values, but their
372                  * actual sort order.
373                  */
374
375 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
376
377         * loader.c: for P/Invoke methods, allow the "Internal" shared
378         library name to refer to the calling process symbol namespace.
379
380 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
381
382         * Makefile.am: Add the security manager to the build.
383         * security-manager.c|h: New. Initialization of the security manager.
384
385 2005-01-07  Dick Porter  <dick@ximian.com>
386
387         * threads.c: 
388         * monitor.c: Update thread state during Monitor and WaitHandle
389         waits.  Fixes bug 71031.
390
391 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
392
393         * reflection.c (property_encode_signature): Correctly handle when the
394         property has no methods.
395
396 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
397
398         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
399         
400         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
401         fields from mb, not rmb. Fixes #71017.
402
403         * marshal.c (emit_ptr_to_str_conv): Add support for 
404         ByValTStr -> string conversion. Fixes #71015.
405
406         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
407
408         * mempool.c (mono_mempool_contains_addr): New helper function.
409
410 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
411
412         * metadata.c (mono_metadata_compute_size): Fix size calculation of
413         HasSematics encoded fields.
414         
415         * metadata.c (mono_type_to_unmanaged): Improve error message for 
416         invalid string marshalling.
417
418         * metadata.c: Fix warnings.
419         
420 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
421
422         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
423         profiler support.
424
425 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
426
427         * domain.c object.c domain-internals.h: Revert part of r38077 since the
428         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
429         tests.
430
431 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
432
433         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
434         so methods containing these can be AOTed.
435
436 2005-01-03  Martin Baulig  <martin@ximian.com>
437
438         * loader.c (find_method): Removed the hack for generic instances.
439         (method_from_memberref): If our parent is a generic instance, pass
440         its generic type definition to find_method() and then inflate the
441         method.
442         (mono_get_method_constrained): Pass the generic type definition to
443         find_method() and inflate the method later.
444
445         * class-internals.h (MonoStats): Added `generic_class_count'.
446
447         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
448         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
449
450         * reflection.c (mono_custom_attrs_from_params): Don't ignore
451         generic type definitions.
452
453 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
454
455         * loader.c icall.c: Fix warnings.
456
457 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
458
459         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
460         blittable types. Fixes #70864.
461
462 2004-12-29  Martin Baulig  <martin@ximian.com>
463
464         * icall.c
465         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
466
467         * reflection.c (mono_method_get_object): Create a
468         "System.Reflection.MonoGenericMethod" for inflated methods; don't
469         call mono_get_inflated_method().
470
471         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
472
473 2004-12-27  Martin Baulig  <martin@ximian.com>
474
475         * class-internals.h (MonoMethod): Added `is_inflated' flag.
476         (MonoMethodInflated): Added `inflated' field.
477
478         * class.c (mono_class_inflate_generic_method): Don't really
479         inflate the method here; just set the `is_inflated' flag in the
480         MonoMethod.
481         (mono_class_get_inflated_method): Actually inflate the method here
482         if it's not already inflated; we use the MonoMethodInflated's new
483         `inflated' field as a cache.
484
485 2004-12-26  Martin Baulig  <martin@ximian.com>
486
487         * class.c
488         (inflate_generic_class): Moved some code out of inflate_generic_type().
489         (mono_class_inflate_generic_method): If we're already inflated,
490         inflate the context and use the declaring method; ie. make sure
491         the declaring method of an inflated method is always the generic
492         method definition.
493         (mono_class_create_from_typedef): Create
494         `class->generic_container->context->gclass'.
495
496 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
497
498         * metadata-internals.h, marshal.c, reflection.c: More
499         MonoGHashTable->GHashTable.
500
501         * domain-internals.h, class.c: Change MonoGHashTable's into
502         GHashTables for some cases where no gc stuff is used
503
504         All users: update apis
505
506 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
507
508         * metadata.c (builtin_types): Make this `const'. Makes this get
509         put into the shareable section.
510         (mono_metadata_init): Casts to make gcc happy.
511
512 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
513
514         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
515
516 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
517
518         * icall.c: Added an internal call to retrieve the position and length
519         of assembly-level declarative security attributes (RequestMinimum, 
520         RequestOptional and RequestRefuse). This is used by the Assembly class
521         to re-create the corresponding permission sets.
522
523 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
524
525         * marshal.c: fix the stelemref wrapper to be type correct
526         (and faster).
527
528 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
529
530         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
531         to do key & 0x7fffffff. Hashtable already does this. It just
532         results in longer code.
533
534 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
535
536         * appdomain.c: Bump corlib version.
537         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
538         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
539         * reflection.c|h: Add functions to get declarative security infos
540         (blob position and length) for assemblies, classes and methods.
541
542 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
543
544         * reflection.c: sort the constant table (bug #70693).
545
546 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
547
548         * object-internals.h, threads.c, domain.c: add accessors for
549         the MonoThread and MonoDomain tls keys.
550
551 2004-12-18  Martin Baulig  <martin@ximian.com>
552
553         * class.c (inflate_generic_type): If we're inflating a generic
554         instance, set `ngclass->context->container = context->container';
555         ie. the container we inflated into.
556
557         * metadata.c (mono_metadata_parse_generic_param): Reflect above
558         inflate_generic_type() changes.
559
560 2004-12-17  Martin Baulig  <martin@ximian.com>
561
562         * class-internals.h
563         (MonoGenericClass): Replaced `MonoType *generic_type' with
564         `MonoClass *generic_class'.  Removed `dynamic_info'; if
565         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
566         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
567
568 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
569
570         * exception.c (mono_exception_from_token): New helper function.
571
572 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
573
574         * assembly.c (mono_assembly_load_with_partial_name): Call 
575         mono_assembly_loaded before invoking the preload hooks. Fixes
576         #70564.
577
578         * object-internals.h (MonoThread): Change culture_info and 
579         ui_culture_info into an array.
580
581         * threads.c: Cache culture info objects from more than one appdomain.
582
583         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
584         current UI culture.
585
586 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
587
588         * threads.h threads.c appdomain.c: Clear the culture_info field of
589         all threads during unloading if they point to an object in the dying
590         appdomain.
591
592 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
593
594         * culture-info.h (TextInfoEntry): New struct
595         * object-internals.h: sync with managed
596         * locales.c: fill the `text_info_data' field
597         * culture-info-tables.h: update
598
599 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
600
601         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
602         collector.
603
604 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
605
606         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
607         (ves_icall_ModuleBuilder_getMethodToken): Ditto
608
609 2004-12-12  Martin Baulig  <martin@ximian.com>
610
611         * mono-debug-debugger.c (write_type): If we're an enum and the
612         builtin types have already been initialized, call mono_class_init().
613
614 2004-12-11  Martin Baulig  <martin@ximian.com>
615
616         * metadata.c (mono_metadata_load_generic_params): Added
617         `MonoGenericContainer *parent_container' argument; automatically
618         compute `container->is_method'; pass the correct owner to
619         get_constraints().      
620
621         * reflection.c (compare_genericparam): Sort the GenericParam table
622         according to increasing owners. 
623
624 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
625
626         * profiler.c: allow disabling the default profiler.
627
628 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
629
630         * decimal.c, icall.c: allow disabling System.Decimal support.
631
632 2004-12-09  Marek Safar <marek.safar@seznam.cz>
633
634         * reflection.c: Add support for null attribute arguments.
635
636 2004-12-09  Martin Baulig  <martin@ximian.com>
637
638         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
639         names to get rid of compiler warnings.
640
641 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
642
643         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
644         mono_marshal_load_type_info (). Fixes #69625.
645         (mono_marshal_get_ptr_to_struct): Likewise.
646
647 2004-12-08  Martin Baulig  <martin@ximian.com>
648
649         * mono-debug.h: Bumped version number to 47.
650
651         * mono-debug-debugger.c
652         (mono_debugger_event_handler, mono_debugger_event): Take two
653         guint64 arguments insteed of a gpointer and a guint32.  
654
655 2004-12-08  Martin Baulig  <martin@ximian.com>
656
657         * debug-mono-symfile.h
658         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
659         `address' to `native_offset'.
660
661 2004-12-08  Martin Baulig  <martin@ximian.com>
662
663         * class.c (mono_class_create_from_typespec): Only inflate if we
664         either have `context->gclass' or `context->gmethod'.
665
666 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
667
668         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
669
670         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
671
672         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
673
674         * reflection.c (mono_assembly_get_object): Remove the workaround put
675         in for the release.
676         
677         * appdomain.c: Use the corlib_internal field from MonoAssembly.
678
679         * appdomain.c: Bump corlib version.
680
681         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
682         be visible in other appdomains.
683
684 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
685
686         * threads.c: Interlocked inc and dec for longs were messed up,
687         use a KISS based impl for this. Fixes 70234
688
689 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
690
691         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
692
693 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
694
695         * icall.c: fix to follow policy not to allow struct
696         arguments in icalls.
697
698 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
699
700         * process.c: make the patch that handles spaces in file paths work
701         on mono/windows too.
702
703 2004-12-06  Martin Baulig  <martin@ximian.com>
704
705         * class.c (mono_class_create_generic): Call
706         mono_class_setup_supertypes() if we're dynamic.
707         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
708
709 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
710
711         * object-internals.h: Add new fields to MonoThread.
712
713         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
714
715         * icall.c threads-types.h threads.c: Add new icalls.
716
717         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
718
719         * object-internals.h (MonoReflectionAssembly): Sync object layout with
720         managed side.
721
722         * appdomain.c: Bump corlib version.
723
724         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
725         internal assemblies. Fixes #69181.
726
727 2004-12-05  Martin Baulig  <martin@ximian.com>
728
729         * class.c (mono_class_inflate_generic_signature): Make this a
730         no-op if `context' is NULL or we don't have any type parameters;
731         also copy `sentinelpos'.        
732
733 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
734
735         * image.c: Add unbox_wrapper_cache.
736
737         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
738
739         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
740         function generator.
741         
742         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
743         Fixes #70173.
744
745         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
746         
747 2004-12-04  Martin Baulig  <martin@ximian.com>
748
749         * loader.c (mono_method_get_signature_full): New public function;
750         like mono_method_get_signature(), but with an additional
751         `MonoGenericContext *' argument.
752
753         * class.c (mono_class_inflate_generic_signature): Formerly known
754         as inflate_generic_signature(); make this public.
755
756 2004-12-04  Martin Baulig  <martin@ximian.com>
757
758         * metadata.c
759         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
760         instead of a `MonoGenericContainer *'.  
761         (mono_metadata_parse_array_full): Likewise.
762         (mono_metadata_parse_signature_full): Likewise.
763         (mono_metadata_parse_method_signature_full): Likewise.
764         (mono_metadata_parse_generic_inst): Likewise.
765         (mono_metadata_parse_generic_param): Likewise.
766         (mono_metadata_parse_mh_full): Likewise.
767         (mono_type_create_from_typespec_full): Likewise.
768
769 2004-12-03  Martin Baulig  <martin@ximian.com>
770
771         * class-internals.h (MonoGenericContainer): Replaced the
772         `MonoGenericContext * pointer with a `MonoGenericContext'
773         structure and made it the first element.
774
775 2004-12-03  Martin Baulig  <martin@ximian.com>
776
777         * class.c
778         (inflate_generic_type): Set the `context->container' when creating
779         a new MonoGenericContext.
780         (mono_class_inflate_generic_method): Likewise.
781         (mono_class_create_from_typespec): Just use `context->container'
782         to get the container.
783
784         * loader.c (method_from_methodspec): Set `context->parent' from
785         `context->container' - and if that's a method container, use its
786         parent.  Also set the `context->container' when creating a new
787         MonoGenericContext.
788         (mono_get_method_from_token): Use just `context->container' to get
789         the container.
790
791         * metadata.c (do_mono_metadata_parse_generic_class): Also set
792         `gclass->context->container'.
793
794         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
795         the `context->container' when creating a new MonoGenericContext.
796
797 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
798
799         * reflection.c (compare_genericparam): Sort params with identical
800         owner by their number. Fixes gen-111 on sparc.
801
802 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
803
804         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
805         around the domain changes.
806
807         * appdomain.c (mono_domain_unload): Handle the case when the thread
808         calling Unload is itself being aborted during unloading. Fixes #70022.
809
810         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
811
812         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
813         checkpoint_func as an icall so it gets a wrapper.
814         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
815         in the cross-appdomain wrappers too.
816
817         * threads.c (mono_thread_has_appdomain_ref): Make this public.
818
819         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
820
821         * reflection.c: Fix some memory leaks.
822         
823 2004-12-02  Martin Baulig  <martin@ximian.com>
824
825         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
826
827         * metadata.c (generic_class_cache): New static hashtable.
828         (mono_metadata_lookup_generic_class): New public method.
829
830 2004-12-02  Martin Baulig  <martin@ximian.com>
831
832         * class.c (mono_class_create_from_typedef): Call
833         mono_class_setup_parent() and mono_class_create_mono_type() before
834         parsing the interfaces.
835
836 2004-12-02  Martin Baulig  <martin@ximian.com>
837
838         * metadata.c (generic_inst_cache): New static hashtable.
839         (mono_metadata_lookup_generic_inst): New public function.
840         (mono_metadata_inflate_generic_inst): New public function.
841         (mono_metadata_parse_generic_inst): New public function.
842         (do_mono_metadata_parse_generic_class): Use the new
843         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
844         since this'll also use the cache.
845
846         * reflection.c (mono_reflection_bind_generic_method_parameters):
847         Use mono_metadata_lookup_generic_inst() to use the new cache.
848
849         * class.c (inflate_mono_type): Use
850         mono_metadata_inflate_generic_inst() to inflate a generic
851         instance; this'll also use the new cache.
852
853         * loader.c (method_from_methodspec): Use
854         mono_metadata_parse_generic_inst() and
855         mono_metadata_inflate_generic_inst() rather than parsing it
856         manually, so we can use the new cache.
857
858 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
859
860         * threads.c (wait_for_tids): Do not incorrectly free threads when 
861         the wait times out.
862
863 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
864
865         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
866         iter->args based on whether parameters are passed in registers (i.e.
867         MONO_ARCH_REGPARMS is defined)
868
869 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
870
871         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
872         the exception message. Fixes #70070.
873         (method_from_methodspec): Fix warnings.
874
875 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
876
877         * process.c: (complete_path) return the path quoted
878
879 2004-12-01  Martin Baulig  <martin@ximian.com>
880
881         * class-internals.h (MonoGenericInst): New structure.
882         (MonoGenericClass): Replaced `type_argc', `type_argv' and
883         `is_open' with `MonoGenericInst *inst'.
884         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
885         `is_open' with `MonoGenericInst *inst'.
886
887 2004-11-30  Martin Baulig  <martin@ximian.com>
888
889         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
890
891         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
892         to `generic_class_cache'.
893
894         * metadata.c
895         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
896         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
897         (mono_generic_inst_is_valuetype): Renamed to
898         mono_generic_class_is_valuetype().
899
900         * class-internals.h
901         (MonoGenericInst): Renamed to MonoGenericClass.
902         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
903         (MonoClass): Renamed `generic_inst' to `generic_class'.
904         (MonoGenericContext): Renamed `ginst' to `gclass'.
905
906         * object-internals.h
907         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
908
909         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
910         mono_reflection_generic_class_initialize().
911
912         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
913         now known as "System.Reflection.MonoGenericClass".
914         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
915
916 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
917
918         * class-internals.h: Added a flag field to MonoClass to cache the
919         declarative security attributes actions associated with the class.
920         * domain-internals.h: Added booleans to MonoJitInfo to cache the
921         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
922         applicable to the JITted method.
923         * reflection.c|h: Added functions to extract (as flags) which security
924         actions are available (declaratively) for a method, class or assembly.
925         * metadata.c|h: Added functions to search the declarative security
926         table in the metadata.
927         
928 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
929
930         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
931         EXPORTEDTYPES are already in the class name cache, so there is no
932         need to add extra code here to look at them. Just removes a bit of
933         cruft.
934
935         (ves_icall_System_Environment_get_TickCount): No need for #if
936         WINDOWS. We already have the code in io-layer.
937
938 2004-11-28  Martin Baulig  <martin@ximian.com>
939
940         * loader.c
941         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
942         Fixes gen-112.cs.
943
944 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
945
946         * assembly.c (do_mono_assembly_open): Instead of having a
947         conditional WITH_BUNDLE, incorporate support for bundles here, by
948         having a global `bundles' variable holding a pointer to the actual
949         bundles. 
950
951         (mono_register_bundled_assemblies): New API call used by the
952         bundle code. 
953
954         See mkbundle.1 for details.
955         
956 2004-11-27  Martin Baulig  <martin@ximian.com>
957
958         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
959         the vtable for generic methods.
960
961 2004-11-26  Martin Baulig  <martin@ximian.com>
962
963         * metadata.c
964         (mono_metadata_generic_method_hash): New public function.
965         (mono_metadata_generic_method_equal): Likewise.
966
967         * class-internals.h
968         (MonoGenericContainer): Added `GHashTable *method_hash'.
969
970         * reflection.c (ReflectionMethodBuilder): Added
971         `MonoGenericContainer *generic_container'.
972         (reflection_methodbuilder_to_mono_method): Don't create a new
973         MonoGenericContainer each time we're called.
974         (mono_reflection_bind_generic_method_parameters): Use
975         `container->method_hash' to cache the results so we don't create a
976         different method if we're called several times with the same
977         arguments.
978
979         * loader.c (method_from_methodspec): Use the new
980         `container->method_hash' here, too.
981
982 2004-11-26  Martin Baulig  <martin@ximian.com>
983
984         * class.c (inflate_generic_signature): Correctly compute
985         `res->has_type_parameters'.
986         (mono_class_vtable): Use the `has_type_parameters' flag to
987         determine whether we're a generic method.
988
989         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
990
991 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
992
993         * object.c (mono_runtime_run_main): Fix a small memory leak.
994
995 2004-11-25  Martin Baulig  <martin@ximian.com>
996
997         * class.c (set_generic_param_owner): Fixed the loop.
998
999 2004-11-25  Martin Baulig  <martin@ximian.com>
1000
1001         * object.c (mono_class_vtable): Don't create any JIT wrappers for
1002         generic methods.
1003
1004 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
1005
1006         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
1007         names. Fixes #69787.
1008
1009 2004-11-24  Martin Baulig  <martin@ximian.com>
1010
1011         * class.c (mono_class_create_generic_2): If we don't have a
1012         `ginst->parent', inflate `gklass->parent' to get our parent.
1013
1014 2004-11-24  Martin Baulig  <martin@ximian.com>
1015
1016         * reflection.c (compare_genericparam): Correctly sort the
1017         GenericParam table; fixes #69779.
1018
1019 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
1020
1021         * reflection.c: When writing a PE file, don't create a huge
1022         buffer in memory. Just write the arrays we have to the file.
1023         This reduces memory usage.
1024
1025         * metadata-internals.h: MonoDynamicStream pefile is no longer used
1026         globally.
1027
1028 2004-11-17  Martin Baulig  <martin@ximian.com>
1029
1030         * class.c (mono_class_init): Don't setup `class->parent' for
1031         dynamic instances; moved this to mono_class_generic_2().
1032         (mono_class_create_generic): Also set `klass->inited' for dynamic
1033         generic instances.
1034         (mono_class_create_generic_2): Don't do anything for dynamic
1035         generic instances.  Set `klass->parent' here and also call
1036         mono_class_setup_parent() here. 
1037
1038         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
1039         `MonoType *parent' argument; set `ginst->parent' before calling
1040         mono_class_create_generic_2(), so we set the correct parent.
1041
1042 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
1043
1044         * reflection.c: allow getting attributes from ModuleBuilder
1045         (used by ikvm).
1046
1047 2004-11-17  Martin Baulig  <martin@ximian.com>
1048
1049         * class.c (mono_class_create_from_typedef): If a type parameter is
1050         inherited from an outer class, set its owner to that class.
1051
1052 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
1053
1054         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
1055           for (int*) written size. This fixes bug #69592.
1056
1057 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
1058
1059         * icall.c: Added IsAuthenticodePresnet internal call.
1060         * image.c|h: New function that check a MonoImage for an Authenticode
1061         signature in the certificate PE data directory.
1062         * security.c|h: New internal call to ask the runtime if an 
1063         Authenticode signature seems referenced in the PE header.
1064
1065 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
1066
1067         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
1068
1069         * reflection.c (mono_image_create_pefile): Free the assembly streams
1070         after writing out the assembly file.
1071
1072         * object.c (mono_runtime_run_main): Fix small memory leak.
1073
1074         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
1075         property access modifiers. Fixes #69389.
1076
1077 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
1078
1079         * domain.c, object.c, object-internals.h, domain-internals.h,
1080         object.h, marshal.c: keep dynamic code info per domain.
1081
1082 2004-11-15  Martin Baulig  <martin@ximian.com>
1083
1084         * class.c (mono_type_get_name_recurse): Put type arguments in
1085         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
1086         see bug #68387.
1087
1088 2004-11-15  Martin Baulig  <martin@ximian.com>
1089
1090         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
1091         (mono_class_setup_vtable): When computing `the_cname' for a
1092         generic instance, don't include the namespace since we'd otherwise
1093         add it twice.
1094
1095 2004-11-15  Martin Baulig  <martin@ximian.com>
1096
1097         * class.c (mono_class_create_generic): Changed return type to void.
1098         (mono_class_create_generic_2): New public function; setup
1099         `class->method', `class->field' and `class->interfaces' here
1100         instead of in mono_class_init().
1101
1102         * class.h (mono_class_create_generic): Moved to class-internals.h.
1103
1104 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
1105
1106         * reflection.c (mono_image_create_pefile): take a file HANDLE.
1107         rather than writing to memory, write to this file. Right now,
1108         we are just writting into a buffer, and copying that. However
1109         we can avoid the buffer later.
1110
1111         (mono_dynamic_stream_reset): new function
1112
1113         * icall.c, object-internals.h: update for the above.
1114
1115 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
1116
1117         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
1118         have been using gc'd memory. First it is slower, unlikely
1119         the comment in the source code said, secondly, it increases
1120         our footprint to do it in the gc.
1121
1122         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
1123         the method so that it does not have to copy to managed code.
1124
1125 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
1126
1127         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
1128
1129 2004-11-12  Martin Baulig  <martin@localhost>
1130
1131         * reflection.c (mono_image_create_token): Allow generic method
1132         definitions here, since they may appear in an `.override'; see
1133         gen-98/gen-99 for an example.
1134
1135 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
1136
1137         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
1138         #69365.
1139
1140         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
1141         descriptive.
1142
1143 2004-11-11  Martin Baulig  <martin@ximian.com>
1144
1145         * class.c (mono_class_setup_vtable): In an explicit interface
1146         implementation, the method name now includes the arity.
1147
1148 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
1149
1150         * object.c (mono_array_full_copy): Fix warning.
1151
1152 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
1153
1154         * appdomain.c: Removed look_for_method_by_name(). Use the new method
1155         mono_class_get_method_from_name() instead.
1156         
1157         * class-internals.h: Added two new types of wrappers. 
1158         Added MonoRemotingTarget enum. Added new trampoline function type, which
1159         takes an additional MonoRemotingTarget value as parameter, so it is
1160         possible to request a trampoline for a specific target.
1161         
1162         * class.c: Added new mono_class_get_method_from_name() method.
1163         
1164         * class.h: In MonoRemoteClass, we can have now to vtables, one for
1165         general remoting sinks and one specific for cross domain calls.
1166         
1167         * debug-helpers.c: Added new wrapper names.
1168         
1169         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
1170         of a remote class.
1171         
1172         * image.c: Porperly delete value objects form the remoting invoke hashtable.
1173         
1174         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
1175         with several other methods (mono_marshal_get_xappdomain_dispatch,
1176         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
1177         and others) can generate a fast remoting wrapper for cross domain calls.
1178         More information can be found in docs/remoting.
1179         Other changes: Removed mono_find_method_by_name, and used
1180         mono_class_get_method_from_name instead.
1181         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
1182         is stored in the remoting invoke hashtable.
1183         
1184         * marshal.h: published the new method for getting the xdomain wrapper,
1185         and also added a method for getting the adequate wrapper for a given
1186         method and target.
1187         
1188         * object-internals.h, object.c: Added a couple of methods for capying and
1189         cloning arrays.
1190         Modified mono_install_remoting_trampoline, which takes the new remoting
1191         trampoline that has a remoting target as parameter.
1192         mono_class_proxy_vtable now also takes a remoting target as parameter, and
1193         will return the most suitable vtable for the target.
1194         Added mono_remote_class_vtable, which returns the vtable of a remote class
1195         (which can be the normal remoting vtable or the xdomain vtable).
1196         
1197         * threads.c: the xdomain invoke and dispatch wrappers must also be
1198         protected against interruptions.
1199
1200 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1201
1202         * icall.c: use memmove in BlockCopyInternal when the source and
1203         destination arrays are the same.
1204
1205 2004-11-09  Martin Baulig  <martin@ximian.com>
1206
1207         * class-internals.h (MonoGenericContainer): Removed `method' and
1208         `signature', replaced them with `is_method' and `is_signature'
1209         flags.  Added `context'.
1210
1211         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
1212         instead of a `MonoGenericContainer *'.
1213
1214         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
1215         for dynamic type parameters.
1216         (mono_metadata_load_generic_params): Setup `container->context'.
1217
1218         * reflection.c (mono_reflection_setup_generic_class): Setup
1219         `tb->generic_container->context'.
1220         (do_mono_reflection_bind_generic_parameters): Use
1221         mono_class_inflate_generic_type() to correctly inflate types,
1222         rather than using our own hack just for MONO_TYPE_VAR.
1223
1224 2004-11-09  Martin Baulig  <martin@ximian.com>
1225
1226         * class.c (mono_class_inflate_generic_method): Small fix; don't
1227         crash here.
1228
1229         * icall.c
1230         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
1231         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
1232         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
1233         (ves_icall_Type_BindGenericParameters): Likewise.
1234         (ves_icall_Type_get_IsGenericInstance): Likewise.
1235         (ves_icall_Type_GetGenericParameterPosition): Likewise.
1236         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
1237         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1238         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1239
1240 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
1241
1242         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
1243         assembly versions and public key tokens. Fixes #69113.
1244
1245 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
1246
1247         * metadata.c: fix bug introduced with the type cache changes
1248         on 2004-11-06.
1249
1250 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
1251
1252         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
1253         the MonoClass pointer instead of the token in exception clauses.
1254         * reflection.c: updates for the above and make the code not depend
1255         on the structure of MonoExceptionClause.
1256
1257 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1258
1259         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1260         Add support for dynamic assemblies. Fixes #69114.
1261
1262         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1263
1264 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1265
1266         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1267         since most only those methods use it. the code member of
1268         MonoMethodPInvoke was dead, so that can be removed too. Also,
1269         remove inline_count (again, not used), and move slot so that it
1270         can share bits with some other flags. This saves 8 bytes in the
1271         structure and gives us about 50 kb back for mcs helloworld.cs
1272
1273         * *.[ch]: Do naming changes for the above.
1274
1275         * loader.c (mono_method_get_header): Lazily init the header
1276         on first access.
1277         (mono_get_method_from_token): don't init the header here
1278         (mono_free_method): the header may never be allocated
1279
1280         Overall, this saves 150 kb of unmanaged allocations
1281         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1282         memory at runtime.
1283         
1284         * loader.c, loader.h (mono_method_get_header): new accessor.
1285
1286         * *.[ch]: use the above method. Prepares us to lazily load
1287         the header.
1288
1289         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1290         three warnings, which are actual bugs (see 69206).
1291
1292         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1293         unused. Saves a cool 4 bytes / method.
1294
1295 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1296
1297         * metadata.c (builtin_types): Add types for System.Object here.
1298         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1299         for a class or valuetype from klass->this_arg or klass->byval_arg.
1300
1301         On mcs for a hello world, this gets us down from 21836 MonoType's
1302         to 14560.
1303
1304         (mono_metadata_free_type): Account for the above change.
1305
1306 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1307
1308         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1309         exception instead of asserting if name is null.
1310         (ves_icall_System_AppDomain_GetData): Ditto.
1311
1312 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1313
1314         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1315         EnumBuilder.
1316
1317         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1318         Return NULL when the domain does not have entry_assembly set.
1319
1320         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1321         Add a 'resource_modules' argument.
1322         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1323
1324         * reflection.c (mono_reflection_create_runtime_class): Move setting
1325         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1326         for enums too.
1327
1328         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1329         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1330         Throw an ArgumentNullException if 'ptr' is null.
1331
1332         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1333         assemblies here. Fixes #69020.
1334
1335 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1336
1337         * reflection.c (build_compressed_metadata): Fix the previous patch for
1338         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1339         the stack.
1340
1341 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1342
1343         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1344         the cultures is false. Fixes #69090.
1345
1346         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1347         detected by valgrind.
1348         
1349         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1350         TypeResolve multiple times for the same type. Fixes #65577.
1351
1352 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1353
1354         * marshal.c: Avoid using ldftn to call managed functions. It is
1355         much slower than just a call.
1356
1357         * reflection.c (mono_module_get_object): free the basename we
1358         allocate here from glib.
1359         
1360         * reflection.c (ensure_runtime_vtable): make sure to free
1361         overrides.  Also, we were allocating an array of MonoMethod not an
1362         array of MonoMethod*.
1363
1364         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1365
1366         * image.c (mono_image_close): free image->guid here.
1367
1368 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1369
1370         * reflection.c: Fix some spec conformance issues with the PE file
1371         structures so mcs compiled apps run on the Net 2.0 beta.
1372
1373 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1374
1375         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1376         Implement this. Fixes #67264.
1377
1378         * debug-helpers.h debug-helpers.c marshal.c: Move 
1379         mono_find_method_by_name to debug-helpers.c.
1380
1381 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1382
1383         * object.c (mono_release_type_locks): type_initialization_hash is
1384         a GHashTable.
1385
1386         * reflection.c object.c object-internals.h: Fix warnings.
1387
1388         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1389         without accessors. Fixes #61561.
1390
1391         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1392         application base from the root domain if not set. Fixes #65641.
1393         (mono_runtime_init): Fix warning.
1394
1395 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1396
1397         * appdomain.c: call mono_thread_pool_init.
1398         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1399         of worker threads based on the number of CPUs and the environment
1400         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1401         for non-windows (windows) systems.
1402
1403 2004-10-27  Chris Toshok  <toshok@ximian.com>
1404
1405         * mono-debug-debugger.c (write_class): don't call mono_class_init
1406         here, as even with the check for (!klass->init_pending), we get
1407         into a situation where we're hitting cycles in class
1408         initialization.  Fixes #68816.
1409
1410 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1411
1412         * image.c: Avoid overwriting values in the loaded_images_hash when an
1413         assembly is loaded multiple times. Fixes #61152.
1414
1415         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1416         so multiple satellite assemblies for the same name can be loaded.
1417         Fixes #68259.
1418
1419         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1420         not NULL.
1421
1422         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1423         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1424
1425         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1426         pending finalizers are not invoked after the appdomain has been 
1427         unloaded. Fixes #67862.
1428
1429 2004-10-22  Martin Baulig  <martin@ximian.com>
1430
1431         * mono-debug-debugger.c
1432         (mono_debugger_runtime_invoke): Don't box valuetypes.
1433
1434 2004-10-22  Chris Toshok  <toshok@ximian.com>
1435
1436         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1437         don't hide private methods.
1438
1439 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1440
1441         * icall.c: Allows the runtime to "share" (when known) the public key
1442         token of an assembly. This avoid the need to recalculate the token 
1443         (from the public key) in managed code.
1444
1445 2004-10-21  Chris Toshok  <toshok@ximian.com>
1446
1447         * debug-helpers.c (append_class_name): argh, revert last patch.
1448         
1449 2004-10-21  Chris Toshok  <toshok@ximian.com>
1450
1451         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1452         not '/', so that it matches what the debugger uses to look up
1453         methods.
1454
1455 2004-10-21  Martin Baulig  <martin@ximian.com>
1456
1457         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1458         public method; this is called each time an exception is thrown and
1459         allows the debugger to use exception catch points.
1460
1461 2004-10-21  Martin Baulig  <martin@ximian.com>
1462
1463         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1464         the stack pointer and the exception object in some struct and pass
1465         that to the debugger.
1466
1467 2004-10-21  Chris Toshok  <toshok@ximian.com>
1468
1469         * mono-debug-debugger.c (do_write_class): add instance/static
1470         event support.  We don't expose "raise" or "other" yet.
1471         (event_is_static): new method.
1472
1473 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1474
1475         * mono-debug-debugger.c
1476         (mono_debugger_handle_exception): Remove
1477         bogus return value for fussy compilers.
1478
1479 2004-10-20  Martin Baulig  <martin@ximian.com>
1480
1481         * mono-debug-debugger.c
1482         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1483         (mono_debugger_handled_exception): Likewise.
1484
1485 2004-10-20  Martin Baulig  <martin@ximian.com>
1486
1487         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1488         MONO_DEBUGGER_EVENT_EXCEPTION.
1489
1490         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1491         public function to send the debugger a notification for an
1492         exception and inform it about a catch/finally clause.
1493
1494 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1495
1496         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1497         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1498         fix 2.95 build. 
1499
1500         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1501
1502 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1503
1504         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1505         marshalled as [In,Out]. Fixes #58325.
1506
1507 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1508
1509         * reflection.c (mono_method_body_get_object): Implement some fields.
1510
1511 2004-10-12  Martin Baulig  <martin@ximian.com>
1512
1513         * reflection.c (mono_reflection_bind_generic_parameters): Small
1514         fix, correctly retrieve our parent from a generic instance.
1515
1516 2004-10-12  Martin Baulig  <martin@ximian.com>
1517
1518         * metadata.c (mono_metadata_generic_param_equal): We always have
1519         an owner.
1520
1521         * class.c
1522         (mono_class_from_generic_parameter): We need to have an owner.
1523         (my_mono_class_from_generic_parameter): Likewise.
1524
1525         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1526         mono_reflection_create_generic_class() and added a new
1527         mono_reflection_setup_generic_class().  
1528         (mono_reflection_initialize_generic_param): If we're a nested
1529         generic type and inherited from the containing class, set our
1530         owner to the outer class.
1531
1532 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1533
1534         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1535
1536         * reflection.c (mono_method_body_get_object): New function to create
1537         a MethodBody object.
1538
1539         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1540
1541 2004-10-11  Martin Baulig  <martin@ximian.com>
1542
1543         * metadata.c (_mono_metadata_type_equal): Renamed to
1544         do_mono_metadata_type_equal() and made static.
1545
1546 2004-10-11  Martin Baulig  <martin@ximian.com>
1547
1548         * appdomain.c: Bump corlib version number to 28.
1549
1550 2004-10-10  Martin Baulig  <martin@ximian.com>
1551
1552         * class-internals.h
1553         (MonoGenericInst): Added `MonoGenericContainer *container'.
1554         (MonoGenericMethod): Likewise.
1555         (MonoGenericContext): Likewise.
1556         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1557
1558         * metadata.c
1559         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1560         (do_mono_metadata_parse_generic_inst): Likewise.
1561         (mono_metadata_parse_type_full): New public method.  This is the actual
1562         mono_metadata_parse_type() implementation - with an additional
1563         `MonoGenericContainer *' argument.
1564         (mono_metadata_parse_array_full): Likewise.
1565         (mono_metadata_parse_signature_full): Likewise.
1566         (mono_metadata_parse_method_signature_full): Likewise.
1567         (mono_metadata_parse_mh_full): Likewise.
1568         (mono_type_create_from_typespec): Likewise.
1569         (mono_metadata_interfaces_from_typedef_full): New public method;
1570         this is similar to the other _full() methods, but we take a
1571         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1572         (mono_metadata_parse_generic_param): Take an additional
1573         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1574         from that container.
1575         (mono_metadata_generic_param_equal): New static method to compare
1576         two type parameters.
1577         (_mono_metadata_type_equal): New static method; takes an
1578         additional `gboolean signature_only' argument - if true, we don't
1579         compare the owners of generic parameters.
1580         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1581         with a TRUE argument - do a signature-only comparision.
1582
1583         * loader.c: Use the new _full() methods and pass the
1584         MonoGenericContainer to them.
1585
1586         * object-internals.h (MonoReflectionTypeBuilder): Added
1587         `MonoGenericContainer *generic_container' field.
1588         (MonoReflectionMethodBuilder): Likewise.
1589
1590 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1591
1592         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1593         case initial images of dynamic assemblies.
1594
1595         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1596
1597         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1598
1599         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1600         length of event->other array.
1601         (typebuilder_setup_events): Ditto.
1602
1603         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1604         'assembly_by_name' and add an 'assemblies' list.
1605
1606         * assembly.h assembly.c: Add a new search hook for determining whenever
1607         an assembly is already loaded. Use this instead of searching in the
1608         loaded_assemblies list.
1609
1610         * domain.c appdomain.c: Implement the new search hook so loaded 
1611         assemblies are now scoped by appdomain. Fixes #67727.
1612
1613 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1614
1615         * threads.c (mono_thread_attach): Initialize synch_lock field so
1616         mono_thread_detach works again.
1617
1618         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1619         'lib' too. Fixes #63130.
1620
1621 2004-10-06  Jackson Harper  <jackson@ximian.com>
1622
1623         * culture-info-tables.h: regenerated.
1624
1625 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1626
1627         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1628         implemented by other interfaces in the result. Fixes #65764.
1629         
1630         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1631         Handle unloadable modules without crashing.
1632
1633         * image.c (load_modules): Revert the previous patch since modules must
1634         have a fixed index inside the array.
1635         
1636         * image.c (load_modules): Don't include native modules in the modules
1637         array.
1638
1639 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1640
1641         * reflection.h: Add param_defaults field.
1642
1643         * reflection.c: Add support for parameter defaults in dynamic methods.
1644         Fixes #64595.
1645
1646         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1647         an empty string when a type has no namespace. Fixes #64230.
1648
1649 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1650
1651         * tabledefs.h: Added "internal" security actions to support non-CAS
1652         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1653         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1654
1655 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1656
1657         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1658         constructor of abstract class. Fixes #61689.
1659
1660 2004-10-04  Martin Baulig  <martin@ximian.com>
1661
1662         * class-internals.h (MonoGenericContainer): New type.
1663         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1664         `MonoGenericContainer *generic_container'.
1665         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1666         `MonoGenericContainer *generic_container'.
1667
1668         * metadata.c (mono_metadata_load_generic_params): Return a
1669         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1670         removed the `num' argument.
1671
1672 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1673
1674         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1675         for dynamic images.
1676
1677         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1678         machine fields.
1679
1680         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1681
1682         * reflection.c: Save pe_kind and machine values into the generated
1683         image file.
1684
1685         * appdomain.c: Bump corlib version number.
1686
1687         * object-internals.h: Reorganize layout of LocalBuilder.
1688
1689         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1690         New helper function.
1691
1692         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1693         created MonoType for dynamic types. Fixes #66180.
1694
1695 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1696
1697         * threadpool.c: the ares hashtable needs a critical section around it.
1698         this prevents some nasty segfaults
1699
1700 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1701
1702         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1703         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1704         bug 67324).
1705         
1706 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1707
1708         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1709         
1710 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1711
1712         * image.c: Always canonicalize image file names, to avoid loading
1713         the same assembly twice when referenced using a relative path.
1714
1715 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1716
1717         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1718
1719         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1720
1721         * marshal.c: Fix warnings.
1722
1723 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1724
1725         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1726         attempting to marshal the delegate_trampoline as the method_addr.
1727         This patch has a static hashtable of marshalled delegates so that 
1728         we can map delegate_trampoline addresses back to delegates.  This
1729         allows a delegate passed to managed code to be passed back into native
1730         code.  Fixes #67039
1731
1732 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1733
1734         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1735
1736         * reflection.c (method_encode_code): Align method headers properly.
1737         Fixes #66025.
1738
1739 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1740
1741         * marshal.c: In the runtime invoke wrapper, reset the abort
1742         exception if it is cached. This avoids the automatic rethrowal of 
1743         the exception after the catch of the wrapper. Also check for pending
1744         interruptions before calling the managed method. This is done using
1745         the new method emit_thread_force_interrupt_checkpoint, since the
1746         normal checkpoint method is ignored when running the invoke wrapper.
1747         * object.c: If the abort exception is rethrown, set the abort_exc
1748         field of the thread, so it will be rethrown aftere every catch.
1749         * threadpool.c: Only run an interruption checkpoint if what has been
1750         requested is a stop of the thread (aborts will be ignored).
1751         * threads.c: By default, a thread will now never be interrumped while
1752         running the runtime invoke wrapper (this ensures that runtime_invoke
1753         will always return to the caller if an exception pointer is provided).
1754         There is a new special method mono_thread_force_interruption_checkpoint()
1755         to force an interruption checkpoint even if running a protected
1756         wrapper, which is used by the same runtime invoke wrapper to do a check
1757         at a safe point.
1758
1759 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1760
1761         * object.c, object-internals.h: Implemented mono_release_type_locks,
1762         which releases the cctor locks held by a thread.
1763         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1764         by a thread. Added mono_thread_exit() method to be used to safely stop
1765         a thread.
1766
1767 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1768
1769         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1770         Move null check before dereference.  Avoid indexing beyond the end
1771         of the 'modules' array.
1772
1773 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1774
1775         * metadata-internals.h (MonoImage): Add module_count field.
1776         * image.c (load_modules): Set image->module_count.
1777         (mono_image_load_file_for_image): Use image->module_count.
1778         * reflection.c (mono_image_load_module): Append to image->modules array 
1779         of dynamic assembly.
1780         (mono_module_get_object): Fix loop to actually increment index.
1781         Use image->module_count.
1782         * assembly.c (mono_assembly_load_references): Use image->module_count.
1783         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1784         Likewise.
1785
1786 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1787
1788         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1789         Avoid assert on generic types.
1790
1791 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1792
1793         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1794
1795         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1796
1797         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1798         function to convert a MarshalSpec structure to its managed counterpart.
1799
1800         * reflection.c: Fix warnings.
1801         
1802         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1803         field.
1804
1805         * icall.c (mono_create_icall_signature): Fix build.
1806
1807 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1808
1809         * icall.c: Add MakePointType icall.
1810
1811         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1812         warnings.
1813
1814 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1815
1816         * threadpool.c: reuse allocated slots in the queue.
1817
1818 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1819
1820         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1821
1822         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1823
1824         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1825         previous change.
1826
1827         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1828         ThrowOnUnmappableChar.
1829
1830         * icall.c (ves_icall_Type_GetPacking): New icall.
1831
1832 2004-09-24  Martin Baulig  <martin@ximian.com>
1833
1834         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1835
1836 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1837
1838         * appdomain.c:
1839         (mono_domain_set): allow setting a domain that is being unloaded.
1840         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1841         being unloaded.
1842
1843 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1844
1845         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1846         the GetCustomAttributes icall.
1847
1848 2004-09-23  Martin Baulig  <martin@ximian.com>
1849
1850         * object-internals.h (MonoReflectionGenericParam): Replaced
1851         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1852         with `guint32 attrs'.
1853
1854 2004-09-23  Martin Baulig  <martin@ximian.com>
1855
1856         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1857
1858 2004-09-23  Martin Baulig  <martin@ximian.com>
1859
1860         * object-internals.h (GenericParameterAttributes): New enum.
1861
1862 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1863
1864         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1865         
1866         * class.c (init_events): Fill out event->other field.
1867
1868         * class.c: Fix warnings.
1869
1870         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1871
1872 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1873
1874         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1875         walk which doesn't supply the IL offset.
1876
1877 2004-09-22  Martin Baulig  <martin@ximian.com>
1878
1879         * reflection.c (mono_reflection_setup_internal_class): If we're
1880         System.ValueType, System.Object or System.Enum, set
1881         `klass->instance_size' and create the vtable.
1882         (mono_reflection_create_internal_class): If we're an enum type,
1883         get the base class from our current corlib.
1884
1885 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1886
1887         * reflection.h (MonoResolveTokenError): New type.
1888
1889         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1890         icall.
1891
1892         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1893
1894 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1895
1896         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1897         Support also calling constructors, but only for already allocated objects.
1898
1899 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1900
1901         * reflection.c (type_get_qualified_name): If the klass is null
1902         return the typename to avoid a NullRefEx.
1903         (encode_cattr_value): Get the qualified name of the boxed type,
1904         not the underlying enumtype.  Fixes #62984.
1905
1906 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1907
1908         * marshal.c: Fix problems with previous checkin.
1909
1910 2004-09-21    <vargaz@freemail.hu>
1911
1912         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1913         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1914
1915         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1916
1917 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1918
1919         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1920         should only return a type for pointers, arrays, and passbyref types.
1921         Fixes bug #63841.
1922
1923 2004-09-21  Martin Baulig  <martin@ximian.com>
1924
1925         * domain.c (mono_debugger_check_runtime_version): New public
1926         function.
1927
1928         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1929
1930 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1931
1932         * reflection.c: Added missing sort to the declarative security 
1933         attributes table. MS implementation stops seeing the attributes if the
1934         token number regress in the table (as shown by ildasm and permview).
1935
1936 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1937
1938         * object-internals.h (MonoReflectionModule): Add 'token' field.
1939         
1940         * reflection.c (mono_reflection_get_token): Add support for Module
1941         and Assembly.
1942         (mono_module_get_object): Set 'token' field.
1943         (mono_module_file_get_object): Set 'token' field.
1944
1945         * icall.c: Add new Assembly and Module icalls.
1946
1947         * appdomain.c: Bump corlib version.
1948
1949 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1950
1951         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1952         tokens of metadata objects.
1953
1954         * reflection.h reflection.c (mono_reflection_get_token): New function
1955         to obtain the token of a metadata object.
1956
1957         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1958
1959 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1960
1961         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1962         
1963         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1964
1965 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1966
1967         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1968         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1969         AssemblyBuilder to access the permissions set in the class lib.
1970         * reflection.c: Added security attributes encoding step in 
1971         mono_image_build_metadata.
1972         * tabledefs.h: Added new security actions defined in 2.0:
1973         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1974
1975 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1976
1977         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1978         macro parameter.
1979
1980 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1981  
1982         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1983           finalized. There where random SIGSEVs at program termination, when
1984           an object being finalized was trying to do a string comparison and
1985           the current culture was already finalized.
1986  
1987 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1988
1989         * threads.c: call thread_cleanup before finishing the thread if we get
1990         there.
1991
1992 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1993
1994         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1995         assemblies from the parent. Fixes #65665.
1996
1997 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1998
1999         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
2000         modifiers.
2001
2002 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
2003
2004         * reflection.h: add prototype for mono_get_dbnull_object
2005         * reflection.c: add prototypes for get_default_param_value_blobs 
2006         and mono_get_object_from_blob for fussier compilers
2007
2008 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
2009  
2010         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
2011         false deadlock checks in class initialization.
2012  
2013 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
2014
2015         * image.c (mono_image_addref): Fix comment.
2016
2017         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
2018         possible.
2019
2020 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
2021
2022         * reflection.c (mono_param_get_objects): Modified to return
2023         ParameterInfo.DefaultValue object.
2024
2025         (get_default_param_value_blobs):
2026         (mono_get_object_from_blob):
2027         (mono_get_dbnull_object): New helper routines. 
2028
2029         * object.c (mono_get_constant_value_from_blob): New helper routine
2030         carved out from get_default_field_value ()
2031
2032         * object-internals.h (mono_get_constant_value_from_blob): Added
2033         function declaration.
2034
2035 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
2036
2037         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
2038         referenced assemblies. Fixes #62135.
2039
2040         * exception.h exception.c (mono_get_exception_file_not_found2): New
2041         helper function.
2042
2043 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
2044
2045         * class.h class.c: Add mono_type_get_underlying_type ().
2046
2047 2004-09-09  Geoff Norton <gnorton@customerndna.com>
2048
2049         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
2050         Fix GetTypes() to support dynamically created assemblies.
2051
2052 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
2053
2054         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
2055         
2056         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
2057         previous patch.
2058
2059         * reflection.h reflection.c loader.c: Allow dynamic construction of
2060         pinvoke methods. Fixes #65571.
2061         
2062         * reflection.c (mono_reflection_get_type): Revert previous change since
2063         it causes regressions.
2064
2065 2004-09-08  Martin Baulig  <martin@ximian.com>
2066
2067         * class.c (class_compute_field_layout): Don't call
2068         mono_class_layout_fields() for open generic instances.
2069
2070 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
2071         * threads.c appdomain.c: fix typo in GC macro
2072
2073 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2074
2075         * threads.c: don't call mono_thread_detach() in start_wrapper(),
2076         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
2077
2078 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
2079
2080         * image.c (mono_image_close): Applied patch from 
2081         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
2082         assembly is loaded multiple times from data.
2083         
2084         * image.c (mono_image_open): Fix warning.
2085
2086 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2087
2088         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
2089         once. Fixes #58334.
2090         
2091         * reflection.c (mono_reflection_create_runtime_class): Initialize
2092         klass->nested_classes. Fixes #61224.
2093
2094 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2095
2096         * threads.c: sched_yield() on exit, to allow threads to quit.
2097
2098 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2099
2100         * object.c (mono_unhandled_exception): Remove leftover debug code.
2101
2102 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2103
2104         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
2105
2106 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2107
2108         * marshal.c (emit_marshal_array): Really null terminate string arrays.
2109         
2110         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
2111
2112 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2113
2114         * marshal.c (emit_marshal_array): Null terminate string arrays.
2115         
2116         * marshal.c (raise_auto_layout_exception): Fix warning.
2117
2118         * reflection.c (mono_param_get_objects): Initialize the default value
2119         with DBNull.Value, not null. Fixes #62123.
2120
2121 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
2122
2123         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
2124         throw an exception with a cute explanation.
2125
2126 2004-09-06  Dick Porter  <dick@ximian.com>
2127
2128         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
2129         Close the new process's thread handle, as we don't use it.  The
2130         handle stays around forever otherwise.
2131
2132 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2133
2134         * object.c (arith_overflow): Fix warning.
2135
2136         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
2137         calling conventions in method refs. Fixes #65352.
2138
2139         * reflection.c: Fix warnings.
2140
2141 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2142
2143         * icall.c: Add a new icall for Array.Clear
2144
2145 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2146
2147         * object.c: When allocating an array, we have to throw
2148         an overflow exception if any of the lengths are < 0.
2149
2150 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2151
2152         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
2153         properly. Also move implementation of string array marshalling to 
2154         managed code. Fixes #42316.
2155
2156 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2157
2158         * assembly.c: provide more information when loading an assembly fails.
2159
2160 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2161
2162         * filewatcher.c: don't expect the development fam package to be
2163         installed.
2164
2165 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
2166
2167         * marshal.c: Make a copy of the signature cookie since it will be
2168         freed by the caller.
2169         
2170         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
2171
2172         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
2173
2174         * metadata.c (mono_metadata_free_marshal_spec): New function to free
2175         marshal specs.
2176
2177         * marshal.c: More refactoring.
2178         
2179         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
2180         smaller functions.
2181
2182 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
2183
2184         * object.c: In mono_message_invoke, fill the output parameter array after
2185           calling the managed method (it was done before the call). This fixes
2186           bug #59299.
2187
2188 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2189
2190         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
2191         as well.
2192
2193 2004-09-02  Martin Baulig  <martin@ximian.com>
2194
2195         * class.c (mono_class_instance_size): Don't allow generic type
2196         definitions or open generic instances.
2197         (mono_class_array_element_size): If we're a value type, call
2198         mono_class_instance_size() on the original class.
2199
2200         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
2201         handle generic instances.
2202
2203         * mono-debug-debugger.c (write_type): Handle generic instances
2204         like classes.
2205
2206 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2207
2208         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
2209         the allocation request fails. Fixes #65089.
2210
2211         * object.c (mono_runtime_free_method): Do not call mono_free_method.
2212         
2213         * object.c (mono_runtime_free_method): New function to free a dynamic
2214         method.
2215
2216         * marshal.c (mono_delegate_free_ftnptr): New function to free the
2217         delegate trampoline.
2218
2219         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
2220         with hasthis as dynamic,
2221
2222         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
2223
2224         * domain.c (mono_jit_info_table_remove): New function to remove an
2225         entry from the jit info table.
2226
2227         * class-internals.h (MonoMethod): Add 'dynamic' field.
2228
2229         * loader.c: Fix warnings.
2230
2231 2004-09-01  Martin Baulig  <martin@ximian.com>
2232
2233         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
2234         instead of mono_debugger_lock() because the latter one is a no-op
2235         unless running in the debugger.
2236
2237 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2238
2239         * class.c (class_compute_field_layout): Classes with auto-layout or
2240         reference fields are not blittable.
2241         
2242 2004-09-01  Dick Porter  <dick@ximian.com>
2243
2244         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
2245         mono_image_get_filename() to get the assembly location.
2246
2247         * icall.c:
2248         * metadata.h: Fix compile warnings
2249
2250 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2251
2252         * class.c (class_compute_field_layout): System.Object is blittable.
2253
2254         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2255         as in/out. Fixes #59909.
2256
2257 2004-09-01  Martin Baulig  <martin@ximian.com>
2258
2259         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2260         mono_metadata_generic_inst_is_valuetype() if we're a generic
2261         instance to check whether our underlying type is a reference type.
2262
2263 2004-09-01  Martin Baulig  <martin@ximian.com>
2264
2265         * metadata.c (mono_type_size): If we're a generic instance, call
2266         mono_class_value_size() for value types.
2267
2268 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2269
2270         * marshal.c: Implement more custom marshalling functionality. Fixes
2271         #64915.
2272
2273 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2274
2275         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2276
2277 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2278
2279         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2280
2281         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2282
2283         * icall.c: Fix some warnings.
2284
2285         * threads.c (abort_appdomain_thread): Fix unref errors.
2286         (mono_thread_current): Fix THREAD_DEBUG define.
2287
2288 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2289
2290         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2291
2292         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2293
2294 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2295
2296         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2297         string arrays.
2298
2299 2004-08-28  Martin Baulig  <martin@ximian.com>
2300
2301         * metadata.c
2302         (mono_metadata_generic_inst_is_valuetype): New public function.
2303
2304         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2305         mono_metadata_generic_inst_is_valuetype() if we're a generic
2306         instance to check whether our underlying type is a valuetype.
2307
2308 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2309
2310         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2311         #63768.
2312
2313 2004-08-25  Martin Baulig  <martin@ximian.com>
2314
2315         * loader.c (mono_get_method_from_token): Abstract methods can also
2316         be generic and thus have type parameters.
2317
2318         * metadata-internals.h
2319         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2320
2321         * reflection.c (mono_image_get_generic_param_info): Don't create a
2322         metadata row, just add an entry to the `gen_params' array.
2323         (build_compressed_metadata): Sort the `gen_params' array and then
2324         actually create the metadata.
2325
2326 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2327
2328         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2329
2330 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2331
2332         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2333
2334 2004-08-24  Martin Baulig  <martin@ximian.com>
2335
2336         * class.cs (mono_class_is_subclass_of): Like an interface, a
2337         generic instance also derives from System.Object.
2338
2339 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2340
2341         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2342         custom modifiers to be in any order. Fixes #61990.
2343
2344 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2345
2346         * object.c: Register mono_object_new_fast icall.
2347         
2348         * object.c (mono_class_get_allocation_ftn): Return to calling
2349         mono_object_new_fast, since it seems faster to compute the object 
2350         size in unmanaged code than passing it as a parameter.
2351
2352         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2353
2354         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2355         this function with Boehm as the oom handler, so we don't have to check
2356         the result of GC_malloc.
2357
2358         * object.c: Remove checks for oom.
2359
2360         * object.h object.c (mono_class_get_allocation_ftn): New function to
2361         return the icall which can be used to allocate an instance of a given
2362         class. 
2363
2364         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2365
2366         * class-internals.h: Add 'enabled' field.
2367
2368 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2369
2370         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2371
2372 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2373         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2374         value 0x0010.
2375
2376 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2377
2378         * appdomain.c: use the Tls function for appdomain too,
2379         at Zoltan's request. Actually return in mono_context_get
2380
2381         * appdomain.c, profiler.c, threads.c: use __thread
2382
2383 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2384
2385         * appdomain.c threads.c: Call GC_CreateThread on windows.
2386
2387         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2388         multiple libraries since this don't work on windows.
2389
2390 2004-08-18  Martin Baulig  <martin@ximian.com>
2391
2392         * class-internals.h
2393         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2394         MonoMethodHeader.
2395
2396         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2397         MonoMethodNormal since we also need it for abstract and interface
2398         methods.
2399
2400         * reflection.c
2401         (build_compressed_metadata): Sort the GenericParam table.
2402         (mono_image_create_token): Added `gboolean create_methodspec'
2403         argument; this is false when generating a MethodImpl token.
2404         (reflection_methodbuilder_to_mono_method): Abstract and interface
2405         methods may also have generic parameters.
2406
2407 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2408
2409         * appdomain.c: thread local alloc
2410
2411 2004-08-17  Martin Baulig  <martin@ximian.com>
2412
2413         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2414
2415         * icall.c
2416         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2417         argument.
2418
2419         * class.c (mono_type_get_full_name): New public function.
2420         (mono_type_get_name): Don't include the type arguments.
2421
2422 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2423
2424         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2425         for inclusion into the mono executable.
2426
2427 2004-08-16  Martin Baulig  <martin@ximian.com>
2428
2429         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2430         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2431
2432 2004-08-14  Martin Baulig  <martin@ximian.com>
2433
2434         * class.c (dup_type): Also copy the `byref' field.
2435
2436 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2437
2438         * reflection.c (create_dynamic_mono_image): Revert the last change 
2439         since it breaks bootstrap.
2440
2441 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2442
2443         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2444
2445         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2446         not free them with g_free.
2447
2448 2004-08-11  Martin Baulig  <martin@ximian.com>
2449
2450         * reflection.c (mono_reflection_setup_internal_class): Also call
2451         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2452
2453 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2454
2455         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2456         called during default (first) AppDomain creation. Keep track of
2457         Evidence when loading assemblies.
2458
2459 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2460
2461         * opcodes.c, opcodes.h: reduce runtime relocations.
2462
2463 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2464
2465         * culture-info.h, locales.c: fixes and chages to sue the new
2466         optimized format of the locale data.
2467         * culture-info-tables.h: regenerated.
2468
2469 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2470         
2471         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2472
2473 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2474
2475         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2476         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2477         * domain-internals.h: icall declaration.
2478         * icall.c: icall registration.
2479         * object-internals.h: New fields in MonoAssembly for CAS.
2480
2481 2004-08-05  Duncan Mak  <duncan@ximian.com>
2482
2483         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2484         CEE_LDELEM_ANY.
2485
2486 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2487
2488         * reflection.c: fix to deal with object[] arrays in custom ctors
2489         (bug #62550).
2490
2491 2004-08-05  Martin Baulig  <martin@ximian.com>
2492
2493         * class.c (mono_class_array_element_size): Added support for
2494         generic instances and correctly handle "recursive" types.
2495
2496 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2497
2498         * assembly.c: Fix warnings.
2499
2500 2004-08-04  Martin Baulig  <martin@ximian.com>
2501
2502         * class.c
2503         (mono_type_get_name_recurse): Added `gboolean include_arity'
2504         argument specifying whether or not we should include the generic
2505         arity in the type name.
2506         (_mono_type_get_name): New static function.
2507         (mono_class_setup_vtable): If we're a generic instance, don't
2508         include the generic arity in the names of explicit method
2509         implementations.        
2510
2511 2004-08-03  Martin Baulig  <martin@ximian.com>
2512
2513         * class.c (mono_type_get_name_recurse): Enclose the generic type
2514         arguments in `<', '>'.
2515
2516 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2517
2518         * gc.c: make GC warning messages use the trace API, they are just
2519         noise to most of the users.
2520
2521 2004-08-03  Martin Baulig  <martin@ximian.com>
2522
2523         * debug-mono-symfile.c (read_string): Correctly read the string.
2524
2525 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2526
2527         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2528         
2529         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2530         icalls.
2531         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2532
2533 2004-07-30  Martin Baulig  <martin@ximian.com>
2534
2535         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2536         Reflect latest symbol writer changes.   
2537
2538 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2539
2540         * object.c: always create an object if null is passed
2541         to Invoke() where a valuetype is expected.
2542
2543 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2544
2545         * marshal.c (mono_marshal_init): make managed
2546         signatures match native ones better for 64bits.
2547
2548 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2549
2550         * appdomain.c: hack to build correctly the private bin path on windows.
2551         Fixes bug #61991.
2552
2553 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2554
2555         * assembly.c: Load mscorlib from the correct framework directory
2556           (mono/<version>/mscorlib.dll).
2557         * appdomain.h: Added prototypes for new functions.
2558         * internals.h: Added some prototypes.
2559         * domain.c: When initializing the runtime, get from the executable and
2560           the configuration files the runtime version that the app supports.
2561           Added support methods for reading app.exe.config. Added list of versions
2562           supported by the JIT. Added two new methods: mono_init_from_assembly,
2563           which initializes the runtime and determines the required version from
2564           the provided exe file, and mono_init_version, which initializes
2565           the runtime using the provided version.
2566         * icall.c: Get machine.config from version-specific directory.
2567         * reflection.c: When generating an image, embed the version number
2568           of the current runtime.
2569
2570 2004-07-28  Dick Porter  <dick@ximian.com>
2571
2572         * socket-io.c
2573         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2574         returned sockaddr size before creating the remote address object.
2575         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2576         61608.
2577
2578 2004-07-28  Dick Porter  <dick@ximian.com>
2579
2580         * locales.c (string_invariant_compare_char): Fix invariant char
2581         compares between upper and lower cases.  Fixes bug 61458.
2582
2583 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2584         
2585         * marshal.c: actually cache stelem.ref wrappers.
2586         
2587 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2588
2589         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2590         sections and remove the mono_cli_rva_map () function.
2591
2592 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2593
2594         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2595         by Geoff Norton (<gnorton@customerdna.com>).
2596
2597 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2598
2599         * class.c: fix class loads for pointer types (typeof(int) !=
2600         typeof(int*)).
2601
2602 2004-07-27  Martin Baulig  <martin@ximian.com>
2603
2604         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2605         reading the debugging information from an external ".mdb" file.
2606
2607 2004-07-24  Martin Baulig  <martin@ximian.com>
2608
2609         * reflection.c (mono_image_get_type_info): Only write a class
2610         layout entry if we actually have a size or a packing size.
2611
2612 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2613
2614         * reflection.c (type_get_fully_qualified_name): 
2615         insert cast to get type checking of ?: with non-gcc compilers
2616
2617 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2618
2619         * rand.c: use g_getenv for both lookups of
2620         MONO_EGD_SOCKET
2621
2622 2004-07-17  Martin Baulig  <martin@ximian.com>
2623
2624         * reflection.c (mono_reflection_bind_generic_method_parameters):
2625         Set `gmethod->reflection_info'.
2626
2627 2004-07-17  Martin Baulig  <martin@ximian.com>
2628
2629         * class.c (mono_class_create_from_typedef): Insert the newly
2630         created class into the hash table before computing the interfaces
2631         since we could be called recursively.
2632
2633 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2634
2635         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2636         function to implement stelem.ref in managed code
2637         * class-internals.h, debug-helpers.c: a new wrapper type
2638         for the above.
2639
2640 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2641
2642         * gc.c: allow GC handles to work even when no GC is compiled in.
2643         Fix part of bug #61134 (GetAddrOfPinnedObject).
2644
2645 2004-07-13  Peter Williams  <peter@newton.cx>
2646  
2647         * process.c (complete_path): Make sure we don't attempt to execute
2648         directories.
2649  
2650 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2651
2652         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2653           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2654           and will add/subtract the hour if needed
2655
2656 2004-07-12  Martin Baulig  <martin@ximian.com>
2657
2658         * reflection.c (mono_field_get_object): If we have
2659         `field->generic_info', take the attributes from
2660         `field->generic_info->generic_type'.    
2661
2662 2004-07-12  Martin Baulig  <martin@ximian.com>
2663
2664         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2665         This function must be called before initializing the runtime.
2666         (mono_debug_init_1): New function; call this after initializing
2667         the runtime, but before loading the assembly.  It tells the
2668         debugger to load corlib and the builtin types.
2669
2670         * mono-debug-debugger.c: Did some larger changes in the debugging
2671         code; support recursive class declarations, make sure we actually
2672         add all classes.
2673
2674 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2675
2676         * debug-helpers.c: undo my previous patch and fixed the real issue in
2677         ../mini/exceptions-x86.c
2678
2679 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2680
2681         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2682         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2683         called from other .cctors.
2684
2685 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2686
2687         * loader.c: Removed the mono_loader_wine_init hack now that we are
2688         doing a managed version of Windows.Forms.
2689
2690 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2691
2692         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2693         threadpool.c, threads.c: remove static data from rootset.
2694
2695 2004-07-09  Dick Porter  <dick@ximian.com>
2696
2697         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2698         Don't do any more processing if the matched length was 0.  It was
2699         increasing the size of the string before.  Fixes bug 61167.
2700
2701 2004-07-09  Dick Porter  <dick@ximian.com>
2702
2703         * socket-io.h:
2704         * socket-io.c
2705         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2706         Add support for SO_PEERCRED if its available.
2707
2708 2004-07-09  Peter Bartok <pbartok@novell.com>
2709         * loader.c: winelib.exe.so error message is now only displayed if
2710         MONO_DEBUG is set. To help us avoid questions when people are trying
2711         out the new Managed.Windows.Forms.
2712
2713 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2714
2715         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2716         for isinst and castclass wrappers.
2717
2718         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2719         to libmetadata from the JIT, so they could be used by the marshalling
2720         code and the interpreter.
2721
2722         * marshal.c: Register marshalling related JIT icalls here instead of
2723         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2724         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2725
2726         * metadata.h: Remove unneeded marshalling conversions.
2727
2728         * opcodes.c: Update for new opcodes.
2729         
2730 2004-07-08  Martin Baulig  <martin@ximian.com>
2731
2732         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2733         (mono_debug_get_domain_data): Make this function static.
2734
2735 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2736
2737         * gc.c, object.h: add nice GC handle API for embedders.
2738
2739 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2740
2741         * reflection.c: more changes for the new api
2742
2743         * object.c: When we reflect on a field w/ a constant value, it
2744         will not have a memory location, so we must access metadata. Also,
2745         allow easier reading of strings so that we can read them from
2746         the constant data.
2747
2748         * class.c (mono_class_layout_fields): no need for literal fields here.
2749
2750         * class-internals.h: api changes for const fields
2751
2752         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2753
2754 2004-07-06  Martin Baulig  <martin@ximian.com>
2755
2756         * mono-debug.h: Increment version number to 44.
2757
2758         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2759         now a gpointer, rewrote this whole method.
2760
2761         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2762         function.  Add information about the wrapper in a new "misc table".
2763
2764         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2765         for the new misc table.
2766
2767 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2768
2769         * metadata-internals.h image.c: Add a cache for helper signatures.
2770
2771         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2772
2773 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2774
2775         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2776         delegates from a delegate. Fixes #61033.
2777         
2778         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2779         marshalling of stringbuilder arrays. Fixes #59900.
2780
2781 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2782
2783         * icall.c: Add EnumBuilder:setup_enum_type icall.
2784
2785 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2786
2787         * icall.c: Added a new icall for the property version of
2788         OffsetOfStringData.
2789
2790 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2791
2792         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2793         it has a constant size across platforms.
2794
2795         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2796         stack trace.
2797
2798 2004-06-29  Martin Baulig  <martin@ximian.com>
2799
2800         * mono-debug.c (mono_debug_add_method): Protect the whole function
2801         in mono_debugger_lock(), not just parts of it.
2802
2803 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2804
2805         * reflection.c: make sure padding bytes in heaps are zeroed.
2806
2807 2004-06-24  David Waite  <mass@akuma.org>
2808
2809         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2810         image.c, loader.c, locales.c, marshal.c, metadata.c,
2811         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2812         string-icalls.c, threads.c: change to C90-style comments from C99 /
2813         C++ -style
2814
2815 2004-06-24  Dick Porter  <dick@ximian.com>
2816
2817         * threads.c
2818         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2819         return createdNew.  Fixes bug 60412.
2820
2821         * threads-types.h: 
2822         * icall.c: Add createdNew parameter to CreateMutex icall
2823
2824 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2825
2826         * reflection.c, object-internals.h: save default value in params.
2827
2828 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2829
2830         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2831         no need to build a new path combining that with the application base.
2832         Fixes bug #60442.
2833
2834 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2835
2836         * reflection.c: fixed minor standard compliance issues.
2837
2838 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2839
2840         * reflection.c: fixed issue with encoding some custom attributes
2841         (arrays in properties and fields, bug #60411).
2842
2843 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2844
2845         * reflection.c: fix start address when copying the public key token.
2846
2847 2004-06-23  Martin Baulig  <martin@ximian.com>
2848
2849         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2850         the `exc' object in a static object to put it into the GC's root set.
2851
2852 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2853
2854         * reflection.c: make mono_reflection_setup_internal_class ()
2855         callable a second time to setup a new parent class.
2856
2857 2004-06-23  Dick Porter  <dick@ximian.com>
2858
2859         * threads.c: Check for WAIT_IO_COMPLETION return values.
2860
2861 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2862
2863         * appdomain.c: Removed the g_free on the public key token. Now copy 
2864         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2865         * assembly.c: Added public key token string value when loading 
2866         assemblies. Fix bug #60439.
2867         * icall.c: Added missing informations (like public key) in 
2868         GetReferencedAssemblies. Fix #60519.
2869         * image.h: Changed definition for public key token from const char*
2870         public_tok_value to guchar public_key_token [17];
2871         * reflection.c: Updated for changes to public key token.
2872
2873 2004-06-22  Lluis Sanchez Gual
2874
2875         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2876         for the field in base classes.
2877
2878 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2879
2880         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2881         mark headers as not supported, they are installed only for use by the
2882         debugger.
2883
2884 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2885
2886         * *.c, *.h: avoid namespace pollution in public headers.
2887
2888 2004-06-21  Martin Baulig  <martin@ximian.com>
2889
2890         * exception.c (mono_get_exception_security): It's in
2891         "System.Security", not in "System".
2892
2893         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2894         the exception classes.
2895
2896 2004-06-21  Martin Baulig  <martin@ximian.com>
2897
2898         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2899         Protect the exception object from being finalized.
2900
2901 2004-06-21  Martin Baulig  <martin@ximian.com>
2902
2903         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2904         public function.
2905
2906 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2907
2908         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2909         if it was not loaded before. Fix parts of #60439.
2910
2911 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2912
2913         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2914         code that was broken since Ben's change: wrappers are now
2915         dependent on the method signature only again.
2916
2917 2004-06-21  Martin Baulig  <martin@ximian.com>
2918
2919         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2920         added interface support.
2921
2922 2004-06-21  Martin Baulig  <martin@ximian.com>
2923
2924         * class.c (mono_vtable_get_static_field_data): New public method.
2925
2926 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2927
2928         * filewatcher.c : Windows build fix to be compliant with API changes.
2929
2930 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2931
2932         * class.h, class.c: more accessors.
2933         * metadata.h, metadata.c: prepare for hiding MonoType and
2934         MonoMethodSignature: people should use the accessors from now on
2935         outside of the tree.
2936
2937 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2938
2939         * *.c, *.h: more API cleanups.
2940
2941 2004-06-18  Jackson Harper  <jackson@ximian.com>
2942
2943         * assembly.c: Trace loading assemblies.
2944         * loader.c: Trace loading native libraries.
2945         * mono-config.c: Trace loading config files.
2946         
2947 2004-06-18  Dick Porter  <dick@ximian.com>
2948
2949         * locales.c: Tell ICU the lengths of strings, it can cope with
2950         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2951
2952 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2953
2954         * image.c: swapped name/filename;
2955
2956 2004-06-18  Martin Baulig  <martin@ximian.com>
2957
2958         * mono-debug-debugger.c (write_class): Write the parent class at
2959         the end of the header.
2960
2961 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2962
2963         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2964
2965 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2966
2967         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2968         (bundle_obj): New conditional define.
2969         (BUILT_SOURCES): Remove.
2970         ($(bundle_srcs)): Make parallel-make safe.
2971         (libmonoruntime_la_LIBADD): Make unconditional.
2972         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2973         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2974
2975 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2976
2977         * culture-info-tables.h: It was inconsistent with the latest
2978           supp info files.
2979
2980 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2981
2982         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2983         be loaded.
2984
2985         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2986         with gcc 2.95.
2987
2988 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2989
2990         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2991         cleaned up public header threads.h.
2992
2993 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2994
2995         * Makefile.am, *.c, *.h: more API cleanups.
2996
2997 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2998
2999         * Makefile.am: removed monosn from compilation.
3000         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
3001         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
3002         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
3003         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
3004         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
3005         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
3006
3007 2004-06-15  Jackson Harper  <jackson@ximian.com>
3008
3009         * assembly.c: Make locales lower case when searching the GAC for
3010         assemblies. gacutil will always make locales lowercase when
3011         installing so this effectively makes them case insensitive.
3012         
3013 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
3014
3015         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
3016         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
3017           parameter which allows to choose whether the wait can be interrupted or 
3018           not. Also added the method mono_monitor_enter(), which locks the monitor
3019           using an infinite wait and without allowing interruption.
3020           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
3021           interrupted.
3022         * object.h: Added new fields in MonoThread. suspend_event holds the event
3023           used to susped/resume the thread. synch_lock is the lock object to use for
3024           modifying the thread state.
3025         * threads.c: Use the new synch_lock object for locking, instead of "this",
3026           which can generate deadlocks.
3027           Moved thread state change in Thread.Sleep and Thread.Join from managed
3028           to unmanaged code. This avoids a deadlock when the thread was suspended
3029           just after acquiring the thread lock.
3030           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
3031           Implemented Thread.Suspend using an event instead of ThreadSuspend,
3032           which is not fully implemented in the io-layer.
3033         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
3034
3035 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
3036
3037         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
3038         threads-types.h: more API cleanups.
3039
3040 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
3041
3042         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
3043         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
3044         threadpool.c, threads.c: first pass at the exported API cleanup.
3045
3046 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
3047
3048         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
3049
3050 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3051
3052         * icall.c: added internalGetHome.
3053
3054 2004-06-14  Dick Porter  <dick@ximian.com>
3055
3056         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
3057         possible to return successfully when '.' or '..' were the only
3058         entries in a directory, but were skipped.  The MonoIOStat was not
3059         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
3060         Fixes bug 59574.
3061
3062 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
3063
3064         * reflection.c: make binaries run on .Net 1.1 by default.
3065
3066 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3067
3068         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
3069
3070 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
3071
3072         * marshal.c: keep track of struct size with explicit layout
3073         (bug #59979).
3074
3075 2004-06-12  Martin Baulig  <martin@ximian.com>
3076
3077         * mono-debug-debugger.c: Comment out a debugging g_message().
3078
3079 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
3080
3081         * reflection.c, reflection.h: do not free custom attrs that are cached.
3082         * icall.c: use braces to make code clearer.
3083
3084 2004-06-11  Martin Baulig  <martin@ximian.com>
3085
3086         * class.h (MonoInflatedField): New type.
3087         (MonoClassField): Replaced `MonoType *generic_type' with
3088         `MonoInflatedField *generic_info'.
3089
3090         * icall.c
3091         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
3092
3093 2004-06-11  Martin Baulig  <martin@ximian.com>
3094
3095         * reflection.c (mono_image_create_method_token): Correctly encode
3096         varargs methods.
3097
3098 2004-06-11  Martin Baulig  <martin@ximian.com>
3099
3100         * metadata.c (mono_metadata_parse_method_signature): When parsing
3101         a MethodDef which has VarArgs, also set sentinelpos if we don't
3102         have any parameters.
3103
3104 2004-06-11  Martin Baulig  <martin@ximian.com>
3105
3106         * verify.c (mono_method_verify): In CEE_CALL, use
3107         mono_method_get_signature() to get the method's signature, unless
3108         we're a PInvoke method.
3109
3110 2004-06-10  Jackson Harper  <jackson@ximian.com>
3111
3112         * assembly.c: Use <path>/lib/mono/gac for the extra paths
3113         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
3114         logical name as the supplied path is just a prefix to the gac not
3115         the direct path to it.
3116         
3117 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
3118
3119         * reflection.c: make the token for a created method match
3120         the token of the MethodBuilder it was created from
3121         (IKVM requires this behaviour now).
3122
3123 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
3124
3125         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
3126         reflection.c, socket-io.c: leak fixes.
3127
3128 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
3129
3130         * icall.c: handle sentinel pos in vararg methods in position different
3131         from 0.
3132
3133 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3134
3135         * culture-info-tables.h: freshly generated.
3136
3137 2004-06-09  Martin Baulig  <martin@ximian.com>
3138
3139         * loader.c (mono_get_method_constrained): Call `mono_class_init
3140         (constrained_class)'.   
3141
3142 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
3143
3144         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
3145         any methods. Fixes #59629.
3146
3147 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3148
3149         * culture-info-tables.h: reflecting locale-builder updates.
3150
3151 2004-06-08  Dick Porter  <dick@ximian.com>
3152
3153         * object.h:
3154         * locales.c: Fixed compile warnings, including a real bug in
3155         CompareInfo_internal_compare.
3156         
3157 2004-06-08  Dick Porter  <dick@ximian.com>
3158
3159         * locales.c
3160         (ves_icall_System_Globalization_CompareInfo_internal_index):
3161         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3162         Double-check the resuls of usearches, because ICU currently
3163         ignores most of the collator settings here.  Fixes bug 59720.
3164         
3165 2004-06-08  Dick Porter  <dick@ximian.com>
3166
3167         * locales.c
3168         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3169         Fix memory leak and segfault-causing typo.  No idea how this one
3170         lasted so long without being noticed.
3171
3172 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
3173
3174         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
3175         any methods. Fixes #59629.
3176
3177 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3178
3179         * assembly.c:
3180         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
3181         own the critical section before). Removed dead code (that's done
3182         in the preload hook).
3183
3184         (mono_assembly_load_with_partial_name): call the preload hook.
3185
3186 2004-06-08  Martin Baulig  <martin@ximian.com>
3187
3188         * metadata.c (mono_metadata_signature_alloc): Default
3189         `sentinelpos' to -1.
3190
3191         * reflection.c (mono_image_get_array_token): Likewise.
3192
3193 2004-06-08  Martin Baulig  <martin@ximian.com>
3194
3195         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
3196
3197         * metadata.c (mono_metadata_parse_method_signature): When parsing
3198         a MethodDef which has VarArgs, set sentinelpos.
3199
3200         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
3201         `gint16' since we're using -1 for non-varargs methods.
3202
3203         * reflection.c
3204         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
3205         (method_encode_signature): Added varargs support.
3206         (method_builder_encode_signature): Likewise.
3207         (mono_image_get_varargs_method_token): New static method.
3208         (mono_image_create_method_token): New public method; this is
3209         called via an icall instead of mono_image_create_token() when
3210         calling a varargs method.       
3211
3212 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
3213
3214         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
3215
3216 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3217
3218         * culture-info-tables.h : Reflecting the latest locale-builder that
3219           fixed empty array representation ({} to {0}).
3220
3221 2004-06-07  Jackson Harper  <jackson@ximian.com>
3222
3223         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
3224         looking up extra gac paths. This allows MONO_GAC_PATH to act
3225         exactly like a prefix.
3226         
3227 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3228
3229         * reflection.c (mono_reflection_type_from_name): Make a copy of the
3230         type name before modifying it. Fixes #59405.
3231
3232 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3233
3234         * culture-info.h: added fields for "all datetime patterns".
3235         * locales.c: (  ves_icall_System_Globalization_CultureInfo
3236           _construct_datetime_format ()): fill xxx_patterns fields.
3237         * object.h: added fields for "all datetime patterns" to
3238           MonoDateTimeFormatInfo.
3239         * culture-info-tables.h: reflecting locale-builder updates.
3240
3241 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3242
3243         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
3244         the event has no add and remove methods. Fixes #59629.
3245
3246 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
3247
3248         * object.c: Fixed possible integer overflow when allocating large
3249         strings.
3250
3251 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3252
3253         * culture-info-tables.h: reflecting locale-builder updates.
3254
3255 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3256
3257         * culture-info-tables.h: reflecting locale-builder updates.
3258
3259 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3260
3261         * culture-info-tables.h: reflecting locale-builder updates.
3262
3263 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3264
3265         * threads.c: Made Thread.Sleep abortable.
3266
3267 2004-06-02  Martin Baulig  <martin@ximian.com>
3268
3269         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3270
3271         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3272
3273 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3274
3275         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3276
3277 2004-05-30  Jackson Harper  <jackson@ximian.com>
3278
3279         * reflection.c: Do not hardcode assembly versions or public key
3280         tokens anymore. All of this except the corlib section was dead
3281         code anyways.
3282         
3283 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3284
3285         * object.c (mono_runtime_invoke_array): Automatically create boxed
3286         objects for byref valuetypes if needed. Fixes #59300.
3287         
3288         * object.c (mono_method_return_message_restore): Handle 
3289         MONO_TYPE_OBJECT as well.
3290
3291 2004-05-28  Jackson Harper  <jackson@ximian.com>
3292
3293         * reflection.c: The modified type encoding was causing build
3294         problems. Reverted for now.
3295         
3296 2004-05-28  Jackson Harper  <jackson@ximian.com>
3297
3298         * reflection.c/h: Take an assembly ref so that we dont create
3299         fully qualified names when encoding types in the same assembly as
3300         the custom attribute being emitted.
3301         * appdomain.c: Increment version number.
3302         
3303 2004-05-26  Duncan Mak  <duncan@ximian.com>
3304
3305         * icall.c
3306         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3307         Set the full version number (major, minor, build, revision).
3308
3309 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3310
3311         * marshal.c (emit_struct_conv): increment src/dst after blit
3312         (mono_marshal_get_managed_wrapper,
3313         mono_marshal_get_native_wrapper): make sure we have marshalling
3314         info before marshalling params (info computation affects
3315         blittable)
3316
3317         * class.c (class_compute_field_layout): correctly deal with
3318         blittable
3319         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3320         value types (as per what windows dows by default)
3321         (mono_class_setup_mono_type): System.ValueType is blittable
3322         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3323         blittable
3324
3325         * marshal.c (mono_marshal_load_type_info): flag types  as
3326         non-blittable if the native layout doesn't match the managed
3327         layout
3328
3329 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3330
3331         * appdomain.c: don't add stuff in the private search path that is
3332         above the application base. If application base is not set, there's
3333         no private search path.
3334
3335 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3336
3337         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3338         byref struct arguments in native->managed marshalling.
3339
3340 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3341
3342         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3343         cache methods using signature (special case for methods
3344         that are value type or string class)
3345         
3346         * image.c (mono_image_close): clean up allocated GSList's
3347         in runtime_invoke_cache.
3348
3349 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3350
3351         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3352         there's no MONO_CFG_DIR environment variable defined.
3353
3354 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3355
3356         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3357
3358 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3359
3360         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3361           is interrumped.
3362         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3363           before waiting for it, and call CloseHandle after the wait to unref it.
3364           This will make sure that handles are not disposed too early.
3365
3366 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3367
3368         * appdomain.c:
3369         * appdomain.h:
3370         * icall.c: removed
3371         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3372         needed now.
3373
3374         * object.c: se the application_base only for the domain that runs
3375         Main. Fixes bug #59216,
3376
3377 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3378
3379         * appdomain.c:
3380         * object.c: only the domain in which Main is run have
3381         SetupInformation.ConfigurationFile set, so moved a few lines from
3382         appdomain.c to object.c.
3383
3384 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3385
3386         * appdomain.c: we tried to load [name].(dll|exe), but according
3387         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3388         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3389         There's a test case attached to bug #58922.
3390
3391 2004-05-27  Dick Porter  <dick@ximian.com>
3392
3393         * icall.c:
3394         * file-io.c: Implemented icalls for locking and unlocking regions
3395         in a file.
3396         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3397         FALSE on error (fixes both compiler warning and real bug.)
3398
3399 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3400
3401         * culture-info-tables.h: reflecting locale-builder updates.
3402
3403           (Added missing ChangeLog entry for 05/26)
3404
3405 2004-05-27  Jackson Harper  <jackson@ximian.com>
3406
3407         * locales.c: Fix some cut and paste errors.
3408         
3409 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3410
3411         * mono-config.c: set the correct path for config. directory on windows.
3412
3413 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3414
3415         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3416           on win32.
3417
3418 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3419
3420         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3421         from pinvoke functions.
3422         
3423         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3424
3425 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3426
3427         * culture-info-tables.h: reflecting locale-builder updates.
3428
3429 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3430
3431         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3432         #59086.
3433
3434 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3435
3436         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3437         * icall.c: Modified icalls for RNG.
3438         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3439         Windows (CryptoAPI).
3440
3441 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3442
3443         * locales.c: Fix build.
3444
3445 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3446
3447         * culture-info-tables.h: reflecting locale-builder updates.
3448
3449 2004-05-25  Jackson Harper  <jackson@ximian.com>
3450
3451         * locales.c: When creating the current culture use the $LANGs
3452         specific culture. So DateTimeFormat and NumberFormat entries are created.
3453         
3454 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3455
3456         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3457         a char array as parameter.
3458
3459 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3460
3461         * image.c: In mono_image_open(), always use an absolute path name to
3462           look for already loaded images.
3463
3464 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3465
3466         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3467         missing in the windows build (like older cygwin include files).
3468
3469 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3470
3471         * icall.c: Fixed check for possible integer overflow in Buffer_
3472         BlockCopy icall. Replaced comments style // by /* */.
3473
3474 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3475
3476         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3477         
3478         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3479         check after MONO_VTADDR. Fixes pinvoke2.exe.
3480
3481         * marshal.h marshal.c metadata.h: Add beginnings of support for
3482         ftnptr -> delegate marshalling.
3483
3484 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3485
3486         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3487         * threads.c: Fix warnings.
3488
3489 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3490
3491         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3492         * icall.c: Registered icalls for Suspend and Resume.
3493         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3494           Thread.Abort.
3495         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3496         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3497         * process.c: Use WaitForSingleObjectEx.
3498         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3499           checkpoints.
3500         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3501           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3502           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3503           background threads. Added basic support for Abort in Windows.
3504           Start new threads using a managed delegate invoke wrapper. This wrapper
3505           has an interruption checkpoint that is needed since an interruption
3506           can be requested before the thread leaves the unmanaged code that starts 
3507           the thread.
3508         * marshal.c: Added interruption checkpoint after every native call, and
3509           also before managed calls for wrappers called from unmanaged code to
3510           go into managed code.
3511         * object.h: Added new field in MonoThread to keep track of interruption
3512           requests.
3513
3514 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3515
3516         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3517         calls.
3518
3519 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3520
3521         * appdomain.c:
3522         * assembly.c:
3523         * gc.c:
3524         * locales.c:
3525         * mono-config.c:
3526         * rand.c: getenv -> g_getenv (windows!)
3527
3528         * process.c: complete_path is also used on non-windows platforms.
3529
3530 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3531
3532         * icall.c: new signature for Process_Start.
3533
3534         * process.[ch]: new signature for Process_Start. If we're on windows
3535         and UseShellExecute is false, we have to search for the program by
3536         ourselves if we don't get a full path.
3537
3538 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3539
3540         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3541         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3542
3543 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3544
3545         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3546         Fixes bug #58373.
3547
3548 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3549
3550         * process.c: use double quotes to quote program name and arguments on
3551         windows. Fixes bug #58575.
3552
3553 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3554
3555         * file-io.c: don't return "." and ".." when using windows Find*File.
3556
3557 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3558
3559         * marshal.c: Don't pass wrappers to message init because method 
3560         addressed used to lookup metadata. part of remoting[2|3] fix.
3561
3562 2004-05-15  Jackson Harper  <jackson@ximian.com>
3563
3564         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3565         path is essentially the same as MONO_PATH except that it points to
3566         GACs instead of lib directories.
3567         * loader.h: The user gac is gone so we dont need function to
3568         enable/disable it.
3569         * mono-config.c: user gac option is now gone.
3570         
3571 2004-05-15  Jackson Harper  <jackson@ximian.com>
3572
3573         * culture-info.h: Make defines more consistent, add calendar data
3574         to the culture info table.
3575         * culture-info-tables.h: Add basic calendar data. Basically
3576         everyone gets default gregorian until all the data is
3577         updated.
3578         * locales.c: Use the new consistent defines. Set calendar data for
3579         culture info objects.
3580         * object.h: add a field for calendar data to CultureInfo
3581         
3582 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3583
3584         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3585         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3586         a signature.
3587         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3588         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3589         an extra param that is the pointer of the method to invoke. The IL for
3590         the invoke method is no longer specific to the method, but to the
3591         signature of the method. Thus, we can share the same code for multiple
3592         methods. This reduces the number of methods that have to be compiled.
3593
3594 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3595
3596         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3597
3598         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3599
3600         * icall.c: Optimize Buffer.BlockCopy.
3601
3602 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3603
3604         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3605         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3606         quote). Changed them to "MMMM yyyy".
3607
3608 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3609
3610         * rand.c
3611         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3612
3613 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3614
3615         * reflection.h: Updated after changes to managed structures.
3616
3617         * appdomain.c: Bump corlib version.
3618
3619 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3620
3621         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3622         windows.
3623
3624 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3625
3626         * Makefile.am: link to ../os/libmonoos.la on windows.
3627
3628         * assembly.c:
3629                 -If MONO_DEBUG, warn about non-existing directories in
3630                 MONO_PATH.
3631                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3632                 compile time variable.
3633                 -Removed init_default_path and call mono_set_rootdir from
3634                 libmonoos.a instead (windows only).
3635
3636         * assembly.h: declare mono_assembly_getrootdir().
3637
3638         * domain.c:
3639         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3640
3641         * loader.c: s/getenv/g_getenv/
3642
3643 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3644
3645         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3646
3647         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3648
3649         * metadata.h: Add new marshalling conversions.
3650
3651         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3652         function.
3653
3654         * reflection.c (mono_reflection_get_type): Lookup the type in all
3655         modules of a multi-module assembly. Fixes #58291.
3656
3657 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3658
3659         * threads.c: Before aborting a background, set the StopRequested
3660         state.  This avoids throwing the Abort exception.
3661         In mono_thread_manage, don't continue with the shutdown until all
3662         aborted threads have actually stopped.
3663
3664 2004-05-10  Jackson Harper  <jackson@ximian.com>
3665
3666         * locales.c: Remove the modifier from culture names.
3667         
3668 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3669
3670         * Makefile.am: monosn is not installed any more. It has been deprecated
3671         in favor of sn.
3672
3673 2004-05-07  Jackson Harper  <jackson@ximian.com>
3674
3675         * locales.c
3676         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3677         Fix array construction, add bailout if the length is 0.
3678
3679 2004-05-07  Dick Porter  <dick@ximian.com>
3680
3681         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3682         machine doesn't have a DNS entry.  Patch by Urs Muff
3683         (umuff@quark.com), fixes bug 57928.
3684
3685 2004-05-06  Jackson Harper  <jackson@ximian.com>
3686
3687         * reflection.c: Handle null PublicTokens properly. alloc mem for
3688         assembly names culture so we dont crash when freeing it.
3689         
3690 2004-05-06  Jackson Harper  <jackson@ximian.com>
3691
3692         * assembly.c: Check the usergac when loading with partial names.
3693         
3694 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3695
3696         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3697         does nothing for now (not required for Linux/Windows) but the class
3698         library can call it (and a newer or modified runtime could need it).
3699         * icall.c: Registred icall.
3700
3701 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3702
3703         * loader.c: prints a message on module loading error we set MONO_DEBUG
3704         environment variable.
3705
3706 2004-05-05  Jackson Harper  <jackson@ximian.com>
3707
3708         * appdomain.c: Handle PublicKeyToken=null properly.
3709         
3710 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3711
3712         * environment.c|h: Added icall ves_icall_System_Environment_
3713         GetOSVersionString to get the current OS version as a string.
3714         * icall.c: Registred icall.
3715
3716 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3717
3718         * object.c: in mono_object_get_virtual_method(), take into account that
3719         non-virtual methods don't have a slot in the vtable. Check needed when
3720         the object is a proxy.
3721
3722 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3723
3724         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3725         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3726
3727         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3728
3729         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3730         passed when a valuetype is expected.
3731
3732         * object.c (mono_unhandled_exception): Only set the exit code if the
3733         exception happens in the main thread. Fixes thread5.exe.
3734
3735         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3736         invalid names. Fixes #58047.
3737
3738 2004-05-03  Jackson Harper  <jackson@ximian.com>
3739
3740         * assembly.c: This line was committed accidently and is unneeded.
3741         
3742 2004-05-03  Jackson Harper  <jackson@ximian.com>
3743
3744         * icall.c: Add new icall for Assembly::LoadWithPartialName
3745         * assembly.c/.h: new function that probes the GAC to load partial
3746         assembly names by Paolo Molaro.
3747         
3748 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3749
3750         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3751         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3752         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3753         full type name.
3754
3755 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3756
3757         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3758         * reflection.c: fix bug when parsing a full type name and Version is not
3759         the last thing in the string.
3760
3761 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3762
3763         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3764         crashes when it is freed.
3765
3766 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3767
3768         * assembly.c: print the compat warning to stderr.
3769
3770 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3771
3772         * assembly.c (mono_assembly_load_references): Add a compatibility
3773         hack to run old applications that might be still referencing the
3774         3300-based assemblies, only do this for System.xxx.
3775
3776 2004-05-01  Jackson Harper  <jackson@ximian.com>
3777
3778         * appdomain.c: If the culture is neutral we set it to "".
3779         
3780 2004-04-29  Jackson Harper  <jackson@ximian.com>
3781
3782         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3783
3784 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3785  
3786         * string-icalls.c: added low overhead function for copying chars
3787         * icall.c: added needed icall for the above function
3788  
3789 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3790
3791         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3792         Environment.GetLogicalDrives.
3793
3794 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3795
3796         * rand.c: try and talk to egd or prngd
3797         for random bytes if opening devices fail.
3798
3799 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3800
3801         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3802         alignment for the type using the native alignment of its members 
3803         instead of using klass->min_align.
3804
3805         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3806
3807 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3808
3809         * file-io.c:
3810         * socket-io.c: added check for sys/aio.h.
3811
3812 2004-04-28  Dick Porter  <dick@ximian.com>
3813
3814         * threads.c: Don't abort a thread thats already aborting, when
3815         terminating everything.
3816
3817 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3818
3819         * icall.c: added 2 new async calls for Socket.
3820
3821         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3822         IO on *nix systems.
3823
3824         * threadpool.c: removed unused variable.
3825
3826 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3827
3828         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3829
3830 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3831
3832         * locales.c: put back string_invariant_tolower () and
3833         string_invariant_toupper ().
3834
3835 2004-04-26 David Waite <mass@akuma.org>
3836
3837         * file-io.h:
3838         * socket-io.h:
3839         * threads.h:
3840         * unicode.h: remove comma from end of enumeration declarations
3841
3842 2004-04-26 David Waite <mass@akuma.org>
3843
3844         * debug-mono-symfile.h:
3845         * decimal.c:
3846         * mono_debug.h:
3847         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3848
3849
3850 2004-04-26  Jackson Harper  <jackson@ximian.com>
3851
3852         * appdomain.c: Increment version number.
3853         
3854 2004-04-26  Jackson Harper  <jackson@ximian.com>
3855
3856         * appdomain.c: Set assembly references public token value when
3857         PublicKeyToken is specified, not the hash_value. Free public token
3858         values when free assembly name data. Previously the public key
3859         token was hex decoded, however we are using hex encoded public key
3860         tokens, so this is not neccasary.
3861         * assembly.c: Lookup assemblies in the gac if their public token
3862         value is set. Add function to allow enabling user gac
3863         lookups. Specify whether or not the assembly was loaded from the
3864         GAC. Compare full assembly names when checking the cache for
3865         assemblies (Temporarily disabled see comment in code). Remove
3866         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3867         specifies trace-loader they get extra info to stdout on the
3868         loading of assemblies.
3869         * image.h: Add a field for an assembly references public token
3870         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3871         whether an assembly has been loaded from the GAC.
3872         * image.c: Remove a corlib -> mscorlib name mapping.
3873         * loader.h: Add function to enable/disable the user gac.
3874         * mono-config.c: Check if the usergac is enabled in the config
3875         file.
3876         * icall.c: New icall to determine whether or not an assembly has
3877         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3878         * tabldefs.h: Add constant for assemblyref flag that specifies a
3879         full public key is used instead of a public token.
3880         * reflection.c: Remove mscorlib -> corlib mappings. Set
3881         PublicTokenValue instead of hash value. This value is a hex
3882         string so it does not need to be expanded.
3883
3884 2004-04-26  Martin Baulig  <martin@ximian.com>
3885
3886         * mono-debug-debugger.c (mono_debugger_initialize): Set
3887         `mono_debugger_initialized' before calling mono_debug_lock().
3888
3889 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3890
3891         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3892           InternalToUpper/InternalToLower.
3893         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3894           removed invariant culture shortcut.  This is now done in managed code.
3895         * locales.c: (string_invariant_toupper/tolower) removed.
3896
3897 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3898
3899         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3900         Added Poll internal call.
3901
3902         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3903         call for Poll. Select was too heavy for polling a single socket.
3904
3905         * threadpool.[ch]: added mono_threadpool_cleanup.
3906         * threads.c: use it. Don't use Thread_Abort on windows.
3907
3908 2004-04-23  Martin Baulig  <martin@ximian.com>
3909
3910         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3911
3912 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3913
3914         * icall.c: Registred new icalls for key pair protection and added an
3915         icall for Environment.GetFolderPath on Windows.
3916         * security.c|h: Added new icalls for key pair protection.
3917
3918 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3919
3920         * socket-io.c: don't display the non-supported family warning for known
3921         families. Now this is not displayed on windows when checking support
3922         for IPv4/IPv6.
3923
3924 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3925
3926         * class.c: don't display the layout warning for static fields.
3927
3928 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3929
3930         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3931         * locales.c, locales.h: Added new icalls for culture-specific
3932         Char.ToLower and Char.ToUpper.
3933
3934 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3935
3936         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3937         by David Waite.
3938
3939 2004-04-20  Martin Baulig  <martin@ximian.com>
3940
3941         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3942         of the type name before passing it to mono_reflection_type_from_name().
3943
3944 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3945
3946         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3947         encodings here. Fixes #56965.
3948
3949 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3950
3951         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3952         fix test on strstr result not that I can see anything that
3953         relies on the result.
3954
3955 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3956
3957         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3958         Fixes #57081.
3959
3960         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3961
3962         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3963         function to determine which marshalling to use for strings. Fixes
3964         #56965.
3965
3966         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3967
3968         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3969
3970 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3971
3972         * icall.c: #include mono-config.h
3973
3974 2004-04-15  Jackson Harper  <jackson@ximian.com>
3975
3976         * culture-info-tables.h: Fix date formats for en-US culture.
3977         
3978 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3979
3980         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3981         ThreadPool.SetMinThreads.
3982         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3983         ThreadPool.SetMinThreads.
3984
3985 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3986
3987         * mono-config.c: also load the .config file in the directory
3988         where the assembly was found.
3989
3990 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3991
3992         * assembly.c: load per-assembly config files.
3993         * icall.c: decrapified code to get the config dir and moved to
3994         mono-config.c.
3995         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3996         per-assembly config files. When doing a dll map lookup give precedence
3997         to the per-assembly data.
3998
3999 2004-04-14  Martin Baulig  <martin@ximian.com>
4000
4001         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
4002         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
4003         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
4004
4005         * mono-debugger-debugger.c: While the debugger is locked, remember
4006         whether the symbol tables have changes and send one single
4007         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
4008
4009 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
4010
4011         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
4012
4013         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
4014         function.
4015
4016         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
4017         account when marshalling string arrays. Fixes #56965.
4018
4019 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
4020
4021         * icall.c: Add new icalls mapping for security.
4022         * security.c|h: Add internal calls for WindowsIdentity,
4023         WindowsImpersonationContext and WindowsPrincipal.
4024
4025 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
4026
4027         * class.c: Added comment to ensure the System.MonoDummy class
4028         is removed when no longer necessary
4029
4030 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
4031
4032         * appdomain.c: Pass arguments to the bootstraping exceptions to
4033         minimize JITed methods at boot
4034
4035         * metadata.c (mono_exception_from_name_two_strings): Allow for the
4036         second string to be null.
4037
4038         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
4039         Change the protocol to minimize the JIT methods at startup.  Now
4040         it Returns the internal codepage, if the value of "int_code_page"
4041         is 1 at entry, and we can not compute a suitable code page
4042         number, returns the code page as a string.
4043
4044 2004-04-13  Jackson Harper  <jackson@ximian.com>
4045
4046         * culture-info-tables.h: Fix number of decimal digits for all
4047         english locales.
4048
4049 2004-04-13  Jackson Harper  <jackson@ximian.com>
4050
4051         * icall.c: Clairfy out of sync error message. It is not always
4052         your corlib that is out of sync.
4053
4054 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
4055
4056         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
4057         properties when only the set accessor is overriden. Fixes #55874.
4058
4059 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
4060
4061         * assembly.c (mono_assembly_load_references): Make this thread safe.
4062         Fixes #56327.
4063
4064 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
4065
4066         * monosn.c: Add missing initialization calls.
4067
4068 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
4069
4070         * locales.c:
4071         ves_icall_System_Globalization_CultureInfo_construct_number_format
4072         Fix g_assert so it compiles on fussier compilers re int/ptr
4073         mismatch
4074
4075 2004-04-08  Dick Porter  <dick@ximian.com>
4076
4077         * socket-io.h:
4078         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
4079         53992.  Also rearrange the code so that the internal calls return
4080         an error value and exceptions are thrown from managed code.
4081
4082         * icall.c: Add type info to the socket icalls.
4083
4084 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4085
4086         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
4087         owes me a beer.
4088
4089 2004-04-07  Martin Baulig  <martin@ximian.com>
4090
4091         * class.c (mono_class_from_generic_parameter): Don't default
4092         `klass->parent' to `mono_defaults.object_type'.
4093
4094 2004-04-07  Martin Baulig  <martin@ximian.com>
4095
4096         * reflection.c (mono_reflection_initialize_generic_parameter): Set
4097         `param->pklass->reflection_info'.       
4098
4099 2004-04-07  Jackson Harper  <jackson@ximian.com>
4100
4101         * culture-info-tables.h: Fix date separator symbol.
4102         
4103 2004-04-07  Martin Baulig  <martin@ximian.com>
4104
4105         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
4106         from System.Type to System.MonoType.
4107
4108 2004-04-07  Martin Baulig  <martin@ximian.com>
4109
4110         * reflection.h
4111         (MonoReflectionGenericParam): Added `has_reference_type' and
4112         `has_value_type' fields.
4113
4114         * reflection.c (mono_image_get_generic_param_info): Encode the
4115         correct flags if we have the `class' or `struct' constraint.
4116
4117 2004-04-07  Martin Baulig  <martin@ximian.com>
4118
4119         * reflection.h
4120         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
4121
4122 2004-04-07  Jackson Harper  <jackson@ximian.com>
4123
4124         * appdomain.c: Revert extra patches, just wanted to bump the
4125         version number.
4126         
4127 2004-04-07  Jackson Harper  <jackson@ximian.com>
4128
4129         * Makefile.am: Add culture-info private headers.
4130         * icall.c: Add new icalls for contructing locales.
4131         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
4132         * locales.h: Declare new culture info construction methods.
4133         * object.h: Add new fields used to avoid the CultureMap to
4134         MonoCultureInfo.
4135         * culture-info.h: Definition of structs used in the culture info
4136         tables.
4137         * culture-info-tables.h: Autogenerated tables that contain culture
4138         info data. This file was generated with the locale-builder tool.
4139         * appdomain.c: Incement corlib version number.
4140         
4141 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
4142
4143         * appdomain.c: (mono_runtime_init) move mono_thread_init
4144         to before mono_object_new calls so critical sections
4145         are initialized before use.
4146
4147 2004-04-07  Martin Baulig  <martin@ximian.com>
4148
4149         * icall.c
4150         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
4151         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
4152         (ves_icall_MonoGenericParam_initialize): Removed.
4153         (monogenericparam_icalls): Removed.
4154         (generictypeparambuilder_icalls): Added new table for
4155         System.Reflection.Emit.GenericTypeParameterBuilder.
4156
4157         * reflection.c
4158         (mono_reflection_define_generic_parameter): Removed.
4159         (mono_reflection_initialize_generic_parameter): This is now called
4160         from GenericTypeParameterBuilder's .ctor.
4161
4162 2004-04-06  Martin Baulig  <martin@ximian.com>
4163
4164         * class.c (mono_class_init): Don't inflate nested classes in a
4165         generic instance.
4166         (mono_type_get_name_recurse): Include the generic arguments for
4167         generic instances and generic type declarations.
4168         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
4169         (_mono_class_get_instantiation_name): Removed.
4170         (mono_class_create_generic): Always use `gklass->name' as our name.
4171
4172         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
4173
4174         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
4175         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
4176         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
4177         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
4178         closed generic methods here.
4179
4180         * reflection.c
4181         (mono_reflection_generic_inst_get_nested_types): Removed.
4182         (inflate_mono_method): Copy the generic parameters from the
4183         MonoMethodHeader into out MonoGenericMethod.
4184
4185 2004-04-06  Martin Baulig  <martin@ximian.com>
4186
4187         * row-indexes.h
4188         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
4189
4190         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
4191
4192         * reflection.c (build_compressed_metadata): If we have any entries
4193         in the GenericParam, MethodSpec or GenericParamConstraint tables,
4194         set the header version to 1.1.
4195
4196 2004-04-06  Martin Baulig  <martin@ximian.com>
4197
4198         * class.c (mono_class_init): If we're a generic instance,
4199         initialize our nested classes, too.
4200         (_mono_class_get_instantiation_name): Deal with the new `!%d'
4201         suffix. 
4202
4203 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4204
4205         * process.c: quote the argument passed to the shell on windows.
4206
4207 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4208
4209         * threads.c (mono_alloc_special_static_data): Allow this to be
4210         called during startup.
4211
4212 2004-04-02  Martin Baulig  <martin@ximian.com>
4213
4214         * icall.c
4215         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
4216
4217 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4218
4219         * icall.c: Fix build.
4220
4221 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4222
4223         * Makefile.am: Added security.c|h.
4224         * icall.c: Added icall for get_UserName;
4225         * security.c: New file for security related icalls. Added function
4226         get_UserName for System.Environment (fix #56144).
4227         * security.h: New. Header file for security.c
4228
4229 2004-04-02  Dick Porter  <dick@ximian.com>
4230
4231         * icall.c: Deleted the icalls that were obsoleted some time ago
4232         by the ICU string code, and which were mixed into the icall
4233         rearranging.  Fixes bug 55969.
4234
4235         * string-icalls.h: 
4236         * string-icalls.c: Deleted the code that those icalls reference.
4237
4238 2004-04-01  Martin Baulig  <martin@ximian.com>
4239
4240         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
4241
4242         * class.c (mono_class_from_generic_parameter): Don't set 
4243         TYPE_ATTRIBUTE_INTERFACE.
4244         (my_mono_class_from_generic_parameter): Likewise.
4245
4246 2004-04-01  Martin Baulig  <martin@ximian.com>
4247
4248         * loader.c (find_method): Added an optional `MonoClass *ic'
4249         argument to search in a specific interface.
4250         (mono_get_method_constrained): New public function.
4251
4252 2004-04-01  Martin Baulig  <martin@ximian.com>
4253
4254         * reflection.c (mono_image_get_generic_field_token): Use the
4255         `handleref' cache here.
4256
4257 2004-04-01  Martin Baulig  <martin@ximian.com>
4258
4259         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4260
4261         * reflection.c (create_generic_typespec): Use the `typespec' hash
4262         here, not the `typeref' one.    
4263
4264 2004-04-01  Martin Baulig  <martin@ximian.com>
4265
4266         * class.c (mono_class_inflate_generic_type): Moved the
4267         functionality into a new static inflate_generic_type() which
4268         returns NULL if it didn't do anything.  Only increment the
4269         `mono_stats.inflated_type_count' if we actually inflated
4270         something.
4271         (mono_class_get_full): Check the classes type to see whether we
4272         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4273
4274 2004-04-01  Jackson Harper  <jackson@ximian.com>
4275
4276         * reflection.c: Set culture for assembly references.
4277         
4278 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4279
4280         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4281
4282 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4283
4284         * assembly.c:
4285         (do_mono_assembly_open): the critical section also covers
4286         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4287
4288 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4289
4290         * threads.c:
4291         (mono_manage_threads): abort the background threads when finishing.
4292         Fixes bug #47232.
4293
4294 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4295
4296         * gc.c: only close the done_event handle if there was no timeout.
4297         C-ified comments.
4298
4299 2004-03-30  Martin Baulig  <martin@ximian.com>
4300
4301         * icall.c (icall_entries): It's called "System.Activator", not
4302         "System.Activation".    
4303
4304 2004-03-30  Martin Baulig  <martin@ximian.com>
4305
4306         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4307         (mono_class_create_from_typespec): Likewise.
4308
4309 2004-03-30  Martin Baulig  <martin@ximian.com>
4310
4311         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4312         `has_ctor_constraint' and `initialized'.
4313
4314 2004-03-30  Martin Baulig  <martin@ximian.com>
4315
4316         * reflection.c (encode_new_constraint): New static function to add
4317         the constructor constraint attribute to a type parameter.
4318         (encode_constraints): Call encode_new_constraint() if necessary.
4319
4320         * reflection.h
4321         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4322
4323         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4324         
4325 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4326
4327         * reflection.c, icall.c: add support for pinning variables. 
4328
4329 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4330
4331         * marshal.c (mono_marshal_get_managed_wrapper):
4332         init bool local with zero rather than null.
4333
4334 2004-03-29  Martin Baulig  <martin@ximian.com>
4335
4336         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4337         the "official" behavior here.
4338         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4339
4340 2004-03-29  Martin Baulig  <martin@ximian.com>
4341
4342         * icall.c: Reflect latest API changes.
4343
4344 2004-03-29  Martin Baulig  <martin@ximian.com>
4345
4346         * loader.c (mono_get_method_from_token): Also call
4347         mono_metadata_load_generic_params () for abstract and interface
4348         methods; replace the type arguments in the method signature with
4349         the ones which are loaded from the metadata.
4350
4351 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4352
4353         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4354         of the lock is not the current thread. MS.NET don't do it, in spite of
4355         what the documentation says. See bug #56157.
4356
4357 2004-03-28  Martin Baulig  <martin@ximian.com>
4358
4359         * class.c (mono_class_init): Don't call init_properties() and
4360         init_events() for generic instances; set `prop->parent' when
4361         inflating properties.
4362
4363         * reflection.c (mono_generic_inst_get_object): Call
4364         `mono_class_init (ginst->klass)'.
4365         (mono_type_get_object): Only create a MonoGenericInst if your
4366         generic type is a TypeBuilder.
4367         (do_mono_reflection_bind_generic_parameters): Only set
4368         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4369
4370 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4371
4372         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4373         Fixes #56091.
4374
4375 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4376
4377         * icall.c: added Kill_internal icall.
4378         * process.[ch]: added Kill_internal icall.
4379
4380 2004-03-25  Martin Baulig  <martin@ximian.com>
4381
4382         * class.h (MonoStats): Added `generic_instance_count',
4383         `inflated_method_count', `inflated_type_count' and
4384         `generics_metadata_size'.       
4385
4386 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4387
4388         * reflection.c: no warnings now.
4389
4390 2004-03-25  Martin Baulig  <martin@ximian.com>
4391
4392         * class.c (mono_class_get_full): New public function; does a
4393         mono_class_get(), but also takes a `MonoGenericContext *'.
4394
4395         * loader.c (mono_field_from_memberref): Renamed to
4396         `field_from_memberref', made static and added `MonoGenericContext *'
4397         argument.
4398         (mono_field_from_token): Added `MonoGenericInst *' argument.
4399         (method_from_memberef): Likewise.
4400         (mono_get_method_from_token): Likewise.
4401         (mono_get_method_full): New public function; does a
4402         mono_get_method(), but also takes a `MonoGenericContext *'.
4403
4404         * verify.c (mono_method_verify): Get the method's generic context
4405         and pass it to mono_field_from_token(), mono_get_method_full() and
4406         mono_class_get_full().
4407
4408 2004-03-25  Martin Baulig  <martin@ximian.com>
4409
4410         * class.c (mono_class_inflate_generic_type): Take a
4411         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4412         `MonoGenericMethod *'.
4413
4414 2004-03-25  Martin Baulig  <martin@ximian.com>
4415
4416         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4417         instead of the MonoGenericMethod here.
4418
4419 2004-03-25  Martin Baulig  <martin@ximian.com>
4420
4421         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4422         each time we create a new MonoGenericInst, we also create a new
4423         context which points back to us.
4424
4425         * class.c (inflate_method): Use `ginst->context' instead of
4426         creating a new context.
4427
4428         * loader.c (method_from_memberref): Use
4429         `klass->generic_inst->context' instead of creating a new context.
4430
4431 2004-03-25  Martin Baulig  <martin@ximian.com>
4432
4433         * class.h (MonoGenericContext): New struct.
4434         (MonoGenericMethod): Removed `generic_inst'.
4435
4436         * class.c (mono_class_inflate_generic_method): Take a
4437         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4438
4439 2004-03-25  Martin Baulig  <martin@ximian.com>
4440
4441         * loader.h (MonoMethodInflated): New typedef.
4442
4443         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4444         `generic_param_count' consume just 30 bits, added `is_inflated'
4445         and `has_type_parameters' flags (one bit each).
4446
4447         * class.c (mono_class_inflate_generic_method): Create a
4448         MonoMethodInflated instead of a MonoMethodNormal and set
4449         `is_inflated' in the method signature.
4450
4451         * class.h (MonoGenericMethod): Removed `generic_method'.
4452
4453 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4454
4455         * image.c: Make sure the name of a MonoImage is always an absolute path.
4456           This fixes bug #54415.
4457
4458 2004-03-24  Martin Baulig  <martin@ximian.com>
4459
4460         * class.c (mono_class_setup_vtable): If we're a generic instance,
4461         use our generic type's vtable size.
4462
4463 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4464
4465         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4466         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4467         problems.
4468
4469 2004-03-23  Martin Baulig  <martin@ximian.com>
4470
4471         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4472         `MonoEvent *events'.
4473
4474         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4475         (typebuilder_icalls): Added "get_event_info"; calls
4476         mono_reflection_event_builder_get_event_info(). 
4477
4478         * reflection.c (mono_reflection_generic_inst_initialize): Added
4479         `MonoArray *events'.
4480         (mono_reflection_event_builder_get_event_info): New function.
4481
4482 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4483
4484         * object.h: add mono_type_initialization_init
4485
4486         * object.c (mono_runtime_class_init): 
4487         implement class constructor synchronization rules
4488         to cope with threading issues.  
4489         add mono_type_initialization_init
4490
4491         * appdomain.c (mono_runtime_init): call 
4492         mono_type_initialization_init
4493
4494         * class.h: removing initializing field from MonoVTable
4495
4496 2004-03-23  Martin Baulig  <martin@ximian.com>
4497
4498         * class.c (my_mono_class_from_generic_parameter): Use
4499         `param->name' if it's not NULL. 
4500
4501 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4502
4503         * class.c: do not insert non-virtual methods in the vtable.
4504         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4505         that means the method is non-virtual. This never would have
4506         happened before.
4507
4508 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4509
4510         * profiler.c: Added lock for accessing coverage_hash.
4511
4512 2004-03-22  Martin Baulig  <martin@ximian.com>
4513
4514         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4515         `method->method->signature->generic_param_count != 0' to make it
4516         work for interface methods.
4517
4518 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4519
4520         * process.c: quote the string passed to the shell using g_shell_quote.
4521
4522 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4523
4524         * threads.c:
4525         (mono_threads_manage): don't remove the finalizer thread and self
4526         from the threads hash table so that mono_thread_manage can be called
4527         more than once.
4528
4529 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4530
4531         * process.c: quote the arguments when UseShellExecute is true. Fixes
4532         bug #55790.
4533
4534 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4535
4536         * threads.c: set mono_thread_detach as a cleanup routine for every
4537         thread. This way it's always executed upon thread termination, either
4538         aborted or finished normally. No more xsp hangs!
4539
4540 2004-03-17  Martin Baulig  <martin@ximian.com>
4541
4542         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4543         `int count_nested' and a `MonoType **nested'.
4544
4545         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4546         most of the functionality into a new static
4547         do_mono_reflection_bind_generic_parameters() and don't take a
4548         `MonoType *nested_in' argument any more.  Don't compute nested
4549         types here.
4550         (mono_reflection_generic_inst_get_nested_types): New public method
4551         to get nested types.
4552
4553         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4554         we're a nested class.
4555
4556         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4557         mono_reflection_generic_inst_get_nested_types() to compute the
4558         nested types.
4559
4560 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4561
4562         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4563         descriptive error message under windows.
4564         
4565 2004-03-17  Martin Baulig  <martin@ximian.com>
4566
4567         * class.c (dup_type): Added `const MonoType *original' argument;
4568         copy the attrs from the original type.
4569
4570 2004-03-17  Martin Baulig  <martin@ximian.com>
4571
4572         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4573         `m->generic_inst_cache' here.
4574
4575 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4576
4577         * exception.h exception.c: Add stack_overflow_exception.
4578
4579 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4580
4581         * threadpool.c:
4582         (overlapped_callback): call SetEvent *after* invoking the callback.
4583         No need to call CloseHandle.
4584
4585 2004-03-16  Martin Baulig  <martin@ximian.com>
4586
4587         * reflection.c (mono_image_get_fieldref_token): Take a
4588         `MonoReflectionField *' instead of a `MonoClassField *' and a
4589         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4590
4591 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4592
4593         * appdomain.c: don't add the culture to the filename we're looking for
4594         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4595
4596 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4597
4598         * locales.c: don't ignore symbols when doing case insensitive compares.
4599         Thanks Dick! Fixes bug #54046.
4600
4601         * threads.c: surround 'threads' usage with enter/leave in
4602         mono_thread_manage.
4603
4604 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4605
4606         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4607         implicitly marshalled as [Out]. Fixes #55450.
4608
4609         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4610         an exception.
4611
4612 2004-03-16  Martin Baulig  <martin@ximian.com>
4613
4614         * class.c (mono_class_from_generic_parameter): Use the actual
4615         parameter name. 
4616
4617 2004-03-16  Martin Baulig  <martin@ximian.com>
4618
4619         * reflection.c (type_get_signature_size): New static function.
4620         Compues the size of the type in a method signature.
4621         (method_get_signature_size): New static function; calls
4622         type_get_signature_size() to compute the actual size of the
4623         method's signature.
4624         (method_encode_signature): Use method_get_signature_size() to get
4625         the signature's size rather than using `nparams * 10'.
4626
4627 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4628
4629         * file-io.h: define here WapiOverlapped on windows. I don't want the
4630         regular OVERLAPPED one.
4631
4632         * file-io.c:
4633         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4634         Disabling AIO on windows.
4635
4636 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4637
4638         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4639         bug #55385.
4640
4641 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4642
4643         * appdomain.c: upgraded corlib version.
4644
4645         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4646         and BeginWrite. Allow opening files for asynchrnous operations.
4647
4648         * file-io.h: new struct that maps FileStreamAsyncResult.
4649         * icall.c: added new icalls.
4650         * process.[ch]: support setting child process environment variables
4651         and use the SHELL or COMSPEC when UseShellExecute is true.
4652
4653         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4654         callback for async. IO is here and also BindHandle.
4655
4656         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4657         from here.
4658
4659 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4660
4661         * reflection.c (create_custom_attr): Allow len == 0.
4662
4663         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4664         computation on big-endian machines.
4665
4666 2004-03-13  Martin Baulig  <martin@ximian.com>
4667
4668         * class.h (MonoGenericInst): Added `int count_ifaces'.
4669
4670         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4671         `ginst->count_ifaces' instead `klass->interface_count' since we
4672         may get called before the vtable is created.
4673
4674         * loader.c (mono_method_get_param_names): If we're a generic
4675         instance, return and don't initialize the class.
4676
4677         * reflection.c (mono_reflection_setup_generic_class): Don't call
4678         ensure_runtime_vtable().
4679         (mono_reflection_bind_generic_parameters): Set
4680         `ginst->count_ifaces'.
4681
4682 2004-03-11  Jackson Harper <jackson@ximian.com>
4683
4684         * icall.c:
4685         * unicode.c:
4686         * unicode.h: Remove unused System.Char icalls.
4687         
4688 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4689
4690         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4691         code when we P/Invoke the first library in Windows.Forms, instead
4692         of when we first open the assembly.
4693
4694         * assembly.c: Drop the lookup from here.
4695
4696 2004-03-10  Martin Baulig  <martin@ximian.com>
4697
4698         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4699         class for properties, fields and events.  Finally fixes #54945.
4700
4701 2004-03-10  Martin Baulig  <martin@ximian.com>
4702
4703         * metadata.c (mono_metadata_class_equal): New static function;
4704         checks whether two generic instances or two generic parameters are
4705         equal.
4706         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4707         compare classes.        
4708
4709 2004-03-10  Martin Baulig  <martin@ximian.com>
4710
4711         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4712
4713         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4714         argument and write it into the `reflection_info' field.
4715
4716         * icall.c
4717         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4718         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4719
4720 2004-03-09  Jackson Harper  <jackson@ximian.com>
4721
4722         * char-conversions.h: use 8 bits for numeric data its all we need
4723         * icall.c: numeric data is only 8 bits now.
4724
4725 2004-03-09  Martin Baulig  <martin@ximian.com>
4726
4727         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4728
4729         * class.c (init_properties, init_events): Initialize the new
4730         `parent' field.
4731
4732         * reflection.c (typebuilder_setup_properties): Likewise.
4733         (typebuilder_setup_events): Likewise.
4734
4735         * reflection.h (MonoEventInfo): Replaced `parent with
4736         `declaring_type' and `reflected_type'.
4737
4738         * icall.c (ves_icall_get_property_info): Distinguish between
4739         declaring and reflected type.
4740         (ves_icall_get_event_info): Likewise.
4741
4742 2004-03-09  Martin Baulig  <martin@ximian.com>
4743
4744         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4745         (ves_icall_Type_GetField): Correctly set field->klass.
4746
4747 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4748
4749         * loader.h: Fix warning.
4750
4751 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4752
4753         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4754         library routine if present.  Notice that it will still continue
4755         executing even if its missing, for those working on the Gtk#
4756         edition of Windows.Forms.
4757
4758         * assembly.c (do_mono_assembly_open): If loading the
4759         System.Windows.Forms call mono_loader_wini_init.
4760
4761 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4762
4763         * class.h: Added MonoRemoteClass struct.
4764         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4765         function for MonoStrings.
4766         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4767         Added internal call for getting the proxy type.
4768         * marshal.c: Get the type of transparent proxies from its remote_class.
4769         Added methods that generate the IL for type checks and casts:
4770         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4771         mono_marshal_get_proxy_cancast.
4772         * marshal.h: Declaration of the previous new methods.
4773         * object.c: Added new moethods for creating and updating MonoRemoteClass
4774         instances: mono_remote_class, mono_upgrade_remote_class, 
4775         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4776         * verify.c: FIx transparent_proxy_fields layout.
4777         * appdomain.c: Bump corlib version.
4778
4779 2004-03-04  Jackson Harper  <jackson@ximian.com>
4780
4781         * icall.c: Add icall to access char conversion tables.
4782         * char-conversions.h: Character conversion tables.
4783         * Makefile.am: Add char-conversions.h private header file.
4784         
4785 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4786
4787         * appdomain.c (unload_thread_main): Increase unloading timeout to
4788         10 sec as a temporary workaround for Nant problems.
4789
4790 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4791
4792         * gc.c: Add checks for GC_enable and GC_disable.
4793
4794         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4795         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4796         (bug #54988).
4797         
4798 2004-02-27  Martin Baulig  <martin@ximian.com>
4799
4800         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4801         `MonoReflectionType *' instead of a `MonoType *'.
4802
4803 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4804
4805         * gc.c (run_finalize): Avoid finalizing the object representing the
4806         finalizer thread.
4807         (finalizer_thread): Fix warning.
4808
4809 2004-02-25  Martin Baulig  <martin@ximian.com>
4810
4811         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4812         argument for nested types.
4813         (mono_class_create_generic): Added support for nested generictypes.
4814
4815         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4816         `GList *nested'.
4817
4818         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4819
4820         * reflection.c (method_encode_signature): Increase the minimum
4821         value of `size' from 10 to 11.
4822         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4823         and `MonoType **types' arguments instead of the `MonoArray
4824         *types'; added `MonoType *nested_in'.  Recursively instantiate
4825         nested classes. 
4826
4827 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4828
4829         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4830         stack_overflow_ex members which are used by exception handling.
4831
4832         * appdomain.c (mono_runtime_init): Initialize the new members.
4833
4834         * gc.c (mono_gc_enable): New helper function.
4835         * gc.c (mono_gc_disable): New helper function.
4836
4837 2004-02-23  Martin Baulig  <martin@ximian.com>
4838
4839         * icall.c: I must have been really stupid - make it actually work
4840         this time ;-)
4841
4842 2004-02-23  Martin Baulig  <martin@ximian.com>
4843
4844         * loader.c (method_from_memberref): Only inflate the method if
4845         it's in another klass.
4846
4847 2004-02-23  Martin Baulig  <martin@ximian.com>
4848
4849         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4850         (mono_class_init): If we're a generic instance and an interface,
4851         compute `class->interface_id'; also create `class->interfaces'
4852         here and inflate them.
4853
4854         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4855         `ginst->is_open'.
4856         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4857
4858         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4859
4860 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4861
4862         * reflection.c (method_encode_code): Improved the error message
4863         generated by the exception.
4864
4865 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4866
4867         * icall.c: Martin did not do what he said in the ChangeLog for
4868         2004-02-18, but put back the changes for properties and events.
4869         Commenting those changes out again and adding comment to bug #54518.
4870         
4871         * process.c: removed warning.
4872
4873 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4874
4875         * marshal.c (emit_struct_conv): Print an error message instead of
4876         asserting when a type does not have the StructLayout attribute.
4877
4878 2004-02-20  Martin Baulig  <martin@ximian.com>
4879
4880         * reflection.c (mono_type_get_object): Also use the cache for
4881         generic instances.
4882         (mono_reflection_bind_generic_parameters): Always compute
4883         `ginst->ifaces'.        
4884
4885 2004-02-20  Martin Baulig  <martin@ximian.com>
4886
4887         * class.h (MonoGenericMethod): Removed `klass'.
4888
4889         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4890         *klass' argument.
4891
4892 2004-02-20  Martin Baulig  <martin@ximian.com>
4893
4894         * reflection.c (method_encode_methodspec): Actually use the
4895         uninflated signature for the memberref.
4896
4897 2004-02-20  Martin Baulig  <martin@ximian.com>
4898
4899         * class.h (MonoGenericMethod): Removed `declaring'.
4900
4901         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4902         is NULL, compute it here.
4903
4904 2004-02-20  Martin Baulig  <martin@ximian.com>
4905
4906         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4907
4908         * metadata.c (mono_metadata_generic_inst_hash): New method.
4909         (mono_metadata_generic_inst_equal): New method.
4910
4911         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4912         `klass->image->generic_inst_cache' cache to avoid creating
4913         duplicate MonoGenericInst's.
4914
4915         * class.c (mono_class_inflate_generic_type): Use the cache.
4916
4917 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4918
4919         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4920
4921 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4922
4923         * icall.c: added Socket.WSAIoctl icall.
4924
4925         * socket-io.[ch]: implemented
4926         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4927
4928 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4929
4930         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4931
4932 2004-02-18  Urs C Muff  <umuff@quark.com>
4933
4934         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4935         this work on PPC and other big-endian architectures.
4936
4937         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4938         fields with an underscore to make sure they're only accessed by
4939         the read32() macro.
4940
4941 2004-02-18  Martin Baulig  <martin@ximian.com>
4942
4943         * icall.c: Put the klass->refclass changes back for methods and
4944         fields, but not for properties and events.  We're currently not
4945         distinguishing between DeclaringType and ReflectedType for
4946         properties and events, that's what caused the regressions.
4947
4948 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4949
4950         * object.c:
4951         (mono_async_result_new): the handle can be NULL.
4952
4953         * threadpool.c: Use an event instead of a semaphore, don't initialize
4954         it until needed. This saves quite a few semaphores from being created
4955         when using the threadpool.
4956
4957 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4958
4959         * object.c (mono_string_is_interned_lookup): Fix interning of long
4960         strings. Fixes #54473.
4961
4962         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4963
4964         * icall.c: Revert the klass->refclass changes since they introduce
4965         regressions (bug #54518).
4966
4967 2004-02-18  Martin Baulig  <martin@ximian.com>
4968
4969         * class.c (mono_class_init): If we're a generic instance and don't
4970         come from a TypeBuilder, inflate our members here.
4971         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4972         (mono_class_create_generic): New public method.
4973         (mono_class_initialize_generic): Removed.
4974         (get_instantiation_name): Renamed to
4975         _mono_class_get_instantiation_name() and made it public.
4976
4977 2004-02-18  Martin Baulig  <martin@ximian.com>
4978
4979         * class.c (mono_class_inflate_generic_type): Clear the new
4980         instance's `nginst->klass' when inflating a generic instance.
4981         (mono_class_is_subclass_of): Added (basic) support for generic
4982         instances.
4983
4984 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4985
4986         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4987         MonoMempool to hold compiled native code.
4988
4989 2004-02-17  Martin Baulig  <martin@ximian.com>
4990
4991         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4992         `properties'.
4993
4994         * reflection.c (mono_reflection_generic_inst_initialize): Added
4995         `MonoArray *properties' argument.
4996
4997         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4998
4999 2004-02-17  Martin Baulig  <martin@ximian.com>
5000
5001         * icall.c (ves_icall_Type_GetFields): Renamed to
5002         ves_icall_Type_GetFields_internal() and added a
5003         `MonoReflectionType *rtype' argument; pass it to
5004         mono_field_get_object() to set the field's "reflected" type.
5005         (ves_icall_Type_GetConstructors): Likewise.
5006         (ves_icall_Type_GetEvents): Likewise.
5007         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
5008         argument; pass it to mono_method_get_object() to set the method's
5009         "reflected" type.       
5010
5011 2004-02-17  Martin Baulig  <martin@ximian.com>
5012
5013         * class.h (MonoDynamicGenericInst): New type.
5014         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
5015
5016         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
5017         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
5018         (ves_icall_MonoGenericInst_GetFields): New interncall.
5019
5020         * class.c (mono_class_from_generic): Don't call
5021         mono_class_initialize_generic() if this is a dynamic instance;
5022         ie. it's being created from a TypeBuilder.
5023         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
5024         `class->byval_arg.type'.
5025
5026         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
5027         to `inflate_method' and made static.
5028         (mono_reflection_inflate_field): Removed.
5029         (mono_reflection_generic_inst_initialize): New public method.
5030
5031         * reflection.h (MonoReflectionGenericInst): Removed `methods',
5032         `ctors' and `fields'; added `initialized'.
5033
5034 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
5035
5036         * debug-helpers.c (mono_method_full_name): Fix output for empty
5037         namespaces.
5038
5039 2004-02-12  Martin Baulig  <martin@ximian.com>
5040
5041         * class.h (MonoClassField): Added `MonoType *generic_type'.
5042
5043         * reflection.c (mono_image_get_fieldref_token): Added support for
5044         instantiated generic types.
5045         (field_encode_inflated_field): Removed.
5046         (mono_image_get_inflated_field_token): Removed.
5047         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
5048
5049         * reflection.h (MonoReflectionInflatedField): Removed.
5050
5051 2004-02-12  Martin Baulig  <martin@ximian.com>
5052
5053         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
5054         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
5055
5056         * reflection.c (mono_image_get_methodspec_token): Take a
5057         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
5058         (mono_image_create_token): Check whether we have a
5059         `method->signature->gen_method' and call
5060         mono_image_get_methodspec_token() if appropriate.
5061         (inflated_method_get_object): Removed.
5062         (mono_reflection_bind_generic_method_parameters): Return a
5063         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
5064         (mono_reflection_inflate_method_or_ctor): Likewise.
5065
5066         * reflection.h (MonoReflectionInflatedMethod): Removed.
5067
5068 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
5069
5070         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
5071         for custom valuetype marshalling.
5072
5073         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
5074
5075 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5076
5077         * icall.c: fixed WSAGetLastError_internal name.
5078
5079 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
5080
5081         * threads.c (mono_thread_attach): Allow this to be called multiple
5082         times for a thread.
5083         
5084         * threads.c (build_wait_tids): Do not wait for ourselves.
5085
5086         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
5087         appdomain list is empty.
5088
5089         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
5090         memory returned by mono_string_builder_to_utf16, since it points into
5091         managed memory. Thanks to Bernie Solomon for noticing this.
5092
5093         * icall.c: Add AppDomainSetup icalls.
5094
5095         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
5096
5097         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
5098         types.
5099
5100         * reflection.c (reflection_methodbuilder_to_mono_method): Save
5101         custom attributes to the method_aux struct. Also fix array indexes etc.
5102
5103         * loader.c (mono_method_get_param_names): Make dynamic case work again.
5104         
5105 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
5106
5107         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
5108         (both static and runtime) and reduce startup time.
5109
5110 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
5111
5112         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
5113         AsAny marshalling conversion instead of crashing.
5114
5115         * marshal.c: Fix warnings.
5116
5117 2004-02-09  Martin Baulig  <martin@ximian.com>
5118
5119         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
5120
5121         * reflection.h (MonoReflectionInflatedMethod): Removed the
5122         `declaring' field, it's now in the unmanaged MonoGenericMethod.
5123
5124         * reflection.c (method_encode_methodspec): Removed the `method'
5125         argument; we get it from `gmethod->declaring'.
5126         (inflated_method_get_object): Removed the `declaring' argument.
5127
5128 2004-02-09  Martin Baulig  <martin@ximian.com>
5129
5130         * class.h (MonoGenericMethod): New type.
5131         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
5132         `generic_method'.
5133
5134         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
5135         a `MonoGenericMethod *gen_method' one.
5136
5137         * class.c (mono_class_inflate_generic_type): Take an additional
5138         `MonoGenericMethod * argument.  This is only non-NULL if we're
5139         inflating types for a generic method.   
5140         (mono_class_inflate_generic_signature): Renamed to
5141         inflate_generic_signature() and made static; take a
5142         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5143         (inflate_generic_header): Take a `MonoGenericMethod *' argument
5144         instead of a `MonoGenericInst *' one.
5145         (mono_class_inflate_generic_method): Likewise.
5146
5147         * reflection.c (encode_generic_method_sig): Take a
5148         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5149         (method_encode_methodspec): Likewise.
5150         (inflated_method_get_object): Likewise. 
5151
5152         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
5153         field with a `MonoGenericMethod *gmethod' one.  
5154
5155 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
5156
5157         * class.h (mono_class_has_parent): add parens to expansion
5158         so you can ! this.
5159
5160 2004-02-08  Martin Baulig  <martin@ximian.com>
5161
5162         * image.h (MonoImage): Removed `generics_cache'.
5163
5164         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
5165         instead of a `MonoType *' argument; removed the `inflate_methods'
5166         argument.  Don't inflate methods here.
5167
5168         * loader.c (find_method): If it's a generic instance, call
5169         mono_class_init() on the `sclass->generic_inst->generic_type'.
5170
5171         * metadata.c (mono_type_size): Make this work on uninitialized
5172         generic instances; call it on the `ginst->generic_type's class.
5173
5174         * reflection.c (mono_reflection_bind_generic_parameters): Call
5175         mono_class_from_generic() to create the `ginst->klass'.
5176
5177 2004-02-08  Martin Baulig  <martin@ximian.com>
5178
5179         * class.h (MonoClass): Changed type of `generic_inst' from
5180         `MonoType *' to `MonoGenericInst *'.
5181
5182 2004-02-08  Martin Baulig  <martin@ximian.com>
5183
5184         * icall.c (ves_icall_Type_BindGenericParameters): Just call
5185         mono_type_get_object(), this is now creating a `MonoGenericInst'
5186         for MONO_TYPE_GENERICINST.
5187         (ves_icall_MonoGenericInst_GetParentType): Likewise.
5188         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
5189
5190         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
5191         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
5192         (inflated_method_get_object): Added `MonoClass *refclass' argument.
5193         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
5194         and reflected type.
5195
5196         * reflection.h (MonoReflectionInflatedMethod): Removed
5197         `declaring_type' and `reflected_type'.
5198
5199 2004-02-08  Martin Baulig  <martin@ximian.com>
5200
5201         * class.h (MonoGenericInst): Added `MonoType *parent' and
5202         `MonoType **ifaces'.
5203
5204         * reflection.h (MonoReflectionGenericInst): Removed `klass',
5205         `parent' and `interfaces'.
5206
5207         * reflection.c (mono_reflection_bind_generic_parameters): Take a
5208         `MonoType *' argument and return a `MonoType *'.
5209
5210         * icall.c
5211         (ves_icall_MonoGenericInst_GetParentType): New interncall.
5212         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
5213
5214 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5215
5216         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
5217         valuetype marshalling.
5218
5219 2004-02-06  Martin Baulig  <martin@ximian.com>
5220
5221         * class.c
5222         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
5223         (my_mono_class_from_generic_parameter): Likewise.
5224
5225 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5226
5227         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
5228         contents of the symbol files lazily.
5229
5230         * object.h (MonoThread): Add 'name' and 'name_len' fields.
5231
5232         * threads.h threads.c icall.c: New icalls for getting and setting the
5233         threads name.
5234
5235 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
5236
5237         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
5238         Raise an exception when the domain is not found.
5239
5240 2004-02-03  Martin Baulig  <martin@ximian.com>
5241
5242         * reflection.c (mono_image_get_methodspec_token): Use the
5243         uninflated signature; fixes gen-33.
5244
5245 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5246
5247         * gc.c threads.c: Make the finalizer thread a normal managed thread so
5248         the finalizer code can use thread functionality.
5249
5250         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
5251         the finalizer thread.
5252
5253         * threads.c: Make some functions more robust.
5254
5255         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5256
5257         * metadata.h: Add new marshalling conventions.
5258
5259         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5260         stringbuilder marshalling. Fixes #53700.
5261
5262         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5263
5264         * reflection.c (mono_image_get_type_info): Save declarative security
5265         info.
5266
5267         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5268         unmanaged fields as well.
5269
5270         * appdomain.c: Bump corlib version.
5271
5272 2004-02-01  Martin Baulig  <martin@ximian.com>
5273
5274         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5275         method type arguments.  
5276
5277 2004-01-30  Duncan Mak  <duncan@ximian.com>
5278
5279         * marshal.h: Add prototype for
5280         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5281         and
5282         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5283         fix the build.
5284
5285 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5286
5287         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5288         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5289
5290 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5291
5292         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5293         custom marshalling of valuetypes.
5294
5295         * marshal.c: Fix some warnings.
5296
5297 2004-01-29  Martin Baulig  <martin@ximian.com>
5298
5299         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5300         for generic method parameters.
5301
5302         * reflection.c (method_encode_methodspec): Write the uninflated
5303         signature into the methodspec table.
5304         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5305         is always the uninflated method.
5306         (reflection_methodbuilder_to_mono_method): Copy the generic
5307         parameters from the MethodBuilder into `header->gen_params'.
5308
5309 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5310
5311         * class.c (mono_class_from_generic_parameter): Fix warning.
5312
5313 2004-01-27  Martin Baulig  <martin@ximian.com>
5314
5315         * class.c (mono_class_from_generic_parameter): Don't create
5316         `klass->methods' here.  
5317
5318 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5319
5320         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5321         extension since it does not work with libraries named lib<FOO>.dll.so.
5322
5323 2004-01-25  Martin Baulig  <martin@ximian.com>
5324
5325         * class.c (mono_class_inflate_generic_type): Added support for
5326         MONO_TYPE_GENERICINST.
5327
5328         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5329         inflate methods on open constructed types.      
5330
5331 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5332
5333         * object.c: fire ProcessExit event in the root AppDomain after running
5334         Main. Fixes bug #53299.
5335
5336 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5337
5338         * socket-io.c: include the new socket-wrappers.h header.
5339         Use the wrappers instead of the unix socket functions to make the code
5340         more clear.
5341
5342 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5343
5344         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5345
5346         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5347         Fixes #22532.
5348
5349 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5350
5351         * reflection.c (mono_image_create_pefile): Handle the case when the
5352         entry point is not a MethodBuilder.
5353
5354         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5355         field to ReflectionMethod since it is not allways a builder.
5356
5357         * reflection.c (type_get_fully_qualified_name): New helper function to
5358         return the fully qualified name of a type.
5359
5360         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5361         type name for custom marshallers.
5362
5363         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5364
5365         * class.c (mono_class_setup_vtable): If a parent class already 
5366         implements an interface, use the implementing methods from that class.
5367         Fixes #53148.
5368
5369 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5370
5371         * threadpool.c: just return instead of ExitThread to allow for thread
5372         clean up earlier.
5373
5374 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5375
5376         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5377         when closing resource modules.
5378
5379         * reflection.c (mono_image_create_pefile): Handle the case when the
5380         entry point is not a MethodBuilder.
5381
5382         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5383         field to ReflectionMethod since it is not allways a builder.
5384
5385 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5386
5387         * marshal.c (mono_marshal_get_managed_wrapper): 
5388         mono_marshal_alloc takes native int so CONV_I
5389         the arg for 64bits.
5390
5391 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5392
5393         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5394         tokens in the cattr table. Fixes #53108.
5395
5396 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5397
5398         * loader.c: don't trim ".dll" before looking up in the config file.
5399         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5400
5401 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5402
5403         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5404         Return the module which contains the resource as well.
5405         (ves_icall_System_Reflection_Module_Close): New icall.
5406
5407         * appdomain.c: Bump corlib version number.
5408
5409         * image.c (mono_image_addref): New public function.
5410
5411         * assembly.c: Call mono_image_addref.
5412
5413         * reflection.c (mono_module_get_object): Increase reference count of 
5414         the image.
5415
5416         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5417         Fixes #22532.
5418
5419         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5420         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5421         proper exceptions on DllImport problems.
5422
5423 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5424
5425         * class.c, metadata.c: eliminate CSIZE macro.
5426
5427 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5428
5429         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5430         * object.h: Added async_callback field in MonoAsyncResult.
5431         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5432         * verify.c: Added async_callback in MonoAsyncResult layout.
5433
5434 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5435
5436         * reflection.c (mono_reflection_get_custom_attrs): Add support
5437         for Modules.
5438
5439 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5440
5441         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5442         marshalling.
5443         (mono_marshal_method_from_wrapper): Add null pointer check.
5444
5445 2004-01-16  Martin Baulig  <martin@ximian.com>
5446
5447         * debug-mono-symfile.h: Set version number to 36 and reflect
5448         latest symbol writer changes.
5449
5450 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5451
5452         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5453         multi-dimensional arrays.
5454         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5455         (mono_class_from_mono_type): Use bounded_array_class_get.
5456         
5457         * class.c (mono_bounded_array_class_get): New function which takes
5458         a 'bounded' bool argument to distinguish vectors from one dimensional
5459         arrays.
5460
5461         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5462         bounded_array_class_get if the array has bounds.
5463
5464         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5465         Search modules loaded using AssemblyBuilder:AddModule as well.
5466
5467 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5468
5469         * appdomain.c: increased corlib version.
5470         * filewatcher.c: removed g_print.
5471         * icall.c:
5472         (get_property_info): only allocate what is actually requested.
5473         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5474
5475 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5476
5477         * Makefile.am: added filewatcher.[ch]
5478         * filewatcher.[ch]: FileSystemWatcher runtime support.
5479         * icall.c: added new FSW icalls.
5480
5481 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5482
5483         * string-icalls.c: fix stringbuilder regression as suggested by
5484         Iain McCoy <iain@mccoy.id.au>.
5485
5486 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5487
5488         * process.c (process_read_stringtable_block): Recognize '007f' as
5489         a language neutral stringtable block.
5490
5491 2004-01-12  Patrik Torstensson
5492
5493         * object.h (MonoStringBuilder) : Changed layout to support our
5494         new stringbuilder class.
5495         * marshal.c: Change marshalling to support the new layout of 
5496         string builder.
5497         * appdomain.c: increased version number because new layout of
5498         string builder.
5499
5500 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5501
5502         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5503         assembly name as an string instead of an AssemblyName, since it is
5504         easier to extract info from it.
5505
5506         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5507         the culture subdirectories too. Fixes #52231.
5508
5509 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5510
5511         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5512         It takes 2 new parameters with an optional name for the method to look
5513         for and case ignoring info.
5514
5515         * threadpool.c: removed unused variable.
5516
5517 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5518
5519         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5520         It takes 2 new parameters with an optional name for the property to look
5521         for and case ignoring info.
5522         Fixes bug #52753.
5523
5524 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5525
5526         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5527         Fix #52451.
5528
5529 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5530
5531         * appdomain.c:
5532         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5533         Fixes bug #52630.
5534
5535 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5536
5537         * reflection.c: Add support for more than one unmanaged resource.
5538
5539         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5540         in field->def_value, as done in all other cases.
5541
5542         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5543         TypeBuilders.
5544
5545         * reflection.c (mono_reflection_create_runtime_class): Remove 
5546         errorneous assignment to klass->element_class, since it is already
5547         done in mono_reflection_setup_internal_class.
5548
5549 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5550
5551         * gc.c: added missing LeaveCriticalSection.
5552         * icall.c: indented a couple of lines.
5553         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5554         if we call EndInvoke inside a callback. Fixes bug #52601.
5555
5556 2004-01-07  Martin Baulig  <martin@ximian.com>
5557
5558         * mono-debug-debugger.h
5559         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5560
5561 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5562
5563         * appdomain.c: Use messages in NotImplementedException.
5564
5565         * exception.c (mono_get_exception_not_implemented): Now this takes
5566         a message argument.
5567
5568         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5569         exception instead of g_asserting an aborting when something is not
5570         implemented.
5571
5572         Add some inline docs.
5573
5574 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5575
5576         * reflection.h: Update after changes to object layout.
5577
5578         * reflection.c: Implement saving of unmanaged aka win32 resources.
5579
5580         * appdomain.c: Bump version number.
5581
5582         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5583         Handle missing domains gracefully.
5584
5585 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5586
5587         * file-io.c : On Windows, there are much more invalid_path_chars.
5588
5589 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5590
5591         * class.h, object.c: prepare for GetType () speedup.
5592
5593 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5594
5595         * profiler.c: workaround for --profile null reference exception on
5596           cygwin. Patch by Patrik Torstensson.
5597
5598 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5599
5600         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5601         make work for unaligned access.
5602
5603 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5604
5605         * class.c: small cleanup (class->fields [i] -> field).
5606         * image.c: check address of metadata is valid.
5607
5608 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5609
5610         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5611         search the list of loaded assemblies.
5612
5613         * reflection.c (mono_reflection_type_from_name): Use 
5614         mono_assembly_loaded instead of mono_image_loaded.
5615
5616         * reflection.c: Fix warnings.
5617
5618 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5619
5620         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5621         is dynamic. This is needed since an assembly can contain both dynamic and
5622         non-dynamic images.
5623
5624         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5625         assembly->dynamic.
5626
5627         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5628
5629         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5630         to store modules loaded using AddModule.
5631
5632         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5633         on Modules.
5634
5635         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5636
5637         * reflection.c (mono_image_fill_export_table_from_module): New function to
5638         fill out the EXPORTEDTYPES table from a module.
5639
5640         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5641         into a separate function. Also handle loaded non-dynamic modules.
5642
5643         * reflection.c (mono_image_basic_init): Fix memory allocation.
5644
5645         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5646
5647         * assembly.c (mono_assembly_load_references): Make this public.
5648
5649 2003-12-19  Martin Baulig  <martin@ximian.com>
5650
5651         * class.c (mono_class_initialize_generic): Made this static, take
5652         a `MonoGenericInst *' instead of a `MonoClass *'.
5653         (mono_class_from_generic): Call mono_class_initialize_generic()
5654         unless we're already initialized or being called from
5655         do_mono_metadata_parse_generic_inst().
5656
5657         * class.h (MonoGenericInst): Added `initialized' and
5658         `init_pending' flags.
5659
5660         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5661         `mono_class_init (gklass)' or mono_class_initialize_generic()
5662         here; set `generic_inst->init_pending' while parsing the
5663         `type_argv'.
5664
5665 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5666
5667         * locales.c: include string.h for memxxx prototypes
5668
5669 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5670
5671         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5672         constructor when accessing literal fields.
5673
5674 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5675
5676         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5677
5678         * reflection.c (assembly_add_resource_manifest): New function to fill
5679         the MANIFESTRESOURCE table.
5680
5681         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5682
5683         * reflection.h: Update to changes in class layout.
5684
5685         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5686         Reenable call to mono_runtime_is_shutting_down ().
5687
5688         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5689         determine if the runtime is shutting down.
5690
5691 2003-12-16  Jackson Harper <jackson@ximian.com>
5692
5693         * icall.c: comment out call to mono_runtime_is_shutting_down to
5694         fix build.
5695         
5696 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5697
5698         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5699         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5700
5701 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5702
5703         * reflection.c: move definition of swap_with_size
5704         to before its first call
5705
5706 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5707
5708         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5709
5710         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5711         icall.
5712
5713         * object.c: Fix warnings.
5714
5715         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5716         members if FlattenHierarchy is set.
5717
5718         * reflection.c (mono_image_add_decl_security): New function to emit
5719         declarative security.
5720
5721         * reflection.h reflection.c: Add support for declarative security.
5722
5723         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5724         
5725 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5726
5727         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5728         
5729         * appdomain.c verify.c: Moved corlib version checking into its own
5730         function in appdomain.c since it needs to create vtables etc.
5731
5732 2003-12-13  Patrik Torstensson <p@rxc.se>
5733
5734         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5735         instead of unwrapped server.
5736
5737 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5738
5739         * verify.c (check_corlib): Fix field index.
5740
5741 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5742
5743         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5744         GetGacPath icall.
5745
5746 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5747
5748         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5749         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5750         cope with sizeof(size_t) != sizeof(guint32).
5751
5752 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5753
5754         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5755         in case of failure.
5756
5757 2003-12-10  Mark Crichton <crichton@gimp.org>
5758
5759         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5760         in managed code.
5761
5762         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5763
5764 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5765
5766         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5767         marked as deleted.
5768
5769 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5770
5771         * verify.c (check_corlib): Handle the case when the version field is 
5772         initialized by a static constructor.
5773
5774 2003-12-08  Patrik Torstensson  <p@rxc.se>
5775
5776     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5777
5778 2003-12-08  Martin Baulig  <martin@ximian.com>
5779
5780         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5781         a MonoReflectionGenericParameter, also take the parameter index
5782         and name as arguments.
5783         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5784         (ves_icall_MonoGenericParam_initialize): New interncall.
5785         (ves_icall_Type_make_byref_type): New interncall.
5786
5787         * reflection.h (MonoReflectionGenericParam): Derive from
5788         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5789         `index' fields.
5790
5791         * reflection.c (mono_reflection_define_generic_parameter): Create
5792         and return a new MonoReflectionGenericParam; don't initialize the
5793         constraints here.
5794         (mono_reflection_initialize_generic_parameter): New public method;
5795         initializes the constraints and creates the `param->pklass'.
5796
5797 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5798
5799         * reflection.h reflection.c: Use the new fields 'num_types', 
5800         'num_fields' and 'num_methods' to track the number of types etc.
5801
5802         * verify.c (check_corlib): Check corlib version number.
5803
5804 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5805
5806         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5807         function works on all methods.
5808
5809 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5810
5811         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5812         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5813         the custom_type_info flag of the transparent proxy.
5814         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5815         objects that supports IRemotingTypeInfo.
5816         * object.h: Added custom_type_info field in transparent proxy.
5817
5818 2003-12-06  Martin Baulig  <martin@ximian.com>
5819
5820         * class.c (mono_class_create_from_generic): Removed.
5821         (mono_class_from_generic): Check `ginst->klass' before doing
5822         anything else.  This is important to fully support "recursive"
5823         generic types.
5824
5825         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5826         empty `generic_inst->klass' before doing anything else.
5827
5828 2003-12-06  Dick Porter  <dick@ximian.com>
5829
5830         * verify.c: 
5831         * object.h:
5832         * icall.c:
5833         * locales.c: Use C structs to access class fields.  Don't do a
5834         conversion between MonoString and UChar because both are
5835         platform-endian UTF-16.  Compare now takes startindex and count
5836         parameters.  Add a char overload for IndexOf.  Speed up the
5837         invariant string IndexOf.
5838
5839 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5840
5841         * Makefile.am (monosn_LDADD): Fix parallel build.
5842
5843 2003-12-04  Martin Baulig  <martin@ximian.com>
5844
5845         * icall.c
5846         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5847         (ves_icall_Type_make_array_type): New interncall.       
5848
5849 2003-12-04  Martin Baulig  <martin@ximian.com>
5850
5851         * locales.c: also change it in the !HAVE_ICU case.
5852
5853 2003-12-04  Dick Porter  <dick@ximian.com>
5854
5855         * icall.c:
5856         * locales.c: construct_compareinfo is now in CompareInfo, not
5857         CultureInfo.
5858
5859 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5860
5861         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5862         image->files array.
5863
5864         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5865         table as well.
5866
5867         * assembly.c (mono_assembly_load_references): Only load references
5868         once.
5869
5870         * class.c (mono_class_from_name): Avoid linear search of the 
5871         EXPORTEDTYPE table.
5872
5873         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5874
5875 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5876
5877         * image.h (MonoImage): Add 'field_cache' field.
5878
5879         * loader.c (mono_field_from_token): Cache field lookups.
5880         
5881         * reflection.c (mono_module_get_object): Fix name property.
5882
5883         * icall.c (ves_icall_get_enum_info): Update after changes to 
5884         mono_metadata_get_constant_index ().
5885
5886         * icall.c: Get rid of get_type_info icall, use a separate icall for
5887         each type property to avoid needless memory allocations. Fixes #51514.
5888
5889         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5890         to avoid needless binary searches.
5891
5892         * class.c (class_compute_field_layout): Move the initialization of
5893         field->def_value to mono_class_vtable ().
5894
5895         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5896         non-corlib types.
5897
5898         * object.c (mono_object_allocate): Make it inline.
5899
5900         * object.c (mono_object_allocate_spec): Make it inline.
5901         
5902 2003-12-02  Dick Porter  <dick@ximian.com>
5903
5904         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5905         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5906
5907 2003-12-01  Dick Porter  <dick@ximian.com>
5908
5909         * threads.c: Fix signature and call in CreateMutex and
5910         CreateEvent.
5911
5912 2003-12-01  Dick Porter  <dick@ximian.com>
5913
5914         * icall.c: 
5915         * locales.c: Implement string compares and searching
5916
5917         * object.h: Add extra Thread field
5918
5919 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5920
5921         * reflection.c (fixup_method): Add support for MonoCMethod.
5922
5923 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5924
5925         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5926
5927         * reflection.c (assembly_name_to_aname): Allow extra characters in
5928         assembly names. Fixes #51468.
5929
5930 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5931
5932         * exception.c (mono_exception_from_name_domain): New helper function.
5933
5934         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5935         exception object in the correct domain.
5936
5937         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5938         formatting + make a copy a the input data.
5939
5940         * loader.c (mono_get_method_from_token): Methods which contain
5941         native code do not have entries in the ImplMap.
5942
5943         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5944         Thanks to Gonzalo for spotting this.
5945         
5946         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5947         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5948
5949         * assembly.h (mono_assembly_load_from): Split the second part of 
5950         assembly loading into a new public function.
5951
5952         * exception.h (mono_get_exception_bad_image_format): New function.
5953
5954 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5955
5956         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5957         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5958         
5959         * icall.c: Add new icall for creating dynamic methods.
5960
5961         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5962
5963         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5964
5965         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5966         create a dynamic method.
5967
5968         * reflection.c (resolve_object): New helper function.
5969
5970         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5971         which manipulate it so they can also work on dynamic methods.
5972
5973         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5974         creating the MonoReflectionMethodAux structure if it is not needed.
5975         
5976         * reflection.h verify.c: Update after changes to object layout.
5977
5978         * reflection.c (method_builder_encode_signature): Fix compilation on
5979         gcc 2.95.x.
5980
5981 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5982
5983         * appdomain.h: Added support for context static fields. Added static_data
5984           field to MonoAppContext and renamed thread_static_fields to a more
5985           generic special_static_fields in MonoAppDomain, since it can now contain
5986           context static fields.
5987         * domain.c: Updated hashtable name.
5988         * object.c: Replaced field_is_thread_static() for a more generic
5989           field_is_special_static() which also checks for context static attribute.
5990           In mono_class_vtable(), added support for static context fields.
5991         * threads.c: Changed methods that manage thread static fields to more
5992           generic methods so they can be reused both for thread and context static
5993           data.
5994         * threads.h: Declared some new methods.
5995
5996 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5997
5998         * reflection.h: Update after changes to the managed types.
5999
6000         * reflection.c (encode_custom_modifiers): New helper function.
6001
6002         * reflection.c (method_encode_signature): Emit custom modifiers.
6003
6004         * reflection.c (field_encode_signature): Emit custom modifiers.
6005
6006 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
6007
6008         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
6009
6010         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
6011         implementation.
6012
6013         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
6014         icall.
6015
6016         * object.c (mono_field_get_value_object): New function.
6017
6018         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
6019         specific.
6020
6021 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
6022
6023         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
6024         return a preallocated out-of-memory exception instance.
6025
6026         * object.c (out_of_memory): Use the new function.
6027
6028         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
6029         flag is before the custom modifiers. Fixes #49802.
6030
6031 2003-11-16  Martin Baulig  <martin@ximian.com>
6032
6033         * class.c (mono_class_is_open_constructed_type): Implemented the
6034         MONO_TYPE_GENERICINST case.
6035
6036 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
6037
6038         * assembly.c (mono_assembly_fill_assembly_name): New function to
6039         fill out the MonoAssemblyName structure.
6040         (mono_assembly_open): Use the new function.
6041
6042         * icall.c (fill_reflection_assembly_name): New helper function.
6043
6044         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
6045         new function.
6046
6047         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
6048
6049 2003-11-15  Martin Baulig  <martin@ximian.com>
6050
6051         * class.c (mono_class_is_open_constructed_type): New public
6052         function; checks whether a type is an open constructed type,
6053         ie. whether it still contains type parameters.
6054         (mono_class_inflate_generic_type): If we're a type parameter and
6055         the inflated type is also a MONO_TYPE_(M)VAR, return the original
6056         type.
6057
6058         * class.h (MonoGenericInst): Added `guint32 is_open'.
6059
6060         * loader.c (method_from_methodspec): Check whether we're an open
6061         or closed constructed type and set `ginst->is_open'.
6062
6063         * reflection.c (mono_reflection_bind_generic_parameters): Check
6064         whether we're an open or closed constructed type and set
6065         `ginst->is_open'.
6066         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
6067         from open constructed types.
6068
6069 2003-11-15  Martin Baulig  <martin@ximian.com>
6070
6071         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6072         a generic instance (instead of a generic type declaration) with
6073         unbound generic parameters, bind them to our actual types.
6074
6075 2003-11-14  Martin Baulig  <martin@ximian.com>
6076
6077         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
6078
6079         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6080         an interface type, populate `res->interfaces' with instantiated
6081         versions of all the interfaces we inherit.
6082
6083 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
6084
6085         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
6086         when MONO_PATH is set but doesn't contain the install dir.
6087
6088 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6089
6090         * icall.c:
6091         (ves_icall_Type_GetInterfaces): don't return an interface twice when
6092         it's also implemented in base classes. Fixes bug #50927.
6093
6094 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
6095
6096         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
6097         if this method is called from a finalizer. Fixes #50913.
6098
6099 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
6100
6101         * threads.c: Implement VolatileRead/VolatileWrite
6102
6103         * icall.c: Add new icalls for VolatileRead/VolatileWrite
6104
6105 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6106
6107         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
6108         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
6109         2.95.3.
6110
6111         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
6112         from Peter Ross (pro@missioncriticalit.com).
6113         
6114 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
6115
6116         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
6117
6118 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6119
6120         * assembly.c (mono_assembly_load_references): Disable check because it
6121         triggers on older corlibs which lots of people have.
6122
6123 2003-11-12  Jackson Harper  <jackson@ximian.com>
6124
6125         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
6126         load corlib.dll if mscorlib.dll is not found.
6127         * assembly.h: Remove corlib name define.
6128         * class.c:
6129         * domain.c:
6130         * image.c: Change corlib name to mscorlib.
6131         
6132 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6133
6134         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
6135
6136 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
6137
6138         * appdomain.h: Added loader_optimization here to sync with the C#
6139         code, and add disallow_binding_redirects field.
6140
6141 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6142
6143         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
6144
6145         * reflection.c (mono_image_build_metadata): Fix crash on modules
6146         with no types.
6147
6148         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
6149
6150         * icall.c (ves_icall_get_method_info): Return callingConvention as
6151         well.
6152
6153         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
6154         namespaces from the EXPORTEDTYPE table as well.
6155
6156         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
6157         from all modules inside the assembly.
6158         
6159 2003-11-11  Martin Baulig  <martin@ximian.com>
6160
6161         * reflection.c (mono_reflection_bind_generic_parameters): Make
6162         this work for interfaces.
6163
6164 2003-11-11  Martin Baulig  <martin@ximian.com>
6165
6166         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
6167
6168 2003-11-11  Martin Baulig  <martin@ximian.com>
6169
6170         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
6171         "MonoInflatedMethod" and "MonoInflatedCtor".
6172
6173 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6174
6175         * reflection.c (resolution_scope_from_image): Use the assembly table
6176         from the manifest module, since other modules don't have it.
6177
6178         * debug-helpers.c (mono_type_full_name): New helper function.
6179
6180         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
6181
6182         * image.c (mono_image_load_file_for_image): New public function which
6183         is a replacement for the load_file_for_image in class.c.
6184
6185         * assembly.c (mono_assembly_load_module): A wrapper for the function
6186         above which does assembly association and reference loading too.
6187
6188         * class.c (mono_class_from_name): Call mono_assembly_load_module.
6189
6190 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6191
6192         * appdomain.c: not all of the attributes for the full assembly name
6193         are required and the order doesn't matter. Fixes bug #50787.
6194
6195 2003-11-10  Dick Porter  <dick@ximian.com>
6196
6197         * locales.c: Use platform-endian UTF16
6198
6199 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6200
6201         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6202         
6203 2003-11-10  Martin Baulig  <martin@ximian.com>
6204
6205         * metadata.c
6206         (mono_metadata_load_generic_params): Make this actually work.
6207
6208         * reflection.c (mono_reflection_bind_generic_parameters): If our
6209         parent is a generic instance, pass all the `types' to it, no
6210         matter whether it has the same number of type parameters or not.
6211
6212 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6213
6214         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6215
6216         * assembly.c (mono_assembly_load_references): Move the image<->assembly
6217         assignment code to this function so it gets called recursively for all
6218         modules.
6219
6220         * image.c (load_modules): Remove the assembly assignment since it is
6221         now done by mono_assembly_load_references.
6222         
6223         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
6224         Add 'module' argument.
6225         (mono_module_get_types): New helper function.
6226         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
6227
6228 2003-11-08  Martin Baulig  <martin@ximian.com>
6229
6230         * class.c (mono_class_inflate_generic_method): Interface method
6231         don't have a header.
6232
6233         * reflection.c (mono_image_get_methodspec_token): Take an
6234         additional `MonoGenericInst *' argument instead of reading it from
6235         the header; this is necessary to support interfaces.
6236         (mono_image_create_token): Pass the `MonoGenericInst *' from the
6237         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
6238         (inflated_method_get_object): Take an additional `MonoGenericInst *'
6239         argument.
6240
6241         * reflection.h (MonoReflectionInflatedMethod): Added
6242         `MonoGenericInst *ginst'.
6243
6244 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
6245
6246         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
6247
6248 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
6249
6250         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
6251
6252 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
6253
6254         * reflection.c 
6255         (reflection_methodbuilder_from_method_builder):
6256         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6257         initialize a ReflectionMethodBuilder structure.
6258         (mono_image_get_methodbuilder_token):
6259         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6260         tokens which point to types in another module inside the same assembly.
6261
6262         * reflection.c: Use the new helper functions.
6263         
6264         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6265
6266         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6267         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6268
6269         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6270         neccesary.
6271
6272         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6273         current module. Emit the manifest only for the main module.
6274
6275         * reflection.c (mono_image_create_token): Add assertion when a 
6276         memberref needs to be created.
6277
6278         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6279
6280         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6281         larger buffer for the custom attribute blob. Fixes #50637.
6282         
6283 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6284
6285         * threadpool.c: notify listener on async processing handles after
6286         invoking the async callback. Thanks to Zoltan.
6287
6288 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6289
6290         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6291         avoid code duplication.
6292
6293         * reflection.h (MonoDynamicImage): New type which is currently unused,
6294         but will be used through the ref.emit code in place of 
6295         MonoDynamicAssembly.
6296
6297         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6298         object layout.
6299
6300         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6301         a MonoDynamicImage instead of just a MonoImage.
6302         
6303         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6304         icalls to ModuleBuilder but keep their semantics, so they will work
6305         with moduleb->assemblyb. This will change later.
6306         
6307 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6308
6309         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6310         object layout.
6311
6312         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6313         main module, since it is now done by the managed code.
6314
6315 2003-11-03  Martin Baulig  <martin@ximian.com>
6316
6317         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6318         `ginst->klass' here.
6319         (method_encode_methodspec): Don't use the `ginst->generic_method's
6320         klass if it's a generic instance, use `ginst->klass' in this case.
6321
6322 2003-11-03  Martin Baulig  <martin@ximian.com>
6323
6324         * reflection.c (mono_image_get_generic_method_param_info):
6325         Removed, use mono_image_get_generic_param_info() instead.
6326         (mono_image_get_type_info): Write the GenericParam table before
6327         the Method table.  This is neccessary because in the GenericParam
6328         table, type parameters of the class (ie. '!0' etc.) must come
6329         before the ones from its generic methods (ie. '!!0' etc).
6330
6331 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6332
6333         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6334
6335 2003-11-02  Martin Baulig  <martin@ximian.com>
6336
6337         * reflection.c (create_generic_typespec): Take a
6338         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6339         the generic parameters from it.
6340
6341 2003-11-02  Martin Baulig  <martin@ximian.com>
6342
6343         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6344         instead of a `MonoClassField *' since we just need the type.
6345         (create_generic_typespec): New static function.  Creates a
6346         TypeSpec token for a generic type declaration.
6347         (mono_image_get_generic_field_token): New static function.
6348         (mono_image_create_token): If we're a FieldBuilder in a generic
6349         type declaration, call mono_image_get_generic_field_token() to get
6350         the token.
6351
6352 2003-11-02  Martin Baulig  <martin@ximian.com>
6353
6354         * reflection.h
6355         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6356         `MonoReflectionGenericInst *declaring_type' and
6357         `MonoReflectionGenericInst *reflected_type' fields.
6358
6359         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6360         `MonoReflectionGenericInst *declaring_type' and a
6361         `MonoReflectionGenericInst *reflected_type' argument instead of a
6362         single `MonoReflectionGenericInst *type' one.  Set
6363         `res->declaring_type' and `res->reflected_type' from them.
6364         (mono_reflection_inflate_field): Likewise.      
6365
6366 2003-11-02  Martin Baulig  <martin@ximian.com>
6367
6368         * class.c (mono_class_setup_vtable): Don't store generic methods
6369         in the vtable.  
6370
6371 2003-11-02  Martin Baulig  <martin@ximian.com>
6372
6373         * reflection.h (MonoReflectionGenericInst): Added
6374         `MonoReflectionType *declaring_type'.
6375
6376         * reflection.c (mono_reflection_bind_generic_parameters): Use
6377         `if (tb->parent)' instead of `klass->parent'.
6378
6379 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6380
6381         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6382         with an empty ASSEMBLY table.
6383
6384         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6385         variable in the inner and outer loops.
6386
6387 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6388
6389         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6390         argument.
6391
6392         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6393         
6394         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6395         icalls. Instead, do everything in managed code. This is needed since
6396         it is hard to restore the original domain etc. in unmanaged code in the
6397         presence of undeniable exceptions.
6398
6399         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6400         New icalls to push and pop appdomain refs.
6401
6402 2003-10-31  Martin Baulig  <martin@ximian.com>
6403
6404         * class.c (inflate_generic_type): Renamed to
6405         mono_class_inflate_generic_type() and made it public.
6406
6407         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6408         New interncall.
6409
6410         * loader.c (mono_field_from_memberref): Also set the retklass for
6411         typespecs.
6412
6413         * fielder.c (mono_image_get_inflated_field_token): New static
6414         method; creates a metadata token for an inflated field.
6415         (mono_image_create_token, fixup_method): Added support for
6416         "MonoInflatedField".
6417         (fieldbuilder_to_mono_class_field): New static function.
6418         (mono_reflection_inflate_field): New public function.
6419
6420         * reflection.h
6421         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6422         (MonoReflectionInflatedField): New typedef.     
6423
6424 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6425
6426         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6427         for Solaris and other platforms without s6_addr16
6428
6429 2003-10-30  Martin Baulig  <martin@ximian.com>
6430
6431         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6432         argument instead of two.
6433         (mono_class_inflate_generic_signature): Likewise.
6434         (inflate_generic_header): Likewise.
6435         (mono_class_inflate_generic_method): Likewise.  In addition, if
6436         `ginst->klass' is set, it becomes the new `method->klass'.
6437
6438         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6439         field.
6440
6441         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6442         first byte. [FIXME]
6443         (method_encode_methodspec): If we have generic parameters, create
6444         a MethodSpec instead of a MethodRef.
6445         (fixup_method): Added support for "MonoInflatedMethod" and
6446         "MonoInflatedCtor".
6447         (mono_image_create_token): Added support for "MonoInflatedMethod"
6448         and "MonoInflatedCtor".
6449         (inflated_method_get_object): New static function; returns a
6450         managed "System.Reflection.MonoInflatedMethod" object.
6451         (mono_reflection_bind_generic_method_parameters): Return a
6452         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6453         (mono_reflection_inflate_method_or_ctor): Likewise.
6454         (mono_image_get_generic_method_param_info): Initialize unused
6455         fields to zero.
6456         (mono_image_get_generic_param_info): Likewise.
6457
6458         * reflection.h (MonoReflectionInflatedMethod): New public
6459         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6460         "S.R.MonoInflatedCtor" classes.
6461
6462         * loader.c (method_from_memberref): If we're a TypeSpec and it
6463         resolves to a generic instance, inflate the method.
6464
6465 2003-10-28  Dick Porter  <dick@ximian.com>
6466
6467         * object.c (mono_runtime_run_main): Convert command-line arguments
6468         into utf8, falling back to the user's locale encoding to do so.
6469
6470 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6471
6472         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6473         at this time.
6474
6475         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6476
6477         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6478         up icalls at method definition time. Partially fixes #33569.
6479
6480 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6481
6482         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6483         marshalling of arrays. Fixes #50116.
6484
6485         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6486
6487         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6488         points to a vtable in the dying appdomain.
6489
6490         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6491         listeners into unmanaged code inside the lock.
6492
6493         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6494         domains and add some comments.
6495
6496 2003-10-25  Martin Baulig  <martin@ximian.com>
6497
6498         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6499
6500         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6501
6502         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6503         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6504         currently parsing.  Create the generic class and store it in
6505         `generic_inst->klass' before parsing the type arguments.  This is
6506         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6507         for an example.
6508         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6509         to support recursive typespec entries.
6510
6511         * class.c (mono_class_setup_parent): If our parent is a generic
6512         instance, we may get called before it has its name set.
6513         (mono_class_from_generic): Splitted into
6514         mono_class_create_from_generic() and mono_class_initialize_generic().
6515
6516 2003-10-25  Martin Baulig  <martin@ximian.com>
6517
6518         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6519         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6520         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6521         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6522
6523         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6524         (create_typespec): Likewise.
6525         (mono_reflection_bind_generic_parameters): Return a
6526         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6527         (mono_reflection_inflate_method_or_ctor): New public function.
6528
6529         * reflection.h (MonoReflectionGenericInst): New typedef.        
6530
6531 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6532
6533         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6534         inside the domain lock. Fixes #49993.
6535         
6536         * object.c (mono_class_vtable): When typed allocation is used, 
6537         allocate vtables in the GC heap instead of in the mempool, since the
6538         vtables contain GC descriptors which are used by the collector even
6539         after the domain owning the mempool is unloaded.
6540
6541         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6542
6543         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6544         reflect what it does. Also invalidate mempools instead of freeing
6545         them if a define is set.
6546
6547         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6548         of the appdomain.
6549         
6550         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6551         hold the finalizable objects in this domain.
6552
6553         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6554         appdomain.
6555
6556         * appdomain.c (mono_domain_set): New function to set the current
6557         appdomain, but only if it is not being unloaded.
6558
6559         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6560         appdomain which is being unloaded.
6561         
6562         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6563         unloading of the root appdomain.
6564
6565         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6566         icall to execute a method in another appdomain. Intended as a 
6567         replacement for InternalSetDomain, which can confuse the code 
6568         generation in the JIT.
6569
6570         * appdomain.c (mono_domain_is_unloading): New function to determine
6571         whenever an appdomain is unloading.
6572
6573         * appdomain.c (mono_domain_unload): New function to correctly unload
6574         an appdomain.
6575
6576         * assembly.c (mono_assembly_load_references): Check that an assembly
6577         does not references itself.
6578
6579         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6580         domain manually, it asks the finalizer thread to do it, then waits for
6581         the result. Also added a timeout.
6582
6583         * icall.c: Register the new icalls.
6584
6585         * threads.h threads.c: Export the mono_gc_stop_world and 
6586         mono_gc_start_world functions.
6587         
6588         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6589         function to fill out the mempool with 0x2a.
6590
6591 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6592
6593         * reflection.h (MonoReflectionMethodAux): New structure to store
6594         information which is rarely used, thus is not in the MonoMethod
6595         structure.
6596
6597         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6598         store the aux info.
6599
6600         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6601         and marshalling info into the aux structure.
6602
6603         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6604         from the aux structure.
6605
6606         * loader.c (mono_method_get_param_names): Retrieve the param names from
6607         the aux structure.
6608         
6609 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6610
6611         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6612         warning.
6613
6614 2003-10-21  Dick Porter  <dick@ximian.com>
6615
6616         * socket-io.c
6617         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6618         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6619
6620 2003-10-21  Martin Baulig  <martin@ximian.com>
6621
6622         * reflection.c (mono_reflection_bind_generic_parameters):
6623         `klass->parent' is NULL for interfaces.
6624
6625 2003-10-21  Martin Baulig  <martin@ximian.com>
6626
6627         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6628
6629 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6630
6631         * exception.c (mono_exception_from_name_msg): New helper function for
6632         creating exceptions and initializing their message field.
6633
6634         * exception.c: Simplify functions using the new helper.
6635
6636         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6637         New function.
6638
6639         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6640         mono_raise_exception, since otherwise gcc doesn't generate the function
6641         epilog for raise_exception, confusing the stack unwinding in the JIT.
6642         Fixes #45043.
6643
6644         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6645         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6646         Fixes #49499.
6647
6648 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6649
6650         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6651         utf8.
6652
6653 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6654
6655         * icall.c: Removed GetUninitializedObject method because
6656           AllocateUninitializedClassInstance does the same.
6657
6658 2003-10-18  Martin Baulig  <martin@ximian.com>
6659
6660         * class.c (inflate_generic_signature): Renamed to
6661         mono_class_inflate_generic_signature() and made it public.
6662         (my_mono_class_from_generic_parameter): New static function; if we
6663         don't already have the generic parameter's MonoClass, create a
6664         very simple one which is just used internally in the runtime and
6665         not passed back to managed code.
6666
6667         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6668
6669         * metadata.h (MonoMethodSignature): Moved the
6670         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6671         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6672
6673         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6674         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6675         interncall on the MonoMethod class, not on MethodInfo.
6676         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6677         calling mono_reflection_bind_generic_method_parameters() directly.
6678
6679         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6680         return the already computed `method->signature'.
6681         (method_from_methodspec): New static function to load a method
6682         from a MethodSpec entry.
6683         (mono_get_method_from_token): Call the new method_from_methodspec()
6684         for MethodSpec tokens.  
6685         (mono_get_method_from_token): If we're a generic method, load the
6686         type parameters.
6687
6688         * reflection.c (mono_image_get_memberref_token): Allow
6689         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6690         table.
6691         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6692         (mono_image_create_token): First check whether it's a generic
6693         method (so we'd need to create a MethodSpec), then do the other
6694         two alternatives.
6695         (mono_reflection_bind_generic_method_parameters): Return a
6696         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6697         called directly from the interncall.
6698
6699 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6700
6701         * reflection.c (load_public_key): Move loading of the public key
6702         into managed code.
6703
6704         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6705
6706         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6707         fields.
6708
6709         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6710         culture, hash_alg and public_key. Fixes #49555.
6711
6712 2003-10-17  Martin Baulig  <martin@ximian.com>
6713
6714         * class.h (MonoGenericInst): Moved this declaration here and added
6715         `MonoMethod *generic_method'.
6716
6717         * icall.c
6718         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6719         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6720
6721         * metadata.c (mono_metadata_type_equal): Two types of
6722         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6723         index; ie. don't compare the address of the `MonoGenericParam'
6724         structure.
6725         (mono_metadata_load_generic_params): Removed the `MonoMethod
6726         *method' argument.
6727
6728         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6729         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6730
6731         * reflection.c (method_encode_signature): Encode the number of
6732         generic parameters.
6733         (encode_generic_method_sig): New static function.
6734         (method_encode_methodspec): New static function; creates an entry
6735         in the MethodSpec table for a generic method.
6736         (mono_image_get_methodspec_token): New static function.
6737         (mono_image_create_token): Call mono_image_get_methodspec_token()
6738         for generic methods.
6739         (mono_reflection_bind_generic_method_parameters): New public
6740         function.  Instantiates a generic method.
6741
6742 2003-10-16  Martin Baulig  <martin@ximian.com>
6743
6744         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6745         *gen_params' here from MonoMethodHeader.
6746
6747         * metadata.c (mono_metadata_parse_method_signature): If we have
6748         generic parameters, initialize `method->gen_params' and then set
6749         the correct `type->data.generic_param' in all the parameters.
6750
6751 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6752
6753         * threads.c (mono_threads_get_default_stacksize): New function to 
6754         return the default stacksize.
6755
6756         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6757         termination of the finalizer thread, since the previous method had
6758         race conditions. Fixes #49628.
6759
6760         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6761         as for the other managed threads.
6762
6763 2003-10-16  Martin Baulig  <martin@ximian.com>
6764
6765         * class.c (inflate_generic_signature): Copy `generic_param_count'
6766         and `gen_params'.
6767
6768         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6769         New interncall.
6770
6771         * metadata.c (mono_metadata_parse_method_signature): Actually set
6772         the `method->generic_param_count' here.
6773         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6774
6775 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6776
6777         * object.h: Add a new field to TypedRef to simplify the implementation
6778         of the REFANY opcodes in the JIT.
6779
6780         * icall.c: Make use of the new field.
6781
6782         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6783         dynamically.
6784
6785 2003-10-15  Martin Baulig  <martin@ximian.com>
6786
6787         * class.c (mono_class_from_gen_param): Renamed to
6788         mono_class_from_generic_parameter() and moved most of the
6789         functionality from mono_reflection_define_generic_parameter()
6790         here; ie. we create a "real" class here.
6791         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6792         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6793         previously been called.
6794
6795         * class.h (MonoGenericParam): Moved the declaration of this struct
6796         here from metadata.h and added `MonoMethod *method'.
6797
6798         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6799         interncall.
6800
6801         * loader.c (mono_get_method_from_token): If we have any generic
6802         parameters, call mono_metadata_load_generic_params() to read them
6803         from the MONO_TABLE_GENERICPAR.
6804
6805         * metadata.c (mono_metadata_load_generic_params): Added
6806         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6807
6808         * metadata.h (MonoMethodSignature): Replaced
6809         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6810         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6811
6812         * reflection.c (mono_reflection_define_generic_parameter): Moved
6813         most of the functionality into the new
6814         mono_class_from_generic_parameter(); set the `method' field if
6815         we're a method parameter.       
6816
6817 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6818
6819         * marshal.c (emit_struct_conv): if native size is 0
6820         emit no code.
6821
6822 2003-10-14  Martin Baulig  <martin@ximian.com>
6823
6824         * icall.c: The generics API has changed in the spec since it was
6825         added to System.Type; these modifications make it match the spec
6826         again.
6827         (ves_icall_Type_GetGenericParameters): Renamed to
6828         `ves_icall_Type_GetGenericArguments'.
6829         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6830         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6831         `ves_icall_MonoType_get_HasGenericArguments'.
6832         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6833         `ves_icall_MonoType_get_IsGenericParameter'.
6834         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6835         this is no interncall anymore.
6836         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6837         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6838
6839 2003-10-14  Martin Baulig  <martin@ximian.com>
6840
6841         * reflection.c (mono_reflection_bind_generic_parameters): Also
6842         inflate generic methods if we're reading the class from IL.
6843
6844 2003-10-13  Martin Baulig  <martin@ximian.com>
6845
6846         * reflection.c (mono_reflection_define_generic_parameter): This
6847         method isn't called directly from the icall anymore; take a
6848         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6849         method generic parameters.
6850         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6851         (method_builder_encode_signature): Encode generic parameters.
6852         (mono_image_get_method_info): Write generic params to the
6853         MONO_TABLE_GENERICPARAM table.
6854
6855         * reflection.h (MonoReflectionMethodBuilder): Added
6856         `MonoArray *generic_params'.
6857
6858         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6859
6860         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6861         wrapper for mono_reflection_define_generic_parameter().
6862         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6863
6864 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6865
6866         * marshal.h: Add missing function to fix build.
6867
6868         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6869         the SetLastError pinvoke attribute.
6870
6871         * marshal.c (mono_marshal_set_last_error): New helper function called
6872         by the generated code.
6873         
6874         * marshal.c (mono_mb_emit_branch): New helper function.
6875
6876         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6877
6878         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6879         classes as parameters and return values of delegates. Fixes #29256. 
6880
6881 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6882
6883         * locales.c: use gint32 in non HAVE_ICU case
6884
6885 2003-10-11  Martin Baulig  <martin@ximian.com>
6886
6887         * mono-debug.c (mono_debug_add_method): Added a workaround for
6888         bug #48591.
6889
6890 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6891
6892         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6893         delegates passed to native code must use the STDCALL calling 
6894         convention. Fixes #35987.
6895
6896 2003-10-10  Martin Baulig  <martin@ximian.com>
6897
6898         * class.c (inflate_generic_type): If we're inflating for a generic
6899         type instance (and not for a generic method), return
6900         MONO_TYPE_MVAR unchanged.
6901
6902 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6903
6904         * string-icalls.c: Join ignores null strings in the source array.
6905         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6906         * threads.c: GetAvailableTheads is slightly more accurate.
6907
6908 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6909
6910         * threads.h threads.c : add mono_threads_set_default_stacksize
6911         and pass default to CreateThread calls.
6912
6913 2003-10-09  Dick Porter  <dick@ximian.com>
6914
6915         * icall.c:
6916         * locales.h:
6917         * locales.c: Internal calls for constructing CultureInfo and
6918         related objects from libicu (if its available.)
6919
6920 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6921
6922         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6923
6924 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6925
6926         * threadpool.c: added an argument to async_invoke_thread that is the
6927         item to process, pass the MonoAsyncResult to the thread start function
6928         when creating a new thread. This way we don't need to acquire any lock
6929         when we're creating a new thread. Readded a semaphore for faster
6930         response times (instead of that Sleep i added).
6931
6932 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6933
6934         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6935         get daylight change dates better on Windows, fix handling
6936         of platforms without tm_gmtoff.
6937
6938 2003-10-06  Martin Baulig  <martin@ximian.com>
6939
6940         * class.c (inflate_generic_method): Renamed to
6941         mono_class_inflate_generic_method() and made public.
6942         (mono_class_init): Don't inflate the generic methods here.
6943         (mono_class_from_generic): Added `gboolean inflate_methods'
6944         argument.  Inflate the methods here.
6945
6946         * loader.c (mono_method_get_param_names): Ignore instances of
6947         generic types for the moment.
6948
6949         * reflection.c (fixup_method): Added support for inflated methods.
6950         (mono_image_create_token): Use mono_image_get_methodref_token()
6951         for inflated methods.
6952         (mono_custom_attrs_from_param): Ignore instances of generic types
6953         for the moment.
6954         (mono_reflection_bind_generic_parameters): New public function.
6955         Moved all the functionality from
6956         ves_icall_Type_BindGenericParameters() here and added support for
6957         dynamic types.
6958         (mono_reflection_define_generic_parameter): Initialize
6959         `klass->methods' here.
6960
6961         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6962         functionality into mono_reflection_define_generic_parameter().
6963         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6964         TypeBuilder, return that TypeBuilder.
6965
6966 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6967
6968         * appdomain.c: removed mono_delegate_semaphore.
6969
6970         * threadpool.c:
6971         (mono_thread_pool_add): moved hash table creation inside and the thread 
6972         creation outside of the critical region.
6973         (mono_thread_pool_finish): removed obsolete code.
6974         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6975         continue or exit the thread depending on the queue.
6976
6977 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6978
6979         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6980         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6981         handle more bool marshalling options
6982
6983 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6984
6985         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6986         arrays of structs. Also add a more descriptive error message when
6987         a structure member is marshalled as LPArray.
6988
6989 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6990
6991         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6992         marshalling arrays of complex types. Fixes #29098. Also remove an
6993         usused and incomplete function.
6994
6995 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6996
6997         * gc.c: report heap_size - free_bytes as total memory allocated
6998         (bug#49362).
6999
7000 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
7001
7002         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
7003         fix timezone handling problems on Windows.
7004         
7005         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
7006         asserts when the year is outside the range handled by ms the functions.
7007
7008         * class.c (setup_interface_offsets): If the class is an interface,
7009         fill out its interface_offsets slot.
7010
7011 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7012
7013         * threadpool.c: mark threadpool threads as background.
7014
7015 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
7016
7017         * decimal.c - define DECINLINE to nothing if not using GCC
7018
7019 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
7020
7021         * assembly.c: More refcount fixes.
7022
7023 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7024
7025         * string-icalls.c: if we're not trimming, return the same string.
7026         When not splitting, don't create a new string.
7027
7028 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7029
7030         * image.c:
7031         (mono_image_open): increment the ref_count inside the critical section.
7032
7033 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
7034
7035         * image.c (mono_image_open): Fix reference counting bug.
7036
7037 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
7038
7039         * marshal.c (mono_marshal_type_size) struct alignment changed for 
7040         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
7041         64bits. Avoid leak in mono_marshal_get_native_wrapper when
7042         mono_lookup_pinvoke_call throws.        
7043
7044 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
7045
7046         * reflection.c (mono_reflection_parse_type): Fix #49114.
7047
7048         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
7049         temporary workaround for cygwin header problem.
7050
7051         * object.c (mono_object_isinst): Synchronize this with the code
7052         generated by the JIT for casts.
7053
7054 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
7055
7056         * reflection.c (encode_type): Fix #38332.
7057
7058 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
7059
7060         * marshal.c (mono_marshal_method_from_wrapper): New function to return
7061         the original method from the wrapper method.
7062
7063 2003-09-25  Martin Baulig  <martin@ximian.com>
7064
7065         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
7066         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
7067         (ves_icall_Type_get_IsGenericInstance): New interncall.
7068
7069 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
7070
7071         * object.c: fix cast warning in big endian code.
7072
7073 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
7074
7075         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
7076         
7077 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7078
7079         * assembly.c: don't call check_env from mono_assembly_load. It's
7080         already done once in mono_assemblies_init and may cause headaches when
7081         multiple threads are loading assemblies.
7082
7083 2003-09-19  Martin Baulig  <martin@ximian.com>
7084
7085         * reflection.c (mono_reflection_define_generic_parameter): Don't
7086         allocate `klass->methods', set `klass->flags' to
7087         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
7088
7089 2003-09-18  Martin Baulig  <martin@ximian.com>
7090
7091         * class.c (mono_class_init): Don't create `class->methods' if it's
7092         already initialized.
7093
7094         * metadata.c (mono_metadata_load_generic_params): Make this
7095         actually work.
7096
7097         * reflection.c (mono_reflection_define_generic_parameter): Set
7098         parent class and interfaces from the constraints.
7099
7100         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
7101         to keep this struct in sync with the declaration in TypeBuilder.cs.
7102
7103 2003-09-17  Martin Baulig  <martin@ximian.com>
7104
7105         * metadata.h (MonoType): Replaced the data's `int type_param'
7106         field with `MonoGenericParam *generic_param'.
7107         (MonoGenericParam): Added `MonoClass *klass'.
7108
7109         * class.c (mono_class_from_gen_param): Removed the
7110         `MonoImage *image' and `int type_num' arguments.
7111
7112         * metadata.c (mono_metadata_parse_generic_param): New static
7113         method; creates a MonoGenericParam which just contains the index.
7114         (do_mono_metadata_parse_type): Call
7115         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
7116         MONO_TYPE_MVAR.
7117
7118         * reflection.c (mono_image_typedef_or_ref): Generic type
7119         parameters may be in the same assembly, but never use a typedef
7120         for them.
7121         (mono_reflection_define_generic_parameter): We're now creating a
7122         "real" class for the type parameter; it's now safe to call
7123         mono_class_from_mono_type() on the class'es type, it'll do the
7124         right thing.
7125
7126 2003-09-16  Martin Baulig  <martin@ximian.com>
7127
7128         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
7129         `symfile->range_entry_size' and `symfile->class_entry_size' here;
7130         the `symfile' data structure must be fully initialized before it
7131         gets added to the table.
7132
7133 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
7134
7135         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
7136
7137         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
7138         class init trampolines.
7139
7140 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
7141
7142         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
7143         to the built-in profiler to turn off time and allocation profiling
7144         respectively.
7145
7146 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
7147
7148         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
7149         g_direct_equal.
7150
7151         * debug-helpers.c (mono_method_full_name): Print the wrapper type
7152         in human readable form.
7153
7154 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
7155
7156         * reflection.c icall.c: Fixed warnings.
7157
7158         * image.c (load_class_names): Use a temporary hash table to hold the
7159         namespaces in order to avoid doing many string comparisons.
7160
7161         * image.h: Fix typo.
7162
7163         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
7164         Pass NULL instead of g_direct_equal to the GHashTable constructor 
7165         since the NULL case is short-circuited inside g_hash_table_lookup, 
7166         leading to better performance.  
7167
7168         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
7169         obtain the first custom attribute for a given index. Depends on the
7170         CustomAttribute table being sorted by the parent field.
7171
7172         * reflection.c (mono_custom_attrs_from_index): Use the new function 
7173         for better performance.
7174
7175 2003-09-07  Martin Baulig  <martin@ximian.com>
7176
7177         * class.c (mono_class_init): If we're a generic instance, inflate
7178         all our methods instead of loading them from the image.
7179         (mono_class_from_generic): Set `class->methods = gklass->methods'.
7180
7181 2003-09-07  Martin Baulig  <martin@ximian.com>
7182
7183         * mono-debug-debugger.c: Added support for constructors.
7184
7185 2003-09-06  Martin Baulig  <martin@ximian.com>
7186
7187         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
7188         New interncall.
7189
7190         * reflection.c (mono_reflection_setup_generic_class): Call
7191         ensure_runtime_vtable() to create the vtable.
7192
7193 2003-09-05  Martin Baulig  <martin@ximian.com>
7194
7195         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
7196         MONO_TYPE_MVAR.
7197
7198 2003-09-04  Martin Baulig  <martin@ximian.com>
7199
7200         * reflection.c (mono_reflection_define_generic_parameter): Generic
7201         parameters start with zero.
7202
7203 2003-09-04  Martin Baulig  <martin@ximian.com>
7204
7205         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7206
7207         * reflection.h (MonoReflectionGenericParam): New typedef.
7208         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
7209         the generic parameters from the managed TypeBuilder.
7210
7211         * reflection.c (mono_reflection_define_generic_parameter): New function.
7212         (mono_reflection_create_runtime_class): Encode generic parameters.
7213         (mono_reflection_setup_generic_class): New function; this is
7214         called after adding adding all generic params to the TypeBuilder.
7215         (encode_type): Added MONO_TYPE_VAR.
7216
7217 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
7218
7219         * class.h class.c (mono_class_needs_cctor_run): Moved this method
7220         here from the JIT.
7221
7222         * assembly.h assembly.c: Moved the AOT loading code into an assembly
7223         load hook.
7224
7225 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
7226
7227         * reflection.h reflection.c class.h class.c: Delete duplicate 
7228         definition of mono_type_get_name () from reflection.c and export the
7229         one in class.c.
7230
7231         * class.c: Class loading fixes from Bernie Solomon 
7232         (bernard@ugsolutions.com).
7233
7234         * reflection.c: Endianness fixes from Bernie Solomon 
7235         (bernard@ugsolutions.com).
7236         
7237 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
7238
7239         * assembly.h assembly.c: Define a file format version for AOT
7240         libraries.
7241         
7242         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
7243
7244         * appdomain.h (MonoJitInfo): New field to determine whenever the
7245         code is domain neutral.
7246         
7247 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
7248
7249         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
7250
7251 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
7252
7253         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7254         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7255         Avoid caching the result since strings must be domain specific. Fixes
7256         #48050.
7257
7258 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7259
7260         * marshal.c (mono_marshal_init): Make this callable multiple times
7261         since it is hard to find a correct place to call it.
7262
7263         * object.c (mono_runtime_class_init): Execute static constructors in
7264         the correct appdomain.
7265
7266         * image.c (build_guid_table): Handle the case when multiple images have
7267         the same GUID.
7268
7269 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7270
7271         * icall.c: added a couple of icalls for System.Web.
7272
7273 2003-08-28  Martin Baulig  <martin@ximian.com>
7274
7275         * icall.c (ves_icall_Type_BindGenericParameters): Use
7276         `klass->generic_inst' instead of `&klass->byval_arg' in the
7277         mono_type_get_object() call.  The returned type must be
7278         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7279
7280 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7281
7282         * NOTES: New file.
7283
7284         * object.c (mono_class_proxy_vtable): Make it thread safe.
7285
7286         * pedump.c: Fix warning.
7287
7288         * object.c appdomain.h: Get rid of metadata_section. 
7289         It is no longer needed and it was causing deadlocks with domain->lock.
7290
7291         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7292
7293 2003-08-26  Martin Baulig  <martin@ximian.com>
7294
7295         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7296
7297 2003-08-26  Martin Baulig  <martin@ximian.com>
7298
7299         * pedump.c (main): Call mono_metadata_init(),
7300         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7301         and mono_loader_init().
7302
7303 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7304
7305         * loader.h: Add missing include to fix build.
7306
7307         * image.h: mono_image_load_references is no more.
7308
7309         * assembly.c: Reworked assembly loading to make it really thread safe.
7310         After these changes, the assembly returned by mono_assembly_open is
7311         fully initialized, i.e. all its references assemblies are loaded.
7312
7313         * assembly.c (mono_image_load_references): Renamed to 
7314         mono_assembly_load_references, and made private, since clients no
7315         longer need to call it.
7316
7317         * class.c: Removed calls to mono_assembly_load_references, since it was
7318         a source of deadlocks.
7319
7320         * loader.h loader.c class.h class.c: Protect data structures using a 
7321         new lock, the loader lock.
7322
7323         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7324         GPtrArrays only when needed.
7325
7326         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7327         into empty structures by mcs. Fixes pinvoke7.cs.
7328         
7329         * domain.c (mono_init): Call a new initialization function.
7330
7331         * appdomain.c (mono_runtime_init): Call the new initializer function
7332         of the marshal module.
7333
7334         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7335         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7336
7337         * marshal.h marshal.c: Added locks around the wrapper caches to make
7338         this module thread safe.
7339
7340         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7341         this argument. Fixes pinvoke1.exe.
7342
7343 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7344
7345         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7346         enumeration of values. Removed fields to store remote call output values in
7347         MonoAsyncResult. Not needed any more.
7348         * object.c: Initialize call_type and async_result fields in mono_message_init.
7349         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7350         dispatching the message.
7351         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7352         async call to finish. To do it use a message with EndInvoke call type.
7353
7354 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7355
7356         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7357         determines whenever a method has marshalling info.
7358
7359 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7360
7361         * assembly.c: fix the build on windows.
7362
7363 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7364
7365         * object.cs: Fixed bug #47785.
7366
7367 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7368
7369         * string-icalls.c (StringReplace): If their are no occurances of
7370         the old string found return a reference to the supplied
7371         string. This saves some memory and matches MS behavoir.
7372         
7373 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7374
7375         * socket-io.c: fixed compilation for systems that define AF_INET6
7376         and don't define SOL_IP/SOL_IPV6.
7377
7378 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7379
7380         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7381         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7382
7383         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7384
7385         * domain.c: Make this module thread safe.
7386
7387         * domain.c (mono_init): Call new initialization function.
7388
7389         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7390         reference types too. Fixes #38812.
7391
7392         * image.c (mono_image_init): Fixed warnings.
7393
7394         * class.c (mono_class_from_typeref): Handle assembly load failure
7395         correctly.
7396
7397         * appdomain.c (add_assemblies_to_domain): Handle the case when
7398         the references of an assembly are not yet loaded.
7399
7400         * metadata.c image.c assembly.c: Moved initialization of global
7401         variables to a separate function called at startup since lazy 
7402         initialization of these variables is not thread safe.
7403         
7404         * image.c assembly.c: Made this module thread safe by adding locks in 
7405         the appropriate places.
7406
7407         * domain.c (mono_init): Call the new initialization functions of the
7408         three modules.
7409
7410 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7411
7412         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7413           make a direct call. It is proxy's work to make the call asynchronous.
7414           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7415           the return values.
7416         * object.cs: mono_method_call_message_new(): read AsyncResult and
7417           state object from parameters list, if this info is requested.
7418         * object.h: Added fields to store remote call output values in
7419           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7420
7421 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7422
7423         * object.h: add needed fields to MonoThread.
7424         * threads.c, threads.h: allow registering a function to cleanup data
7425         allocated per thread by the JIT.
7426
7427 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7428
7429         * loader.h: portability fix by Bernie Solomon
7430         * <bernard@ugsolutions.com>.
7431
7432 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7433
7434         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7435         return a MonoArray. This simplifies the code and also ensures that
7436         the cache allways contains an object reference as a value.
7437
7438         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7439         function.
7440
7441 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7442
7443         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7444         fixes a problem with byte ordering when getting the address family for
7445         a socket.
7446
7447 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7448
7449         * .cvsignore: Added monosn.
7450
7451         * reflection.h reflection.c loader.c: Added support for parameter
7452         marshalling to dynamically created types. Fixes #47295.
7453
7454 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7455
7456         * rand.c: remove useless warnings.
7457
7458 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7459
7460         * class.c: implemented ldtoken for methods and fieldrefs.
7461
7462 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7463
7464         * threadpool.c: when mono_async_invoke was called, no one took care of
7465         monitoring the queue. So if the method invoked took some time and we
7466         got new async invoke requests after 500 ms (the thread created waited
7467         that long in WaitForSingleObject), the new async invoke was not called
7468         until the previous one finished.
7469
7470         This is fixed now. Thanks to Totte for helping with it.
7471
7472 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7473
7474         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7475
7476 2003-08-11  Martin Baulig  <martin@ximian.com>
7477
7478         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7479
7480 2003-08-06  Martin Baulig  <martin@ximian.com>
7481
7482         * mono-debug-debugger.c: Added support for static fields,
7483         properties and methods.
7484
7485 2003-08-06  Martin Baulig  <martin@ximian.com>
7486
7487         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7488         make this work for applications with multiple application domains.
7489
7490 2003-08-04  Martin Baulig  <martin@ximian.com>
7491
7492         * mono-debug-debugger.c: Completely reworked the type support; the
7493         most important thing is that we're now just using one single
7494         `MonoType' instance per type.
7495
7496 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7497
7498         * mono-endian.h, mono-endian.c, icall.c: Added icall
7499         ves_icall_System_Double_AssertEndianity to assert double word endianity
7500         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7501
7502 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7503
7504         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7505         support, icalls and fixes.
7506
7507 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7508
7509         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7510         classes that are a punctuation character in .NET is not the same a
7511         g_unichar_ispunct.
7512
7513 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7514
7515         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7516
7517 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7518
7519         * icall.c: Add new MemCopy internalcall.
7520         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7521         Simplified code; It is not necessary to handle all the cases here,
7522         as the C# code takes care of it.  Only handle the case of the name
7523         resource embedded into the assembly.
7524
7525         Changed signature to return the data pointer and the size of the
7526         data. 
7527
7528 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7529
7530         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7531         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7532
7533 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7534
7535         * socket-io.c: ignore EINTR error in select.
7536
7537 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7538
7539         * class.h, class.c: removed unused subclasses field in MonoClass.
7540
7541 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7542
7543         * icall.c: improve fix of get_base_definition(). If the parent class
7544           doesn't have the mehod, look at the parent of the parent.
7545         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7546           to check if a parameter is an in or out parameter
7547           (PARAM_ATTRIBUTE_IN is not set by default).
7548           mono_method_return_message_restore(): Use mono_class_value_size to
7549           get the size of a value type. mono_type_stack_size (parameterType)
7550           does not return the correct value if parameterType is byRef.
7551           mono_load_remote_field(), mono_load_remote_field_new(),
7552           mono_store_remote_field(), mono_store_remote_field_new():
7553           raise exception if the remote call returns an exception.
7554
7555 2003-07-28  Martin Baulig  <martin@ximian.com>
7556
7557         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7558         method.  This is a wrapper around mono_runtime_invoke() which
7559         boxes the instance object if neccessary.
7560
7561 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7562
7563         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7564         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7565
7566 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7567
7568         * icall.c: disable mcs bug workaround.
7569
7570 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7571
7572         * object.c (mono_runtime_class_init): Take the metadata_section
7573         mutex before obtaining the domain mutex.
7574
7575         * appdomain.h: Added definition of metadata_section mutex here. 
7576
7577         * object.c: define metadata_mutex here.
7578
7579 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7580
7581         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7582         fixed.
7583
7584 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7585
7586         * reflection.c: Fix bug #46669
7587
7588 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7589
7590         * exception.c:
7591         * exception.h:
7592         * icall.c:
7593         * object.h: fill in the type name for TypeLoadException.
7594
7595 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7596
7597         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7598         relationship between TypeBuilders while compiling corlib) and bug
7599         45993 (Array types returned from the runtime while compiling
7600         corlib were from the loaded corlib).
7601
7602 2003-07-22  Martin Baulig  <martin@ximian.com>
7603
7604         * mono-debug-debugger.c: Reworked the type support a bit more;
7605         distinguish between types and classes.
7606
7607 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7608
7609         * icall.c: add IsArrayImpl icall.
7610
7611 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7612
7613         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7614         initializing real_size only once. Also fix bug #46602.
7615
7616 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7617
7618         * object.c: Renamed mono_metadata_section to metadata_section.
7619
7620 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7621
7622         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7623           empty array if the type is an array. Fixed.
7624           ves_icall_MonoMethod_get_base_definition: if the base method
7625           is abstract, get the MethodInfo from the list of methods of
7626           the class.
7627         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7628           and it was 1-based. Fixed in mono_param_get_objects.
7629
7630 2003-07-20  Martin Baulig  <martin@ximian.com>
7631
7632         * mono-debug.h: Set version number to 31.
7633         (mono_debug_init): Added `MonoDomain *' argument.
7634
7635         * mono-debug-debugger.c: Reworked the type support; explicitly
7636         tell the debugger about builtin types; pass the `klass' address to
7637         the debugger.
7638
7639 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7640
7641         * image.c: Allow new metadata tables to be loaded without a
7642         warning. Also update the warning message to give the new constant value.
7643                 
7644 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7645
7646         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7647         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7648         array type representation changes.
7649
7650 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7651
7652         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7653         on Environment.Exit () call.
7654
7655 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7656
7657         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7658         requires a matching corlib.
7659
7660 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7661
7662         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7663           Committed again without the CRs.
7664         
7665 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7666
7667         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7668           getting it from the "this" socket instance. Did not work
7669           if the socket is a subclass of Socket.
7670           Also fixed bug #35371.
7671
7672 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7673
7674         * metadata.c: fixed size for TypedByRef.
7675         * loader.c: when searching for a method, consider the vararg amrker.
7676         * unicode.c, decimal.c: constify some arrays.
7677
7678 2003-07-15  Dick Porter  <dick@ximian.com>
7679
7680         * socket-io.c: Fixed compilation for gcc < 3.2.
7681
7682         Fixed compilation for machines that don't have AF_INET6 (thanks to
7683         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7684
7685         Fixed compile warnings.
7686         
7687         Fixed formatting and line endings.
7688
7689 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7690
7691         * socket-io.h:
7692         * socket-io.c: Added IPv6 support.
7693
7694 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7695
7696         * class.c (mono_class_is_assignable_from): New function to implement
7697         the is_assignable_from logic. Used by mono_object_isinst, 
7698         Type::IsAssignableFrom () and the interpreter.
7699
7700         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7701         Object, even interfaces.
7702         
7703         * object.c (mono_object_isinst): Implement in terms of 
7704         is_assignable_from.
7705
7706         * icall.c (ves_icall_type_is_assignable_from): New icall.
7707
7708 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7709
7710         * domain.c (foreach_domain): fix compiler warning.
7711
7712 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7713
7714         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7715         not available on all plattforms
7716
7717 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7718
7719         * image.h image.c: Store the metadata version string in MonoImage.
7720         * icall.c: New icall to retrieve the image version.
7721         * reflection.c (create_dynamic_image): Fill in the image version field
7722         * reflection.c (build_compressed_metadata): Use the image version
7723         from the image structure.
7724
7725 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7726
7727         * appdomain.c: modified comment.
7728         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7729         That will be its last iteration when mono_gc_cleanup is called from
7730         mono_runtime_cleanup and before the domain is unloaded.
7731
7732         Fixes bug #45962.
7733
7734 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7735
7736         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7737         attributes.
7738
7739 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7740
7741         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7742         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7743         Bernie Solomon <bernard@ugsolutions.com>.
7744
7745 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7746
7747         * object.c, object.h: provide mono_object_new_fast() for faster
7748         allocation in some special cases.
7749
7750 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7751
7752         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7753         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7754
7755 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7756
7757         * threadpool.c: fix leaks.
7758
7759 2003-07-01  Dick Porter  <dick@ximian.com>
7760
7761         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7762         using MonoGHashTables.  Fixes threadpool bug posted to list.
7763
7764 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7765
7766         * image.h, image.c: added support to load an assembly from a byte array.
7767         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7768         assembly bundle support.
7769
7770 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7771
7772         * threadpool.c (mono_thread_pool_add): keep a reference to the
7773         AsyncResult to prevent GC
7774
7775 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7776
7777         * class.c: leak fix.
7778
7779 2003-06-25  Dick Porter  <dick@ximian.com>
7780
7781         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7782         for the async object, the WaitHandle object will close the handle.
7783         Fixes bug 45321.
7784
7785 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7786
7787         * class.c: in mono_array_class_get (), lookup from the hash with the
7788         same type we insert: this works around a bug in
7789         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7790         lluis. The real fix will have to wait for after the release.
7791
7792 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7793
7794         * icall.c: fix memory leak when getting type members.
7795
7796 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7797
7798         * reflection.c: added more pubtoken special cases.
7799
7800 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7801
7802         * class.c: handle field offset correctly when class size
7803         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7804
7805 2003-06-20  Martin Baulig  <martin@ximian.com>
7806
7807         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7808         *image' field.
7809
7810 2003-06-20  Martin Baulig  <martin@ximian.com>
7811
7812         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7813
7814 2003-06-20  Martin Baulig  <martin@ximian.com>
7815
7816         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7817         just distinguish between variables in registers and variables at
7818         an offset relative to a register.
7819
7820 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7821
7822         * icall.c: #ifdef out latest changes until mcs is fixed.
7823
7824 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7825
7826         * icall.c: return members in metadata order.
7827
7828 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7829
7830         * icall.c: avoid infinite loop in GetTimeZoneData.
7831
7832 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7833
7834         * icall.c: added Marshal.Prelink/All icalls.
7835
7836 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7837
7838         * object.c, object.h: fix warnings and do some overflow checking
7839         when creating arrays.
7840
7841 2003-06-17  Dick Porter  <dick@ximian.com>
7842
7843         * file-io.h:
7844         * file-io.c: File attributes need to be tweaked slightly when
7845         passed from the managed to the w32 world.
7846
7847 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7848         * profiler.h profiler-private.h profiler.c: Rework last patch
7849         based on suggestion by Paolo.
7850         
7851 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7852
7853         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7854         instruction level coverage data collection.
7855         * profiler.h profiler.c (: Added new callback function which can be
7856         used by the profiler to limit which functions should have coverage
7857         instrumentation.
7858         * profiler.c (mono_profiler_load): Call g_module_build_path to
7859         generate the file name of the profiler library.
7860
7861 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7862
7863         * profiler.c, profiler.h, profiler-private.h: added basic block 
7864         coverage profiling API.
7865
7866 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * reflection.c (mono_reflection_create_runtime_class): Add support
7869         for events in dynamically generated code.
7870
7871         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7872         not allocated.
7873
7874 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7875
7876         * icall.c: when getting timezone info, return reasonable values if we
7877         can't get the actual data.
7878
7879 2003-06-14  Dick Porter  <dick@ximian.com>
7880
7881         * threads.c (start_wrapper): Remove the reference to the thread
7882         object in the TLS data, so the thread object can be finalized.
7883         This won't be reached if the thread threw an uncaught exception,
7884         so those thread handles will stay referenced :-( (This is due to
7885         missing support for scanning thread-specific data in the Boehm GC
7886         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7887
7888 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7889
7890         * reflection.c: ensure streams and tables are first allocated with
7891         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7892
7893 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7894
7895         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7896
7897 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7898
7899         * reflection.c (mono_reflection_create_runtime_class): Add support for
7900         properties to dynamically created classes.
7901         * reflection.c: Fix a few places where non-MonoObjects were inserted
7902         into the tokens hashtable.
7903
7904 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7905
7906         * object.c: some support to handle out of memory exceptions.
7907
7908 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7909
7910         * marshal.c (mono_marshal_get_native_wrapper): support reference
7911         return types
7912
7913 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7914
7915         * object.h, object.c: more portability stuff from Bernie Solomon.
7916         Unexport mono_object_allocate(). Added mono_object_unbox ().
7917         Set exitcode when an unhandled exception is thrown.
7918
7919 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7920
7921         * marshal.c (mono_marshal_get_native_wrapper): use custom
7922         marshaler for return types.
7923
7924 2003-06-10  Dick Porter  <dick@ximian.com>
7925
7926         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7927         ip_mreq is available
7928
7929 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7930
7931         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7932         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7933         by Bernie Solomon <bernard@ugsolutions.com>.
7934
7935 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7936
7937         * gc.c (mono_gc_init): Avoid error message on shutdown when
7938         GC_DONT_GC=1 is used.
7939
7940         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7941         New icall to return the GUID of a module.
7942
7943 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7944
7945         * class.c: ensure instance size always includes the parent's size
7946         even whem class size is set explicitly (fixes bug#44294).
7947
7948 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7949
7950         * profiler.h, profiler.c: made the simple profiler thread-safe,
7951         get more accurate timing info. Allow the loading of an
7952         externally-developed profiler module.
7953
7954 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7955
7956         * marshal.c (mono_marshal_get_native_wrapper): improved
7957         class/byref arguments.
7958         (mono_marshal_get_native_wrapper): better string marshaling support.
7959
7960 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7961
7962         * class.c: ensure .pack and .size are handled correctly and
7963         simplified layout of static fields.
7964
7965 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7966
7967         * appdomain.c
7968         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7969
7970         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7971         current directory (fix bug 44008)
7972
7973 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7974
7975         * marshal.c (mono_marshal_get_native_wrapper): started support for
7976         custom marshalers.
7977         (mono_delegate_to_ftnptr): consider marshalling specifications
7978
7979 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7980
7981         * reflection.c, reflection.h: emit custom marshal info.
7982
7983 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7984
7985         * object.c: free the GError.
7986         * icall.c: added CloseEvent_internal.
7987         * threads.[ch]:
7988         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7989         call.
7990
7991 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7992
7993         * loader.c (mono_method_get_signature): Add support for dynamic
7994         assemblies.
7995
7996 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7997
7998         * reflection.c: fixed bug #43905.
7999
8000 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
8001
8002         * class.c, domain.c, icall.c, metadata.h, object.h: support for
8003         handling TypedReference and ArgIterator.
8004         * loader.c, loader.h: added function to get signature at call site.
8005
8006 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8007
8008         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
8009         data readonly. Buglets and warning fixes. Some MethodSpec support.
8010
8011 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
8012
8013         * class.h, class.c, object.c: remove relative numbering support.
8014
8015 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
8016
8017         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
8018         free the string, until we get a chance to fix Gtk#
8019
8020 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8021
8022         * marshal.c: revert last patch.
8023
8024 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
8025
8026         * icall.c: updates for new mono_class_vtable() not calling
8027         the type constructor anymore.
8028
8029 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8030
8031         * object.h, object.c: separate vtable creation from type
8032         initialization. Make running the .cctor thread safe.
8033
8034 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
8035
8036         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
8037
8038 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
8039
8040         * loader.c (mono_get_method): consider calling convention
8041
8042 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
8043
8044         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
8045         to return the invisible global type for a module.
8046
8047         * reflection.c (mono_image_build_metadata): Emit global fields too.
8048
8049 2003-05-20  Peter Williams  <peterw@ximian.com>
8050
8051         * loader.c (mono_lookup_internal_call): Add a few newlines.
8052
8053 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
8054
8055         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
8056         literal strings.
8057
8058         * appdomain.c (set_domain_search_path): Recalculate search path when
8059         AppDomainSetup.PrivateBinPath changes.
8060
8061         * object.c (mono_class_compute_gc_descriptor): It turns out some
8062         parts of the class libs (like System.Thread) holds pointers to
8063         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
8064         to treat native int a pointer type here.
8065         
8066 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
8067
8068         * appdomain.h, domain.c: add hashtable for jump target resolution.
8069
8070 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
8071
8072         * reflection.h reflection.c icall.c: Added new icalls 
8073         GetManifestResourceInfoInternal, GetModulesInternal and support
8074         infrastructure.
8075
8076 2003-05-16  Dick Porter  <dick@ximian.com>
8077
8078         * icall.c:
8079         * file-io.h:
8080         * file-io.c: Implement System.IO.MonoIO::GetTempPath
8081
8082 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
8083
8084         * object.c: mono_store_remote_field: little fix to previous patch.
8085
8086 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
8087
8088         * class.c: add constructors to array classes.
8089         * icall.c: special case array construction for InternalInvoke (),
8090
8091 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
8092
8093         * class.h class.c reflection.c object.c: Added support for field
8094         defaults in dynamically generated classes.
8095
8096 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
8097
8098         * reflection.c: properly encode charset for ddlimport.
8099
8100 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
8101
8102         * threads.c: allow compiling without GC.
8103
8104 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
8105
8106         * appdomain.h, object.c, object.h, threads.c, threads.h: added
8107         handling of thread static data.
8108
8109 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
8110
8111         * reflection.h, reflection.c: added mono_custom_attrs_free ().
8112
8113 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
8114
8115         * class.c (mono_array_class_get): always set the serializable flags
8116         (mono_array_class_get): always set the SEALED attribute for array types
8117
8118 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
8119
8120         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
8121         attributes (fix for bug 42021).
8122
8123 2003-05-12  Dick Porter  <dick@ximian.com>
8124
8125         * gc.c: Don't run finalizers when the finalizer thread is
8126         finishing up, because the default domain has already been
8127         destroyed.
8128
8129 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
8130
8131         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
8132         value is null, we should throw an exception.   This is slightly
8133         different than the other conventions used for the constructor.
8134
8135 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8136
8137         * socket-io.c: fixed windows build.
8138
8139 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8140
8141         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
8142
8143 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
8144
8145         * object.c (mono_string_new_wrapper): Compatibility fix for MS
8146         compilers.
8147
8148 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
8149
8150         * class.c (mono_class_layout_fields): Add experimental GC aware
8151         auto layout facility. Requires class library changes to work correctly.
8152
8153         (mono_class_setup_vtable): Avoid overriding explicit interface
8154         method implementations. Fixes iface3.exe test.
8155
8156         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
8157         object reference.
8158         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
8159         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
8160
8161         * metadata.h: Add new type classification macro which determines
8162         whenever the type holds an object reference.
8163
8164 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
8165
8166         * marshal.c (mono_marshal_get_native_wrapper): cleanups
8167
8168 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
8169
8170         * gc.c (finalizer_thread): Work around a GC bug.
8171
8172 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
8173
8174         * marshal.c (emit_struct_conv): allow unions
8175
8176         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
8177
8178 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
8179
8180         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
8181
8182 2003-05-06  Martin Baulig  <martin@ximian.com>
8183
8184         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
8185
8186 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8187
8188         * socket-io.c:
8189         (Select_internal): allow NULLs, don't create arrays if not needed.
8190         Coupled with Socket.cs changes.
8191
8192         * threadpool.c:
8193         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
8194         register a finalizer for it that will close the semaphore handle. This
8195         fixes the leak and make Lupus' test run with > 4080 loops.
8196
8197 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
8198
8199         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
8200         Jerome Laban (bug #42287)
8201
8202 2003-05-02  Martin Baulig  <martin@ximian.com>
8203
8204         * debug-mono-symfile.h
8205         (MonoSymbolFile): Moved declaration into mono-debug.h.
8206         (MonoDebugMethodJitInfo): Likewise.
8207         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
8208         argument.
8209         (_mono_debug_address_from_il_offset): Take a
8210         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
8211
8212         * mono-debug.h
8213         (MonoDebugDomainData): New struct.
8214         (mono_debug_get_domain_data): New function.
8215         (mono_debug_add_method): Take an additional `MonoDomain *'
8216         argument.
8217         (mono_debug_source_location_from_address): Likewise.
8218         (mono_debug_il_offset_from_address): Likewise.
8219         (mono_debug_address_from_il_offset): Likewise.
8220
8221 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
8222
8223         * reflection.c: one more check for null type in custom attrs.
8224
8225 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8226
8227         * reflection.c: avoid warning (comparison is always false due to limited
8228         range of data type).
8229
8230 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8231
8232         * icall.c: throw an exception in Type.GetField if the argument 'name'
8233         is NULL.
8234
8235 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
8236
8237         * reflection.c: fixed handling of enums in named arguments to custom
8238         attributes (bug #42123).
8239
8240 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
8241
8242         * reflection.c: use the right array element type and handle
8243         a null for a Type argument, too.
8244
8245 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
8246
8247         * reflection.c: handle arrays as arguments to custom attributes.
8248
8249 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
8250
8251         * reflection.c: handle a string value in a custom attr
8252         ctor that takes an object.
8253
8254 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8255
8256         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8257         (fix bug #42063)
8258
8259 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8260
8261         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8262
8263 2003-04-27  Martin Baulig  <martin@ximian.com>
8264
8265         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8266         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8267         MONO_DEBUGGER_EVENT_BREAKPOINT.
8268         (mono_breakpoint_trampoline_code): Removed.
8269         (mono_debugger_event_handler): The last argument is now a
8270         `guint32'.
8271         (mono_debugger_insert_breakpoint_full): Removed the
8272         `use_trampoline' argument.
8273         (mono_debugger_method_has_breakpoint): Likewise.
8274         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8275         mono_debugger_breakpoint_callback(); take the method and
8276         breakpoint number as arguments.
8277
8278 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8279
8280         * metadata.c: fix off by one when loading parameters attributes.
8281
8282 2003-04-24  Martin Baulig  <martin@ximian.com>
8283
8284         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8285
8286 2003-04-24  Martin Baulig  <martin@ximian.com>
8287
8288         * mono-debug-debugger.c: Moved all code which interacts with the
8289         Mono Debugger here.
8290
8291         * debug-mono-symfile.c: This code now just deals with the symbol
8292         file itself, the debugger code is now in mono-debug-debugger.c.
8293
8294 2003-04-23  Martin Baulig  <martin@ximian.com>
8295
8296         * mono-debug.c (mono_debug_source_location_from_il_offset):
8297         New method; like mono_debug_source_location_from_address(), but
8298         takes an IL offset instead of a machine address.
8299
8300 2003-04-23  Martin Baulig  <martin@ximian.com>
8301
8302         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8303         `line' field; this is now computed by the debugger.
8304
8305 2003-04-23  Martin Baulig  <martin@ximian.com>
8306
8307         * mono-debug.[ch]: New files.  This is the new debugging interface.
8308
8309         * mono-debug-debugger.[ch]: New files.  Moved all code which
8310         interacts with the Mono Debugger here.
8311
8312 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8313
8314         * domain.c (mono_init): initialize mono_defaults.monitor_class
8315
8316 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8317
8318         * reflection.c (method_encode_code): Add a spicy exception to help
8319         future compiler authors.
8320
8321 2003-04-21  Martin Baulig  <martin@ximian.com>
8322
8323         * icall.c
8324         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8325         Make this work with relative pathnames; g_filename_to_uri() needs
8326         an absolute filename.
8327
8328 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8329
8330         * icall.c: Track name changes in Object and ValueType.
8331
8332 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8333
8334         * metadata.c (mono_type_stack_size): size should be a multiple of
8335         sizeof (gpointer)
8336
8337 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8338
8339         * gc.c:
8340         (internal_domain_finalize): moved into mono_domain_finalize. No need
8341         to create another thread because the finalizers will be run in the
8342         finalizer thread.
8343         
8344         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8345         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8346         to be run (MS does this too).
8347
8348 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8349
8350         * object.c (mono_class_compute_gc_descriptor): Update comment.
8351
8352         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8353
8354         * image.h: Add synchronized wrapper cache.
8355
8356         * image.c (do_mono_image_open): Initialize cache.
8357
8358         * reflection.c (create_dynamic_mono_image): Initialize cache.
8359
8360 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8361
8362         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8363         ves_icall_System_Buffer_ByteLengthInternal.
8364
8365 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8366
8367         * reflection.c: setup klass->nested_in earlier. Allow
8368         a dash in the assembly name.
8369
8370 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8371
8372         * metadata.c (mono_type_to_unmanaged): dont access
8373         type->data.klass for MONO_TYPE_OBJECT
8374         (mono_type_to_unmanaged): consider System.Delegate class
8375
8376 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8377
8378         * class.c: just setup supertypes in the proper place instead of
8379         initializing the full element class for arrays.
8380
8381 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8382
8383         * class.c: ensure the element class of arrays is initialized.
8384         Setup the supertype info for array classes, too.
8385
8386 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8387
8388         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8389
8390 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8391
8392         * Makefile.am: re-added -m option when running cygpath. This way,
8393         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8394         separator.
8395         * mono-config.c: same codepath for locating mono config file for WIN32
8396         and the rest.
8397         * assembly.c: if mono_assembly_setrootdir is called, don't override
8398         the value set.
8399
8400 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8401
8402         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8403         MONO_ASSEMBLIES variable.
8404
8405 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8406
8407         * icall.c: added Assembly::GetNamespaces() icall.
8408
8409 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8410
8411         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8412
8413 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8414
8415         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8416         * object.c: fixed bug in the construction of vtable for proxies
8417
8418 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8419
8420         * object.c (mono_array_new): Mark mono_array_new as an icall.
8421
8422 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8423
8424         * class.c: fixed test for public method when overriding interfaces.
8425         Closes bug #40970.
8426
8427 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8428
8429         * appdomain.h, domain.c: added mono_domain_foreach() to
8430         be able to access the currently loaded appdomains.
8431         * object.c: make string interning work across sppdomains.
8432         Mark some functions for use as icalls.
8433
8434 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8435
8436         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8437
8438         * reflection.h reflection.c: Allocate long living data using 
8439         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8440
8441         * reflection.c: Double the allocation size in streams instead of
8442         increasing it, to prevent unneccesary copying on large assemblies.
8443         
8444         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8445         creation if the assembly does not have the Run flag set.
8446
8447 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8448
8449         * class.h: avoid the C++ keywords in header files (Jerome Laban
8450         spotted and fixed this).
8451
8452 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8453
8454         * object.c:
8455         (mono_unhandled_exception): fill in the arguments for the
8456         UnhandledException event. Only trigger that event for the default
8457         domain (as MS does).
8458
8459 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8460
8461         * object.c: Improve typed allocation stuff based on suggestions from
8462         Paolo. Also turn it on if the GC library supports it.
8463
8464 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8465
8466         * object.c object.h class.h: Added experimental typed allocation
8467         facility using the interfaces in gc_gcj.h.
8468
8469         * os/gc_wrapper.h: Added new include files.
8470         
8471 2003-04-03  Martin Baulig  <martin@ximian.com>
8472
8473         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8474         which is not yet enabled by default.
8475
8476         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8477         functions.
8478         (mono_gc_lock, mono_gc_unlock): New static functions.
8479
8480         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8481         functions; stop/start the world for the garbage collector.  This
8482         is using the windows API; we need to complete the SuspendThread()/
8483         ResumeThread() implementation in the io-layer to make this work on Unix.
8484         (mono_gc_push_all_stacks): New public function; tells the garbage
8485         collector about the stack pointers from all managed threads.
8486
8487 2003-04-03  Martin Baulig  <martin@ximian.com>
8488
8489         * object.h (MonoThread): Added `gpointer stack_ptr'.
8490
8491         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8492
8493 2003-04-03  Martin Baulig  <martin@ximian.com>
8494
8495         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8496
8497 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8498
8499         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8500         field.last.
8501
8502 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8503
8504         * loader.c (mono_lookup_internal_call): Report the corlib that is
8505         out of sync.
8506
8507 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8508
8509         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8510         System.DBNull (it's class not valuetype).
8511
8512 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8513
8514         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8515         if the array method was already assigned a token (fixes bug#40646).
8516
8517 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8518
8519         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8520         if no assembly is given.
8521
8522 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8523
8524         * metadata.h: Added the new tables.
8525
8526         * row-indexes.h: Added definitions for new tables.
8527
8528         * metadata.c: Add schemas for new tables, and add support for
8529         computing the sizes of them.
8530
8531         * class.c: Update for handling the new type cases.
8532
8533 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8534
8535         * metadata.h (MONO_TYPE_IS_VOID): new macro
8536
8537 2003-03-31  Martin Baulig  <martin@ximian.com>
8538
8539         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8540
8541         * threads.c (mono_thread_new_init): Call `thread_created' in the
8542         mono_thread_callbacks.
8543
8544 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8545
8546         * loader.h: added marshalbyrefobject_class to mono_defaults
8547         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8548         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8549           generation of output parameters.
8550           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8551         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8552           contextbound and the target object belongs to the context of the caller.
8553         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8554         * object.c: Implemented support for interfaces and abstract classes
8555           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8556           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8557
8558 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8559
8560         * class.h class.c (mono_class_is_subclass_of): New function.
8561         
8562         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8563         routines for most common case (calls from ArrayList::ToArray).
8564
8565         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8566         routine so programs which call Environment::Exit() can be profiled.
8567
8568         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8569         Added MONO_ARCH_SAVE_REGS.
8570
8571         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8572
8573 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8574
8575         * blob.h: Add a couple of new MonoType types definitions.
8576
8577         * tabledefs.h: Add a couple of new call convs.
8578
8579 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8580
8581         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8582         the layout of the class.
8583
8584         * reflection.c (alloc_table): double the size on overflow to avoid
8585         unnecessary copying.
8586
8587         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8588         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8589         null so it can be garbage collected.
8590         
8591 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8592
8593         * reflection.c (mono_reflection_get_type): Return the resolved type
8594         only if it is in the assembly we searched.
8595
8596         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8597
8598         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8599         method.
8600
8601 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8602
8603         * appdomain.c:
8604         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8605         the right one is 'file:///blah', but MS allows it.
8606         * assembly.c:
8607         (mono_assembly_open): allow 'file://blah'
8608
8609         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8610
8611 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8612
8613         * socket-io.c: fixes bug #40310.
8614
8615 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8616
8617         * reflection.c (mono_reflection_parse_type): handle deeply nested
8618         types correctly.
8619
8620         * reflection.c (mono_image_create_token): Use unique token values
8621         since they will be put into a hash table.
8622
8623         * class.c (mono_class_setup_vtable): If a method occurs in more than
8624         one place in the vtable, and it gets overriden, then change the
8625         other occurances too.
8626
8627         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8628         object as return type.
8629
8630 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8631
8632         * icall.c: Deleted "ToString" implementation for double and float
8633         because they are full implemented in managed code.
8634
8635 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8636
8637         * reflection.c, reflection.h: implemented and exported functions
8638         to retrieve info about custom attributes.
8639
8640 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8641
8642         * appdomain.c: moved Uri handling to assembly.c
8643         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8644         work when using a file Uri in *nix and windows.
8645
8646         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8647         GetReferencedAssemblies.
8648
8649 2003-03-18  Dick Porter  <dick@ximian.com>
8650
8651         * icall.c: Rename a couple of internal calls
8652
8653         * threads.c: Set the thread state to Stopped when a thread exits.
8654         Fixes bug 39377.
8655
8656 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8657
8658         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8659         New icall.
8660
8661         * object.c (mono_class_vtable): fix warning.
8662
8663 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8664
8665         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8666
8667         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8668         memory.
8669         (method_encode_clauses): Create exception info structures in the right
8670         order.
8671         (mono_reflection_setup_internal_class): Initialize supertypes field.
8672
8673         * class.c object.c: Handle interfaces which implement other interfaces 
8674         correctly.
8675
8676         * class.h class.c: Move the supertypes array initialization code into 
8677         a separate function so it can be used for dynamic types too. Also call
8678         it earlier, in mono_class_init(), since it can be used before the
8679         type is initialized.
8680
8681 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8682
8683         * Makefile.am:
8684         * assembly.c:
8685         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8686
8687         * appdomain.c:
8688         * appdomain.h:
8689         * marshal.c:
8690         * object.c: remove warnings.
8691
8692 2003-03-13  Martin Baulig  <martin@ximian.com>
8693
8694         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8695         (MonoDebugLexicalBlockEntry): New types.
8696
8697         * debug-mono-symfile.c
8698         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8699
8700 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8701
8702         * process.c: ret can be any non-zero value accroding to MS doc.
8703
8704 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8705
8706         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8707         fixing a warning for a miss-used prototype, would have cause
8708         random memory corruption.
8709
8710 2003-03-07  Martin Baulig  <martin@ximian.com>
8711
8712         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8713         getting really annoying ....
8714
8715 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8716
8717         * reflection.c (fixup_method): added support for array methods.
8718
8719 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8720
8721         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8722         (pointed out by Michael Adams).
8723
8724 2003-03-04  Dick Porter  <dick@ximian.com>
8725
8726         * icall.c: Temporarily reverted the Double and Single ToString()
8727         change, because it broke nunit.
8728
8729 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8730
8731         * object.h, threads.h: make include files compatible with C++
8732         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8733
8734 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8735
8736         * icall.c: Erased ToString helper functions for Double and Single.
8737         Now, that implementations ar all in managed code (Double and Single
8738         Formatters).
8739
8740 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8741
8742         * appdomain.c: Added method for initializing the default context of
8743         a domain. Added internal call for getting the default context.
8744         * appdomain.h: Added context variable in MonoDomain struct.
8745         * domain.c: mono_domain_set also sets the default context of the domain
8746         * icall.c: Mapped internal method InternalGetDefaultContext.
8747         * object.c: mono_object_get_virtual_method returns always a remoting
8748         wrapper if the object is a transparent proxy.
8749         mono_runtime_invoke_array: when creating an object by calling the
8750         constructor, if the created object is a proxy, then the constructor should
8751         be called using the a remoting wrapper.
8752
8753 2003-03-03  Dick Porter  <dick@ximian.com>
8754
8755         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8756         variable so it compiles on solaris.  Problem spotted by
8757         Christopher Taylor <ct@cs.clemson.edu>
8758
8759 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8760
8761         * appdomain.c:
8762         (get_info_from_assembly_name): don't leak value.
8763
8764         * icall.c:
8765         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8766         result.
8767
8768 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8769
8770         * assembly.c: export mono_image_load_references ().
8771         * class.c: handle function pointers. mono_class_from_name() now
8772         supports nested type names directly.
8773
8774 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8775
8776         * reflection.h reflection.c: Encode already created dynamic methods 
8777         and fields correctly as a DEF instead of a REF.
8778
8779         * reflection.c: Get rid of the force_ref argument to 
8780         mono_image_typedef_or_ref since it was wrong in the first place.
8781
8782         * string-icalls.c: add error checking to string constructors according
8783         to the MSDN docs.
8784
8785         * reflection.c: Emit types in the order their TypeBuilders were 
8786         created. Previously, a new table index was assigned to each type before
8787         the tables were emitted. This was wrong because the signature blob
8788         might already refer to a type by its original table index.
8789
8790 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8791
8792         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8793         change.
8794         
8795 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8796
8797         * Makefile.am: make assemblies dir have \ instead of / on windows.
8798
8799 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8800
8801         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8802         iterate over the NESTEDCLASS table using a linear search since the
8803         table is not guaranteed to be sorted by the secondary key.
8804
8805         * class.c (mono_class_create_from_typedef): fixed up call to
8806         mono_metadata_nesting_typedef.
8807         
8808 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8809
8810         * marshal.c (mono_string_to_byvalstr): clear the memory as
8811         suggested by Jerome Laban <jlaban@wanadoo.fr>
8812
8813 2003-02-26  Dick Porter  <dick@ximian.com>
8814
8815         * process.c: Cope with padding in .rsrc blocks
8816
8817 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8818
8819         * metadata.h: reverted the filter_len change, it breaks reflection
8820         
8821 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8822
8823         * metadata.h: added a new field to store the filter_len
8824         
8825
8826 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8827
8828         * reflection.c: handle custom attributes for types and members
8829         created with Reflection.Emit (bug#38422).
8830
8831 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8832
8833         * reflection.c: define RTSpecialName automatically for constructors for
8834         compatibility with MS.NET.
8835
8836         * reflection.c (mono_reflection_create_runtime_class): initialize
8837         nested_in field of dynamically created classes.
8838
8839 2003-02-22  Martin Baulig  <martin@ximian.com>
8840
8841         * debug-mono-symfile.h: Incremented version number.
8842
8843 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8844
8845         * object.h icall.c process.c: fix warnings.
8846
8847 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8848
8849         * appdomain.h appdomain.c:
8850         (mono_domain_try_type_resolve): split the 
8851         name_or_tb argument into a name and a tb argument.
8852         (mono_domain_has_type_resolve): new function to check whenever the
8853         application has registered a TypeResolve event handler.
8854         
8855         * icall.c reflection.h reflection.c: move the type resolve logic into
8856         mono_reflection_get_type () so it will be invoked when 
8857         Assembly::GetType () is called.
8858
8859         * reflection.c:
8860         (mono_reflection_get_type): renamed to get_type_internal.
8861         (mono_reflection_get_type): fixed type name generation so it works 
8862         for nested types too.
8863         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8864         costly type name generation if there is no resolve event handler.
8865
8866 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8867
8868         * class.c, image.c: load exported types from file references.
8869
8870 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8871
8872         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8873           used to cache the managed methods used to create proxies and make 
8874           remote invocation of methods.
8875         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8876           to be remotely created.
8877         * object.c: Modified the method mono_class_vtable(). It now initializes 
8878           the remote flag of the vtable. Modified mono_object_new_specific(), 
8879           so now it checks the remote flag.
8880         * icall.c: Added a couple of internal methods, one for enabling instance 
8881           creation interception for a type, and one for creating objects bypassing
8882           the remote check.
8883
8884 2003-02-18  Martin Baulig  <martin@ximian.com>
8885
8886         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8887         New interncall to get a method's metadata token.
8888
8889         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8890         New interncall for the debugger.
8891
8892 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8893
8894         * class.c (mono_class_setup_vtable): allocate supertype array
8895
8896 2003-02-18  Martin Baulig  <martin@ximian.com>
8897
8898         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8899
8900 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8901
8902         * reflection.c:
8903         (assembly_name_to_aname): jump over unknown properties (i've found
8904         something like: 'type, assembly, version=xxx, custom=null, public...',
8905         so now will ignore custom=null and still get the rest of the values).
8906
8907 2003-02-17  Dick Porter  <dick@ximian.com>
8908
8909         * threads.c: Have Thread.Start() wait for a semaphore to signal
8910         that the thread has set up all its local data.  This fixes bug
8911         34323, where Abort() raced the new thread's TLS data.
8912
8913         Also removes the handle_store() call from start_wrapper, because
8914         threads are now always created suspended and there is no longer a
8915         race between the parent and child threads to store the info.
8916
8917 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8918
8919         * image.c: explain the #- heap issue in a message, hopefully
8920         avoiding FAQs on mono-list.
8921
8922 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8923
8924         * icall.c:
8925         (GetEntryAssembly): if the domain has not invoked
8926         AppDomain.ExecuteAssembly yet, return the assembly of the default
8927         AppDomain.
8928
8929 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8930
8931         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8932
8933 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8934
8935         * metadata.c, reflection.c: simple speedup to type hash
8936         and equals code.
8937
8938 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8939
8940         * image.c, image.h, class.c, assembly.c: move module loading
8941         to MonoImage. When loading metadata, consider alignemnet from
8942         the start of metadata, not from the metadata address in memory.
8943
8944 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8945
8946         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8947         AssemblyBuilder objects. Factored out custom attribute creation into
8948         a separate function.
8949         (create_custom_attr): new function to create custom attributes.
8950
8951 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8952
8953         * Makefile.am: Got tired of typing the full pathname to pedump.
8954         Until there is another option, am installing this.
8955
8956 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8957
8958         * class.c (class_compute_field_layout): always set field->parent 
8959         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8960
8961 2003-02-11  Dick Porter  <dick@ximian.com>
8962
8963         * threads-types.h:
8964         * monitor.c: Rewrote Monitor, making lock much faster and
8965         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8966         creates them as needed.
8967
8968         * exception.c: Added SynchronizationLockException
8969
8970         * threads.c: Deleted old Monitor implementation.  The new one is
8971         in a new file.
8972
8973 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8974
8975         * class.c: handled TypedReference type code. Set the correct size for
8976         class data. Setup interface_offsets for interface classes, too.
8977
8978 2003-02-09  Martin Baulig  <martin@ximian.com>
8979
8980         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8981
8982 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8983
8984         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8985         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8986         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8987         * verify.c: check for code that runs after the end of the method.
8988
8989 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8990
8991         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8992         "System.Math::Round2".
8993         * sysmath.h: Added Floor, Round and Round2 definitions.
8994         * sysmath.c: Modified certain functions that were not 100% compliant
8995         with MS.NET (math precision) and added the implementation of Floor,
8996         Round and Round2.
8997
8998 2003-02-07  Martin Baulig  <martin@ximian.com>
8999
9000         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
9001
9002 2003-02-07  Martin Baulig  <martin@ximian.com>
9003
9004         * debug-mono-symfile.c: Reflected latest symwriter changes.
9005         (mono_debug_create_mono_symbol_file): Removed.
9006         (mono_debug_open_mono_symbol_file): Take an argument which
9007         specifies whether to create a dynamic symbol file.
9008
9009 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
9010
9011         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
9012
9013 2003-02-05  Martin Baulig  <martin@ximian.com>
9014
9015         * reflection.c (mono_image_build_metadata): Make this public,
9016         protect it against being called multiple times, don't create
9017         resources and don't build the compressed metadata here.
9018         (mono_image_create_pefile): Do this here.
9019
9020         * icall.c
9021         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
9022
9023 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9024
9025         * socket-io.c: fixed bug #36322.
9026
9027 2003-02-06  Piers Haken <piersh@friskit.com>
9028
9029         * appdomain.[ch]:
9030         * class.h:
9031         * debug-mono-symfile.c:
9032         * icall.c:
9033         * loader.c:
9034         * mono-config.c:
9035         * monosn.c:
9036         * reflection.c:
9037         * socket-io.c: warning cleanups
9038
9039 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
9040
9041         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
9042         function. works like remoting invoke, but does a check for the Proxy first.
9043
9044 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
9045
9046         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
9047
9048 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
9049
9050         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
9051         array of pointers.
9052         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
9053         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
9054
9055         * object.c (mono_store_remote_field_new): used by the new jit
9056         instead of mono_store_remote_field
9057         (mono_load_remote_field_new): used by the new jit
9058         instead of mono_load_remote_field
9059
9060 2003-02-05  Patrik Torstensson
9061
9062         * appdomain.c: changed unload to take the domain id instead
9063         of domain
9064         
9065         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
9066
9067
9068 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9069
9070         * appdomain.c: don't look for assemblies in ApplicationBase if
9071         PrivateBinPathProbe is set.
9072
9073 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9074
9075         * object.c: make the first argument in main_args contain the absolute
9076         path to the assembly. Fixes bug #37511.
9077
9078 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9079
9080         * icall.c: get correct UTC offset for countries not using daylight
9081         time saving. Fixes bug #30030.
9082
9083 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9084
9085         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
9086         and 1 are the family).
9087
9088 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
9089
9090         * icall.c (ves_icall_InternalExecute): removed wrong assertion
9091
9092         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
9093
9094 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
9095
9096         * reflection.c: added support for SignatureHelper tokens, which is
9097         needed by the Calli opcode.
9098
9099         * reflection.h: track changes to SignatureHelper class.
9100
9101         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
9102
9103 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9104
9105         * appdomain.c: fixed loading assemblies from PrivateBinPath.
9106
9107 2003-02-03  Patrik Torstensson
9108         * appdomain.[c|h], domain.c : 
9109          - Added support for getting a domain via domain id
9110          - Support for setting and getting domain from System.AppDomain 
9111            (used in cross appdomain channel)
9112          - Added support for get/set for a MonoAppContext on a thread 
9113            (Context class in System.Runtime.Remoting.Contexts),
9114          - Removed hack in Get/SetData and ExecuteAssembly.
9115         
9116         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
9117         the managed world to get control when a proxy is created.
9118
9119         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
9120         
9121 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
9122
9123         * icall.c
9124         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9125         Populate the codebase field as well.
9126
9127 2003-02-02  Martin Baulig  <martin@ximian.com>
9128
9129         * debug-mono-symfile.c
9130         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
9131         (mono_debug_symfile_add_method): Allow interncalls.
9132
9133 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9134
9135         * icall.c: throw parse exception if strtod fails or the string is empty.
9136
9137 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
9138
9139         * marshal.c: handle object type separately from defined
9140         class types.
9141
9142 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
9143
9144         * marshal.c: handle NATIVE_LPSTR for strings when it's
9145         explicitly specified.
9146
9147 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
9148
9149         * reflection.c, reflection.h, icall.c: setup the reflection
9150         handle cache for ModuleBuilders and AssemblyBuilders.
9151
9152 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
9153
9154         * reflection.c (reflection_methodbuilder_to_mono_method): set
9155         pinvoke flag
9156
9157 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9158
9159         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
9160
9161 2003-01-29  Dick Porter  <dick@ximian.com>
9162
9163         * threads.c: No need for the fake_thread kludge now that Thread
9164         doesn't run a class constructor
9165         
9166 2003-01-29  Dick Porter  <dick@ximian.com>
9167
9168         * threads.c: Use g_direct_hash instead of the rather bogus
9169         g_int_hash
9170
9171 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
9172
9173         * marshal.c (mono_marshal_get_native_wrapper): add check for null
9174         (fix pinvoke12.exe)
9175         (mono_marshal_get_struct_to_ptr): generate valid IL code
9176         (mono_marshal_get_ptr_to_struct): generate valid IL code
9177         (*): correctly set sig->pinvoke, we need to memdup the signature
9178         to do that
9179
9180 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
9181
9182         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
9183         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
9184
9185 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9186
9187         * profiler.c: provide more callers information.
9188
9189 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
9190
9191         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
9192
9193         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
9194
9195         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
9196
9197 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9198
9199         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
9200         exception instead of going into an infinite loop on dates which it 
9201         can't yet handle.
9202
9203         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
9204         out-of-range exception if needed.
9205
9206         * class.c (mono_class_setup_vtable): allow a virtual method to provide
9207         an implementation for an interface method and to override an inherited
9208         method at the same time. 
9209         Imagine a scenario when a virtual method is used to override a
9210         virtual abstract method in a parent class, and this same method 
9211         provides an implementation for an method inherited from an interface. 
9212         In this case, the interface resolution code will set im->slot, which 
9213         means that the virtual method override pass will skip this method 
9214         which means a pointer to the abstract method inherited from the parent
9215         will remain in the vtable of this non-abstract class.
9216
9217         * class.c: (mono_class_setup_vtable): continue search for a real 
9218         method if only an abstract method is found.     
9219
9220 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9221
9222         * reflection.c: add size to encoding for ByValStr and ByValArray
9223         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
9224
9225 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9226
9227         * class.c (mono_class_setup_vtable): pass the override info as an
9228         argument.
9229
9230         * class.c (mono_class_setup_vtable): set the slot of overriding methods
9231         correctly.
9232         
9233         * reflection.c (ensure_runtime_vtable); add support for method 
9234         overrides.
9235         
9236 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9237
9238         * reflection.c (resolution_scope_from_image): Hack to work to work with
9239         dynamic assemblies.
9240
9241         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
9242         added a 'force_ref' argument to force this function to allways return 
9243         a TypeRef. This is needed by mono_image_get_memberref_token ().
9244         
9245 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9246
9247         * reflection.c (mono_image_get_type_info): interfaces really don't have
9248         a parent.
9249
9250         * reflection.c (mono_image_basic_init): fill out missing fields of
9251         image structure.
9252
9253         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9254         dynamic assemblies. This is required so dynamic assemblies show up in
9255         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9256         Type::GetType() etc. This is consistent with MS behaviour.
9257
9258         * image.c image.h reflection.c: add newly created classes to the name 
9259         cache so mono_class_get () will find them.      
9260
9261 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9262
9263         First part of changes to get IKVM.NET running under mono.
9264         
9265         * appdomain.h, appdomain.c: added new function 
9266         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9267         This function will call AppDomain::DoTypeResolve to do the actual work.
9268
9269         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9270         moved existing code dealing with dynamic tokens to a new function 
9271         called mono_reflection_lookup_dynamic_token (). This function will 
9272         raise TypeResolve events when appropriate. Since reflection.c is not 
9273         part of libmetadata, a new hook function called 
9274         mono_lookup_dynamic_token() is added to class.c which will call this.
9275
9276         * assembly.h assembly.c: make the invoke_load_hook function public,
9277         so it can be called for dynamic assemblies.
9278
9279         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9280
9281         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9282         type isn't found.
9283
9284         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9285         MonoGHashTable, since it contains pointers to objects which the GC 
9286         needs to track.
9287
9288         * assembly.c (search_loaded): remove unused variable.
9289         
9290 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9291
9292         * object.c: fixed issue exposed by gcc-generated IL programs
9293         that use RVA data for pointers.
9294
9295 2003-01-25  Martin Baulig  <martin@ximian.com>
9296
9297         * threads.c (start_wrapper): Moved the initialization of
9298         `start_func' above the mono_new_thread_init() call to which we
9299         pass it as argument.
9300
9301 2003-01-24  Martin Baulig  <martin@ximian.com>
9302
9303         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9304         the MonoThread pointer.
9305
9306 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9307
9308         * icall.c: Rename `PowImpl' to Pow.
9309
9310 2003-01-23  Dick Porter  <dick@ximian.com>
9311
9312         * threads.c (start_wrapper): Create a Thread object if needed, so
9313         the Main() thread can do the class initialisation in a subthread
9314         that has been set up to allow managed code execution.
9315
9316         Pass the thread ID instead of the MonoThread pointer to the thread
9317         start and attach callbacks.  This change is required, because the
9318         jit thread start callback must be called _before_ the Thread
9319         object can be created.
9320         
9321         (mono_thread_init): Removed much object creation code that is no
9322         longer needed.  No managed code is called from here now.
9323
9324         * object.c (mono_runtime_exec_managed_code): Create a subthread
9325         for Main, and call back to the runtime to use it.
9326         Set the exit code when Main exits.
9327
9328         * gc.c: Make sure domain finalisation happens in a subthread.
9329         Re-enable threaded GC, fixing bug 31333 (again).
9330
9331         * environment.c: System.Environment internall calls (so far just
9332         ExitCode is here, the others are still in icall.c)
9333
9334         * appdomain.c (mono_runtime_cleanup): All threads running managed
9335         code should have finished before mono_runtime_cleanup() is
9336         reached, so no need to clean up threads.
9337
9338 2003-01-22  Martin Baulig  <martin@ximian.com>
9339
9340         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9341         `gpointer func' arguments.      
9342         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9343         but added `MonoThread *thread' argument.
9344         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9345
9346         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9347         and pass it to the mono_thread_start_cb callback.
9348         (mono_install_thread_callbacks): New public function to install a
9349         set of callbacks which are set by the debugger.
9350         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9351
9352 2003-01-22  Martin Baulig  <martin@ximian.com>
9353
9354         * Makefile.am: Install debug-mono-symfile.h.
9355
9356 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9357
9358         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9359
9360 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9361
9362         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9363         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9364         (mono_array_class_get): correctly set access levels of arrays
9365
9366 2003-01-20      Patrik Torstensson
9367         * image.h (MonoAssemblyName): changed major, minor, build, revision
9368         from signed to unsigned.
9369
9370 2003-01-20  sean kasun <skasun@azstarnet.com>
9371
9372         * reflection.c (load_cattr_value): Now this handles
9373         MONO_TYPE_SZARRAY.  Fixes bug #35629
9374
9375 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9376
9377         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9378         integer value
9379
9380 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9381
9382         * decimal.c: fixed bug #26056.
9383
9384 2003-01-17  Martin Baulig  <martin@ximian.com>
9385
9386         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9387
9388 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9389
9390         * exception.[ch]:
9391         (mono_get_exception_type_initialization): new function.
9392
9393         * object.c: throw a TypeInitializationException when an exception is
9394         thrown invoking the class constructor.
9395
9396 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9397
9398         * reflection.c: fixed attribute reading.
9399
9400 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9401
9402         * icall.c:
9403         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9404         provided, look for the type in the calling assembly and then in
9405         mscorlib; if the assembly name is provided, only try that one.
9406
9407 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9408
9409         * object.c: register the vtable before there is a chance it's
9410         queried again recursively.
9411
9412 2003-01-13  Duncan Mak  <duncan@ximian.com>
9413
9414         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9415         gc-internal.h. 
9416         
9417 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9418
9419         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9420
9421 2003-01-11  Martin Baulig  <martin@ximian.com>
9422
9423         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9424         this to 20 for the release.
9425
9426 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9427
9428         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9429
9430         * loader.c (mono_method_get_marshal_info): bug fix
9431
9432         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9433         structures with explicit layout
9434
9435 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9436
9437         * profiler.c: made the output more readable (and sorted). 
9438         Added caller information for the allocation profiler.
9439
9440 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9441
9442         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9443
9444 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9445
9446         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9447         to get value types.
9448         
9449 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9450
9451         * object.c, profiler.h, profiler.c, profiler-private.h:
9452         Added object allocation profiler.
9453
9454 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9455
9456         * reflection.h, reflection.c: handle global methods.
9457         Compress blob entries.
9458
9459 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9460
9461         * marshal.c: fix compilation.
9462
9463 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9464
9465         * loader.c (mono_method_get_marshal_info): impl.
9466
9467         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9468
9469 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9470
9471         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9472         for reference types.
9473
9474 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9475
9476         * loader.c: fixed off by one error in loaded parameter names.
9477
9478 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9479
9480         * marshal.c (mono_marshal_get_icall_wrapper): like
9481         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9482         instead of a MonoMethod.
9483
9484 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9485
9486         * decimal.c: fixed bug #36537.
9487
9488 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9489
9490         * marshal.c: throw a missing method exception if a
9491         P/Invoke method is not found.
9492
9493 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9494
9495         * icall.c: allow a null this for constructors.
9496
9497 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9498
9499         * icall.c: raise the proper exceptions if the arguments to the
9500         internal Invoke are incorrect.
9501
9502 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9503
9504         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9505
9506 2003-01-03  Martin Baulig  <martin@ximian.com>
9507
9508         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9509
9510 2002-12-31  Martin Baulig  <martin@ximian.com>
9511
9512         * debug-mono-symfile.c: Completely rewrote the type section.
9513         Instead of using individual malloc()ed fields, we use one big
9514         continuous memory area and offsets into this area.
9515         See the comments in the source code for details.
9516
9517 2002-12-30  Martin Baulig  <martin@ximian.com>
9518
9519         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9520
9521 2002-12-30  Martin Baulig  <martin@ximian.com>
9522
9523         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9524         line number table in this data blob instead of using an external
9525         pointer.
9526
9527 2002-12-28  Martin Baulig  <martin@ximian.com>
9528
9529         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9530
9531 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9532
9533         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9534         as a boxed return type.
9535
9536 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9537
9538         * appdomain.c
9539         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9540         g_build_filename to properly get separators on the filename created.
9541
9542         * object.h: Small change, introduce MonoMarshalByRefObject to
9543         track the layout of that structure in the C# universe as we make
9544         changes there.
9545
9546 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9547
9548         * object.c: removed assert to allow static fields on interfaces.
9549         * loader.c: a TypeSpec may be used for any type, not just arrays.
9550
9551 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9552
9553         * class.c, class.h: added mono_class_array_element_size ().
9554         Ignore static methods in interfaces.
9555
9556 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9557
9558         * threads.c: fixed the build under cygwin.
9559
9560 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9561
9562         * reflection.c: handle nullref constants. Allocate keys for
9563         reflection handles with the GC.
9564
9565 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9566
9567         * threads.c, threads.h: added mono_thread_get_abort_signal()
9568         to get a suitable signal for thread abort.
9569
9570 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9571
9572         * metadata.c: fix handling of ExportedType table.
9573
9574 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9575
9576         * icall.c: added WriteWindowsDebugString internal call.
9577
9578 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9579
9580         * reflection.h: added fields to match C# implementation.
9581
9582 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9583
9584         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9585
9586 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9587
9588         * gc.h, gc-internal.h: Rename header for GC internal calls to
9589         gc-internal.h from gc.h as to not clash with Boehm GC having its
9590         header installed as <gc.h> in outside include paths.
9591         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9592         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9593
9594 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9595
9596         * icall.c: assign minor, build and revision in FillName.
9597
9598 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9599
9600         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9601         Added support for running code generated by Reflection.Emit.
9602
9603 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9604
9605         * appdomain.c: check for NULL argument in LoadFrom.
9606
9607 2002-12-10  Dick Porter  <dick@ximian.com>
9608
9609         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9610
9611 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9612
9613         * appdomain.c: fix buglet when building exe file name.  Handle full
9614         assembly name (needed after latest changes to AssemblyName).
9615         * image.c:
9616         (mono_image_close): free some hashtables.
9617
9618 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9619
9620         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9621         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9622         on some systems (redhat 7.3) 
9623
9624 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9625
9626         * threads.c: delete the critical section of a sync block,
9627         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9628
9629 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9630
9631         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9632
9633 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9634
9635         * appdomain.[ch]: handle the assembly preload event to try loading the
9636         assemblies using the paths we have in the current domain.
9637
9638         * assembly.[ch]: created an assembly preload hook that is called to try
9639         loading the assembly by other means that the ones provided here.
9640
9641         * domain.c: initialize the domain search path.
9642
9643         From now on, assemblies (TODO: except corlib and System) are loaded
9644         according to these rules when using mono_assembly_load ():
9645
9646                 1. It tries to load the assembly from the ApplicationBase
9647                 of the current domain appending .dll and .exe (TODO: have to
9648                 try loading from name/name.dll and name/name.exe).
9649
9650                 2. It tries the search path specified in PrivateBinPath for the
9651                 current domain (if any).
9652
9653                 3. Previous behavior.
9654
9655 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9656
9657         * icall.c: implemented GetInterfaceMap() related icall.
9658         * domain.c, loader.h: load MethodInfo in mono_defaults.
9659
9660 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9661
9662         * gc.c: disable the finalizer thread for now, untill all the issues
9663         with it are resolved.
9664
9665 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9666
9667         * string-icalls.c: handle embedded nulls in string ctor when the
9668         length is specified.
9669
9670 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9671
9672         * class.c: look for explicit interface implementation in parent
9673         classes, too.
9674
9675 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9676
9677         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9678
9679 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9680
9681         * gc.c: protect handles with a critical section.
9682
9683 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9684
9685         * icall.c:
9686         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9687         parameters. If no assembly specified, try getting the type from all
9688         the assemblies in the current domain, else, load the assembly and get
9689         the type from it.
9690
9691 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9692
9693         * marshal.c: applied patch from Aleksey Demakov that fixes
9694         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9695
9696 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9697
9698         * icall.c: fixed get_location.
9699
9700 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9701
9702         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9703         declarations to make it work with older gcc. 
9704
9705         * loader.c (mono_get_method): set signature->pinvoke for native calls
9706
9707 2002-11-20  Dick Porter  <dick@ximian.com>
9708
9709         * threads.c (mono_thread_init): Set the main thread's handle
9710
9711 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9712
9713         * gc.c: allow compilation without GC support. Changed to match the
9714         mono coding style.
9715
9716 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9717
9718         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9719
9720 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9721
9722         * reflection.c: set a public key token on the core assemblies.
9723
9724 2002-11-18  Dick Porter  <dick@ximian.com>
9725
9726         * threads.c: Split out some thread initialisation so that other
9727         files can set the start callback function.
9728
9729         * gc.c: Run finalisers in a separate thread, to avoid stack
9730         overflow.  Fixes bug 31333.
9731
9732         * appdomain.c: Set up GC finalisation thread.
9733
9734         * reflection.c: 
9735         * object.c: 
9736         * domain.c: Use gc.h macros for GC_malloc
9737         
9738 2002-11-15  Dick Porter  <dick@ximian.com>
9739
9740         * threadpool.c: 
9741         * threads.c:
9742         * appdomain.c: Removed mono_runtime_init_with_attach(),
9743         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9744         merging the extra parameter with the existing function.  Removed
9745         unneeded code in mono_thread_attach().
9746
9747 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9748
9749         * image.c (mono_image_loaded_by_guid): a method to get loaded
9750         images by guid. 
9751         (load_metadata_ptrs): we store the guid as string.
9752
9753 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9754
9755         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9756
9757         * metadata.c (mono_guid_to_string): imported method form Zoltan
9758         Varga (slightly modified)
9759
9760         * assembly.c (mono_assembly_open): load precompiled code
9761
9762         * loader.h (MonoMethod): we store the method token for use in the
9763         aot compiler. 
9764
9765 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9766
9767         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9768         the hook function called when an assembly is loaded.
9769         
9770         * domain.c: Modified file.
9771         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9772
9773         Fixes bug #33196.
9774
9775 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9776
9777         * reflection.c: Map PEFileKind to the value expected by the WinNT
9778         image loader. 
9779
9780 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9781
9782         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9783         Read until the buffer is filled completely.
9784
9785 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9786
9787         * icall.c: implemented MonoType.InternalGetEvent ().
9788
9789 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9790
9791         * appdomain.c: implemented InitAppDomainSetup. Delayed
9792         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9793         the entry_assembly.
9794
9795         * assembly.c: base_dir is now an absolute path ending with
9796         G_DIR_SEPARATOR.
9797
9798         * icall.c: modified get_location according to the above changes.
9799
9800         * object.c: init AppDomain.SetupInformation for the default domain after
9801         we have the entry assembly.
9802
9803         * domain.c: when unloading a domain, setup = NULL.
9804
9805 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9806
9807         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9808
9809 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9810
9811         * object.h, object.c: introduced mono_object_get_virtual_method ()
9812         to lookup the method invoked on an object when a callvirt is done on
9813         a method.
9814         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9815
9816 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9817
9818         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9819         current domain when loaded an assembly and failed to load it.
9820
9821         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9822
9823 2002-10-31  Dick Porter  <dick@ximian.com>
9824
9825         * icall.c: 
9826         * file-io.h: 
9827         * file-io.c: Return the error status in a parameter, as the
9828         GetLastError() value has long since been blown away if we try and
9829         look it up in a subsequent internal call invocation.  Delete the
9830         GetLastError() internal call, because it's useless.
9831
9832 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9833
9834         * class.[ch]: added cast_class to fix bug 29517
9835
9836 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9837
9838         * marshal.c: create valid IL code in the filter clause:
9839         the new JIT is less forgiving:-)
9840
9841 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9842
9843         * icall.c: removed get_property internal call.
9844
9845 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9846
9847         * appdomain.h domain.c: Added an ID to appdomains.
9848         
9849         * threads.c threads.h icall.c: Implement icall
9850         Thread:GetDomainID(), and remove unused icall 
9851         CurrentThreadDomain_internal.
9852
9853 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9854
9855         * icall.c: Don't recurse through the base types in GetConstructor.
9856         Fixes bug #32063. 
9857
9858 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9859
9860         * mempool.h, mempool.c: added mono_mempool_empty() and
9861         mono_mempool_stats().
9862
9863 2002-10-23  Dick Porter  <dick@ximian.com>
9864
9865         * file-io.c: 
9866         * file-io.h: 
9867         * icall.c: Added MonoIO.GetFileType internal call
9868
9869 2002-10-17  Dick Porter  <dick@ximian.com>
9870
9871         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9872         delegate semaphore before waiting for all threads to finish,
9873         because new threads can also call async delegates.  Fixes bug
9874         32004.
9875
9876         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9877         of 3 seconds, in case another async job is queued.  (This part is
9878         needed because the bug fix reintroduced the 3s exit lag.)  This
9879         makes the mono_runtime_shutdown flag superfluous.
9880
9881 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9882
9883         * reflection.c: include ehader size in method section headers.
9884         Really check for suplicated modules entries.
9885
9886 2002-10-17  Martin Baulig  <martin@gnome.org>
9887
9888         * debug-mono-symfile.c: Added back support for locals.
9889
9890 2002-10-14  Martin Baulig  <martin@gnome.org>
9891
9892         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9893         MONO_TYPE_VOID.
9894
9895 2002-10-14  Martin Baulig  <martin@gnome.org>
9896
9897         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9898         mono_class_get() instead of looking in the class cache. 
9899
9900 2002-10-13  Martin Baulig  <martin@gnome.org>
9901
9902         * debug-mono-symfile.c: Set version number to 28, include the
9903         signature in method names.
9904
9905 2002-10-13  Martin Baulig  <martin@gnome.org>
9906
9907         * debug-mono-symfile.h: Set version number to 27.
9908
9909 2002-10-11  Martin Baulig  <martin@gnome.org>
9910
9911         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9912
9913 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9914
9915         * metadata.c, metadata.h: added helper function to allocate signatures.
9916
9917 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9918
9919         * icall.c: added internal call to get the location of machine.config.
9920
9921 2002-10-08  Martin Baulig  <martin@gnome.org>
9922
9923         * debug-mono-symfile.c: Ignore classes with a pending init for the
9924         moment.
9925
9926 2002-10-03  Dick Porter  <dick@ximian.com>
9927
9928         * threads.c: Freebsd pthread_t is a pointer
9929
9930 2002-10-03  Dick Porter  <dick@ximian.com>
9931
9932         * socket-io.c: Implemented GetHostName_internal
9933
9934 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9935
9936         * mono-config.c:
9937         (mono_config_parse_file): don't leak the text.
9938
9939 2002-10-02  Martin Baulig  <martin@gnome.org>
9940
9941         * debug-mono-symfile.c: Added support for methods.
9942
9943 2002-10-01  Martin Baulig  <martin@gnome.org>
9944
9945         * debug-mono-symfile.c: Don't emit methods and line numbers for
9946         the dynamic symbol file, just write the type table.  We can easily
9947         have an external helper program which creates a symbol file for an
9948         IL file.        
9949
9950 2002-10-01  Dick Porter  <dick@ximian.com>
9951
9952         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9953         Only add the handle to the cleanup array when we're about to
9954         launch the thread.  Bug 31425 deadlocked when the test was run on
9955         mono under w32.
9956
9957 2002-10-01  Martin Baulig  <martin@gnome.org>
9958
9959         * debug-mono-symfile.c: Added support for properties.
9960
9961 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9962
9963         * reflection.c: unaligned store fix from Mark Crichton
9964         <crichton@gimp.org>.
9965
9966 2002-09-27  Martin Baulig  <martin@gnome.org>
9967
9968         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9969         New interncall.
9970
9971 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9972
9973         * assembly.h, assembly.c: use a sane API to hook into the assembly
9974         loading process instead of a useless special-purpouse hack
9975         (ngen needs a hook, too, for example).
9976
9977 2002-09-27  Dick Porter  <dick@ximian.com>
9978
9979         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9980         io-layer can set up some process handle info.  Not needed on w32,
9981         but doesn't hurt either.
9982
9983         * process.c: Pass the program name in the second parameter to
9984         CreateProcess, so the path is searched.  Include the working
9985         directory. Implemented process name, process enumeration, and some
9986         process detail internal calls.
9987         
9988         * icall.c: Added internal calls for process lookup, and some
9989         process details
9990
9991 2002-09-26  Martin Baulig  <martin@gnome.org>
9992
9993         * assembly.c (mono_install_open_assembly_hook): New global
9994         function to install a function to be invoked each time a new
9995         assembly is loaded.
9996         (mono_assembly_open): Run this callback function if set.
9997
9998         * debug-mono-symfile.c: Put back line numbers for the dynamic
9999         symbol file and also record the .il file as source file.  This
10000         allows us to install the temporary symbol file as `file.dbg' just
10001         like a compiler-generated one.
10002
10003 2002-09-26  Nick Zigarovich <nick@chemlab.org>
10004
10005         * Corrected typo in gc.c (BOHEM vs BOEHM).
10006
10007 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10008
10009         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
10010         GetProperties. Also avoid calling g_slist_length in GetProperties and
10011         GetMethods.
10012
10013 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10014
10015         * reflection.c: avoid unaligned stores (bug spotted by
10016         Mark Crichton  <crichton@gimp.org>).
10017
10018 2002-09-25  Martin Baulig  <martin@gnome.org>
10019
10020         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
10021         instead of guint64 for addresses and added prologue/epilogue info.
10022
10023 2002-09-25  Martin Baulig  <martin@gnome.org>
10024
10025         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
10026         store line number info.  For the dynamic symbol file, we only need
10027         to provide the JIT generated dynamic line number info for the dynamic
10028         symbol file.
10029
10030 2002-09-25  Martin Baulig  <martin@gnome.org>
10031
10032         * debug-mono-symfile.h: Incremented version number.
10033
10034 2002-09-24  Martin Baulig  <martin@gnome.org>
10035
10036         * class.c (mono_debugger_class_init_func): New global function
10037         pointer variable.
10038         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
10039         call it.
10040
10041         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
10042         function.  This is called via the mono_debugger_class_init_func
10043         hook to add all types to the dynamic type table.
10044         (ves_icall_MonoDebugger_GetType): New interncall to get a class
10045         from its metadata token.
10046
10047         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
10048         New interncall for the debugger.
10049
10050 2002-09-24  Nick Drochak <ndrochak@gol.com>
10051
10052         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
10053         before using it in case it is null.
10054         
10055 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10056
10057         * metadata.c: allow custom modifiers in local var signatures
10058         (bug spotted by Zoltan Varga).
10059
10060 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
10061
10062         * class.c: deal with the <Module> class that may have a NULL vtable.
10063         Eliminate warnings.
10064
10065 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10066
10067         * image.c, image.h: more strong name helpers.
10068         * monosn.c: more work: convert pem keys to cryptoapi format.
10069
10070 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10071
10072         * string-icalls.c: speedup IndexOf.
10073
10074 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10075
10076         * icall.c: updates from Zoltan.2.Varga@nokia.com.
10077
10078 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10079
10080         * icall.c: cleanup: use mono_object_domain ().
10081
10082 2002-09-23  Martin Baulig  <martin@gnome.org>
10083
10084         * debug-mono-symfile.c: Improved type support.
10085
10086 2002-09-22  Martin Baulig  <martin@gnome.org>
10087
10088         * debug-mono-symfile.c: Added support for reference types and strings.
10089
10090 2002-09-22  Martin Baulig  <martin@gnome.org>
10091
10092         * debug-mono-symfile.c: Started to work on the type table.
10093
10094 2002-09-21  Martin Baulig  <martin@gnome.org>
10095
10096         * debug-mono-symfile.c: Largely reworked the symbol table format.
10097         The symbol table is now incrementally updated each time a new
10098         method is added.  We're now also using our own magic and version
10099         so that you don't need to recompile all your classes if the
10100         dynamic table changes.
10101         (mono_debug_update_mono_symbol_file): Removed.
10102         (mono_debug_symfile_add_method): New function to add a method.
10103
10104 2002-09-21  Martin Baulig  <martin@gnome.org>
10105
10106         * icall.c
10107         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
10108         New interncall.
10109
10110         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
10111         New interncall to get a method from its metadata token.
10112
10113 2002-09-21  Martin Baulig  <martin@gnome.org>
10114
10115         * debug-mono-symfile.c: Create type table.
10116
10117 2002-09-20  Martin Baulig  <martin@gnome.org>
10118
10119         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
10120
10121 2002-09-20  Martin Baulig  <martin@gnome.org>
10122
10123         * debug-mono-symfile.c: Provide information about params and locals.
10124
10125 2002-09-20  Martin Baulig  <martin@gnome.org>
10126
10127         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
10128         New interncall.
10129
10130         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
10131         interncall to get a method from its metadata token.
10132
10133 2002-09-20  Martin Baulig  <martin@gnome.org>
10134
10135         * debug-mono-symfile.c: Added a few checks for method->header
10136         being non-NULL.  This should never happen, but for the moment
10137         let's use a g_warning() rather than a g_assert().
10138
10139 2002-09-19  Mark Crichton  <crichton@gimp.org>
10140
10141         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
10142         even if support for it isn't present.  Added an #ifdef to fix this.
10143
10144         * socket-io.c: Added checks back for Solaris support.
10145
10146 2002-09-19  Martin Baulig  <martin@gnome.org>
10147
10148         * debug-mono-symfile.c (read_string, write_string): Reflect latest
10149         changes in the symbol file format.
10150
10151 2002-09-18  Martin Baulig  <martin@gnome.org>
10152
10153         * debug-mono-symfile.c: Set version number to 21.
10154
10155 2002-09-18  Dick Porter  <dick@ximian.com>
10156
10157         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
10158         on netbsd.  Fixes bug 30051.
10159
10160 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10161
10162         * reflection.c:
10163         (set_version_from_string): little fix.
10164
10165 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10166
10167         * monosn.c, Makefile.am: added strong name utility.
10168         * reflection.h, reflection.c: implemented delayed signing,
10169         locale, version and hash id assembly attributes.
10170
10171 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10172
10173         * loader.c, metadata.c: load param attributes in signatures.
10174
10175 2002-09-16  Martin Baulig  <martin@gnome.org>
10176
10177         * debug-mono-symfile.c: Added string table with all method names.
10178
10179 2002-09-14  Martin Baulig  <martin@gnome.org>
10180
10181         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
10182         fast method lookup.
10183
10184 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10185
10186         * reflection.c: record the public key token of referenced assemblies.
10187
10188 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10189
10190         * image.c, image.h: added functions to get the strong name and the
10191         public key of an assembly.
10192         * pedump.c: use them.
10193
10194 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
10195
10196         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
10197
10198 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
10199
10200         * marshal.c (mono_marshal_get_managed_wrapper): Added
10201         MONO_TYPE_BOOLEAN 
10202
10203 2002-09-11  Martin Baulig  <martin@gnome.org>
10204
10205         * gc.c: Call GC_unregister_disappearing_link() on all links when
10206         finalizing them, this is necessary to aviod a crash in boehm's
10207         finalize handler.
10208
10209 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10210
10211         * gc.c: handle GetTarget for finalized objects spotted and fixed by
10212         nick@chemlab.org.
10213
10214 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10215
10216         * icall.c: implemented MonoType::Module.
10217         * reflection.c, reflection.h: mono_module_get_object () from
10218         Tomi Pakarinen <tomi.pakarinen@welho.com>.
10219
10220 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10221
10222         * icall.c: ignore overridden methods in GetMethods ().
10223         Fix for FieldInfo::SetValue().
10224         * object.c: handle float/double in runtime invoke.
10225
10226 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10227
10228         * object.c: allow a constructor to be called again on an object.
10229
10230 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10231
10232         * class.h, class.c: move field layout code to it's own function and
10233         export it. Get an interface id earlier. Move fields in MonoClass
10234         so they are more cache friendly and align the bitfields.
10235         * loader.c: temporary handle get_param_names() for a runtime method.
10236         * reflection.c, reflection.h: more code to handle runtime creation of
10237         types.
10238
10239 2002-09-09  Martin Baulig  <martin@gnome.org>
10240
10241         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
10242         signature with the pinvoke field being set for the actual call.
10243
10244 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10245
10246         * icall.c: removed some unused icalls. Start of map of glib charsets
10247         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
10248
10249 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10250
10251         * debug-helpers.c: break infinite loop (found and fixed by
10252         Holger Arnold <harnold@gmx.de>).
10253
10254 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10255
10256         * icall.c: target may be null in create_delegate.
10257
10258 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10259
10260         * marshal.c: handle a boolean return type.
10261
10262 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10263
10264         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10265
10266 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10267
10268         * gc.c: fix weakreferences.
10269
10270 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10271
10272         * icall.c: added icall to get default codepage.
10273
10274 2002-09-03  Dick Porter  <dick@ximian.com>
10275
10276         * threads.h: 
10277         * threads.c: Use MonoThread instead of MonoObject where
10278         apropriate.
10279
10280         Store running thread objects in a hash table, so that we have all
10281         the info to hand when waiting for them to finish
10282         (means we don't need OpenThread() any more, so mingw builds should
10283         be fully functional again.)
10284
10285         * verify.c:
10286         * object.h: Added thread ID to MonoThread
10287
10288 2002-09-03  Martin Baulig  <martin@gnome.org>
10289
10290         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10291
10292 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10293
10294         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10295
10296 2002-09-03  Martin Baulig  <martin@gnome.org>
10297
10298         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10299         argument to store the end address of the disassembled instruction.
10300
10301         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10302         here from debug-symfile.h.
10303         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10304         JIT into this struct.
10305         (MonoSymbolFile): Added `char *image_file' field.
10306         (MonoDebugGetMethodFunc): Removed.
10307         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10308         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10309         (mono_debug_find_method): New method.
10310
10311         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10312         create a full symbol file.
10313         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10314         and static symbol files.
10315         (mono_debug_find_method): The symbol file keeps an internal method hash,
10316         call this to get a MonoDebugMethodInfo from a MonoMethod.
10317
10318         * debug-symfile.[ch]: Removed.
10319
10320 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10321
10322         * image.c (do_mono_image_open): Remove linker version check.
10323
10324 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10325
10326         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10327         wrappers for instance methods.
10328         
10329 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10330
10331         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10332
10333 2002-08-28  Dick Porter  <dick@ximian.com>
10334
10335         * Makefile.am: Export HOST_CC for w32 builds
10336
10337 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10338
10339         * file-io.c process.c: MonoString are null terminated, no
10340         need for mono_string_to_utf16() anymore.
10341
10342 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10343
10344         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10345
10346 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10347
10348         * icall.c, reflection.h: speedup System.MonoType.
10349
10350 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10351
10352         * reflection.c: allow null as the value of a string argument in
10353         custom attributes constructors.
10354
10355 2002-08-27  Martin Baulig  <martin@gnome.org>
10356
10357         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10358         `trampoline_address' field.
10359
10360 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10361
10362         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10363         check (fixes bug #29486) 
10364
10365 2002-08-27  Martin Baulig  <martin@gnome.org>
10366
10367         * debug-mono-symfile.c: Changed the file format in a way that allows us
10368         open it read-only and to use a specially malloced area for all the
10369         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10370         debugging IL code and there is no MCS generated symbol file for it.
10371
10372 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10373
10374         * object.c: added a define for a good string and array
10375         creation speedup (not enabled by default because we need to deal with
10376         the synch stuff).
10377
10378 2002-08-26  Martin Baulig  <martin@gnome.org>
10379
10380         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10381         function to create a dynamic symbol file.  This is used by the
10382         debugger to create a symbol file for IL code on-the-fly.
10383
10384 2002-08-26  Martin Baulig  <martin@gnome.org>
10385
10386         * loader.c (mono_lookup_pinvoke_call): Include the error message
10387         from g_module_error() in the error message.
10388
10389 2002-08-24  Martin Baulig  <martin@gnome.org>
10390
10391         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10392         function to update the symbol file.  The symbol file is mmap()ed
10393         writable, but private.  This allows us to install the symbol file
10394         together with the assembly.
10395
10396 2002-08-24  Martin Baulig  <martin@gnome.org>
10397
10398         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10399         but they can read the new symbol file format which mcs is now creating.
10400
10401         * debug-symfile.c (mono_debug_find_source_location): Moved to
10402         debug-mono-symfile.c; this is now operating on the new symbol file.
10403
10404 2002-08-23  Martin Baulig  <martin@gnome.org>
10405
10406         * debug-helpers.c (mono_method_desc_from_method): New function to get
10407         a MonoMethodDesc from a MonoMethod.
10408
10409 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10410
10411         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10412         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10413
10414 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10415
10416         * string-icalls.[ch]: make helper methods static.
10417
10418 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10419
10420         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10421         types to it and to SetValueInternal.
10422
10423         * object.c: Moved handle_enum label to its proper place. This was the
10424         f... bug! ;-)
10425
10426         This time i compiled mcs and gtk-sharp and they both work.
10427
10428 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10429
10430         * icall.c: reverted partially my previous patch until 
10431         object.c:set_value handles enums correcly.
10432
10433 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10434
10435         * icall.c:
10436         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10437         (ves_icall_System_Environment_get_MachineName): removed warning when
10438         compiling under cygwin.
10439
10440 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10441
10442         * object.c: fixed field_get_value() for reference types.
10443
10444 2002-08-22  Dick Porter  <dick@ximian.com>
10445
10446         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10447         Don't free a buffer while it's still needed.  Patch from Jonathan
10448         Liger <Jonathan.liger@wanadoo.fr>
10449
10450 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10451
10452         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10453         internal call.
10454
10455 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10456
10457         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10458         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10459
10460         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10461         we call unmanaged code which throws exceptions.
10462
10463 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10464
10465         * appdomain.h: added per-domain entry_assembly.
10466         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10467         arguments.
10468         * icall.c: Assembly::GetEntryAssembly icall.
10469         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10470         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10471
10472 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10473
10474         * appdomain.h, gc.c: added mono_domain_finalize ().
10475
10476 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10477
10478         * object.c:
10479         (mono_print_unhandled_exception): changed g_warning by g_printerr
10480         because g_log has a 1024 characters limit (yeah, i got a big stack
10481         trace). Don't print exception name, that should be in ToString 
10482         returned string.
10483
10484 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10485
10486         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10487         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10488
10489 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10490
10491         * object.c:
10492         (mono_print_unhandled_exception): after previous commit, i realized
10493         that MS calls ToString on the exception. I changed this function to
10494         do that. This way we get stack_trace for free.
10495
10496 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10497
10498         * object.c:
10499         (mono_print_unhandled_exception): invoke Message property instead of
10500         getting 'message' field from Exception. Don't allocate memory for
10501         'trace' and 'message' if not needed.
10502
10503 2002-08-18  Dick Porter  <dick@ximian.com>
10504
10505         * unicode.c: Fix asserts to match Encoder.cs checks
10506
10507 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10508
10509         * marshal.c: fix unaligned store issue and a few wrong
10510         opcode argument types.
10511
10512 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10513
10514         * icall.c: added GetUninitializedObjectInternal internal call.
10515
10516 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10517
10518         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10519         to the right domain.
10520
10521 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10522
10523         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10524
10525         * class.c (class_compute_field_layout): set blittable to false for Strings
10526
10527         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10528
10529 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10530
10531         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10532         first chunk of code to create types at runtime. Code to
10533         handle ReflectedType/DeclaringType. Make reflection handles
10534         domain specific.
10535
10536 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10537
10538         * class.c: set correct name in arrays.
10539
10540 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10541
10542         * appdomain.c (mono_domain_transfer_object): make it work with
10543         valuetypes. bug fixes.
10544
10545 2002-08-12  Dick Porter  <dick@ximian.com>
10546
10547         * object.h: Rename some parameters to avoid c++ keywords (Patch
10548         from Joseph Wenninger <kde@jowenn.at>)
10549
10550 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10551
10552         * icall.c: added icall to implement Assembly.GetFile*.
10553
10554 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10555
10556         * reflection.h, reflection.c: code to embed managed resources.
10557
10558 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10559
10560         * class.c: move all the type size stuff into
10561         class_compute_field_layout().
10562
10563 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10564
10565         * class.c: ensure enums have always the correct instance size.
10566         * unicode.c: remove wrong assert.
10567
10568 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10569
10570         * assembly.c: fix mem corruption issue.
10571         * image.h, image.c: added mono_image_get_resource () to access
10572         managed resources.
10573         * icall.c: implemented Assembly.EntryPoint property and some
10574         Managed Resources related internalcalls.
10575
10576
10577 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10578
10579         * image.c, image.h: impemented mono_image_get_entry_point ().
10580         * appdomain.c: use mono_image_get_entry_point.
10581
10582 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10583
10584         * reflection.c: support the object type argument when loading
10585         custom attributes.
10586
10587 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10588
10589         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10590         String as return type.
10591
10592 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10593
10594         * reflection.c: fix encoding of named args for custom attrs to match
10595         the ms implementation. Read them back when instantiating custom
10596         attributes.
10597
10598 2002-08-02  Radek Doulik  <rodo@ximian.com>
10599
10600         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10601         by Dietmar as quick fix
10602         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10603         16 as stack size, used on more places as quick fix before Dietmar
10604         will fix it properly
10605
10606 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10607
10608         * object.h, object.c: added accessors for fields and properties.
10609
10610 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10611
10612         * class.c, class.h: made mono_class_get_field_from_name ()
10613         loop on parent types.
10614         Added mono_class_get_property_from_name ().
10615
10616 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10617
10618         * class.c, class.h: move the code to setup the type vtable in its own
10619         function so that it can be reused also for types created at runtime.
10620         Eliminate the "class" identifier from the header file.
10621         * reflection.c: setup the vtable for enums so that we can create
10622         objects for use in SetConstant ().
10623
10624 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10625
10626         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10627         instead of the delegate itself as this pointer (bug #28383)
10628
10629 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10630
10631         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10632         conversions.
10633
10634 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10635
10636         * loader.c: don't set the pinvoke bit on icalls.
10637
10638 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10639
10640         * debug-helpers.c (mono_method_full_name): only print a number to
10641         indicate wrapper type (so that the output is more readable in traces).
10642
10643 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10644
10645         * class.c (mono_class_init): include method override patch from Paolo
10646
10647 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10648
10649         * icall.c: fixed GetTypeCode().
10650
10651 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10652
10653         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10654         use real delegate invoke function to make it work with multicast
10655         delegates (fix bug# 28291).
10656
10657 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10658
10659         * object.c: load constant strings.
10660
10661 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * reflection.c: no magic numbers.
10664         * tabledefs.h: security action enum.
10665
10666 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10667
10668         * assembly.c: fix possible memory corruption.
10669
10670 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10671
10672         * reflection.h, reflection.c: added support for linking resources.
10673         * verify.c: check we have an updated corlib.
10674
10675 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10676
10677         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10678         string arrays.
10679         (mono_marshal_string_array): null terminate unmanaged string arrays.
10680         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10681
10682 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10683
10684         * icall.c: Type.GetType () can now return also types from the
10685         calling assembly.
10686
10687 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10688
10689         * loader.h, loader.c: stack walking support.
10690         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10691         GetCallingAssembly.
10692
10693 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10694
10695         * marshal.c: added optimisations for blittable types 
10696
10697         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10698         (mono_class_setup_mono_type): set blittable attribute for single
10699         and double.
10700
10701         * marshal.c (mono_string_utf8_to_builder): impl.
10702         (mono_string_builder_to_utf8): impl.
10703         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10704
10705 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10706
10707         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10708         (mono_marshal_get_managed_wrapper): impl. byref types
10709
10710 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10711
10712         * icall.c:
10713         (search_method): don't display debug message. 
10714
10715 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10716
10717         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10718
10719 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10720
10721         * appdomain.c: set the missing filename when throwing exception.
10722
10723 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10724
10725         * metadata.c (mono_type_size): code cleanup
10726         (mono_type_stack_size): removed some test code
10727
10728 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10729
10730         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10731         mono_get_exception_file_not_found now.
10732
10733         * exception.c (mono_exception_from_name_two_strings): New version
10734         that will call a constructor with two string arguments. 
10735         (mono_get_exception_file_not_found): New helper routine, used to
10736         report file-not-found errors.
10737
10738 2002-07-20  Dick Porter  <dick@ximian.com>
10739
10740         * process.h:
10741         * process.c: Pass file handles to CreateProcess
10742         
10743         * icall.c:
10744         * file-io.h:
10745         * file-io.c: Implemented CreatePipe
10746
10747 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10748
10749         * metadata.c (mono_get_param_info): set alignment for value types
10750
10751 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10752
10753         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10754         Constify mono_domain_assembly_open().
10755         * loader.c: handle null namespace in icalls.
10756
10757 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10758
10759         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10760         (emit_str_to_ptr_conv): marshal object as structs
10761
10762         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10763
10764         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10765
10766 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10767
10768         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10769         (mono_marshal_get_native_wrapper): we an now return value types
10770
10771 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10772
10773         * verify.c: more checks implemented.
10774
10775 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10776
10777         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10778         (fix bug #27695)
10779         (mono_marshal_get_native_wrapper): allow byref arguments
10780         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10781         impl. PtrToStringXXX methods
10782         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10783         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10784         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10785         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10786         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10787
10788 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10789
10790         * reflection.c: fix buglet in parsing an assembly name.
10791
10792 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10793
10794         * marshal.c (emit_ptr_to_str_conv): first impl.
10795
10796 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10797
10798         * object.c, class.h: cache the vtable in the class as suggested by
10799         vargaz@freemail.hu (Zoltan Varga).
10800
10801 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10802
10803         * class.h, loader.c: added mono_field_from_token().
10804         * verify.c: first cut of type checking code.
10805
10806 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10807
10808         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10809
10810 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10811
10812         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10813         (fix bug #27782)
10814         (mono_marshal_get_remoting_invoke): impl.
10815         (mono_delegate_begin_invoke): impl.
10816         (mono_mb_emit_save_args): impl.
10817         (mono_delegate_end_invoke): impl.
10818         (mono_marshal_get_delegate_begin_invoke):
10819         (mono_marshal_get_delegate_end_invoke):
10820         (mono_marshal_get_delegate_invoke): generate a special name for
10821         those methods (including the signature) and associate them whith
10822         the delegate class. 
10823
10824 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10825
10826         * reflection.[ch]: 
10827         (mono_reflection_type_from_name): now it has a MonoImage parameter
10828         which is used as the default image to search the type in. If the image
10829         is NULL or getting the type from it fails, it defaults to corlib.
10830
10831         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10832         new parameter.
10833
10834 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10835
10836         * reflection.c: update the parameter table index.
10837
10838 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10839
10840         * domain.c: don't include the mark byte in the string hash.
10841
10842 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10843
10844         * icall.cs: icall for Type.GetTypeCode ().
10845         * verify: a couple of fixes and disabled local initialization checks.
10846
10847 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10848
10849         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10850
10851         * debug-helpers.c (mono_method_full_name): print the type of the
10852         runtime wrapper
10853
10854         * metadata.c (mono_signature_hash): a hash function for signatures
10855         (mono_signature_hash): better hash algorithm
10856
10857         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10858
10859         * debug-helpers.c (mono_method_full_name): this can now generate
10860         method names with signatures
10861
10862         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10863         method dont have this pointers.
10864
10865 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10866
10867         * reflection.c: fixup typebuilder tokens.
10868         * image.c: fix buglet.
10869         * marshal.h: remove whitespace.
10870         * metadata.h, metadata.c: reinstate code that was removed.
10871         * verify.c: handle catch directives and fix another couple of bugs.
10872
10873 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10874
10875         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10876         (mono_marshal_get_native_wrapper): make it comp. with the old code
10877         (mono_marshal_get_native_wrapper): support boolean
10878         (mono_marshal_get_managed_wrapper): support more types
10879
10880 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10881
10882         * class.c (class_compute_field_layout): compute class->blittable attribute.
10883
10884 2002-07-09  Dick Porter  <dick@ximian.com>
10885
10886         * threads.c: Make the thread cleaning up cope with threads that
10887         call ExitThread()
10888
10889 2002-07-08  Radek Doulik  <rodo@ximian.com>
10890
10891         * reflection.c (method_encode_code): use non-translated values to
10892         compute finally_start, this fixes exception handling on ppc, yay!
10893
10894         * decimal.h (struct signscale): fix endianess
10895
10896 2002-07-07  Radek Doulik  <rodo@ximian.com>
10897
10898         * reflection.c: swap box_val and not val
10899
10900 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10901
10902         * reflection.c, reflection.h: handle full assembly info in type name.
10903         Handle Type arguments when loading custom attributes.
10904         * icall.c: updated to use new mono_reflection_type_from_name () method.
10905
10906 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10907
10908         * loader.c:
10909         (method_from_memberref): also print assembly name when method not found.
10910
10911 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10912
10913         * icall.c:
10914         (ves_icall_TypeGetProperties): fixed bug #27473. 
10915
10916 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10917
10918         * reflection.c: display image name and token when cannot find the
10919         .ctor for an attribute.
10920
10921 2002-07-05  Martin Baulig  <martin@gnome.org>
10922
10923         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10924
10925 2002-07-04  Dick Porter  <dick@ximian.com>
10926
10927         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10928         compile on mingw.  This will cause mingw builds to not wait for
10929         subthreads to terminate after the main thread does.  I've lodged a
10930         bug with the mingw developers for them to wrap OpenThread().
10931
10932 2002-07-03  Dick Porter  <dick@ximian.com>
10933
10934         * threads.c: Store thread IDs instead of handles, because
10935         GetCurrentThread() returns a pseudohandle and therefore stores
10936         useless values.  mono_thread_cleanup() continues checking the
10937         array of threads until it is empty, to cope with subthreads
10938         spawning new threads after the main thread has finished.
10939
10940         * profiler.h:
10941         * profiler.c:
10942         * profiler-private.h: Pass the thread ID to thread profiler
10943         functions, instead of a handle
10944
10945 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10946
10947         * verify.c: fixes to make it more usable.
10948         * pedump.c: added --verify code to verify IL code in an assembly.
10949
10950 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10951
10952         * reflection.c: turn errors into warnings to allow compiling corlib.
10953
10954 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10955
10956         * reflection.c: add special cases to compile corlib.
10957
10958 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10959
10960         * reflection.c: handle properties with only a set method.
10961
10962 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10963
10964         * opcodes.h: add enum with opcodes in opval order.
10965
10966 2002-07-01  Dick Porter  <dick@ximian.com>
10967         
10968         * object.h:
10969         * object.c (mono_runtime_run_main): Removed unneeded argument
10970
10971 2002-06-28  Martin Baulig  <martin@gnome.org>
10972
10973         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10974
10975 2002-06-27  Dick Porter  <dick@ximian.com>
10976
10977         * threads.c: Store the handle in both the parent thread and in the
10978         subthread, to minimise the time between starting a new thread and
10979         storing its ID.
10980
10981 2002-06-26  Dick Porter  <dick@ximian.com>
10982
10983         * appdomain.c (mono_runtime_cleanup): Close the socket library
10984         after all the threads have finished, not before
10985
10986 2002-06-26  Martin Baulig  <martin@gnome.org>
10987
10988         * debug-symfile.c (mono_debug_find_source_location): Added
10989         `guint32 *line_number' argument.  If it's not NULL, store the line number
10990         there and return the file name without the line number.
10991
10992 2002-06-25  Dick Porter  <dick@ximian.com>
10993
10994         * icall.c:
10995         * process.h:
10996         * process.c: Process forking and other support functions
10997
10998 2002-06-25  Dick Porter  <dick@ximian.com>
10999
11000         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
11001         things dont happen when the image is closed.
11002         (mono_image_lookup_resource): Walk the resource section looking
11003         for a particular entry
11004
11005         * cil-coff.h: PE resource section decoding
11006
11007 2002-06-25  Dick Porter  <dick@ximian.com>
11008         
11009         * assembly.h:
11010         * assembly.c: 
11011         (mono_assembly_foreach): Accessor functions to walk the list of
11012         loaded assemblies
11013         (mono_assembly_set_main):
11014         (mono_assembly_get_main): Process methods need to know which
11015         assembly is the "main" one
11016
11017         * object.c (mono_runtime_run_main): Record the main assembly
11018
11019         * debug-helpers.c: Fix typo
11020
11021 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
11022
11023         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
11024         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
11025
11026 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11027
11028         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
11029
11030 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
11031
11032         * image.c (do_mono_image_open): Initialize reference count,
11033         otherwise we leak the MonoImage.
11034
11035 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11036
11037         * reflection.c: small tweak to handle self-hosting.
11038
11039 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11040
11041         * reflection.c: fix type name parse code.
11042
11043 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11044
11045         * reflection.c: break out of the loop.
11046         * image.c: special case corlib.
11047
11048 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11049
11050         * reflection.c: add all the custom attrs at the end to ensure the
11051         ctors have been properly initialized when the attributes are defined
11052         in the current assembly.
11053
11054 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11055
11056         * reflection.c: handle correctly multiple-nested types.
11057
11058 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11059
11060         * row-indexes.h: fix typos.
11061         * reflection.c: adjust for typos and fix method_def_or_ref
11062         encoding in MethodImpl table.
11063
11064 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11065
11066         * reflection.c: fix entry point patching (thanks Serge!).
11067
11068 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
11069
11070         * verify.c: add check for System.Exception
11071
11072 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
11073
11074         * image.c, class.c: minifix for code just c&p'ed.
11075         * reflection.c: warning fix.
11076         * object.h, loader.h, domain.c: load also StringBuilder.
11077
11078 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11079
11080         * marshal.h, marshal.c: some support code to handle complex marshaling.
11081
11082 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11083
11084         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
11085         Better signatures with vtable error dump.
11086
11087 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
11088
11089         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
11090
11091 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
11092
11093         * icall.c (ves_icall_Type_GetField): impl.
11094
11095 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11096
11097         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
11098         to retrieve a marshal description blob for a field or param.
11099
11100 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11101
11102         * reflection.h, reflection.c: change order of nested type emission
11103         to avoid table corruption. The NestedTypes table is sorted.
11104         * icall.c: change order of GetConstructor results to workaround mcs bug.
11105
11106 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11107
11108         * reflection.h, reflection.c: handle field and param marshal
11109         information.
11110
11111 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11112
11113         * icall.c, marshal.c marshal.h: more Marshal class implementation.
11114
11115 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11116
11117         * reflection.c: fix call convention.
11118
11119 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11120
11121         * reflection.h, reflection.c: mono_image_get_memberref_token()
11122         takes a type instead of a class, now. Added
11123         mono_image_get_array_token() to create tokens for the special
11124         multi-dim array methods.
11125
11126 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11127
11128         * assembly.c: handle modules (no assembly table). Split
11129         loading references in its own function.
11130         * class.c: handle moduleref resolution scope.
11131         * image.c, image.h: cache module name in image.
11132
11133 2002-06-07  Martin Baulig  <martin@gnome.org>
11134
11135         * reflection.c (mono_image_get_type_info): Only add a class layout entry
11136         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
11137
11138 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11139
11140         * icall.c: more signature fixes that used uint instead of int.
11141
11142 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11143
11144         * reflection.c: fixed signature of field refs.
11145
11146 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11147
11148         * class.c, reflection.c: handle typerefs of nested types
11149         (both on read and when writing files).
11150
11151 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
11152
11153         * icall.c: fix method signatures that tried to workaround the previous
11154         typo, d'oh!
11155
11156 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11157
11158         * debug-helpers.c: fix typo.
11159
11160 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11161
11162         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
11163         rewrote the PE/COFF writing code (our programs are understood by the
11164         ms runtime, now).
11165
11166 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11167
11168         * gc.c, gc.h, icall.c: weakreference support.
11169
11170 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11171
11172         * Makefile.am, mono-config.c: use $(sysconfdir).
11173
11174 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11175
11176         * icall.c: changed default precision of Double.ToString() to 15.
11177         Fixed memory leak. Unified with Single.ToString.
11178
11179 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
11180
11181         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
11182
11183 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11184
11185         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
11186         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
11187         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
11188         and myself.
11189
11190 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11191
11192         * debug-symfile.c, sysmath.c: yet more compilation fixes.
11193
11194 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11195
11196         * reflection.c, socket-io.c: more compilation fixes.
11197
11198 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11199
11200         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
11201         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
11202         unicode.c: warning and compiler compatibility fixes.
11203
11204 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11205
11206         * class.h, metadata.c: fixed warnings/compilation errors.
11207
11208 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11209
11210         * Makefile.am, mono-config.c, mono-config.h: configuration file
11211         support routines.
11212         * loader.c, loader.h: make Dll mapping configurable at runtime in the
11213         config file. Export methods to insert and lookup mappings.
11214
11215 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11216
11217         * reflection.c: handle types and boxed objects in custom attr
11218         constructors.
11219
11220 2002-05-30  Martin Baulig  <martin@gnome.org>
11221
11222         * debug-symfile.c
11223         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
11224
11225 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
11226
11227         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
11228         to lookup the implmap row for a P/Invoke method.
11229         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
11230         P/Invoke method from the runtime on an as needed basis.
11231
11232 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
11233
11234         * metadata.c (mono_metadata_parse_signature): impl.
11235
11236 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11237
11238         * class.c: handle .pack directive.
11239
11240 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11241
11242         * object.c: initialize static fields with RVA data.
11243
11244 2002-05-25  Martin Baulig  <martin@gnome.org>
11245
11246         * debug-symfile.c
11247         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
11248
11249 2002-05-24  Martin Baulig  <martin@gnome.org>
11250
11251         * debug-symfile.c
11252         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
11253         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11254         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11255
11256 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11257
11258         * object.c: special case string ctros in invoke.
11259         * gc.c: silly whitespace changes.
11260
11261 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11262
11263         * threadpool.[ch]: impl. a threadpool that can
11264         be used by mint and mono.
11265
11266 2002-05-22  Martin Baulig  <martin@gnome.org>
11267
11268         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11269         The first argument is now a `MonoReflectionModuleBuilder *', the return
11270         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11271         `methods' field to get the method builder.  The `token' argument is the
11272         unfixed token.
11273
11274         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11275         invalid characters instead of g_assert_not_reached()ing.  This seems
11276         to be the behaviour of mscorlib.
11277
11278 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11279
11280         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11281         Hestilow to fix bug #25104
11282
11283 2002-05-21  Martin Baulig  <martin@gnome.org>
11284
11285         * debug-symfile.c (mono_debug_find_source_location): New function.
11286         Looks up an IL offset in the line number table and returns the source
11287         location as a string.
11288
11289 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11290
11291         * icall.c:
11292         (mono_double_ToStringImpl): changed %f by %g until we have something
11293         better.
11294
11295 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11296
11297         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11298         parameters first in C#.
11299
11300 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11301
11302         * icall.c, reflection.h: added icall to get info about an event.
11303
11304 2002-05-20  Radek Doulik  <rodo@ximian.com>
11305
11306         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11307         endian
11308         (mono_value_box): don't use memcpy for small sizes on
11309         architectures with unaligned access
11310
11311 2002-05-20  Martin Baulig  <martin@gnome.org>
11312
11313         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11314         if `tb->parent == NULL'.
11315         (mono_reflection_create_internal_class): New function.  This is
11316         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11317         for enum types.
11318
11319         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11320         New interncall.
11321
11322 2002-05-19  Martin Baulig  <martin@gnome.org>
11323
11324         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11325         argument to get the length, don't default to the array length.
11326
11327 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11328
11329         * assembly.c (mono_assembly_setrootdir): New function used to
11330         override the MONO_ASSEMBLIES directory.
11331
11332 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11333
11334         * icall.c: ValueType_GetHashCode() initialize local var.
11335
11336 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11337
11338         * reflection.c: sort custom attributes table.
11339
11340 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11341
11342         * reflection.c: support named args in custom attributes (write support).
11343
11344 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11345
11346         * reflection.c: fix finally position calculation.
11347
11348 2002-05-15  Radek Doulik  <rodo@ximian.com>
11349
11350         * reflection.c: fixed endianess at many places
11351
11352         * icall.c (ves_icall_InitializeArray): comment out debug msg
11353
11354 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11355
11356         * object.c (mono_unhandled_exception): new function to handle
11357         unhandled exceptions.
11358         (mono_unhandled_exception): call the UnhandledException event.
11359         (mono_runtime_delegate_invoke): impl.
11360
11361 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11362
11363         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11364         returns the RVA, not the direct pointer to the data. Handle the case
11365         when the class size is fixed.
11366
11367 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11368
11369         * reflection.c: fix some endianess issues.
11370
11371 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11372
11373         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11374
11375         * threads.c (mono_thread_init): added a callback which is invoked
11376         at thread start.
11377
11378 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11379         
11380         * icall.c: make GetHashCode return non-negative values.
11381
11382 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11383
11384         * object.c, icall.c, gc.c: revert to address-based hashcode.
11385
11386 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11387
11388         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11389
11390 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11391
11392         * icall.c, class.c: special case <Module>.
11393
11394 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11395
11396         * icall.c: fix bug in GetNow().
11397
11398 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11399
11400         * object.c (mono_runtime_class_init): make sure that we call all
11401         static class constructors.
11402
11403 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11404
11405         * reflection.c: sort methodsemantics table.
11406
11407 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11408
11409         * reflection.h, reflection.c: honour init locals setting.
11410
11411 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11412
11413         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11414
11415 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11416
11417         * reflection.c: support ContructorBuilders in attribute blob creation.
11418
11419 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11420
11421         * reflection.c: some changes to build a binary that can be run
11422         directly in windows.
11423
11424 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11425
11426         * loader.c: print a big message when an icall can't be found.
11427
11428 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11429
11430         * string-icalls.c: fix bug 24248.
11431
11432 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11433
11434         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11435         icall.c, reflection.h: separate assembly loading by pathname and by
11436         assembly name. Use the MONO_PATH env var to search for assemblies.
11437
11438 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11439
11440         * assembly.c, image.h: add some support for assemblies
11441         with multiple modules.
11442         * class.c, class.h: export mono_class_from_typeref().
11443         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11444         instead.
11445
11446 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11447
11448         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11449         documentation says (the ECMA one is correct).
11450
11451 2002-05-02  Dick Porter  <dick@ximian.com>
11452
11453         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11454         Don't name the synchronisation mutex.
11455
11456 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11457
11458         * rand.c
11459         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11460         Make the prototypes match.
11461         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11462         Same.
11463
11464         * icall.c
11465         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11466         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11467         all systems have tm.tm_zone, so use strftime() with %Z to print
11468         the timezone abreviation into a temp string.
11469
11470         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11471         rather than mono_array_addr() on a MonoString on Big Endian
11472         machines.
11473
11474 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11475
11476         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11477         fix bug 24041
11478
11479 2002-04-30  Dick Porter  <dick@ximian.com>
11480
11481         * socket-io.c: Cope with SOCKET being an integer rather than a
11482         pointer now.
11483
11484         * threads.c: Added Thread_free_internal, to deal with thread
11485         handle cleanup.  Moved calls to handle_store() and handle_remove()
11486         to start_wrapper(), so each can only be called once.  Allocate
11487         synchronisation blocks with GC_malloc(), and use GC finalisation
11488         to close the handles.
11489
11490         * icall.c: added System.Threading.Thread::Thread_free_internal
11491
11492 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11493
11494         * icall.c: support Environment.Exit, CommandLineArgs().
11495
11496 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11497
11498         * object.c, object.h: added mono_runtime_run_main () and
11499         mono_runtime_get_main_args () for use in System.Environment.
11500
11501 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11502
11503         * gc.c: fix thinko, enable actual finalization since the jit is now
11504         fixed.
11505
11506 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11507
11508         * gc.c, object.c: take into account that an object may be offset wrt the address
11509         returned by GC_malloc().
11510
11511 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11512
11513         * image.c: handle files without entries in the assembly table (modules).
11514
11515 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11516
11517         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11518         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11519         allowed to be null when it's System.Object class setup.
11520
11521 2002-04-27  Martin Baulig  <martin@gnome.org>
11522
11523         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11524         if `tb->parent == NULL' rather than crashing.
11525
11526 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11527
11528         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11529         calling acos() where asin() should have been called.
11530
11531 2002-04-26  Martin Baulig  <martin@gnome.org>
11532
11533         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11534         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11535         there's a subdirectory called `System', but we don't want to read that
11536         subdirectory as an assembly.
11537
11538 2002-04-25  Martin Baulig  <martin@gnome.org>
11539
11540         * debug-symfile.c: Reflect latest MonoString changes.
11541
11542 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11543
11544         * rand.c, rand.h: instance method icalls need to have an explicit
11545         this pointer as first argument in the C implementation.
11546
11547 2002-04-25  Nick Drochak <ndrochak@gol.com>
11548
11549         * icall.c: Fix typo in map for GetNonZeroBytes
11550
11551 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11552
11553         * string-icalls.c : String does now passes unit tests without any 
11554         errors, the following changes has been made:
11555         
11556         Implemented replace methods.
11557         Renaming of methods to (try) follow the standard.
11558         Fixed compare ordinal
11559         Made all memory allocated directly to function instead of via icall function.
11560         Small performance fix in is_in_array function
11561                         
11562  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11563
11564         c (mono_string_Internal_ctor_charp_int_int):
11565         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11566         sindex < 0, throw ArgumentOutOfRangeException instead of
11567         ArgumentNullException.
11568
11569         Added new check for length == 0, however
11570         I need to make it return String.Empty from the C code.
11571         
11572         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11573         that calculate the length for us here.
11574         
11575         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11576         mono_string_new_utf16 with mono_string_new, since value is utf8.
11577
11578 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11579
11580         * object.c: register the object for finalization if needed.
11581         Allocate one more char in the string for the terminating 0 char.
11582
11583 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11584
11585         * class.c, class.h, image.c: check if a type implemenst a destructor.
11586         Use the proper key for array class lookups.
11587         * icall.c: register the icalls in the System.GC class.
11588         * gc.c, gc.h: GC-related functions and icalls.
11589
11590 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11591
11592         * icall.c:
11593         * socket-io.c:
11594         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11595         changed a couple of free () by g_free ().
11596
11597         * decimal.c: one-liner in the comments for decimal2string ().
11598
11599 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11600
11601         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11602
11603 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11604
11605         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11606         * object.c (mono_runtime_invoke_array) : handle null in params
11607
11608 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11609
11610         * string-icalls.c: fixed bug in split (one off bug)
11611
11612 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11613
11614         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11615         * icalls.c: added String::Equals as internal method
11616
11617 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11618
11619         * threads.c: fixed bug in the double interlocked functions
11620
11621 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11622
11623         * threads.c: implemented all of the new interlocked icalls.
11624         * string-icalls.c: fix a bug in insert.
11625         * icalls.c: added the icalls for interlocked, removed old string functions.
11626         
11627 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11628
11629         * loader.c: fix off-by-one error when reading argument names.
11630
11631 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11632
11633         * profiler.c: win32 counter implementation (untested).
11634         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11635         (the latter needs testing and more complete impl. from win32 folks).
11636
11637 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11638
11639         * object.c: mono_array_new_full workaround mono_array_class_get
11640         problem.
11641
11642 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11643
11644         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11645         * object.h (mono_string_chars): Changed casting type.
11646
11647 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11648
11649         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11650                            method signatures to use gunichar2 instead of gint16.
11651
11652 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11653
11654         * object.h, object.c: domain-specific versions of mono_object_new and
11655         mono_array_new.
11656
11657 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11658
11659         * object.c: changed String layout
11660
11661         * string-icalls.c (mono_string_Internal_ctor_chara): added
11662         internal string constructors.
11663
11664 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11665
11666         * threads.c: pass 'this' to the thread start routine.
11667
11668 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11669
11670         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11671         InternalCompareStr don't call twice mono_string_cmp_char for the last
11672         character. Improved performance in mono_string_cmp_char.
11673
11674 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11675
11676         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11677         code into its own library: libmonoruntime.
11678
11679 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11680
11681         * object.h, object.c: changed array format so that szarrays do not
11682         require a bounds structure.
11683         * icall.c, appdomain.c: support for new szarray format.
11684
11685 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11686
11687         * metadata.c: compare also the retuns type when comparing signatures:
11688         we didn't do this as an optimization since really overloaded methods
11689         must differ also in the arguments, but this doesn't work with
11690         low-level IL code (or when using explicit conversion operators: see
11691         bug#23498 for an example).
11692
11693 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11694
11695         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11696
11697 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11698
11699         * icall.c: make MonoType::GetElementType its own icall.
11700
11701 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11702
11703         * icall.c: remove MonoMethod_get_Name().
11704         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11705         object.
11706
11707 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11708
11709         * string-icalls.c: optimized a few methods.
11710
11711 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11712
11713         * icall.c: added all new string internal calls
11714         * string-icalls.c: added, new string internal call implementation.
11715         * object.c: added mono_string_new_size for allocating a string a size
11716
11717 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11718
11719         * object.c (mono_object_isinst): use the same code as in the
11720         optimized x86 version.
11721
11722 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11723
11724         * profiler.c: TSC-based timer code (faster and more accurate).
11725         Not hooked up in configure, yet (set USE_X86TSC to 1).
11726
11727 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11728
11729         * profiler.c, profiler.h: track time spent compiling methods.
11730         * threads.c: track thread creation/destruction.
11731
11732 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11733
11734         * profiler.c, profiler.h, profiler-private.h: profiling interface
11735         and sample implementation. Moved here so that it can be used also by
11736         the jit.
11737
11738 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11739
11740         * reflection.c, reflection.h: keep types and other handles separate in
11741         the hash tables for referred tokens. Add guid for modules.
11742
11743 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11744
11745         * assembly.c: fix bugs found with valgrind.
11746         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11747
11748 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11749
11750         * threads: added icall support for getting current domain for
11751                    the thread.
11752  
11753 2002-04-13  Martin Baulig  <martin@gnome.org>
11754
11755         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11756         (MonoDebugVarInfo): Added `index' field for register based addresses.
11757         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11758         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11759         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11760         `MonoDebugVarInfo *this_var'.
11761
11762         * debug-symfile.c (relocate_variable): New static function to write
11763         a location description for a local variable or method parameter.
11764
11765 2002-04-12  Martin Baulig  <martin@gnome.org>
11766
11767         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11768         stack offset and begin/end scope address of a local variable.
11769         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11770         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11771         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11772
11773         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11774         Added new relocation types for start/end scope of a local variable.
11775
11776 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11777
11778         * object.h: add mono_object_domain() macro.
11779         * reflection.c: handle typespecs.
11780         * icall.c: MonoMethod::get_Name() implementation.
11781
11782 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11783
11784         * icall.c: String::GetHashCode() icall implementation.
11785
11786 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11787
11788         * icall.c: String::IndexOfAny icall.
11789         * object.c, object.h: make array->max_length more useful.
11790         Intrduced mono_object_class() and mono_string_length() macros.
11791
11792 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11793
11794         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11795         instead of g_unichar_isdigit.
11796
11797 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11798
11799         * icall.c: Implement a simple Double.ToString().
11800
11801 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11802
11803         * appdomain.h: only io-layer.h is supposed to be included.
11804         * icall.c: explicitly import environ. Fix warning.
11805
11806 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11807
11808         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11809                 return true even if it's not Daylight Savings time.
11810                 Only return false for the case where the function isn't
11811                 implemented for a plaform (read Windows).
11812
11813 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11814
11815         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11816         data with a mutex.
11817
11818 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11819
11820         * mempool.c (mono_mempool_alloc): only use g_malloc when
11821         absolutely necessary.
11822
11823 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11824
11825         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11826
11827         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11828         (mono_class_proxy_vtable): use domain mempool
11829
11830 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11831
11832         * appdomain.h, appdomain.c: split initialization that requires the
11833         execution engine support into mono_runtime_init().
11834
11835 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11836
11837         * class.c (mono_class_init): don't include vtable inside MonoClass
11838         to save some memory, gather some statistics.
11839         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11840
11841 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11842
11843         * icall.c: internalcall implementation for ValueType.Equals().
11844
11845 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11846
11847         * object.c (mono_message_init): moved 
11848         (mono_runtime_exec_main): new arch. independent impl.
11849         (mono_runtime_invoke_array): new method - like
11850         mono_runtime_invoke, but you can pass an array of objects.
11851         (mono_remoting_invoke): new arch. independent impl.
11852         (mono_message_invoke): new arch. independent impl.
11853         (mono_runtime_class_init): new arch. independent impl.
11854         (mono_runtime_object_init): new arch. independent impl.
11855
11856 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11857
11858         * metadata.c, object.c, reflection.c: documented the exported
11859         functions.
11860
11861 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11862
11863         * icall.c: simpler code to pass the assembly builder data to corlib.
11864         Implement GetNestedTypes() internalcall.
11865
11866 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11867
11868         * class.c: warn if a type can't be loaded.
11869
11870 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11871
11872         * image.h: typedef MonoImageOpenStatus
11873         * types.h: removed unused file
11874         
11875 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11876
11877         * icall.c: Enum_ToObject accepts enum value arguments.
11878
11879 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11880
11881         * class.c: move initialization of properties, events and nested
11882         classes, so that they happen for interfaces, too.
11883
11884 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11885
11886         * icall.c: cleanup some ugly casts in Array_SetValue*.
11887
11888 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11889
11890         * icall.c: the values array fro enums is of the correct type, now.
11891         Implement (correctly) getFullName instead of assQualifiedName for
11892         MonoType.
11893         * reflection.h, reflection.c: added mono_type_get_name ().
11894
11895 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11896
11897         * assembly.c, image.h: for each MonoImage, record from wich assembly
11898         it was loaded.
11899         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11900         Make Type.Assembly work.
11901
11902 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11903
11904         * debug-symfile.h: use char* instead of gpointer to avoid
11905         unnecessary casts.
11906
11907         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11908
11909         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11910         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11911
11912 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11913
11914         * icall.c (mono_message_init): impl. (code cleanup)
11915         (ves_icall_InternalExecute): impl. FieldGetter
11916
11917         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11918         defined we call all (non-static)methods through the vtable. 
11919
11920 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11921
11922         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11923         finalizer even though the memory is still referenced (and the chunk of
11924         memory is not freed).
11925
11926 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11927
11928         * assembly.c: fix brokeness.
11929
11930 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11931
11932         * class.c: kill some warnings. Check explicit interface method
11933         implementation also without considering the namespace.
11934         Load also literal strings in static class data.
11935
11936 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11937
11938         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11939         (default_assembly_name_resolver): Make the resolver take the
11940         "base" directory where the assembly was originally defined, so we
11941         can load DLLs that are in the same directory as the assembly that
11942         is being referenced.
11943
11944 2002-03-28  Dick Porter  <dick@ximian.com>
11945
11946         * file-io.h: 
11947         * file-io.c:
11948         * socket-io.c: 
11949         * unicode.h: 
11950         * unicode.c: Warning cleanups
11951
11952 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11953
11954         * object.h, reflection.h: use the correct type instead of MonoObject.
11955
11956 2002-03-28  Martin Baulig  <martin@gnome.org>
11957
11958         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11959         (mono_debug_update_symbol_file): Initialize classes if necessary.
11960
11961 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11962
11963         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11964         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11965
11966 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11967
11968         * assembly.h: fix function prototype.
11969         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11970         * mono-endian.h: use const cast.
11971
11972 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11973
11974         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11975
11976 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11977
11978         * loader.c: don't assert when a typeref can't be loaded, give
11979         a chance to the runtime to trow an exception instead.
11980         * loader.h: fix warning.
11981
11982 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11983
11984         * class.c (mono_class_proxy_vtable): added proxy support
11985
11986 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11987
11988         * icall.c: removed last of PAL calls, added System.Environment
11989         * file-io.h, file-io.c: MonoIO implementation
11990         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11991
11992 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11993
11994         * appdomain.c: do not use the byte marker in ldstr table lookup.
11995         * debug-helpers.c: allow two ':' to separate class and method name.
11996         * object.c: allocate arrays bounds with the GC, too.
11997         * verify: add a few more checks.
11998
11999 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
12000
12001         * reflection.c: output also literal strings. Allocate parameter data
12002         with GC_malloc() (thanks, Martin, for catching this!).
12003
12004 2002-03-26  Martin Baulig  <martin@gnome.org>
12005
12006         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
12007         include the `this' offset in the `param_offsets'.
12008
12009 2002-03-25  Martin Baulig  <martin@gnome.org>
12010
12011         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
12012         mono_debug_get_class() function to get the classes. Added new
12013         relocation types for arrays and strings.
12014         (mono_debug_get_class): New static function to search in all
12015         referenced assemblies for a metadata token.
12016
12017         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
12018
12019 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
12020
12021         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
12022         hold gc-allocated objects. Make the string heap a stream like the
12023         others. Removed duplicated code when writing stream info.
12024         Added asserts to catch possible buffer overflows. Set the sorted map
12025         for tables that need sorting. Added some documentation.
12026
12027 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
12028
12029         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
12030         for interned strings and vtables.
12031
12032 2002-03-24  Martin Baulig  <martin@gnome.org>
12033
12034         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
12035         it in the array since it was created with g_slist_prepend().
12036
12037 2002-03-24  Martin Baulig  <martin@gnome.org>
12038
12039         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
12040         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
12041         (mono_debug_method_from_token): Renamed to
12042         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
12043         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
12044
12045         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
12046         relocation types.
12047
12048         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
12049
12050 2002-03-24  Martin Baulig  <martin@gnome.org>
12051
12052         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
12053         (mono_debug_method_from_token): New func.
12054
12055         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
12056         New interncall, calls mono_debug_local_type_from_signature().
12057         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
12058         calls mono_debug_method_from_token().
12059
12060 2002-03-23  Martin Baulig  <martin@gnome.org>
12061
12062         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
12063         specifies the number of bytes to be converted, not the array size.
12064         Return the number of chars, not the number of bytes.
12065         (ves_icall_iconv_get_chars): The `byteCount' argument
12066         specifies the number of bytes to be converted, not the array size.
12067
12068 2002-03-23  Martin Baulig  <martin@gnome.org>
12069
12070         * reflection.h (MonoReflectionSigHelper): New type.
12071
12072         * reflection.c (mono_reflection_sighelper_get_signature_local),
12073         (mono_reflection_sighelper_get_signature_local): New functions.
12074
12075         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
12076         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
12077         interncalls.
12078
12079 2002-03-23  Martin Baulig  <martin@gnome.org>
12080
12081         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
12082         is_writeable is set.
12083         (mono_raw_buffer_update): New function to write the modified map
12084         back to disk.
12085
12086         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
12087
12088         * debug-symfile.c (mono_debug_update_symbol_file): Call
12089         mono_raw_buffer_update() when done writing.
12090
12091 2002-03-23  Martin Baulig  <martin@gnome.org>
12092
12093         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
12094
12095         * debug-symfile.c: Added support for arguments and local variables.
12096
12097 2002-03-23  Dick Porter  <dick@ximian.com>
12098
12099         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
12100         protected by ifdefs, hence breaking the w32 build.
12101
12102 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12103
12104         * object.c: implement is_interned() the right way.
12105
12106 2002-03-21  Martin Baulig  <martin@gnome.org>
12107
12108         * debug-symfile.[ch]: New files to handle debugging information
12109         files. There's also support to dynamically update these symbol
12110         files to include machine dependent information.
12111
12112 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
12113
12114         * threads.c (mono_thread_create): new function to create thread
12115         from C
12116
12117 2002-03-20  Martin Baulig  <martin@gnome.org>
12118
12119         * icall.c (ves_icall_InternalInvoke): Create a new object if the
12120         method is a constructor.
12121         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
12122         points to ves_icall_InternalInvoke().
12123
12124 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
12125
12126         * file-io.c: Flush shouldn't throw exceptions.
12127
12128 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
12129
12130         * file-io.c: FileStream flush support; FileSetLength now
12131         restores file pointer.
12132
12133 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12134
12135         * class.c: set image for pointer classes.
12136
12137 2002/03/19  Nick Drochak <ndrochak@gol.com>
12138
12139         * sysmath.c: Forgot one.
12140
12141 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
12142
12143         * sysmath.c: Avoid redefining existing names.
12144
12145 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
12146
12147         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
12148         handled by runtime as icall rather than dllimport from libm.so
12149         * file-io.c, file-io.h: fixed handle argument type.
12150
12151 2002-03-18  Dick Porter  <dick@ximian.com>
12152
12153         * reflection.c (mono_image_get_type_info): rename interface to
12154         iface, because of "#define interface struct" on windows.
12155
12156 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
12157
12158         * class.c, class.h: rename and export mono_ptr_class_get().
12159         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
12160         * reflection.c, reflection.h, icall.c: better/saner type name
12161         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
12162         method signatures.
12163
12164 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
12165
12166         * class.c (mono_class_init): removed hardcoded GHC_SLOT
12167
12168         * icall.c (ves_icall_InternalInvoke): impl.
12169
12170 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12171
12172         * reflection.c: output the interface map table, too.
12173
12174 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12175
12176         * class.c (class_compute_field_layout): separate computation of 
12177         static field layout
12178
12179 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
12180
12181         * icall.c: added System.Buffer support.
12182         * file-io.c: moved file icalls from PAL to FileStream.
12183
12184 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12185
12186         * icall.c (ves_icall_System_Object_GetHashCode): impl.
12187
12188 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
12189
12190         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
12191
12192 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12193
12194         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
12195
12196 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12197
12198         * debug-helpers.{c,h}: moved here from monograph some useful functions
12199         to locate a method by name/signature in a class or image. Included
12200         also a small and flexible IL disassembler.
12201
12202 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12203
12204         * reflection.c: fixup tokens in methods with small header size, too.
12205
12206 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
12207
12208         * object.c (mono_string_to_utf8): remove assert(!error), instead
12209         print a warning. 
12210
12211 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
12212
12213         * icall.c: update to the new mono_Array_class_get interface.
12214
12215 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12216
12217         * appdomain.c, object.c: Boehm-GC enable.
12218         * icall.c: make get_data_chunk() support split data requests.
12219         Ensure a class is initialized in more cases. Return only the first
12220         property found in GetProperties() or the compiler gets confused. 
12221         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
12222         * reflection.h, reflection.c: add fixup mechanism for field and method
12223         tokens. Initialize assembly->typeref in a single place. Output
12224         properties after events. Support custom attributes for events, too.
12225         Typo fix for paramter custom attrs.
12226
12227 2002-03-07  Martin Baulig  <martin@gnome.org>
12228
12229         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
12230
12231 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
12232
12233         * class.c (mono_array_class_get): fix. for multi. dim. arrays
12234
12235 2002-03-06  Martin Baulig  <martin@gnome.org>
12236
12237         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
12238         non-zero lower bounds. See testcases #F10-#F13.
12239
12240 2002-03-05  Martin Baulig  <martin@gnome.org>
12241
12242         * exception.c (mono_get_exception_argument_out_of_range): New exception.
12243
12244         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
12245         ves_icall_System_Array_GetValue(), only calculate the absolute array position
12246         here.
12247         (ves_icall_System_Array_SetValue): Likewise.
12248         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
12249         as argument and does the actual work. This function is used when copying a
12250         multi-dimensional array.
12251         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
12252         now do all the widening conversions of value types.
12253         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12254
12255 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12256
12257         * class.c: remove some magic numbers and use the smbolic names,
12258         instead. Added init_events() to load event info at class init time.
12259         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12260         and mono_metadata_methods_from_event().
12261         * reflection.h, reflection.c: added support for writing out the evnets
12262         related information.
12263
12264 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12265
12266         * reflection.h, icall.c: use a different method (GetInterfaces)
12267         to gather interface info and add isbyref, isprimitive and
12268         ispointer to the ves_icall_get_type_info() return value.
12269
12270 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12271
12272         * class.h: stared adding support for events.
12273         * icall.c: split find_members implementation. Added debug icall to get
12274         the address of an object.
12275         * reflection.c: handle TypeBuilders in mono_type_get_object().
12276
12277 2002-03-01  Martin Baulig  <martin@gnome.org>
12278
12279         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12280         ArgumentOutOfRangeException(), not an ArgumentException().
12281         (ves_icall_System_Array_GetLowerBound): Likewise.
12282         (ves_icall_System_Array_GetValue): Improved argument checking.
12283         (ves_icall_System_Array_SetValue): Improved argument checking.
12284
12285 2002-03-01  Martin Baulig  <martin@gnome.org>
12286
12287         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12288         called with invalid arguments rather than just dying with g_assert().
12289         (ves_icall_System_Array_SetValue): Likewise.
12290         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12291         raise a NotImplementedException instead.
12292         (ves_icall_System_Array_GetLength): Added argument checking.
12293         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12294
12295 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12296
12297         * object.h (mono_assert): new macros mono_assert and
12298         mono_assert_not_reached
12299
12300 2002-02-28  Martin Baulig  <martin@gnome.org>
12301
12302         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12303         and "System::String::IsInterned" to "System::String::_IsInterned".
12304
12305 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12306
12307         * icall.c: remove hacks for typebuilder. Added icall to create a
12308         modified type from a tybebuilder.
12309         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12310         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12311         to create a backing MonoClass for a TypeBuilder.
12312
12313 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12314
12315         * class.c, class.h: more refactoring of class init.
12316         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12317
12318 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12319
12320         * marshal.c, marshal.h: start of marshaling interface.
12321
12322 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12323
12324         * icall.c: fix order in assembly qualified name icall.
12325
12326 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12327
12328         * class.c: do not free str, since we store it in the hash table.
12329         * reflection.h: add label field to MonoILExceptionInfo.
12330         * reflection.c: handle references to more than one assembly. Handle
12331         case when there isn't a module created in the assembly.
12332
12333 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12334
12335         * class.c: Fix typo. Start refactoring of class init code.
12336
12337 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12338
12339         * appdomain.c: exit with 1 on error.
12340         * class.c: we already have the name in MonoClassField.
12341         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12342         MonoStreamHeader instead of an offset of image->raw_metadata.
12343
12344 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12345
12346         * appdomain.c (mono_init): Be even more descriptive about the error.
12347
12348 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12349
12350         * appdomain.c: give the user an informative message when corlib can't
12351         be loaded.
12352
12353 2002-02-26  Martin Baulig  <martin@gnome.org>
12354
12355         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12356         New icall to get the time zone data.
12357
12358 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12359
12360         * reflection.c: set virtual and raw size of section correctly.
12361         * threads.c: transfer domain information to newly created threads.
12362
12363 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12364
12365         * class.c: when instancing a class in a domain, load the default
12366         vaules for static fields from the constant table. Fix System.Enum to
12367         not be an enum.
12368         * icall.c: implement Object::GetType() internalcall. Implemented
12369         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12370         Fixed checking of binding flags in find_members().
12371         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12372         * reflection.c: handle enumerations when writing to the constant
12373         table. Use a different object cache for types.
12374
12375
12376 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12377
12378         * object.c (mono_object_isinst): fix for arrays
12379
12380         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12381
12382 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12383
12384         * object.c: don't use mprotect ()  and fix intern pool hash table
12385         lookup for big endian systems.
12386
12387 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12388
12389         * icall.c: change type_is_subtype_of () signature.
12390
12391 2002-02-21  Mark Crichton  <crichton@gimp.org>
12392
12393         * rand.c, rand.h: Added random number generator for
12394         System.Security.Cryptography classes.
12395
12396         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12397
12398         * icall.c: Added System.Security.Cryptography calls.
12399
12400 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12401
12402         * class.c, icall.c, metadata.c: better support for pointer types.
12403         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12404         * reflection.c: Add support for getting custom attrs for properties
12405         and simplify some code.
12406
12407 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12408
12409         * icall.c: change getToken () and add custom attribute GetBlob()helper
12410         method.
12411         * reflection.h: add custom attrs array to the reflection builder structures.
12412         * reflection.c: encode and emit custom attributes for all the relevant
12413         reflection objects. Cache fieldref and methodref tokens. Change
12414         mono_image_create_token() interface to take a MonoDynamicAssembly.
12415         More complete custom attributes decoder. Load custom attributes for
12416         Assembly, Field, Method and Constructor objects, too. Make the
12417         returned array an Attribute[] one, not object[]. Added
12418         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12419         custom attribute constructor.
12420
12421 2002-02-20  Dick Porter  <dick@ximian.com>
12422
12423         * icall.c:
12424         * rawbuffer.c:
12425         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12426         problem code out for now).
12427
12428 2002-02-19  Radek Doulik  <rodo@ximian.com>
12429
12430         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12431
12432 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12433
12434         * icall.c: register the GetCustomAttributes method.
12435         * object.c, object.h: add mono_string_new_len ().
12436         * reflection.h, reflection.c: added mono_runtime_invoke(),
12437         mono_install_runtime_invoke(). Added
12438         mono_reflection_get_custom_attrs () to load custom attributes and
12439         create the attribute objects.
12440
12441 2002-02-19  Dick Porter  <dick@ximian.com>
12442         * threads-dummy-types.c:
12443         * threads-dummy-types.h:
12444         * threads-dummy.c:
12445         * threads-dummy.h:
12446         * threads-pthread-types.c:
12447         * threads-pthread-types.h:
12448         * threads-pthread.c:
12449         * threads-pthread.h:  Deleted obsolete files
12450
12451 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12452
12453         * class.c (mono_class_vtable): runtime init the class when we
12454         allocate static class data.
12455
12456         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12457
12458         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12459         and String - but we will need generic marshalling support in the
12460         future. 
12461         (mono_init): set the domain name in a ms compatible way
12462
12463         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12464         String[].
12465
12466 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12467
12468         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12469         for sizes
12470
12471         * appdomain.c (mono_domain_unload): impl.
12472
12473 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12474
12475         * appdomain.c, object.c: fix intern pool implementation.
12476         * class.c: fix alignment code.
12477
12478 2002-02-16  Radek Doulik  <rodo@ximian.com>
12479
12480         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12481         and s2 > s1, just copy lower bytes to be compatible with little
12482         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12483         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12484
12485         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12486         force big_endian to be 1 for big endian machines 
12487         (ves_icall_iconv_new_decoder): ditto
12488
12489 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12490
12491         * socket-io.c (convert_sockopt_level_and_name): If the system
12492         doesn't define SOL_IP or SOL_TCP, get them by hand using
12493         getprotobyname() and caching the values (because this could be a
12494         slow operation).
12495         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12496         Use the appropriate struct when the system does support it. Ie,
12497         not all systems have struct ip_mreqn so use struct ip_mreq when
12498         appropriate.
12499
12500 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12501
12502         * reflection.c: handle finally clauses.
12503
12504 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12505
12506         * socket-io.c: use g_snprintf() instead of snprintf.
12507
12508 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12509
12510         * reflection.c (mono_param_get_objects): Cast second argument to
12511         mono_method_get_param_names to a const char** to silence the
12512         compiler warning.
12513
12514         * appdomain.c (mono_domain_assembly_open): Put parens around the
12515         truth statement in the for-loop.
12516
12517         * unicode.c (iconv_convert): Got rid of a compiler warning about
12518         int i being unused when the system has a new iconv.
12519         (iconv_get_length): Same.
12520
12521         * image.c (load_class_names): Cast the second argument to
12522         g_hash_table_insert() to char* to hush compiler warnings about the
12523         arg being a const.
12524         (mono_image_open): Same here.
12525
12526         * socket-io.c: Don't conditionally include sys/filio.h or
12527         sys/sockio.h here anymore since we now get them from
12528         io-layer/io-layer.h
12529         (inet_pton): If the system doesn't support inet_aton, implement
12530         using inet_addr and also #define INADDR_NONE if it isn't defined
12531         by the system.
12532
12533 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12534
12535         * metadata.c, metadata.h: added function to get packing and size info
12536         of a typedef.
12537         * reflection.h, reflection.c: handle field RVA data. Save info about
12538         the table layout if needed. Assign typedef indexes to all the types
12539         before dumping the info about them to avoid forward reference problems.
12540
12541 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12542
12543         * socket-io.c (convert_sockopt_level_and_name): ifdef
12544         SO_ACCEPTCONN because it is not defined on my system (old debian)
12545
12546 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12547
12548         * opcode.c: use stddef.h to get NULL.
12549
12550 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12551
12552         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12553         for FIONBIO, FIONREAD and SIOCATMARK.
12554         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12555         define INADDR_NONE and besides, inet_addr() is deprecated and
12556         should not be used. Use inet_pton() instead - it also has the
12557         added bonus that it can easily handle IPv6 addresses as well.
12558         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12559
12560 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12561
12562         * decimal.c: remove _MSC_VER conditional.
12563
12564 2002-02-13  Dick Porter  <dick@ximian.com>
12565
12566         * socket-io.c: 
12567         * icall.c: Internal calls for Blocking, Select, Shutdown,
12568         GetSocketOption and SetSocketOption
12569
12570 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12571
12572         * assembly.cs: better resolver: use it instead of some kludgy
12573         code.
12574
12575 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12576
12577         * reflection.c: the best way to speed-up the compiler is to avoid
12578         infinite loops.
12579
12580 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12581
12582         * class.c (mono_class_vtable): changed the object layout
12583         (obj->vtable->class). 
12584         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12585
12586 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12587
12588         * assembly.c: look for assemblies in the assembly dir, too.
12589
12590 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12591
12592         * class.c: fix thinko in mono_class_from_type().
12593
12594 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12595
12596         * exception.h, exception.c: added TypeLoadException.
12597         * object.h, object.c: added mono_array_clone ().
12598         * icall.c: handle throwOnError in AssemblyGetType().
12599         Added Array.Clone().
12600         * opcode.h, opcode.c: use a single value for the opcode val.
12601         Compile fix for non-gcc compilers.
12602
12603 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12604
12605         * opcodes.c, opcodes.h: export interesting info about opcodes.
12606
12607 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12608
12609         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12610         icalls. 
12611
12612         * class.c (class_compute_field_layout): set element_class for enums
12613         (mono_class_create_from_typedef): set element_class for normal classes
12614
12615         * icall.c (ves_icall_System_Enum_get_value): impl.
12616
12617         * class.c (mono_class_create_from_typedef): do not set valuetype
12618         flag for System.ValueType and System.Enum
12619
12620 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12621
12622         * unicode.c (iconv_convert): fix big endian problem.
12623
12624 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12625
12626         * class.c: add asserts if we are ever going to scribble over memory.
12627         * socket-io.c: not all systems have AF_IRDA defined.
12628
12629 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12630
12631         * class.c (class_compute_field_layout): do not consider static
12632         fields to compute alignment
12633
12634 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12635
12636         * appdomain.c (mono_appdomain_get): impl.
12637         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12638
12639 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12640
12641         * icall.c: ignore "file://" prefix when loading an assembly.
12642
12643 2002-01-23  Dick Porter  <dick@ximian.com>
12644
12645         * socket-io.c:
12646         * icall.c:
12647         * Makefile.am: Added socket support
12648
12649 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12650
12651         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12652         code back.  This should return the assemblies that are loaded by
12653         the runtime on behalf of an application domain. 
12654
12655         The current implementation is still broken, it just returns every
12656         assembly loaded, but until we get real applications domain this
12657         will do.
12658
12659 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12660
12661         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12662         AppDomain object.
12663
12664 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12665
12666         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12667         the mono_class_from_name lookup.
12668         (ves_icall_get_parameter_info): ditto.
12669         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12670         method.
12671         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12672
12673 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12674
12675         * class.c: load also nested classes on class init.
12676         System.ValueType instance methods gets passed boxed
12677         values, unless methods in derived classed that get a pointer to the
12678         data.
12679         * icall.c: use better name parsing code in GetType().
12680         * image.c, image.h: add mono_image_loaded ().
12681         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12682         * reflection.c, reflection.h: added mono_reflection_parse_type().
12683
12684 2002-01-22  Veronica De Santis <veron78@interfree.it>
12685
12686         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12687         * threads.c : Added the implementation of internal calls for events
12688         * threads.h : Added prototypes of internal calls for events
12689         
12690 2002-01-21  Radek Doulik  <rodo@ximian.com>
12691
12692         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12693
12694 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12695
12696         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12697         (mono_class_value_size): use min_align
12698
12699 2002-01-20  Dick Porter  <dick@ximian.com>
12700
12701         * threads.h:
12702         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12703         so it compiles on w32.
12704
12705 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12706
12707         * metadata.c (mono_type_stack_size): impl.
12708
12709         * class.c (mono_class_get_field): impl. memberref token
12710
12711 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12712
12713         * icall.h : Added the internal calls mapping for CreateMutex_internal
12714                     and ReleaseMutex_internal.
12715         * threads.h : Added the prototype of mutexes internal calls.
12716         * threads.c : Added the implementations of mutexes internal calls.
12717
12718 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12719
12720         * metaparse.h: removed unused file.
12721         * reflection.c, reflection.h: added stream_data_align () function 
12722         to align data in streams and keep stream aligned. Add support for
12723         exception support in method headers.
12724
12725 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12726
12727         * unicode.c: make iconv_convert () return the number of bytess written
12728         in the output buffer.
12729
12730 2002-01-15  Dick Porter  <dick@ximian.com>
12731         * threads.c: Make the runtime's idea of infinite timeouts coincide
12732         with the class library's
12733
12734         Fix a particularly egregious bug in mono_thread_cleanup(). That
12735         code was so utterly bogus it must have been written on a Monday.
12736
12737 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12738
12739         * reflection.h: add subtypes field to TypeBuilder.
12740         * reflection.c: encode constants for literal fields.
12741         Handle subtypes. Fix user string token (and add a zero byte)
12742         at the end.
12743         
12744 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12745
12746         * class.c (mono_class_init): bug fix: assign slot numbers for
12747         abstract methods.
12748
12749 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12750
12751         * reflection.c: don't try to output a code RVA for abstract methods.
12752         Small fixes for method header format. Output parameter info to the
12753         ParamDef table. Save method overriding info to MethodImpl table.
12754         Fix property support. Allow typedef.extends to be a type in the
12755         building assembly.
12756         * verify.c: fix off-by-one error.
12757
12758 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12759
12760         * class.c: fix mono_class_from_mono_type () for szarray types.
12761         Remove unused cache check in mono_class_from_type_spec().
12762         * icall.c: *type_from_name () functions handle simple arrays and byref.
12763         * reflection.c: handle byref and szarray types. Handle methods without
12764         body (gets P/Invoke compilation working). Handle types and fields in
12765         get_token ().
12766         * reflection.h: add rank to MonoTypeInfo.
12767
12768 2002-01-10  Dick Porter  <dick@ximian.com>
12769
12770         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12771         internal calls
12772
12773 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12774
12775         * icall.c: initialize class in type_from_handle ().
12776         Loop also in parent classes for get_method ().
12777         * reflection.c: properly encode class and valuetype types.
12778         Start on encoding TypeBuilder types. Handle fieldrefs.
12779         Use correct length when registering a user string.
12780         Handle ConstructorBuilder and MonoMethod in get_token ().
12781         Make mono_type_get_object () aware of cached types.
12782         * object.c: back out change to mono_string_new ().
12783
12784 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12785         * object.c: mono_string_new should return a NULL when the string 
12786         passed in is NULL -- not try to deference it.
12787         
12788 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12789
12790         * icall.c: hack to make IsSubType work for TypeBuilders.
12791         * reflection.c: emit constructors before methods.
12792         Retrieve param names in mono_param_get_objects().
12793
12794 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12795
12796         * Makefile.am: fix list of headers and sources so automake 1.5
12797         doesn't complain. Removed \# at end of list.
12798
12799 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12800
12801         * reflection.c: get token for a method ref. Set return type of
12802         constructor to void.
12803         * loader.c: debug message.
12804         * class.c: typo fix.
12805
12806 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12807
12808         * icall.c: fix array init with rank > 1. FindMembers
12809         loops in parent class as well.
12810         * image.c: do not insert nested types in name cache.
12811         * reflection.c: warning fix.
12812         * reflection.h: add override method (for interface impl).
12813
12814 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12815
12816         * metadata.c: fix customattr decoding.
12817
12818 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12819
12820         * rawbuffer.cs: Added native Win32 implementation, avoids using
12821         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12822
12823 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12824
12825         * class.c: make the low-level routines handle the cache.
12826
12827 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12828
12829         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12830
12831 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12832
12833         * class.c: fix mono_array_element_size() for objects.
12834         * class.h, class.c: add properties to MonoClass and load them
12835         at init time.
12836         * icall.c: check with isinst() when assigning a value to an array
12837         instead of requiring the classes to match exactly.
12838         Implemented icall for System.Type::GetType().
12839         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12840         enums. Handle bindingflags when looking for methods and fields.
12841         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12842         and mono_metadata_methods_from_property().
12843         * reflection.h, reflection.c: added structures for propreties,
12844         parameters and enums. Implemented mono_property_get_object() and
12845         mono_param_get_objects().
12846
12847 2001-12-18  Dick Porter  <dick@ximian.com>
12848
12849         * file-io.c: Use mono_string_to_utf16() instead of
12850         mono_string_chars()
12851
12852         * object.c: Added mono_string_to_utf16(), which copies the non
12853         NULL-terminated MonoString into a new double-null-terminated
12854         buffer.
12855
12856 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12857
12858         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12859
12860 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12861
12862         * file-io.c: raise exceptions if handle is invalid.
12863
12864 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12865
12866         * assembly.c: yet another check for mscorlib.
12867         * class.c, class.h: load nesting info for classes.
12868         * icall.c: many new functions to support the Reflection classes.
12869         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12870         * reflection.h, reflection.c: mono_image_create_token(),
12871         mono_assembly_get_object(), mono_type_get_object(),
12872         mono_method_get_object(), mono_field_get_object(): methods to return
12873         objects that parallel the C representation of assemblies, types,
12874         methods, fields.
12875
12876 2001-12-11  Dick Porter  <dick@ximian.com>
12877
12878         * icall.c:
12879         * file-io.c: Internal calls for file IO.
12880
12881 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12882
12883         * tabledefs.h: missing FileAttributes.
12884         * verify.h, verify.c: use is_valid_string () to simplify and check for
12885         valid strings more correctly. Fix warnings and speeling.
12886         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12887         Check code: branches, maxstack, method calls.
12888
12889 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12890
12891         * object.c (mono_object_allocate): removed static, so that the jit
12892         can allocate value types.
12893
12894         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12895
12896 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12897
12898         * class.c: init enum types right away and register the
12899         token->MonoClass map in mono_class_create_from_typedef ().
12900         * verify.h, verify.c: first cut of the verifier.
12901         * pedump.c: add --verify switch to verify metadata tables.
12902         * tabledefs.h: add some missing enums.
12903
12904 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12905
12906         * class.c (mono_install_runtime_class_init): impl.
12907         (mono_class_init): renamed mono_class_metadata_init to
12908         mono_class_init, also removed the metadata_inited flag
12909
12910         * object.c (mono_object_isinst): use faster algorithm
12911
12912 2001-11-30  Radek Doulik  <rodo@ximian.com>
12913
12914         * mono-endian.h: reverted last change
12915         added function prototypes
12916
12917         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12918         add mono-endian.c back
12919
12920         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12921         for unaligned access, I've mistaked it with endianess. I am
12922         sorry.
12923         (mono_read16): fix reverted endianess
12924         (mono_read64): ditto
12925         (mono_read32): ditto
12926
12927 2001-11-30  Dick Porter  <dick@ximian.com>
12928
12929         * exception.c: Implement mono_exception_from_name()
12930
12931 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12932
12933         * metadata.h, metadata.c: remove params_size and locals_size and their
12934         calculation from the metadata code: they are only usefult to the
12935         interp.
12936
12937 2001-11-29  Radek Doulik  <rodo@ximian.com>
12938
12939         * object.c (mono_ldstr): swap bytes here, it's probably not the
12940         best place, but works for me now, I'll redo it once I know mono
12941         better, also note that I add PROT_WRITE and don't reset back, also
12942         note that it's only affects big endians, so x86 should be OK
12943
12944         * mono-endian.h (read16): use just glib macros for both endians
12945
12946         * mono-endian.c: removed as glib macros are used in in
12947         mono-endian.h so we don't need to care about endianess for read
12948         macros as glib does that for us already
12949
12950 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12951
12952         * class.h, class.h: take minimum alignment into consideration so
12953         that the fields of a class remain aligned also when in an array.
12954
12955 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12956
12957         * loader.h, loader.c: add mono_method_get_param_names().
12958         * class.c: 0-init class fields.
12959
12960 2001-11-26  Dick Porter  <dick@ximian.com>
12961
12962         * icall.c:
12963         * threads-types.h:
12964         * threads.c: New file that handles System.Threading on all platforms
12965
12966         * object.c: 
12967         * object.h: Remove the synchronisation struct from MonoObject,
12968         replace it with a pointer that gets initialised on demand
12969
12970         * Makefile.am: Replace all the system-specific threading code with
12971         a single file that uses the new wrapper library
12972
12973 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12974
12975         * class.c, class.h: add mono_install_trampoline() so that the runtime
12976         can register a function to create a trampoline: removes the ugly
12977         requirement that a runtime needed to export arch_create_jit_trampoline.
12978         * object.h, object.c: added mono_install_handler() so that the runtime
12979         can install an handler for exceptions generated in C code (with
12980         mono_raise_exception()). Added C struct for System.Delegate.
12981         * pedump.c: removed arch_create_jit_trampoline.
12982         * reflection.c: some cleanups to allow registering user strings and
12983         later getting a token for methodrefs and fieldrefs before the assembly
12984         is built.
12985         * row-indexes.h: updates and fixes from the new ECMA specs.
12986
12987 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12988
12989         * class.h, class.c: add enum_basetype field to MonoClass.
12990         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12991         to get index in the constant table reated to a field, param or
12992         property.
12993         * reflection.h, reflection.c: handle constructors. Set public-key and
12994         version number of the built assembly to 0.
12995         * row-indexes.h: update from new ECMA spec.
12996
12997 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12998
12999         * class.h, class.c: add a max_interface_id to MonoClass.
13000         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
13001         since it's used to do that. Added mono_type_type_from_obj().
13002         Make GetType() return NULL instead of segfaulting if the type was not
13003         found. Handle simple arrays in assQualifiedName.
13004         * object.h: add a struct to represent an Exception.
13005         * reflection.c: output call convention in method signature.
13006         Add code to support P/Invoke methods and fixed offsets for fields.
13007
13008 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
13009
13010         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
13011         the value.
13012         * icall.c: use mono_array_addr instead of array->vector: fixes the
13013         reflection image writing.
13014         * reflection.c: init call convention byte to 0 in method signature.
13015         Encode the property signature. Don't output property-related methods
13016         twice. Really process the properties for a type (don't cast a field to
13017         a property, my mom always told me that).
13018         Fix 64 bit issues in pointer alignment in a different and more
13019         readable way.
13020
13021 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
13022
13023         * loader.h: Removed type class from MonoDefaults, added monotype
13024
13025         * loader.c: Loaded MonoType, removed loading of Type
13026
13027         * icall.c (my_mono_new_object): Now returns a System.MonoType,
13028         and fills in System.Type._impl with a RuntimeTypeHandle rather
13029         than the actual MonoClass *
13030
13031         (ves_icall_type_from_handle): change from type_class to
13032         monotype_class
13033
13034         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
13035         implemented
13036
13037         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
13038         implemented
13039
13040         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
13041
13042         (ves_icall_System_Reflection_Assembly_GetType): implemented
13043
13044         (ves_icall_System_MonoType_assQualifiedName): implemented
13045
13046         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
13047
13048 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
13049
13050         * assembly.c (mono_assembly_open): Implement a cache for the
13051         assemblies. 
13052
13053         (mono_assembly_close): only destroy the assembly when the last
13054         reference is gone.
13055         
13056 2001-11-09  Dick Porter  <dick@ximian.com>
13057
13058         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
13059
13060 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
13061
13062         * class.c (mono_class_metadata_init): bug fix: compute the right slot
13063
13064 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
13065
13066         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
13067         from Martin Weindel.
13068         * object.h: add mono_string_chars ().
13069
13070 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
13071
13072         * reflection.c (build_compressed_metadata): Eliminates warnings
13073         and uses 64-bit clean code.
13074
13075         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
13076         (mono_type_equal): Change signature to eliminate warnings.
13077
13078 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
13079
13080         * icall.c, loader.c: remove the internalcall array constructors.
13081         Changes to match the new MonoArray structure.
13082         * object.h, object.c: an array object doesn't allocate an extra
13083         vector. Add mono_array_new_full () to create jagged arrays easily.
13084
13085 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
13086
13087         * metadata.h, metadata.c: add mono_metadata_field_info () to
13088         retreive all the info about a field from vairous tables.
13089         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
13090         * class.h, class.c: augment MonoClassField with more info.
13091         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
13092         policy and load a field's RVA if needed.
13093
13094 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
13095
13096         * class.c (mono_class_metadata_init): create a trampoline for all
13097         virtual functions instead of actually compiling them.
13098
13099 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
13100
13101         * class.h, class.c: include name in MonoClassField.
13102         * class.c: fix fundamental type of System.Object and System.String.
13103         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
13104         tokens in ldtoken.
13105         * icall.c: remove internalcalls for the Reflection stuff that is now
13106         done in C# code.
13107         * loader.c: mono_field_from_memberref () implementation.
13108         * mono-endian.c: thinko (s/struct/union/g).
13109         * object.c, object.h: make the mono_string_* prototypes actually use
13110         MonoString instead of MonoObject.
13111         * reflection.c, reflection.h: updates for changes in the reflection
13112         code in corlib: we use C structures that map to the actual C# classes.
13113         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
13114         fat method header if needed and use the info from the ILGenerator for
13115         methods. Handle fields in types. Misc fixes.
13116
13117 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
13118
13119         * class.c (mono_class_metadata_init): bug fix: always allocate
13120         space for static class data
13121
13122 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
13123
13124         * class.c (mono_compute_relative_numbering): use relative
13125         numbering to support fast runtime type checks.
13126
13127 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
13128
13129         * class.c (mono_class_create_from_typeref): added debugging output
13130         to print class name when MonoDummy is returned instead of real class
13131
13132 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
13133
13134         * class.c (mono_class_metadata_init): interface offset table now
13135         contains pointers into the vtable - this is more efficient for the jit
13136
13137 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
13138
13139         * class.c (mono_class_metadata_init): use a temporary vtable (the
13140         old algorithm only worked for the interpreter, but not for the jit)
13141
13142 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
13143
13144         * loader.c (method_from_memberref): use mono_class_get to get the
13145         class of an array instead of using System.Array directly.
13146         (mono_get_method): also add MEMBERREF methods to the method cache
13147         which usefull for arrays.
13148
13149 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
13150
13151         * pedump.c (arch_compile_method): added to compute vtable entry
13152
13153         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
13154         number of interfaces.
13155         
13156         * class.h: merged MonoArrayClass into MonoClass
13157
13158         * class.c (mono_class_create_from_typedef): compute the vtable size and
13159         allocate space to include the vtable inside MonoClass
13160         (mono_class_metadata_init): initialize the vtable
13161
13162 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
13163
13164         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
13165         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
13166         * image.c: endian fixes by Laurent Rioux.
13167         * object.h, object.c: rename MonoStringObject to MonoString and
13168         MonoArrayObject to MonoArray. Change some function names to conform to
13169         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
13170         guint16* as first argument, so don't use char*.
13171         Provide macros to do the interesting things on arrays in a portable way.
13172         * threads-pthread.c: updates for the API changes and #include <sched.h>
13173         (required for sched_yield()).
13174         * icall.c: updates for the API changes above.
13175         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
13176         platforms that need them.
13177
13178 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13179
13180         * class.c: set the correct type for all the fundamental
13181         type when loading the class.
13182
13183 2001-10-05  Dick Porter  <dick@ximian.com>
13184
13185         * threads-pthread.c (pthread_mutex_timedlock): Simple
13186         compatibility version for C libraries that lack this call.
13187
13188 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13189
13190         * class.c: MonoTypes stored in MonoClass are stored as
13191         fundamental MonoTypes when the class represents a
13192         fundamental type (System.Int32, ...).
13193         The TypeHandle return by ldtoken is a MonoType*.
13194         * icall.c: ves_icall_get_data_chunk () write out all the
13195         PE/COFF stuff. Implement ves_icall_define_method (),
13196         ves_icall_set_method_body (), ves_icall_type_from_handle ().
13197         * image.c: properly skip unknown streams.
13198         * loader.h, loader.c: add type_class to mono_defaults.
13199         * metadata.c, metadata.h: export compute_size () as
13200         mono_metadata_compute_size () with a better interface.
13201         Typo and C&P fixes.
13202         * pedump.c: don't try to print the entry point RVA if there is no entry point.
13203         * reflection.c, reflection.h: many cleanups, fixes, output method
13204         signatures and headers, typedef and typeref info, compress the metadata
13205         tables, output all the heap streams, cli header etc.
13206         * row-indexes.h: typo fixes.
13207
13208 2001-10-04  Dick Porter  <dick@ximian.com>
13209
13210         * object.h: Add a synchronisation mutex struct to MonoObject
13211
13212         * object.c (mono_new_object): Initialise the object
13213         synchronisation mutexes
13214
13215         * icall.c: System.Threading.Monitor internal calls
13216         
13217         * threads-pthread.h:
13218         * threads-pthread.c: System.Threading.Monitor internal calls
13219
13220         * threads-types.h: New file, includes the system-specific thread
13221         structures
13222         
13223         * threads-pthread-types.h:
13224         * threads-pthread-types.c: New files, handle pthread-specific
13225         synchronisation types
13226
13227         * threads-dummy-types.h: 
13228         * threads-dummy-types.c: New files of dummy support for
13229         thread-specific types
13230
13231         * metadata.c:
13232         * image.c:
13233         * pedump.c: include mono-endian.h not endian.h
13234         
13235         * Makefile.am: More threads files.
13236         Name mono-endian.h not endian.h
13237
13238 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
13239
13240         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
13241         stuff and implement a few more bits.
13242         * icall.c: a field needs to be dereferenced twice. Do not use the same
13243         name for two variables in the same scope.
13244         * image.c, image.h: cleanups.
13245
13246 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
13247
13248         * class.c (mono_class_metadata_init): bug fix: compute the right size
13249
13250 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
13251
13252         * icall.c: implemented some of the Reflection internalcalls.
13253         * image.c, image.h: start writing out the PE/COFF image.
13254         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13255         that does the reverse than decode_blob_size ().
13256         * object.c: use mono_metadata_encode_value (). Move here
13257         temporary implementation of mono_string_to_utf8 ().
13258         * rawbuffer.c: make malloc_map static.
13259
13260 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13261
13262         * metadata.c: fix type comparison for arrays.
13263         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13264         Added a couple of new classes to monodefaults.
13265         * icall.c: added a couple of Reflection-related internalcalls.
13266         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13267         Added a byval_arg MonoType to MonoClass.
13268
13269 2001-09-28  Dick Porter  <dick@ximian.com>
13270
13271         * icall.c:
13272         * threads-pthread.h: 
13273         * threads-pthread.c: Implemented internal calls for
13274         LocalDataStoreSlot operations.  Applied mutexes around all shared
13275         data.  Reworked the thread creation and Start() operations to
13276         avoid a race condition.
13277         
13278         * threads-dummy.h:
13279         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13280
13281 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13282
13283         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13284
13285 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13286
13287         * class.c, loader.c: warn and return NULL instead of erroring out.
13288         * icall.c: added System.AppDomain::getCurDomain().
13289         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13290
13291 2001-09-25  Dick Porter  <dick@ximian.com>
13292
13293         * threads-pthread.h:
13294         * threads-pthread.c: Implemented timed thread joining and added
13295         System.Threading.Thread::Join_internal internal call
13296
13297         * icall.c: Added System.Threading.Thread::Join_internal internal call
13298
13299         * threads-dummy.h:
13300         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13301
13302 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13303
13304         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13305         mono_string_intern () to implement the semantics of the ldstr opcode
13306         and the interning of System.Strings.
13307         * icall.c: provide hooks to make String::IsIntern and String::Intern
13308         internalcalls.
13309
13310 2001-09-23  Dick Porter  <dick@ximian.com>
13311
13312         * threads-dummy.c: 
13313         * threads-dummy.h: New files of dummy threading routines
13314
13315         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13316         support code based on system specifics
13317
13318         Rename PTHREAD_LIBS to THREAD_LIBS
13319         
13320 2001-09-23  Dick Porter  <dick@ximian.com>
13321
13322         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13323         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13324         internal calls.
13325         (mono_thread_init): Set up a Thread object instance to return when
13326         the main thread calls Thread.CurrentThread
13327         (mono_thread_cleanup): Wait for all subthreads to exit
13328
13329         * icall.c: New internal calls for System.Threading.Thread::Sleep
13330         (including Schedule) and CurrentThread
13331
13332         * threads.h: New file, to insulate thread-specific stuff from the
13333         rest of the code
13334
13335 2001-09-21  Dick Porter  <dick@ximian.com>
13336
13337         * threads-pthread.h: 
13338         * threads-pthread.c: New file, for handling pthreads-style
13339         threading support.  Start() now starts a new thread and executes
13340         the ThreadStart delegate instance.
13341
13342         * icall.c: Added the internalcall for
13343         System.Threading.Thread::Start_internal
13344
13345         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13346
13347 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13348
13349         * loader.c: work around the different signatures for delegates
13350         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13351
13352 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13353
13354         * class.h, class.c: add mono_class_get_field_from_name ().
13355         * *: Fix C comments and other ANSI C issues.
13356
13357 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13358
13359         * endian.h, assembly.c: fix some endianness issues.
13360
13361 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13362
13363         * loader.h, load.c: add delegate_class to mono_defaults.
13364         Handle runtime provided methods in mono_get_method ().
13365
13366 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13367
13368         * loader.c (mono_get_method): use pinvoke for internal call
13369
13370         * icall.c: use pinvoke for internal call
13371
13372         * loader.c (method_from_memberref): set the method name
13373
13374 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13375
13376         * metadata.c: help the compiler generate better code for
13377         mono_class_from_mono_type ().
13378
13379 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13380
13381         * class.c (mono_class_metadata_init): delayed computing of the
13382         class size to mono_class_metadata_init ()
13383
13384 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13385
13386         * class.c, class.h: add an interfaces member to MonoClass.
13387         * image.c, image.h: add assembly_name field to MonoImage
13388         from the assembly table.
13389         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13390
13391 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13392
13393         * class.c: Handle Array in mono_class_from_mono_type ().
13394         * metadata.c, pedump.c: some endian fixes.
13395
13396 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13397
13398         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13399         * metadata.c: fix small problem introduced with the latest commit.
13400
13401 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13402
13403         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13404         We don't need a MonoMetadata pointer anymore to compare signatures in
13405         mono_metadata_signature_equal (), update callers.
13406         Reduced memory usage an number of allocations for MonoMethodHeader and
13407         MonoMethodSignature.
13408
13409 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13410
13411         * metadata.c: added compare for szarray.
13412
13413 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13414
13415         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13416         and add a couple more types to it and mono_defaults. Give an hint on
13417         classes that need implementing in our corlib and are referenced
13418         in mscorlib.
13419
13420 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13421
13422         * class.h, class.c: keep track if a class is also an Enum.
13423         * loader.c: Implement a couple more types for use in libffi
13424         marshalling. Gives better diagnostics when failing to dlopen
13425         a library. Set method->klass for P/Invoke methods, too.
13426
13427 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13428
13429         * class.c, class.h: add a MonoType this_arg to MonoClass that
13430         represents a pointer to an object of the class' type that
13431         can be used by the interpreter and later the type cache.
13432         Add best guess alignment info for valuetype objects.
13433
13434 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13435
13436         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13437         into MonoType: one less level of indirection and allocation and
13438         simplifies quite a bit of code. Added cache for MonoTypes that are
13439         used frequently, so that we don't need to allocate them all the time.
13440
13441 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13442
13443         * class.c (mono_class_create_from_typedef): System.Enum is also a
13444         value type, although it does not derive from System.ValueType
13445         (maybe a bug in the ms compiler?)
13446
13447         * metadata.c (mono_type_size): return the right size for value types
13448
13449         * loader.c (mono_get_method): only initialize method header if not abstract
13450
13451         * class.c (mono_class_from_mono_type): use mono_default values. 
13452
13453 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13454
13455         * *: use MonoClass pointers instead of <type_tokens>
13456         
13457         * class.h: new flag: metadata_inited.
13458
13459         * class.c (mono_class_metadata_init): impl.
13460         (mono_class_instance_size): impl.
13461         (mono_class_data_size): impl.
13462
13463 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13464
13465         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13466         MonoClass now has the name and name_space fields. 
13467         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13468         mono_get_method () takes and optional MonoClass as argument.
13469         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13470         instead that takes advantage of a map from class names to typedef
13471         tokens in MonoImage.
13472
13473 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13474
13475         * metadata.c: zero is not a valid alignment boundary.
13476         Merge MONO_TYPE_VOID in default decoding code.
13477
13478 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13479
13480         * image.h: merged MonoMetadata into MonoImage
13481
13482         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13483         identify the type of elements.
13484
13485 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13486
13487         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13488         * cil-coff.h: split MonoMSDOSHeader and add size info.
13489         * image.c: add some consistency checks.
13490         * metadata.c: fix row size computation: one programmer
13491         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13492         add explanation for the locator routine.
13493         Fix decoding of size in method header.
13494         
13495 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13496
13497         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13498         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13499         function from gnome-libs.  This uses the right path separator
13500         based on the OS, and also works around a bug in some systems where
13501         a double slash is not allowed. 
13502         (default_assembly_name_resolver): Use g_concat_dir_and_file
13503         (mono_assembly_open): ditto.
13504
13505 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13506
13507         * metadata.c (mono_metadata_signature_equal): impl.
13508
13509         * *: void is now a realy MonoType (instead of using NULL)
13510         
13511         * metadata.c (do_mono_metadata_parse_type): use
13512         mono_metadata_parse_type to parse void value.
13513
13514 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13515
13516         * metadata.c, metadata.h: in the signature and method header store
13517         only the space required for holding the loca vars and incoming arguments.
13518
13519 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13520
13521         * metadata.c (do_mono_metadata_parse_type): treat void like any
13522         other type (instead of assigning NULL);
13523
13524 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13525
13526         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13527
13528 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13529
13530         * image.c (do_mono_image_open): added a cache for arrays.
13531
13532 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13533
13534         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13535         decode a single column from a row in a metadata table and changes
13536         to take advantage of it in the typedef locator (gives a nice speed up).
13537         Store offset info for function params.
13538
13539 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13540
13541         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13542
13543 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13544
13545         * assembly.c: how could mono_assembly_close () had ever worked?
13546         * metadata.c, metadata.h: provide offset info for local vars.
13547         Implement mono_type_size () to take care of alignment as well
13548         as size (it was mono_field_type_size in cli/class.c before).
13549
13550 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13551
13552         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13553
13554         * assembly.h (CORLIB_NAME): set to corlib.dll
13555
13556         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13557
13558 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13559
13560         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13561         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13562         tokentype.h: massive namespace cleanup.
13563
13564 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13565
13566         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13567
13568 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13569
13570         * metadata.c (mono_metadata_free_type): added check for type !=
13571         NULL (void) before calling mono_metadata_free_type()
13572
13573 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13574
13575         * metadata.h, row_indexes.h: added header with enumerations to use
13576         to index in the columns from tables in metadata and to decode coded
13577         tokens: we should start using this instead of embedding magic numbers
13578         all over the code.
13579
13580 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13581
13582         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13583         Move metadata_t info from cli_image_info_t to MonoImage, where
13584         it's easily accessible. Changed all the uses accordingly.
13585         Added the method and class caches to MonoImage.
13586         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13587         and mono_metadata_decode_value () signature to be more consistent
13588         with the other parse functions (and simplify code). Taken advantage
13589         of zero-length array allocation with GCC. Removed reduntant (and
13590         wrong) MonoFieldType struct and use MonoParam instead. Changed
13591         mono_metadata_parse_field_type () to use common code for parsing.
13592         Added mono_metadata_typedef_from_field () and
13593         mono_metadata_typedef_from_method () to lookup a typedef index from a
13594         field or method token.
13595         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13596
13597 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13598
13599         * metadata.c (mono_metadata_parse_field_type): Implement. 
13600         (do_mono_metadata_parse_type): Split engine from
13601         mono_metadata_parse_type, so that we can create smaller structures
13602         for things that just have one pointer to the MonoType (look at
13603         the MonoFieldType)
13604
13605 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13606
13607         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13608         as Jan Gray found out, it is incorrect. 
13609
13610 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13611
13612         * assembly.c: Implement asssembly loading.  This loads an image
13613         and loads all the referenced assemblies.  Come to think of it, we
13614         could always do lazy loading of the assemblies. 
13615
13616         * image.c (mono_image_open): Keep loaded images in a hashtable.
13617
13618         * image.h (MonoImage): Add reference count.
13619
13620 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13621
13622         * assembly.c (mono_assembly_open): Keep track of the file name in
13623         case the assembly has no ASSEMBLY table.
13624
13625         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13626         from get.c here.
13627
13628 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13629
13630         * metadata.c, metadata.h: decode local vars in method header
13631         parse function. Change callers accordingly.
13632
13633 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13634
13635         * metadata.h, cil-coff.h: protect against multiple inclusion.
13636         Added some new structures to hold information decoded from metadata:
13637         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13638         and relevant decoding/free functions.
13639         * metadata.c: implement decoding functions. Add warning for out of bounds
13640         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13641         all the info about a method signature and invocation. Remove check on
13642         uninitialized local var in parse_mh() and fix memory leak.
13643
13644 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13645
13646         * metadata.h: More macros.
13647
13648         * tokentype.h: New file.
13649
13650 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13651
13652         * assembly.c: added a consistency check and initialize
13653         some structures with g_new0().
13654         * metadata.c: fixed a couple more bugs in table size computation
13655         and add other checks for out-of bound access to metadata.
13656
13657 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13658
13659         * metatada.c: fix bugs computing table sizes. Spew a
13660         warning when index in string heap is out of bounds.
13661
13662 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13663
13664         * metadata.h: Add a couple of macros to manipulate tokens. 
13665
13666 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13667
13668         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13669         cli_section_tables).
13670
13671 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13672
13673         * metadata.c (mono_metadata_user_string): New function, provides
13674         access to the UserString heap. 
13675
13676 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13677
13678         * metadata.c: Add inline documentation.
13679
13680 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13681
13682         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13683         files. 
13684
13685 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13686
13687         * typeattr.h: New file, TypeAttribute flags. 
13688
13689 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13690
13691         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13692         mono_assembly_ensure_section): Section loading code.
13693         (load_section_tables): Load the sections.
13694
13695         * mono/metadata/metadata.c (mono_metadata_locate_token,
13696         mono_metadata_locate): Functions to locate the information
13697         definition given a token or a table and an index.
13698         (mono_metadata_compute_table_bases): New.
13699         (compute_size): New function to compute the sizes of the various
13700         tables.
13701
13702         * mono/metadata/metadata.h: Finish listing the different index
13703         types. 
13704
13705         * mono/metadata/pedump.c: Improve to dump new information.
13706
13707 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13708
13709         * mono/metadata/metadata.c: Entered all the tables matching
13710         Beta2. 
13711
13712         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13713