Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
3
4         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5         reflection.c: more domain and assembly-unload related fixes
6         and memory leaks plugs.
7
8 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9
10         * 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.
11
12 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
13
14         * loader.c (mono_method_signature): Make this method lazy
15         (mono_get_method_from_token): Don't computate the signature here.
16
17         Doing this saves quite a bit of memory. I got 90 kb on starting up
18         monodoc. It should also save some disk reads on startup.
19
20         * *: MonoMethod->signature might be NULL now. You *MUST* use
21         mono_method_signature.
22
23 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
24
25         * object.c (mono_runtime_get_main_args): Return an array from the
26         current domain here. Fixes #71938.
27
28 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
29
30         * monitor.c: formatting changes to comply with the
31         mono coding style and remove #ifdefs from the code.
32
33 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
34
35         * metadata.c, private.h: remove some unneeded data
36         and use a more compact representation for table schemas.
37
38 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
39
40         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
41         to get a better distribution in hash tables.
42         * *.c: use mono_aligned_addr_hash() where appropriate.
43         * assembly.c: make var static.
44
45 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
46
47         * domain-internals.h: Put MonoJitInfo on a diet.
48
49         * domain.c: Fix a warning.
50
51 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
52
53         * gc.c: rework the gc handles code to reuse handles
54         when freed.
55
56 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
57
58         * domain.c: fixed long standing bug in mono_string_equal() which
59         was brought to light with the ldstr changes.
60
61 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
62
63         * reflection.c: Remove warning by adding missing include for marshal.h
64
65 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
66
67         * domain.c, object.c: change the ldstr_table to hold
68         MonoString* as keys: makes the runtime isinterned lookup
69         faster and simplifies memory management.
70
71 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
72  
73         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
74         possible to add imperative security checks before calling the icall.
75         * reflection.c: Return security attributes on the original MonoMethod
76         (and not the wrapped one). This fix permissions on icalls.
77
78 2005-01-25  Dick Porter  <dick@ximian.com>
79
80         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
81         the check for mktime() support actually test the mktime() return
82         value.  "Fixes" bug 71682, though the output is still different to
83         MS.
84
85 2005-01-25  Martin Baulig  <martin@ximian.com>
86
87         * class.c (mono_class_is_assignable_from): Make this work for
88         generic instances.
89
90 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
91
92         * marshal.c (mono_string_utf8_to_builder)
93         (mono_string_builder_to_utf16): We might not have ownership of the
94         string. In thise case, we need to create a new buffer.
95
96         * object-internals.h (mono_stringbuilder_capacity): sb->str might
97         be null, in which case, use the default capacity.
98
99 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
100
101         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
102         GC events to the profiler.
103
104 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
105
106         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
107         if you don't want the GC to run.
108
109 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
110
111         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
112         start providing a GC API and keeping different implementations in
113         their own file.
114         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
115
116 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
117
118         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
119         mmap rather than allocating a huge buffer.
120         (mono_debug_close_mono_symbol_file): Free the buffer allocated
121         above.
122
123 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
124
125         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
126         and CheckExecutionRights.
127         * reflection.c|h: Keep the index of the declarative security to be 
128         used, instead of the pointer, when AOT compiler is used. Also add 
129         class initialization when requesting demands.
130         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
131         CheckExecutionRights. Both properties are now FALSE by default, and
132         unmodifiable, unless the --security option is used.
133
134 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
135
136         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
137         reflection.c: properly refcount images and assemblies, many leaks fixed.
138
139 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
140
141         * threadpool.c: increase the timeout for threads in the thread pool to
142         10s.  Fixes bug #67159.
143
144 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
145
146         * class-internals.h: Sun's compiler insists on explicit
147         signed on bit fields to handle then correctly.
148
149 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
150
151         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
152         Make the size of the array fit only the number of invalid path
153         chars that we have.
154
155         * class.c (_mono_class_get): Improve the error reporting when a
156         class referenced is not found, to assist debugging. 
157
158 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
159
160         * threads.c: fix off-by-one error.
161         * domain.c: free data allocated in the domain.
162
163 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
164
165         * reflection.c (mono_method_body_get_object): Fill out exception info
166         as well.
167
168         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
169         structure.
170         
171 2005-01-19  Martin Baulig  <martin@ximian.com>
172
173         * loader.c (mono_get_method_constrained): Make this work again.
174
175 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
176
177         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
178         guint16 to match the managed side.
179
180         * reflection.c (mono_reflection_body_get_object): Fill out local
181         variables array.
182
183         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
184         as well.
185
186         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
187         'local_var_sig_token'.
188
189 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
190
191         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
192         System.Drawing.
193
194         * reflection.c (mono_method_body_get_object): Handle abstract and
195         runtime methods.
196
197 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
198
199         * marshal.c, loader.c, class-internals.h, reflection.c:
200         store the emthod data for a wrapper in an array instead of a list.
201
202 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
203
204         * marshal.c: change the code to allocate memory more
205         conservatively for method wrappers.
206
207 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
208
209         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
210         fields from MonoClass to the marshal info structure where they belong.
211
212 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
213
214         * class.c, object.c, class-internals.h, marshal.c: rearrange
215         some fields and tweak some types to lower memory usage.
216
217 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
218
219         * threads.c (signal_thread_state_change): Handle the case when the
220         target thread is the current thread.
221
222         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
223
224         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
225         emit_ptr_to_object_conv. 
226
227         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
228         marshalling. Fixes #71352.
229
230 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
231
232         * metadata.h, blob.h: move table enum to blob.h so it can be included
233         in any header.
234         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
235         cut the size of MonoImage/MonoDynamicImage.
236
237 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
238
239         * profiler.c (mono_profiler_install_simple): Fix default arguments.
240
241 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
242
243         * reflection.c, reflection.h, icall.c: add a function to check
244         if an attribute type is defined for a metadata object.
245
246 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
247
248         * object-internals.h: Added some needed fields from StringBuilder class.
249         * marshal.c: Set the maxCapacity when creating a StringBuilder.
250
251 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
252
253         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
254         threads before shutting down the runtime.
255
256         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
257
258 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
259
260         * object-internal.h, threads.c: implement stacksize and 
261         parameterized thread start functionality (requires
262         matching corlib). Marked broken code for later removal.
263
264 2005-01-12  Martin Baulig  <martin@ximian.com>
265
266         * class-internals.h (MonoGenericClass): Moved the `initialized'
267         flag to MonoDynamicGenericClass, removed `init_pending'.
268         (MonoGenericInst): Added `is_reference' flag.
269
270 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
271
272         * reflection.c (mono_image_create_pefile): Only set the pe_offset
273         inside the MSDOS header. Fixes #71201.
274
275         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
276         gc thread.
277         (mono_domain_finalize): Ditto.
278
279 2005-01-12  Martin Baulig  <martin@ximian.com>
280
281         * class.c (mono_get_shared_generic_class): Use the cache for
282         non-dynamic generic classes.
283
284         * class-internals.h (mono_class_create_generic_2): Removed
285         function prototype, this function is now static inside class.c.
286
287         * class.c (mono_class_create_generic_2): Made this static, only
288         call it from mono_class_init() and mono_class_setup_parent().
289         (collect_implemented_interfaces_aux): Call mono_class_init() on
290         the interfaces we collect.
291         (mono_class_setup_vtable): Call mono_class_init (class->parent).
292
293 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
294
295         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
296         it a real thread handle.
297
298         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
299         MonoJitExceptionInfo, since each catch clause needs its own variable.
300         
301 2005-01-11  Dick Porter  <dick@ximian.com>
302
303         * image.c (mono_pe_file_open): New variant on mono_image_open()
304         that does not set up the CLI metadata; used for FileVersionInfo so
305         it can get the data for windows binaries too.
306         
307         * process.c (process_read_string_block): Don't read off the end of
308         the StringTable block.
309
310         These both fix bug 70766.
311
312 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
313
314         * gc.c: set some fields to NULL at GC cleanup time.
315         * threads.c: if we quit the main thread, call exit ().
316
317 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
318
319         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
320
321 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
322
323         * threads.h, threads.c, object.c: added accessor and settor for
324         main_thread. Handle it specially when exiting from it: wait
325         for other foreground threads to exit.
326
327 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
328
329         * process.c, verify.c: remove some bloat.
330
331 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
332
333         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
334         the calling convention to cdecl under win32.
335
336 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
337
338         * object.c (mono_object_get_size): New function to get the size of
339         an object instance.
340
341         * profiler.c (simple_allocation): Use above.
342
343 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
344
345         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
346         ves_icall_System_AppDomain_getRootDomain (as it's not required to
347         get an appdomain by it's id and we can't assume the root's id is 0).
348         * domain-internals.h: Change the function prototype to match.
349         * icall.c: Change the icall table for AppDomain.
350
351 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
352
353         * locales.c (string_invariant_compare_char): Only compute
354         GUnicodeTypes in the case where we need them.  Test for ordinality
355         first and return if so.
356
357         From the commit:
358
359                 /*
360                  * FIXME: here we must use the information from c1type and c2type
361                  * to find out the proper collation, even on the InvariantCulture, the
362                  * sorting is not done by computing the unicode values, but their
363                  * actual sort order.
364                  */
365
366 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
367
368         * loader.c: for P/Invoke methods, allow the "Internal" shared
369         library name to refer to the calling process symbol namespace.
370
371 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
372
373         * Makefile.am: Add the security manager to the build.
374         * security-manager.c|h: New. Initialization of the security manager.
375
376 2005-01-07  Dick Porter  <dick@ximian.com>
377
378         * threads.c: 
379         * monitor.c: Update thread state during Monitor and WaitHandle
380         waits.  Fixes bug 71031.
381
382 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
383
384         * reflection.c (property_encode_signature): Correctly handle when the
385         property has no methods.
386
387 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
388
389         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
390         
391         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
392         fields from mb, not rmb. Fixes #71017.
393
394         * marshal.c (emit_ptr_to_str_conv): Add support for 
395         ByValTStr -> string conversion. Fixes #71015.
396
397         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
398
399         * mempool.c (mono_mempool_contains_addr): New helper function.
400
401 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
402
403         * metadata.c (mono_metadata_compute_size): Fix size calculation of
404         HasSematics encoded fields.
405         
406         * metadata.c (mono_type_to_unmanaged): Improve error message for 
407         invalid string marshalling.
408
409         * metadata.c: Fix warnings.
410         
411 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
412
413         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
414         profiler support.
415
416 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
417
418         * domain.c object.c domain-internals.h: Revert part of r38077 since the
419         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
420         tests.
421
422 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
423
424         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
425         so methods containing these can be AOTed.
426
427 2005-01-03  Martin Baulig  <martin@ximian.com>
428
429         * loader.c (find_method): Removed the hack for generic instances.
430         (method_from_memberref): If our parent is a generic instance, pass
431         its generic type definition to find_method() and then inflate the
432         method.
433         (mono_get_method_constrained): Pass the generic type definition to
434         find_method() and inflate the method later.
435
436         * class-internals.h (MonoStats): Added `generic_class_count'.
437
438         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
439         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
440
441         * reflection.c (mono_custom_attrs_from_params): Don't ignore
442         generic type definitions.
443
444 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
445
446         * loader.c icall.c: Fix warnings.
447
448 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
449
450         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
451         blittable types. Fixes #70864.
452
453 2004-12-29  Martin Baulig  <martin@ximian.com>
454
455         * icall.c
456         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
457
458         * reflection.c (mono_method_get_object): Create a
459         "System.Reflection.MonoGenericMethod" for inflated methods; don't
460         call mono_get_inflated_method().
461
462         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
463
464 2004-12-27  Martin Baulig  <martin@ximian.com>
465
466         * class-internals.h (MonoMethod): Added `is_inflated' flag.
467         (MonoMethodInflated): Added `inflated' field.
468
469         * class.c (mono_class_inflate_generic_method): Don't really
470         inflate the method here; just set the `is_inflated' flag in the
471         MonoMethod.
472         (mono_class_get_inflated_method): Actually inflate the method here
473         if it's not already inflated; we use the MonoMethodInflated's new
474         `inflated' field as a cache.
475
476 2004-12-26  Martin Baulig  <martin@ximian.com>
477
478         * class.c
479         (inflate_generic_class): Moved some code out of inflate_generic_type().
480         (mono_class_inflate_generic_method): If we're already inflated,
481         inflate the context and use the declaring method; ie. make sure
482         the declaring method of an inflated method is always the generic
483         method definition.
484         (mono_class_create_from_typedef): Create
485         `class->generic_container->context->gclass'.
486
487 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
488
489         * metadata-internals.h, marshal.c, reflection.c: More
490         MonoGHashTable->GHashTable.
491
492         * domain-internals.h, class.c: Change MonoGHashTable's into
493         GHashTables for some cases where no gc stuff is used
494
495         All users: update apis
496
497 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
498
499         * metadata.c (builtin_types): Make this `const'. Makes this get
500         put into the shareable section.
501         (mono_metadata_init): Casts to make gcc happy.
502
503 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
504
505         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
506
507 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
508
509         * icall.c: Added an internal call to retrieve the position and length
510         of assembly-level declarative security attributes (RequestMinimum, 
511         RequestOptional and RequestRefuse). This is used by the Assembly class
512         to re-create the corresponding permission sets.
513
514 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
515
516         * marshal.c: fix the stelemref wrapper to be type correct
517         (and faster).
518
519 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
520
521         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
522         to do key & 0x7fffffff. Hashtable already does this. It just
523         results in longer code.
524
525 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
526
527         * appdomain.c: Bump corlib version.
528         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
529         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
530         * reflection.c|h: Add functions to get declarative security infos
531         (blob position and length) for assemblies, classes and methods.
532
533 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
534
535         * reflection.c: sort the constant table (bug #70693).
536
537 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
538
539         * object-internals.h, threads.c, domain.c: add accessors for
540         the MonoThread and MonoDomain tls keys.
541
542 2004-12-18  Martin Baulig  <martin@ximian.com>
543
544         * class.c (inflate_generic_type): If we're inflating a generic
545         instance, set `ngclass->context->container = context->container';
546         ie. the container we inflated into.
547
548         * metadata.c (mono_metadata_parse_generic_param): Reflect above
549         inflate_generic_type() changes.
550
551 2004-12-17  Martin Baulig  <martin@ximian.com>
552
553         * class-internals.h
554         (MonoGenericClass): Replaced `MonoType *generic_type' with
555         `MonoClass *generic_class'.  Removed `dynamic_info'; if
556         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
557         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
558
559 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
560
561         * exception.c (mono_exception_from_token): New helper function.
562
563 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
564
565         * assembly.c (mono_assembly_load_with_partial_name): Call 
566         mono_assembly_loaded before invoking the preload hooks. Fixes
567         #70564.
568
569         * object-internals.h (MonoThread): Change culture_info and 
570         ui_culture_info into an array.
571
572         * threads.c: Cache culture info objects from more than one appdomain.
573
574         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
575         current UI culture.
576
577 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
578
579         * threads.h threads.c appdomain.c: Clear the culture_info field of
580         all threads during unloading if they point to an object in the dying
581         appdomain.
582
583 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
584
585         * culture-info.h (TextInfoEntry): New struct
586         * object-internals.h: sync with managed
587         * locales.c: fill the `text_info_data' field
588         * culture-info-tables.h: update
589
590 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
591
592         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
593         collector.
594
595 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
596
597         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
598         (ves_icall_ModuleBuilder_getMethodToken): Ditto
599
600 2004-12-12  Martin Baulig  <martin@ximian.com>
601
602         * mono-debug-debugger.c (write_type): If we're an enum and the
603         builtin types have already been initialized, call mono_class_init().
604
605 2004-12-11  Martin Baulig  <martin@ximian.com>
606
607         * metadata.c (mono_metadata_load_generic_params): Added
608         `MonoGenericContainer *parent_container' argument; automatically
609         compute `container->is_method'; pass the correct owner to
610         get_constraints().      
611
612         * reflection.c (compare_genericparam): Sort the GenericParam table
613         according to increasing owners. 
614
615 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
616
617         * profiler.c: allow disabling the default profiler.
618
619 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
620
621         * decimal.c, icall.c: allow disabling System.Decimal support.
622
623 2004-12-09  Marek Safar <marek.safar@seznam.cz>
624
625         * reflection.c: Add support for null attribute arguments.
626
627 2004-12-09  Martin Baulig  <martin@ximian.com>
628
629         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
630         names to get rid of compiler warnings.
631
632 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
633
634         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
635         mono_marshal_load_type_info (). Fixes #69625.
636         (mono_marshal_get_ptr_to_struct): Likewise.
637
638 2004-12-08  Martin Baulig  <martin@ximian.com>
639
640         * mono-debug.h: Bumped version number to 47.
641
642         * mono-debug-debugger.c
643         (mono_debugger_event_handler, mono_debugger_event): Take two
644         guint64 arguments insteed of a gpointer and a guint32.  
645
646 2004-12-08  Martin Baulig  <martin@ximian.com>
647
648         * debug-mono-symfile.h
649         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
650         `address' to `native_offset'.
651
652 2004-12-08  Martin Baulig  <martin@ximian.com>
653
654         * class.c (mono_class_create_from_typespec): Only inflate if we
655         either have `context->gclass' or `context->gmethod'.
656
657 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
658
659         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
660
661         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
662
663         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
664
665         * reflection.c (mono_assembly_get_object): Remove the workaround put
666         in for the release.
667         
668         * appdomain.c: Use the corlib_internal field from MonoAssembly.
669
670         * appdomain.c: Bump corlib version.
671
672         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
673         be visible in other appdomains.
674
675 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
676
677         * threads.c: Interlocked inc and dec for longs were messed up,
678         use a KISS based impl for this. Fixes 70234
679
680 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
681
682         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
683
684 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
685
686         * icall.c: fix to follow policy not to allow struct
687         arguments in icalls.
688
689 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
690
691         * process.c: make the patch that handles spaces in file paths work
692         on mono/windows too.
693
694 2004-12-06  Martin Baulig  <martin@ximian.com>
695
696         * class.c (mono_class_create_generic): Call
697         mono_class_setup_supertypes() if we're dynamic.
698         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
699
700 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
701
702         * object-internals.h: Add new fields to MonoThread.
703
704         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
705
706         * icall.c threads-types.h threads.c: Add new icalls.
707
708         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
709
710         * object-internals.h (MonoReflectionAssembly): Sync object layout with
711         managed side.
712
713         * appdomain.c: Bump corlib version.
714
715         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
716         internal assemblies. Fixes #69181.
717
718 2004-12-05  Martin Baulig  <martin@ximian.com>
719
720         * class.c (mono_class_inflate_generic_signature): Make this a
721         no-op if `context' is NULL or we don't have any type parameters;
722         also copy `sentinelpos'.        
723
724 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
725
726         * image.c: Add unbox_wrapper_cache.
727
728         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
729
730         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
731         function generator.
732         
733         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
734         Fixes #70173.
735
736         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
737         
738 2004-12-04  Martin Baulig  <martin@ximian.com>
739
740         * loader.c (mono_method_get_signature_full): New public function;
741         like mono_method_get_signature(), but with an additional
742         `MonoGenericContext *' argument.
743
744         * class.c (mono_class_inflate_generic_signature): Formerly known
745         as inflate_generic_signature(); make this public.
746
747 2004-12-04  Martin Baulig  <martin@ximian.com>
748
749         * metadata.c
750         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
751         instead of a `MonoGenericContainer *'.  
752         (mono_metadata_parse_array_full): Likewise.
753         (mono_metadata_parse_signature_full): Likewise.
754         (mono_metadata_parse_method_signature_full): Likewise.
755         (mono_metadata_parse_generic_inst): Likewise.
756         (mono_metadata_parse_generic_param): Likewise.
757         (mono_metadata_parse_mh_full): Likewise.
758         (mono_type_create_from_typespec_full): Likewise.
759
760 2004-12-03  Martin Baulig  <martin@ximian.com>
761
762         * class-internals.h (MonoGenericContainer): Replaced the
763         `MonoGenericContext * pointer with a `MonoGenericContext'
764         structure and made it the first element.
765
766 2004-12-03  Martin Baulig  <martin@ximian.com>
767
768         * class.c
769         (inflate_generic_type): Set the `context->container' when creating
770         a new MonoGenericContext.
771         (mono_class_inflate_generic_method): Likewise.
772         (mono_class_create_from_typespec): Just use `context->container'
773         to get the container.
774
775         * loader.c (method_from_methodspec): Set `context->parent' from
776         `context->container' - and if that's a method container, use its
777         parent.  Also set the `context->container' when creating a new
778         MonoGenericContext.
779         (mono_get_method_from_token): Use just `context->container' to get
780         the container.
781
782         * metadata.c (do_mono_metadata_parse_generic_class): Also set
783         `gclass->context->container'.
784
785         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
786         the `context->container' when creating a new MonoGenericContext.
787
788 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
789
790         * reflection.c (compare_genericparam): Sort params with identical
791         owner by their number. Fixes gen-111 on sparc.
792
793 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
794
795         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
796         around the domain changes.
797
798         * appdomain.c (mono_domain_unload): Handle the case when the thread
799         calling Unload is itself being aborted during unloading. Fixes #70022.
800
801         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
802
803         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
804         checkpoint_func as an icall so it gets a wrapper.
805         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
806         in the cross-appdomain wrappers too.
807
808         * threads.c (mono_thread_has_appdomain_ref): Make this public.
809
810         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
811
812         * reflection.c: Fix some memory leaks.
813         
814 2004-12-02  Martin Baulig  <martin@ximian.com>
815
816         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
817
818         * metadata.c (generic_class_cache): New static hashtable.
819         (mono_metadata_lookup_generic_class): New public method.
820
821 2004-12-02  Martin Baulig  <martin@ximian.com>
822
823         * class.c (mono_class_create_from_typedef): Call
824         mono_class_setup_parent() and mono_class_create_mono_type() before
825         parsing the interfaces.
826
827 2004-12-02  Martin Baulig  <martin@ximian.com>
828
829         * metadata.c (generic_inst_cache): New static hashtable.
830         (mono_metadata_lookup_generic_inst): New public function.
831         (mono_metadata_inflate_generic_inst): New public function.
832         (mono_metadata_parse_generic_inst): New public function.
833         (do_mono_metadata_parse_generic_class): Use the new
834         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
835         since this'll also use the cache.
836
837         * reflection.c (mono_reflection_bind_generic_method_parameters):
838         Use mono_metadata_lookup_generic_inst() to use the new cache.
839
840         * class.c (inflate_mono_type): Use
841         mono_metadata_inflate_generic_inst() to inflate a generic
842         instance; this'll also use the new cache.
843
844         * loader.c (method_from_methodspec): Use
845         mono_metadata_parse_generic_inst() and
846         mono_metadata_inflate_generic_inst() rather than parsing it
847         manually, so we can use the new cache.
848
849 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
850
851         * threads.c (wait_for_tids): Do not incorrectly free threads when 
852         the wait times out.
853
854 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
855
856         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
857         iter->args based on whether parameters are passed in registers (i.e.
858         MONO_ARCH_REGPARMS is defined)
859
860 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
861
862         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
863         the exception message. Fixes #70070.
864         (method_from_methodspec): Fix warnings.
865
866 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
867
868         * process.c: (complete_path) return the path quoted
869
870 2004-12-01  Martin Baulig  <martin@ximian.com>
871
872         * class-internals.h (MonoGenericInst): New structure.
873         (MonoGenericClass): Replaced `type_argc', `type_argv' and
874         `is_open' with `MonoGenericInst *inst'.
875         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
876         `is_open' with `MonoGenericInst *inst'.
877
878 2004-11-30  Martin Baulig  <martin@ximian.com>
879
880         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
881
882         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
883         to `generic_class_cache'.
884
885         * metadata.c
886         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
887         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
888         (mono_generic_inst_is_valuetype): Renamed to
889         mono_generic_class_is_valuetype().
890
891         * class-internals.h
892         (MonoGenericInst): Renamed to MonoGenericClass.
893         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
894         (MonoClass): Renamed `generic_inst' to `generic_class'.
895         (MonoGenericContext): Renamed `ginst' to `gclass'.
896
897         * object-internals.h
898         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
899
900         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
901         mono_reflection_generic_class_initialize().
902
903         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
904         now known as "System.Reflection.MonoGenericClass".
905         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
906
907 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
908
909         * class-internals.h: Added a flag field to MonoClass to cache the
910         declarative security attributes actions associated with the class.
911         * domain-internals.h: Added booleans to MonoJitInfo to cache the
912         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
913         applicable to the JITted method.
914         * reflection.c|h: Added functions to extract (as flags) which security
915         actions are available (declaratively) for a method, class or assembly.
916         * metadata.c|h: Added functions to search the declarative security
917         table in the metadata.
918         
919 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
920
921         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
922         EXPORTEDTYPES are already in the class name cache, so there is no
923         need to add extra code here to look at them. Just removes a bit of
924         cruft.
925
926         (ves_icall_System_Environment_get_TickCount): No need for #if
927         WINDOWS. We already have the code in io-layer.
928
929 2004-11-28  Martin Baulig  <martin@ximian.com>
930
931         * loader.c
932         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
933         Fixes gen-112.cs.
934
935 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
936
937         * assembly.c (do_mono_assembly_open): Instead of having a
938         conditional WITH_BUNDLE, incorporate support for bundles here, by
939         having a global `bundles' variable holding a pointer to the actual
940         bundles. 
941
942         (mono_register_bundled_assemblies): New API call used by the
943         bundle code. 
944
945         See mkbundle.1 for details.
946         
947 2004-11-27  Martin Baulig  <martin@ximian.com>
948
949         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
950         the vtable for generic methods.
951
952 2004-11-26  Martin Baulig  <martin@ximian.com>
953
954         * metadata.c
955         (mono_metadata_generic_method_hash): New public function.
956         (mono_metadata_generic_method_equal): Likewise.
957
958         * class-internals.h
959         (MonoGenericContainer): Added `GHashTable *method_hash'.
960
961         * reflection.c (ReflectionMethodBuilder): Added
962         `MonoGenericContainer *generic_container'.
963         (reflection_methodbuilder_to_mono_method): Don't create a new
964         MonoGenericContainer each time we're called.
965         (mono_reflection_bind_generic_method_parameters): Use
966         `container->method_hash' to cache the results so we don't create a
967         different method if we're called several times with the same
968         arguments.
969
970         * loader.c (method_from_methodspec): Use the new
971         `container->method_hash' here, too.
972
973 2004-11-26  Martin Baulig  <martin@ximian.com>
974
975         * class.c (inflate_generic_signature): Correctly compute
976         `res->has_type_parameters'.
977         (mono_class_vtable): Use the `has_type_parameters' flag to
978         determine whether we're a generic method.
979
980         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
981
982 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
983
984         * object.c (mono_runtime_run_main): Fix a small memory leak.
985
986 2004-11-25  Martin Baulig  <martin@ximian.com>
987
988         * class.c (set_generic_param_owner): Fixed the loop.
989
990 2004-11-25  Martin Baulig  <martin@ximian.com>
991
992         * object.c (mono_class_vtable): Don't create any JIT wrappers for
993         generic methods.
994
995 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
996
997         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
998         names. Fixes #69787.
999
1000 2004-11-24  Martin Baulig  <martin@ximian.com>
1001
1002         * class.c (mono_class_create_generic_2): If we don't have a
1003         `ginst->parent', inflate `gklass->parent' to get our parent.
1004
1005 2004-11-24  Martin Baulig  <martin@ximian.com>
1006
1007         * reflection.c (compare_genericparam): Correctly sort the
1008         GenericParam table; fixes #69779.
1009
1010 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
1011
1012         * reflection.c: When writing a PE file, don't create a huge
1013         buffer in memory. Just write the arrays we have to the file.
1014         This reduces memory usage.
1015
1016         * metadata-internals.h: MonoDynamicStream pefile is no longer used
1017         globally.
1018
1019 2004-11-17  Martin Baulig  <martin@ximian.com>
1020
1021         * class.c (mono_class_init): Don't setup `class->parent' for
1022         dynamic instances; moved this to mono_class_generic_2().
1023         (mono_class_create_generic): Also set `klass->inited' for dynamic
1024         generic instances.
1025         (mono_class_create_generic_2): Don't do anything for dynamic
1026         generic instances.  Set `klass->parent' here and also call
1027         mono_class_setup_parent() here. 
1028
1029         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
1030         `MonoType *parent' argument; set `ginst->parent' before calling
1031         mono_class_create_generic_2(), so we set the correct parent.
1032
1033 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
1034
1035         * reflection.c: allow getting attributes from ModuleBuilder
1036         (used by ikvm).
1037
1038 2004-11-17  Martin Baulig  <martin@ximian.com>
1039
1040         * class.c (mono_class_create_from_typedef): If a type parameter is
1041         inherited from an outer class, set its owner to that class.
1042
1043 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
1044
1045         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
1046           for (int*) written size. This fixes bug #69592.
1047
1048 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
1049
1050         * icall.c: Added IsAuthenticodePresnet internal call.
1051         * image.c|h: New function that check a MonoImage for an Authenticode
1052         signature in the certificate PE data directory.
1053         * security.c|h: New internal call to ask the runtime if an 
1054         Authenticode signature seems referenced in the PE header.
1055
1056 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
1057
1058         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
1059
1060         * reflection.c (mono_image_create_pefile): Free the assembly streams
1061         after writing out the assembly file.
1062
1063         * object.c (mono_runtime_run_main): Fix small memory leak.
1064
1065         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
1066         property access modifiers. Fixes #69389.
1067
1068 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
1069
1070         * domain.c, object.c, object-internals.h, domain-internals.h,
1071         object.h, marshal.c: keep dynamic code info per domain.
1072
1073 2004-11-15  Martin Baulig  <martin@ximian.com>
1074
1075         * class.c (mono_type_get_name_recurse): Put type arguments in
1076         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
1077         see bug #68387.
1078
1079 2004-11-15  Martin Baulig  <martin@ximian.com>
1080
1081         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
1082         (mono_class_setup_vtable): When computing `the_cname' for a
1083         generic instance, don't include the namespace since we'd otherwise
1084         add it twice.
1085
1086 2004-11-15  Martin Baulig  <martin@ximian.com>
1087
1088         * class.c (mono_class_create_generic): Changed return type to void.
1089         (mono_class_create_generic_2): New public function; setup
1090         `class->method', `class->field' and `class->interfaces' here
1091         instead of in mono_class_init().
1092
1093         * class.h (mono_class_create_generic): Moved to class-internals.h.
1094
1095 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
1096
1097         * reflection.c (mono_image_create_pefile): take a file HANDLE.
1098         rather than writing to memory, write to this file. Right now,
1099         we are just writting into a buffer, and copying that. However
1100         we can avoid the buffer later.
1101
1102         (mono_dynamic_stream_reset): new function
1103
1104         * icall.c, object-internals.h: update for the above.
1105
1106 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
1107
1108         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
1109         have been using gc'd memory. First it is slower, unlikely
1110         the comment in the source code said, secondly, it increases
1111         our footprint to do it in the gc.
1112
1113         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
1114         the method so that it does not have to copy to managed code.
1115
1116 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
1117
1118         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
1119
1120 2004-11-12  Martin Baulig  <martin@localhost>
1121
1122         * reflection.c (mono_image_create_token): Allow generic method
1123         definitions here, since they may appear in an `.override'; see
1124         gen-98/gen-99 for an example.
1125
1126 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
1127
1128         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
1129         #69365.
1130
1131         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
1132         descriptive.
1133
1134 2004-11-11  Martin Baulig  <martin@ximian.com>
1135
1136         * class.c (mono_class_setup_vtable): In an explicit interface
1137         implementation, the method name now includes the arity.
1138
1139 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
1140
1141         * object.c (mono_array_full_copy): Fix warning.
1142
1143 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
1144
1145         * appdomain.c: Removed look_for_method_by_name(). Use the new method
1146         mono_class_get_method_from_name() instead.
1147         
1148         * class-internals.h: Added two new types of wrappers. 
1149         Added MonoRemotingTarget enum. Added new trampoline function type, which
1150         takes an additional MonoRemotingTarget value as parameter, so it is
1151         possible to request a trampoline for a specific target.
1152         
1153         * class.c: Added new mono_class_get_method_from_name() method.
1154         
1155         * class.h: In MonoRemoteClass, we can have now to vtables, one for
1156         general remoting sinks and one specific for cross domain calls.
1157         
1158         * debug-helpers.c: Added new wrapper names.
1159         
1160         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
1161         of a remote class.
1162         
1163         * image.c: Porperly delete value objects form the remoting invoke hashtable.
1164         
1165         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
1166         with several other methods (mono_marshal_get_xappdomain_dispatch,
1167         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
1168         and others) can generate a fast remoting wrapper for cross domain calls.
1169         More information can be found in docs/remoting.
1170         Other changes: Removed mono_find_method_by_name, and used
1171         mono_class_get_method_from_name instead.
1172         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
1173         is stored in the remoting invoke hashtable.
1174         
1175         * marshal.h: published the new method for getting the xdomain wrapper,
1176         and also added a method for getting the adequate wrapper for a given
1177         method and target.
1178         
1179         * object-internals.h, object.c: Added a couple of methods for capying and
1180         cloning arrays.
1181         Modified mono_install_remoting_trampoline, which takes the new remoting
1182         trampoline that has a remoting target as parameter.
1183         mono_class_proxy_vtable now also takes a remoting target as parameter, and
1184         will return the most suitable vtable for the target.
1185         Added mono_remote_class_vtable, which returns the vtable of a remote class
1186         (which can be the normal remoting vtable or the xdomain vtable).
1187         
1188         * threads.c: the xdomain invoke and dispatch wrappers must also be
1189         protected against interruptions.
1190
1191 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1192
1193         * icall.c: use memmove in BlockCopyInternal when the source and
1194         destination arrays are the same.
1195
1196 2004-11-09  Martin Baulig  <martin@ximian.com>
1197
1198         * class-internals.h (MonoGenericContainer): Removed `method' and
1199         `signature', replaced them with `is_method' and `is_signature'
1200         flags.  Added `context'.
1201
1202         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
1203         instead of a `MonoGenericContainer *'.
1204
1205         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
1206         for dynamic type parameters.
1207         (mono_metadata_load_generic_params): Setup `container->context'.
1208
1209         * reflection.c (mono_reflection_setup_generic_class): Setup
1210         `tb->generic_container->context'.
1211         (do_mono_reflection_bind_generic_parameters): Use
1212         mono_class_inflate_generic_type() to correctly inflate types,
1213         rather than using our own hack just for MONO_TYPE_VAR.
1214
1215 2004-11-09  Martin Baulig  <martin@ximian.com>
1216
1217         * class.c (mono_class_inflate_generic_method): Small fix; don't
1218         crash here.
1219
1220         * icall.c
1221         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
1222         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
1223         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
1224         (ves_icall_Type_BindGenericParameters): Likewise.
1225         (ves_icall_Type_get_IsGenericInstance): Likewise.
1226         (ves_icall_Type_GetGenericParameterPosition): Likewise.
1227         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
1228         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1229         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1230
1231 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
1232
1233         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
1234         assembly versions and public key tokens. Fixes #69113.
1235
1236 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
1237
1238         * metadata.c: fix bug introduced with the type cache changes
1239         on 2004-11-06.
1240
1241 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
1242
1243         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
1244         the MonoClass pointer instead of the token in exception clauses.
1245         * reflection.c: updates for the above and make the code not depend
1246         on the structure of MonoExceptionClause.
1247
1248 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1249
1250         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1251         Add support for dynamic assemblies. Fixes #69114.
1252
1253         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1254
1255 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1256
1257         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1258         since most only those methods use it. the code member of
1259         MonoMethodPInvoke was dead, so that can be removed too. Also,
1260         remove inline_count (again, not used), and move slot so that it
1261         can share bits with some other flags. This saves 8 bytes in the
1262         structure and gives us about 50 kb back for mcs helloworld.cs
1263
1264         * *.[ch]: Do naming changes for the above.
1265
1266         * loader.c (mono_method_get_header): Lazily init the header
1267         on first access.
1268         (mono_get_method_from_token): don't init the header here
1269         (mono_free_method): the header may never be allocated
1270
1271         Overall, this saves 150 kb of unmanaged allocations
1272         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1273         memory at runtime.
1274         
1275         * loader.c, loader.h (mono_method_get_header): new accessor.
1276
1277         * *.[ch]: use the above method. Prepares us to lazily load
1278         the header.
1279
1280         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1281         three warnings, which are actual bugs (see 69206).
1282
1283         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1284         unused. Saves a cool 4 bytes / method.
1285
1286 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1287
1288         * metadata.c (builtin_types): Add types for System.Object here.
1289         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1290         for a class or valuetype from klass->this_arg or klass->byval_arg.
1291
1292         On mcs for a hello world, this gets us down from 21836 MonoType's
1293         to 14560.
1294
1295         (mono_metadata_free_type): Account for the above change.
1296
1297 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1298
1299         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1300         exception instead of asserting if name is null.
1301         (ves_icall_System_AppDomain_GetData): Ditto.
1302
1303 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1304
1305         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1306         EnumBuilder.
1307
1308         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1309         Return NULL when the domain does not have entry_assembly set.
1310
1311         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1312         Add a 'resource_modules' argument.
1313         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1314
1315         * reflection.c (mono_reflection_create_runtime_class): Move setting
1316         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1317         for enums too.
1318
1319         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1320         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1321         Throw an ArgumentNullException if 'ptr' is null.
1322
1323         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1324         assemblies here. Fixes #69020.
1325
1326 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1327
1328         * reflection.c (build_compressed_metadata): Fix the previous patch for
1329         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1330         the stack.
1331
1332 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1333
1334         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1335         the cultures is false. Fixes #69090.
1336
1337         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1338         detected by valgrind.
1339         
1340         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1341         TypeResolve multiple times for the same type. Fixes #65577.
1342
1343 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1344
1345         * marshal.c: Avoid using ldftn to call managed functions. It is
1346         much slower than just a call.
1347
1348         * reflection.c (mono_module_get_object): free the basename we
1349         allocate here from glib.
1350         
1351         * reflection.c (ensure_runtime_vtable): make sure to free
1352         overrides.  Also, we were allocating an array of MonoMethod not an
1353         array of MonoMethod*.
1354
1355         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1356
1357         * image.c (mono_image_close): free image->guid here.
1358
1359 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1360
1361         * reflection.c: Fix some spec conformance issues with the PE file
1362         structures so mcs compiled apps run on the Net 2.0 beta.
1363
1364 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1365
1366         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1367         Implement this. Fixes #67264.
1368
1369         * debug-helpers.h debug-helpers.c marshal.c: Move 
1370         mono_find_method_by_name to debug-helpers.c.
1371
1372 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1373
1374         * object.c (mono_release_type_locks): type_initialization_hash is
1375         a GHashTable.
1376
1377         * reflection.c object.c object-internals.h: Fix warnings.
1378
1379         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1380         without accessors. Fixes #61561.
1381
1382         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1383         application base from the root domain if not set. Fixes #65641.
1384         (mono_runtime_init): Fix warning.
1385
1386 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1387
1388         * appdomain.c: call mono_thread_pool_init.
1389         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1390         of worker threads based on the number of CPUs and the environment
1391         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1392         for non-windows (windows) systems.
1393
1394 2004-10-27  Chris Toshok  <toshok@ximian.com>
1395
1396         * mono-debug-debugger.c (write_class): don't call mono_class_init
1397         here, as even with the check for (!klass->init_pending), we get
1398         into a situation where we're hitting cycles in class
1399         initialization.  Fixes #68816.
1400
1401 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1402
1403         * image.c: Avoid overwriting values in the loaded_images_hash when an
1404         assembly is loaded multiple times. Fixes #61152.
1405
1406         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1407         so multiple satellite assemblies for the same name can be loaded.
1408         Fixes #68259.
1409
1410         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1411         not NULL.
1412
1413         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1414         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1415
1416         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1417         pending finalizers are not invoked after the appdomain has been 
1418         unloaded. Fixes #67862.
1419
1420 2004-10-22  Martin Baulig  <martin@ximian.com>
1421
1422         * mono-debug-debugger.c
1423         (mono_debugger_runtime_invoke): Don't box valuetypes.
1424
1425 2004-10-22  Chris Toshok  <toshok@ximian.com>
1426
1427         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1428         don't hide private methods.
1429
1430 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1431
1432         * icall.c: Allows the runtime to "share" (when known) the public key
1433         token of an assembly. This avoid the need to recalculate the token 
1434         (from the public key) in managed code.
1435
1436 2004-10-21  Chris Toshok  <toshok@ximian.com>
1437
1438         * debug-helpers.c (append_class_name): argh, revert last patch.
1439         
1440 2004-10-21  Chris Toshok  <toshok@ximian.com>
1441
1442         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1443         not '/', so that it matches what the debugger uses to look up
1444         methods.
1445
1446 2004-10-21  Martin Baulig  <martin@ximian.com>
1447
1448         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1449         public method; this is called each time an exception is thrown and
1450         allows the debugger to use exception catch points.
1451
1452 2004-10-21  Martin Baulig  <martin@ximian.com>
1453
1454         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1455         the stack pointer and the exception object in some struct and pass
1456         that to the debugger.
1457
1458 2004-10-21  Chris Toshok  <toshok@ximian.com>
1459
1460         * mono-debug-debugger.c (do_write_class): add instance/static
1461         event support.  We don't expose "raise" or "other" yet.
1462         (event_is_static): new method.
1463
1464 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1465
1466         * mono-debug-debugger.c
1467         (mono_debugger_handle_exception): Remove
1468         bogus return value for fussy compilers.
1469
1470 2004-10-20  Martin Baulig  <martin@ximian.com>
1471
1472         * mono-debug-debugger.c
1473         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1474         (mono_debugger_handled_exception): Likewise.
1475
1476 2004-10-20  Martin Baulig  <martin@ximian.com>
1477
1478         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1479         MONO_DEBUGGER_EVENT_EXCEPTION.
1480
1481         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1482         public function to send the debugger a notification for an
1483         exception and inform it about a catch/finally clause.
1484
1485 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1486
1487         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1488         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1489         fix 2.95 build. 
1490
1491         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1492
1493 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1494
1495         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1496         marshalled as [In,Out]. Fixes #58325.
1497
1498 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1499
1500         * reflection.c (mono_method_body_get_object): Implement some fields.
1501
1502 2004-10-12  Martin Baulig  <martin@ximian.com>
1503
1504         * reflection.c (mono_reflection_bind_generic_parameters): Small
1505         fix, correctly retrieve our parent from a generic instance.
1506
1507 2004-10-12  Martin Baulig  <martin@ximian.com>
1508
1509         * metadata.c (mono_metadata_generic_param_equal): We always have
1510         an owner.
1511
1512         * class.c
1513         (mono_class_from_generic_parameter): We need to have an owner.
1514         (my_mono_class_from_generic_parameter): Likewise.
1515
1516         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1517         mono_reflection_create_generic_class() and added a new
1518         mono_reflection_setup_generic_class().  
1519         (mono_reflection_initialize_generic_param): If we're a nested
1520         generic type and inherited from the containing class, set our
1521         owner to the outer class.
1522
1523 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1524
1525         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1526
1527         * reflection.c (mono_method_body_get_object): New function to create
1528         a MethodBody object.
1529
1530         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1531
1532 2004-10-11  Martin Baulig  <martin@ximian.com>
1533
1534         * metadata.c (_mono_metadata_type_equal): Renamed to
1535         do_mono_metadata_type_equal() and made static.
1536
1537 2004-10-11  Martin Baulig  <martin@ximian.com>
1538
1539         * appdomain.c: Bump corlib version number to 28.
1540
1541 2004-10-10  Martin Baulig  <martin@ximian.com>
1542
1543         * class-internals.h
1544         (MonoGenericInst): Added `MonoGenericContainer *container'.
1545         (MonoGenericMethod): Likewise.
1546         (MonoGenericContext): Likewise.
1547         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1548
1549         * metadata.c
1550         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1551         (do_mono_metadata_parse_generic_inst): Likewise.
1552         (mono_metadata_parse_type_full): New public method.  This is the actual
1553         mono_metadata_parse_type() implementation - with an additional
1554         `MonoGenericContainer *' argument.
1555         (mono_metadata_parse_array_full): Likewise.
1556         (mono_metadata_parse_signature_full): Likewise.
1557         (mono_metadata_parse_method_signature_full): Likewise.
1558         (mono_metadata_parse_mh_full): Likewise.
1559         (mono_type_create_from_typespec): Likewise.
1560         (mono_metadata_interfaces_from_typedef_full): New public method;
1561         this is similar to the other _full() methods, but we take a
1562         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1563         (mono_metadata_parse_generic_param): Take an additional
1564         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1565         from that container.
1566         (mono_metadata_generic_param_equal): New static method to compare
1567         two type parameters.
1568         (_mono_metadata_type_equal): New static method; takes an
1569         additional `gboolean signature_only' argument - if true, we don't
1570         compare the owners of generic parameters.
1571         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1572         with a TRUE argument - do a signature-only comparision.
1573
1574         * loader.c: Use the new _full() methods and pass the
1575         MonoGenericContainer to them.
1576
1577         * object-internals.h (MonoReflectionTypeBuilder): Added
1578         `MonoGenericContainer *generic_container' field.
1579         (MonoReflectionMethodBuilder): Likewise.
1580
1581 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1582
1583         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1584         case initial images of dynamic assemblies.
1585
1586         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1587
1588         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1589
1590         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1591         length of event->other array.
1592         (typebuilder_setup_events): Ditto.
1593
1594         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1595         'assembly_by_name' and add an 'assemblies' list.
1596
1597         * assembly.h assembly.c: Add a new search hook for determining whenever
1598         an assembly is already loaded. Use this instead of searching in the
1599         loaded_assemblies list.
1600
1601         * domain.c appdomain.c: Implement the new search hook so loaded 
1602         assemblies are now scoped by appdomain. Fixes #67727.
1603
1604 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1605
1606         * threads.c (mono_thread_attach): Initialize synch_lock field so
1607         mono_thread_detach works again.
1608
1609         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1610         'lib' too. Fixes #63130.
1611
1612 2004-10-06  Jackson Harper  <jackson@ximian.com>
1613
1614         * culture-info-tables.h: regenerated.
1615
1616 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1617
1618         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1619         implemented by other interfaces in the result. Fixes #65764.
1620         
1621         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1622         Handle unloadable modules without crashing.
1623
1624         * image.c (load_modules): Revert the previous patch since modules must
1625         have a fixed index inside the array.
1626         
1627         * image.c (load_modules): Don't include native modules in the modules
1628         array.
1629
1630 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1631
1632         * reflection.h: Add param_defaults field.
1633
1634         * reflection.c: Add support for parameter defaults in dynamic methods.
1635         Fixes #64595.
1636
1637         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1638         an empty string when a type has no namespace. Fixes #64230.
1639
1640 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1641
1642         * tabledefs.h: Added "internal" security actions to support non-CAS
1643         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1644         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1645
1646 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1647
1648         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1649         constructor of abstract class. Fixes #61689.
1650
1651 2004-10-04  Martin Baulig  <martin@ximian.com>
1652
1653         * class-internals.h (MonoGenericContainer): New type.
1654         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1655         `MonoGenericContainer *generic_container'.
1656         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1657         `MonoGenericContainer *generic_container'.
1658
1659         * metadata.c (mono_metadata_load_generic_params): Return a
1660         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1661         removed the `num' argument.
1662
1663 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1664
1665         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1666         for dynamic images.
1667
1668         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1669         machine fields.
1670
1671         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1672
1673         * reflection.c: Save pe_kind and machine values into the generated
1674         image file.
1675
1676         * appdomain.c: Bump corlib version number.
1677
1678         * object-internals.h: Reorganize layout of LocalBuilder.
1679
1680         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1681         New helper function.
1682
1683         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1684         created MonoType for dynamic types. Fixes #66180.
1685
1686 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1687
1688         * threadpool.c: the ares hashtable needs a critical section around it.
1689         this prevents some nasty segfaults
1690
1691 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1692
1693         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1694         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1695         bug 67324).
1696         
1697 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1698
1699         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1700         
1701 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1702
1703         * image.c: Always canonicalize image file names, to avoid loading
1704         the same assembly twice when referenced using a relative path.
1705
1706 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1707
1708         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1709
1710         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1711
1712         * marshal.c: Fix warnings.
1713
1714 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1715
1716         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1717         attempting to marshal the delegate_trampoline as the method_addr.
1718         This patch has a static hashtable of marshalled delegates so that 
1719         we can map delegate_trampoline addresses back to delegates.  This
1720         allows a delegate passed to managed code to be passed back into native
1721         code.  Fixes #67039
1722
1723 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1724
1725         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1726
1727         * reflection.c (method_encode_code): Align method headers properly.
1728         Fixes #66025.
1729
1730 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1731
1732         * marshal.c: In the runtime invoke wrapper, reset the abort
1733         exception if it is cached. This avoids the automatic rethrowal of 
1734         the exception after the catch of the wrapper. Also check for pending
1735         interruptions before calling the managed method. This is done using
1736         the new method emit_thread_force_interrupt_checkpoint, since the
1737         normal checkpoint method is ignored when running the invoke wrapper.
1738         * object.c: If the abort exception is rethrown, set the abort_exc
1739         field of the thread, so it will be rethrown aftere every catch.
1740         * threadpool.c: Only run an interruption checkpoint if what has been
1741         requested is a stop of the thread (aborts will be ignored).
1742         * threads.c: By default, a thread will now never be interrumped while
1743         running the runtime invoke wrapper (this ensures that runtime_invoke
1744         will always return to the caller if an exception pointer is provided).
1745         There is a new special method mono_thread_force_interruption_checkpoint()
1746         to force an interruption checkpoint even if running a protected
1747         wrapper, which is used by the same runtime invoke wrapper to do a check
1748         at a safe point.
1749
1750 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1751
1752         * object.c, object-internals.h: Implemented mono_release_type_locks,
1753         which releases the cctor locks held by a thread.
1754         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1755         by a thread. Added mono_thread_exit() method to be used to safely stop
1756         a thread.
1757
1758 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1759
1760         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1761         Move null check before dereference.  Avoid indexing beyond the end
1762         of the 'modules' array.
1763
1764 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1765
1766         * metadata-internals.h (MonoImage): Add module_count field.
1767         * image.c (load_modules): Set image->module_count.
1768         (mono_image_load_file_for_image): Use image->module_count.
1769         * reflection.c (mono_image_load_module): Append to image->modules array 
1770         of dynamic assembly.
1771         (mono_module_get_object): Fix loop to actually increment index.
1772         Use image->module_count.
1773         * assembly.c (mono_assembly_load_references): Use image->module_count.
1774         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1775         Likewise.
1776
1777 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1778
1779         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1780         Avoid assert on generic types.
1781
1782 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1783
1784         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1785
1786         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1787
1788         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1789         function to convert a MarshalSpec structure to its managed counterpart.
1790
1791         * reflection.c: Fix warnings.
1792         
1793         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1794         field.
1795
1796         * icall.c (mono_create_icall_signature): Fix build.
1797
1798 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1799
1800         * icall.c: Add MakePointType icall.
1801
1802         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1803         warnings.
1804
1805 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1806
1807         * threadpool.c: reuse allocated slots in the queue.
1808
1809 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1810
1811         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1812
1813         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1814
1815         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1816         previous change.
1817
1818         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1819         ThrowOnUnmappableChar.
1820
1821         * icall.c (ves_icall_Type_GetPacking): New icall.
1822
1823 2004-09-24  Martin Baulig  <martin@ximian.com>
1824
1825         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1826
1827 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1828
1829         * appdomain.c:
1830         (mono_domain_set): allow setting a domain that is being unloaded.
1831         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1832         being unloaded.
1833
1834 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1835
1836         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1837         the GetCustomAttributes icall.
1838
1839 2004-09-23  Martin Baulig  <martin@ximian.com>
1840
1841         * object-internals.h (MonoReflectionGenericParam): Replaced
1842         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1843         with `guint32 attrs'.
1844
1845 2004-09-23  Martin Baulig  <martin@ximian.com>
1846
1847         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1848
1849 2004-09-23  Martin Baulig  <martin@ximian.com>
1850
1851         * object-internals.h (GenericParameterAttributes): New enum.
1852
1853 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1854
1855         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1856         
1857         * class.c (init_events): Fill out event->other field.
1858
1859         * class.c: Fix warnings.
1860
1861         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1862
1863 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1864
1865         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1866         walk which doesn't supply the IL offset.
1867
1868 2004-09-22  Martin Baulig  <martin@ximian.com>
1869
1870         * reflection.c (mono_reflection_setup_internal_class): If we're
1871         System.ValueType, System.Object or System.Enum, set
1872         `klass->instance_size' and create the vtable.
1873         (mono_reflection_create_internal_class): If we're an enum type,
1874         get the base class from our current corlib.
1875
1876 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1877
1878         * reflection.h (MonoResolveTokenError): New type.
1879
1880         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1881         icall.
1882
1883         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1884
1885 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1886
1887         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1888         Support also calling constructors, but only for already allocated objects.
1889
1890 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1891
1892         * reflection.c (type_get_qualified_name): If the klass is null
1893         return the typename to avoid a NullRefEx.
1894         (encode_cattr_value): Get the qualified name of the boxed type,
1895         not the underlying enumtype.  Fixes #62984.
1896
1897 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1898
1899         * marshal.c: Fix problems with previous checkin.
1900
1901 2004-09-21    <vargaz@freemail.hu>
1902
1903         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1904         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1905
1906         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1907
1908 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1909
1910         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1911         should only return a type for pointers, arrays, and passbyref types.
1912         Fixes bug #63841.
1913
1914 2004-09-21  Martin Baulig  <martin@ximian.com>
1915
1916         * domain.c (mono_debugger_check_runtime_version): New public
1917         function.
1918
1919         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1920
1921 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1922
1923         * reflection.c: Added missing sort to the declarative security 
1924         attributes table. MS implementation stops seeing the attributes if the
1925         token number regress in the table (as shown by ildasm and permview).
1926
1927 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1928
1929         * object-internals.h (MonoReflectionModule): Add 'token' field.
1930         
1931         * reflection.c (mono_reflection_get_token): Add support for Module
1932         and Assembly.
1933         (mono_module_get_object): Set 'token' field.
1934         (mono_module_file_get_object): Set 'token' field.
1935
1936         * icall.c: Add new Assembly and Module icalls.
1937
1938         * appdomain.c: Bump corlib version.
1939
1940 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1941
1942         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1943         tokens of metadata objects.
1944
1945         * reflection.h reflection.c (mono_reflection_get_token): New function
1946         to obtain the token of a metadata object.
1947
1948         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1949
1950 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1951
1952         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1953         
1954         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1955
1956 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1957
1958         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1959         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1960         AssemblyBuilder to access the permissions set in the class lib.
1961         * reflection.c: Added security attributes encoding step in 
1962         mono_image_build_metadata.
1963         * tabledefs.h: Added new security actions defined in 2.0:
1964         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1965
1966 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1967
1968         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1969         macro parameter.
1970
1971 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1972  
1973         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1974           finalized. There where random SIGSEVs at program termination, when
1975           an object being finalized was trying to do a string comparison and
1976           the current culture was already finalized.
1977  
1978 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1979
1980         * threads.c: call thread_cleanup before finishing the thread if we get
1981         there.
1982
1983 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1984
1985         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1986         assemblies from the parent. Fixes #65665.
1987
1988 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1989
1990         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1991         modifiers.
1992
1993 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1994
1995         * reflection.h: add prototype for mono_get_dbnull_object
1996         * reflection.c: add prototypes for get_default_param_value_blobs 
1997         and mono_get_object_from_blob for fussier compilers
1998
1999 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
2000  
2001         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
2002         false deadlock checks in class initialization.
2003  
2004 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
2005
2006         * image.c (mono_image_addref): Fix comment.
2007
2008         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
2009         possible.
2010
2011 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
2012
2013         * reflection.c (mono_param_get_objects): Modified to return
2014         ParameterInfo.DefaultValue object.
2015
2016         (get_default_param_value_blobs):
2017         (mono_get_object_from_blob):
2018         (mono_get_dbnull_object): New helper routines. 
2019
2020         * object.c (mono_get_constant_value_from_blob): New helper routine
2021         carved out from get_default_field_value ()
2022
2023         * object-internals.h (mono_get_constant_value_from_blob): Added
2024         function declaration.
2025
2026 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
2027
2028         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
2029         referenced assemblies. Fixes #62135.
2030
2031         * exception.h exception.c (mono_get_exception_file_not_found2): New
2032         helper function.
2033
2034 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
2035
2036         * class.h class.c: Add mono_type_get_underlying_type ().
2037
2038 2004-09-09  Geoff Norton <gnorton@customerndna.com>
2039
2040         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
2041         Fix GetTypes() to support dynamically created assemblies.
2042
2043 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
2044
2045         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
2046         
2047         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
2048         previous patch.
2049
2050         * reflection.h reflection.c loader.c: Allow dynamic construction of
2051         pinvoke methods. Fixes #65571.
2052         
2053         * reflection.c (mono_reflection_get_type): Revert previous change since
2054         it causes regressions.
2055
2056 2004-09-08  Martin Baulig  <martin@ximian.com>
2057
2058         * class.c (class_compute_field_layout): Don't call
2059         mono_class_layout_fields() for open generic instances.
2060
2061 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
2062         * threads.c appdomain.c: fix typo in GC macro
2063
2064 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2065
2066         * threads.c: don't call mono_thread_detach() in start_wrapper(),
2067         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
2068
2069 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
2070
2071         * image.c (mono_image_close): Applied patch from 
2072         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
2073         assembly is loaded multiple times from data.
2074         
2075         * image.c (mono_image_open): Fix warning.
2076
2077 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2078
2079         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
2080         once. Fixes #58334.
2081         
2082         * reflection.c (mono_reflection_create_runtime_class): Initialize
2083         klass->nested_classes. Fixes #61224.
2084
2085 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2086
2087         * threads.c: sched_yield() on exit, to allow threads to quit.
2088
2089 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2090
2091         * object.c (mono_unhandled_exception): Remove leftover debug code.
2092
2093 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2094
2095         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
2096
2097 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2098
2099         * marshal.c (emit_marshal_array): Really null terminate string arrays.
2100         
2101         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
2102
2103 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2104
2105         * marshal.c (emit_marshal_array): Null terminate string arrays.
2106         
2107         * marshal.c (raise_auto_layout_exception): Fix warning.
2108
2109         * reflection.c (mono_param_get_objects): Initialize the default value
2110         with DBNull.Value, not null. Fixes #62123.
2111
2112 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
2113
2114         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
2115         throw an exception with a cute explanation.
2116
2117 2004-09-06  Dick Porter  <dick@ximian.com>
2118
2119         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
2120         Close the new process's thread handle, as we don't use it.  The
2121         handle stays around forever otherwise.
2122
2123 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2124
2125         * object.c (arith_overflow): Fix warning.
2126
2127         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
2128         calling conventions in method refs. Fixes #65352.
2129
2130         * reflection.c: Fix warnings.
2131
2132 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2133
2134         * icall.c: Add a new icall for Array.Clear
2135
2136 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2137
2138         * object.c: When allocating an array, we have to throw
2139         an overflow exception if any of the lengths are < 0.
2140
2141 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2142
2143         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
2144         properly. Also move implementation of string array marshalling to 
2145         managed code. Fixes #42316.
2146
2147 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2148
2149         * assembly.c: provide more information when loading an assembly fails.
2150
2151 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2152
2153         * filewatcher.c: don't expect the development fam package to be
2154         installed.
2155
2156 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
2157
2158         * marshal.c: Make a copy of the signature cookie since it will be
2159         freed by the caller.
2160         
2161         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
2162
2163         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
2164
2165         * metadata.c (mono_metadata_free_marshal_spec): New function to free
2166         marshal specs.
2167
2168         * marshal.c: More refactoring.
2169         
2170         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
2171         smaller functions.
2172
2173 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
2174
2175         * object.c: In mono_message_invoke, fill the output parameter array after
2176           calling the managed method (it was done before the call). This fixes
2177           bug #59299.
2178
2179 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2180
2181         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
2182         as well.
2183
2184 2004-09-02  Martin Baulig  <martin@ximian.com>
2185
2186         * class.c (mono_class_instance_size): Don't allow generic type
2187         definitions or open generic instances.
2188         (mono_class_array_element_size): If we're a value type, call
2189         mono_class_instance_size() on the original class.
2190
2191         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
2192         handle generic instances.
2193
2194         * mono-debug-debugger.c (write_type): Handle generic instances
2195         like classes.
2196
2197 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2198
2199         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
2200         the allocation request fails. Fixes #65089.
2201
2202         * object.c (mono_runtime_free_method): Do not call mono_free_method.
2203         
2204         * object.c (mono_runtime_free_method): New function to free a dynamic
2205         method.
2206
2207         * marshal.c (mono_delegate_free_ftnptr): New function to free the
2208         delegate trampoline.
2209
2210         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
2211         with hasthis as dynamic,
2212
2213         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
2214
2215         * domain.c (mono_jit_info_table_remove): New function to remove an
2216         entry from the jit info table.
2217
2218         * class-internals.h (MonoMethod): Add 'dynamic' field.
2219
2220         * loader.c: Fix warnings.
2221
2222 2004-09-01  Martin Baulig  <martin@ximian.com>
2223
2224         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
2225         instead of mono_debugger_lock() because the latter one is a no-op
2226         unless running in the debugger.
2227
2228 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2229
2230         * class.c (class_compute_field_layout): Classes with auto-layout or
2231         reference fields are not blittable.
2232         
2233 2004-09-01  Dick Porter  <dick@ximian.com>
2234
2235         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
2236         mono_image_get_filename() to get the assembly location.
2237
2238         * icall.c:
2239         * metadata.h: Fix compile warnings
2240
2241 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2242
2243         * class.c (class_compute_field_layout): System.Object is blittable.
2244
2245         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2246         as in/out. Fixes #59909.
2247
2248 2004-09-01  Martin Baulig  <martin@ximian.com>
2249
2250         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2251         mono_metadata_generic_inst_is_valuetype() if we're a generic
2252         instance to check whether our underlying type is a reference type.
2253
2254 2004-09-01  Martin Baulig  <martin@ximian.com>
2255
2256         * metadata.c (mono_type_size): If we're a generic instance, call
2257         mono_class_value_size() for value types.
2258
2259 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2260
2261         * marshal.c: Implement more custom marshalling functionality. Fixes
2262         #64915.
2263
2264 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2265
2266         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2267
2268 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2269
2270         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2271
2272         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2273
2274         * icall.c: Fix some warnings.
2275
2276         * threads.c (abort_appdomain_thread): Fix unref errors.
2277         (mono_thread_current): Fix THREAD_DEBUG define.
2278
2279 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2280
2281         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2282
2283         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2284
2285 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2286
2287         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2288         string arrays.
2289
2290 2004-08-28  Martin Baulig  <martin@ximian.com>
2291
2292         * metadata.c
2293         (mono_metadata_generic_inst_is_valuetype): New public function.
2294
2295         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2296         mono_metadata_generic_inst_is_valuetype() if we're a generic
2297         instance to check whether our underlying type is a valuetype.
2298
2299 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2300
2301         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2302         #63768.
2303
2304 2004-08-25  Martin Baulig  <martin@ximian.com>
2305
2306         * loader.c (mono_get_method_from_token): Abstract methods can also
2307         be generic and thus have type parameters.
2308
2309         * metadata-internals.h
2310         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2311
2312         * reflection.c (mono_image_get_generic_param_info): Don't create a
2313         metadata row, just add an entry to the `gen_params' array.
2314         (build_compressed_metadata): Sort the `gen_params' array and then
2315         actually create the metadata.
2316
2317 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2318
2319         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2320
2321 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2322
2323         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2324
2325 2004-08-24  Martin Baulig  <martin@ximian.com>
2326
2327         * class.cs (mono_class_is_subclass_of): Like an interface, a
2328         generic instance also derives from System.Object.
2329
2330 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2331
2332         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2333         custom modifiers to be in any order. Fixes #61990.
2334
2335 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2336
2337         * object.c: Register mono_object_new_fast icall.
2338         
2339         * object.c (mono_class_get_allocation_ftn): Return to calling
2340         mono_object_new_fast, since it seems faster to compute the object 
2341         size in unmanaged code than passing it as a parameter.
2342
2343         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2344
2345         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2346         this function with Boehm as the oom handler, so we don't have to check
2347         the result of GC_malloc.
2348
2349         * object.c: Remove checks for oom.
2350
2351         * object.h object.c (mono_class_get_allocation_ftn): New function to
2352         return the icall which can be used to allocate an instance of a given
2353         class. 
2354
2355         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2356
2357         * class-internals.h: Add 'enabled' field.
2358
2359 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2360
2361         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2362
2363 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2364         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2365         value 0x0010.
2366
2367 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2368
2369         * appdomain.c: use the Tls function for appdomain too,
2370         at Zoltan's request. Actually return in mono_context_get
2371
2372         * appdomain.c, profiler.c, threads.c: use __thread
2373
2374 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2375
2376         * appdomain.c threads.c: Call GC_CreateThread on windows.
2377
2378         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2379         multiple libraries since this don't work on windows.
2380
2381 2004-08-18  Martin Baulig  <martin@ximian.com>
2382
2383         * class-internals.h
2384         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2385         MonoMethodHeader.
2386
2387         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2388         MonoMethodNormal since we also need it for abstract and interface
2389         methods.
2390
2391         * reflection.c
2392         (build_compressed_metadata): Sort the GenericParam table.
2393         (mono_image_create_token): Added `gboolean create_methodspec'
2394         argument; this is false when generating a MethodImpl token.
2395         (reflection_methodbuilder_to_mono_method): Abstract and interface
2396         methods may also have generic parameters.
2397
2398 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2399
2400         * appdomain.c: thread local alloc
2401
2402 2004-08-17  Martin Baulig  <martin@ximian.com>
2403
2404         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2405
2406         * icall.c
2407         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2408         argument.
2409
2410         * class.c (mono_type_get_full_name): New public function.
2411         (mono_type_get_name): Don't include the type arguments.
2412
2413 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2414
2415         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2416         for inclusion into the mono executable.
2417
2418 2004-08-16  Martin Baulig  <martin@ximian.com>
2419
2420         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2421         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2422
2423 2004-08-14  Martin Baulig  <martin@ximian.com>
2424
2425         * class.c (dup_type): Also copy the `byref' field.
2426
2427 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2428
2429         * reflection.c (create_dynamic_mono_image): Revert the last change 
2430         since it breaks bootstrap.
2431
2432 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2433
2434         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2435
2436         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2437         not free them with g_free.
2438
2439 2004-08-11  Martin Baulig  <martin@ximian.com>
2440
2441         * reflection.c (mono_reflection_setup_internal_class): Also call
2442         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2443
2444 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2445
2446         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2447         called during default (first) AppDomain creation. Keep track of
2448         Evidence when loading assemblies.
2449
2450 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2451
2452         * opcodes.c, opcodes.h: reduce runtime relocations.
2453
2454 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2455
2456         * culture-info.h, locales.c: fixes and chages to sue the new
2457         optimized format of the locale data.
2458         * culture-info-tables.h: regenerated.
2459
2460 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2461         
2462         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2463
2464 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2465
2466         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2467         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2468         * domain-internals.h: icall declaration.
2469         * icall.c: icall registration.
2470         * object-internals.h: New fields in MonoAssembly for CAS.
2471
2472 2004-08-05  Duncan Mak  <duncan@ximian.com>
2473
2474         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2475         CEE_LDELEM_ANY.
2476
2477 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2478
2479         * reflection.c: fix to deal with object[] arrays in custom ctors
2480         (bug #62550).
2481
2482 2004-08-05  Martin Baulig  <martin@ximian.com>
2483
2484         * class.c (mono_class_array_element_size): Added support for
2485         generic instances and correctly handle "recursive" types.
2486
2487 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2488
2489         * assembly.c: Fix warnings.
2490
2491 2004-08-04  Martin Baulig  <martin@ximian.com>
2492
2493         * class.c
2494         (mono_type_get_name_recurse): Added `gboolean include_arity'
2495         argument specifying whether or not we should include the generic
2496         arity in the type name.
2497         (_mono_type_get_name): New static function.
2498         (mono_class_setup_vtable): If we're a generic instance, don't
2499         include the generic arity in the names of explicit method
2500         implementations.        
2501
2502 2004-08-03  Martin Baulig  <martin@ximian.com>
2503
2504         * class.c (mono_type_get_name_recurse): Enclose the generic type
2505         arguments in `<', '>'.
2506
2507 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2508
2509         * gc.c: make GC warning messages use the trace API, they are just
2510         noise to most of the users.
2511
2512 2004-08-03  Martin Baulig  <martin@ximian.com>
2513
2514         * debug-mono-symfile.c (read_string): Correctly read the string.
2515
2516 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2517
2518         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2519         
2520         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2521         icalls.
2522         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2523
2524 2004-07-30  Martin Baulig  <martin@ximian.com>
2525
2526         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2527         Reflect latest symbol writer changes.   
2528
2529 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2530
2531         * object.c: always create an object if null is passed
2532         to Invoke() where a valuetype is expected.
2533
2534 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2535
2536         * marshal.c (mono_marshal_init): make managed
2537         signatures match native ones better for 64bits.
2538
2539 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2540
2541         * appdomain.c: hack to build correctly the private bin path on windows.
2542         Fixes bug #61991.
2543
2544 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2545
2546         * assembly.c: Load mscorlib from the correct framework directory
2547           (mono/<version>/mscorlib.dll).
2548         * appdomain.h: Added prototypes for new functions.
2549         * internals.h: Added some prototypes.
2550         * domain.c: When initializing the runtime, get from the executable and
2551           the configuration files the runtime version that the app supports.
2552           Added support methods for reading app.exe.config. Added list of versions
2553           supported by the JIT. Added two new methods: mono_init_from_assembly,
2554           which initializes the runtime and determines the required version from
2555           the provided exe file, and mono_init_version, which initializes
2556           the runtime using the provided version.
2557         * icall.c: Get machine.config from version-specific directory.
2558         * reflection.c: When generating an image, embed the version number
2559           of the current runtime.
2560
2561 2004-07-28  Dick Porter  <dick@ximian.com>
2562
2563         * socket-io.c
2564         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2565         returned sockaddr size before creating the remote address object.
2566         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2567         61608.
2568
2569 2004-07-28  Dick Porter  <dick@ximian.com>
2570
2571         * locales.c (string_invariant_compare_char): Fix invariant char
2572         compares between upper and lower cases.  Fixes bug 61458.
2573
2574 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2575         
2576         * marshal.c: actually cache stelem.ref wrappers.
2577         
2578 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2579
2580         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2581         sections and remove the mono_cli_rva_map () function.
2582
2583 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2584
2585         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2586         by Geoff Norton (<gnorton@customerdna.com>).
2587
2588 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2589
2590         * class.c: fix class loads for pointer types (typeof(int) !=
2591         typeof(int*)).
2592
2593 2004-07-27  Martin Baulig  <martin@ximian.com>
2594
2595         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2596         reading the debugging information from an external ".mdb" file.
2597
2598 2004-07-24  Martin Baulig  <martin@ximian.com>
2599
2600         * reflection.c (mono_image_get_type_info): Only write a class
2601         layout entry if we actually have a size or a packing size.
2602
2603 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2604
2605         * reflection.c (type_get_fully_qualified_name): 
2606         insert cast to get type checking of ?: with non-gcc compilers
2607
2608 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2609
2610         * rand.c: use g_getenv for both lookups of
2611         MONO_EGD_SOCKET
2612
2613 2004-07-17  Martin Baulig  <martin@ximian.com>
2614
2615         * reflection.c (mono_reflection_bind_generic_method_parameters):
2616         Set `gmethod->reflection_info'.
2617
2618 2004-07-17  Martin Baulig  <martin@ximian.com>
2619
2620         * class.c (mono_class_create_from_typedef): Insert the newly
2621         created class into the hash table before computing the interfaces
2622         since we could be called recursively.
2623
2624 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2625
2626         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2627         function to implement stelem.ref in managed code
2628         * class-internals.h, debug-helpers.c: a new wrapper type
2629         for the above.
2630
2631 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2632
2633         * gc.c: allow GC handles to work even when no GC is compiled in.
2634         Fix part of bug #61134 (GetAddrOfPinnedObject).
2635
2636 2004-07-13  Peter Williams  <peter@newton.cx>
2637  
2638         * process.c (complete_path): Make sure we don't attempt to execute
2639         directories.
2640  
2641 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2642
2643         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2644           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2645           and will add/subtract the hour if needed
2646
2647 2004-07-12  Martin Baulig  <martin@ximian.com>
2648
2649         * reflection.c (mono_field_get_object): If we have
2650         `field->generic_info', take the attributes from
2651         `field->generic_info->generic_type'.    
2652
2653 2004-07-12  Martin Baulig  <martin@ximian.com>
2654
2655         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2656         This function must be called before initializing the runtime.
2657         (mono_debug_init_1): New function; call this after initializing
2658         the runtime, but before loading the assembly.  It tells the
2659         debugger to load corlib and the builtin types.
2660
2661         * mono-debug-debugger.c: Did some larger changes in the debugging
2662         code; support recursive class declarations, make sure we actually
2663         add all classes.
2664
2665 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2666
2667         * debug-helpers.c: undo my previous patch and fixed the real issue in
2668         ../mini/exceptions-x86.c
2669
2670 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2671
2672         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2673         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2674         called from other .cctors.
2675
2676 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2677
2678         * loader.c: Removed the mono_loader_wine_init hack now that we are
2679         doing a managed version of Windows.Forms.
2680
2681 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2682
2683         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2684         threadpool.c, threads.c: remove static data from rootset.
2685
2686 2004-07-09  Dick Porter  <dick@ximian.com>
2687
2688         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2689         Don't do any more processing if the matched length was 0.  It was
2690         increasing the size of the string before.  Fixes bug 61167.
2691
2692 2004-07-09  Dick Porter  <dick@ximian.com>
2693
2694         * socket-io.h:
2695         * socket-io.c
2696         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2697         Add support for SO_PEERCRED if its available.
2698
2699 2004-07-09  Peter Bartok <pbartok@novell.com>
2700         * loader.c: winelib.exe.so error message is now only displayed if
2701         MONO_DEBUG is set. To help us avoid questions when people are trying
2702         out the new Managed.Windows.Forms.
2703
2704 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2705
2706         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2707         for isinst and castclass wrappers.
2708
2709         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2710         to libmetadata from the JIT, so they could be used by the marshalling
2711         code and the interpreter.
2712
2713         * marshal.c: Register marshalling related JIT icalls here instead of
2714         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2715         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2716
2717         * metadata.h: Remove unneeded marshalling conversions.
2718
2719         * opcodes.c: Update for new opcodes.
2720         
2721 2004-07-08  Martin Baulig  <martin@ximian.com>
2722
2723         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2724         (mono_debug_get_domain_data): Make this function static.
2725
2726 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2727
2728         * gc.c, object.h: add nice GC handle API for embedders.
2729
2730 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2731
2732         * reflection.c: more changes for the new api
2733
2734         * object.c: When we reflect on a field w/ a constant value, it
2735         will not have a memory location, so we must access metadata. Also,
2736         allow easier reading of strings so that we can read them from
2737         the constant data.
2738
2739         * class.c (mono_class_layout_fields): no need for literal fields here.
2740
2741         * class-internals.h: api changes for const fields
2742
2743         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2744
2745 2004-07-06  Martin Baulig  <martin@ximian.com>
2746
2747         * mono-debug.h: Increment version number to 44.
2748
2749         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2750         now a gpointer, rewrote this whole method.
2751
2752         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2753         function.  Add information about the wrapper in a new "misc table".
2754
2755         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2756         for the new misc table.
2757
2758 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2759
2760         * metadata-internals.h image.c: Add a cache for helper signatures.
2761
2762         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2763
2764 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2765
2766         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2767         delegates from a delegate. Fixes #61033.
2768         
2769         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2770         marshalling of stringbuilder arrays. Fixes #59900.
2771
2772 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2773
2774         * icall.c: Add EnumBuilder:setup_enum_type icall.
2775
2776 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2777
2778         * icall.c: Added a new icall for the property version of
2779         OffsetOfStringData.
2780
2781 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2782
2783         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2784         it has a constant size across platforms.
2785
2786         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2787         stack trace.
2788
2789 2004-06-29  Martin Baulig  <martin@ximian.com>
2790
2791         * mono-debug.c (mono_debug_add_method): Protect the whole function
2792         in mono_debugger_lock(), not just parts of it.
2793
2794 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2795
2796         * reflection.c: make sure padding bytes in heaps are zeroed.
2797
2798 2004-06-24  David Waite  <mass@akuma.org>
2799
2800         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2801         image.c, loader.c, locales.c, marshal.c, metadata.c,
2802         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2803         string-icalls.c, threads.c: change to C90-style comments from C99 /
2804         C++ -style
2805
2806 2004-06-24  Dick Porter  <dick@ximian.com>
2807
2808         * threads.c
2809         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2810         return createdNew.  Fixes bug 60412.
2811
2812         * threads-types.h: 
2813         * icall.c: Add createdNew parameter to CreateMutex icall
2814
2815 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2816
2817         * reflection.c, object-internals.h: save default value in params.
2818
2819 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2820
2821         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2822         no need to build a new path combining that with the application base.
2823         Fixes bug #60442.
2824
2825 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2826
2827         * reflection.c: fixed minor standard compliance issues.
2828
2829 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2830
2831         * reflection.c: fixed issue with encoding some custom attributes
2832         (arrays in properties and fields, bug #60411).
2833
2834 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2835
2836         * reflection.c: fix start address when copying the public key token.
2837
2838 2004-06-23  Martin Baulig  <martin@ximian.com>
2839
2840         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2841         the `exc' object in a static object to put it into the GC's root set.
2842
2843 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2844
2845         * reflection.c: make mono_reflection_setup_internal_class ()
2846         callable a second time to setup a new parent class.
2847
2848 2004-06-23  Dick Porter  <dick@ximian.com>
2849
2850         * threads.c: Check for WAIT_IO_COMPLETION return values.
2851
2852 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2853
2854         * appdomain.c: Removed the g_free on the public key token. Now copy 
2855         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2856         * assembly.c: Added public key token string value when loading 
2857         assemblies. Fix bug #60439.
2858         * icall.c: Added missing informations (like public key) in 
2859         GetReferencedAssemblies. Fix #60519.
2860         * image.h: Changed definition for public key token from const char*
2861         public_tok_value to guchar public_key_token [17];
2862         * reflection.c: Updated for changes to public key token.
2863
2864 2004-06-22  Lluis Sanchez Gual
2865
2866         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2867         for the field in base classes.
2868
2869 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2870
2871         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2872         mark headers as not supported, they are installed only for use by the
2873         debugger.
2874
2875 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2876
2877         * *.c, *.h: avoid namespace pollution in public headers.
2878
2879 2004-06-21  Martin Baulig  <martin@ximian.com>
2880
2881         * exception.c (mono_get_exception_security): It's in
2882         "System.Security", not in "System".
2883
2884         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2885         the exception classes.
2886
2887 2004-06-21  Martin Baulig  <martin@ximian.com>
2888
2889         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2890         Protect the exception object from being finalized.
2891
2892 2004-06-21  Martin Baulig  <martin@ximian.com>
2893
2894         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2895         public function.
2896
2897 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2898
2899         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2900         if it was not loaded before. Fix parts of #60439.
2901
2902 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2903
2904         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2905         code that was broken since Ben's change: wrappers are now
2906         dependent on the method signature only again.
2907
2908 2004-06-21  Martin Baulig  <martin@ximian.com>
2909
2910         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2911         added interface support.
2912
2913 2004-06-21  Martin Baulig  <martin@ximian.com>
2914
2915         * class.c (mono_vtable_get_static_field_data): New public method.
2916
2917 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2918
2919         * filewatcher.c : Windows build fix to be compliant with API changes.
2920
2921 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2922
2923         * class.h, class.c: more accessors.
2924         * metadata.h, metadata.c: prepare for hiding MonoType and
2925         MonoMethodSignature: people should use the accessors from now on
2926         outside of the tree.
2927
2928 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2929
2930         * *.c, *.h: more API cleanups.
2931
2932 2004-06-18  Jackson Harper  <jackson@ximian.com>
2933
2934         * assembly.c: Trace loading assemblies.
2935         * loader.c: Trace loading native libraries.
2936         * mono-config.c: Trace loading config files.
2937         
2938 2004-06-18  Dick Porter  <dick@ximian.com>
2939
2940         * locales.c: Tell ICU the lengths of strings, it can cope with
2941         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2942
2943 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2944
2945         * image.c: swapped name/filename;
2946
2947 2004-06-18  Martin Baulig  <martin@ximian.com>
2948
2949         * mono-debug-debugger.c (write_class): Write the parent class at
2950         the end of the header.
2951
2952 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2953
2954         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2955
2956 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2957
2958         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2959         (bundle_obj): New conditional define.
2960         (BUILT_SOURCES): Remove.
2961         ($(bundle_srcs)): Make parallel-make safe.
2962         (libmonoruntime_la_LIBADD): Make unconditional.
2963         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2964         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2965
2966 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2967
2968         * culture-info-tables.h: It was inconsistent with the latest
2969           supp info files.
2970
2971 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2972
2973         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2974         be loaded.
2975
2976         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2977         with gcc 2.95.
2978
2979 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2980
2981         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2982         cleaned up public header threads.h.
2983
2984 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2985
2986         * Makefile.am, *.c, *.h: more API cleanups.
2987
2988 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2989
2990         * Makefile.am: removed monosn from compilation.
2991         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2992         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2993         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2994         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2995         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2996         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2997
2998 2004-06-15  Jackson Harper  <jackson@ximian.com>
2999
3000         * assembly.c: Make locales lower case when searching the GAC for
3001         assemblies. gacutil will always make locales lowercase when
3002         installing so this effectively makes them case insensitive.
3003         
3004 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
3005
3006         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
3007         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
3008           parameter which allows to choose whether the wait can be interrupted or 
3009           not. Also added the method mono_monitor_enter(), which locks the monitor
3010           using an infinite wait and without allowing interruption.
3011           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
3012           interrupted.
3013         * object.h: Added new fields in MonoThread. suspend_event holds the event
3014           used to susped/resume the thread. synch_lock is the lock object to use for
3015           modifying the thread state.
3016         * threads.c: Use the new synch_lock object for locking, instead of "this",
3017           which can generate deadlocks.
3018           Moved thread state change in Thread.Sleep and Thread.Join from managed
3019           to unmanaged code. This avoids a deadlock when the thread was suspended
3020           just after acquiring the thread lock.
3021           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
3022           Implemented Thread.Suspend using an event instead of ThreadSuspend,
3023           which is not fully implemented in the io-layer.
3024         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
3025
3026 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
3027
3028         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
3029         threads-types.h: more API cleanups.
3030
3031 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
3032
3033         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
3034         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
3035         threadpool.c, threads.c: first pass at the exported API cleanup.
3036
3037 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
3038
3039         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
3040
3041 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3042
3043         * icall.c: added internalGetHome.
3044
3045 2004-06-14  Dick Porter  <dick@ximian.com>
3046
3047         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
3048         possible to return successfully when '.' or '..' were the only
3049         entries in a directory, but were skipped.  The MonoIOStat was not
3050         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
3051         Fixes bug 59574.
3052
3053 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
3054
3055         * reflection.c: make binaries run on .Net 1.1 by default.
3056
3057 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3058
3059         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
3060
3061 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
3062
3063         * marshal.c: keep track of struct size with explicit layout
3064         (bug #59979).
3065
3066 2004-06-12  Martin Baulig  <martin@ximian.com>
3067
3068         * mono-debug-debugger.c: Comment out a debugging g_message().
3069
3070 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
3071
3072         * reflection.c, reflection.h: do not free custom attrs that are cached.
3073         * icall.c: use braces to make code clearer.
3074
3075 2004-06-11  Martin Baulig  <martin@ximian.com>
3076
3077         * class.h (MonoInflatedField): New type.
3078         (MonoClassField): Replaced `MonoType *generic_type' with
3079         `MonoInflatedField *generic_info'.
3080
3081         * icall.c
3082         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
3083
3084 2004-06-11  Martin Baulig  <martin@ximian.com>
3085
3086         * reflection.c (mono_image_create_method_token): Correctly encode
3087         varargs methods.
3088
3089 2004-06-11  Martin Baulig  <martin@ximian.com>
3090
3091         * metadata.c (mono_metadata_parse_method_signature): When parsing
3092         a MethodDef which has VarArgs, also set sentinelpos if we don't
3093         have any parameters.
3094
3095 2004-06-11  Martin Baulig  <martin@ximian.com>
3096
3097         * verify.c (mono_method_verify): In CEE_CALL, use
3098         mono_method_get_signature() to get the method's signature, unless
3099         we're a PInvoke method.
3100
3101 2004-06-10  Jackson Harper  <jackson@ximian.com>
3102
3103         * assembly.c: Use <path>/lib/mono/gac for the extra paths
3104         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
3105         logical name as the supplied path is just a prefix to the gac not
3106         the direct path to it.
3107         
3108 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
3109
3110         * reflection.c: make the token for a created method match
3111         the token of the MethodBuilder it was created from
3112         (IKVM requires this behaviour now).
3113
3114 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
3115
3116         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
3117         reflection.c, socket-io.c: leak fixes.
3118
3119 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
3120
3121         * icall.c: handle sentinel pos in vararg methods in position different
3122         from 0.
3123
3124 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3125
3126         * culture-info-tables.h: freshly generated.
3127
3128 2004-06-09  Martin Baulig  <martin@ximian.com>
3129
3130         * loader.c (mono_get_method_constrained): Call `mono_class_init
3131         (constrained_class)'.   
3132
3133 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
3134
3135         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
3136         any methods. Fixes #59629.
3137
3138 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3139
3140         * culture-info-tables.h: reflecting locale-builder updates.
3141
3142 2004-06-08  Dick Porter  <dick@ximian.com>
3143
3144         * object.h:
3145         * locales.c: Fixed compile warnings, including a real bug in
3146         CompareInfo_internal_compare.
3147         
3148 2004-06-08  Dick Porter  <dick@ximian.com>
3149
3150         * locales.c
3151         (ves_icall_System_Globalization_CompareInfo_internal_index):
3152         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3153         Double-check the resuls of usearches, because ICU currently
3154         ignores most of the collator settings here.  Fixes bug 59720.
3155         
3156 2004-06-08  Dick Porter  <dick@ximian.com>
3157
3158         * locales.c
3159         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3160         Fix memory leak and segfault-causing typo.  No idea how this one
3161         lasted so long without being noticed.
3162
3163 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
3164
3165         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
3166         any methods. Fixes #59629.
3167
3168 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3169
3170         * assembly.c:
3171         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
3172         own the critical section before). Removed dead code (that's done
3173         in the preload hook).
3174
3175         (mono_assembly_load_with_partial_name): call the preload hook.
3176
3177 2004-06-08  Martin Baulig  <martin@ximian.com>
3178
3179         * metadata.c (mono_metadata_signature_alloc): Default
3180         `sentinelpos' to -1.
3181
3182         * reflection.c (mono_image_get_array_token): Likewise.
3183
3184 2004-06-08  Martin Baulig  <martin@ximian.com>
3185
3186         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
3187
3188         * metadata.c (mono_metadata_parse_method_signature): When parsing
3189         a MethodDef which has VarArgs, set sentinelpos.
3190
3191         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
3192         `gint16' since we're using -1 for non-varargs methods.
3193
3194         * reflection.c
3195         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
3196         (method_encode_signature): Added varargs support.
3197         (method_builder_encode_signature): Likewise.
3198         (mono_image_get_varargs_method_token): New static method.
3199         (mono_image_create_method_token): New public method; this is
3200         called via an icall instead of mono_image_create_token() when
3201         calling a varargs method.       
3202
3203 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
3204
3205         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
3206
3207 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3208
3209         * culture-info-tables.h : Reflecting the latest locale-builder that
3210           fixed empty array representation ({} to {0}).
3211
3212 2004-06-07  Jackson Harper  <jackson@ximian.com>
3213
3214         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
3215         looking up extra gac paths. This allows MONO_GAC_PATH to act
3216         exactly like a prefix.
3217         
3218 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3219
3220         * reflection.c (mono_reflection_type_from_name): Make a copy of the
3221         type name before modifying it. Fixes #59405.
3222
3223 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3224
3225         * culture-info.h: added fields for "all datetime patterns".
3226         * locales.c: (  ves_icall_System_Globalization_CultureInfo
3227           _construct_datetime_format ()): fill xxx_patterns fields.
3228         * object.h: added fields for "all datetime patterns" to
3229           MonoDateTimeFormatInfo.
3230         * culture-info-tables.h: reflecting locale-builder updates.
3231
3232 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3233
3234         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
3235         the event has no add and remove methods. Fixes #59629.
3236
3237 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
3238
3239         * object.c: Fixed possible integer overflow when allocating large
3240         strings.
3241
3242 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3243
3244         * culture-info-tables.h: reflecting locale-builder updates.
3245
3246 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3247
3248         * culture-info-tables.h: reflecting locale-builder updates.
3249
3250 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3251
3252         * culture-info-tables.h: reflecting locale-builder updates.
3253
3254 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3255
3256         * threads.c: Made Thread.Sleep abortable.
3257
3258 2004-06-02  Martin Baulig  <martin@ximian.com>
3259
3260         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3261
3262         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3263
3264 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3265
3266         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3267
3268 2004-05-30  Jackson Harper  <jackson@ximian.com>
3269
3270         * reflection.c: Do not hardcode assembly versions or public key
3271         tokens anymore. All of this except the corlib section was dead
3272         code anyways.
3273         
3274 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3275
3276         * object.c (mono_runtime_invoke_array): Automatically create boxed
3277         objects for byref valuetypes if needed. Fixes #59300.
3278         
3279         * object.c (mono_method_return_message_restore): Handle 
3280         MONO_TYPE_OBJECT as well.
3281
3282 2004-05-28  Jackson Harper  <jackson@ximian.com>
3283
3284         * reflection.c: The modified type encoding was causing build
3285         problems. Reverted for now.
3286         
3287 2004-05-28  Jackson Harper  <jackson@ximian.com>
3288
3289         * reflection.c/h: Take an assembly ref so that we dont create
3290         fully qualified names when encoding types in the same assembly as
3291         the custom attribute being emitted.
3292         * appdomain.c: Increment version number.
3293         
3294 2004-05-26  Duncan Mak  <duncan@ximian.com>
3295
3296         * icall.c
3297         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3298         Set the full version number (major, minor, build, revision).
3299
3300 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3301
3302         * marshal.c (emit_struct_conv): increment src/dst after blit
3303         (mono_marshal_get_managed_wrapper,
3304         mono_marshal_get_native_wrapper): make sure we have marshalling
3305         info before marshalling params (info computation affects
3306         blittable)
3307
3308         * class.c (class_compute_field_layout): correctly deal with
3309         blittable
3310         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3311         value types (as per what windows dows by default)
3312         (mono_class_setup_mono_type): System.ValueType is blittable
3313         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3314         blittable
3315
3316         * marshal.c (mono_marshal_load_type_info): flag types  as
3317         non-blittable if the native layout doesn't match the managed
3318         layout
3319
3320 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3321
3322         * appdomain.c: don't add stuff in the private search path that is
3323         above the application base. If application base is not set, there's
3324         no private search path.
3325
3326 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3327
3328         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3329         byref struct arguments in native->managed marshalling.
3330
3331 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3332
3333         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3334         cache methods using signature (special case for methods
3335         that are value type or string class)
3336         
3337         * image.c (mono_image_close): clean up allocated GSList's
3338         in runtime_invoke_cache.
3339
3340 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3341
3342         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3343         there's no MONO_CFG_DIR environment variable defined.
3344
3345 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3346
3347         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3348
3349 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3350
3351         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3352           is interrumped.
3353         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3354           before waiting for it, and call CloseHandle after the wait to unref it.
3355           This will make sure that handles are not disposed too early.
3356
3357 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3358
3359         * appdomain.c:
3360         * appdomain.h:
3361         * icall.c: removed
3362         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3363         needed now.
3364
3365         * object.c: se the application_base only for the domain that runs
3366         Main. Fixes bug #59216,
3367
3368 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3369
3370         * appdomain.c:
3371         * object.c: only the domain in which Main is run have
3372         SetupInformation.ConfigurationFile set, so moved a few lines from
3373         appdomain.c to object.c.
3374
3375 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3376
3377         * appdomain.c: we tried to load [name].(dll|exe), but according
3378         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3379         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3380         There's a test case attached to bug #58922.
3381
3382 2004-05-27  Dick Porter  <dick@ximian.com>
3383
3384         * icall.c:
3385         * file-io.c: Implemented icalls for locking and unlocking regions
3386         in a file.
3387         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3388         FALSE on error (fixes both compiler warning and real bug.)
3389
3390 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3391
3392         * culture-info-tables.h: reflecting locale-builder updates.
3393
3394           (Added missing ChangeLog entry for 05/26)
3395
3396 2004-05-27  Jackson Harper  <jackson@ximian.com>
3397
3398         * locales.c: Fix some cut and paste errors.
3399         
3400 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3401
3402         * mono-config.c: set the correct path for config. directory on windows.
3403
3404 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3405
3406         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3407           on win32.
3408
3409 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3410
3411         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3412         from pinvoke functions.
3413         
3414         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3415
3416 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3417
3418         * culture-info-tables.h: reflecting locale-builder updates.
3419
3420 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3421
3422         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3423         #59086.
3424
3425 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3426
3427         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3428         * icall.c: Modified icalls for RNG.
3429         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3430         Windows (CryptoAPI).
3431
3432 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3433
3434         * locales.c: Fix build.
3435
3436 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3437
3438         * culture-info-tables.h: reflecting locale-builder updates.
3439
3440 2004-05-25  Jackson Harper  <jackson@ximian.com>
3441
3442         * locales.c: When creating the current culture use the $LANGs
3443         specific culture. So DateTimeFormat and NumberFormat entries are created.
3444         
3445 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3446
3447         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3448         a char array as parameter.
3449
3450 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3451
3452         * image.c: In mono_image_open(), always use an absolute path name to
3453           look for already loaded images.
3454
3455 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3456
3457         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3458         missing in the windows build (like older cygwin include files).
3459
3460 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3461
3462         * icall.c: Fixed check for possible integer overflow in Buffer_
3463         BlockCopy icall. Replaced comments style // by /* */.
3464
3465 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3466
3467         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3468         
3469         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3470         check after MONO_VTADDR. Fixes pinvoke2.exe.
3471
3472         * marshal.h marshal.c metadata.h: Add beginnings of support for
3473         ftnptr -> delegate marshalling.
3474
3475 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3476
3477         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3478         * threads.c: Fix warnings.
3479
3480 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3481
3482         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3483         * icall.c: Registered icalls for Suspend and Resume.
3484         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3485           Thread.Abort.
3486         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3487         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3488         * process.c: Use WaitForSingleObjectEx.
3489         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3490           checkpoints.
3491         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3492           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3493           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3494           background threads. Added basic support for Abort in Windows.
3495           Start new threads using a managed delegate invoke wrapper. This wrapper
3496           has an interruption checkpoint that is needed since an interruption
3497           can be requested before the thread leaves the unmanaged code that starts 
3498           the thread.
3499         * marshal.c: Added interruption checkpoint after every native call, and
3500           also before managed calls for wrappers called from unmanaged code to
3501           go into managed code.
3502         * object.h: Added new field in MonoThread to keep track of interruption
3503           requests.
3504
3505 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3506
3507         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3508         calls.
3509
3510 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3511
3512         * appdomain.c:
3513         * assembly.c:
3514         * gc.c:
3515         * locales.c:
3516         * mono-config.c:
3517         * rand.c: getenv -> g_getenv (windows!)
3518
3519         * process.c: complete_path is also used on non-windows platforms.
3520
3521 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3522
3523         * icall.c: new signature for Process_Start.
3524
3525         * process.[ch]: new signature for Process_Start. If we're on windows
3526         and UseShellExecute is false, we have to search for the program by
3527         ourselves if we don't get a full path.
3528
3529 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3530
3531         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3532         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3533
3534 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3535
3536         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3537         Fixes bug #58373.
3538
3539 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3540
3541         * process.c: use double quotes to quote program name and arguments on
3542         windows. Fixes bug #58575.
3543
3544 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3545
3546         * file-io.c: don't return "." and ".." when using windows Find*File.
3547
3548 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3549
3550         * marshal.c: Don't pass wrappers to message init because method 
3551         addressed used to lookup metadata. part of remoting[2|3] fix.
3552
3553 2004-05-15  Jackson Harper  <jackson@ximian.com>
3554
3555         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3556         path is essentially the same as MONO_PATH except that it points to
3557         GACs instead of lib directories.
3558         * loader.h: The user gac is gone so we dont need function to
3559         enable/disable it.
3560         * mono-config.c: user gac option is now gone.
3561         
3562 2004-05-15  Jackson Harper  <jackson@ximian.com>
3563
3564         * culture-info.h: Make defines more consistent, add calendar data
3565         to the culture info table.
3566         * culture-info-tables.h: Add basic calendar data. Basically
3567         everyone gets default gregorian until all the data is
3568         updated.
3569         * locales.c: Use the new consistent defines. Set calendar data for
3570         culture info objects.
3571         * object.h: add a field for calendar data to CultureInfo
3572         
3573 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3574
3575         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3576         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3577         a signature.
3578         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3579         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3580         an extra param that is the pointer of the method to invoke. The IL for
3581         the invoke method is no longer specific to the method, but to the
3582         signature of the method. Thus, we can share the same code for multiple
3583         methods. This reduces the number of methods that have to be compiled.
3584
3585 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3586
3587         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3588
3589         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3590
3591         * icall.c: Optimize Buffer.BlockCopy.
3592
3593 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3594
3595         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3596         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3597         quote). Changed them to "MMMM yyyy".
3598
3599 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3600
3601         * rand.c
3602         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3603
3604 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3605
3606         * reflection.h: Updated after changes to managed structures.
3607
3608         * appdomain.c: Bump corlib version.
3609
3610 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3611
3612         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3613         windows.
3614
3615 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3616
3617         * Makefile.am: link to ../os/libmonoos.la on windows.
3618
3619         * assembly.c:
3620                 -If MONO_DEBUG, warn about non-existing directories in
3621                 MONO_PATH.
3622                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3623                 compile time variable.
3624                 -Removed init_default_path and call mono_set_rootdir from
3625                 libmonoos.a instead (windows only).
3626
3627         * assembly.h: declare mono_assembly_getrootdir().
3628
3629         * domain.c:
3630         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3631
3632         * loader.c: s/getenv/g_getenv/
3633
3634 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3635
3636         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3637
3638         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3639
3640         * metadata.h: Add new marshalling conversions.
3641
3642         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3643         function.
3644
3645         * reflection.c (mono_reflection_get_type): Lookup the type in all
3646         modules of a multi-module assembly. Fixes #58291.
3647
3648 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3649
3650         * threads.c: Before aborting a background, set the StopRequested
3651         state.  This avoids throwing the Abort exception.
3652         In mono_thread_manage, don't continue with the shutdown until all
3653         aborted threads have actually stopped.
3654
3655 2004-05-10  Jackson Harper  <jackson@ximian.com>
3656
3657         * locales.c: Remove the modifier from culture names.
3658         
3659 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3660
3661         * Makefile.am: monosn is not installed any more. It has been deprecated
3662         in favor of sn.
3663
3664 2004-05-07  Jackson Harper  <jackson@ximian.com>
3665
3666         * locales.c
3667         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3668         Fix array construction, add bailout if the length is 0.
3669
3670 2004-05-07  Dick Porter  <dick@ximian.com>
3671
3672         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3673         machine doesn't have a DNS entry.  Patch by Urs Muff
3674         (umuff@quark.com), fixes bug 57928.
3675
3676 2004-05-06  Jackson Harper  <jackson@ximian.com>
3677
3678         * reflection.c: Handle null PublicTokens properly. alloc mem for
3679         assembly names culture so we dont crash when freeing it.
3680         
3681 2004-05-06  Jackson Harper  <jackson@ximian.com>
3682
3683         * assembly.c: Check the usergac when loading with partial names.
3684         
3685 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3686
3687         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3688         does nothing for now (not required for Linux/Windows) but the class
3689         library can call it (and a newer or modified runtime could need it).
3690         * icall.c: Registred icall.
3691
3692 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3693
3694         * loader.c: prints a message on module loading error we set MONO_DEBUG
3695         environment variable.
3696
3697 2004-05-05  Jackson Harper  <jackson@ximian.com>
3698
3699         * appdomain.c: Handle PublicKeyToken=null properly.
3700         
3701 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3702
3703         * environment.c|h: Added icall ves_icall_System_Environment_
3704         GetOSVersionString to get the current OS version as a string.
3705         * icall.c: Registred icall.
3706
3707 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3708
3709         * object.c: in mono_object_get_virtual_method(), take into account that
3710         non-virtual methods don't have a slot in the vtable. Check needed when
3711         the object is a proxy.
3712
3713 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3714
3715         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3716         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3717
3718         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3719
3720         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3721         passed when a valuetype is expected.
3722
3723         * object.c (mono_unhandled_exception): Only set the exit code if the
3724         exception happens in the main thread. Fixes thread5.exe.
3725
3726         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3727         invalid names. Fixes #58047.
3728
3729 2004-05-03  Jackson Harper  <jackson@ximian.com>
3730
3731         * assembly.c: This line was committed accidently and is unneeded.
3732         
3733 2004-05-03  Jackson Harper  <jackson@ximian.com>
3734
3735         * icall.c: Add new icall for Assembly::LoadWithPartialName
3736         * assembly.c/.h: new function that probes the GAC to load partial
3737         assembly names by Paolo Molaro.
3738         
3739 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3740
3741         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3742         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3743         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3744         full type name.
3745
3746 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3747
3748         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3749         * reflection.c: fix bug when parsing a full type name and Version is not
3750         the last thing in the string.
3751
3752 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3753
3754         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3755         crashes when it is freed.
3756
3757 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3758
3759         * assembly.c: print the compat warning to stderr.
3760
3761 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3762
3763         * assembly.c (mono_assembly_load_references): Add a compatibility
3764         hack to run old applications that might be still referencing the
3765         3300-based assemblies, only do this for System.xxx.
3766
3767 2004-05-01  Jackson Harper  <jackson@ximian.com>
3768
3769         * appdomain.c: If the culture is neutral we set it to "".
3770         
3771 2004-04-29  Jackson Harper  <jackson@ximian.com>
3772
3773         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3774
3775 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3776  
3777         * string-icalls.c: added low overhead function for copying chars
3778         * icall.c: added needed icall for the above function
3779  
3780 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3781
3782         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3783         Environment.GetLogicalDrives.
3784
3785 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3786
3787         * rand.c: try and talk to egd or prngd
3788         for random bytes if opening devices fail.
3789
3790 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3791
3792         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3793         alignment for the type using the native alignment of its members 
3794         instead of using klass->min_align.
3795
3796         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3797
3798 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3799
3800         * file-io.c:
3801         * socket-io.c: added check for sys/aio.h.
3802
3803 2004-04-28  Dick Porter  <dick@ximian.com>
3804
3805         * threads.c: Don't abort a thread thats already aborting, when
3806         terminating everything.
3807
3808 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3809
3810         * icall.c: added 2 new async calls for Socket.
3811
3812         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3813         IO on *nix systems.
3814
3815         * threadpool.c: removed unused variable.
3816
3817 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3818
3819         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3820
3821 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3822
3823         * locales.c: put back string_invariant_tolower () and
3824         string_invariant_toupper ().
3825
3826 2004-04-26 David Waite <mass@akuma.org>
3827
3828         * file-io.h:
3829         * socket-io.h:
3830         * threads.h:
3831         * unicode.h: remove comma from end of enumeration declarations
3832
3833 2004-04-26 David Waite <mass@akuma.org>
3834
3835         * debug-mono-symfile.h:
3836         * decimal.c:
3837         * mono_debug.h:
3838         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3839
3840
3841 2004-04-26  Jackson Harper  <jackson@ximian.com>
3842
3843         * appdomain.c: Increment version number.
3844         
3845 2004-04-26  Jackson Harper  <jackson@ximian.com>
3846
3847         * appdomain.c: Set assembly references public token value when
3848         PublicKeyToken is specified, not the hash_value. Free public token
3849         values when free assembly name data. Previously the public key
3850         token was hex decoded, however we are using hex encoded public key
3851         tokens, so this is not neccasary.
3852         * assembly.c: Lookup assemblies in the gac if their public token
3853         value is set. Add function to allow enabling user gac
3854         lookups. Specify whether or not the assembly was loaded from the
3855         GAC. Compare full assembly names when checking the cache for
3856         assemblies (Temporarily disabled see comment in code). Remove
3857         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3858         specifies trace-loader they get extra info to stdout on the
3859         loading of assemblies.
3860         * image.h: Add a field for an assembly references public token
3861         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3862         whether an assembly has been loaded from the GAC.
3863         * image.c: Remove a corlib -> mscorlib name mapping.
3864         * loader.h: Add function to enable/disable the user gac.
3865         * mono-config.c: Check if the usergac is enabled in the config
3866         file.
3867         * icall.c: New icall to determine whether or not an assembly has
3868         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3869         * tabldefs.h: Add constant for assemblyref flag that specifies a
3870         full public key is used instead of a public token.
3871         * reflection.c: Remove mscorlib -> corlib mappings. Set
3872         PublicTokenValue instead of hash value. This value is a hex
3873         string so it does not need to be expanded.
3874
3875 2004-04-26  Martin Baulig  <martin@ximian.com>
3876
3877         * mono-debug-debugger.c (mono_debugger_initialize): Set
3878         `mono_debugger_initialized' before calling mono_debug_lock().
3879
3880 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3881
3882         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3883           InternalToUpper/InternalToLower.
3884         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3885           removed invariant culture shortcut.  This is now done in managed code.
3886         * locales.c: (string_invariant_toupper/tolower) removed.
3887
3888 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3889
3890         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3891         Added Poll internal call.
3892
3893         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3894         call for Poll. Select was too heavy for polling a single socket.
3895
3896         * threadpool.[ch]: added mono_threadpool_cleanup.
3897         * threads.c: use it. Don't use Thread_Abort on windows.
3898
3899 2004-04-23  Martin Baulig  <martin@ximian.com>
3900
3901         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3902
3903 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3904
3905         * icall.c: Registred new icalls for key pair protection and added an
3906         icall for Environment.GetFolderPath on Windows.
3907         * security.c|h: Added new icalls for key pair protection.
3908
3909 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3910
3911         * socket-io.c: don't display the non-supported family warning for known
3912         families. Now this is not displayed on windows when checking support
3913         for IPv4/IPv6.
3914
3915 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3916
3917         * class.c: don't display the layout warning for static fields.
3918
3919 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3920
3921         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3922         * locales.c, locales.h: Added new icalls for culture-specific
3923         Char.ToLower and Char.ToUpper.
3924
3925 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3926
3927         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3928         by David Waite.
3929
3930 2004-04-20  Martin Baulig  <martin@ximian.com>
3931
3932         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3933         of the type name before passing it to mono_reflection_type_from_name().
3934
3935 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3936
3937         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3938         encodings here. Fixes #56965.
3939
3940 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3941
3942         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3943         fix test on strstr result not that I can see anything that
3944         relies on the result.
3945
3946 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3947
3948         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3949         Fixes #57081.
3950
3951         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3952
3953         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3954         function to determine which marshalling to use for strings. Fixes
3955         #56965.
3956
3957         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3958
3959         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3960
3961 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3962
3963         * icall.c: #include mono-config.h
3964
3965 2004-04-15  Jackson Harper  <jackson@ximian.com>
3966
3967         * culture-info-tables.h: Fix date formats for en-US culture.
3968         
3969 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3970
3971         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3972         ThreadPool.SetMinThreads.
3973         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3974         ThreadPool.SetMinThreads.
3975
3976 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3977
3978         * mono-config.c: also load the .config file in the directory
3979         where the assembly was found.
3980
3981 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3982
3983         * assembly.c: load per-assembly config files.
3984         * icall.c: decrapified code to get the config dir and moved to
3985         mono-config.c.
3986         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3987         per-assembly config files. When doing a dll map lookup give precedence
3988         to the per-assembly data.
3989
3990 2004-04-14  Martin Baulig  <martin@ximian.com>
3991
3992         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3993         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3994         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3995
3996         * mono-debugger-debugger.c: While the debugger is locked, remember
3997         whether the symbol tables have changes and send one single
3998         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3999
4000 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
4001
4002         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
4003
4004         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
4005         function.
4006
4007         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
4008         account when marshalling string arrays. Fixes #56965.
4009
4010 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
4011
4012         * icall.c: Add new icalls mapping for security.
4013         * security.c|h: Add internal calls for WindowsIdentity,
4014         WindowsImpersonationContext and WindowsPrincipal.
4015
4016 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
4017
4018         * class.c: Added comment to ensure the System.MonoDummy class
4019         is removed when no longer necessary
4020
4021 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
4022
4023         * appdomain.c: Pass arguments to the bootstraping exceptions to
4024         minimize JITed methods at boot
4025
4026         * metadata.c (mono_exception_from_name_two_strings): Allow for the
4027         second string to be null.
4028
4029         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
4030         Change the protocol to minimize the JIT methods at startup.  Now
4031         it Returns the internal codepage, if the value of "int_code_page"
4032         is 1 at entry, and we can not compute a suitable code page
4033         number, returns the code page as a string.
4034
4035 2004-04-13  Jackson Harper  <jackson@ximian.com>
4036
4037         * culture-info-tables.h: Fix number of decimal digits for all
4038         english locales.
4039
4040 2004-04-13  Jackson Harper  <jackson@ximian.com>
4041
4042         * icall.c: Clairfy out of sync error message. It is not always
4043         your corlib that is out of sync.
4044
4045 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
4046
4047         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
4048         properties when only the set accessor is overriden. Fixes #55874.
4049
4050 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
4051
4052         * assembly.c (mono_assembly_load_references): Make this thread safe.
4053         Fixes #56327.
4054
4055 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
4056
4057         * monosn.c: Add missing initialization calls.
4058
4059 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
4060
4061         * locales.c:
4062         ves_icall_System_Globalization_CultureInfo_construct_number_format
4063         Fix g_assert so it compiles on fussier compilers re int/ptr
4064         mismatch
4065
4066 2004-04-08  Dick Porter  <dick@ximian.com>
4067
4068         * socket-io.h:
4069         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
4070         53992.  Also rearrange the code so that the internal calls return
4071         an error value and exceptions are thrown from managed code.
4072
4073         * icall.c: Add type info to the socket icalls.
4074
4075 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4076
4077         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
4078         owes me a beer.
4079
4080 2004-04-07  Martin Baulig  <martin@ximian.com>
4081
4082         * class.c (mono_class_from_generic_parameter): Don't default
4083         `klass->parent' to `mono_defaults.object_type'.
4084
4085 2004-04-07  Martin Baulig  <martin@ximian.com>
4086
4087         * reflection.c (mono_reflection_initialize_generic_parameter): Set
4088         `param->pklass->reflection_info'.       
4089
4090 2004-04-07  Jackson Harper  <jackson@ximian.com>
4091
4092         * culture-info-tables.h: Fix date separator symbol.
4093         
4094 2004-04-07  Martin Baulig  <martin@ximian.com>
4095
4096         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
4097         from System.Type to System.MonoType.
4098
4099 2004-04-07  Martin Baulig  <martin@ximian.com>
4100
4101         * reflection.h
4102         (MonoReflectionGenericParam): Added `has_reference_type' and
4103         `has_value_type' fields.
4104
4105         * reflection.c (mono_image_get_generic_param_info): Encode the
4106         correct flags if we have the `class' or `struct' constraint.
4107
4108 2004-04-07  Martin Baulig  <martin@ximian.com>
4109
4110         * reflection.h
4111         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
4112
4113 2004-04-07  Jackson Harper  <jackson@ximian.com>
4114
4115         * appdomain.c: Revert extra patches, just wanted to bump the
4116         version number.
4117         
4118 2004-04-07  Jackson Harper  <jackson@ximian.com>
4119
4120         * Makefile.am: Add culture-info private headers.
4121         * icall.c: Add new icalls for contructing locales.
4122         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
4123         * locales.h: Declare new culture info construction methods.
4124         * object.h: Add new fields used to avoid the CultureMap to
4125         MonoCultureInfo.
4126         * culture-info.h: Definition of structs used in the culture info
4127         tables.
4128         * culture-info-tables.h: Autogenerated tables that contain culture
4129         info data. This file was generated with the locale-builder tool.
4130         * appdomain.c: Incement corlib version number.
4131         
4132 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
4133
4134         * appdomain.c: (mono_runtime_init) move mono_thread_init
4135         to before mono_object_new calls so critical sections
4136         are initialized before use.
4137
4138 2004-04-07  Martin Baulig  <martin@ximian.com>
4139
4140         * icall.c
4141         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
4142         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
4143         (ves_icall_MonoGenericParam_initialize): Removed.
4144         (monogenericparam_icalls): Removed.
4145         (generictypeparambuilder_icalls): Added new table for
4146         System.Reflection.Emit.GenericTypeParameterBuilder.
4147
4148         * reflection.c
4149         (mono_reflection_define_generic_parameter): Removed.
4150         (mono_reflection_initialize_generic_parameter): This is now called
4151         from GenericTypeParameterBuilder's .ctor.
4152
4153 2004-04-06  Martin Baulig  <martin@ximian.com>
4154
4155         * class.c (mono_class_init): Don't inflate nested classes in a
4156         generic instance.
4157         (mono_type_get_name_recurse): Include the generic arguments for
4158         generic instances and generic type declarations.
4159         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
4160         (_mono_class_get_instantiation_name): Removed.
4161         (mono_class_create_generic): Always use `gklass->name' as our name.
4162
4163         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
4164
4165         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
4166         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
4167         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
4168         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
4169         closed generic methods here.
4170
4171         * reflection.c
4172         (mono_reflection_generic_inst_get_nested_types): Removed.
4173         (inflate_mono_method): Copy the generic parameters from the
4174         MonoMethodHeader into out MonoGenericMethod.
4175
4176 2004-04-06  Martin Baulig  <martin@ximian.com>
4177
4178         * row-indexes.h
4179         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
4180
4181         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
4182
4183         * reflection.c (build_compressed_metadata): If we have any entries
4184         in the GenericParam, MethodSpec or GenericParamConstraint tables,
4185         set the header version to 1.1.
4186
4187 2004-04-06  Martin Baulig  <martin@ximian.com>
4188
4189         * class.c (mono_class_init): If we're a generic instance,
4190         initialize our nested classes, too.
4191         (_mono_class_get_instantiation_name): Deal with the new `!%d'
4192         suffix. 
4193
4194 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4195
4196         * process.c: quote the argument passed to the shell on windows.
4197
4198 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4199
4200         * threads.c (mono_alloc_special_static_data): Allow this to be
4201         called during startup.
4202
4203 2004-04-02  Martin Baulig  <martin@ximian.com>
4204
4205         * icall.c
4206         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
4207
4208 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4209
4210         * icall.c: Fix build.
4211
4212 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4213
4214         * Makefile.am: Added security.c|h.
4215         * icall.c: Added icall for get_UserName;
4216         * security.c: New file for security related icalls. Added function
4217         get_UserName for System.Environment (fix #56144).
4218         * security.h: New. Header file for security.c
4219
4220 2004-04-02  Dick Porter  <dick@ximian.com>
4221
4222         * icall.c: Deleted the icalls that were obsoleted some time ago
4223         by the ICU string code, and which were mixed into the icall
4224         rearranging.  Fixes bug 55969.
4225
4226         * string-icalls.h: 
4227         * string-icalls.c: Deleted the code that those icalls reference.
4228
4229 2004-04-01  Martin Baulig  <martin@ximian.com>
4230
4231         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
4232
4233         * class.c (mono_class_from_generic_parameter): Don't set 
4234         TYPE_ATTRIBUTE_INTERFACE.
4235         (my_mono_class_from_generic_parameter): Likewise.
4236
4237 2004-04-01  Martin Baulig  <martin@ximian.com>
4238
4239         * loader.c (find_method): Added an optional `MonoClass *ic'
4240         argument to search in a specific interface.
4241         (mono_get_method_constrained): New public function.
4242
4243 2004-04-01  Martin Baulig  <martin@ximian.com>
4244
4245         * reflection.c (mono_image_get_generic_field_token): Use the
4246         `handleref' cache here.
4247
4248 2004-04-01  Martin Baulig  <martin@ximian.com>
4249
4250         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4251
4252         * reflection.c (create_generic_typespec): Use the `typespec' hash
4253         here, not the `typeref' one.    
4254
4255 2004-04-01  Martin Baulig  <martin@ximian.com>
4256
4257         * class.c (mono_class_inflate_generic_type): Moved the
4258         functionality into a new static inflate_generic_type() which
4259         returns NULL if it didn't do anything.  Only increment the
4260         `mono_stats.inflated_type_count' if we actually inflated
4261         something.
4262         (mono_class_get_full): Check the classes type to see whether we
4263         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4264
4265 2004-04-01  Jackson Harper  <jackson@ximian.com>
4266
4267         * reflection.c: Set culture for assembly references.
4268         
4269 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4270
4271         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4272
4273 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4274
4275         * assembly.c:
4276         (do_mono_assembly_open): the critical section also covers
4277         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4278
4279 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4280
4281         * threads.c:
4282         (mono_manage_threads): abort the background threads when finishing.
4283         Fixes bug #47232.
4284
4285 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4286
4287         * gc.c: only close the done_event handle if there was no timeout.
4288         C-ified comments.
4289
4290 2004-03-30  Martin Baulig  <martin@ximian.com>
4291
4292         * icall.c (icall_entries): It's called "System.Activator", not
4293         "System.Activation".    
4294
4295 2004-03-30  Martin Baulig  <martin@ximian.com>
4296
4297         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4298         (mono_class_create_from_typespec): Likewise.
4299
4300 2004-03-30  Martin Baulig  <martin@ximian.com>
4301
4302         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4303         `has_ctor_constraint' and `initialized'.
4304
4305 2004-03-30  Martin Baulig  <martin@ximian.com>
4306
4307         * reflection.c (encode_new_constraint): New static function to add
4308         the constructor constraint attribute to a type parameter.
4309         (encode_constraints): Call encode_new_constraint() if necessary.
4310
4311         * reflection.h
4312         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4313
4314         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4315         
4316 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4317
4318         * reflection.c, icall.c: add support for pinning variables. 
4319
4320 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4321
4322         * marshal.c (mono_marshal_get_managed_wrapper):
4323         init bool local with zero rather than null.
4324
4325 2004-03-29  Martin Baulig  <martin@ximian.com>
4326
4327         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4328         the "official" behavior here.
4329         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4330
4331 2004-03-29  Martin Baulig  <martin@ximian.com>
4332
4333         * icall.c: Reflect latest API changes.
4334
4335 2004-03-29  Martin Baulig  <martin@ximian.com>
4336
4337         * loader.c (mono_get_method_from_token): Also call
4338         mono_metadata_load_generic_params () for abstract and interface
4339         methods; replace the type arguments in the method signature with
4340         the ones which are loaded from the metadata.
4341
4342 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4343
4344         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4345         of the lock is not the current thread. MS.NET don't do it, in spite of
4346         what the documentation says. See bug #56157.
4347
4348 2004-03-28  Martin Baulig  <martin@ximian.com>
4349
4350         * class.c (mono_class_init): Don't call init_properties() and
4351         init_events() for generic instances; set `prop->parent' when
4352         inflating properties.
4353
4354         * reflection.c (mono_generic_inst_get_object): Call
4355         `mono_class_init (ginst->klass)'.
4356         (mono_type_get_object): Only create a MonoGenericInst if your
4357         generic type is a TypeBuilder.
4358         (do_mono_reflection_bind_generic_parameters): Only set
4359         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4360
4361 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4362
4363         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4364         Fixes #56091.
4365
4366 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4367
4368         * icall.c: added Kill_internal icall.
4369         * process.[ch]: added Kill_internal icall.
4370
4371 2004-03-25  Martin Baulig  <martin@ximian.com>
4372
4373         * class.h (MonoStats): Added `generic_instance_count',
4374         `inflated_method_count', `inflated_type_count' and
4375         `generics_metadata_size'.       
4376
4377 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4378
4379         * reflection.c: no warnings now.
4380
4381 2004-03-25  Martin Baulig  <martin@ximian.com>
4382
4383         * class.c (mono_class_get_full): New public function; does a
4384         mono_class_get(), but also takes a `MonoGenericContext *'.
4385
4386         * loader.c (mono_field_from_memberref): Renamed to
4387         `field_from_memberref', made static and added `MonoGenericContext *'
4388         argument.
4389         (mono_field_from_token): Added `MonoGenericInst *' argument.
4390         (method_from_memberef): Likewise.
4391         (mono_get_method_from_token): Likewise.
4392         (mono_get_method_full): New public function; does a
4393         mono_get_method(), but also takes a `MonoGenericContext *'.
4394
4395         * verify.c (mono_method_verify): Get the method's generic context
4396         and pass it to mono_field_from_token(), mono_get_method_full() and
4397         mono_class_get_full().
4398
4399 2004-03-25  Martin Baulig  <martin@ximian.com>
4400
4401         * class.c (mono_class_inflate_generic_type): Take a
4402         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4403         `MonoGenericMethod *'.
4404
4405 2004-03-25  Martin Baulig  <martin@ximian.com>
4406
4407         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4408         instead of the MonoGenericMethod here.
4409
4410 2004-03-25  Martin Baulig  <martin@ximian.com>
4411
4412         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4413         each time we create a new MonoGenericInst, we also create a new
4414         context which points back to us.
4415
4416         * class.c (inflate_method): Use `ginst->context' instead of
4417         creating a new context.
4418
4419         * loader.c (method_from_memberref): Use
4420         `klass->generic_inst->context' instead of creating a new context.
4421
4422 2004-03-25  Martin Baulig  <martin@ximian.com>
4423
4424         * class.h (MonoGenericContext): New struct.
4425         (MonoGenericMethod): Removed `generic_inst'.
4426
4427         * class.c (mono_class_inflate_generic_method): Take a
4428         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4429
4430 2004-03-25  Martin Baulig  <martin@ximian.com>
4431
4432         * loader.h (MonoMethodInflated): New typedef.
4433
4434         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4435         `generic_param_count' consume just 30 bits, added `is_inflated'
4436         and `has_type_parameters' flags (one bit each).
4437
4438         * class.c (mono_class_inflate_generic_method): Create a
4439         MonoMethodInflated instead of a MonoMethodNormal and set
4440         `is_inflated' in the method signature.
4441
4442         * class.h (MonoGenericMethod): Removed `generic_method'.
4443
4444 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4445
4446         * image.c: Make sure the name of a MonoImage is always an absolute path.
4447           This fixes bug #54415.
4448
4449 2004-03-24  Martin Baulig  <martin@ximian.com>
4450
4451         * class.c (mono_class_setup_vtable): If we're a generic instance,
4452         use our generic type's vtable size.
4453
4454 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4455
4456         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4457         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4458         problems.
4459
4460 2004-03-23  Martin Baulig  <martin@ximian.com>
4461
4462         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4463         `MonoEvent *events'.
4464
4465         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4466         (typebuilder_icalls): Added "get_event_info"; calls
4467         mono_reflection_event_builder_get_event_info(). 
4468
4469         * reflection.c (mono_reflection_generic_inst_initialize): Added
4470         `MonoArray *events'.
4471         (mono_reflection_event_builder_get_event_info): New function.
4472
4473 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4474
4475         * object.h: add mono_type_initialization_init
4476
4477         * object.c (mono_runtime_class_init): 
4478         implement class constructor synchronization rules
4479         to cope with threading issues.  
4480         add mono_type_initialization_init
4481
4482         * appdomain.c (mono_runtime_init): call 
4483         mono_type_initialization_init
4484
4485         * class.h: removing initializing field from MonoVTable
4486
4487 2004-03-23  Martin Baulig  <martin@ximian.com>
4488
4489         * class.c (my_mono_class_from_generic_parameter): Use
4490         `param->name' if it's not NULL. 
4491
4492 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4493
4494         * class.c: do not insert non-virtual methods in the vtable.
4495         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4496         that means the method is non-virtual. This never would have
4497         happened before.
4498
4499 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4500
4501         * profiler.c: Added lock for accessing coverage_hash.
4502
4503 2004-03-22  Martin Baulig  <martin@ximian.com>
4504
4505         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4506         `method->method->signature->generic_param_count != 0' to make it
4507         work for interface methods.
4508
4509 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4510
4511         * process.c: quote the string passed to the shell using g_shell_quote.
4512
4513 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4514
4515         * threads.c:
4516         (mono_threads_manage): don't remove the finalizer thread and self
4517         from the threads hash table so that mono_thread_manage can be called
4518         more than once.
4519
4520 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4521
4522         * process.c: quote the arguments when UseShellExecute is true. Fixes
4523         bug #55790.
4524
4525 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4526
4527         * threads.c: set mono_thread_detach as a cleanup routine for every
4528         thread. This way it's always executed upon thread termination, either
4529         aborted or finished normally. No more xsp hangs!
4530
4531 2004-03-17  Martin Baulig  <martin@ximian.com>
4532
4533         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4534         `int count_nested' and a `MonoType **nested'.
4535
4536         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4537         most of the functionality into a new static
4538         do_mono_reflection_bind_generic_parameters() and don't take a
4539         `MonoType *nested_in' argument any more.  Don't compute nested
4540         types here.
4541         (mono_reflection_generic_inst_get_nested_types): New public method
4542         to get nested types.
4543
4544         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4545         we're a nested class.
4546
4547         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4548         mono_reflection_generic_inst_get_nested_types() to compute the
4549         nested types.
4550
4551 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4552
4553         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4554         descriptive error message under windows.
4555         
4556 2004-03-17  Martin Baulig  <martin@ximian.com>
4557
4558         * class.c (dup_type): Added `const MonoType *original' argument;
4559         copy the attrs from the original type.
4560
4561 2004-03-17  Martin Baulig  <martin@ximian.com>
4562
4563         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4564         `m->generic_inst_cache' here.
4565
4566 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4567
4568         * exception.h exception.c: Add stack_overflow_exception.
4569
4570 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4571
4572         * threadpool.c:
4573         (overlapped_callback): call SetEvent *after* invoking the callback.
4574         No need to call CloseHandle.
4575
4576 2004-03-16  Martin Baulig  <martin@ximian.com>
4577
4578         * reflection.c (mono_image_get_fieldref_token): Take a
4579         `MonoReflectionField *' instead of a `MonoClassField *' and a
4580         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4581
4582 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4583
4584         * appdomain.c: don't add the culture to the filename we're looking for
4585         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4586
4587 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4588
4589         * locales.c: don't ignore symbols when doing case insensitive compares.
4590         Thanks Dick! Fixes bug #54046.
4591
4592         * threads.c: surround 'threads' usage with enter/leave in
4593         mono_thread_manage.
4594
4595 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4596
4597         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4598         implicitly marshalled as [Out]. Fixes #55450.
4599
4600         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4601         an exception.
4602
4603 2004-03-16  Martin Baulig  <martin@ximian.com>
4604
4605         * class.c (mono_class_from_generic_parameter): Use the actual
4606         parameter name. 
4607
4608 2004-03-16  Martin Baulig  <martin@ximian.com>
4609
4610         * reflection.c (type_get_signature_size): New static function.
4611         Compues the size of the type in a method signature.
4612         (method_get_signature_size): New static function; calls
4613         type_get_signature_size() to compute the actual size of the
4614         method's signature.
4615         (method_encode_signature): Use method_get_signature_size() to get
4616         the signature's size rather than using `nparams * 10'.
4617
4618 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4619
4620         * file-io.h: define here WapiOverlapped on windows. I don't want the
4621         regular OVERLAPPED one.
4622
4623         * file-io.c:
4624         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4625         Disabling AIO on windows.
4626
4627 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4628
4629         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4630         bug #55385.
4631
4632 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4633
4634         * appdomain.c: upgraded corlib version.
4635
4636         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4637         and BeginWrite. Allow opening files for asynchrnous operations.
4638
4639         * file-io.h: new struct that maps FileStreamAsyncResult.
4640         * icall.c: added new icalls.
4641         * process.[ch]: support setting child process environment variables
4642         and use the SHELL or COMSPEC when UseShellExecute is true.
4643
4644         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4645         callback for async. IO is here and also BindHandle.
4646
4647         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4648         from here.
4649
4650 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4651
4652         * reflection.c (create_custom_attr): Allow len == 0.
4653
4654         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4655         computation on big-endian machines.
4656
4657 2004-03-13  Martin Baulig  <martin@ximian.com>
4658
4659         * class.h (MonoGenericInst): Added `int count_ifaces'.
4660
4661         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4662         `ginst->count_ifaces' instead `klass->interface_count' since we
4663         may get called before the vtable is created.
4664
4665         * loader.c (mono_method_get_param_names): If we're a generic
4666         instance, return and don't initialize the class.
4667
4668         * reflection.c (mono_reflection_setup_generic_class): Don't call
4669         ensure_runtime_vtable().
4670         (mono_reflection_bind_generic_parameters): Set
4671         `ginst->count_ifaces'.
4672
4673 2004-03-11  Jackson Harper <jackson@ximian.com>
4674
4675         * icall.c:
4676         * unicode.c:
4677         * unicode.h: Remove unused System.Char icalls.
4678         
4679 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4680
4681         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4682         code when we P/Invoke the first library in Windows.Forms, instead
4683         of when we first open the assembly.
4684
4685         * assembly.c: Drop the lookup from here.
4686
4687 2004-03-10  Martin Baulig  <martin@ximian.com>
4688
4689         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4690         class for properties, fields and events.  Finally fixes #54945.
4691
4692 2004-03-10  Martin Baulig  <martin@ximian.com>
4693
4694         * metadata.c (mono_metadata_class_equal): New static function;
4695         checks whether two generic instances or two generic parameters are
4696         equal.
4697         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4698         compare classes.        
4699
4700 2004-03-10  Martin Baulig  <martin@ximian.com>
4701
4702         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4703
4704         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4705         argument and write it into the `reflection_info' field.
4706
4707         * icall.c
4708         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4709         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4710
4711 2004-03-09  Jackson Harper  <jackson@ximian.com>
4712
4713         * char-conversions.h: use 8 bits for numeric data its all we need
4714         * icall.c: numeric data is only 8 bits now.
4715
4716 2004-03-09  Martin Baulig  <martin@ximian.com>
4717
4718         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4719
4720         * class.c (init_properties, init_events): Initialize the new
4721         `parent' field.
4722
4723         * reflection.c (typebuilder_setup_properties): Likewise.
4724         (typebuilder_setup_events): Likewise.
4725
4726         * reflection.h (MonoEventInfo): Replaced `parent with
4727         `declaring_type' and `reflected_type'.
4728
4729         * icall.c (ves_icall_get_property_info): Distinguish between
4730         declaring and reflected type.
4731         (ves_icall_get_event_info): Likewise.
4732
4733 2004-03-09  Martin Baulig  <martin@ximian.com>
4734
4735         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4736         (ves_icall_Type_GetField): Correctly set field->klass.
4737
4738 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4739
4740         * loader.h: Fix warning.
4741
4742 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4743
4744         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4745         library routine if present.  Notice that it will still continue
4746         executing even if its missing, for those working on the Gtk#
4747         edition of Windows.Forms.
4748
4749         * assembly.c (do_mono_assembly_open): If loading the
4750         System.Windows.Forms call mono_loader_wini_init.
4751
4752 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4753
4754         * class.h: Added MonoRemoteClass struct.
4755         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4756         function for MonoStrings.
4757         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4758         Added internal call for getting the proxy type.
4759         * marshal.c: Get the type of transparent proxies from its remote_class.
4760         Added methods that generate the IL for type checks and casts:
4761         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4762         mono_marshal_get_proxy_cancast.
4763         * marshal.h: Declaration of the previous new methods.
4764         * object.c: Added new moethods for creating and updating MonoRemoteClass
4765         instances: mono_remote_class, mono_upgrade_remote_class, 
4766         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4767         * verify.c: FIx transparent_proxy_fields layout.
4768         * appdomain.c: Bump corlib version.
4769
4770 2004-03-04  Jackson Harper  <jackson@ximian.com>
4771
4772         * icall.c: Add icall to access char conversion tables.
4773         * char-conversions.h: Character conversion tables.
4774         * Makefile.am: Add char-conversions.h private header file.
4775         
4776 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4777
4778         * appdomain.c (unload_thread_main): Increase unloading timeout to
4779         10 sec as a temporary workaround for Nant problems.
4780
4781 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4782
4783         * gc.c: Add checks for GC_enable and GC_disable.
4784
4785         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4786         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4787         (bug #54988).
4788         
4789 2004-02-27  Martin Baulig  <martin@ximian.com>
4790
4791         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4792         `MonoReflectionType *' instead of a `MonoType *'.
4793
4794 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4795
4796         * gc.c (run_finalize): Avoid finalizing the object representing the
4797         finalizer thread.
4798         (finalizer_thread): Fix warning.
4799
4800 2004-02-25  Martin Baulig  <martin@ximian.com>
4801
4802         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4803         argument for nested types.
4804         (mono_class_create_generic): Added support for nested generictypes.
4805
4806         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4807         `GList *nested'.
4808
4809         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4810
4811         * reflection.c (method_encode_signature): Increase the minimum
4812         value of `size' from 10 to 11.
4813         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4814         and `MonoType **types' arguments instead of the `MonoArray
4815         *types'; added `MonoType *nested_in'.  Recursively instantiate
4816         nested classes. 
4817
4818 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4819
4820         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4821         stack_overflow_ex members which are used by exception handling.
4822
4823         * appdomain.c (mono_runtime_init): Initialize the new members.
4824
4825         * gc.c (mono_gc_enable): New helper function.
4826         * gc.c (mono_gc_disable): New helper function.
4827
4828 2004-02-23  Martin Baulig  <martin@ximian.com>
4829
4830         * icall.c: I must have been really stupid - make it actually work
4831         this time ;-)
4832
4833 2004-02-23  Martin Baulig  <martin@ximian.com>
4834
4835         * loader.c (method_from_memberref): Only inflate the method if
4836         it's in another klass.
4837
4838 2004-02-23  Martin Baulig  <martin@ximian.com>
4839
4840         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4841         (mono_class_init): If we're a generic instance and an interface,
4842         compute `class->interface_id'; also create `class->interfaces'
4843         here and inflate them.
4844
4845         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4846         `ginst->is_open'.
4847         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4848
4849         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4850
4851 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4852
4853         * reflection.c (method_encode_code): Improved the error message
4854         generated by the exception.
4855
4856 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4857
4858         * icall.c: Martin did not do what he said in the ChangeLog for
4859         2004-02-18, but put back the changes for properties and events.
4860         Commenting those changes out again and adding comment to bug #54518.
4861         
4862         * process.c: removed warning.
4863
4864 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4865
4866         * marshal.c (emit_struct_conv): Print an error message instead of
4867         asserting when a type does not have the StructLayout attribute.
4868
4869 2004-02-20  Martin Baulig  <martin@ximian.com>
4870
4871         * reflection.c (mono_type_get_object): Also use the cache for
4872         generic instances.
4873         (mono_reflection_bind_generic_parameters): Always compute
4874         `ginst->ifaces'.        
4875
4876 2004-02-20  Martin Baulig  <martin@ximian.com>
4877
4878         * class.h (MonoGenericMethod): Removed `klass'.
4879
4880         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4881         *klass' argument.
4882
4883 2004-02-20  Martin Baulig  <martin@ximian.com>
4884
4885         * reflection.c (method_encode_methodspec): Actually use the
4886         uninflated signature for the memberref.
4887
4888 2004-02-20  Martin Baulig  <martin@ximian.com>
4889
4890         * class.h (MonoGenericMethod): Removed `declaring'.
4891
4892         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4893         is NULL, compute it here.
4894
4895 2004-02-20  Martin Baulig  <martin@ximian.com>
4896
4897         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4898
4899         * metadata.c (mono_metadata_generic_inst_hash): New method.
4900         (mono_metadata_generic_inst_equal): New method.
4901
4902         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4903         `klass->image->generic_inst_cache' cache to avoid creating
4904         duplicate MonoGenericInst's.
4905
4906         * class.c (mono_class_inflate_generic_type): Use the cache.
4907
4908 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4909
4910         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4911
4912 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4913
4914         * icall.c: added Socket.WSAIoctl icall.
4915
4916         * socket-io.[ch]: implemented
4917         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4918
4919 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4920
4921         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4922
4923 2004-02-18  Urs C Muff  <umuff@quark.com>
4924
4925         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4926         this work on PPC and other big-endian architectures.
4927
4928         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4929         fields with an underscore to make sure they're only accessed by
4930         the read32() macro.
4931
4932 2004-02-18  Martin Baulig  <martin@ximian.com>
4933
4934         * icall.c: Put the klass->refclass changes back for methods and
4935         fields, but not for properties and events.  We're currently not
4936         distinguishing between DeclaringType and ReflectedType for
4937         properties and events, that's what caused the regressions.
4938
4939 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4940
4941         * object.c:
4942         (mono_async_result_new): the handle can be NULL.
4943
4944         * threadpool.c: Use an event instead of a semaphore, don't initialize
4945         it until needed. This saves quite a few semaphores from being created
4946         when using the threadpool.
4947
4948 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4949
4950         * object.c (mono_string_is_interned_lookup): Fix interning of long
4951         strings. Fixes #54473.
4952
4953         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4954
4955         * icall.c: Revert the klass->refclass changes since they introduce
4956         regressions (bug #54518).
4957
4958 2004-02-18  Martin Baulig  <martin@ximian.com>
4959
4960         * class.c (mono_class_init): If we're a generic instance and don't
4961         come from a TypeBuilder, inflate our members here.
4962         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4963         (mono_class_create_generic): New public method.
4964         (mono_class_initialize_generic): Removed.
4965         (get_instantiation_name): Renamed to
4966         _mono_class_get_instantiation_name() and made it public.
4967
4968 2004-02-18  Martin Baulig  <martin@ximian.com>
4969
4970         * class.c (mono_class_inflate_generic_type): Clear the new
4971         instance's `nginst->klass' when inflating a generic instance.
4972         (mono_class_is_subclass_of): Added (basic) support for generic
4973         instances.
4974
4975 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4976
4977         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4978         MonoMempool to hold compiled native code.
4979
4980 2004-02-17  Martin Baulig  <martin@ximian.com>
4981
4982         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4983         `properties'.
4984
4985         * reflection.c (mono_reflection_generic_inst_initialize): Added
4986         `MonoArray *properties' argument.
4987
4988         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4989
4990 2004-02-17  Martin Baulig  <martin@ximian.com>
4991
4992         * icall.c (ves_icall_Type_GetFields): Renamed to
4993         ves_icall_Type_GetFields_internal() and added a
4994         `MonoReflectionType *rtype' argument; pass it to
4995         mono_field_get_object() to set the field's "reflected" type.
4996         (ves_icall_Type_GetConstructors): Likewise.
4997         (ves_icall_Type_GetEvents): Likewise.
4998         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4999         argument; pass it to mono_method_get_object() to set the method's
5000         "reflected" type.       
5001
5002 2004-02-17  Martin Baulig  <martin@ximian.com>
5003
5004         * class.h (MonoDynamicGenericInst): New type.
5005         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
5006
5007         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
5008         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
5009         (ves_icall_MonoGenericInst_GetFields): New interncall.
5010
5011         * class.c (mono_class_from_generic): Don't call
5012         mono_class_initialize_generic() if this is a dynamic instance;
5013         ie. it's being created from a TypeBuilder.
5014         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
5015         `class->byval_arg.type'.
5016
5017         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
5018         to `inflate_method' and made static.
5019         (mono_reflection_inflate_field): Removed.
5020         (mono_reflection_generic_inst_initialize): New public method.
5021
5022         * reflection.h (MonoReflectionGenericInst): Removed `methods',
5023         `ctors' and `fields'; added `initialized'.
5024
5025 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
5026
5027         * debug-helpers.c (mono_method_full_name): Fix output for empty
5028         namespaces.
5029
5030 2004-02-12  Martin Baulig  <martin@ximian.com>
5031
5032         * class.h (MonoClassField): Added `MonoType *generic_type'.
5033
5034         * reflection.c (mono_image_get_fieldref_token): Added support for
5035         instantiated generic types.
5036         (field_encode_inflated_field): Removed.
5037         (mono_image_get_inflated_field_token): Removed.
5038         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
5039
5040         * reflection.h (MonoReflectionInflatedField): Removed.
5041
5042 2004-02-12  Martin Baulig  <martin@ximian.com>
5043
5044         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
5045         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
5046
5047         * reflection.c (mono_image_get_methodspec_token): Take a
5048         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
5049         (mono_image_create_token): Check whether we have a
5050         `method->signature->gen_method' and call
5051         mono_image_get_methodspec_token() if appropriate.
5052         (inflated_method_get_object): Removed.
5053         (mono_reflection_bind_generic_method_parameters): Return a
5054         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
5055         (mono_reflection_inflate_method_or_ctor): Likewise.
5056
5057         * reflection.h (MonoReflectionInflatedMethod): Removed.
5058
5059 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
5060
5061         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
5062         for custom valuetype marshalling.
5063
5064         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
5065
5066 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5067
5068         * icall.c: fixed WSAGetLastError_internal name.
5069
5070 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
5071
5072         * threads.c (mono_thread_attach): Allow this to be called multiple
5073         times for a thread.
5074         
5075         * threads.c (build_wait_tids): Do not wait for ourselves.
5076
5077         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
5078         appdomain list is empty.
5079
5080         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
5081         memory returned by mono_string_builder_to_utf16, since it points into
5082         managed memory. Thanks to Bernie Solomon for noticing this.
5083
5084         * icall.c: Add AppDomainSetup icalls.
5085
5086         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
5087
5088         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
5089         types.
5090
5091         * reflection.c (reflection_methodbuilder_to_mono_method): Save
5092         custom attributes to the method_aux struct. Also fix array indexes etc.
5093
5094         * loader.c (mono_method_get_param_names): Make dynamic case work again.
5095         
5096 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
5097
5098         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
5099         (both static and runtime) and reduce startup time.
5100
5101 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
5102
5103         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
5104         AsAny marshalling conversion instead of crashing.
5105
5106         * marshal.c: Fix warnings.
5107
5108 2004-02-09  Martin Baulig  <martin@ximian.com>
5109
5110         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
5111
5112         * reflection.h (MonoReflectionInflatedMethod): Removed the
5113         `declaring' field, it's now in the unmanaged MonoGenericMethod.
5114
5115         * reflection.c (method_encode_methodspec): Removed the `method'
5116         argument; we get it from `gmethod->declaring'.
5117         (inflated_method_get_object): Removed the `declaring' argument.
5118
5119 2004-02-09  Martin Baulig  <martin@ximian.com>
5120
5121         * class.h (MonoGenericMethod): New type.
5122         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
5123         `generic_method'.
5124
5125         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
5126         a `MonoGenericMethod *gen_method' one.
5127
5128         * class.c (mono_class_inflate_generic_type): Take an additional
5129         `MonoGenericMethod * argument.  This is only non-NULL if we're
5130         inflating types for a generic method.   
5131         (mono_class_inflate_generic_signature): Renamed to
5132         inflate_generic_signature() and made static; take a
5133         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5134         (inflate_generic_header): Take a `MonoGenericMethod *' argument
5135         instead of a `MonoGenericInst *' one.
5136         (mono_class_inflate_generic_method): Likewise.
5137
5138         * reflection.c (encode_generic_method_sig): Take a
5139         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5140         (method_encode_methodspec): Likewise.
5141         (inflated_method_get_object): Likewise. 
5142
5143         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
5144         field with a `MonoGenericMethod *gmethod' one.  
5145
5146 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
5147
5148         * class.h (mono_class_has_parent): add parens to expansion
5149         so you can ! this.
5150
5151 2004-02-08  Martin Baulig  <martin@ximian.com>
5152
5153         * image.h (MonoImage): Removed `generics_cache'.
5154
5155         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
5156         instead of a `MonoType *' argument; removed the `inflate_methods'
5157         argument.  Don't inflate methods here.
5158
5159         * loader.c (find_method): If it's a generic instance, call
5160         mono_class_init() on the `sclass->generic_inst->generic_type'.
5161
5162         * metadata.c (mono_type_size): Make this work on uninitialized
5163         generic instances; call it on the `ginst->generic_type's class.
5164
5165         * reflection.c (mono_reflection_bind_generic_parameters): Call
5166         mono_class_from_generic() to create the `ginst->klass'.
5167
5168 2004-02-08  Martin Baulig  <martin@ximian.com>
5169
5170         * class.h (MonoClass): Changed type of `generic_inst' from
5171         `MonoType *' to `MonoGenericInst *'.
5172
5173 2004-02-08  Martin Baulig  <martin@ximian.com>
5174
5175         * icall.c (ves_icall_Type_BindGenericParameters): Just call
5176         mono_type_get_object(), this is now creating a `MonoGenericInst'
5177         for MONO_TYPE_GENERICINST.
5178         (ves_icall_MonoGenericInst_GetParentType): Likewise.
5179         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
5180
5181         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
5182         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
5183         (inflated_method_get_object): Added `MonoClass *refclass' argument.
5184         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
5185         and reflected type.
5186
5187         * reflection.h (MonoReflectionInflatedMethod): Removed
5188         `declaring_type' and `reflected_type'.
5189
5190 2004-02-08  Martin Baulig  <martin@ximian.com>
5191
5192         * class.h (MonoGenericInst): Added `MonoType *parent' and
5193         `MonoType **ifaces'.
5194
5195         * reflection.h (MonoReflectionGenericInst): Removed `klass',
5196         `parent' and `interfaces'.
5197
5198         * reflection.c (mono_reflection_bind_generic_parameters): Take a
5199         `MonoType *' argument and return a `MonoType *'.
5200
5201         * icall.c
5202         (ves_icall_MonoGenericInst_GetParentType): New interncall.
5203         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
5204
5205 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5206
5207         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
5208         valuetype marshalling.
5209
5210 2004-02-06  Martin Baulig  <martin@ximian.com>
5211
5212         * class.c
5213         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
5214         (my_mono_class_from_generic_parameter): Likewise.
5215
5216 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5217
5218         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
5219         contents of the symbol files lazily.
5220
5221         * object.h (MonoThread): Add 'name' and 'name_len' fields.
5222
5223         * threads.h threads.c icall.c: New icalls for getting and setting the
5224         threads name.
5225
5226 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
5227
5228         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
5229         Raise an exception when the domain is not found.
5230
5231 2004-02-03  Martin Baulig  <martin@ximian.com>
5232
5233         * reflection.c (mono_image_get_methodspec_token): Use the
5234         uninflated signature; fixes gen-33.
5235
5236 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5237
5238         * gc.c threads.c: Make the finalizer thread a normal managed thread so
5239         the finalizer code can use thread functionality.
5240
5241         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
5242         the finalizer thread.
5243
5244         * threads.c: Make some functions more robust.
5245
5246         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5247
5248         * metadata.h: Add new marshalling conventions.
5249
5250         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5251         stringbuilder marshalling. Fixes #53700.
5252
5253         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5254
5255         * reflection.c (mono_image_get_type_info): Save declarative security
5256         info.
5257
5258         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5259         unmanaged fields as well.
5260
5261         * appdomain.c: Bump corlib version.
5262
5263 2004-02-01  Martin Baulig  <martin@ximian.com>
5264
5265         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5266         method type arguments.  
5267
5268 2004-01-30  Duncan Mak  <duncan@ximian.com>
5269
5270         * marshal.h: Add prototype for
5271         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5272         and
5273         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5274         fix the build.
5275
5276 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5277
5278         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5279         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5280
5281 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5282
5283         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5284         custom marshalling of valuetypes.
5285
5286         * marshal.c: Fix some warnings.
5287
5288 2004-01-29  Martin Baulig  <martin@ximian.com>
5289
5290         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5291         for generic method parameters.
5292
5293         * reflection.c (method_encode_methodspec): Write the uninflated
5294         signature into the methodspec table.
5295         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5296         is always the uninflated method.
5297         (reflection_methodbuilder_to_mono_method): Copy the generic
5298         parameters from the MethodBuilder into `header->gen_params'.
5299
5300 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5301
5302         * class.c (mono_class_from_generic_parameter): Fix warning.
5303
5304 2004-01-27  Martin Baulig  <martin@ximian.com>
5305
5306         * class.c (mono_class_from_generic_parameter): Don't create
5307         `klass->methods' here.  
5308
5309 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5310
5311         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5312         extension since it does not work with libraries named lib<FOO>.dll.so.
5313
5314 2004-01-25  Martin Baulig  <martin@ximian.com>
5315
5316         * class.c (mono_class_inflate_generic_type): Added support for
5317         MONO_TYPE_GENERICINST.
5318
5319         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5320         inflate methods on open constructed types.      
5321
5322 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5323
5324         * object.c: fire ProcessExit event in the root AppDomain after running
5325         Main. Fixes bug #53299.
5326
5327 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5328
5329         * socket-io.c: include the new socket-wrappers.h header.
5330         Use the wrappers instead of the unix socket functions to make the code
5331         more clear.
5332
5333 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5334
5335         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5336
5337         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5338         Fixes #22532.
5339
5340 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5341
5342         * reflection.c (mono_image_create_pefile): Handle the case when the
5343         entry point is not a MethodBuilder.
5344
5345         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5346         field to ReflectionMethod since it is not allways a builder.
5347
5348         * reflection.c (type_get_fully_qualified_name): New helper function to
5349         return the fully qualified name of a type.
5350
5351         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5352         type name for custom marshallers.
5353
5354         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5355
5356         * class.c (mono_class_setup_vtable): If a parent class already 
5357         implements an interface, use the implementing methods from that class.
5358         Fixes #53148.
5359
5360 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5361
5362         * threadpool.c: just return instead of ExitThread to allow for thread
5363         clean up earlier.
5364
5365 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5366
5367         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5368         when closing resource modules.
5369
5370         * reflection.c (mono_image_create_pefile): Handle the case when the
5371         entry point is not a MethodBuilder.
5372
5373         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5374         field to ReflectionMethod since it is not allways a builder.
5375
5376 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5377
5378         * marshal.c (mono_marshal_get_managed_wrapper): 
5379         mono_marshal_alloc takes native int so CONV_I
5380         the arg for 64bits.
5381
5382 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5383
5384         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5385         tokens in the cattr table. Fixes #53108.
5386
5387 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5388
5389         * loader.c: don't trim ".dll" before looking up in the config file.
5390         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5391
5392 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5393
5394         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5395         Return the module which contains the resource as well.
5396         (ves_icall_System_Reflection_Module_Close): New icall.
5397
5398         * appdomain.c: Bump corlib version number.
5399
5400         * image.c (mono_image_addref): New public function.
5401
5402         * assembly.c: Call mono_image_addref.
5403
5404         * reflection.c (mono_module_get_object): Increase reference count of 
5405         the image.
5406
5407         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5408         Fixes #22532.
5409
5410         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5411         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5412         proper exceptions on DllImport problems.
5413
5414 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5415
5416         * class.c, metadata.c: eliminate CSIZE macro.
5417
5418 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5419
5420         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5421         * object.h: Added async_callback field in MonoAsyncResult.
5422         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5423         * verify.c: Added async_callback in MonoAsyncResult layout.
5424
5425 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5426
5427         * reflection.c (mono_reflection_get_custom_attrs): Add support
5428         for Modules.
5429
5430 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5431
5432         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5433         marshalling.
5434         (mono_marshal_method_from_wrapper): Add null pointer check.
5435
5436 2004-01-16  Martin Baulig  <martin@ximian.com>
5437
5438         * debug-mono-symfile.h: Set version number to 36 and reflect
5439         latest symbol writer changes.
5440
5441 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5442
5443         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5444         multi-dimensional arrays.
5445         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5446         (mono_class_from_mono_type): Use bounded_array_class_get.
5447         
5448         * class.c (mono_bounded_array_class_get): New function which takes
5449         a 'bounded' bool argument to distinguish vectors from one dimensional
5450         arrays.
5451
5452         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5453         bounded_array_class_get if the array has bounds.
5454
5455         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5456         Search modules loaded using AssemblyBuilder:AddModule as well.
5457
5458 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5459
5460         * appdomain.c: increased corlib version.
5461         * filewatcher.c: removed g_print.
5462         * icall.c:
5463         (get_property_info): only allocate what is actually requested.
5464         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5465
5466 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5467
5468         * Makefile.am: added filewatcher.[ch]
5469         * filewatcher.[ch]: FileSystemWatcher runtime support.
5470         * icall.c: added new FSW icalls.
5471
5472 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5473
5474         * string-icalls.c: fix stringbuilder regression as suggested by
5475         Iain McCoy <iain@mccoy.id.au>.
5476
5477 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5478
5479         * process.c (process_read_stringtable_block): Recognize '007f' as
5480         a language neutral stringtable block.
5481
5482 2004-01-12  Patrik Torstensson
5483
5484         * object.h (MonoStringBuilder) : Changed layout to support our
5485         new stringbuilder class.
5486         * marshal.c: Change marshalling to support the new layout of 
5487         string builder.
5488         * appdomain.c: increased version number because new layout of
5489         string builder.
5490
5491 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5492
5493         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5494         assembly name as an string instead of an AssemblyName, since it is
5495         easier to extract info from it.
5496
5497         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5498         the culture subdirectories too. Fixes #52231.
5499
5500 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5501
5502         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5503         It takes 2 new parameters with an optional name for the method to look
5504         for and case ignoring info.
5505
5506         * threadpool.c: removed unused variable.
5507
5508 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5509
5510         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5511         It takes 2 new parameters with an optional name for the property to look
5512         for and case ignoring info.
5513         Fixes bug #52753.
5514
5515 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5516
5517         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5518         Fix #52451.
5519
5520 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5521
5522         * appdomain.c:
5523         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5524         Fixes bug #52630.
5525
5526 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5527
5528         * reflection.c: Add support for more than one unmanaged resource.
5529
5530         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5531         in field->def_value, as done in all other cases.
5532
5533         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5534         TypeBuilders.
5535
5536         * reflection.c (mono_reflection_create_runtime_class): Remove 
5537         errorneous assignment to klass->element_class, since it is already
5538         done in mono_reflection_setup_internal_class.
5539
5540 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5541
5542         * gc.c: added missing LeaveCriticalSection.
5543         * icall.c: indented a couple of lines.
5544         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5545         if we call EndInvoke inside a callback. Fixes bug #52601.
5546
5547 2004-01-07  Martin Baulig  <martin@ximian.com>
5548
5549         * mono-debug-debugger.h
5550         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5551
5552 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5553
5554         * appdomain.c: Use messages in NotImplementedException.
5555
5556         * exception.c (mono_get_exception_not_implemented): Now this takes
5557         a message argument.
5558
5559         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5560         exception instead of g_asserting an aborting when something is not
5561         implemented.
5562
5563         Add some inline docs.
5564
5565 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5566
5567         * reflection.h: Update after changes to object layout.
5568
5569         * reflection.c: Implement saving of unmanaged aka win32 resources.
5570
5571         * appdomain.c: Bump version number.
5572
5573         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5574         Handle missing domains gracefully.
5575
5576 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5577
5578         * file-io.c : On Windows, there are much more invalid_path_chars.
5579
5580 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5581
5582         * class.h, object.c: prepare for GetType () speedup.
5583
5584 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5585
5586         * profiler.c: workaround for --profile null reference exception on
5587           cygwin. Patch by Patrik Torstensson.
5588
5589 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5590
5591         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5592         make work for unaligned access.
5593
5594 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5595
5596         * class.c: small cleanup (class->fields [i] -> field).
5597         * image.c: check address of metadata is valid.
5598
5599 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5600
5601         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5602         search the list of loaded assemblies.
5603
5604         * reflection.c (mono_reflection_type_from_name): Use 
5605         mono_assembly_loaded instead of mono_image_loaded.
5606
5607         * reflection.c: Fix warnings.
5608
5609 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5610
5611         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5612         is dynamic. This is needed since an assembly can contain both dynamic and
5613         non-dynamic images.
5614
5615         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5616         assembly->dynamic.
5617
5618         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5619
5620         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5621         to store modules loaded using AddModule.
5622
5623         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5624         on Modules.
5625
5626         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5627
5628         * reflection.c (mono_image_fill_export_table_from_module): New function to
5629         fill out the EXPORTEDTYPES table from a module.
5630
5631         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5632         into a separate function. Also handle loaded non-dynamic modules.
5633
5634         * reflection.c (mono_image_basic_init): Fix memory allocation.
5635
5636         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5637
5638         * assembly.c (mono_assembly_load_references): Make this public.
5639
5640 2003-12-19  Martin Baulig  <martin@ximian.com>
5641
5642         * class.c (mono_class_initialize_generic): Made this static, take
5643         a `MonoGenericInst *' instead of a `MonoClass *'.
5644         (mono_class_from_generic): Call mono_class_initialize_generic()
5645         unless we're already initialized or being called from
5646         do_mono_metadata_parse_generic_inst().
5647
5648         * class.h (MonoGenericInst): Added `initialized' and
5649         `init_pending' flags.
5650
5651         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5652         `mono_class_init (gklass)' or mono_class_initialize_generic()
5653         here; set `generic_inst->init_pending' while parsing the
5654         `type_argv'.
5655
5656 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5657
5658         * locales.c: include string.h for memxxx prototypes
5659
5660 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5661
5662         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5663         constructor when accessing literal fields.
5664
5665 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5666
5667         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5668
5669         * reflection.c (assembly_add_resource_manifest): New function to fill
5670         the MANIFESTRESOURCE table.
5671
5672         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5673
5674         * reflection.h: Update to changes in class layout.
5675
5676         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5677         Reenable call to mono_runtime_is_shutting_down ().
5678
5679         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5680         determine if the runtime is shutting down.
5681
5682 2003-12-16  Jackson Harper <jackson@ximian.com>
5683
5684         * icall.c: comment out call to mono_runtime_is_shutting_down to
5685         fix build.
5686         
5687 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5688
5689         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5690         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5691
5692 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5693
5694         * reflection.c: move definition of swap_with_size
5695         to before its first call
5696
5697 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5698
5699         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5700
5701         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5702         icall.
5703
5704         * object.c: Fix warnings.
5705
5706         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5707         members if FlattenHierarchy is set.
5708
5709         * reflection.c (mono_image_add_decl_security): New function to emit
5710         declarative security.
5711
5712         * reflection.h reflection.c: Add support for declarative security.
5713
5714         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5715         
5716 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5717
5718         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5719         
5720         * appdomain.c verify.c: Moved corlib version checking into its own
5721         function in appdomain.c since it needs to create vtables etc.
5722
5723 2003-12-13  Patrik Torstensson <p@rxc.se>
5724
5725         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5726         instead of unwrapped server.
5727
5728 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5729
5730         * verify.c (check_corlib): Fix field index.
5731
5732 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5733
5734         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5735         GetGacPath icall.
5736
5737 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5738
5739         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5740         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5741         cope with sizeof(size_t) != sizeof(guint32).
5742
5743 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5744
5745         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5746         in case of failure.
5747
5748 2003-12-10  Mark Crichton <crichton@gimp.org>
5749
5750         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5751         in managed code.
5752
5753         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5754
5755 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5756
5757         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5758         marked as deleted.
5759
5760 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5761
5762         * verify.c (check_corlib): Handle the case when the version field is 
5763         initialized by a static constructor.
5764
5765 2003-12-08  Patrik Torstensson  <p@rxc.se>
5766
5767     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5768
5769 2003-12-08  Martin Baulig  <martin@ximian.com>
5770
5771         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5772         a MonoReflectionGenericParameter, also take the parameter index
5773         and name as arguments.
5774         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5775         (ves_icall_MonoGenericParam_initialize): New interncall.
5776         (ves_icall_Type_make_byref_type): New interncall.
5777
5778         * reflection.h (MonoReflectionGenericParam): Derive from
5779         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5780         `index' fields.
5781
5782         * reflection.c (mono_reflection_define_generic_parameter): Create
5783         and return a new MonoReflectionGenericParam; don't initialize the
5784         constraints here.
5785         (mono_reflection_initialize_generic_parameter): New public method;
5786         initializes the constraints and creates the `param->pklass'.
5787
5788 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5789
5790         * reflection.h reflection.c: Use the new fields 'num_types', 
5791         'num_fields' and 'num_methods' to track the number of types etc.
5792
5793         * verify.c (check_corlib): Check corlib version number.
5794
5795 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5796
5797         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5798         function works on all methods.
5799
5800 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5801
5802         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5803         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5804         the custom_type_info flag of the transparent proxy.
5805         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5806         objects that supports IRemotingTypeInfo.
5807         * object.h: Added custom_type_info field in transparent proxy.
5808
5809 2003-12-06  Martin Baulig  <martin@ximian.com>
5810
5811         * class.c (mono_class_create_from_generic): Removed.
5812         (mono_class_from_generic): Check `ginst->klass' before doing
5813         anything else.  This is important to fully support "recursive"
5814         generic types.
5815
5816         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5817         empty `generic_inst->klass' before doing anything else.
5818
5819 2003-12-06  Dick Porter  <dick@ximian.com>
5820
5821         * verify.c: 
5822         * object.h:
5823         * icall.c:
5824         * locales.c: Use C structs to access class fields.  Don't do a
5825         conversion between MonoString and UChar because both are
5826         platform-endian UTF-16.  Compare now takes startindex and count
5827         parameters.  Add a char overload for IndexOf.  Speed up the
5828         invariant string IndexOf.
5829
5830 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5831
5832         * Makefile.am (monosn_LDADD): Fix parallel build.
5833
5834 2003-12-04  Martin Baulig  <martin@ximian.com>
5835
5836         * icall.c
5837         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5838         (ves_icall_Type_make_array_type): New interncall.       
5839
5840 2003-12-04  Martin Baulig  <martin@ximian.com>
5841
5842         * locales.c: also change it in the !HAVE_ICU case.
5843
5844 2003-12-04  Dick Porter  <dick@ximian.com>
5845
5846         * icall.c:
5847         * locales.c: construct_compareinfo is now in CompareInfo, not
5848         CultureInfo.
5849
5850 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5851
5852         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5853         image->files array.
5854
5855         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5856         table as well.
5857
5858         * assembly.c (mono_assembly_load_references): Only load references
5859         once.
5860
5861         * class.c (mono_class_from_name): Avoid linear search of the 
5862         EXPORTEDTYPE table.
5863
5864         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5865
5866 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5867
5868         * image.h (MonoImage): Add 'field_cache' field.
5869
5870         * loader.c (mono_field_from_token): Cache field lookups.
5871         
5872         * reflection.c (mono_module_get_object): Fix name property.
5873
5874         * icall.c (ves_icall_get_enum_info): Update after changes to 
5875         mono_metadata_get_constant_index ().
5876
5877         * icall.c: Get rid of get_type_info icall, use a separate icall for
5878         each type property to avoid needless memory allocations. Fixes #51514.
5879
5880         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5881         to avoid needless binary searches.
5882
5883         * class.c (class_compute_field_layout): Move the initialization of
5884         field->def_value to mono_class_vtable ().
5885
5886         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5887         non-corlib types.
5888
5889         * object.c (mono_object_allocate): Make it inline.
5890
5891         * object.c (mono_object_allocate_spec): Make it inline.
5892         
5893 2003-12-02  Dick Porter  <dick@ximian.com>
5894
5895         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5896         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5897
5898 2003-12-01  Dick Porter  <dick@ximian.com>
5899
5900         * threads.c: Fix signature and call in CreateMutex and
5901         CreateEvent.
5902
5903 2003-12-01  Dick Porter  <dick@ximian.com>
5904
5905         * icall.c: 
5906         * locales.c: Implement string compares and searching
5907
5908         * object.h: Add extra Thread field
5909
5910 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5911
5912         * reflection.c (fixup_method): Add support for MonoCMethod.
5913
5914 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5915
5916         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5917
5918         * reflection.c (assembly_name_to_aname): Allow extra characters in
5919         assembly names. Fixes #51468.
5920
5921 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5922
5923         * exception.c (mono_exception_from_name_domain): New helper function.
5924
5925         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5926         exception object in the correct domain.
5927
5928         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5929         formatting + make a copy a the input data.
5930
5931         * loader.c (mono_get_method_from_token): Methods which contain
5932         native code do not have entries in the ImplMap.
5933
5934         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5935         Thanks to Gonzalo for spotting this.
5936         
5937         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5938         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5939
5940         * assembly.h (mono_assembly_load_from): Split the second part of 
5941         assembly loading into a new public function.
5942
5943         * exception.h (mono_get_exception_bad_image_format): New function.
5944
5945 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5946
5947         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5948         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5949         
5950         * icall.c: Add new icall for creating dynamic methods.
5951
5952         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5953
5954         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5955
5956         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5957         create a dynamic method.
5958
5959         * reflection.c (resolve_object): New helper function.
5960
5961         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5962         which manipulate it so they can also work on dynamic methods.
5963
5964         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5965         creating the MonoReflectionMethodAux structure if it is not needed.
5966         
5967         * reflection.h verify.c: Update after changes to object layout.
5968
5969         * reflection.c (method_builder_encode_signature): Fix compilation on
5970         gcc 2.95.x.
5971
5972 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5973
5974         * appdomain.h: Added support for context static fields. Added static_data
5975           field to MonoAppContext and renamed thread_static_fields to a more
5976           generic special_static_fields in MonoAppDomain, since it can now contain
5977           context static fields.
5978         * domain.c: Updated hashtable name.
5979         * object.c: Replaced field_is_thread_static() for a more generic
5980           field_is_special_static() which also checks for context static attribute.
5981           In mono_class_vtable(), added support for static context fields.
5982         * threads.c: Changed methods that manage thread static fields to more
5983           generic methods so they can be reused both for thread and context static
5984           data.
5985         * threads.h: Declared some new methods.
5986
5987 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5988
5989         * reflection.h: Update after changes to the managed types.
5990
5991         * reflection.c (encode_custom_modifiers): New helper function.
5992
5993         * reflection.c (method_encode_signature): Emit custom modifiers.
5994
5995         * reflection.c (field_encode_signature): Emit custom modifiers.
5996
5997 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5998
5999         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
6000
6001         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
6002         implementation.
6003
6004         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
6005         icall.
6006
6007         * object.c (mono_field_get_value_object): New function.
6008
6009         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
6010         specific.
6011
6012 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
6013
6014         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
6015         return a preallocated out-of-memory exception instance.
6016
6017         * object.c (out_of_memory): Use the new function.
6018
6019         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
6020         flag is before the custom modifiers. Fixes #49802.
6021
6022 2003-11-16  Martin Baulig  <martin@ximian.com>
6023
6024         * class.c (mono_class_is_open_constructed_type): Implemented the
6025         MONO_TYPE_GENERICINST case.
6026
6027 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
6028
6029         * assembly.c (mono_assembly_fill_assembly_name): New function to
6030         fill out the MonoAssemblyName structure.
6031         (mono_assembly_open): Use the new function.
6032
6033         * icall.c (fill_reflection_assembly_name): New helper function.
6034
6035         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
6036         new function.
6037
6038         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
6039
6040 2003-11-15  Martin Baulig  <martin@ximian.com>
6041
6042         * class.c (mono_class_is_open_constructed_type): New public
6043         function; checks whether a type is an open constructed type,
6044         ie. whether it still contains type parameters.
6045         (mono_class_inflate_generic_type): If we're a type parameter and
6046         the inflated type is also a MONO_TYPE_(M)VAR, return the original
6047         type.
6048
6049         * class.h (MonoGenericInst): Added `guint32 is_open'.
6050
6051         * loader.c (method_from_methodspec): Check whether we're an open
6052         or closed constructed type and set `ginst->is_open'.
6053
6054         * reflection.c (mono_reflection_bind_generic_parameters): Check
6055         whether we're an open or closed constructed type and set
6056         `ginst->is_open'.
6057         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
6058         from open constructed types.
6059
6060 2003-11-15  Martin Baulig  <martin@ximian.com>
6061
6062         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6063         a generic instance (instead of a generic type declaration) with
6064         unbound generic parameters, bind them to our actual types.
6065
6066 2003-11-14  Martin Baulig  <martin@ximian.com>
6067
6068         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
6069
6070         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6071         an interface type, populate `res->interfaces' with instantiated
6072         versions of all the interfaces we inherit.
6073
6074 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
6075
6076         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
6077         when MONO_PATH is set but doesn't contain the install dir.
6078
6079 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6080
6081         * icall.c:
6082         (ves_icall_Type_GetInterfaces): don't return an interface twice when
6083         it's also implemented in base classes. Fixes bug #50927.
6084
6085 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
6086
6087         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
6088         if this method is called from a finalizer. Fixes #50913.
6089
6090 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
6091
6092         * threads.c: Implement VolatileRead/VolatileWrite
6093
6094         * icall.c: Add new icalls for VolatileRead/VolatileWrite
6095
6096 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6097
6098         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
6099         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
6100         2.95.3.
6101
6102         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
6103         from Peter Ross (pro@missioncriticalit.com).
6104         
6105 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
6106
6107         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
6108
6109 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6110
6111         * assembly.c (mono_assembly_load_references): Disable check because it
6112         triggers on older corlibs which lots of people have.
6113
6114 2003-11-12  Jackson Harper  <jackson@ximian.com>
6115
6116         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
6117         load corlib.dll if mscorlib.dll is not found.
6118         * assembly.h: Remove corlib name define.
6119         * class.c:
6120         * domain.c:
6121         * image.c: Change corlib name to mscorlib.
6122         
6123 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6124
6125         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
6126
6127 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
6128
6129         * appdomain.h: Added loader_optimization here to sync with the C#
6130         code, and add disallow_binding_redirects field.
6131
6132 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6133
6134         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
6135
6136         * reflection.c (mono_image_build_metadata): Fix crash on modules
6137         with no types.
6138
6139         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
6140
6141         * icall.c (ves_icall_get_method_info): Return callingConvention as
6142         well.
6143
6144         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
6145         namespaces from the EXPORTEDTYPE table as well.
6146
6147         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
6148         from all modules inside the assembly.
6149         
6150 2003-11-11  Martin Baulig  <martin@ximian.com>
6151
6152         * reflection.c (mono_reflection_bind_generic_parameters): Make
6153         this work for interfaces.
6154
6155 2003-11-11  Martin Baulig  <martin@ximian.com>
6156
6157         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
6158
6159 2003-11-11  Martin Baulig  <martin@ximian.com>
6160
6161         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
6162         "MonoInflatedMethod" and "MonoInflatedCtor".
6163
6164 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6165
6166         * reflection.c (resolution_scope_from_image): Use the assembly table
6167         from the manifest module, since other modules don't have it.
6168
6169         * debug-helpers.c (mono_type_full_name): New helper function.
6170
6171         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
6172
6173         * image.c (mono_image_load_file_for_image): New public function which
6174         is a replacement for the load_file_for_image in class.c.
6175
6176         * assembly.c (mono_assembly_load_module): A wrapper for the function
6177         above which does assembly association and reference loading too.
6178
6179         * class.c (mono_class_from_name): Call mono_assembly_load_module.
6180
6181 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6182
6183         * appdomain.c: not all of the attributes for the full assembly name
6184         are required and the order doesn't matter. Fixes bug #50787.
6185
6186 2003-11-10  Dick Porter  <dick@ximian.com>
6187
6188         * locales.c: Use platform-endian UTF16
6189
6190 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6191
6192         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6193         
6194 2003-11-10  Martin Baulig  <martin@ximian.com>
6195
6196         * metadata.c
6197         (mono_metadata_load_generic_params): Make this actually work.
6198
6199         * reflection.c (mono_reflection_bind_generic_parameters): If our
6200         parent is a generic instance, pass all the `types' to it, no
6201         matter whether it has the same number of type parameters or not.
6202
6203 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6204
6205         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6206
6207         * assembly.c (mono_assembly_load_references): Move the image<->assembly
6208         assignment code to this function so it gets called recursively for all
6209         modules.
6210
6211         * image.c (load_modules): Remove the assembly assignment since it is
6212         now done by mono_assembly_load_references.
6213         
6214         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
6215         Add 'module' argument.
6216         (mono_module_get_types): New helper function.
6217         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
6218
6219 2003-11-08  Martin Baulig  <martin@ximian.com>
6220
6221         * class.c (mono_class_inflate_generic_method): Interface method
6222         don't have a header.
6223
6224         * reflection.c (mono_image_get_methodspec_token): Take an
6225         additional `MonoGenericInst *' argument instead of reading it from
6226         the header; this is necessary to support interfaces.
6227         (mono_image_create_token): Pass the `MonoGenericInst *' from the
6228         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
6229         (inflated_method_get_object): Take an additional `MonoGenericInst *'
6230         argument.
6231
6232         * reflection.h (MonoReflectionInflatedMethod): Added
6233         `MonoGenericInst *ginst'.
6234
6235 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
6236
6237         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
6238
6239 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
6240
6241         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
6242
6243 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
6244
6245         * reflection.c 
6246         (reflection_methodbuilder_from_method_builder):
6247         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6248         initialize a ReflectionMethodBuilder structure.
6249         (mono_image_get_methodbuilder_token):
6250         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6251         tokens which point to types in another module inside the same assembly.
6252
6253         * reflection.c: Use the new helper functions.
6254         
6255         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6256
6257         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6258         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6259
6260         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6261         neccesary.
6262
6263         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6264         current module. Emit the manifest only for the main module.
6265
6266         * reflection.c (mono_image_create_token): Add assertion when a 
6267         memberref needs to be created.
6268
6269         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6270
6271         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6272         larger buffer for the custom attribute blob. Fixes #50637.
6273         
6274 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6275
6276         * threadpool.c: notify listener on async processing handles after
6277         invoking the async callback. Thanks to Zoltan.
6278
6279 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6280
6281         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6282         avoid code duplication.
6283
6284         * reflection.h (MonoDynamicImage): New type which is currently unused,
6285         but will be used through the ref.emit code in place of 
6286         MonoDynamicAssembly.
6287
6288         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6289         object layout.
6290
6291         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6292         a MonoDynamicImage instead of just a MonoImage.
6293         
6294         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6295         icalls to ModuleBuilder but keep their semantics, so they will work
6296         with moduleb->assemblyb. This will change later.
6297         
6298 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6299
6300         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6301         object layout.
6302
6303         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6304         main module, since it is now done by the managed code.
6305
6306 2003-11-03  Martin Baulig  <martin@ximian.com>
6307
6308         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6309         `ginst->klass' here.
6310         (method_encode_methodspec): Don't use the `ginst->generic_method's
6311         klass if it's a generic instance, use `ginst->klass' in this case.
6312
6313 2003-11-03  Martin Baulig  <martin@ximian.com>
6314
6315         * reflection.c (mono_image_get_generic_method_param_info):
6316         Removed, use mono_image_get_generic_param_info() instead.
6317         (mono_image_get_type_info): Write the GenericParam table before
6318         the Method table.  This is neccessary because in the GenericParam
6319         table, type parameters of the class (ie. '!0' etc.) must come
6320         before the ones from its generic methods (ie. '!!0' etc).
6321
6322 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6323
6324         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6325
6326 2003-11-02  Martin Baulig  <martin@ximian.com>
6327
6328         * reflection.c (create_generic_typespec): Take a
6329         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6330         the generic parameters from it.
6331
6332 2003-11-02  Martin Baulig  <martin@ximian.com>
6333
6334         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6335         instead of a `MonoClassField *' since we just need the type.
6336         (create_generic_typespec): New static function.  Creates a
6337         TypeSpec token for a generic type declaration.
6338         (mono_image_get_generic_field_token): New static function.
6339         (mono_image_create_token): If we're a FieldBuilder in a generic
6340         type declaration, call mono_image_get_generic_field_token() to get
6341         the token.
6342
6343 2003-11-02  Martin Baulig  <martin@ximian.com>
6344
6345         * reflection.h
6346         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6347         `MonoReflectionGenericInst *declaring_type' and
6348         `MonoReflectionGenericInst *reflected_type' fields.
6349
6350         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6351         `MonoReflectionGenericInst *declaring_type' and a
6352         `MonoReflectionGenericInst *reflected_type' argument instead of a
6353         single `MonoReflectionGenericInst *type' one.  Set
6354         `res->declaring_type' and `res->reflected_type' from them.
6355         (mono_reflection_inflate_field): Likewise.      
6356
6357 2003-11-02  Martin Baulig  <martin@ximian.com>
6358
6359         * class.c (mono_class_setup_vtable): Don't store generic methods
6360         in the vtable.  
6361
6362 2003-11-02  Martin Baulig  <martin@ximian.com>
6363
6364         * reflection.h (MonoReflectionGenericInst): Added
6365         `MonoReflectionType *declaring_type'.
6366
6367         * reflection.c (mono_reflection_bind_generic_parameters): Use
6368         `if (tb->parent)' instead of `klass->parent'.
6369
6370 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6371
6372         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6373         with an empty ASSEMBLY table.
6374
6375         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6376         variable in the inner and outer loops.
6377
6378 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6379
6380         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6381         argument.
6382
6383         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6384         
6385         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6386         icalls. Instead, do everything in managed code. This is needed since
6387         it is hard to restore the original domain etc. in unmanaged code in the
6388         presence of undeniable exceptions.
6389
6390         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6391         New icalls to push and pop appdomain refs.
6392
6393 2003-10-31  Martin Baulig  <martin@ximian.com>
6394
6395         * class.c (inflate_generic_type): Renamed to
6396         mono_class_inflate_generic_type() and made it public.
6397
6398         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6399         New interncall.
6400
6401         * loader.c (mono_field_from_memberref): Also set the retklass for
6402         typespecs.
6403
6404         * fielder.c (mono_image_get_inflated_field_token): New static
6405         method; creates a metadata token for an inflated field.
6406         (mono_image_create_token, fixup_method): Added support for
6407         "MonoInflatedField".
6408         (fieldbuilder_to_mono_class_field): New static function.
6409         (mono_reflection_inflate_field): New public function.
6410
6411         * reflection.h
6412         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6413         (MonoReflectionInflatedField): New typedef.     
6414
6415 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6416
6417         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6418         for Solaris and other platforms without s6_addr16
6419
6420 2003-10-30  Martin Baulig  <martin@ximian.com>
6421
6422         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6423         argument instead of two.
6424         (mono_class_inflate_generic_signature): Likewise.
6425         (inflate_generic_header): Likewise.
6426         (mono_class_inflate_generic_method): Likewise.  In addition, if
6427         `ginst->klass' is set, it becomes the new `method->klass'.
6428
6429         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6430         field.
6431
6432         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6433         first byte. [FIXME]
6434         (method_encode_methodspec): If we have generic parameters, create
6435         a MethodSpec instead of a MethodRef.
6436         (fixup_method): Added support for "MonoInflatedMethod" and
6437         "MonoInflatedCtor".
6438         (mono_image_create_token): Added support for "MonoInflatedMethod"
6439         and "MonoInflatedCtor".
6440         (inflated_method_get_object): New static function; returns a
6441         managed "System.Reflection.MonoInflatedMethod" object.
6442         (mono_reflection_bind_generic_method_parameters): Return a
6443         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6444         (mono_reflection_inflate_method_or_ctor): Likewise.
6445         (mono_image_get_generic_method_param_info): Initialize unused
6446         fields to zero.
6447         (mono_image_get_generic_param_info): Likewise.
6448
6449         * reflection.h (MonoReflectionInflatedMethod): New public
6450         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6451         "S.R.MonoInflatedCtor" classes.
6452
6453         * loader.c (method_from_memberref): If we're a TypeSpec and it
6454         resolves to a generic instance, inflate the method.
6455
6456 2003-10-28  Dick Porter  <dick@ximian.com>
6457
6458         * object.c (mono_runtime_run_main): Convert command-line arguments
6459         into utf8, falling back to the user's locale encoding to do so.
6460
6461 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6462
6463         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6464         at this time.
6465
6466         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6467
6468         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6469         up icalls at method definition time. Partially fixes #33569.
6470
6471 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6472
6473         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6474         marshalling of arrays. Fixes #50116.
6475
6476         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6477
6478         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6479         points to a vtable in the dying appdomain.
6480
6481         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6482         listeners into unmanaged code inside the lock.
6483
6484         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6485         domains and add some comments.
6486
6487 2003-10-25  Martin Baulig  <martin@ximian.com>
6488
6489         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6490
6491         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6492
6493         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6494         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6495         currently parsing.  Create the generic class and store it in
6496         `generic_inst->klass' before parsing the type arguments.  This is
6497         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6498         for an example.
6499         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6500         to support recursive typespec entries.
6501
6502         * class.c (mono_class_setup_parent): If our parent is a generic
6503         instance, we may get called before it has its name set.
6504         (mono_class_from_generic): Splitted into
6505         mono_class_create_from_generic() and mono_class_initialize_generic().
6506
6507 2003-10-25  Martin Baulig  <martin@ximian.com>
6508
6509         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6510         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6511         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6512         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6513
6514         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6515         (create_typespec): Likewise.
6516         (mono_reflection_bind_generic_parameters): Return a
6517         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6518         (mono_reflection_inflate_method_or_ctor): New public function.
6519
6520         * reflection.h (MonoReflectionGenericInst): New typedef.        
6521
6522 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6523
6524         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6525         inside the domain lock. Fixes #49993.
6526         
6527         * object.c (mono_class_vtable): When typed allocation is used, 
6528         allocate vtables in the GC heap instead of in the mempool, since the
6529         vtables contain GC descriptors which are used by the collector even
6530         after the domain owning the mempool is unloaded.
6531
6532         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6533
6534         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6535         reflect what it does. Also invalidate mempools instead of freeing
6536         them if a define is set.
6537
6538         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6539         of the appdomain.
6540         
6541         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6542         hold the finalizable objects in this domain.
6543
6544         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6545         appdomain.
6546
6547         * appdomain.c (mono_domain_set): New function to set the current
6548         appdomain, but only if it is not being unloaded.
6549
6550         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6551         appdomain which is being unloaded.
6552         
6553         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6554         unloading of the root appdomain.
6555
6556         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6557         icall to execute a method in another appdomain. Intended as a 
6558         replacement for InternalSetDomain, which can confuse the code 
6559         generation in the JIT.
6560
6561         * appdomain.c (mono_domain_is_unloading): New function to determine
6562         whenever an appdomain is unloading.
6563
6564         * appdomain.c (mono_domain_unload): New function to correctly unload
6565         an appdomain.
6566
6567         * assembly.c (mono_assembly_load_references): Check that an assembly
6568         does not references itself.
6569
6570         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6571         domain manually, it asks the finalizer thread to do it, then waits for
6572         the result. Also added a timeout.
6573
6574         * icall.c: Register the new icalls.
6575
6576         * threads.h threads.c: Export the mono_gc_stop_world and 
6577         mono_gc_start_world functions.
6578         
6579         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6580         function to fill out the mempool with 0x2a.
6581
6582 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6583
6584         * reflection.h (MonoReflectionMethodAux): New structure to store
6585         information which is rarely used, thus is not in the MonoMethod
6586         structure.
6587
6588         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6589         store the aux info.
6590
6591         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6592         and marshalling info into the aux structure.
6593
6594         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6595         from the aux structure.
6596
6597         * loader.c (mono_method_get_param_names): Retrieve the param names from
6598         the aux structure.
6599         
6600 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6601
6602         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6603         warning.
6604
6605 2003-10-21  Dick Porter  <dick@ximian.com>
6606
6607         * socket-io.c
6608         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6609         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6610
6611 2003-10-21  Martin Baulig  <martin@ximian.com>
6612
6613         * reflection.c (mono_reflection_bind_generic_parameters):
6614         `klass->parent' is NULL for interfaces.
6615
6616 2003-10-21  Martin Baulig  <martin@ximian.com>
6617
6618         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6619
6620 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6621
6622         * exception.c (mono_exception_from_name_msg): New helper function for
6623         creating exceptions and initializing their message field.
6624
6625         * exception.c: Simplify functions using the new helper.
6626
6627         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6628         New function.
6629
6630         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6631         mono_raise_exception, since otherwise gcc doesn't generate the function
6632         epilog for raise_exception, confusing the stack unwinding in the JIT.
6633         Fixes #45043.
6634
6635         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6636         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6637         Fixes #49499.
6638
6639 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6640
6641         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6642         utf8.
6643
6644 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6645
6646         * icall.c: Removed GetUninitializedObject method because
6647           AllocateUninitializedClassInstance does the same.
6648
6649 2003-10-18  Martin Baulig  <martin@ximian.com>
6650
6651         * class.c (inflate_generic_signature): Renamed to
6652         mono_class_inflate_generic_signature() and made it public.
6653         (my_mono_class_from_generic_parameter): New static function; if we
6654         don't already have the generic parameter's MonoClass, create a
6655         very simple one which is just used internally in the runtime and
6656         not passed back to managed code.
6657
6658         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6659
6660         * metadata.h (MonoMethodSignature): Moved the
6661         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6662         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6663
6664         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6665         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6666         interncall on the MonoMethod class, not on MethodInfo.
6667         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6668         calling mono_reflection_bind_generic_method_parameters() directly.
6669
6670         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6671         return the already computed `method->signature'.
6672         (method_from_methodspec): New static function to load a method
6673         from a MethodSpec entry.
6674         (mono_get_method_from_token): Call the new method_from_methodspec()
6675         for MethodSpec tokens.  
6676         (mono_get_method_from_token): If we're a generic method, load the
6677         type parameters.
6678
6679         * reflection.c (mono_image_get_memberref_token): Allow
6680         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6681         table.
6682         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6683         (mono_image_create_token): First check whether it's a generic
6684         method (so we'd need to create a MethodSpec), then do the other
6685         two alternatives.
6686         (mono_reflection_bind_generic_method_parameters): Return a
6687         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6688         called directly from the interncall.
6689
6690 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6691
6692         * reflection.c (load_public_key): Move loading of the public key
6693         into managed code.
6694
6695         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6696
6697         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6698         fields.
6699
6700         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6701         culture, hash_alg and public_key. Fixes #49555.
6702
6703 2003-10-17  Martin Baulig  <martin@ximian.com>
6704
6705         * class.h (MonoGenericInst): Moved this declaration here and added
6706         `MonoMethod *generic_method'.
6707
6708         * icall.c
6709         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6710         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6711
6712         * metadata.c (mono_metadata_type_equal): Two types of
6713         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6714         index; ie. don't compare the address of the `MonoGenericParam'
6715         structure.
6716         (mono_metadata_load_generic_params): Removed the `MonoMethod
6717         *method' argument.
6718
6719         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6720         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6721
6722         * reflection.c (method_encode_signature): Encode the number of
6723         generic parameters.
6724         (encode_generic_method_sig): New static function.
6725         (method_encode_methodspec): New static function; creates an entry
6726         in the MethodSpec table for a generic method.
6727         (mono_image_get_methodspec_token): New static function.
6728         (mono_image_create_token): Call mono_image_get_methodspec_token()
6729         for generic methods.
6730         (mono_reflection_bind_generic_method_parameters): New public
6731         function.  Instantiates a generic method.
6732
6733 2003-10-16  Martin Baulig  <martin@ximian.com>
6734
6735         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6736         *gen_params' here from MonoMethodHeader.
6737
6738         * metadata.c (mono_metadata_parse_method_signature): If we have
6739         generic parameters, initialize `method->gen_params' and then set
6740         the correct `type->data.generic_param' in all the parameters.
6741
6742 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6743
6744         * threads.c (mono_threads_get_default_stacksize): New function to 
6745         return the default stacksize.
6746
6747         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6748         termination of the finalizer thread, since the previous method had
6749         race conditions. Fixes #49628.
6750
6751         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6752         as for the other managed threads.
6753
6754 2003-10-16  Martin Baulig  <martin@ximian.com>
6755
6756         * class.c (inflate_generic_signature): Copy `generic_param_count'
6757         and `gen_params'.
6758
6759         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6760         New interncall.
6761
6762         * metadata.c (mono_metadata_parse_method_signature): Actually set
6763         the `method->generic_param_count' here.
6764         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6765
6766 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6767
6768         * object.h: Add a new field to TypedRef to simplify the implementation
6769         of the REFANY opcodes in the JIT.
6770
6771         * icall.c: Make use of the new field.
6772
6773         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6774         dynamically.
6775
6776 2003-10-15  Martin Baulig  <martin@ximian.com>
6777
6778         * class.c (mono_class_from_gen_param): Renamed to
6779         mono_class_from_generic_parameter() and moved most of the
6780         functionality from mono_reflection_define_generic_parameter()
6781         here; ie. we create a "real" class here.
6782         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6783         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6784         previously been called.
6785
6786         * class.h (MonoGenericParam): Moved the declaration of this struct
6787         here from metadata.h and added `MonoMethod *method'.
6788
6789         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6790         interncall.
6791
6792         * loader.c (mono_get_method_from_token): If we have any generic
6793         parameters, call mono_metadata_load_generic_params() to read them
6794         from the MONO_TABLE_GENERICPAR.
6795
6796         * metadata.c (mono_metadata_load_generic_params): Added
6797         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6798
6799         * metadata.h (MonoMethodSignature): Replaced
6800         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6801         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6802
6803         * reflection.c (mono_reflection_define_generic_parameter): Moved
6804         most of the functionality into the new
6805         mono_class_from_generic_parameter(); set the `method' field if
6806         we're a method parameter.       
6807
6808 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6809
6810         * marshal.c (emit_struct_conv): if native size is 0
6811         emit no code.
6812
6813 2003-10-14  Martin Baulig  <martin@ximian.com>
6814
6815         * icall.c: The generics API has changed in the spec since it was
6816         added to System.Type; these modifications make it match the spec
6817         again.
6818         (ves_icall_Type_GetGenericParameters): Renamed to
6819         `ves_icall_Type_GetGenericArguments'.
6820         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6821         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6822         `ves_icall_MonoType_get_HasGenericArguments'.
6823         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6824         `ves_icall_MonoType_get_IsGenericParameter'.
6825         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6826         this is no interncall anymore.
6827         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6828         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6829
6830 2003-10-14  Martin Baulig  <martin@ximian.com>
6831
6832         * reflection.c (mono_reflection_bind_generic_parameters): Also
6833         inflate generic methods if we're reading the class from IL.
6834
6835 2003-10-13  Martin Baulig  <martin@ximian.com>
6836
6837         * reflection.c (mono_reflection_define_generic_parameter): This
6838         method isn't called directly from the icall anymore; take a
6839         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6840         method generic parameters.
6841         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6842         (method_builder_encode_signature): Encode generic parameters.
6843         (mono_image_get_method_info): Write generic params to the
6844         MONO_TABLE_GENERICPARAM table.
6845
6846         * reflection.h (MonoReflectionMethodBuilder): Added
6847         `MonoArray *generic_params'.
6848
6849         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6850
6851         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6852         wrapper for mono_reflection_define_generic_parameter().
6853         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6854
6855 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6856
6857         * marshal.h: Add missing function to fix build.
6858
6859         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6860         the SetLastError pinvoke attribute.
6861
6862         * marshal.c (mono_marshal_set_last_error): New helper function called
6863         by the generated code.
6864         
6865         * marshal.c (mono_mb_emit_branch): New helper function.
6866
6867         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6868
6869         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6870         classes as parameters and return values of delegates. Fixes #29256. 
6871
6872 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6873
6874         * locales.c: use gint32 in non HAVE_ICU case
6875
6876 2003-10-11  Martin Baulig  <martin@ximian.com>
6877
6878         * mono-debug.c (mono_debug_add_method): Added a workaround for
6879         bug #48591.
6880
6881 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6882
6883         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6884         delegates passed to native code must use the STDCALL calling 
6885         convention. Fixes #35987.
6886
6887 2003-10-10  Martin Baulig  <martin@ximian.com>
6888
6889         * class.c (inflate_generic_type): If we're inflating for a generic
6890         type instance (and not for a generic method), return
6891         MONO_TYPE_MVAR unchanged.
6892
6893 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6894
6895         * string-icalls.c: Join ignores null strings in the source array.
6896         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6897         * threads.c: GetAvailableTheads is slightly more accurate.
6898
6899 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6900
6901         * threads.h threads.c : add mono_threads_set_default_stacksize
6902         and pass default to CreateThread calls.
6903
6904 2003-10-09  Dick Porter  <dick@ximian.com>
6905
6906         * icall.c:
6907         * locales.h:
6908         * locales.c: Internal calls for constructing CultureInfo and
6909         related objects from libicu (if its available.)
6910
6911 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6912
6913         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6914
6915 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6916
6917         * threadpool.c: added an argument to async_invoke_thread that is the
6918         item to process, pass the MonoAsyncResult to the thread start function
6919         when creating a new thread. This way we don't need to acquire any lock
6920         when we're creating a new thread. Readded a semaphore for faster
6921         response times (instead of that Sleep i added).
6922
6923 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6924
6925         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6926         get daylight change dates better on Windows, fix handling
6927         of platforms without tm_gmtoff.
6928
6929 2003-10-06  Martin Baulig  <martin@ximian.com>
6930
6931         * class.c (inflate_generic_method): Renamed to
6932         mono_class_inflate_generic_method() and made public.
6933         (mono_class_init): Don't inflate the generic methods here.
6934         (mono_class_from_generic): Added `gboolean inflate_methods'
6935         argument.  Inflate the methods here.
6936
6937         * loader.c (mono_method_get_param_names): Ignore instances of
6938         generic types for the moment.
6939
6940         * reflection.c (fixup_method): Added support for inflated methods.
6941         (mono_image_create_token): Use mono_image_get_methodref_token()
6942         for inflated methods.
6943         (mono_custom_attrs_from_param): Ignore instances of generic types
6944         for the moment.
6945         (mono_reflection_bind_generic_parameters): New public function.
6946         Moved all the functionality from
6947         ves_icall_Type_BindGenericParameters() here and added support for
6948         dynamic types.
6949         (mono_reflection_define_generic_parameter): Initialize
6950         `klass->methods' here.
6951
6952         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6953         functionality into mono_reflection_define_generic_parameter().
6954         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6955         TypeBuilder, return that TypeBuilder.
6956
6957 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6958
6959         * appdomain.c: removed mono_delegate_semaphore.
6960
6961         * threadpool.c:
6962         (mono_thread_pool_add): moved hash table creation inside and the thread 
6963         creation outside of the critical region.
6964         (mono_thread_pool_finish): removed obsolete code.
6965         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6966         continue or exit the thread depending on the queue.
6967
6968 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6969
6970         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6971         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6972         handle more bool marshalling options
6973
6974 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6975
6976         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6977         arrays of structs. Also add a more descriptive error message when
6978         a structure member is marshalled as LPArray.
6979
6980 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6981
6982         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6983         marshalling arrays of complex types. Fixes #29098. Also remove an
6984         usused and incomplete function.
6985
6986 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6987
6988         * gc.c: report heap_size - free_bytes as total memory allocated
6989         (bug#49362).
6990
6991 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6992
6993         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6994         fix timezone handling problems on Windows.
6995         
6996         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6997         asserts when the year is outside the range handled by ms the functions.
6998
6999         * class.c (setup_interface_offsets): If the class is an interface,
7000         fill out its interface_offsets slot.
7001
7002 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7003
7004         * threadpool.c: mark threadpool threads as background.
7005
7006 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
7007
7008         * decimal.c - define DECINLINE to nothing if not using GCC
7009
7010 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
7011
7012         * assembly.c: More refcount fixes.
7013
7014 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7015
7016         * string-icalls.c: if we're not trimming, return the same string.
7017         When not splitting, don't create a new string.
7018
7019 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7020
7021         * image.c:
7022         (mono_image_open): increment the ref_count inside the critical section.
7023
7024 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
7025
7026         * image.c (mono_image_open): Fix reference counting bug.
7027
7028 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
7029
7030         * marshal.c (mono_marshal_type_size) struct alignment changed for 
7031         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
7032         64bits. Avoid leak in mono_marshal_get_native_wrapper when
7033         mono_lookup_pinvoke_call throws.        
7034
7035 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
7036
7037         * reflection.c (mono_reflection_parse_type): Fix #49114.
7038
7039         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
7040         temporary workaround for cygwin header problem.
7041
7042         * object.c (mono_object_isinst): Synchronize this with the code
7043         generated by the JIT for casts.
7044
7045 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
7046
7047         * reflection.c (encode_type): Fix #38332.
7048
7049 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
7050
7051         * marshal.c (mono_marshal_method_from_wrapper): New function to return
7052         the original method from the wrapper method.
7053
7054 2003-09-25  Martin Baulig  <martin@ximian.com>
7055
7056         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
7057         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
7058         (ves_icall_Type_get_IsGenericInstance): New interncall.
7059
7060 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
7061
7062         * object.c: fix cast warning in big endian code.
7063
7064 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
7065
7066         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
7067         
7068 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7069
7070         * assembly.c: don't call check_env from mono_assembly_load. It's
7071         already done once in mono_assemblies_init and may cause headaches when
7072         multiple threads are loading assemblies.
7073
7074 2003-09-19  Martin Baulig  <martin@ximian.com>
7075
7076         * reflection.c (mono_reflection_define_generic_parameter): Don't
7077         allocate `klass->methods', set `klass->flags' to
7078         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
7079
7080 2003-09-18  Martin Baulig  <martin@ximian.com>
7081
7082         * class.c (mono_class_init): Don't create `class->methods' if it's
7083         already initialized.
7084
7085         * metadata.c (mono_metadata_load_generic_params): Make this
7086         actually work.
7087
7088         * reflection.c (mono_reflection_define_generic_parameter): Set
7089         parent class and interfaces from the constraints.
7090
7091         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
7092         to keep this struct in sync with the declaration in TypeBuilder.cs.
7093
7094 2003-09-17  Martin Baulig  <martin@ximian.com>
7095
7096         * metadata.h (MonoType): Replaced the data's `int type_param'
7097         field with `MonoGenericParam *generic_param'.
7098         (MonoGenericParam): Added `MonoClass *klass'.
7099
7100         * class.c (mono_class_from_gen_param): Removed the
7101         `MonoImage *image' and `int type_num' arguments.
7102
7103         * metadata.c (mono_metadata_parse_generic_param): New static
7104         method; creates a MonoGenericParam which just contains the index.
7105         (do_mono_metadata_parse_type): Call
7106         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
7107         MONO_TYPE_MVAR.
7108
7109         * reflection.c (mono_image_typedef_or_ref): Generic type
7110         parameters may be in the same assembly, but never use a typedef
7111         for them.
7112         (mono_reflection_define_generic_parameter): We're now creating a
7113         "real" class for the type parameter; it's now safe to call
7114         mono_class_from_mono_type() on the class'es type, it'll do the
7115         right thing.
7116
7117 2003-09-16  Martin Baulig  <martin@ximian.com>
7118
7119         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
7120         `symfile->range_entry_size' and `symfile->class_entry_size' here;
7121         the `symfile' data structure must be fully initialized before it
7122         gets added to the table.
7123
7124 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
7125
7126         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
7127
7128         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
7129         class init trampolines.
7130
7131 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
7132
7133         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
7134         to the built-in profiler to turn off time and allocation profiling
7135         respectively.
7136
7137 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
7138
7139         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
7140         g_direct_equal.
7141
7142         * debug-helpers.c (mono_method_full_name): Print the wrapper type
7143         in human readable form.
7144
7145 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
7146
7147         * reflection.c icall.c: Fixed warnings.
7148
7149         * image.c (load_class_names): Use a temporary hash table to hold the
7150         namespaces in order to avoid doing many string comparisons.
7151
7152         * image.h: Fix typo.
7153
7154         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
7155         Pass NULL instead of g_direct_equal to the GHashTable constructor 
7156         since the NULL case is short-circuited inside g_hash_table_lookup, 
7157         leading to better performance.  
7158
7159         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
7160         obtain the first custom attribute for a given index. Depends on the
7161         CustomAttribute table being sorted by the parent field.
7162
7163         * reflection.c (mono_custom_attrs_from_index): Use the new function 
7164         for better performance.
7165
7166 2003-09-07  Martin Baulig  <martin@ximian.com>
7167
7168         * class.c (mono_class_init): If we're a generic instance, inflate
7169         all our methods instead of loading them from the image.
7170         (mono_class_from_generic): Set `class->methods = gklass->methods'.
7171
7172 2003-09-07  Martin Baulig  <martin@ximian.com>
7173
7174         * mono-debug-debugger.c: Added support for constructors.
7175
7176 2003-09-06  Martin Baulig  <martin@ximian.com>
7177
7178         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
7179         New interncall.
7180
7181         * reflection.c (mono_reflection_setup_generic_class): Call
7182         ensure_runtime_vtable() to create the vtable.
7183
7184 2003-09-05  Martin Baulig  <martin@ximian.com>
7185
7186         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
7187         MONO_TYPE_MVAR.
7188
7189 2003-09-04  Martin Baulig  <martin@ximian.com>
7190
7191         * reflection.c (mono_reflection_define_generic_parameter): Generic
7192         parameters start with zero.
7193
7194 2003-09-04  Martin Baulig  <martin@ximian.com>
7195
7196         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7197
7198         * reflection.h (MonoReflectionGenericParam): New typedef.
7199         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
7200         the generic parameters from the managed TypeBuilder.
7201
7202         * reflection.c (mono_reflection_define_generic_parameter): New function.
7203         (mono_reflection_create_runtime_class): Encode generic parameters.
7204         (mono_reflection_setup_generic_class): New function; this is
7205         called after adding adding all generic params to the TypeBuilder.
7206         (encode_type): Added MONO_TYPE_VAR.
7207
7208 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
7209
7210         * class.h class.c (mono_class_needs_cctor_run): Moved this method
7211         here from the JIT.
7212
7213         * assembly.h assembly.c: Moved the AOT loading code into an assembly
7214         load hook.
7215
7216 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
7217
7218         * reflection.h reflection.c class.h class.c: Delete duplicate 
7219         definition of mono_type_get_name () from reflection.c and export the
7220         one in class.c.
7221
7222         * class.c: Class loading fixes from Bernie Solomon 
7223         (bernard@ugsolutions.com).
7224
7225         * reflection.c: Endianness fixes from Bernie Solomon 
7226         (bernard@ugsolutions.com).
7227         
7228 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
7229
7230         * assembly.h assembly.c: Define a file format version for AOT
7231         libraries.
7232         
7233         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
7234
7235         * appdomain.h (MonoJitInfo): New field to determine whenever the
7236         code is domain neutral.
7237         
7238 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
7239
7240         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
7241
7242 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
7243
7244         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7245         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7246         Avoid caching the result since strings must be domain specific. Fixes
7247         #48050.
7248
7249 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7250
7251         * marshal.c (mono_marshal_init): Make this callable multiple times
7252         since it is hard to find a correct place to call it.
7253
7254         * object.c (mono_runtime_class_init): Execute static constructors in
7255         the correct appdomain.
7256
7257         * image.c (build_guid_table): Handle the case when multiple images have
7258         the same GUID.
7259
7260 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7261
7262         * icall.c: added a couple of icalls for System.Web.
7263
7264 2003-08-28  Martin Baulig  <martin@ximian.com>
7265
7266         * icall.c (ves_icall_Type_BindGenericParameters): Use
7267         `klass->generic_inst' instead of `&klass->byval_arg' in the
7268         mono_type_get_object() call.  The returned type must be
7269         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7270
7271 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7272
7273         * NOTES: New file.
7274
7275         * object.c (mono_class_proxy_vtable): Make it thread safe.
7276
7277         * pedump.c: Fix warning.
7278
7279         * object.c appdomain.h: Get rid of metadata_section. 
7280         It is no longer needed and it was causing deadlocks with domain->lock.
7281
7282         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7283
7284 2003-08-26  Martin Baulig  <martin@ximian.com>
7285
7286         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7287
7288 2003-08-26  Martin Baulig  <martin@ximian.com>
7289
7290         * pedump.c (main): Call mono_metadata_init(),
7291         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7292         and mono_loader_init().
7293
7294 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7295
7296         * loader.h: Add missing include to fix build.
7297
7298         * image.h: mono_image_load_references is no more.
7299
7300         * assembly.c: Reworked assembly loading to make it really thread safe.
7301         After these changes, the assembly returned by mono_assembly_open is
7302         fully initialized, i.e. all its references assemblies are loaded.
7303
7304         * assembly.c (mono_image_load_references): Renamed to 
7305         mono_assembly_load_references, and made private, since clients no
7306         longer need to call it.
7307
7308         * class.c: Removed calls to mono_assembly_load_references, since it was
7309         a source of deadlocks.
7310
7311         * loader.h loader.c class.h class.c: Protect data structures using a 
7312         new lock, the loader lock.
7313
7314         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7315         GPtrArrays only when needed.
7316
7317         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7318         into empty structures by mcs. Fixes pinvoke7.cs.
7319         
7320         * domain.c (mono_init): Call a new initialization function.
7321
7322         * appdomain.c (mono_runtime_init): Call the new initializer function
7323         of the marshal module.
7324
7325         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7326         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7327
7328         * marshal.h marshal.c: Added locks around the wrapper caches to make
7329         this module thread safe.
7330
7331         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7332         this argument. Fixes pinvoke1.exe.
7333
7334 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7335
7336         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7337         enumeration of values. Removed fields to store remote call output values in
7338         MonoAsyncResult. Not needed any more.
7339         * object.c: Initialize call_type and async_result fields in mono_message_init.
7340         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7341         dispatching the message.
7342         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7343         async call to finish. To do it use a message with EndInvoke call type.
7344
7345 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7346
7347         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7348         determines whenever a method has marshalling info.
7349
7350 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7351
7352         * assembly.c: fix the build on windows.
7353
7354 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7355
7356         * object.cs: Fixed bug #47785.
7357
7358 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7359
7360         * string-icalls.c (StringReplace): If their are no occurances of
7361         the old string found return a reference to the supplied
7362         string. This saves some memory and matches MS behavoir.
7363         
7364 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7365
7366         * socket-io.c: fixed compilation for systems that define AF_INET6
7367         and don't define SOL_IP/SOL_IPV6.
7368
7369 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7370
7371         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7372         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7373
7374         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7375
7376         * domain.c: Make this module thread safe.
7377
7378         * domain.c (mono_init): Call new initialization function.
7379
7380         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7381         reference types too. Fixes #38812.
7382
7383         * image.c (mono_image_init): Fixed warnings.
7384
7385         * class.c (mono_class_from_typeref): Handle assembly load failure
7386         correctly.
7387
7388         * appdomain.c (add_assemblies_to_domain): Handle the case when
7389         the references of an assembly are not yet loaded.
7390
7391         * metadata.c image.c assembly.c: Moved initialization of global
7392         variables to a separate function called at startup since lazy 
7393         initialization of these variables is not thread safe.
7394         
7395         * image.c assembly.c: Made this module thread safe by adding locks in 
7396         the appropriate places.
7397
7398         * domain.c (mono_init): Call the new initialization functions of the
7399         three modules.
7400
7401 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7402
7403         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7404           make a direct call. It is proxy's work to make the call asynchronous.
7405           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7406           the return values.
7407         * object.cs: mono_method_call_message_new(): read AsyncResult and
7408           state object from parameters list, if this info is requested.
7409         * object.h: Added fields to store remote call output values in
7410           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7411
7412 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7413
7414         * object.h: add needed fields to MonoThread.
7415         * threads.c, threads.h: allow registering a function to cleanup data
7416         allocated per thread by the JIT.
7417
7418 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7419
7420         * loader.h: portability fix by Bernie Solomon
7421         * <bernard@ugsolutions.com>.
7422
7423 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7424
7425         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7426         return a MonoArray. This simplifies the code and also ensures that
7427         the cache allways contains an object reference as a value.
7428
7429         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7430         function.
7431
7432 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7433
7434         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7435         fixes a problem with byte ordering when getting the address family for
7436         a socket.
7437
7438 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7439
7440         * .cvsignore: Added monosn.
7441
7442         * reflection.h reflection.c loader.c: Added support for parameter
7443         marshalling to dynamically created types. Fixes #47295.
7444
7445 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7446
7447         * rand.c: remove useless warnings.
7448
7449 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7450
7451         * class.c: implemented ldtoken for methods and fieldrefs.
7452
7453 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7454
7455         * threadpool.c: when mono_async_invoke was called, no one took care of
7456         monitoring the queue. So if the method invoked took some time and we
7457         got new async invoke requests after 500 ms (the thread created waited
7458         that long in WaitForSingleObject), the new async invoke was not called
7459         until the previous one finished.
7460
7461         This is fixed now. Thanks to Totte for helping with it.
7462
7463 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7464
7465         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7466
7467 2003-08-11  Martin Baulig  <martin@ximian.com>
7468
7469         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7470
7471 2003-08-06  Martin Baulig  <martin@ximian.com>
7472
7473         * mono-debug-debugger.c: Added support for static fields,
7474         properties and methods.
7475
7476 2003-08-06  Martin Baulig  <martin@ximian.com>
7477
7478         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7479         make this work for applications with multiple application domains.
7480
7481 2003-08-04  Martin Baulig  <martin@ximian.com>
7482
7483         * mono-debug-debugger.c: Completely reworked the type support; the
7484         most important thing is that we're now just using one single
7485         `MonoType' instance per type.
7486
7487 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7488
7489         * mono-endian.h, mono-endian.c, icall.c: Added icall
7490         ves_icall_System_Double_AssertEndianity to assert double word endianity
7491         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7492
7493 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7494
7495         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7496         support, icalls and fixes.
7497
7498 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7499
7500         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7501         classes that are a punctuation character in .NET is not the same a
7502         g_unichar_ispunct.
7503
7504 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7505
7506         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7507
7508 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7509
7510         * icall.c: Add new MemCopy internalcall.
7511         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7512         Simplified code; It is not necessary to handle all the cases here,
7513         as the C# code takes care of it.  Only handle the case of the name
7514         resource embedded into the assembly.
7515
7516         Changed signature to return the data pointer and the size of the
7517         data. 
7518
7519 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7520
7521         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7522         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7523
7524 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7525
7526         * socket-io.c: ignore EINTR error in select.
7527
7528 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7529
7530         * class.h, class.c: removed unused subclasses field in MonoClass.
7531
7532 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7533
7534         * icall.c: improve fix of get_base_definition(). If the parent class
7535           doesn't have the mehod, look at the parent of the parent.
7536         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7537           to check if a parameter is an in or out parameter
7538           (PARAM_ATTRIBUTE_IN is not set by default).
7539           mono_method_return_message_restore(): Use mono_class_value_size to
7540           get the size of a value type. mono_type_stack_size (parameterType)
7541           does not return the correct value if parameterType is byRef.
7542           mono_load_remote_field(), mono_load_remote_field_new(),
7543           mono_store_remote_field(), mono_store_remote_field_new():
7544           raise exception if the remote call returns an exception.
7545
7546 2003-07-28  Martin Baulig  <martin@ximian.com>
7547
7548         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7549         method.  This is a wrapper around mono_runtime_invoke() which
7550         boxes the instance object if neccessary.
7551
7552 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7553
7554         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7555         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7556
7557 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7558
7559         * icall.c: disable mcs bug workaround.
7560
7561 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7562
7563         * object.c (mono_runtime_class_init): Take the metadata_section
7564         mutex before obtaining the domain mutex.
7565
7566         * appdomain.h: Added definition of metadata_section mutex here. 
7567
7568         * object.c: define metadata_mutex here.
7569
7570 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7571
7572         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7573         fixed.
7574
7575 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7576
7577         * reflection.c: Fix bug #46669
7578
7579 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7580
7581         * exception.c:
7582         * exception.h:
7583         * icall.c:
7584         * object.h: fill in the type name for TypeLoadException.
7585
7586 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7587
7588         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7589         relationship between TypeBuilders while compiling corlib) and bug
7590         45993 (Array types returned from the runtime while compiling
7591         corlib were from the loaded corlib).
7592
7593 2003-07-22  Martin Baulig  <martin@ximian.com>
7594
7595         * mono-debug-debugger.c: Reworked the type support a bit more;
7596         distinguish between types and classes.
7597
7598 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7599
7600         * icall.c: add IsArrayImpl icall.
7601
7602 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7603
7604         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7605         initializing real_size only once. Also fix bug #46602.
7606
7607 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7608
7609         * object.c: Renamed mono_metadata_section to metadata_section.
7610
7611 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7612
7613         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7614           empty array if the type is an array. Fixed.
7615           ves_icall_MonoMethod_get_base_definition: if the base method
7616           is abstract, get the MethodInfo from the list of methods of
7617           the class.
7618         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7619           and it was 1-based. Fixed in mono_param_get_objects.
7620
7621 2003-07-20  Martin Baulig  <martin@ximian.com>
7622
7623         * mono-debug.h: Set version number to 31.
7624         (mono_debug_init): Added `MonoDomain *' argument.
7625
7626         * mono-debug-debugger.c: Reworked the type support; explicitly
7627         tell the debugger about builtin types; pass the `klass' address to
7628         the debugger.
7629
7630 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7631
7632         * image.c: Allow new metadata tables to be loaded without a
7633         warning. Also update the warning message to give the new constant value.
7634                 
7635 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7636
7637         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7638         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7639         array type representation changes.
7640
7641 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7642
7643         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7644         on Environment.Exit () call.
7645
7646 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7647
7648         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7649         requires a matching corlib.
7650
7651 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7652
7653         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7654           Committed again without the CRs.
7655         
7656 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7657
7658         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7659           getting it from the "this" socket instance. Did not work
7660           if the socket is a subclass of Socket.
7661           Also fixed bug #35371.
7662
7663 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7664
7665         * metadata.c: fixed size for TypedByRef.
7666         * loader.c: when searching for a method, consider the vararg amrker.
7667         * unicode.c, decimal.c: constify some arrays.
7668
7669 2003-07-15  Dick Porter  <dick@ximian.com>
7670
7671         * socket-io.c: Fixed compilation for gcc < 3.2.
7672
7673         Fixed compilation for machines that don't have AF_INET6 (thanks to
7674         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7675
7676         Fixed compile warnings.
7677         
7678         Fixed formatting and line endings.
7679
7680 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7681
7682         * socket-io.h:
7683         * socket-io.c: Added IPv6 support.
7684
7685 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7686
7687         * class.c (mono_class_is_assignable_from): New function to implement
7688         the is_assignable_from logic. Used by mono_object_isinst, 
7689         Type::IsAssignableFrom () and the interpreter.
7690
7691         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7692         Object, even interfaces.
7693         
7694         * object.c (mono_object_isinst): Implement in terms of 
7695         is_assignable_from.
7696
7697         * icall.c (ves_icall_type_is_assignable_from): New icall.
7698
7699 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7700
7701         * domain.c (foreach_domain): fix compiler warning.
7702
7703 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7704
7705         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7706         not available on all plattforms
7707
7708 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7709
7710         * image.h image.c: Store the metadata version string in MonoImage.
7711         * icall.c: New icall to retrieve the image version.
7712         * reflection.c (create_dynamic_image): Fill in the image version field
7713         * reflection.c (build_compressed_metadata): Use the image version
7714         from the image structure.
7715
7716 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7717
7718         * appdomain.c: modified comment.
7719         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7720         That will be its last iteration when mono_gc_cleanup is called from
7721         mono_runtime_cleanup and before the domain is unloaded.
7722
7723         Fixes bug #45962.
7724
7725 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7726
7727         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7728         attributes.
7729
7730 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7731
7732         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7733         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7734         Bernie Solomon <bernard@ugsolutions.com>.
7735
7736 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7737
7738         * object.c, object.h: provide mono_object_new_fast() for faster
7739         allocation in some special cases.
7740
7741 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7742
7743         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7744         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7745
7746 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7747
7748         * threadpool.c: fix leaks.
7749
7750 2003-07-01  Dick Porter  <dick@ximian.com>
7751
7752         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7753         using MonoGHashTables.  Fixes threadpool bug posted to list.
7754
7755 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7756
7757         * image.h, image.c: added support to load an assembly from a byte array.
7758         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7759         assembly bundle support.
7760
7761 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7762
7763         * threadpool.c (mono_thread_pool_add): keep a reference to the
7764         AsyncResult to prevent GC
7765
7766 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7767
7768         * class.c: leak fix.
7769
7770 2003-06-25  Dick Porter  <dick@ximian.com>
7771
7772         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7773         for the async object, the WaitHandle object will close the handle.
7774         Fixes bug 45321.
7775
7776 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7777
7778         * class.c: in mono_array_class_get (), lookup from the hash with the
7779         same type we insert: this works around a bug in
7780         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7781         lluis. The real fix will have to wait for after the release.
7782
7783 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7784
7785         * icall.c: fix memory leak when getting type members.
7786
7787 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7788
7789         * reflection.c: added more pubtoken special cases.
7790
7791 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7792
7793         * class.c: handle field offset correctly when class size
7794         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7795
7796 2003-06-20  Martin Baulig  <martin@ximian.com>
7797
7798         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7799         *image' field.
7800
7801 2003-06-20  Martin Baulig  <martin@ximian.com>
7802
7803         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7804
7805 2003-06-20  Martin Baulig  <martin@ximian.com>
7806
7807         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7808         just distinguish between variables in registers and variables at
7809         an offset relative to a register.
7810
7811 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7812
7813         * icall.c: #ifdef out latest changes until mcs is fixed.
7814
7815 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7816
7817         * icall.c: return members in metadata order.
7818
7819 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7820
7821         * icall.c: avoid infinite loop in GetTimeZoneData.
7822
7823 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7824
7825         * icall.c: added Marshal.Prelink/All icalls.
7826
7827 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7828
7829         * object.c, object.h: fix warnings and do some overflow checking
7830         when creating arrays.
7831
7832 2003-06-17  Dick Porter  <dick@ximian.com>
7833
7834         * file-io.h:
7835         * file-io.c: File attributes need to be tweaked slightly when
7836         passed from the managed to the w32 world.
7837
7838 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7839         * profiler.h profiler-private.h profiler.c: Rework last patch
7840         based on suggestion by Paolo.
7841         
7842 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7843
7844         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7845         instruction level coverage data collection.
7846         * profiler.h profiler.c (: Added new callback function which can be
7847         used by the profiler to limit which functions should have coverage
7848         instrumentation.
7849         * profiler.c (mono_profiler_load): Call g_module_build_path to
7850         generate the file name of the profiler library.
7851
7852 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7853
7854         * profiler.c, profiler.h, profiler-private.h: added basic block 
7855         coverage profiling API.
7856
7857 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7858
7859         * reflection.c (mono_reflection_create_runtime_class): Add support
7860         for events in dynamically generated code.
7861
7862         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7863         not allocated.
7864
7865 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7866
7867         * icall.c: when getting timezone info, return reasonable values if we
7868         can't get the actual data.
7869
7870 2003-06-14  Dick Porter  <dick@ximian.com>
7871
7872         * threads.c (start_wrapper): Remove the reference to the thread
7873         object in the TLS data, so the thread object can be finalized.
7874         This won't be reached if the thread threw an uncaught exception,
7875         so those thread handles will stay referenced :-( (This is due to
7876         missing support for scanning thread-specific data in the Boehm GC
7877         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7878
7879 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7880
7881         * reflection.c: ensure streams and tables are first allocated with
7882         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7883
7884 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7885
7886         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7887
7888 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7889
7890         * reflection.c (mono_reflection_create_runtime_class): Add support for
7891         properties to dynamically created classes.
7892         * reflection.c: Fix a few places where non-MonoObjects were inserted
7893         into the tokens hashtable.
7894
7895 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7896
7897         * object.c: some support to handle out of memory exceptions.
7898
7899 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7900
7901         * marshal.c (mono_marshal_get_native_wrapper): support reference
7902         return types
7903
7904 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7905
7906         * object.h, object.c: more portability stuff from Bernie Solomon.
7907         Unexport mono_object_allocate(). Added mono_object_unbox ().
7908         Set exitcode when an unhandled exception is thrown.
7909
7910 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7911
7912         * marshal.c (mono_marshal_get_native_wrapper): use custom
7913         marshaler for return types.
7914
7915 2003-06-10  Dick Porter  <dick@ximian.com>
7916
7917         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7918         ip_mreq is available
7919
7920 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7921
7922         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7923         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7924         by Bernie Solomon <bernard@ugsolutions.com>.
7925
7926 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7927
7928         * gc.c (mono_gc_init): Avoid error message on shutdown when
7929         GC_DONT_GC=1 is used.
7930
7931         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7932         New icall to return the GUID of a module.
7933
7934 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7935
7936         * class.c: ensure instance size always includes the parent's size
7937         even whem class size is set explicitly (fixes bug#44294).
7938
7939 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7940
7941         * profiler.h, profiler.c: made the simple profiler thread-safe,
7942         get more accurate timing info. Allow the loading of an
7943         externally-developed profiler module.
7944
7945 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7946
7947         * marshal.c (mono_marshal_get_native_wrapper): improved
7948         class/byref arguments.
7949         (mono_marshal_get_native_wrapper): better string marshaling support.
7950
7951 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7952
7953         * class.c: ensure .pack and .size are handled correctly and
7954         simplified layout of static fields.
7955
7956 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7957
7958         * appdomain.c
7959         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7960
7961         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7962         current directory (fix bug 44008)
7963
7964 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7965
7966         * marshal.c (mono_marshal_get_native_wrapper): started support for
7967         custom marshalers.
7968         (mono_delegate_to_ftnptr): consider marshalling specifications
7969
7970 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7971
7972         * reflection.c, reflection.h: emit custom marshal info.
7973
7974 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7975
7976         * object.c: free the GError.
7977         * icall.c: added CloseEvent_internal.
7978         * threads.[ch]:
7979         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7980         call.
7981
7982 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7983
7984         * loader.c (mono_method_get_signature): Add support for dynamic
7985         assemblies.
7986
7987 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7988
7989         * reflection.c: fixed bug #43905.
7990
7991 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7992
7993         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7994         handling TypedReference and ArgIterator.
7995         * loader.c, loader.h: added function to get signature at call site.
7996
7997 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7998
7999         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
8000         data readonly. Buglets and warning fixes. Some MethodSpec support.
8001
8002 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
8003
8004         * class.h, class.c, object.c: remove relative numbering support.
8005
8006 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
8007
8008         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
8009         free the string, until we get a chance to fix Gtk#
8010
8011 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8012
8013         * marshal.c: revert last patch.
8014
8015 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
8016
8017         * icall.c: updates for new mono_class_vtable() not calling
8018         the type constructor anymore.
8019
8020 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8021
8022         * object.h, object.c: separate vtable creation from type
8023         initialization. Make running the .cctor thread safe.
8024
8025 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
8026
8027         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
8028
8029 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
8030
8031         * loader.c (mono_get_method): consider calling convention
8032
8033 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
8034
8035         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
8036         to return the invisible global type for a module.
8037
8038         * reflection.c (mono_image_build_metadata): Emit global fields too.
8039
8040 2003-05-20  Peter Williams  <peterw@ximian.com>
8041
8042         * loader.c (mono_lookup_internal_call): Add a few newlines.
8043
8044 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
8045
8046         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
8047         literal strings.
8048
8049         * appdomain.c (set_domain_search_path): Recalculate search path when
8050         AppDomainSetup.PrivateBinPath changes.
8051
8052         * object.c (mono_class_compute_gc_descriptor): It turns out some
8053         parts of the class libs (like System.Thread) holds pointers to
8054         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
8055         to treat native int a pointer type here.
8056         
8057 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
8058
8059         * appdomain.h, domain.c: add hashtable for jump target resolution.
8060
8061 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
8062
8063         * reflection.h reflection.c icall.c: Added new icalls 
8064         GetManifestResourceInfoInternal, GetModulesInternal and support
8065         infrastructure.
8066
8067 2003-05-16  Dick Porter  <dick@ximian.com>
8068
8069         * icall.c:
8070         * file-io.h:
8071         * file-io.c: Implement System.IO.MonoIO::GetTempPath
8072
8073 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
8074
8075         * object.c: mono_store_remote_field: little fix to previous patch.
8076
8077 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
8078
8079         * class.c: add constructors to array classes.
8080         * icall.c: special case array construction for InternalInvoke (),
8081
8082 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
8083
8084         * class.h class.c reflection.c object.c: Added support for field
8085         defaults in dynamically generated classes.
8086
8087 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
8088
8089         * reflection.c: properly encode charset for ddlimport.
8090
8091 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
8092
8093         * threads.c: allow compiling without GC.
8094
8095 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
8096
8097         * appdomain.h, object.c, object.h, threads.c, threads.h: added
8098         handling of thread static data.
8099
8100 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
8101
8102         * reflection.h, reflection.c: added mono_custom_attrs_free ().
8103
8104 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
8105
8106         * class.c (mono_array_class_get): always set the serializable flags
8107         (mono_array_class_get): always set the SEALED attribute for array types
8108
8109 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
8110
8111         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
8112         attributes (fix for bug 42021).
8113
8114 2003-05-12  Dick Porter  <dick@ximian.com>
8115
8116         * gc.c: Don't run finalizers when the finalizer thread is
8117         finishing up, because the default domain has already been
8118         destroyed.
8119
8120 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
8121
8122         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
8123         value is null, we should throw an exception.   This is slightly
8124         different than the other conventions used for the constructor.
8125
8126 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8127
8128         * socket-io.c: fixed windows build.
8129
8130 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8131
8132         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
8133
8134 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
8135
8136         * object.c (mono_string_new_wrapper): Compatibility fix for MS
8137         compilers.
8138
8139 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
8140
8141         * class.c (mono_class_layout_fields): Add experimental GC aware
8142         auto layout facility. Requires class library changes to work correctly.
8143
8144         (mono_class_setup_vtable): Avoid overriding explicit interface
8145         method implementations. Fixes iface3.exe test.
8146
8147         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
8148         object reference.
8149         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
8150         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
8151
8152         * metadata.h: Add new type classification macro which determines
8153         whenever the type holds an object reference.
8154
8155 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
8156
8157         * marshal.c (mono_marshal_get_native_wrapper): cleanups
8158
8159 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
8160
8161         * gc.c (finalizer_thread): Work around a GC bug.
8162
8163 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
8164
8165         * marshal.c (emit_struct_conv): allow unions
8166
8167         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
8168
8169 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
8170
8171         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
8172
8173 2003-05-06  Martin Baulig  <martin@ximian.com>
8174
8175         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
8176
8177 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8178
8179         * socket-io.c:
8180         (Select_internal): allow NULLs, don't create arrays if not needed.
8181         Coupled with Socket.cs changes.
8182
8183         * threadpool.c:
8184         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
8185         register a finalizer for it that will close the semaphore handle. This
8186         fixes the leak and make Lupus' test run with > 4080 loops.
8187
8188 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
8189
8190         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
8191         Jerome Laban (bug #42287)
8192
8193 2003-05-02  Martin Baulig  <martin@ximian.com>
8194
8195         * debug-mono-symfile.h
8196         (MonoSymbolFile): Moved declaration into mono-debug.h.
8197         (MonoDebugMethodJitInfo): Likewise.
8198         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
8199         argument.
8200         (_mono_debug_address_from_il_offset): Take a
8201         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
8202
8203         * mono-debug.h
8204         (MonoDebugDomainData): New struct.
8205         (mono_debug_get_domain_data): New function.
8206         (mono_debug_add_method): Take an additional `MonoDomain *'
8207         argument.
8208         (mono_debug_source_location_from_address): Likewise.
8209         (mono_debug_il_offset_from_address): Likewise.
8210         (mono_debug_address_from_il_offset): Likewise.
8211
8212 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
8213
8214         * reflection.c: one more check for null type in custom attrs.
8215
8216 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8217
8218         * reflection.c: avoid warning (comparison is always false due to limited
8219         range of data type).
8220
8221 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8222
8223         * icall.c: throw an exception in Type.GetField if the argument 'name'
8224         is NULL.
8225
8226 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
8227
8228         * reflection.c: fixed handling of enums in named arguments to custom
8229         attributes (bug #42123).
8230
8231 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
8232
8233         * reflection.c: use the right array element type and handle
8234         a null for a Type argument, too.
8235
8236 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
8237
8238         * reflection.c: handle arrays as arguments to custom attributes.
8239
8240 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
8241
8242         * reflection.c: handle a string value in a custom attr
8243         ctor that takes an object.
8244
8245 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8246
8247         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8248         (fix bug #42063)
8249
8250 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8251
8252         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8253
8254 2003-04-27  Martin Baulig  <martin@ximian.com>
8255
8256         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8257         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8258         MONO_DEBUGGER_EVENT_BREAKPOINT.
8259         (mono_breakpoint_trampoline_code): Removed.
8260         (mono_debugger_event_handler): The last argument is now a
8261         `guint32'.
8262         (mono_debugger_insert_breakpoint_full): Removed the
8263         `use_trampoline' argument.
8264         (mono_debugger_method_has_breakpoint): Likewise.
8265         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8266         mono_debugger_breakpoint_callback(); take the method and
8267         breakpoint number as arguments.
8268
8269 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8270
8271         * metadata.c: fix off by one when loading parameters attributes.
8272
8273 2003-04-24  Martin Baulig  <martin@ximian.com>
8274
8275         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8276
8277 2003-04-24  Martin Baulig  <martin@ximian.com>
8278
8279         * mono-debug-debugger.c: Moved all code which interacts with the
8280         Mono Debugger here.
8281
8282         * debug-mono-symfile.c: This code now just deals with the symbol
8283         file itself, the debugger code is now in mono-debug-debugger.c.
8284
8285 2003-04-23  Martin Baulig  <martin@ximian.com>
8286
8287         * mono-debug.c (mono_debug_source_location_from_il_offset):
8288         New method; like mono_debug_source_location_from_address(), but
8289         takes an IL offset instead of a machine address.
8290
8291 2003-04-23  Martin Baulig  <martin@ximian.com>
8292
8293         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8294         `line' field; this is now computed by the debugger.
8295
8296 2003-04-23  Martin Baulig  <martin@ximian.com>
8297
8298         * mono-debug.[ch]: New files.  This is the new debugging interface.
8299
8300         * mono-debug-debugger.[ch]: New files.  Moved all code which
8301         interacts with the Mono Debugger here.
8302
8303 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8304
8305         * domain.c (mono_init): initialize mono_defaults.monitor_class
8306
8307 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8308
8309         * reflection.c (method_encode_code): Add a spicy exception to help
8310         future compiler authors.
8311
8312 2003-04-21  Martin Baulig  <martin@ximian.com>
8313
8314         * icall.c
8315         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8316         Make this work with relative pathnames; g_filename_to_uri() needs
8317         an absolute filename.
8318
8319 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8320
8321         * icall.c: Track name changes in Object and ValueType.
8322
8323 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8324
8325         * metadata.c (mono_type_stack_size): size should be a multiple of
8326         sizeof (gpointer)
8327
8328 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8329
8330         * gc.c:
8331         (internal_domain_finalize): moved into mono_domain_finalize. No need
8332         to create another thread because the finalizers will be run in the
8333         finalizer thread.
8334         
8335         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8336         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8337         to be run (MS does this too).
8338
8339 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8340
8341         * object.c (mono_class_compute_gc_descriptor): Update comment.
8342
8343         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8344
8345         * image.h: Add synchronized wrapper cache.
8346
8347         * image.c (do_mono_image_open): Initialize cache.
8348
8349         * reflection.c (create_dynamic_mono_image): Initialize cache.
8350
8351 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8352
8353         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8354         ves_icall_System_Buffer_ByteLengthInternal.
8355
8356 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8357
8358         * reflection.c: setup klass->nested_in earlier. Allow
8359         a dash in the assembly name.
8360
8361 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8362
8363         * metadata.c (mono_type_to_unmanaged): dont access
8364         type->data.klass for MONO_TYPE_OBJECT
8365         (mono_type_to_unmanaged): consider System.Delegate class
8366
8367 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8368
8369         * class.c: just setup supertypes in the proper place instead of
8370         initializing the full element class for arrays.
8371
8372 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8373
8374         * class.c: ensure the element class of arrays is initialized.
8375         Setup the supertype info for array classes, too.
8376
8377 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8378
8379         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8380
8381 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8382
8383         * Makefile.am: re-added -m option when running cygpath. This way,
8384         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8385         separator.
8386         * mono-config.c: same codepath for locating mono config file for WIN32
8387         and the rest.
8388         * assembly.c: if mono_assembly_setrootdir is called, don't override
8389         the value set.
8390
8391 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8392
8393         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8394         MONO_ASSEMBLIES variable.
8395
8396 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8397
8398         * icall.c: added Assembly::GetNamespaces() icall.
8399
8400 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8401
8402         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8403
8404 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8405
8406         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8407         * object.c: fixed bug in the construction of vtable for proxies
8408
8409 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8410
8411         * object.c (mono_array_new): Mark mono_array_new as an icall.
8412
8413 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8414
8415         * class.c: fixed test for public method when overriding interfaces.
8416         Closes bug #40970.
8417
8418 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8419
8420         * appdomain.h, domain.c: added mono_domain_foreach() to
8421         be able to access the currently loaded appdomains.
8422         * object.c: make string interning work across sppdomains.
8423         Mark some functions for use as icalls.
8424
8425 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8426
8427         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8428
8429         * reflection.h reflection.c: Allocate long living data using 
8430         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8431
8432         * reflection.c: Double the allocation size in streams instead of
8433         increasing it, to prevent unneccesary copying on large assemblies.
8434         
8435         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8436         creation if the assembly does not have the Run flag set.
8437
8438 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8439
8440         * class.h: avoid the C++ keywords in header files (Jerome Laban
8441         spotted and fixed this).
8442
8443 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8444
8445         * object.c:
8446         (mono_unhandled_exception): fill in the arguments for the
8447         UnhandledException event. Only trigger that event for the default
8448         domain (as MS does).
8449
8450 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8451
8452         * object.c: Improve typed allocation stuff based on suggestions from
8453         Paolo. Also turn it on if the GC library supports it.
8454
8455 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8456
8457         * object.c object.h class.h: Added experimental typed allocation
8458         facility using the interfaces in gc_gcj.h.
8459
8460         * os/gc_wrapper.h: Added new include files.
8461         
8462 2003-04-03  Martin Baulig  <martin@ximian.com>
8463
8464         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8465         which is not yet enabled by default.
8466
8467         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8468         functions.
8469         (mono_gc_lock, mono_gc_unlock): New static functions.
8470
8471         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8472         functions; stop/start the world for the garbage collector.  This
8473         is using the windows API; we need to complete the SuspendThread()/
8474         ResumeThread() implementation in the io-layer to make this work on Unix.
8475         (mono_gc_push_all_stacks): New public function; tells the garbage
8476         collector about the stack pointers from all managed threads.
8477
8478 2003-04-03  Martin Baulig  <martin@ximian.com>
8479
8480         * object.h (MonoThread): Added `gpointer stack_ptr'.
8481
8482         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8483
8484 2003-04-03  Martin Baulig  <martin@ximian.com>
8485
8486         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8487
8488 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8489
8490         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8491         field.last.
8492
8493 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8494
8495         * loader.c (mono_lookup_internal_call): Report the corlib that is
8496         out of sync.
8497
8498 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8499
8500         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8501         System.DBNull (it's class not valuetype).
8502
8503 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8504
8505         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8506         if the array method was already assigned a token (fixes bug#40646).
8507
8508 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8509
8510         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8511         if no assembly is given.
8512
8513 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8514
8515         * metadata.h: Added the new tables.
8516
8517         * row-indexes.h: Added definitions for new tables.
8518
8519         * metadata.c: Add schemas for new tables, and add support for
8520         computing the sizes of them.
8521
8522         * class.c: Update for handling the new type cases.
8523
8524 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8525
8526         * metadata.h (MONO_TYPE_IS_VOID): new macro
8527
8528 2003-03-31  Martin Baulig  <martin@ximian.com>
8529
8530         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8531
8532         * threads.c (mono_thread_new_init): Call `thread_created' in the
8533         mono_thread_callbacks.
8534
8535 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8536
8537         * loader.h: added marshalbyrefobject_class to mono_defaults
8538         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8539         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8540           generation of output parameters.
8541           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8542         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8543           contextbound and the target object belongs to the context of the caller.
8544         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8545         * object.c: Implemented support for interfaces and abstract classes
8546           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8547           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8548
8549 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8550
8551         * class.h class.c (mono_class_is_subclass_of): New function.
8552         
8553         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8554         routines for most common case (calls from ArrayList::ToArray).
8555
8556         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8557         routine so programs which call Environment::Exit() can be profiled.
8558
8559         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8560         Added MONO_ARCH_SAVE_REGS.
8561
8562         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8563
8564 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8565
8566         * blob.h: Add a couple of new MonoType types definitions.
8567
8568         * tabledefs.h: Add a couple of new call convs.
8569
8570 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8571
8572         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8573         the layout of the class.
8574
8575         * reflection.c (alloc_table): double the size on overflow to avoid
8576         unnecessary copying.
8577
8578         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8579         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8580         null so it can be garbage collected.
8581         
8582 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8583
8584         * reflection.c (mono_reflection_get_type): Return the resolved type
8585         only if it is in the assembly we searched.
8586
8587         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8588
8589         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8590         method.
8591
8592 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8593
8594         * appdomain.c:
8595         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8596         the right one is 'file:///blah', but MS allows it.
8597         * assembly.c:
8598         (mono_assembly_open): allow 'file://blah'
8599
8600         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8601
8602 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8603
8604         * socket-io.c: fixes bug #40310.
8605
8606 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8607
8608         * reflection.c (mono_reflection_parse_type): handle deeply nested
8609         types correctly.
8610
8611         * reflection.c (mono_image_create_token): Use unique token values
8612         since they will be put into a hash table.
8613
8614         * class.c (mono_class_setup_vtable): If a method occurs in more than
8615         one place in the vtable, and it gets overriden, then change the
8616         other occurances too.
8617
8618         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8619         object as return type.
8620
8621 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8622
8623         * icall.c: Deleted "ToString" implementation for double and float
8624         because they are full implemented in managed code.
8625
8626 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8627
8628         * reflection.c, reflection.h: implemented and exported functions
8629         to retrieve info about custom attributes.
8630
8631 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8632
8633         * appdomain.c: moved Uri handling to assembly.c
8634         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8635         work when using a file Uri in *nix and windows.
8636
8637         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8638         GetReferencedAssemblies.
8639
8640 2003-03-18  Dick Porter  <dick@ximian.com>
8641
8642         * icall.c: Rename a couple of internal calls
8643
8644         * threads.c: Set the thread state to Stopped when a thread exits.
8645         Fixes bug 39377.
8646
8647 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8648
8649         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8650         New icall.
8651
8652         * object.c (mono_class_vtable): fix warning.
8653
8654 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8655
8656         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8657
8658         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8659         memory.
8660         (method_encode_clauses): Create exception info structures in the right
8661         order.
8662         (mono_reflection_setup_internal_class): Initialize supertypes field.
8663
8664         * class.c object.c: Handle interfaces which implement other interfaces 
8665         correctly.
8666
8667         * class.h class.c: Move the supertypes array initialization code into 
8668         a separate function so it can be used for dynamic types too. Also call
8669         it earlier, in mono_class_init(), since it can be used before the
8670         type is initialized.
8671
8672 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8673
8674         * Makefile.am:
8675         * assembly.c:
8676         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8677
8678         * appdomain.c:
8679         * appdomain.h:
8680         * marshal.c:
8681         * object.c: remove warnings.
8682
8683 2003-03-13  Martin Baulig  <martin@ximian.com>
8684
8685         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8686         (MonoDebugLexicalBlockEntry): New types.
8687
8688         * debug-mono-symfile.c
8689         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8690
8691 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8692
8693         * process.c: ret can be any non-zero value accroding to MS doc.
8694
8695 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8696
8697         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8698         fixing a warning for a miss-used prototype, would have cause
8699         random memory corruption.
8700
8701 2003-03-07  Martin Baulig  <martin@ximian.com>
8702
8703         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8704         getting really annoying ....
8705
8706 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8707
8708         * reflection.c (fixup_method): added support for array methods.
8709
8710 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8711
8712         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8713         (pointed out by Michael Adams).
8714
8715 2003-03-04  Dick Porter  <dick@ximian.com>
8716
8717         * icall.c: Temporarily reverted the Double and Single ToString()
8718         change, because it broke nunit.
8719
8720 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8721
8722         * object.h, threads.h: make include files compatible with C++
8723         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8724
8725 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8726
8727         * icall.c: Erased ToString helper functions for Double and Single.
8728         Now, that implementations ar all in managed code (Double and Single
8729         Formatters).
8730
8731 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8732
8733         * appdomain.c: Added method for initializing the default context of
8734         a domain. Added internal call for getting the default context.
8735         * appdomain.h: Added context variable in MonoDomain struct.
8736         * domain.c: mono_domain_set also sets the default context of the domain
8737         * icall.c: Mapped internal method InternalGetDefaultContext.
8738         * object.c: mono_object_get_virtual_method returns always a remoting
8739         wrapper if the object is a transparent proxy.
8740         mono_runtime_invoke_array: when creating an object by calling the
8741         constructor, if the created object is a proxy, then the constructor should
8742         be called using the a remoting wrapper.
8743
8744 2003-03-03  Dick Porter  <dick@ximian.com>
8745
8746         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8747         variable so it compiles on solaris.  Problem spotted by
8748         Christopher Taylor <ct@cs.clemson.edu>
8749
8750 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8751
8752         * appdomain.c:
8753         (get_info_from_assembly_name): don't leak value.
8754
8755         * icall.c:
8756         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8757         result.
8758
8759 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8760
8761         * assembly.c: export mono_image_load_references ().
8762         * class.c: handle function pointers. mono_class_from_name() now
8763         supports nested type names directly.
8764
8765 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8766
8767         * reflection.h reflection.c: Encode already created dynamic methods 
8768         and fields correctly as a DEF instead of a REF.
8769
8770         * reflection.c: Get rid of the force_ref argument to 
8771         mono_image_typedef_or_ref since it was wrong in the first place.
8772
8773         * string-icalls.c: add error checking to string constructors according
8774         to the MSDN docs.
8775
8776         * reflection.c: Emit types in the order their TypeBuilders were 
8777         created. Previously, a new table index was assigned to each type before
8778         the tables were emitted. This was wrong because the signature blob
8779         might already refer to a type by its original table index.
8780
8781 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8782
8783         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8784         change.
8785         
8786 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8787
8788         * Makefile.am: make assemblies dir have \ instead of / on windows.
8789
8790 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8791
8792         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8793         iterate over the NESTEDCLASS table using a linear search since the
8794         table is not guaranteed to be sorted by the secondary key.
8795
8796         * class.c (mono_class_create_from_typedef): fixed up call to
8797         mono_metadata_nesting_typedef.
8798         
8799 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8800
8801         * marshal.c (mono_string_to_byvalstr): clear the memory as
8802         suggested by Jerome Laban <jlaban@wanadoo.fr>
8803
8804 2003-02-26  Dick Porter  <dick@ximian.com>
8805
8806         * process.c: Cope with padding in .rsrc blocks
8807
8808 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8809
8810         * metadata.h: reverted the filter_len change, it breaks reflection
8811         
8812 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8813
8814         * metadata.h: added a new field to store the filter_len
8815         
8816
8817 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8818
8819         * reflection.c: handle custom attributes for types and members
8820         created with Reflection.Emit (bug#38422).
8821
8822 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8823
8824         * reflection.c: define RTSpecialName automatically for constructors for
8825         compatibility with MS.NET.
8826
8827         * reflection.c (mono_reflection_create_runtime_class): initialize
8828         nested_in field of dynamically created classes.
8829
8830 2003-02-22  Martin Baulig  <martin@ximian.com>
8831
8832         * debug-mono-symfile.h: Incremented version number.
8833
8834 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8835
8836         * object.h icall.c process.c: fix warnings.
8837
8838 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8839
8840         * appdomain.h appdomain.c:
8841         (mono_domain_try_type_resolve): split the 
8842         name_or_tb argument into a name and a tb argument.
8843         (mono_domain_has_type_resolve): new function to check whenever the
8844         application has registered a TypeResolve event handler.
8845         
8846         * icall.c reflection.h reflection.c: move the type resolve logic into
8847         mono_reflection_get_type () so it will be invoked when 
8848         Assembly::GetType () is called.
8849
8850         * reflection.c:
8851         (mono_reflection_get_type): renamed to get_type_internal.
8852         (mono_reflection_get_type): fixed type name generation so it works 
8853         for nested types too.
8854         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8855         costly type name generation if there is no resolve event handler.
8856
8857 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8858
8859         * class.c, image.c: load exported types from file references.
8860
8861 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8862
8863         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8864           used to cache the managed methods used to create proxies and make 
8865           remote invocation of methods.
8866         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8867           to be remotely created.
8868         * object.c: Modified the method mono_class_vtable(). It now initializes 
8869           the remote flag of the vtable. Modified mono_object_new_specific(), 
8870           so now it checks the remote flag.
8871         * icall.c: Added a couple of internal methods, one for enabling instance 
8872           creation interception for a type, and one for creating objects bypassing
8873           the remote check.
8874
8875 2003-02-18  Martin Baulig  <martin@ximian.com>
8876
8877         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8878         New interncall to get a method's metadata token.
8879
8880         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8881         New interncall for the debugger.
8882
8883 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8884
8885         * class.c (mono_class_setup_vtable): allocate supertype array
8886
8887 2003-02-18  Martin Baulig  <martin@ximian.com>
8888
8889         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8890
8891 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8892
8893         * reflection.c:
8894         (assembly_name_to_aname): jump over unknown properties (i've found
8895         something like: 'type, assembly, version=xxx, custom=null, public...',
8896         so now will ignore custom=null and still get the rest of the values).
8897
8898 2003-02-17  Dick Porter  <dick@ximian.com>
8899
8900         * threads.c: Have Thread.Start() wait for a semaphore to signal
8901         that the thread has set up all its local data.  This fixes bug
8902         34323, where Abort() raced the new thread's TLS data.
8903
8904         Also removes the handle_store() call from start_wrapper, because
8905         threads are now always created suspended and there is no longer a
8906         race between the parent and child threads to store the info.
8907
8908 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8909
8910         * image.c: explain the #- heap issue in a message, hopefully
8911         avoiding FAQs on mono-list.
8912
8913 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8914
8915         * icall.c:
8916         (GetEntryAssembly): if the domain has not invoked
8917         AppDomain.ExecuteAssembly yet, return the assembly of the default
8918         AppDomain.
8919
8920 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8921
8922         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8923
8924 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8925
8926         * metadata.c, reflection.c: simple speedup to type hash
8927         and equals code.
8928
8929 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8930
8931         * image.c, image.h, class.c, assembly.c: move module loading
8932         to MonoImage. When loading metadata, consider alignemnet from
8933         the start of metadata, not from the metadata address in memory.
8934
8935 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8936
8937         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8938         AssemblyBuilder objects. Factored out custom attribute creation into
8939         a separate function.
8940         (create_custom_attr): new function to create custom attributes.
8941
8942 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8943
8944         * Makefile.am: Got tired of typing the full pathname to pedump.
8945         Until there is another option, am installing this.
8946
8947 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8948
8949         * class.c (class_compute_field_layout): always set field->parent 
8950         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8951
8952 2003-02-11  Dick Porter  <dick@ximian.com>
8953
8954         * threads-types.h:
8955         * monitor.c: Rewrote Monitor, making lock much faster and
8956         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8957         creates them as needed.
8958
8959         * exception.c: Added SynchronizationLockException
8960
8961         * threads.c: Deleted old Monitor implementation.  The new one is
8962         in a new file.
8963
8964 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8965
8966         * class.c: handled TypedReference type code. Set the correct size for
8967         class data. Setup interface_offsets for interface classes, too.
8968
8969 2003-02-09  Martin Baulig  <martin@ximian.com>
8970
8971         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8972
8973 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8974
8975         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8976         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8977         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8978         * verify.c: check for code that runs after the end of the method.
8979
8980 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8981
8982         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8983         "System.Math::Round2".
8984         * sysmath.h: Added Floor, Round and Round2 definitions.
8985         * sysmath.c: Modified certain functions that were not 100% compliant
8986         with MS.NET (math precision) and added the implementation of Floor,
8987         Round and Round2.
8988
8989 2003-02-07  Martin Baulig  <martin@ximian.com>
8990
8991         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8992
8993 2003-02-07  Martin Baulig  <martin@ximian.com>
8994
8995         * debug-mono-symfile.c: Reflected latest symwriter changes.
8996         (mono_debug_create_mono_symbol_file): Removed.
8997         (mono_debug_open_mono_symbol_file): Take an argument which
8998         specifies whether to create a dynamic symbol file.
8999
9000 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
9001
9002         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
9003
9004 2003-02-05  Martin Baulig  <martin@ximian.com>
9005
9006         * reflection.c (mono_image_build_metadata): Make this public,
9007         protect it against being called multiple times, don't create
9008         resources and don't build the compressed metadata here.
9009         (mono_image_create_pefile): Do this here.
9010
9011         * icall.c
9012         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
9013
9014 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9015
9016         * socket-io.c: fixed bug #36322.
9017
9018 2003-02-06  Piers Haken <piersh@friskit.com>
9019
9020         * appdomain.[ch]:
9021         * class.h:
9022         * debug-mono-symfile.c:
9023         * icall.c:
9024         * loader.c:
9025         * mono-config.c:
9026         * monosn.c:
9027         * reflection.c:
9028         * socket-io.c: warning cleanups
9029
9030 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
9031
9032         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
9033         function. works like remoting invoke, but does a check for the Proxy first.
9034
9035 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
9036
9037         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
9038
9039 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
9040
9041         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
9042         array of pointers.
9043         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
9044         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
9045
9046         * object.c (mono_store_remote_field_new): used by the new jit
9047         instead of mono_store_remote_field
9048         (mono_load_remote_field_new): used by the new jit
9049         instead of mono_load_remote_field
9050
9051 2003-02-05  Patrik Torstensson
9052
9053         * appdomain.c: changed unload to take the domain id instead
9054         of domain
9055         
9056         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
9057
9058
9059 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9060
9061         * appdomain.c: don't look for assemblies in ApplicationBase if
9062         PrivateBinPathProbe is set.
9063
9064 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9065
9066         * object.c: make the first argument in main_args contain the absolute
9067         path to the assembly. Fixes bug #37511.
9068
9069 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9070
9071         * icall.c: get correct UTC offset for countries not using daylight
9072         time saving. Fixes bug #30030.
9073
9074 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9075
9076         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
9077         and 1 are the family).
9078
9079 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
9080
9081         * icall.c (ves_icall_InternalExecute): removed wrong assertion
9082
9083         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
9084
9085 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
9086
9087         * reflection.c: added support for SignatureHelper tokens, which is
9088         needed by the Calli opcode.
9089
9090         * reflection.h: track changes to SignatureHelper class.
9091
9092         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
9093
9094 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9095
9096         * appdomain.c: fixed loading assemblies from PrivateBinPath.
9097
9098 2003-02-03  Patrik Torstensson
9099         * appdomain.[c|h], domain.c : 
9100          - Added support for getting a domain via domain id
9101          - Support for setting and getting domain from System.AppDomain 
9102            (used in cross appdomain channel)
9103          - Added support for get/set for a MonoAppContext on a thread 
9104            (Context class in System.Runtime.Remoting.Contexts),
9105          - Removed hack in Get/SetData and ExecuteAssembly.
9106         
9107         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
9108         the managed world to get control when a proxy is created.
9109
9110         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
9111         
9112 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
9113
9114         * icall.c
9115         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9116         Populate the codebase field as well.
9117
9118 2003-02-02  Martin Baulig  <martin@ximian.com>
9119
9120         * debug-mono-symfile.c
9121         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
9122         (mono_debug_symfile_add_method): Allow interncalls.
9123
9124 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9125
9126         * icall.c: throw parse exception if strtod fails or the string is empty.
9127
9128 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
9129
9130         * marshal.c: handle object type separately from defined
9131         class types.
9132
9133 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
9134
9135         * marshal.c: handle NATIVE_LPSTR for strings when it's
9136         explicitly specified.
9137
9138 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
9139
9140         * reflection.c, reflection.h, icall.c: setup the reflection
9141         handle cache for ModuleBuilders and AssemblyBuilders.
9142
9143 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
9144
9145         * reflection.c (reflection_methodbuilder_to_mono_method): set
9146         pinvoke flag
9147
9148 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9149
9150         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
9151
9152 2003-01-29  Dick Porter  <dick@ximian.com>
9153
9154         * threads.c: No need for the fake_thread kludge now that Thread
9155         doesn't run a class constructor
9156         
9157 2003-01-29  Dick Porter  <dick@ximian.com>
9158
9159         * threads.c: Use g_direct_hash instead of the rather bogus
9160         g_int_hash
9161
9162 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
9163
9164         * marshal.c (mono_marshal_get_native_wrapper): add check for null
9165         (fix pinvoke12.exe)
9166         (mono_marshal_get_struct_to_ptr): generate valid IL code
9167         (mono_marshal_get_ptr_to_struct): generate valid IL code
9168         (*): correctly set sig->pinvoke, we need to memdup the signature
9169         to do that
9170
9171 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
9172
9173         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
9174         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
9175
9176 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9177
9178         * profiler.c: provide more callers information.
9179
9180 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
9181
9182         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
9183
9184         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
9185
9186         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
9187
9188 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9189
9190         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
9191         exception instead of going into an infinite loop on dates which it 
9192         can't yet handle.
9193
9194         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
9195         out-of-range exception if needed.
9196
9197         * class.c (mono_class_setup_vtable): allow a virtual method to provide
9198         an implementation for an interface method and to override an inherited
9199         method at the same time. 
9200         Imagine a scenario when a virtual method is used to override a
9201         virtual abstract method in a parent class, and this same method 
9202         provides an implementation for an method inherited from an interface. 
9203         In this case, the interface resolution code will set im->slot, which 
9204         means that the virtual method override pass will skip this method 
9205         which means a pointer to the abstract method inherited from the parent
9206         will remain in the vtable of this non-abstract class.
9207
9208         * class.c: (mono_class_setup_vtable): continue search for a real 
9209         method if only an abstract method is found.     
9210
9211 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9212
9213         * reflection.c: add size to encoding for ByValStr and ByValArray
9214         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
9215
9216 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9217
9218         * class.c (mono_class_setup_vtable): pass the override info as an
9219         argument.
9220
9221         * class.c (mono_class_setup_vtable): set the slot of overriding methods
9222         correctly.
9223         
9224         * reflection.c (ensure_runtime_vtable); add support for method 
9225         overrides.
9226         
9227 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9228
9229         * reflection.c (resolution_scope_from_image): Hack to work to work with
9230         dynamic assemblies.
9231
9232         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
9233         added a 'force_ref' argument to force this function to allways return 
9234         a TypeRef. This is needed by mono_image_get_memberref_token ().
9235         
9236 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9237
9238         * reflection.c (mono_image_get_type_info): interfaces really don't have
9239         a parent.
9240
9241         * reflection.c (mono_image_basic_init): fill out missing fields of
9242         image structure.
9243
9244         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9245         dynamic assemblies. This is required so dynamic assemblies show up in
9246         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9247         Type::GetType() etc. This is consistent with MS behaviour.
9248
9249         * image.c image.h reflection.c: add newly created classes to the name 
9250         cache so mono_class_get () will find them.      
9251
9252 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9253
9254         First part of changes to get IKVM.NET running under mono.
9255         
9256         * appdomain.h, appdomain.c: added new function 
9257         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9258         This function will call AppDomain::DoTypeResolve to do the actual work.
9259
9260         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9261         moved existing code dealing with dynamic tokens to a new function 
9262         called mono_reflection_lookup_dynamic_token (). This function will 
9263         raise TypeResolve events when appropriate. Since reflection.c is not 
9264         part of libmetadata, a new hook function called 
9265         mono_lookup_dynamic_token() is added to class.c which will call this.
9266
9267         * assembly.h assembly.c: make the invoke_load_hook function public,
9268         so it can be called for dynamic assemblies.
9269
9270         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9271
9272         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9273         type isn't found.
9274
9275         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9276         MonoGHashTable, since it contains pointers to objects which the GC 
9277         needs to track.
9278
9279         * assembly.c (search_loaded): remove unused variable.
9280         
9281 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9282
9283         * object.c: fixed issue exposed by gcc-generated IL programs
9284         that use RVA data for pointers.
9285
9286 2003-01-25  Martin Baulig  <martin@ximian.com>
9287
9288         * threads.c (start_wrapper): Moved the initialization of
9289         `start_func' above the mono_new_thread_init() call to which we
9290         pass it as argument.
9291
9292 2003-01-24  Martin Baulig  <martin@ximian.com>
9293
9294         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9295         the MonoThread pointer.
9296
9297 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9298
9299         * icall.c: Rename `PowImpl' to Pow.
9300
9301 2003-01-23  Dick Porter  <dick@ximian.com>
9302
9303         * threads.c (start_wrapper): Create a Thread object if needed, so
9304         the Main() thread can do the class initialisation in a subthread
9305         that has been set up to allow managed code execution.
9306
9307         Pass the thread ID instead of the MonoThread pointer to the thread
9308         start and attach callbacks.  This change is required, because the
9309         jit thread start callback must be called _before_ the Thread
9310         object can be created.
9311         
9312         (mono_thread_init): Removed much object creation code that is no
9313         longer needed.  No managed code is called from here now.
9314
9315         * object.c (mono_runtime_exec_managed_code): Create a subthread
9316         for Main, and call back to the runtime to use it.
9317         Set the exit code when Main exits.
9318
9319         * gc.c: Make sure domain finalisation happens in a subthread.
9320         Re-enable threaded GC, fixing bug 31333 (again).
9321
9322         * environment.c: System.Environment internall calls (so far just
9323         ExitCode is here, the others are still in icall.c)
9324
9325         * appdomain.c (mono_runtime_cleanup): All threads running managed
9326         code should have finished before mono_runtime_cleanup() is
9327         reached, so no need to clean up threads.
9328
9329 2003-01-22  Martin Baulig  <martin@ximian.com>
9330
9331         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9332         `gpointer func' arguments.      
9333         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9334         but added `MonoThread *thread' argument.
9335         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9336
9337         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9338         and pass it to the mono_thread_start_cb callback.
9339         (mono_install_thread_callbacks): New public function to install a
9340         set of callbacks which are set by the debugger.
9341         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9342
9343 2003-01-22  Martin Baulig  <martin@ximian.com>
9344
9345         * Makefile.am: Install debug-mono-symfile.h.
9346
9347 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9348
9349         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9350
9351 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9352
9353         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9354         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9355         (mono_array_class_get): correctly set access levels of arrays
9356
9357 2003-01-20      Patrik Torstensson
9358         * image.h (MonoAssemblyName): changed major, minor, build, revision
9359         from signed to unsigned.
9360
9361 2003-01-20  sean kasun <skasun@azstarnet.com>
9362
9363         * reflection.c (load_cattr_value): Now this handles
9364         MONO_TYPE_SZARRAY.  Fixes bug #35629
9365
9366 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9367
9368         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9369         integer value
9370
9371 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9372
9373         * decimal.c: fixed bug #26056.
9374
9375 2003-01-17  Martin Baulig  <martin@ximian.com>
9376
9377         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9378
9379 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9380
9381         * exception.[ch]:
9382         (mono_get_exception_type_initialization): new function.
9383
9384         * object.c: throw a TypeInitializationException when an exception is
9385         thrown invoking the class constructor.
9386
9387 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9388
9389         * reflection.c: fixed attribute reading.
9390
9391 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9392
9393         * icall.c:
9394         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9395         provided, look for the type in the calling assembly and then in
9396         mscorlib; if the assembly name is provided, only try that one.
9397
9398 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9399
9400         * object.c: register the vtable before there is a chance it's
9401         queried again recursively.
9402
9403 2003-01-13  Duncan Mak  <duncan@ximian.com>
9404
9405         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9406         gc-internal.h. 
9407         
9408 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9409
9410         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9411
9412 2003-01-11  Martin Baulig  <martin@ximian.com>
9413
9414         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9415         this to 20 for the release.
9416
9417 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9418
9419         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9420
9421         * loader.c (mono_method_get_marshal_info): bug fix
9422
9423         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9424         structures with explicit layout
9425
9426 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9427
9428         * profiler.c: made the output more readable (and sorted). 
9429         Added caller information for the allocation profiler.
9430
9431 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9432
9433         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9434
9435 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9436
9437         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9438         to get value types.
9439         
9440 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9441
9442         * object.c, profiler.h, profiler.c, profiler-private.h:
9443         Added object allocation profiler.
9444
9445 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9446
9447         * reflection.h, reflection.c: handle global methods.
9448         Compress blob entries.
9449
9450 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9451
9452         * marshal.c: fix compilation.
9453
9454 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9455
9456         * loader.c (mono_method_get_marshal_info): impl.
9457
9458         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9459
9460 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9461
9462         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9463         for reference types.
9464
9465 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9466
9467         * loader.c: fixed off by one error in loaded parameter names.
9468
9469 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9470
9471         * marshal.c (mono_marshal_get_icall_wrapper): like
9472         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9473         instead of a MonoMethod.
9474
9475 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9476
9477         * decimal.c: fixed bug #36537.
9478
9479 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9480
9481         * marshal.c: throw a missing method exception if a
9482         P/Invoke method is not found.
9483
9484 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9485
9486         * icall.c: allow a null this for constructors.
9487
9488 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9489
9490         * icall.c: raise the proper exceptions if the arguments to the
9491         internal Invoke are incorrect.
9492
9493 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9494
9495         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9496
9497 2003-01-03  Martin Baulig  <martin@ximian.com>
9498
9499         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9500
9501 2002-12-31  Martin Baulig  <martin@ximian.com>
9502
9503         * debug-mono-symfile.c: Completely rewrote the type section.
9504         Instead of using individual malloc()ed fields, we use one big
9505         continuous memory area and offsets into this area.
9506         See the comments in the source code for details.
9507
9508 2002-12-30  Martin Baulig  <martin@ximian.com>
9509
9510         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9511
9512 2002-12-30  Martin Baulig  <martin@ximian.com>
9513
9514         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9515         line number table in this data blob instead of using an external
9516         pointer.
9517
9518 2002-12-28  Martin Baulig  <martin@ximian.com>
9519
9520         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9521
9522 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9523
9524         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9525         as a boxed return type.
9526
9527 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9528
9529         * appdomain.c
9530         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9531         g_build_filename to properly get separators on the filename created.
9532
9533         * object.h: Small change, introduce MonoMarshalByRefObject to
9534         track the layout of that structure in the C# universe as we make
9535         changes there.
9536
9537 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9538
9539         * object.c: removed assert to allow static fields on interfaces.
9540         * loader.c: a TypeSpec may be used for any type, not just arrays.
9541
9542 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9543
9544         * class.c, class.h: added mono_class_array_element_size ().
9545         Ignore static methods in interfaces.
9546
9547 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9548
9549         * threads.c: fixed the build under cygwin.
9550
9551 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9552
9553         * reflection.c: handle nullref constants. Allocate keys for
9554         reflection handles with the GC.
9555
9556 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9557
9558         * threads.c, threads.h: added mono_thread_get_abort_signal()
9559         to get a suitable signal for thread abort.
9560
9561 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9562
9563         * metadata.c: fix handling of ExportedType table.
9564
9565 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9566
9567         * icall.c: added WriteWindowsDebugString internal call.
9568
9569 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9570
9571         * reflection.h: added fields to match C# implementation.
9572
9573 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9574
9575         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9576
9577 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9578
9579         * gc.h, gc-internal.h: Rename header for GC internal calls to
9580         gc-internal.h from gc.h as to not clash with Boehm GC having its
9581         header installed as <gc.h> in outside include paths.
9582         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9583         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9584
9585 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9586
9587         * icall.c: assign minor, build and revision in FillName.
9588
9589 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9590
9591         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9592         Added support for running code generated by Reflection.Emit.
9593
9594 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9595
9596         * appdomain.c: check for NULL argument in LoadFrom.
9597
9598 2002-12-10  Dick Porter  <dick@ximian.com>
9599
9600         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9601
9602 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9603
9604         * appdomain.c: fix buglet when building exe file name.  Handle full
9605         assembly name (needed after latest changes to AssemblyName).
9606         * image.c:
9607         (mono_image_close): free some hashtables.
9608
9609 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9610
9611         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9612         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9613         on some systems (redhat 7.3) 
9614
9615 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9616
9617         * threads.c: delete the critical section of a sync block,
9618         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9619
9620 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9621
9622         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9623
9624 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9625
9626         * appdomain.[ch]: handle the assembly preload event to try loading the
9627         assemblies using the paths we have in the current domain.
9628
9629         * assembly.[ch]: created an assembly preload hook that is called to try
9630         loading the assembly by other means that the ones provided here.
9631
9632         * domain.c: initialize the domain search path.
9633
9634         From now on, assemblies (TODO: except corlib and System) are loaded
9635         according to these rules when using mono_assembly_load ():
9636
9637                 1. It tries to load the assembly from the ApplicationBase
9638                 of the current domain appending .dll and .exe (TODO: have to
9639                 try loading from name/name.dll and name/name.exe).
9640
9641                 2. It tries the search path specified in PrivateBinPath for the
9642                 current domain (if any).
9643
9644                 3. Previous behavior.
9645
9646 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9647
9648         * icall.c: implemented GetInterfaceMap() related icall.
9649         * domain.c, loader.h: load MethodInfo in mono_defaults.
9650
9651 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9652
9653         * gc.c: disable the finalizer thread for now, untill all the issues
9654         with it are resolved.
9655
9656 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9657
9658         * string-icalls.c: handle embedded nulls in string ctor when the
9659         length is specified.
9660
9661 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9662
9663         * class.c: look for explicit interface implementation in parent
9664         classes, too.
9665
9666 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9667
9668         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9669
9670 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9671
9672         * gc.c: protect handles with a critical section.
9673
9674 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9675
9676         * icall.c:
9677         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9678         parameters. If no assembly specified, try getting the type from all
9679         the assemblies in the current domain, else, load the assembly and get
9680         the type from it.
9681
9682 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9683
9684         * marshal.c: applied patch from Aleksey Demakov that fixes
9685         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9686
9687 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9688
9689         * icall.c: fixed get_location.
9690
9691 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9692
9693         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9694         declarations to make it work with older gcc. 
9695
9696         * loader.c (mono_get_method): set signature->pinvoke for native calls
9697
9698 2002-11-20  Dick Porter  <dick@ximian.com>
9699
9700         * threads.c (mono_thread_init): Set the main thread's handle
9701
9702 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9703
9704         * gc.c: allow compilation without GC support. Changed to match the
9705         mono coding style.
9706
9707 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9708
9709         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9710
9711 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9712
9713         * reflection.c: set a public key token on the core assemblies.
9714
9715 2002-11-18  Dick Porter  <dick@ximian.com>
9716
9717         * threads.c: Split out some thread initialisation so that other
9718         files can set the start callback function.
9719
9720         * gc.c: Run finalisers in a separate thread, to avoid stack
9721         overflow.  Fixes bug 31333.
9722
9723         * appdomain.c: Set up GC finalisation thread.
9724
9725         * reflection.c: 
9726         * object.c: 
9727         * domain.c: Use gc.h macros for GC_malloc
9728         
9729 2002-11-15  Dick Porter  <dick@ximian.com>
9730
9731         * threadpool.c: 
9732         * threads.c:
9733         * appdomain.c: Removed mono_runtime_init_with_attach(),
9734         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9735         merging the extra parameter with the existing function.  Removed
9736         unneeded code in mono_thread_attach().
9737
9738 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9739
9740         * image.c (mono_image_loaded_by_guid): a method to get loaded
9741         images by guid. 
9742         (load_metadata_ptrs): we store the guid as string.
9743
9744 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9745
9746         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9747
9748         * metadata.c (mono_guid_to_string): imported method form Zoltan
9749         Varga (slightly modified)
9750
9751         * assembly.c (mono_assembly_open): load precompiled code
9752
9753         * loader.h (MonoMethod): we store the method token for use in the
9754         aot compiler. 
9755
9756 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9757
9758         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9759         the hook function called when an assembly is loaded.
9760         
9761         * domain.c: Modified file.
9762         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9763
9764         Fixes bug #33196.
9765
9766 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9767
9768         * reflection.c: Map PEFileKind to the value expected by the WinNT
9769         image loader. 
9770
9771 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9772
9773         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9774         Read until the buffer is filled completely.
9775
9776 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9777
9778         * icall.c: implemented MonoType.InternalGetEvent ().
9779
9780 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9781
9782         * appdomain.c: implemented InitAppDomainSetup. Delayed
9783         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9784         the entry_assembly.
9785
9786         * assembly.c: base_dir is now an absolute path ending with
9787         G_DIR_SEPARATOR.
9788
9789         * icall.c: modified get_location according to the above changes.
9790
9791         * object.c: init AppDomain.SetupInformation for the default domain after
9792         we have the entry assembly.
9793
9794         * domain.c: when unloading a domain, setup = NULL.
9795
9796 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9797
9798         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9799
9800 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9801
9802         * object.h, object.c: introduced mono_object_get_virtual_method ()
9803         to lookup the method invoked on an object when a callvirt is done on
9804         a method.
9805         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9806
9807 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9808
9809         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9810         current domain when loaded an assembly and failed to load it.
9811
9812         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9813
9814 2002-10-31  Dick Porter  <dick@ximian.com>
9815
9816         * icall.c: 
9817         * file-io.h: 
9818         * file-io.c: Return the error status in a parameter, as the
9819         GetLastError() value has long since been blown away if we try and
9820         look it up in a subsequent internal call invocation.  Delete the
9821         GetLastError() internal call, because it's useless.
9822
9823 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9824
9825         * class.[ch]: added cast_class to fix bug 29517
9826
9827 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9828
9829         * marshal.c: create valid IL code in the filter clause:
9830         the new JIT is less forgiving:-)
9831
9832 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9833
9834         * icall.c: removed get_property internal call.
9835
9836 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9837
9838         * appdomain.h domain.c: Added an ID to appdomains.
9839         
9840         * threads.c threads.h icall.c: Implement icall
9841         Thread:GetDomainID(), and remove unused icall 
9842         CurrentThreadDomain_internal.
9843
9844 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9845
9846         * icall.c: Don't recurse through the base types in GetConstructor.
9847         Fixes bug #32063. 
9848
9849 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9850
9851         * mempool.h, mempool.c: added mono_mempool_empty() and
9852         mono_mempool_stats().
9853
9854 2002-10-23  Dick Porter  <dick@ximian.com>
9855
9856         * file-io.c: 
9857         * file-io.h: 
9858         * icall.c: Added MonoIO.GetFileType internal call
9859
9860 2002-10-17  Dick Porter  <dick@ximian.com>
9861
9862         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9863         delegate semaphore before waiting for all threads to finish,
9864         because new threads can also call async delegates.  Fixes bug
9865         32004.
9866
9867         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9868         of 3 seconds, in case another async job is queued.  (This part is
9869         needed because the bug fix reintroduced the 3s exit lag.)  This
9870         makes the mono_runtime_shutdown flag superfluous.
9871
9872 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9873
9874         * reflection.c: include ehader size in method section headers.
9875         Really check for suplicated modules entries.
9876
9877 2002-10-17  Martin Baulig  <martin@gnome.org>
9878
9879         * debug-mono-symfile.c: Added back support for locals.
9880
9881 2002-10-14  Martin Baulig  <martin@gnome.org>
9882
9883         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9884         MONO_TYPE_VOID.
9885
9886 2002-10-14  Martin Baulig  <martin@gnome.org>
9887
9888         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9889         mono_class_get() instead of looking in the class cache. 
9890
9891 2002-10-13  Martin Baulig  <martin@gnome.org>
9892
9893         * debug-mono-symfile.c: Set version number to 28, include the
9894         signature in method names.
9895
9896 2002-10-13  Martin Baulig  <martin@gnome.org>
9897
9898         * debug-mono-symfile.h: Set version number to 27.
9899
9900 2002-10-11  Martin Baulig  <martin@gnome.org>
9901
9902         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9903
9904 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9905
9906         * metadata.c, metadata.h: added helper function to allocate signatures.
9907
9908 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9909
9910         * icall.c: added internal call to get the location of machine.config.
9911
9912 2002-10-08  Martin Baulig  <martin@gnome.org>
9913
9914         * debug-mono-symfile.c: Ignore classes with a pending init for the
9915         moment.
9916
9917 2002-10-03  Dick Porter  <dick@ximian.com>
9918
9919         * threads.c: Freebsd pthread_t is a pointer
9920
9921 2002-10-03  Dick Porter  <dick@ximian.com>
9922
9923         * socket-io.c: Implemented GetHostName_internal
9924
9925 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9926
9927         * mono-config.c:
9928         (mono_config_parse_file): don't leak the text.
9929
9930 2002-10-02  Martin Baulig  <martin@gnome.org>
9931
9932         * debug-mono-symfile.c: Added support for methods.
9933
9934 2002-10-01  Martin Baulig  <martin@gnome.org>
9935
9936         * debug-mono-symfile.c: Don't emit methods and line numbers for
9937         the dynamic symbol file, just write the type table.  We can easily
9938         have an external helper program which creates a symbol file for an
9939         IL file.        
9940
9941 2002-10-01  Dick Porter  <dick@ximian.com>
9942
9943         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9944         Only add the handle to the cleanup array when we're about to
9945         launch the thread.  Bug 31425 deadlocked when the test was run on
9946         mono under w32.
9947
9948 2002-10-01  Martin Baulig  <martin@gnome.org>
9949
9950         * debug-mono-symfile.c: Added support for properties.
9951
9952 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9953
9954         * reflection.c: unaligned store fix from Mark Crichton
9955         <crichton@gimp.org>.
9956
9957 2002-09-27  Martin Baulig  <martin@gnome.org>
9958
9959         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9960         New interncall.
9961
9962 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9963
9964         * assembly.h, assembly.c: use a sane API to hook into the assembly
9965         loading process instead of a useless special-purpouse hack
9966         (ngen needs a hook, too, for example).
9967
9968 2002-09-27  Dick Porter  <dick@ximian.com>
9969
9970         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9971         io-layer can set up some process handle info.  Not needed on w32,
9972         but doesn't hurt either.
9973
9974         * process.c: Pass the program name in the second parameter to
9975         CreateProcess, so the path is searched.  Include the working
9976         directory. Implemented process name, process enumeration, and some
9977         process detail internal calls.
9978         
9979         * icall.c: Added internal calls for process lookup, and some
9980         process details
9981
9982 2002-09-26  Martin Baulig  <martin@gnome.org>
9983
9984         * assembly.c (mono_install_open_assembly_hook): New global
9985         function to install a function to be invoked each time a new
9986         assembly is loaded.
9987         (mono_assembly_open): Run this callback function if set.
9988
9989         * debug-mono-symfile.c: Put back line numbers for the dynamic
9990         symbol file and also record the .il file as source file.  This
9991         allows us to install the temporary symbol file as `file.dbg' just
9992         like a compiler-generated one.
9993
9994 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9995
9996         * Corrected typo in gc.c (BOHEM vs BOEHM).
9997
9998 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9999
10000         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
10001         GetProperties. Also avoid calling g_slist_length in GetProperties and
10002         GetMethods.
10003
10004 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10005
10006         * reflection.c: avoid unaligned stores (bug spotted by
10007         Mark Crichton  <crichton@gimp.org>).
10008
10009 2002-09-25  Martin Baulig  <martin@gnome.org>
10010
10011         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
10012         instead of guint64 for addresses and added prologue/epilogue info.
10013
10014 2002-09-25  Martin Baulig  <martin@gnome.org>
10015
10016         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
10017         store line number info.  For the dynamic symbol file, we only need
10018         to provide the JIT generated dynamic line number info for the dynamic
10019         symbol file.
10020
10021 2002-09-25  Martin Baulig  <martin@gnome.org>
10022
10023         * debug-mono-symfile.h: Incremented version number.
10024
10025 2002-09-24  Martin Baulig  <martin@gnome.org>
10026
10027         * class.c (mono_debugger_class_init_func): New global function
10028         pointer variable.
10029         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
10030         call it.
10031
10032         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
10033         function.  This is called via the mono_debugger_class_init_func
10034         hook to add all types to the dynamic type table.
10035         (ves_icall_MonoDebugger_GetType): New interncall to get a class
10036         from its metadata token.
10037
10038         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
10039         New interncall for the debugger.
10040
10041 2002-09-24  Nick Drochak <ndrochak@gol.com>
10042
10043         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
10044         before using it in case it is null.
10045         
10046 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10047
10048         * metadata.c: allow custom modifiers in local var signatures
10049         (bug spotted by Zoltan Varga).
10050
10051 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
10052
10053         * class.c: deal with the <Module> class that may have a NULL vtable.
10054         Eliminate warnings.
10055
10056 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10057
10058         * image.c, image.h: more strong name helpers.
10059         * monosn.c: more work: convert pem keys to cryptoapi format.
10060
10061 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10062
10063         * string-icalls.c: speedup IndexOf.
10064
10065 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10066
10067         * icall.c: updates from Zoltan.2.Varga@nokia.com.
10068
10069 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10070
10071         * icall.c: cleanup: use mono_object_domain ().
10072
10073 2002-09-23  Martin Baulig  <martin@gnome.org>
10074
10075         * debug-mono-symfile.c: Improved type support.
10076
10077 2002-09-22  Martin Baulig  <martin@gnome.org>
10078
10079         * debug-mono-symfile.c: Added support for reference types and strings.
10080
10081 2002-09-22  Martin Baulig  <martin@gnome.org>
10082
10083         * debug-mono-symfile.c: Started to work on the type table.
10084
10085 2002-09-21  Martin Baulig  <martin@gnome.org>
10086
10087         * debug-mono-symfile.c: Largely reworked the symbol table format.
10088         The symbol table is now incrementally updated each time a new
10089         method is added.  We're now also using our own magic and version
10090         so that you don't need to recompile all your classes if the
10091         dynamic table changes.
10092         (mono_debug_update_mono_symbol_file): Removed.
10093         (mono_debug_symfile_add_method): New function to add a method.
10094
10095 2002-09-21  Martin Baulig  <martin@gnome.org>
10096
10097         * icall.c
10098         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
10099         New interncall.
10100
10101         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
10102         New interncall to get a method from its metadata token.
10103
10104 2002-09-21  Martin Baulig  <martin@gnome.org>
10105
10106         * debug-mono-symfile.c: Create type table.
10107
10108 2002-09-20  Martin Baulig  <martin@gnome.org>
10109
10110         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
10111
10112 2002-09-20  Martin Baulig  <martin@gnome.org>
10113
10114         * debug-mono-symfile.c: Provide information about params and locals.
10115
10116 2002-09-20  Martin Baulig  <martin@gnome.org>
10117
10118         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
10119         New interncall.
10120
10121         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
10122         interncall to get a method from its metadata token.
10123
10124 2002-09-20  Martin Baulig  <martin@gnome.org>
10125
10126         * debug-mono-symfile.c: Added a few checks for method->header
10127         being non-NULL.  This should never happen, but for the moment
10128         let's use a g_warning() rather than a g_assert().
10129
10130 2002-09-19  Mark Crichton  <crichton@gimp.org>
10131
10132         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
10133         even if support for it isn't present.  Added an #ifdef to fix this.
10134
10135         * socket-io.c: Added checks back for Solaris support.
10136
10137 2002-09-19  Martin Baulig  <martin@gnome.org>
10138
10139         * debug-mono-symfile.c (read_string, write_string): Reflect latest
10140         changes in the symbol file format.
10141
10142 2002-09-18  Martin Baulig  <martin@gnome.org>
10143
10144         * debug-mono-symfile.c: Set version number to 21.
10145
10146 2002-09-18  Dick Porter  <dick@ximian.com>
10147
10148         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
10149         on netbsd.  Fixes bug 30051.
10150
10151 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10152
10153         * reflection.c:
10154         (set_version_from_string): little fix.
10155
10156 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10157
10158         * monosn.c, Makefile.am: added strong name utility.
10159         * reflection.h, reflection.c: implemented delayed signing,
10160         locale, version and hash id assembly attributes.
10161
10162 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10163
10164         * loader.c, metadata.c: load param attributes in signatures.
10165
10166 2002-09-16  Martin Baulig  <martin@gnome.org>
10167
10168         * debug-mono-symfile.c: Added string table with all method names.
10169
10170 2002-09-14  Martin Baulig  <martin@gnome.org>
10171
10172         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
10173         fast method lookup.
10174
10175 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10176
10177         * reflection.c: record the public key token of referenced assemblies.
10178
10179 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10180
10181         * image.c, image.h: added functions to get the strong name and the
10182         public key of an assembly.
10183         * pedump.c: use them.
10184
10185 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
10186
10187         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
10188
10189 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
10190
10191         * marshal.c (mono_marshal_get_managed_wrapper): Added
10192         MONO_TYPE_BOOLEAN 
10193
10194 2002-09-11  Martin Baulig  <martin@gnome.org>
10195
10196         * gc.c: Call GC_unregister_disappearing_link() on all links when
10197         finalizing them, this is necessary to aviod a crash in boehm's
10198         finalize handler.
10199
10200 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10201
10202         * gc.c: handle GetTarget for finalized objects spotted and fixed by
10203         nick@chemlab.org.
10204
10205 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10206
10207         * icall.c: implemented MonoType::Module.
10208         * reflection.c, reflection.h: mono_module_get_object () from
10209         Tomi Pakarinen <tomi.pakarinen@welho.com>.
10210
10211 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10212
10213         * icall.c: ignore overridden methods in GetMethods ().
10214         Fix for FieldInfo::SetValue().
10215         * object.c: handle float/double in runtime invoke.
10216
10217 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10218
10219         * object.c: allow a constructor to be called again on an object.
10220
10221 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10222
10223         * class.h, class.c: move field layout code to it's own function and
10224         export it. Get an interface id earlier. Move fields in MonoClass
10225         so they are more cache friendly and align the bitfields.
10226         * loader.c: temporary handle get_param_names() for a runtime method.
10227         * reflection.c, reflection.h: more code to handle runtime creation of
10228         types.
10229
10230 2002-09-09  Martin Baulig  <martin@gnome.org>
10231
10232         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
10233         signature with the pinvoke field being set for the actual call.
10234
10235 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10236
10237         * icall.c: removed some unused icalls. Start of map of glib charsets
10238         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
10239
10240 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10241
10242         * debug-helpers.c: break infinite loop (found and fixed by
10243         Holger Arnold <harnold@gmx.de>).
10244
10245 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10246
10247         * icall.c: target may be null in create_delegate.
10248
10249 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10250
10251         * marshal.c: handle a boolean return type.
10252
10253 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10254
10255         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10256
10257 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10258
10259         * gc.c: fix weakreferences.
10260
10261 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10262
10263         * icall.c: added icall to get default codepage.
10264
10265 2002-09-03  Dick Porter  <dick@ximian.com>
10266
10267         * threads.h: 
10268         * threads.c: Use MonoThread instead of MonoObject where
10269         apropriate.
10270
10271         Store running thread objects in a hash table, so that we have all
10272         the info to hand when waiting for them to finish
10273         (means we don't need OpenThread() any more, so mingw builds should
10274         be fully functional again.)
10275
10276         * verify.c:
10277         * object.h: Added thread ID to MonoThread
10278
10279 2002-09-03  Martin Baulig  <martin@gnome.org>
10280
10281         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10282
10283 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10284
10285         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10286
10287 2002-09-03  Martin Baulig  <martin@gnome.org>
10288
10289         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10290         argument to store the end address of the disassembled instruction.
10291
10292         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10293         here from debug-symfile.h.
10294         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10295         JIT into this struct.
10296         (MonoSymbolFile): Added `char *image_file' field.
10297         (MonoDebugGetMethodFunc): Removed.
10298         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10299         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10300         (mono_debug_find_method): New method.
10301
10302         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10303         create a full symbol file.
10304         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10305         and static symbol files.
10306         (mono_debug_find_method): The symbol file keeps an internal method hash,
10307         call this to get a MonoDebugMethodInfo from a MonoMethod.
10308
10309         * debug-symfile.[ch]: Removed.
10310
10311 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10312
10313         * image.c (do_mono_image_open): Remove linker version check.
10314
10315 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10316
10317         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10318         wrappers for instance methods.
10319         
10320 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10321
10322         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10323
10324 2002-08-28  Dick Porter  <dick@ximian.com>
10325
10326         * Makefile.am: Export HOST_CC for w32 builds
10327
10328 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10329
10330         * file-io.c process.c: MonoString are null terminated, no
10331         need for mono_string_to_utf16() anymore.
10332
10333 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10334
10335         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10336
10337 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10338
10339         * icall.c, reflection.h: speedup System.MonoType.
10340
10341 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10342
10343         * reflection.c: allow null as the value of a string argument in
10344         custom attributes constructors.
10345
10346 2002-08-27  Martin Baulig  <martin@gnome.org>
10347
10348         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10349         `trampoline_address' field.
10350
10351 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10352
10353         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10354         check (fixes bug #29486) 
10355
10356 2002-08-27  Martin Baulig  <martin@gnome.org>
10357
10358         * debug-mono-symfile.c: Changed the file format in a way that allows us
10359         open it read-only and to use a specially malloced area for all the
10360         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10361         debugging IL code and there is no MCS generated symbol file for it.
10362
10363 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10364
10365         * object.c: added a define for a good string and array
10366         creation speedup (not enabled by default because we need to deal with
10367         the synch stuff).
10368
10369 2002-08-26  Martin Baulig  <martin@gnome.org>
10370
10371         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10372         function to create a dynamic symbol file.  This is used by the
10373         debugger to create a symbol file for IL code on-the-fly.
10374
10375 2002-08-26  Martin Baulig  <martin@gnome.org>
10376
10377         * loader.c (mono_lookup_pinvoke_call): Include the error message
10378         from g_module_error() in the error message.
10379
10380 2002-08-24  Martin Baulig  <martin@gnome.org>
10381
10382         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10383         function to update the symbol file.  The symbol file is mmap()ed
10384         writable, but private.  This allows us to install the symbol file
10385         together with the assembly.
10386
10387 2002-08-24  Martin Baulig  <martin@gnome.org>
10388
10389         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10390         but they can read the new symbol file format which mcs is now creating.
10391
10392         * debug-symfile.c (mono_debug_find_source_location): Moved to
10393         debug-mono-symfile.c; this is now operating on the new symbol file.
10394
10395 2002-08-23  Martin Baulig  <martin@gnome.org>
10396
10397         * debug-helpers.c (mono_method_desc_from_method): New function to get
10398         a MonoMethodDesc from a MonoMethod.
10399
10400 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10401
10402         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10403         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10404
10405 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10406
10407         * string-icalls.[ch]: make helper methods static.
10408
10409 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10410
10411         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10412         types to it and to SetValueInternal.
10413
10414         * object.c: Moved handle_enum label to its proper place. This was the
10415         f... bug! ;-)
10416
10417         This time i compiled mcs and gtk-sharp and they both work.
10418
10419 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10420
10421         * icall.c: reverted partially my previous patch until 
10422         object.c:set_value handles enums correcly.
10423
10424 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10425
10426         * icall.c:
10427         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10428         (ves_icall_System_Environment_get_MachineName): removed warning when
10429         compiling under cygwin.
10430
10431 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10432
10433         * object.c: fixed field_get_value() for reference types.
10434
10435 2002-08-22  Dick Porter  <dick@ximian.com>
10436
10437         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10438         Don't free a buffer while it's still needed.  Patch from Jonathan
10439         Liger <Jonathan.liger@wanadoo.fr>
10440
10441 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10442
10443         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10444         internal call.
10445
10446 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10447
10448         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10449         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10450
10451         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10452         we call unmanaged code which throws exceptions.
10453
10454 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10455
10456         * appdomain.h: added per-domain entry_assembly.
10457         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10458         arguments.
10459         * icall.c: Assembly::GetEntryAssembly icall.
10460         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10461         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10462
10463 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10464
10465         * appdomain.h, gc.c: added mono_domain_finalize ().
10466
10467 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10468
10469         * object.c:
10470         (mono_print_unhandled_exception): changed g_warning by g_printerr
10471         because g_log has a 1024 characters limit (yeah, i got a big stack
10472         trace). Don't print exception name, that should be in ToString 
10473         returned string.
10474
10475 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10476
10477         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10478         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10479
10480 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10481
10482         * object.c:
10483         (mono_print_unhandled_exception): after previous commit, i realized
10484         that MS calls ToString on the exception. I changed this function to
10485         do that. This way we get stack_trace for free.
10486
10487 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10488
10489         * object.c:
10490         (mono_print_unhandled_exception): invoke Message property instead of
10491         getting 'message' field from Exception. Don't allocate memory for
10492         'trace' and 'message' if not needed.
10493
10494 2002-08-18  Dick Porter  <dick@ximian.com>
10495
10496         * unicode.c: Fix asserts to match Encoder.cs checks
10497
10498 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10499
10500         * marshal.c: fix unaligned store issue and a few wrong
10501         opcode argument types.
10502
10503 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10504
10505         * icall.c: added GetUninitializedObjectInternal internal call.
10506
10507 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10508
10509         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10510         to the right domain.
10511
10512 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10513
10514         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10515
10516         * class.c (class_compute_field_layout): set blittable to false for Strings
10517
10518         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10519
10520 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10521
10522         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10523         first chunk of code to create types at runtime. Code to
10524         handle ReflectedType/DeclaringType. Make reflection handles
10525         domain specific.
10526
10527 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10528
10529         * class.c: set correct name in arrays.
10530
10531 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10532
10533         * appdomain.c (mono_domain_transfer_object): make it work with
10534         valuetypes. bug fixes.
10535
10536 2002-08-12  Dick Porter  <dick@ximian.com>
10537
10538         * object.h: Rename some parameters to avoid c++ keywords (Patch
10539         from Joseph Wenninger <kde@jowenn.at>)
10540
10541 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10542
10543         * icall.c: added icall to implement Assembly.GetFile*.
10544
10545 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10546
10547         * reflection.h, reflection.c: code to embed managed resources.
10548
10549 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10550
10551         * class.c: move all the type size stuff into
10552         class_compute_field_layout().
10553
10554 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10555
10556         * class.c: ensure enums have always the correct instance size.
10557         * unicode.c: remove wrong assert.
10558
10559 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10560
10561         * assembly.c: fix mem corruption issue.
10562         * image.h, image.c: added mono_image_get_resource () to access
10563         managed resources.
10564         * icall.c: implemented Assembly.EntryPoint property and some
10565         Managed Resources related internalcalls.
10566
10567
10568 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10569
10570         * image.c, image.h: impemented mono_image_get_entry_point ().
10571         * appdomain.c: use mono_image_get_entry_point.
10572
10573 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10574
10575         * reflection.c: support the object type argument when loading
10576         custom attributes.
10577
10578 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10579
10580         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10581         String as return type.
10582
10583 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10584
10585         * reflection.c: fix encoding of named args for custom attrs to match
10586         the ms implementation. Read them back when instantiating custom
10587         attributes.
10588
10589 2002-08-02  Radek Doulik  <rodo@ximian.com>
10590
10591         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10592         by Dietmar as quick fix
10593         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10594         16 as stack size, used on more places as quick fix before Dietmar
10595         will fix it properly
10596
10597 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10598
10599         * object.h, object.c: added accessors for fields and properties.
10600
10601 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10602
10603         * class.c, class.h: made mono_class_get_field_from_name ()
10604         loop on parent types.
10605         Added mono_class_get_property_from_name ().
10606
10607 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10608
10609         * class.c, class.h: move the code to setup the type vtable in its own
10610         function so that it can be reused also for types created at runtime.
10611         Eliminate the "class" identifier from the header file.
10612         * reflection.c: setup the vtable for enums so that we can create
10613         objects for use in SetConstant ().
10614
10615 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10616
10617         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10618         instead of the delegate itself as this pointer (bug #28383)
10619
10620 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10621
10622         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10623         conversions.
10624
10625 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10626
10627         * loader.c: don't set the pinvoke bit on icalls.
10628
10629 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10630
10631         * debug-helpers.c (mono_method_full_name): only print a number to
10632         indicate wrapper type (so that the output is more readable in traces).
10633
10634 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10635
10636         * class.c (mono_class_init): include method override patch from Paolo
10637
10638 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10639
10640         * icall.c: fixed GetTypeCode().
10641
10642 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10643
10644         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10645         use real delegate invoke function to make it work with multicast
10646         delegates (fix bug# 28291).
10647
10648 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10649
10650         * object.c: load constant strings.
10651
10652 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10653
10654         * reflection.c: no magic numbers.
10655         * tabledefs.h: security action enum.
10656
10657 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10658
10659         * assembly.c: fix possible memory corruption.
10660
10661 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * reflection.h, reflection.c: added support for linking resources.
10664         * verify.c: check we have an updated corlib.
10665
10666 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10667
10668         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10669         string arrays.
10670         (mono_marshal_string_array): null terminate unmanaged string arrays.
10671         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10672
10673 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10674
10675         * icall.c: Type.GetType () can now return also types from the
10676         calling assembly.
10677
10678 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10679
10680         * loader.h, loader.c: stack walking support.
10681         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10682         GetCallingAssembly.
10683
10684 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10685
10686         * marshal.c: added optimisations for blittable types 
10687
10688         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10689         (mono_class_setup_mono_type): set blittable attribute for single
10690         and double.
10691
10692         * marshal.c (mono_string_utf8_to_builder): impl.
10693         (mono_string_builder_to_utf8): impl.
10694         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10695
10696 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10697
10698         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10699         (mono_marshal_get_managed_wrapper): impl. byref types
10700
10701 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10702
10703         * icall.c:
10704         (search_method): don't display debug message. 
10705
10706 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10707
10708         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10709
10710 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10711
10712         * appdomain.c: set the missing filename when throwing exception.
10713
10714 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10715
10716         * metadata.c (mono_type_size): code cleanup
10717         (mono_type_stack_size): removed some test code
10718
10719 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10720
10721         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10722         mono_get_exception_file_not_found now.
10723
10724         * exception.c (mono_exception_from_name_two_strings): New version
10725         that will call a constructor with two string arguments. 
10726         (mono_get_exception_file_not_found): New helper routine, used to
10727         report file-not-found errors.
10728
10729 2002-07-20  Dick Porter  <dick@ximian.com>
10730
10731         * process.h:
10732         * process.c: Pass file handles to CreateProcess
10733         
10734         * icall.c:
10735         * file-io.h:
10736         * file-io.c: Implemented CreatePipe
10737
10738 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10739
10740         * metadata.c (mono_get_param_info): set alignment for value types
10741
10742 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10743
10744         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10745         Constify mono_domain_assembly_open().
10746         * loader.c: handle null namespace in icalls.
10747
10748 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10749
10750         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10751         (emit_str_to_ptr_conv): marshal object as structs
10752
10753         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10754
10755         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10756
10757 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10758
10759         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10760         (mono_marshal_get_native_wrapper): we an now return value types
10761
10762 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10763
10764         * verify.c: more checks implemented.
10765
10766 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10767
10768         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10769         (fix bug #27695)
10770         (mono_marshal_get_native_wrapper): allow byref arguments
10771         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10772         impl. PtrToStringXXX methods
10773         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10774         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10775         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10776         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10777         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10778
10779 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10780
10781         * reflection.c: fix buglet in parsing an assembly name.
10782
10783 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10784
10785         * marshal.c (emit_ptr_to_str_conv): first impl.
10786
10787 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10788
10789         * object.c, class.h: cache the vtable in the class as suggested by
10790         vargaz@freemail.hu (Zoltan Varga).
10791
10792 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10793
10794         * class.h, loader.c: added mono_field_from_token().
10795         * verify.c: first cut of type checking code.
10796
10797 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10798
10799         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10800
10801 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10802
10803         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10804         (fix bug #27782)
10805         (mono_marshal_get_remoting_invoke): impl.
10806         (mono_delegate_begin_invoke): impl.
10807         (mono_mb_emit_save_args): impl.
10808         (mono_delegate_end_invoke): impl.
10809         (mono_marshal_get_delegate_begin_invoke):
10810         (mono_marshal_get_delegate_end_invoke):
10811         (mono_marshal_get_delegate_invoke): generate a special name for
10812         those methods (including the signature) and associate them whith
10813         the delegate class. 
10814
10815 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10816
10817         * reflection.[ch]: 
10818         (mono_reflection_type_from_name): now it has a MonoImage parameter
10819         which is used as the default image to search the type in. If the image
10820         is NULL or getting the type from it fails, it defaults to corlib.
10821
10822         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10823         new parameter.
10824
10825 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10826
10827         * reflection.c: update the parameter table index.
10828
10829 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10830
10831         * domain.c: don't include the mark byte in the string hash.
10832
10833 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10834
10835         * icall.cs: icall for Type.GetTypeCode ().
10836         * verify: a couple of fixes and disabled local initialization checks.
10837
10838 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10839
10840         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10841
10842         * debug-helpers.c (mono_method_full_name): print the type of the
10843         runtime wrapper
10844
10845         * metadata.c (mono_signature_hash): a hash function for signatures
10846         (mono_signature_hash): better hash algorithm
10847
10848         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10849
10850         * debug-helpers.c (mono_method_full_name): this can now generate
10851         method names with signatures
10852
10853         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10854         method dont have this pointers.
10855
10856 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10857
10858         * reflection.c: fixup typebuilder tokens.
10859         * image.c: fix buglet.
10860         * marshal.h: remove whitespace.
10861         * metadata.h, metadata.c: reinstate code that was removed.
10862         * verify.c: handle catch directives and fix another couple of bugs.
10863
10864 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10865
10866         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10867         (mono_marshal_get_native_wrapper): make it comp. with the old code
10868         (mono_marshal_get_native_wrapper): support boolean
10869         (mono_marshal_get_managed_wrapper): support more types
10870
10871 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10872
10873         * class.c (class_compute_field_layout): compute class->blittable attribute.
10874
10875 2002-07-09  Dick Porter  <dick@ximian.com>
10876
10877         * threads.c: Make the thread cleaning up cope with threads that
10878         call ExitThread()
10879
10880 2002-07-08  Radek Doulik  <rodo@ximian.com>
10881
10882         * reflection.c (method_encode_code): use non-translated values to
10883         compute finally_start, this fixes exception handling on ppc, yay!
10884
10885         * decimal.h (struct signscale): fix endianess
10886
10887 2002-07-07  Radek Doulik  <rodo@ximian.com>
10888
10889         * reflection.c: swap box_val and not val
10890
10891 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10892
10893         * reflection.c, reflection.h: handle full assembly info in type name.
10894         Handle Type arguments when loading custom attributes.
10895         * icall.c: updated to use new mono_reflection_type_from_name () method.
10896
10897 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10898
10899         * loader.c:
10900         (method_from_memberref): also print assembly name when method not found.
10901
10902 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10903
10904         * icall.c:
10905         (ves_icall_TypeGetProperties): fixed bug #27473. 
10906
10907 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10908
10909         * reflection.c: display image name and token when cannot find the
10910         .ctor for an attribute.
10911
10912 2002-07-05  Martin Baulig  <martin@gnome.org>
10913
10914         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10915
10916 2002-07-04  Dick Porter  <dick@ximian.com>
10917
10918         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10919         compile on mingw.  This will cause mingw builds to not wait for
10920         subthreads to terminate after the main thread does.  I've lodged a
10921         bug with the mingw developers for them to wrap OpenThread().
10922
10923 2002-07-03  Dick Porter  <dick@ximian.com>
10924
10925         * threads.c: Store thread IDs instead of handles, because
10926         GetCurrentThread() returns a pseudohandle and therefore stores
10927         useless values.  mono_thread_cleanup() continues checking the
10928         array of threads until it is empty, to cope with subthreads
10929         spawning new threads after the main thread has finished.
10930
10931         * profiler.h:
10932         * profiler.c:
10933         * profiler-private.h: Pass the thread ID to thread profiler
10934         functions, instead of a handle
10935
10936 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10937
10938         * verify.c: fixes to make it more usable.
10939         * pedump.c: added --verify code to verify IL code in an assembly.
10940
10941 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10942
10943         * reflection.c: turn errors into warnings to allow compiling corlib.
10944
10945 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10946
10947         * reflection.c: add special cases to compile corlib.
10948
10949 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10950
10951         * reflection.c: handle properties with only a set method.
10952
10953 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10954
10955         * opcodes.h: add enum with opcodes in opval order.
10956
10957 2002-07-01  Dick Porter  <dick@ximian.com>
10958         
10959         * object.h:
10960         * object.c (mono_runtime_run_main): Removed unneeded argument
10961
10962 2002-06-28  Martin Baulig  <martin@gnome.org>
10963
10964         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10965
10966 2002-06-27  Dick Porter  <dick@ximian.com>
10967
10968         * threads.c: Store the handle in both the parent thread and in the
10969         subthread, to minimise the time between starting a new thread and
10970         storing its ID.
10971
10972 2002-06-26  Dick Porter  <dick@ximian.com>
10973
10974         * appdomain.c (mono_runtime_cleanup): Close the socket library
10975         after all the threads have finished, not before
10976
10977 2002-06-26  Martin Baulig  <martin@gnome.org>
10978
10979         * debug-symfile.c (mono_debug_find_source_location): Added
10980         `guint32 *line_number' argument.  If it's not NULL, store the line number
10981         there and return the file name without the line number.
10982
10983 2002-06-25  Dick Porter  <dick@ximian.com>
10984
10985         * icall.c:
10986         * process.h:
10987         * process.c: Process forking and other support functions
10988
10989 2002-06-25  Dick Porter  <dick@ximian.com>
10990
10991         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10992         things dont happen when the image is closed.
10993         (mono_image_lookup_resource): Walk the resource section looking
10994         for a particular entry
10995
10996         * cil-coff.h: PE resource section decoding
10997
10998 2002-06-25  Dick Porter  <dick@ximian.com>
10999         
11000         * assembly.h:
11001         * assembly.c: 
11002         (mono_assembly_foreach): Accessor functions to walk the list of
11003         loaded assemblies
11004         (mono_assembly_set_main):
11005         (mono_assembly_get_main): Process methods need to know which
11006         assembly is the "main" one
11007
11008         * object.c (mono_runtime_run_main): Record the main assembly
11009
11010         * debug-helpers.c: Fix typo
11011
11012 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
11013
11014         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
11015         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
11016
11017 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11018
11019         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
11020
11021 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
11022
11023         * image.c (do_mono_image_open): Initialize reference count,
11024         otherwise we leak the MonoImage.
11025
11026 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11027
11028         * reflection.c: small tweak to handle self-hosting.
11029
11030 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11031
11032         * reflection.c: fix type name parse code.
11033
11034 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11035
11036         * reflection.c: break out of the loop.
11037         * image.c: special case corlib.
11038
11039 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11040
11041         * reflection.c: add all the custom attrs at the end to ensure the
11042         ctors have been properly initialized when the attributes are defined
11043         in the current assembly.
11044
11045 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11046
11047         * reflection.c: handle correctly multiple-nested types.
11048
11049 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11050
11051         * row-indexes.h: fix typos.
11052         * reflection.c: adjust for typos and fix method_def_or_ref
11053         encoding in MethodImpl table.
11054
11055 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11056
11057         * reflection.c: fix entry point patching (thanks Serge!).
11058
11059 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
11060
11061         * verify.c: add check for System.Exception
11062
11063 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
11064
11065         * image.c, class.c: minifix for code just c&p'ed.
11066         * reflection.c: warning fix.
11067         * object.h, loader.h, domain.c: load also StringBuilder.
11068
11069 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11070
11071         * marshal.h, marshal.c: some support code to handle complex marshaling.
11072
11073 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11074
11075         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
11076         Better signatures with vtable error dump.
11077
11078 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
11079
11080         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
11081
11082 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
11083
11084         * icall.c (ves_icall_Type_GetField): impl.
11085
11086 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11087
11088         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
11089         to retrieve a marshal description blob for a field or param.
11090
11091 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11092
11093         * reflection.h, reflection.c: change order of nested type emission
11094         to avoid table corruption. The NestedTypes table is sorted.
11095         * icall.c: change order of GetConstructor results to workaround mcs bug.
11096
11097 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11098
11099         * reflection.h, reflection.c: handle field and param marshal
11100         information.
11101
11102 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11103
11104         * icall.c, marshal.c marshal.h: more Marshal class implementation.
11105
11106 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11107
11108         * reflection.c: fix call convention.
11109
11110 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11111
11112         * reflection.h, reflection.c: mono_image_get_memberref_token()
11113         takes a type instead of a class, now. Added
11114         mono_image_get_array_token() to create tokens for the special
11115         multi-dim array methods.
11116
11117 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11118
11119         * assembly.c: handle modules (no assembly table). Split
11120         loading references in its own function.
11121         * class.c: handle moduleref resolution scope.
11122         * image.c, image.h: cache module name in image.
11123
11124 2002-06-07  Martin Baulig  <martin@gnome.org>
11125
11126         * reflection.c (mono_image_get_type_info): Only add a class layout entry
11127         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
11128
11129 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11130
11131         * icall.c: more signature fixes that used uint instead of int.
11132
11133 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11134
11135         * reflection.c: fixed signature of field refs.
11136
11137 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11138
11139         * class.c, reflection.c: handle typerefs of nested types
11140         (both on read and when writing files).
11141
11142 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
11143
11144         * icall.c: fix method signatures that tried to workaround the previous
11145         typo, d'oh!
11146
11147 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11148
11149         * debug-helpers.c: fix typo.
11150
11151 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11152
11153         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
11154         rewrote the PE/COFF writing code (our programs are understood by the
11155         ms runtime, now).
11156
11157 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11158
11159         * gc.c, gc.h, icall.c: weakreference support.
11160
11161 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11162
11163         * Makefile.am, mono-config.c: use $(sysconfdir).
11164
11165 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11166
11167         * icall.c: changed default precision of Double.ToString() to 15.
11168         Fixed memory leak. Unified with Single.ToString.
11169
11170 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
11171
11172         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
11173
11174 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11175
11176         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
11177         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
11178         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
11179         and myself.
11180
11181 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11182
11183         * debug-symfile.c, sysmath.c: yet more compilation fixes.
11184
11185 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11186
11187         * reflection.c, socket-io.c: more compilation fixes.
11188
11189 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11190
11191         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
11192         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
11193         unicode.c: warning and compiler compatibility fixes.
11194
11195 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11196
11197         * class.h, metadata.c: fixed warnings/compilation errors.
11198
11199 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11200
11201         * Makefile.am, mono-config.c, mono-config.h: configuration file
11202         support routines.
11203         * loader.c, loader.h: make Dll mapping configurable at runtime in the
11204         config file. Export methods to insert and lookup mappings.
11205
11206 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11207
11208         * reflection.c: handle types and boxed objects in custom attr
11209         constructors.
11210
11211 2002-05-30  Martin Baulig  <martin@gnome.org>
11212
11213         * debug-symfile.c
11214         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
11215
11216 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
11217
11218         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
11219         to lookup the implmap row for a P/Invoke method.
11220         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
11221         P/Invoke method from the runtime on an as needed basis.
11222
11223 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
11224
11225         * metadata.c (mono_metadata_parse_signature): impl.
11226
11227 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11228
11229         * class.c: handle .pack directive.
11230
11231 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11232
11233         * object.c: initialize static fields with RVA data.
11234
11235 2002-05-25  Martin Baulig  <martin@gnome.org>
11236
11237         * debug-symfile.c
11238         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
11239
11240 2002-05-24  Martin Baulig  <martin@gnome.org>
11241
11242         * debug-symfile.c
11243         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
11244         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11245         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11246
11247 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11248
11249         * object.c: special case string ctros in invoke.
11250         * gc.c: silly whitespace changes.
11251
11252 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11253
11254         * threadpool.[ch]: impl. a threadpool that can
11255         be used by mint and mono.
11256
11257 2002-05-22  Martin Baulig  <martin@gnome.org>
11258
11259         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11260         The first argument is now a `MonoReflectionModuleBuilder *', the return
11261         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11262         `methods' field to get the method builder.  The `token' argument is the
11263         unfixed token.
11264
11265         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11266         invalid characters instead of g_assert_not_reached()ing.  This seems
11267         to be the behaviour of mscorlib.
11268
11269 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11270
11271         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11272         Hestilow to fix bug #25104
11273
11274 2002-05-21  Martin Baulig  <martin@gnome.org>
11275
11276         * debug-symfile.c (mono_debug_find_source_location): New function.
11277         Looks up an IL offset in the line number table and returns the source
11278         location as a string.
11279
11280 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11281
11282         * icall.c:
11283         (mono_double_ToStringImpl): changed %f by %g until we have something
11284         better.
11285
11286 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11287
11288         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11289         parameters first in C#.
11290
11291 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11292
11293         * icall.c, reflection.h: added icall to get info about an event.
11294
11295 2002-05-20  Radek Doulik  <rodo@ximian.com>
11296
11297         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11298         endian
11299         (mono_value_box): don't use memcpy for small sizes on
11300         architectures with unaligned access
11301
11302 2002-05-20  Martin Baulig  <martin@gnome.org>
11303
11304         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11305         if `tb->parent == NULL'.
11306         (mono_reflection_create_internal_class): New function.  This is
11307         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11308         for enum types.
11309
11310         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11311         New interncall.
11312
11313 2002-05-19  Martin Baulig  <martin@gnome.org>
11314
11315         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11316         argument to get the length, don't default to the array length.
11317
11318 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11319
11320         * assembly.c (mono_assembly_setrootdir): New function used to
11321         override the MONO_ASSEMBLIES directory.
11322
11323 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11324
11325         * icall.c: ValueType_GetHashCode() initialize local var.
11326
11327 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11328
11329         * reflection.c: sort custom attributes table.
11330
11331 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11332
11333         * reflection.c: support named args in custom attributes (write support).
11334
11335 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11336
11337         * reflection.c: fix finally position calculation.
11338
11339 2002-05-15  Radek Doulik  <rodo@ximian.com>
11340
11341         * reflection.c: fixed endianess at many places
11342
11343         * icall.c (ves_icall_InitializeArray): comment out debug msg
11344
11345 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11346
11347         * object.c (mono_unhandled_exception): new function to handle
11348         unhandled exceptions.
11349         (mono_unhandled_exception): call the UnhandledException event.
11350         (mono_runtime_delegate_invoke): impl.
11351
11352 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11353
11354         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11355         returns the RVA, not the direct pointer to the data. Handle the case
11356         when the class size is fixed.
11357
11358 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11359
11360         * reflection.c: fix some endianess issues.
11361
11362 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11363
11364         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11365
11366         * threads.c (mono_thread_init): added a callback which is invoked
11367         at thread start.
11368
11369 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11370         
11371         * icall.c: make GetHashCode return non-negative values.
11372
11373 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11374
11375         * object.c, icall.c, gc.c: revert to address-based hashcode.
11376
11377 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11378
11379         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11380
11381 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11382
11383         * icall.c, class.c: special case <Module>.
11384
11385 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11386
11387         * icall.c: fix bug in GetNow().
11388
11389 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11390
11391         * object.c (mono_runtime_class_init): make sure that we call all
11392         static class constructors.
11393
11394 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11395
11396         * reflection.c: sort methodsemantics table.
11397
11398 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11399
11400         * reflection.h, reflection.c: honour init locals setting.
11401
11402 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11403
11404         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11405
11406 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11407
11408         * reflection.c: support ContructorBuilders in attribute blob creation.
11409
11410 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11411
11412         * reflection.c: some changes to build a binary that can be run
11413         directly in windows.
11414
11415 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11416
11417         * loader.c: print a big message when an icall can't be found.
11418
11419 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11420
11421         * string-icalls.c: fix bug 24248.
11422
11423 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11424
11425         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11426         icall.c, reflection.h: separate assembly loading by pathname and by
11427         assembly name. Use the MONO_PATH env var to search for assemblies.
11428
11429 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11430
11431         * assembly.c, image.h: add some support for assemblies
11432         with multiple modules.
11433         * class.c, class.h: export mono_class_from_typeref().
11434         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11435         instead.
11436
11437 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11438
11439         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11440         documentation says (the ECMA one is correct).
11441
11442 2002-05-02  Dick Porter  <dick@ximian.com>
11443
11444         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11445         Don't name the synchronisation mutex.
11446
11447 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11448
11449         * rand.c
11450         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11451         Make the prototypes match.
11452         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11453         Same.
11454
11455         * icall.c
11456         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11457         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11458         all systems have tm.tm_zone, so use strftime() with %Z to print
11459         the timezone abreviation into a temp string.
11460
11461         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11462         rather than mono_array_addr() on a MonoString on Big Endian
11463         machines.
11464
11465 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11466
11467         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11468         fix bug 24041
11469
11470 2002-04-30  Dick Porter  <dick@ximian.com>
11471
11472         * socket-io.c: Cope with SOCKET being an integer rather than a
11473         pointer now.
11474
11475         * threads.c: Added Thread_free_internal, to deal with thread
11476         handle cleanup.  Moved calls to handle_store() and handle_remove()
11477         to start_wrapper(), so each can only be called once.  Allocate
11478         synchronisation blocks with GC_malloc(), and use GC finalisation
11479         to close the handles.
11480
11481         * icall.c: added System.Threading.Thread::Thread_free_internal
11482
11483 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11484
11485         * icall.c: support Environment.Exit, CommandLineArgs().
11486
11487 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11488
11489         * object.c, object.h: added mono_runtime_run_main () and
11490         mono_runtime_get_main_args () for use in System.Environment.
11491
11492 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11493
11494         * gc.c: fix thinko, enable actual finalization since the jit is now
11495         fixed.
11496
11497 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11498
11499         * gc.c, object.c: take into account that an object may be offset wrt the address
11500         returned by GC_malloc().
11501
11502 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11503
11504         * image.c: handle files without entries in the assembly table (modules).
11505
11506 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11507
11508         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11509         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11510         allowed to be null when it's System.Object class setup.
11511
11512 2002-04-27  Martin Baulig  <martin@gnome.org>
11513
11514         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11515         if `tb->parent == NULL' rather than crashing.
11516
11517 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11518
11519         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11520         calling acos() where asin() should have been called.
11521
11522 2002-04-26  Martin Baulig  <martin@gnome.org>
11523
11524         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11525         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11526         there's a subdirectory called `System', but we don't want to read that
11527         subdirectory as an assembly.
11528
11529 2002-04-25  Martin Baulig  <martin@gnome.org>
11530
11531         * debug-symfile.c: Reflect latest MonoString changes.
11532
11533 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11534
11535         * rand.c, rand.h: instance method icalls need to have an explicit
11536         this pointer as first argument in the C implementation.
11537
11538 2002-04-25  Nick Drochak <ndrochak@gol.com>
11539
11540         * icall.c: Fix typo in map for GetNonZeroBytes
11541
11542 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11543
11544         * string-icalls.c : String does now passes unit tests without any 
11545         errors, the following changes has been made:
11546         
11547         Implemented replace methods.
11548         Renaming of methods to (try) follow the standard.
11549         Fixed compare ordinal
11550         Made all memory allocated directly to function instead of via icall function.
11551         Small performance fix in is_in_array function
11552                         
11553  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11554
11555         c (mono_string_Internal_ctor_charp_int_int):
11556         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11557         sindex < 0, throw ArgumentOutOfRangeException instead of
11558         ArgumentNullException.
11559
11560         Added new check for length == 0, however
11561         I need to make it return String.Empty from the C code.
11562         
11563         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11564         that calculate the length for us here.
11565         
11566         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11567         mono_string_new_utf16 with mono_string_new, since value is utf8.
11568
11569 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11570
11571         * object.c: register the object for finalization if needed.
11572         Allocate one more char in the string for the terminating 0 char.
11573
11574 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11575
11576         * class.c, class.h, image.c: check if a type implemenst a destructor.
11577         Use the proper key for array class lookups.
11578         * icall.c: register the icalls in the System.GC class.
11579         * gc.c, gc.h: GC-related functions and icalls.
11580
11581 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11582
11583         * icall.c:
11584         * socket-io.c:
11585         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11586         changed a couple of free () by g_free ().
11587
11588         * decimal.c: one-liner in the comments for decimal2string ().
11589
11590 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11591
11592         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11593
11594 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11595
11596         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11597         * object.c (mono_runtime_invoke_array) : handle null in params
11598
11599 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11600
11601         * string-icalls.c: fixed bug in split (one off bug)
11602
11603 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11604
11605         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11606         * icalls.c: added String::Equals as internal method
11607
11608 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11609
11610         * threads.c: fixed bug in the double interlocked functions
11611
11612 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11613
11614         * threads.c: implemented all of the new interlocked icalls.
11615         * string-icalls.c: fix a bug in insert.
11616         * icalls.c: added the icalls for interlocked, removed old string functions.
11617         
11618 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11619
11620         * loader.c: fix off-by-one error when reading argument names.
11621
11622 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11623
11624         * profiler.c: win32 counter implementation (untested).
11625         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11626         (the latter needs testing and more complete impl. from win32 folks).
11627
11628 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11629
11630         * object.c: mono_array_new_full workaround mono_array_class_get
11631         problem.
11632
11633 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11634
11635         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11636         * object.h (mono_string_chars): Changed casting type.
11637
11638 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11639
11640         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11641                            method signatures to use gunichar2 instead of gint16.
11642
11643 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11644
11645         * object.h, object.c: domain-specific versions of mono_object_new and
11646         mono_array_new.
11647
11648 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11649
11650         * object.c: changed String layout
11651
11652         * string-icalls.c (mono_string_Internal_ctor_chara): added
11653         internal string constructors.
11654
11655 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11656
11657         * threads.c: pass 'this' to the thread start routine.
11658
11659 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11660
11661         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11662         InternalCompareStr don't call twice mono_string_cmp_char for the last
11663         character. Improved performance in mono_string_cmp_char.
11664
11665 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11666
11667         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11668         code into its own library: libmonoruntime.
11669
11670 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11671
11672         * object.h, object.c: changed array format so that szarrays do not
11673         require a bounds structure.
11674         * icall.c, appdomain.c: support for new szarray format.
11675
11676 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11677
11678         * metadata.c: compare also the retuns type when comparing signatures:
11679         we didn't do this as an optimization since really overloaded methods
11680         must differ also in the arguments, but this doesn't work with
11681         low-level IL code (or when using explicit conversion operators: see
11682         bug#23498 for an example).
11683
11684 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11685
11686         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11687
11688 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11689
11690         * icall.c: make MonoType::GetElementType its own icall.
11691
11692 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11693
11694         * icall.c: remove MonoMethod_get_Name().
11695         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11696         object.
11697
11698 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11699
11700         * string-icalls.c: optimized a few methods.
11701
11702 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11703
11704         * icall.c: added all new string internal calls
11705         * string-icalls.c: added, new string internal call implementation.
11706         * object.c: added mono_string_new_size for allocating a string a size
11707
11708 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11709
11710         * object.c (mono_object_isinst): use the same code as in the
11711         optimized x86 version.
11712
11713 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11714
11715         * profiler.c: TSC-based timer code (faster and more accurate).
11716         Not hooked up in configure, yet (set USE_X86TSC to 1).
11717
11718 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11719
11720         * profiler.c, profiler.h: track time spent compiling methods.
11721         * threads.c: track thread creation/destruction.
11722
11723 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11724
11725         * profiler.c, profiler.h, profiler-private.h: profiling interface
11726         and sample implementation. Moved here so that it can be used also by
11727         the jit.
11728
11729 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11730
11731         * reflection.c, reflection.h: keep types and other handles separate in
11732         the hash tables for referred tokens. Add guid for modules.
11733
11734 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11735
11736         * assembly.c: fix bugs found with valgrind.
11737         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11738
11739 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11740
11741         * threads: added icall support for getting current domain for
11742                    the thread.
11743  
11744 2002-04-13  Martin Baulig  <martin@gnome.org>
11745
11746         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11747         (MonoDebugVarInfo): Added `index' field for register based addresses.
11748         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11749         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11750         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11751         `MonoDebugVarInfo *this_var'.
11752
11753         * debug-symfile.c (relocate_variable): New static function to write
11754         a location description for a local variable or method parameter.
11755
11756 2002-04-12  Martin Baulig  <martin@gnome.org>
11757
11758         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11759         stack offset and begin/end scope address of a local variable.
11760         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11761         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11762         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11763
11764         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11765         Added new relocation types for start/end scope of a local variable.
11766
11767 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11768
11769         * object.h: add mono_object_domain() macro.
11770         * reflection.c: handle typespecs.
11771         * icall.c: MonoMethod::get_Name() implementation.
11772
11773 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11774
11775         * icall.c: String::GetHashCode() icall implementation.
11776
11777 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11778
11779         * icall.c: String::IndexOfAny icall.
11780         * object.c, object.h: make array->max_length more useful.
11781         Intrduced mono_object_class() and mono_string_length() macros.
11782
11783 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11784
11785         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11786         instead of g_unichar_isdigit.
11787
11788 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11789
11790         * icall.c: Implement a simple Double.ToString().
11791
11792 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11793
11794         * appdomain.h: only io-layer.h is supposed to be included.
11795         * icall.c: explicitly import environ. Fix warning.
11796
11797 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11798
11799         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11800                 return true even if it's not Daylight Savings time.
11801                 Only return false for the case where the function isn't
11802                 implemented for a plaform (read Windows).
11803
11804 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11805
11806         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11807         data with a mutex.
11808
11809 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11810
11811         * mempool.c (mono_mempool_alloc): only use g_malloc when
11812         absolutely necessary.
11813
11814 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11815
11816         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11817
11818         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11819         (mono_class_proxy_vtable): use domain mempool
11820
11821 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11822
11823         * appdomain.h, appdomain.c: split initialization that requires the
11824         execution engine support into mono_runtime_init().
11825
11826 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11827
11828         * class.c (mono_class_init): don't include vtable inside MonoClass
11829         to save some memory, gather some statistics.
11830         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11831
11832 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11833
11834         * icall.c: internalcall implementation for ValueType.Equals().
11835
11836 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11837
11838         * object.c (mono_message_init): moved 
11839         (mono_runtime_exec_main): new arch. independent impl.
11840         (mono_runtime_invoke_array): new method - like
11841         mono_runtime_invoke, but you can pass an array of objects.
11842         (mono_remoting_invoke): new arch. independent impl.
11843         (mono_message_invoke): new arch. independent impl.
11844         (mono_runtime_class_init): new arch. independent impl.
11845         (mono_runtime_object_init): new arch. independent impl.
11846
11847 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11848
11849         * metadata.c, object.c, reflection.c: documented the exported
11850         functions.
11851
11852 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11853
11854         * icall.c: simpler code to pass the assembly builder data to corlib.
11855         Implement GetNestedTypes() internalcall.
11856
11857 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11858
11859         * class.c: warn if a type can't be loaded.
11860
11861 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11862
11863         * image.h: typedef MonoImageOpenStatus
11864         * types.h: removed unused file
11865         
11866 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11867
11868         * icall.c: Enum_ToObject accepts enum value arguments.
11869
11870 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11871
11872         * class.c: move initialization of properties, events and nested
11873         classes, so that they happen for interfaces, too.
11874
11875 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11876
11877         * icall.c: cleanup some ugly casts in Array_SetValue*.
11878
11879 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11880
11881         * icall.c: the values array fro enums is of the correct type, now.
11882         Implement (correctly) getFullName instead of assQualifiedName for
11883         MonoType.
11884         * reflection.h, reflection.c: added mono_type_get_name ().
11885
11886 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11887
11888         * assembly.c, image.h: for each MonoImage, record from wich assembly
11889         it was loaded.
11890         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11891         Make Type.Assembly work.
11892
11893 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11894
11895         * debug-symfile.h: use char* instead of gpointer to avoid
11896         unnecessary casts.
11897
11898         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11899
11900         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11901         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11902
11903 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11904
11905         * icall.c (mono_message_init): impl. (code cleanup)
11906         (ves_icall_InternalExecute): impl. FieldGetter
11907
11908         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11909         defined we call all (non-static)methods through the vtable. 
11910
11911 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11912
11913         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11914         finalizer even though the memory is still referenced (and the chunk of
11915         memory is not freed).
11916
11917 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11918
11919         * assembly.c: fix brokeness.
11920
11921 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11922
11923         * class.c: kill some warnings. Check explicit interface method
11924         implementation also without considering the namespace.
11925         Load also literal strings in static class data.
11926
11927 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11928
11929         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11930         (default_assembly_name_resolver): Make the resolver take the
11931         "base" directory where the assembly was originally defined, so we
11932         can load DLLs that are in the same directory as the assembly that
11933         is being referenced.
11934
11935 2002-03-28  Dick Porter  <dick@ximian.com>
11936
11937         * file-io.h: 
11938         * file-io.c:
11939         * socket-io.c: 
11940         * unicode.h: 
11941         * unicode.c: Warning cleanups
11942
11943 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11944
11945         * object.h, reflection.h: use the correct type instead of MonoObject.
11946
11947 2002-03-28  Martin Baulig  <martin@gnome.org>
11948
11949         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11950         (mono_debug_update_symbol_file): Initialize classes if necessary.
11951
11952 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11953
11954         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11955         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11956
11957 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11958
11959         * assembly.h: fix function prototype.
11960         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11961         * mono-endian.h: use const cast.
11962
11963 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11964
11965         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11966
11967 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11968
11969         * loader.c: don't assert when a typeref can't be loaded, give
11970         a chance to the runtime to trow an exception instead.
11971         * loader.h: fix warning.
11972
11973 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11974
11975         * class.c (mono_class_proxy_vtable): added proxy support
11976
11977 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11978
11979         * icall.c: removed last of PAL calls, added System.Environment
11980         * file-io.h, file-io.c: MonoIO implementation
11981         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11982
11983 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11984
11985         * appdomain.c: do not use the byte marker in ldstr table lookup.
11986         * debug-helpers.c: allow two ':' to separate class and method name.
11987         * object.c: allocate arrays bounds with the GC, too.
11988         * verify: add a few more checks.
11989
11990 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11991
11992         * reflection.c: output also literal strings. Allocate parameter data
11993         with GC_malloc() (thanks, Martin, for catching this!).
11994
11995 2002-03-26  Martin Baulig  <martin@gnome.org>
11996
11997         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11998         include the `this' offset in the `param_offsets'.
11999
12000 2002-03-25  Martin Baulig  <martin@gnome.org>
12001
12002         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
12003         mono_debug_get_class() function to get the classes. Added new
12004         relocation types for arrays and strings.
12005         (mono_debug_get_class): New static function to search in all
12006         referenced assemblies for a metadata token.
12007
12008         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
12009
12010 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
12011
12012         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
12013         hold gc-allocated objects. Make the string heap a stream like the
12014         others. Removed duplicated code when writing stream info.
12015         Added asserts to catch possible buffer overflows. Set the sorted map
12016         for tables that need sorting. Added some documentation.
12017
12018 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
12019
12020         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
12021         for interned strings and vtables.
12022
12023 2002-03-24  Martin Baulig  <martin@gnome.org>
12024
12025         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
12026         it in the array since it was created with g_slist_prepend().
12027
12028 2002-03-24  Martin Baulig  <martin@gnome.org>
12029
12030         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
12031         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
12032         (mono_debug_method_from_token): Renamed to
12033         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
12034         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
12035
12036         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
12037         relocation types.
12038
12039         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
12040
12041 2002-03-24  Martin Baulig  <martin@gnome.org>
12042
12043         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
12044         (mono_debug_method_from_token): New func.
12045
12046         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
12047         New interncall, calls mono_debug_local_type_from_signature().
12048         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
12049         calls mono_debug_method_from_token().
12050
12051 2002-03-23  Martin Baulig  <martin@gnome.org>
12052
12053         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
12054         specifies the number of bytes to be converted, not the array size.
12055         Return the number of chars, not the number of bytes.
12056         (ves_icall_iconv_get_chars): The `byteCount' argument
12057         specifies the number of bytes to be converted, not the array size.
12058
12059 2002-03-23  Martin Baulig  <martin@gnome.org>
12060
12061         * reflection.h (MonoReflectionSigHelper): New type.
12062
12063         * reflection.c (mono_reflection_sighelper_get_signature_local),
12064         (mono_reflection_sighelper_get_signature_local): New functions.
12065
12066         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
12067         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
12068         interncalls.
12069
12070 2002-03-23  Martin Baulig  <martin@gnome.org>
12071
12072         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
12073         is_writeable is set.
12074         (mono_raw_buffer_update): New function to write the modified map
12075         back to disk.
12076
12077         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
12078
12079         * debug-symfile.c (mono_debug_update_symbol_file): Call
12080         mono_raw_buffer_update() when done writing.
12081
12082 2002-03-23  Martin Baulig  <martin@gnome.org>
12083
12084         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
12085
12086         * debug-symfile.c: Added support for arguments and local variables.
12087
12088 2002-03-23  Dick Porter  <dick@ximian.com>
12089
12090         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
12091         protected by ifdefs, hence breaking the w32 build.
12092
12093 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12094
12095         * object.c: implement is_interned() the right way.
12096
12097 2002-03-21  Martin Baulig  <martin@gnome.org>
12098
12099         * debug-symfile.[ch]: New files to handle debugging information
12100         files. There's also support to dynamically update these symbol
12101         files to include machine dependent information.
12102
12103 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
12104
12105         * threads.c (mono_thread_create): new function to create thread
12106         from C
12107
12108 2002-03-20  Martin Baulig  <martin@gnome.org>
12109
12110         * icall.c (ves_icall_InternalInvoke): Create a new object if the
12111         method is a constructor.
12112         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
12113         points to ves_icall_InternalInvoke().
12114
12115 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
12116
12117         * file-io.c: Flush shouldn't throw exceptions.
12118
12119 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
12120
12121         * file-io.c: FileStream flush support; FileSetLength now
12122         restores file pointer.
12123
12124 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12125
12126         * class.c: set image for pointer classes.
12127
12128 2002/03/19  Nick Drochak <ndrochak@gol.com>
12129
12130         * sysmath.c: Forgot one.
12131
12132 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
12133
12134         * sysmath.c: Avoid redefining existing names.
12135
12136 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
12137
12138         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
12139         handled by runtime as icall rather than dllimport from libm.so
12140         * file-io.c, file-io.h: fixed handle argument type.
12141
12142 2002-03-18  Dick Porter  <dick@ximian.com>
12143
12144         * reflection.c (mono_image_get_type_info): rename interface to
12145         iface, because of "#define interface struct" on windows.
12146
12147 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
12148
12149         * class.c, class.h: rename and export mono_ptr_class_get().
12150         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
12151         * reflection.c, reflection.h, icall.c: better/saner type name
12152         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
12153         method signatures.
12154
12155 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
12156
12157         * class.c (mono_class_init): removed hardcoded GHC_SLOT
12158
12159         * icall.c (ves_icall_InternalInvoke): impl.
12160
12161 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12162
12163         * reflection.c: output the interface map table, too.
12164
12165 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12166
12167         * class.c (class_compute_field_layout): separate computation of 
12168         static field layout
12169
12170 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
12171
12172         * icall.c: added System.Buffer support.
12173         * file-io.c: moved file icalls from PAL to FileStream.
12174
12175 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12176
12177         * icall.c (ves_icall_System_Object_GetHashCode): impl.
12178
12179 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
12180
12181         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
12182
12183 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12184
12185         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
12186
12187 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12188
12189         * debug-helpers.{c,h}: moved here from monograph some useful functions
12190         to locate a method by name/signature in a class or image. Included
12191         also a small and flexible IL disassembler.
12192
12193 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12194
12195         * reflection.c: fixup tokens in methods with small header size, too.
12196
12197 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
12198
12199         * object.c (mono_string_to_utf8): remove assert(!error), instead
12200         print a warning. 
12201
12202 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
12203
12204         * icall.c: update to the new mono_Array_class_get interface.
12205
12206 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12207
12208         * appdomain.c, object.c: Boehm-GC enable.
12209         * icall.c: make get_data_chunk() support split data requests.
12210         Ensure a class is initialized in more cases. Return only the first
12211         property found in GetProperties() or the compiler gets confused. 
12212         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
12213         * reflection.h, reflection.c: add fixup mechanism for field and method
12214         tokens. Initialize assembly->typeref in a single place. Output
12215         properties after events. Support custom attributes for events, too.
12216         Typo fix for paramter custom attrs.
12217
12218 2002-03-07  Martin Baulig  <martin@gnome.org>
12219
12220         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
12221
12222 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
12223
12224         * class.c (mono_array_class_get): fix. for multi. dim. arrays
12225
12226 2002-03-06  Martin Baulig  <martin@gnome.org>
12227
12228         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
12229         non-zero lower bounds. See testcases #F10-#F13.
12230
12231 2002-03-05  Martin Baulig  <martin@gnome.org>
12232
12233         * exception.c (mono_get_exception_argument_out_of_range): New exception.
12234
12235         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
12236         ves_icall_System_Array_GetValue(), only calculate the absolute array position
12237         here.
12238         (ves_icall_System_Array_SetValue): Likewise.
12239         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
12240         as argument and does the actual work. This function is used when copying a
12241         multi-dimensional array.
12242         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
12243         now do all the widening conversions of value types.
12244         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12245
12246 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12247
12248         * class.c: remove some magic numbers and use the smbolic names,
12249         instead. Added init_events() to load event info at class init time.
12250         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12251         and mono_metadata_methods_from_event().
12252         * reflection.h, reflection.c: added support for writing out the evnets
12253         related information.
12254
12255 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12256
12257         * reflection.h, icall.c: use a different method (GetInterfaces)
12258         to gather interface info and add isbyref, isprimitive and
12259         ispointer to the ves_icall_get_type_info() return value.
12260
12261 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12262
12263         * class.h: stared adding support for events.
12264         * icall.c: split find_members implementation. Added debug icall to get
12265         the address of an object.
12266         * reflection.c: handle TypeBuilders in mono_type_get_object().
12267
12268 2002-03-01  Martin Baulig  <martin@gnome.org>
12269
12270         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12271         ArgumentOutOfRangeException(), not an ArgumentException().
12272         (ves_icall_System_Array_GetLowerBound): Likewise.
12273         (ves_icall_System_Array_GetValue): Improved argument checking.
12274         (ves_icall_System_Array_SetValue): Improved argument checking.
12275
12276 2002-03-01  Martin Baulig  <martin@gnome.org>
12277
12278         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12279         called with invalid arguments rather than just dying with g_assert().
12280         (ves_icall_System_Array_SetValue): Likewise.
12281         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12282         raise a NotImplementedException instead.
12283         (ves_icall_System_Array_GetLength): Added argument checking.
12284         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12285
12286 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12287
12288         * object.h (mono_assert): new macros mono_assert and
12289         mono_assert_not_reached
12290
12291 2002-02-28  Martin Baulig  <martin@gnome.org>
12292
12293         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12294         and "System::String::IsInterned" to "System::String::_IsInterned".
12295
12296 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12297
12298         * icall.c: remove hacks for typebuilder. Added icall to create a
12299         modified type from a tybebuilder.
12300         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12301         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12302         to create a backing MonoClass for a TypeBuilder.
12303
12304 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12305
12306         * class.c, class.h: more refactoring of class init.
12307         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12308
12309 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12310
12311         * marshal.c, marshal.h: start of marshaling interface.
12312
12313 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12314
12315         * icall.c: fix order in assembly qualified name icall.
12316
12317 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12318
12319         * class.c: do not free str, since we store it in the hash table.
12320         * reflection.h: add label field to MonoILExceptionInfo.
12321         * reflection.c: handle references to more than one assembly. Handle
12322         case when there isn't a module created in the assembly.
12323
12324 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12325
12326         * class.c: Fix typo. Start refactoring of class init code.
12327
12328 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12329
12330         * appdomain.c: exit with 1 on error.
12331         * class.c: we already have the name in MonoClassField.
12332         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12333         MonoStreamHeader instead of an offset of image->raw_metadata.
12334
12335 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12336
12337         * appdomain.c (mono_init): Be even more descriptive about the error.
12338
12339 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12340
12341         * appdomain.c: give the user an informative message when corlib can't
12342         be loaded.
12343
12344 2002-02-26  Martin Baulig  <martin@gnome.org>
12345
12346         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12347         New icall to get the time zone data.
12348
12349 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12350
12351         * reflection.c: set virtual and raw size of section correctly.
12352         * threads.c: transfer domain information to newly created threads.
12353
12354 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12355
12356         * class.c: when instancing a class in a domain, load the default
12357         vaules for static fields from the constant table. Fix System.Enum to
12358         not be an enum.
12359         * icall.c: implement Object::GetType() internalcall. Implemented
12360         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12361         Fixed checking of binding flags in find_members().
12362         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12363         * reflection.c: handle enumerations when writing to the constant
12364         table. Use a different object cache for types.
12365
12366
12367 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12368
12369         * object.c (mono_object_isinst): fix for arrays
12370
12371         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12372
12373 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12374
12375         * object.c: don't use mprotect ()  and fix intern pool hash table
12376         lookup for big endian systems.
12377
12378 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12379
12380         * icall.c: change type_is_subtype_of () signature.
12381
12382 2002-02-21  Mark Crichton  <crichton@gimp.org>
12383
12384         * rand.c, rand.h: Added random number generator for
12385         System.Security.Cryptography classes.
12386
12387         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12388
12389         * icall.c: Added System.Security.Cryptography calls.
12390
12391 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12392
12393         * class.c, icall.c, metadata.c: better support for pointer types.
12394         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12395         * reflection.c: Add support for getting custom attrs for properties
12396         and simplify some code.
12397
12398 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12399
12400         * icall.c: change getToken () and add custom attribute GetBlob()helper
12401         method.
12402         * reflection.h: add custom attrs array to the reflection builder structures.
12403         * reflection.c: encode and emit custom attributes for all the relevant
12404         reflection objects. Cache fieldref and methodref tokens. Change
12405         mono_image_create_token() interface to take a MonoDynamicAssembly.
12406         More complete custom attributes decoder. Load custom attributes for
12407         Assembly, Field, Method and Constructor objects, too. Make the
12408         returned array an Attribute[] one, not object[]. Added
12409         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12410         custom attribute constructor.
12411
12412 2002-02-20  Dick Porter  <dick@ximian.com>
12413
12414         * icall.c:
12415         * rawbuffer.c:
12416         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12417         problem code out for now).
12418
12419 2002-02-19  Radek Doulik  <rodo@ximian.com>
12420
12421         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12422
12423 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12424
12425         * icall.c: register the GetCustomAttributes method.
12426         * object.c, object.h: add mono_string_new_len ().
12427         * reflection.h, reflection.c: added mono_runtime_invoke(),
12428         mono_install_runtime_invoke(). Added
12429         mono_reflection_get_custom_attrs () to load custom attributes and
12430         create the attribute objects.
12431
12432 2002-02-19  Dick Porter  <dick@ximian.com>
12433         * threads-dummy-types.c:
12434         * threads-dummy-types.h:
12435         * threads-dummy.c:
12436         * threads-dummy.h:
12437         * threads-pthread-types.c:
12438         * threads-pthread-types.h:
12439         * threads-pthread.c:
12440         * threads-pthread.h:  Deleted obsolete files
12441
12442 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12443
12444         * class.c (mono_class_vtable): runtime init the class when we
12445         allocate static class data.
12446
12447         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12448
12449         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12450         and String - but we will need generic marshalling support in the
12451         future. 
12452         (mono_init): set the domain name in a ms compatible way
12453
12454         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12455         String[].
12456
12457 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12458
12459         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12460         for sizes
12461
12462         * appdomain.c (mono_domain_unload): impl.
12463
12464 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12465
12466         * appdomain.c, object.c: fix intern pool implementation.
12467         * class.c: fix alignment code.
12468
12469 2002-02-16  Radek Doulik  <rodo@ximian.com>
12470
12471         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12472         and s2 > s1, just copy lower bytes to be compatible with little
12473         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12474         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12475
12476         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12477         force big_endian to be 1 for big endian machines 
12478         (ves_icall_iconv_new_decoder): ditto
12479
12480 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12481
12482         * socket-io.c (convert_sockopt_level_and_name): If the system
12483         doesn't define SOL_IP or SOL_TCP, get them by hand using
12484         getprotobyname() and caching the values (because this could be a
12485         slow operation).
12486         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12487         Use the appropriate struct when the system does support it. Ie,
12488         not all systems have struct ip_mreqn so use struct ip_mreq when
12489         appropriate.
12490
12491 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12492
12493         * reflection.c: handle finally clauses.
12494
12495 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12496
12497         * socket-io.c: use g_snprintf() instead of snprintf.
12498
12499 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12500
12501         * reflection.c (mono_param_get_objects): Cast second argument to
12502         mono_method_get_param_names to a const char** to silence the
12503         compiler warning.
12504
12505         * appdomain.c (mono_domain_assembly_open): Put parens around the
12506         truth statement in the for-loop.
12507
12508         * unicode.c (iconv_convert): Got rid of a compiler warning about
12509         int i being unused when the system has a new iconv.
12510         (iconv_get_length): Same.
12511
12512         * image.c (load_class_names): Cast the second argument to
12513         g_hash_table_insert() to char* to hush compiler warnings about the
12514         arg being a const.
12515         (mono_image_open): Same here.
12516
12517         * socket-io.c: Don't conditionally include sys/filio.h or
12518         sys/sockio.h here anymore since we now get them from
12519         io-layer/io-layer.h
12520         (inet_pton): If the system doesn't support inet_aton, implement
12521         using inet_addr and also #define INADDR_NONE if it isn't defined
12522         by the system.
12523
12524 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12525
12526         * metadata.c, metadata.h: added function to get packing and size info
12527         of a typedef.
12528         * reflection.h, reflection.c: handle field RVA data. Save info about
12529         the table layout if needed. Assign typedef indexes to all the types
12530         before dumping the info about them to avoid forward reference problems.
12531
12532 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12533
12534         * socket-io.c (convert_sockopt_level_and_name): ifdef
12535         SO_ACCEPTCONN because it is not defined on my system (old debian)
12536
12537 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12538
12539         * opcode.c: use stddef.h to get NULL.
12540
12541 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12542
12543         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12544         for FIONBIO, FIONREAD and SIOCATMARK.
12545         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12546         define INADDR_NONE and besides, inet_addr() is deprecated and
12547         should not be used. Use inet_pton() instead - it also has the
12548         added bonus that it can easily handle IPv6 addresses as well.
12549         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12550
12551 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12552
12553         * decimal.c: remove _MSC_VER conditional.
12554
12555 2002-02-13  Dick Porter  <dick@ximian.com>
12556
12557         * socket-io.c: 
12558         * icall.c: Internal calls for Blocking, Select, Shutdown,
12559         GetSocketOption and SetSocketOption
12560
12561 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12562
12563         * assembly.cs: better resolver: use it instead of some kludgy
12564         code.
12565
12566 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12567
12568         * reflection.c: the best way to speed-up the compiler is to avoid
12569         infinite loops.
12570
12571 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12572
12573         * class.c (mono_class_vtable): changed the object layout
12574         (obj->vtable->class). 
12575         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12576
12577 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12578
12579         * assembly.c: look for assemblies in the assembly dir, too.
12580
12581 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12582
12583         * class.c: fix thinko in mono_class_from_type().
12584
12585 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12586
12587         * exception.h, exception.c: added TypeLoadException.
12588         * object.h, object.c: added mono_array_clone ().
12589         * icall.c: handle throwOnError in AssemblyGetType().
12590         Added Array.Clone().
12591         * opcode.h, opcode.c: use a single value for the opcode val.
12592         Compile fix for non-gcc compilers.
12593
12594 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12595
12596         * opcodes.c, opcodes.h: export interesting info about opcodes.
12597
12598 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12599
12600         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12601         icalls. 
12602
12603         * class.c (class_compute_field_layout): set element_class for enums
12604         (mono_class_create_from_typedef): set element_class for normal classes
12605
12606         * icall.c (ves_icall_System_Enum_get_value): impl.
12607
12608         * class.c (mono_class_create_from_typedef): do not set valuetype
12609         flag for System.ValueType and System.Enum
12610
12611 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12612
12613         * unicode.c (iconv_convert): fix big endian problem.
12614
12615 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12616
12617         * class.c: add asserts if we are ever going to scribble over memory.
12618         * socket-io.c: not all systems have AF_IRDA defined.
12619
12620 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12621
12622         * class.c (class_compute_field_layout): do not consider static
12623         fields to compute alignment
12624
12625 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12626
12627         * appdomain.c (mono_appdomain_get): impl.
12628         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12629
12630 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12631
12632         * icall.c: ignore "file://" prefix when loading an assembly.
12633
12634 2002-01-23  Dick Porter  <dick@ximian.com>
12635
12636         * socket-io.c:
12637         * icall.c:
12638         * Makefile.am: Added socket support
12639
12640 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12641
12642         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12643         code back.  This should return the assemblies that are loaded by
12644         the runtime on behalf of an application domain. 
12645
12646         The current implementation is still broken, it just returns every
12647         assembly loaded, but until we get real applications domain this
12648         will do.
12649
12650 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12651
12652         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12653         AppDomain object.
12654
12655 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12656
12657         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12658         the mono_class_from_name lookup.
12659         (ves_icall_get_parameter_info): ditto.
12660         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12661         method.
12662         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12663
12664 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12665
12666         * class.c: load also nested classes on class init.
12667         System.ValueType instance methods gets passed boxed
12668         values, unless methods in derived classed that get a pointer to the
12669         data.
12670         * icall.c: use better name parsing code in GetType().
12671         * image.c, image.h: add mono_image_loaded ().
12672         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12673         * reflection.c, reflection.h: added mono_reflection_parse_type().
12674
12675 2002-01-22  Veronica De Santis <veron78@interfree.it>
12676
12677         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12678         * threads.c : Added the implementation of internal calls for events
12679         * threads.h : Added prototypes of internal calls for events
12680         
12681 2002-01-21  Radek Doulik  <rodo@ximian.com>
12682
12683         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12684
12685 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12686
12687         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12688         (mono_class_value_size): use min_align
12689
12690 2002-01-20  Dick Porter  <dick@ximian.com>
12691
12692         * threads.h:
12693         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12694         so it compiles on w32.
12695
12696 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12697
12698         * metadata.c (mono_type_stack_size): impl.
12699
12700         * class.c (mono_class_get_field): impl. memberref token
12701
12702 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12703
12704         * icall.h : Added the internal calls mapping for CreateMutex_internal
12705                     and ReleaseMutex_internal.
12706         * threads.h : Added the prototype of mutexes internal calls.
12707         * threads.c : Added the implementations of mutexes internal calls.
12708
12709 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12710
12711         * metaparse.h: removed unused file.
12712         * reflection.c, reflection.h: added stream_data_align () function 
12713         to align data in streams and keep stream aligned. Add support for
12714         exception support in method headers.
12715
12716 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12717
12718         * unicode.c: make iconv_convert () return the number of bytess written
12719         in the output buffer.
12720
12721 2002-01-15  Dick Porter  <dick@ximian.com>
12722         * threads.c: Make the runtime's idea of infinite timeouts coincide
12723         with the class library's
12724
12725         Fix a particularly egregious bug in mono_thread_cleanup(). That
12726         code was so utterly bogus it must have been written on a Monday.
12727
12728 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12729
12730         * reflection.h: add subtypes field to TypeBuilder.
12731         * reflection.c: encode constants for literal fields.
12732         Handle subtypes. Fix user string token (and add a zero byte)
12733         at the end.
12734         
12735 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12736
12737         * class.c (mono_class_init): bug fix: assign slot numbers for
12738         abstract methods.
12739
12740 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12741
12742         * reflection.c: don't try to output a code RVA for abstract methods.
12743         Small fixes for method header format. Output parameter info to the
12744         ParamDef table. Save method overriding info to MethodImpl table.
12745         Fix property support. Allow typedef.extends to be a type in the
12746         building assembly.
12747         * verify.c: fix off-by-one error.
12748
12749 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12750
12751         * class.c: fix mono_class_from_mono_type () for szarray types.
12752         Remove unused cache check in mono_class_from_type_spec().
12753         * icall.c: *type_from_name () functions handle simple arrays and byref.
12754         * reflection.c: handle byref and szarray types. Handle methods without
12755         body (gets P/Invoke compilation working). Handle types and fields in
12756         get_token ().
12757         * reflection.h: add rank to MonoTypeInfo.
12758
12759 2002-01-10  Dick Porter  <dick@ximian.com>
12760
12761         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12762         internal calls
12763
12764 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12765
12766         * icall.c: initialize class in type_from_handle ().
12767         Loop also in parent classes for get_method ().
12768         * reflection.c: properly encode class and valuetype types.
12769         Start on encoding TypeBuilder types. Handle fieldrefs.
12770         Use correct length when registering a user string.
12771         Handle ConstructorBuilder and MonoMethod in get_token ().
12772         Make mono_type_get_object () aware of cached types.
12773         * object.c: back out change to mono_string_new ().
12774
12775 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12776         * object.c: mono_string_new should return a NULL when the string 
12777         passed in is NULL -- not try to deference it.
12778         
12779 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12780
12781         * icall.c: hack to make IsSubType work for TypeBuilders.
12782         * reflection.c: emit constructors before methods.
12783         Retrieve param names in mono_param_get_objects().
12784
12785 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12786
12787         * Makefile.am: fix list of headers and sources so automake 1.5
12788         doesn't complain. Removed \# at end of list.
12789
12790 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12791
12792         * reflection.c: get token for a method ref. Set return type of
12793         constructor to void.
12794         * loader.c: debug message.
12795         * class.c: typo fix.
12796
12797 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12798
12799         * icall.c: fix array init with rank > 1. FindMembers
12800         loops in parent class as well.
12801         * image.c: do not insert nested types in name cache.
12802         * reflection.c: warning fix.
12803         * reflection.h: add override method (for interface impl).
12804
12805 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12806
12807         * metadata.c: fix customattr decoding.
12808
12809 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12810
12811         * rawbuffer.cs: Added native Win32 implementation, avoids using
12812         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12813
12814 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12815
12816         * class.c: make the low-level routines handle the cache.
12817
12818 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12819
12820         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12821
12822 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12823
12824         * class.c: fix mono_array_element_size() for objects.
12825         * class.h, class.c: add properties to MonoClass and load them
12826         at init time.
12827         * icall.c: check with isinst() when assigning a value to an array
12828         instead of requiring the classes to match exactly.
12829         Implemented icall for System.Type::GetType().
12830         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12831         enums. Handle bindingflags when looking for methods and fields.
12832         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12833         and mono_metadata_methods_from_property().
12834         * reflection.h, reflection.c: added structures for propreties,
12835         parameters and enums. Implemented mono_property_get_object() and
12836         mono_param_get_objects().
12837
12838 2001-12-18  Dick Porter  <dick@ximian.com>
12839
12840         * file-io.c: Use mono_string_to_utf16() instead of
12841         mono_string_chars()
12842
12843         * object.c: Added mono_string_to_utf16(), which copies the non
12844         NULL-terminated MonoString into a new double-null-terminated
12845         buffer.
12846
12847 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12848
12849         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12850
12851 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12852
12853         * file-io.c: raise exceptions if handle is invalid.
12854
12855 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12856
12857         * assembly.c: yet another check for mscorlib.
12858         * class.c, class.h: load nesting info for classes.
12859         * icall.c: many new functions to support the Reflection classes.
12860         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12861         * reflection.h, reflection.c: mono_image_create_token(),
12862         mono_assembly_get_object(), mono_type_get_object(),
12863         mono_method_get_object(), mono_field_get_object(): methods to return
12864         objects that parallel the C representation of assemblies, types,
12865         methods, fields.
12866
12867 2001-12-11  Dick Porter  <dick@ximian.com>
12868
12869         * icall.c:
12870         * file-io.c: Internal calls for file IO.
12871
12872 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12873
12874         * tabledefs.h: missing FileAttributes.
12875         * verify.h, verify.c: use is_valid_string () to simplify and check for
12876         valid strings more correctly. Fix warnings and speeling.
12877         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12878         Check code: branches, maxstack, method calls.
12879
12880 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12881
12882         * object.c (mono_object_allocate): removed static, so that the jit
12883         can allocate value types.
12884
12885         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12886
12887 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12888
12889         * class.c: init enum types right away and register the
12890         token->MonoClass map in mono_class_create_from_typedef ().
12891         * verify.h, verify.c: first cut of the verifier.
12892         * pedump.c: add --verify switch to verify metadata tables.
12893         * tabledefs.h: add some missing enums.
12894
12895 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12896
12897         * class.c (mono_install_runtime_class_init): impl.
12898         (mono_class_init): renamed mono_class_metadata_init to
12899         mono_class_init, also removed the metadata_inited flag
12900
12901         * object.c (mono_object_isinst): use faster algorithm
12902
12903 2001-11-30  Radek Doulik  <rodo@ximian.com>
12904
12905         * mono-endian.h: reverted last change
12906         added function prototypes
12907
12908         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12909         add mono-endian.c back
12910
12911         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12912         for unaligned access, I've mistaked it with endianess. I am
12913         sorry.
12914         (mono_read16): fix reverted endianess
12915         (mono_read64): ditto
12916         (mono_read32): ditto
12917
12918 2001-11-30  Dick Porter  <dick@ximian.com>
12919
12920         * exception.c: Implement mono_exception_from_name()
12921
12922 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12923
12924         * metadata.h, metadata.c: remove params_size and locals_size and their
12925         calculation from the metadata code: they are only usefult to the
12926         interp.
12927
12928 2001-11-29  Radek Doulik  <rodo@ximian.com>
12929
12930         * object.c (mono_ldstr): swap bytes here, it's probably not the
12931         best place, but works for me now, I'll redo it once I know mono
12932         better, also note that I add PROT_WRITE and don't reset back, also
12933         note that it's only affects big endians, so x86 should be OK
12934
12935         * mono-endian.h (read16): use just glib macros for both endians
12936
12937         * mono-endian.c: removed as glib macros are used in in
12938         mono-endian.h so we don't need to care about endianess for read
12939         macros as glib does that for us already
12940
12941 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12942
12943         * class.h, class.h: take minimum alignment into consideration so
12944         that the fields of a class remain aligned also when in an array.
12945
12946 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12947
12948         * loader.h, loader.c: add mono_method_get_param_names().
12949         * class.c: 0-init class fields.
12950
12951 2001-11-26  Dick Porter  <dick@ximian.com>
12952
12953         * icall.c:
12954         * threads-types.h:
12955         * threads.c: New file that handles System.Threading on all platforms
12956
12957         * object.c: 
12958         * object.h: Remove the synchronisation struct from MonoObject,
12959         replace it with a pointer that gets initialised on demand
12960
12961         * Makefile.am: Replace all the system-specific threading code with
12962         a single file that uses the new wrapper library
12963
12964 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12965
12966         * class.c, class.h: add mono_install_trampoline() so that the runtime
12967         can register a function to create a trampoline: removes the ugly
12968         requirement that a runtime needed to export arch_create_jit_trampoline.
12969         * object.h, object.c: added mono_install_handler() so that the runtime
12970         can install an handler for exceptions generated in C code (with
12971         mono_raise_exception()). Added C struct for System.Delegate.
12972         * pedump.c: removed arch_create_jit_trampoline.
12973         * reflection.c: some cleanups to allow registering user strings and
12974         later getting a token for methodrefs and fieldrefs before the assembly
12975         is built.
12976         * row-indexes.h: updates and fixes from the new ECMA specs.
12977
12978 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12979
12980         * class.h, class.c: add enum_basetype field to MonoClass.
12981         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12982         to get index in the constant table reated to a field, param or
12983         property.
12984         * reflection.h, reflection.c: handle constructors. Set public-key and
12985         version number of the built assembly to 0.
12986         * row-indexes.h: update from new ECMA spec.
12987
12988 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12989
12990         * class.h, class.c: add a max_interface_id to MonoClass.
12991         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12992         since it's used to do that. Added mono_type_type_from_obj().
12993         Make GetType() return NULL instead of segfaulting if the type was not
12994         found. Handle simple arrays in assQualifiedName.
12995         * object.h: add a struct to represent an Exception.
12996         * reflection.c: output call convention in method signature.
12997         Add code to support P/Invoke methods and fixed offsets for fields.
12998
12999 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
13000
13001         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
13002         the value.
13003         * icall.c: use mono_array_addr instead of array->vector: fixes the
13004         reflection image writing.
13005         * reflection.c: init call convention byte to 0 in method signature.
13006         Encode the property signature. Don't output property-related methods
13007         twice. Really process the properties for a type (don't cast a field to
13008         a property, my mom always told me that).
13009         Fix 64 bit issues in pointer alignment in a different and more
13010         readable way.
13011
13012 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
13013
13014         * loader.h: Removed type class from MonoDefaults, added monotype
13015
13016         * loader.c: Loaded MonoType, removed loading of Type
13017
13018         * icall.c (my_mono_new_object): Now returns a System.MonoType,
13019         and fills in System.Type._impl with a RuntimeTypeHandle rather
13020         than the actual MonoClass *
13021
13022         (ves_icall_type_from_handle): change from type_class to
13023         monotype_class
13024
13025         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
13026         implemented
13027
13028         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
13029         implemented
13030
13031         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
13032
13033         (ves_icall_System_Reflection_Assembly_GetType): implemented
13034
13035         (ves_icall_System_MonoType_assQualifiedName): implemented
13036
13037         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
13038
13039 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
13040
13041         * assembly.c (mono_assembly_open): Implement a cache for the
13042         assemblies. 
13043
13044         (mono_assembly_close): only destroy the assembly when the last
13045         reference is gone.
13046         
13047 2001-11-09  Dick Porter  <dick@ximian.com>
13048
13049         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
13050
13051 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
13052
13053         * class.c (mono_class_metadata_init): bug fix: compute the right slot
13054
13055 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
13056
13057         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
13058         from Martin Weindel.
13059         * object.h: add mono_string_chars ().
13060
13061 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
13062
13063         * reflection.c (build_compressed_metadata): Eliminates warnings
13064         and uses 64-bit clean code.
13065
13066         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
13067         (mono_type_equal): Change signature to eliminate warnings.
13068
13069 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
13070
13071         * icall.c, loader.c: remove the internalcall array constructors.
13072         Changes to match the new MonoArray structure.
13073         * object.h, object.c: an array object doesn't allocate an extra
13074         vector. Add mono_array_new_full () to create jagged arrays easily.
13075
13076 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
13077
13078         * metadata.h, metadata.c: add mono_metadata_field_info () to
13079         retreive all the info about a field from vairous tables.
13080         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
13081         * class.h, class.c: augment MonoClassField with more info.
13082         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
13083         policy and load a field's RVA if needed.
13084
13085 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
13086
13087         * class.c (mono_class_metadata_init): create a trampoline for all
13088         virtual functions instead of actually compiling them.
13089
13090 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
13091
13092         * class.h, class.c: include name in MonoClassField.
13093         * class.c: fix fundamental type of System.Object and System.String.
13094         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
13095         tokens in ldtoken.
13096         * icall.c: remove internalcalls for the Reflection stuff that is now
13097         done in C# code.
13098         * loader.c: mono_field_from_memberref () implementation.
13099         * mono-endian.c: thinko (s/struct/union/g).
13100         * object.c, object.h: make the mono_string_* prototypes actually use
13101         MonoString instead of MonoObject.
13102         * reflection.c, reflection.h: updates for changes in the reflection
13103         code in corlib: we use C structures that map to the actual C# classes.
13104         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
13105         fat method header if needed and use the info from the ILGenerator for
13106         methods. Handle fields in types. Misc fixes.
13107
13108 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
13109
13110         * class.c (mono_class_metadata_init): bug fix: always allocate
13111         space for static class data
13112
13113 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
13114
13115         * class.c (mono_compute_relative_numbering): use relative
13116         numbering to support fast runtime type checks.
13117
13118 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
13119
13120         * class.c (mono_class_create_from_typeref): added debugging output
13121         to print class name when MonoDummy is returned instead of real class
13122
13123 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
13124
13125         * class.c (mono_class_metadata_init): interface offset table now
13126         contains pointers into the vtable - this is more efficient for the jit
13127
13128 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
13129
13130         * class.c (mono_class_metadata_init): use a temporary vtable (the
13131         old algorithm only worked for the interpreter, but not for the jit)
13132
13133 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
13134
13135         * loader.c (method_from_memberref): use mono_class_get to get the
13136         class of an array instead of using System.Array directly.
13137         (mono_get_method): also add MEMBERREF methods to the method cache
13138         which usefull for arrays.
13139
13140 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
13141
13142         * pedump.c (arch_compile_method): added to compute vtable entry
13143
13144         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
13145         number of interfaces.
13146         
13147         * class.h: merged MonoArrayClass into MonoClass
13148
13149         * class.c (mono_class_create_from_typedef): compute the vtable size and
13150         allocate space to include the vtable inside MonoClass
13151         (mono_class_metadata_init): initialize the vtable
13152
13153 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
13154
13155         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
13156         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
13157         * image.c: endian fixes by Laurent Rioux.
13158         * object.h, object.c: rename MonoStringObject to MonoString and
13159         MonoArrayObject to MonoArray. Change some function names to conform to
13160         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
13161         guint16* as first argument, so don't use char*.
13162         Provide macros to do the interesting things on arrays in a portable way.
13163         * threads-pthread.c: updates for the API changes and #include <sched.h>
13164         (required for sched_yield()).
13165         * icall.c: updates for the API changes above.
13166         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
13167         platforms that need them.
13168
13169 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13170
13171         * class.c: set the correct type for all the fundamental
13172         type when loading the class.
13173
13174 2001-10-05  Dick Porter  <dick@ximian.com>
13175
13176         * threads-pthread.c (pthread_mutex_timedlock): Simple
13177         compatibility version for C libraries that lack this call.
13178
13179 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13180
13181         * class.c: MonoTypes stored in MonoClass are stored as
13182         fundamental MonoTypes when the class represents a
13183         fundamental type (System.Int32, ...).
13184         The TypeHandle return by ldtoken is a MonoType*.
13185         * icall.c: ves_icall_get_data_chunk () write out all the
13186         PE/COFF stuff. Implement ves_icall_define_method (),
13187         ves_icall_set_method_body (), ves_icall_type_from_handle ().
13188         * image.c: properly skip unknown streams.
13189         * loader.h, loader.c: add type_class to mono_defaults.
13190         * metadata.c, metadata.h: export compute_size () as
13191         mono_metadata_compute_size () with a better interface.
13192         Typo and C&P fixes.
13193         * pedump.c: don't try to print the entry point RVA if there is no entry point.
13194         * reflection.c, reflection.h: many cleanups, fixes, output method
13195         signatures and headers, typedef and typeref info, compress the metadata
13196         tables, output all the heap streams, cli header etc.
13197         * row-indexes.h: typo fixes.
13198
13199 2001-10-04  Dick Porter  <dick@ximian.com>
13200
13201         * object.h: Add a synchronisation mutex struct to MonoObject
13202
13203         * object.c (mono_new_object): Initialise the object
13204         synchronisation mutexes
13205
13206         * icall.c: System.Threading.Monitor internal calls
13207         
13208         * threads-pthread.h:
13209         * threads-pthread.c: System.Threading.Monitor internal calls
13210
13211         * threads-types.h: New file, includes the system-specific thread
13212         structures
13213         
13214         * threads-pthread-types.h:
13215         * threads-pthread-types.c: New files, handle pthread-specific
13216         synchronisation types
13217
13218         * threads-dummy-types.h: 
13219         * threads-dummy-types.c: New files of dummy support for
13220         thread-specific types
13221
13222         * metadata.c:
13223         * image.c:
13224         * pedump.c: include mono-endian.h not endian.h
13225         
13226         * Makefile.am: More threads files.
13227         Name mono-endian.h not endian.h
13228
13229 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
13230
13231         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
13232         stuff and implement a few more bits.
13233         * icall.c: a field needs to be dereferenced twice. Do not use the same
13234         name for two variables in the same scope.
13235         * image.c, image.h: cleanups.
13236
13237 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
13238
13239         * class.c (mono_class_metadata_init): bug fix: compute the right size
13240
13241 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
13242
13243         * icall.c: implemented some of the Reflection internalcalls.
13244         * image.c, image.h: start writing out the PE/COFF image.
13245         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13246         that does the reverse than decode_blob_size ().
13247         * object.c: use mono_metadata_encode_value (). Move here
13248         temporary implementation of mono_string_to_utf8 ().
13249         * rawbuffer.c: make malloc_map static.
13250
13251 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13252
13253         * metadata.c: fix type comparison for arrays.
13254         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13255         Added a couple of new classes to monodefaults.
13256         * icall.c: added a couple of Reflection-related internalcalls.
13257         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13258         Added a byval_arg MonoType to MonoClass.
13259
13260 2001-09-28  Dick Porter  <dick@ximian.com>
13261
13262         * icall.c:
13263         * threads-pthread.h: 
13264         * threads-pthread.c: Implemented internal calls for
13265         LocalDataStoreSlot operations.  Applied mutexes around all shared
13266         data.  Reworked the thread creation and Start() operations to
13267         avoid a race condition.
13268         
13269         * threads-dummy.h:
13270         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13271
13272 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13273
13274         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13275
13276 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13277
13278         * class.c, loader.c: warn and return NULL instead of erroring out.
13279         * icall.c: added System.AppDomain::getCurDomain().
13280         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13281
13282 2001-09-25  Dick Porter  <dick@ximian.com>
13283
13284         * threads-pthread.h:
13285         * threads-pthread.c: Implemented timed thread joining and added
13286         System.Threading.Thread::Join_internal internal call
13287
13288         * icall.c: Added System.Threading.Thread::Join_internal internal call
13289
13290         * threads-dummy.h:
13291         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13292
13293 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13294
13295         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13296         mono_string_intern () to implement the semantics of the ldstr opcode
13297         and the interning of System.Strings.
13298         * icall.c: provide hooks to make String::IsIntern and String::Intern
13299         internalcalls.
13300
13301 2001-09-23  Dick Porter  <dick@ximian.com>
13302
13303         * threads-dummy.c: 
13304         * threads-dummy.h: New files of dummy threading routines
13305
13306         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13307         support code based on system specifics
13308
13309         Rename PTHREAD_LIBS to THREAD_LIBS
13310         
13311 2001-09-23  Dick Porter  <dick@ximian.com>
13312
13313         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13314         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13315         internal calls.
13316         (mono_thread_init): Set up a Thread object instance to return when
13317         the main thread calls Thread.CurrentThread
13318         (mono_thread_cleanup): Wait for all subthreads to exit
13319
13320         * icall.c: New internal calls for System.Threading.Thread::Sleep
13321         (including Schedule) and CurrentThread
13322
13323         * threads.h: New file, to insulate thread-specific stuff from the
13324         rest of the code
13325
13326 2001-09-21  Dick Porter  <dick@ximian.com>
13327
13328         * threads-pthread.h: 
13329         * threads-pthread.c: New file, for handling pthreads-style
13330         threading support.  Start() now starts a new thread and executes
13331         the ThreadStart delegate instance.
13332
13333         * icall.c: Added the internalcall for
13334         System.Threading.Thread::Start_internal
13335
13336         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13337
13338 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13339
13340         * loader.c: work around the different signatures for delegates
13341         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13342
13343 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13344
13345         * class.h, class.c: add mono_class_get_field_from_name ().
13346         * *: Fix C comments and other ANSI C issues.
13347
13348 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13349
13350         * endian.h, assembly.c: fix some endianness issues.
13351
13352 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13353
13354         * loader.h, load.c: add delegate_class to mono_defaults.
13355         Handle runtime provided methods in mono_get_method ().
13356
13357 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13358
13359         * loader.c (mono_get_method): use pinvoke for internal call
13360
13361         * icall.c: use pinvoke for internal call
13362
13363         * loader.c (method_from_memberref): set the method name
13364
13365 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13366
13367         * metadata.c: help the compiler generate better code for
13368         mono_class_from_mono_type ().
13369
13370 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13371
13372         * class.c (mono_class_metadata_init): delayed computing of the
13373         class size to mono_class_metadata_init ()
13374
13375 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13376
13377         * class.c, class.h: add an interfaces member to MonoClass.
13378         * image.c, image.h: add assembly_name field to MonoImage
13379         from the assembly table.
13380         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13381
13382 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13383
13384         * class.c: Handle Array in mono_class_from_mono_type ().
13385         * metadata.c, pedump.c: some endian fixes.
13386
13387 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13388
13389         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13390         * metadata.c: fix small problem introduced with the latest commit.
13391
13392 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13393
13394         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13395         We don't need a MonoMetadata pointer anymore to compare signatures in
13396         mono_metadata_signature_equal (), update callers.
13397         Reduced memory usage an number of allocations for MonoMethodHeader and
13398         MonoMethodSignature.
13399
13400 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13401
13402         * metadata.c: added compare for szarray.
13403
13404 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13405
13406         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13407         and add a couple more types to it and mono_defaults. Give an hint on
13408         classes that need implementing in our corlib and are referenced
13409         in mscorlib.
13410
13411 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13412
13413         * class.h, class.c: keep track if a class is also an Enum.
13414         * loader.c: Implement a couple more types for use in libffi
13415         marshalling. Gives better diagnostics when failing to dlopen
13416         a library. Set method->klass for P/Invoke methods, too.
13417
13418 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13419
13420         * class.c, class.h: add a MonoType this_arg to MonoClass that
13421         represents a pointer to an object of the class' type that
13422         can be used by the interpreter and later the type cache.
13423         Add best guess alignment info for valuetype objects.
13424
13425 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13426
13427         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13428         into MonoType: one less level of indirection and allocation and
13429         simplifies quite a bit of code. Added cache for MonoTypes that are
13430         used frequently, so that we don't need to allocate them all the time.
13431
13432 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13433
13434         * class.c (mono_class_create_from_typedef): System.Enum is also a
13435         value type, although it does not derive from System.ValueType
13436         (maybe a bug in the ms compiler?)
13437
13438         * metadata.c (mono_type_size): return the right size for value types
13439
13440         * loader.c (mono_get_method): only initialize method header if not abstract
13441
13442         * class.c (mono_class_from_mono_type): use mono_default values. 
13443
13444 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13445
13446         * *: use MonoClass pointers instead of <type_tokens>
13447         
13448         * class.h: new flag: metadata_inited.
13449
13450         * class.c (mono_class_metadata_init): impl.
13451         (mono_class_instance_size): impl.
13452         (mono_class_data_size): impl.
13453
13454 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13455
13456         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13457         MonoClass now has the name and name_space fields. 
13458         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13459         mono_get_method () takes and optional MonoClass as argument.
13460         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13461         instead that takes advantage of a map from class names to typedef
13462         tokens in MonoImage.
13463
13464 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13465
13466         * metadata.c: zero is not a valid alignment boundary.
13467         Merge MONO_TYPE_VOID in default decoding code.
13468
13469 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13470
13471         * image.h: merged MonoMetadata into MonoImage
13472
13473         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13474         identify the type of elements.
13475
13476 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13477
13478         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13479         * cil-coff.h: split MonoMSDOSHeader and add size info.
13480         * image.c: add some consistency checks.
13481         * metadata.c: fix row size computation: one programmer
13482         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13483         add explanation for the locator routine.
13484         Fix decoding of size in method header.
13485         
13486 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13487
13488         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13489         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13490         function from gnome-libs.  This uses the right path separator
13491         based on the OS, and also works around a bug in some systems where
13492         a double slash is not allowed. 
13493         (default_assembly_name_resolver): Use g_concat_dir_and_file
13494         (mono_assembly_open): ditto.
13495
13496 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13497
13498         * metadata.c (mono_metadata_signature_equal): impl.
13499
13500         * *: void is now a realy MonoType (instead of using NULL)
13501         
13502         * metadata.c (do_mono_metadata_parse_type): use
13503         mono_metadata_parse_type to parse void value.
13504
13505 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13506
13507         * metadata.c, metadata.h: in the signature and method header store
13508         only the space required for holding the loca vars and incoming arguments.
13509
13510 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13511
13512         * metadata.c (do_mono_metadata_parse_type): treat void like any
13513         other type (instead of assigning NULL);
13514
13515 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13516
13517         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13518
13519 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13520
13521         * image.c (do_mono_image_open): added a cache for arrays.
13522
13523 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13524
13525         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13526         decode a single column from a row in a metadata table and changes
13527         to take advantage of it in the typedef locator (gives a nice speed up).
13528         Store offset info for function params.
13529
13530 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13531
13532         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13533
13534 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13535
13536         * assembly.c: how could mono_assembly_close () had ever worked?
13537         * metadata.c, metadata.h: provide offset info for local vars.
13538         Implement mono_type_size () to take care of alignment as well
13539         as size (it was mono_field_type_size in cli/class.c before).
13540
13541 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13542
13543         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13544
13545         * assembly.h (CORLIB_NAME): set to corlib.dll
13546
13547         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13548
13549 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13550
13551         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13552         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13553         tokentype.h: massive namespace cleanup.
13554
13555 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13556
13557         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13558
13559 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13560
13561         * metadata.c (mono_metadata_free_type): added check for type !=
13562         NULL (void) before calling mono_metadata_free_type()
13563
13564 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13565
13566         * metadata.h, row_indexes.h: added header with enumerations to use
13567         to index in the columns from tables in metadata and to decode coded
13568         tokens: we should start using this instead of embedding magic numbers
13569         all over the code.
13570
13571 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13572
13573         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13574         Move metadata_t info from cli_image_info_t to MonoImage, where
13575         it's easily accessible. Changed all the uses accordingly.
13576         Added the method and class caches to MonoImage.
13577         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13578         and mono_metadata_decode_value () signature to be more consistent
13579         with the other parse functions (and simplify code). Taken advantage
13580         of zero-length array allocation with GCC. Removed reduntant (and
13581         wrong) MonoFieldType struct and use MonoParam instead. Changed
13582         mono_metadata_parse_field_type () to use common code for parsing.
13583         Added mono_metadata_typedef_from_field () and
13584         mono_metadata_typedef_from_method () to lookup a typedef index from a
13585         field or method token.
13586         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13587
13588 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13589
13590         * metadata.c (mono_metadata_parse_field_type): Implement. 
13591         (do_mono_metadata_parse_type): Split engine from
13592         mono_metadata_parse_type, so that we can create smaller structures
13593         for things that just have one pointer to the MonoType (look at
13594         the MonoFieldType)
13595
13596 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13597
13598         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13599         as Jan Gray found out, it is incorrect. 
13600
13601 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13602
13603         * assembly.c: Implement asssembly loading.  This loads an image
13604         and loads all the referenced assemblies.  Come to think of it, we
13605         could always do lazy loading of the assemblies. 
13606
13607         * image.c (mono_image_open): Keep loaded images in a hashtable.
13608
13609         * image.h (MonoImage): Add reference count.
13610
13611 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13612
13613         * assembly.c (mono_assembly_open): Keep track of the file name in
13614         case the assembly has no ASSEMBLY table.
13615
13616         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13617         from get.c here.
13618
13619 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13620
13621         * metadata.c, metadata.h: decode local vars in method header
13622         parse function. Change callers accordingly.
13623
13624 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13625
13626         * metadata.h, cil-coff.h: protect against multiple inclusion.
13627         Added some new structures to hold information decoded from metadata:
13628         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13629         and relevant decoding/free functions.
13630         * metadata.c: implement decoding functions. Add warning for out of bounds
13631         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13632         all the info about a method signature and invocation. Remove check on
13633         uninitialized local var in parse_mh() and fix memory leak.
13634
13635 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13636
13637         * metadata.h: More macros.
13638
13639         * tokentype.h: New file.
13640
13641 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13642
13643         * assembly.c: added a consistency check and initialize
13644         some structures with g_new0().
13645         * metadata.c: fixed a couple more bugs in table size computation
13646         and add other checks for out-of bound access to metadata.
13647
13648 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13649
13650         * metatada.c: fix bugs computing table sizes. Spew a
13651         warning when index in string heap is out of bounds.
13652
13653 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13654
13655         * metadata.h: Add a couple of macros to manipulate tokens. 
13656
13657 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13658
13659         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13660         cli_section_tables).
13661
13662 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13663
13664         * metadata.c (mono_metadata_user_string): New function, provides
13665         access to the UserString heap. 
13666
13667 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13668
13669         * metadata.c: Add inline documentation.
13670
13671 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13672
13673         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13674         files. 
13675
13676 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13677
13678         * typeattr.h: New file, TypeAttribute flags. 
13679
13680 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13681
13682         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13683         mono_assembly_ensure_section): Section loading code.
13684         (load_section_tables): Load the sections.
13685
13686         * mono/metadata/metadata.c (mono_metadata_locate_token,
13687         mono_metadata_locate): Functions to locate the information
13688         definition given a token or a table and an index.
13689         (mono_metadata_compute_table_bases): New.
13690         (compute_size): New function to compute the sizes of the various
13691         tables.
13692
13693         * mono/metadata/metadata.h: Finish listing the different index
13694         types. 
13695
13696         * mono/metadata/pedump.c: Improve to dump new information.
13697
13698 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13699
13700         * mono/metadata/metadata.c: Entered all the tables matching
13701         Beta2. 
13702
13703         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13704