2005-01-25 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
4         possible to add imperative security checks before calling the icall.
5
6 2005-01-25  Dick Porter  <dick@ximian.com>
7
8         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9         the check for mktime() support actually test the mktime() return
10         value.  "Fixes" bug 71682, though the output is still different to
11         MS.
12
13 2005-01-25  Martin Baulig  <martin@ximian.com>
14
15         * class.c (mono_class_is_assignable_from): Make this work for
16         generic instances.
17
18 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
19
20         * marshal.c (mono_string_utf8_to_builder)
21         (mono_string_builder_to_utf16): We might not have ownership of the
22         string. In thise case, we need to create a new buffer.
23
24         * object-internals.h (mono_stringbuilder_capacity): sb->str might
25         be null, in which case, use the default capacity.
26
27 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
28
29         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
30         GC events to the profiler.
31
32 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
33
34         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
35         if you don't want the GC to run.
36
37 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
38
39         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
40         start providing a GC API and keeping different implementations in
41         their own file.
42         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
43
44 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
45
46         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
47         mmap rather than allocating a huge buffer.
48         (mono_debug_close_mono_symbol_file): Free the buffer allocated
49         above.
50
51 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
52
53         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
54         and CheckExecutionRights.
55         * reflection.c|h: Keep the index of the declarative security to be 
56         used, instead of the pointer, when AOT compiler is used. Also add 
57         class initialization when requesting demands.
58         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
59         CheckExecutionRights. Both properties are now FALSE by default, and
60         unmodifiable, unless the --security option is used.
61
62 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
63
64         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
65         reflection.c: properly refcount images and assemblies, many leaks fixed.
66
67 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
68
69         * threadpool.c: increase the timeout for threads in the thread pool to
70         10s.  Fixes bug #67159.
71
72 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
73
74         * class-internals.h: Sun's compiler insists on explicit
75         signed on bit fields to handle then correctly.
76
77 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
78
79         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
80         Make the size of the array fit only the number of invalid path
81         chars that we have.
82
83         * class.c (_mono_class_get): Improve the error reporting when a
84         class referenced is not found, to assist debugging. 
85
86 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
87
88         * threads.c: fix off-by-one error.
89         * domain.c: free data allocated in the domain.
90
91 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
92
93         * reflection.c (mono_method_body_get_object): Fill out exception info
94         as well.
95
96         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
97         structure.
98         
99 2005-01-19  Martin Baulig  <martin@ximian.com>
100
101         * loader.c (mono_get_method_constrained): Make this work again.
102
103 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
104
105         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
106         guint16 to match the managed side.
107
108         * reflection.c (mono_reflection_body_get_object): Fill out local
109         variables array.
110
111         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
112         as well.
113
114         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
115         'local_var_sig_token'.
116
117 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
118
119         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
120         System.Drawing.
121
122         * reflection.c (mono_method_body_get_object): Handle abstract and
123         runtime methods.
124
125 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
126
127         * marshal.c, loader.c, class-internals.h, reflection.c:
128         store the emthod data for a wrapper in an array instead of a list.
129
130 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
131
132         * marshal.c: change the code to allocate memory more
133         conservatively for method wrappers.
134
135 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
136
137         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
138         fields from MonoClass to the marshal info structure where they belong.
139
140 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
141
142         * class.c, object.c, class-internals.h, marshal.c: rearrange
143         some fields and tweak some types to lower memory usage.
144
145 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
146
147         * threads.c (signal_thread_state_change): Handle the case when the
148         target thread is the current thread.
149
150         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
151
152         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
153         emit_ptr_to_object_conv. 
154
155         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
156         marshalling. Fixes #71352.
157
158 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
159
160         * metadata.h, blob.h: move table enum to blob.h so it can be included
161         in any header.
162         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
163         cut the size of MonoImage/MonoDynamicImage.
164
165 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
166
167         * profiler.c (mono_profiler_install_simple): Fix default arguments.
168
169 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
170
171         * reflection.c, reflection.h, icall.c: add a function to check
172         if an attribute type is defined for a metadata object.
173
174 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
175
176         * object-internals.h: Added some needed fields from StringBuilder class.
177         * marshal.c: Set the maxCapacity when creating a StringBuilder.
178
179 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
180
181         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
182         threads before shutting down the runtime.
183
184         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
185
186 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
187
188         * object-internal.h, threads.c: implement stacksize and 
189         parameterized thread start functionality (requires
190         matching corlib). Marked broken code for later removal.
191
192 2005-01-12  Martin Baulig  <martin@ximian.com>
193
194         * class-internals.h (MonoGenericClass): Moved the `initialized'
195         flag to MonoDynamicGenericClass, removed `init_pending'.
196         (MonoGenericInst): Added `is_reference' flag.
197
198 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
199
200         * reflection.c (mono_image_create_pefile): Only set the pe_offset
201         inside the MSDOS header. Fixes #71201.
202
203         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
204         gc thread.
205         (mono_domain_finalize): Ditto.
206
207 2005-01-12  Martin Baulig  <martin@ximian.com>
208
209         * class.c (mono_get_shared_generic_class): Use the cache for
210         non-dynamic generic classes.
211
212         * class-internals.h (mono_class_create_generic_2): Removed
213         function prototype, this function is now static inside class.c.
214
215         * class.c (mono_class_create_generic_2): Made this static, only
216         call it from mono_class_init() and mono_class_setup_parent().
217         (collect_implemented_interfaces_aux): Call mono_class_init() on
218         the interfaces we collect.
219         (mono_class_setup_vtable): Call mono_class_init (class->parent).
220
221 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
222
223         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
224         it a real thread handle.
225
226         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
227         MonoJitExceptionInfo, since each catch clause needs its own variable.
228         
229 2005-01-11  Dick Porter  <dick@ximian.com>
230
231         * image.c (mono_pe_file_open): New variant on mono_image_open()
232         that does not set up the CLI metadata; used for FileVersionInfo so
233         it can get the data for windows binaries too.
234         
235         * process.c (process_read_string_block): Don't read off the end of
236         the StringTable block.
237
238         These both fix bug 70766.
239
240 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
241
242         * gc.c: set some fields to NULL at GC cleanup time.
243         * threads.c: if we quit the main thread, call exit ().
244
245 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
246
247         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
248
249 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
250
251         * threads.h, threads.c, object.c: added accessor and settor for
252         main_thread. Handle it specially when exiting from it: wait
253         for other foreground threads to exit.
254
255 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
256
257         * process.c, verify.c: remove some bloat.
258
259 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
260
261         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
262         the calling convention to cdecl under win32.
263
264 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
265
266         * object.c (mono_object_get_size): New function to get the size of
267         an object instance.
268
269         * profiler.c (simple_allocation): Use above.
270
271 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
272
273         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
274         ves_icall_System_AppDomain_getRootDomain (as it's not required to
275         get an appdomain by it's id and we can't assume the root's id is 0).
276         * domain-internals.h: Change the function prototype to match.
277         * icall.c: Change the icall table for AppDomain.
278
279 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
280
281         * locales.c (string_invariant_compare_char): Only compute
282         GUnicodeTypes in the case where we need them.  Test for ordinality
283         first and return if so.
284
285         From the commit:
286
287                 /*
288                  * FIXME: here we must use the information from c1type and c2type
289                  * to find out the proper collation, even on the InvariantCulture, the
290                  * sorting is not done by computing the unicode values, but their
291                  * actual sort order.
292                  */
293
294 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
295
296         * loader.c: for P/Invoke methods, allow the "Internal" shared
297         library name to refer to the calling process symbol namespace.
298
299 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
300
301         * Makefile.am: Add the security manager to the build.
302         * security-manager.c|h: New. Initialization of the security manager.
303
304 2005-01-07  Dick Porter  <dick@ximian.com>
305
306         * threads.c: 
307         * monitor.c: Update thread state during Monitor and WaitHandle
308         waits.  Fixes bug 71031.
309
310 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
311
312         * reflection.c (property_encode_signature): Correctly handle when the
313         property has no methods.
314
315 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
316
317         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
318         
319         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
320         fields from mb, not rmb. Fixes #71017.
321
322         * marshal.c (emit_ptr_to_str_conv): Add support for 
323         ByValTStr -> string conversion. Fixes #71015.
324
325         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
326
327         * mempool.c (mono_mempool_contains_addr): New helper function.
328
329 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
330
331         * metadata.c (mono_metadata_compute_size): Fix size calculation of
332         HasSematics encoded fields.
333         
334         * metadata.c (mono_type_to_unmanaged): Improve error message for 
335         invalid string marshalling.
336
337         * metadata.c: Fix warnings.
338         
339 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
340
341         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
342         profiler support.
343
344 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
345
346         * domain.c object.c domain-internals.h: Revert part of r38077 since the
347         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
348         tests.
349
350 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
351
352         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
353         so methods containing these can be AOTed.
354
355 2005-01-03  Martin Baulig  <martin@ximian.com>
356
357         * loader.c (find_method): Removed the hack for generic instances.
358         (method_from_memberref): If our parent is a generic instance, pass
359         its generic type definition to find_method() and then inflate the
360         method.
361         (mono_get_method_constrained): Pass the generic type definition to
362         find_method() and inflate the method later.
363
364         * class-internals.h (MonoStats): Added `generic_class_count'.
365
366         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
367         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
368
369         * reflection.c (mono_custom_attrs_from_params): Don't ignore
370         generic type definitions.
371
372 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
373
374         * loader.c icall.c: Fix warnings.
375
376 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
377
378         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
379         blittable types. Fixes #70864.
380
381 2004-12-29  Martin Baulig  <martin@ximian.com>
382
383         * icall.c
384         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
385
386         * reflection.c (mono_method_get_object): Create a
387         "System.Reflection.MonoGenericMethod" for inflated methods; don't
388         call mono_get_inflated_method().
389
390         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
391
392 2004-12-27  Martin Baulig  <martin@ximian.com>
393
394         * class-internals.h (MonoMethod): Added `is_inflated' flag.
395         (MonoMethodInflated): Added `inflated' field.
396
397         * class.c (mono_class_inflate_generic_method): Don't really
398         inflate the method here; just set the `is_inflated' flag in the
399         MonoMethod.
400         (mono_class_get_inflated_method): Actually inflate the method here
401         if it's not already inflated; we use the MonoMethodInflated's new
402         `inflated' field as a cache.
403
404 2004-12-26  Martin Baulig  <martin@ximian.com>
405
406         * class.c
407         (inflate_generic_class): Moved some code out of inflate_generic_type().
408         (mono_class_inflate_generic_method): If we're already inflated,
409         inflate the context and use the declaring method; ie. make sure
410         the declaring method of an inflated method is always the generic
411         method definition.
412         (mono_class_create_from_typedef): Create
413         `class->generic_container->context->gclass'.
414
415 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
416
417         * metadata-internals.h, marshal.c, reflection.c: More
418         MonoGHashTable->GHashTable.
419
420         * domain-internals.h, class.c: Change MonoGHashTable's into
421         GHashTables for some cases where no gc stuff is used
422
423         All users: update apis
424
425 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
426
427         * metadata.c (builtin_types): Make this `const'. Makes this get
428         put into the shareable section.
429         (mono_metadata_init): Casts to make gcc happy.
430
431 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
432
433         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
434
435 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
436
437         * icall.c: Added an internal call to retrieve the position and length
438         of assembly-level declarative security attributes (RequestMinimum, 
439         RequestOptional and RequestRefuse). This is used by the Assembly class
440         to re-create the corresponding permission sets.
441
442 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
443
444         * marshal.c: fix the stelemref wrapper to be type correct
445         (and faster).
446
447 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
448
449         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
450         to do key & 0x7fffffff. Hashtable already does this. It just
451         results in longer code.
452
453 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
454
455         * appdomain.c: Bump corlib version.
456         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
457         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
458         * reflection.c|h: Add functions to get declarative security infos
459         (blob position and length) for assemblies, classes and methods.
460
461 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
462
463         * reflection.c: sort the constant table (bug #70693).
464
465 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
466
467         * object-internals.h, threads.c, domain.c: add accessors for
468         the MonoThread and MonoDomain tls keys.
469
470 2004-12-18  Martin Baulig  <martin@ximian.com>
471
472         * class.c (inflate_generic_type): If we're inflating a generic
473         instance, set `ngclass->context->container = context->container';
474         ie. the container we inflated into.
475
476         * metadata.c (mono_metadata_parse_generic_param): Reflect above
477         inflate_generic_type() changes.
478
479 2004-12-17  Martin Baulig  <martin@ximian.com>
480
481         * class-internals.h
482         (MonoGenericClass): Replaced `MonoType *generic_type' with
483         `MonoClass *generic_class'.  Removed `dynamic_info'; if
484         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
485         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
486
487 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
488
489         * exception.c (mono_exception_from_token): New helper function.
490
491 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
492
493         * assembly.c (mono_assembly_load_with_partial_name): Call 
494         mono_assembly_loaded before invoking the preload hooks. Fixes
495         #70564.
496
497         * object-internals.h (MonoThread): Change culture_info and 
498         ui_culture_info into an array.
499
500         * threads.c: Cache culture info objects from more than one appdomain.
501
502         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
503         current UI culture.
504
505 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
506
507         * threads.h threads.c appdomain.c: Clear the culture_info field of
508         all threads during unloading if they point to an object in the dying
509         appdomain.
510
511 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
512
513         * culture-info.h (TextInfoEntry): New struct
514         * object-internals.h: sync with managed
515         * locales.c: fill the `text_info_data' field
516         * culture-info-tables.h: update
517
518 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
519
520         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
521         collector.
522
523 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
524
525         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
526         (ves_icall_ModuleBuilder_getMethodToken): Ditto
527
528 2004-12-12  Martin Baulig  <martin@ximian.com>
529
530         * mono-debug-debugger.c (write_type): If we're an enum and the
531         builtin types have already been initialized, call mono_class_init().
532
533 2004-12-11  Martin Baulig  <martin@ximian.com>
534
535         * metadata.c (mono_metadata_load_generic_params): Added
536         `MonoGenericContainer *parent_container' argument; automatically
537         compute `container->is_method'; pass the correct owner to
538         get_constraints().      
539
540         * reflection.c (compare_genericparam): Sort the GenericParam table
541         according to increasing owners. 
542
543 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
544
545         * profiler.c: allow disabling the default profiler.
546
547 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
548
549         * decimal.c, icall.c: allow disabling System.Decimal support.
550
551 2004-12-09  Marek Safar <marek.safar@seznam.cz>
552
553         * reflection.c: Add support for null attribute arguments.
554
555 2004-12-09  Martin Baulig  <martin@ximian.com>
556
557         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
558         names to get rid of compiler warnings.
559
560 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
561
562         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
563         mono_marshal_load_type_info (). Fixes #69625.
564         (mono_marshal_get_ptr_to_struct): Likewise.
565
566 2004-12-08  Martin Baulig  <martin@ximian.com>
567
568         * mono-debug.h: Bumped version number to 47.
569
570         * mono-debug-debugger.c
571         (mono_debugger_event_handler, mono_debugger_event): Take two
572         guint64 arguments insteed of a gpointer and a guint32.  
573
574 2004-12-08  Martin Baulig  <martin@ximian.com>
575
576         * debug-mono-symfile.h
577         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
578         `address' to `native_offset'.
579
580 2004-12-08  Martin Baulig  <martin@ximian.com>
581
582         * class.c (mono_class_create_from_typespec): Only inflate if we
583         either have `context->gclass' or `context->gmethod'.
584
585 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
586
587         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
588
589         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
590
591         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
592
593         * reflection.c (mono_assembly_get_object): Remove the workaround put
594         in for the release.
595         
596         * appdomain.c: Use the corlib_internal field from MonoAssembly.
597
598         * appdomain.c: Bump corlib version.
599
600         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
601         be visible in other appdomains.
602
603 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
604
605         * threads.c: Interlocked inc and dec for longs were messed up,
606         use a KISS based impl for this. Fixes 70234
607
608 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
609
610         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
611
612 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
613
614         * icall.c: fix to follow policy not to allow struct
615         arguments in icalls.
616
617 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
618
619         * process.c: make the patch that handles spaces in file paths work
620         on mono/windows too.
621
622 2004-12-06  Martin Baulig  <martin@ximian.com>
623
624         * class.c (mono_class_create_generic): Call
625         mono_class_setup_supertypes() if we're dynamic.
626         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
627
628 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
629
630         * object-internals.h: Add new fields to MonoThread.
631
632         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
633
634         * icall.c threads-types.h threads.c: Add new icalls.
635
636         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
637
638         * object-internals.h (MonoReflectionAssembly): Sync object layout with
639         managed side.
640
641         * appdomain.c: Bump corlib version.
642
643         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
644         internal assemblies. Fixes #69181.
645
646 2004-12-05  Martin Baulig  <martin@ximian.com>
647
648         * class.c (mono_class_inflate_generic_signature): Make this a
649         no-op if `context' is NULL or we don't have any type parameters;
650         also copy `sentinelpos'.        
651
652 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
653
654         * image.c: Add unbox_wrapper_cache.
655
656         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
657
658         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
659         function generator.
660         
661         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
662         Fixes #70173.
663
664         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
665         
666 2004-12-04  Martin Baulig  <martin@ximian.com>
667
668         * loader.c (mono_method_get_signature_full): New public function;
669         like mono_method_get_signature(), but with an additional
670         `MonoGenericContext *' argument.
671
672         * class.c (mono_class_inflate_generic_signature): Formerly known
673         as inflate_generic_signature(); make this public.
674
675 2004-12-04  Martin Baulig  <martin@ximian.com>
676
677         * metadata.c
678         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
679         instead of a `MonoGenericContainer *'.  
680         (mono_metadata_parse_array_full): Likewise.
681         (mono_metadata_parse_signature_full): Likewise.
682         (mono_metadata_parse_method_signature_full): Likewise.
683         (mono_metadata_parse_generic_inst): Likewise.
684         (mono_metadata_parse_generic_param): Likewise.
685         (mono_metadata_parse_mh_full): Likewise.
686         (mono_type_create_from_typespec_full): Likewise.
687
688 2004-12-03  Martin Baulig  <martin@ximian.com>
689
690         * class-internals.h (MonoGenericContainer): Replaced the
691         `MonoGenericContext * pointer with a `MonoGenericContext'
692         structure and made it the first element.
693
694 2004-12-03  Martin Baulig  <martin@ximian.com>
695
696         * class.c
697         (inflate_generic_type): Set the `context->container' when creating
698         a new MonoGenericContext.
699         (mono_class_inflate_generic_method): Likewise.
700         (mono_class_create_from_typespec): Just use `context->container'
701         to get the container.
702
703         * loader.c (method_from_methodspec): Set `context->parent' from
704         `context->container' - and if that's a method container, use its
705         parent.  Also set the `context->container' when creating a new
706         MonoGenericContext.
707         (mono_get_method_from_token): Use just `context->container' to get
708         the container.
709
710         * metadata.c (do_mono_metadata_parse_generic_class): Also set
711         `gclass->context->container'.
712
713         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
714         the `context->container' when creating a new MonoGenericContext.
715
716 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
717
718         * reflection.c (compare_genericparam): Sort params with identical
719         owner by their number. Fixes gen-111 on sparc.
720
721 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
722
723         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
724         around the domain changes.
725
726         * appdomain.c (mono_domain_unload): Handle the case when the thread
727         calling Unload is itself being aborted during unloading. Fixes #70022.
728
729         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
730
731         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
732         checkpoint_func as an icall so it gets a wrapper.
733         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
734         in the cross-appdomain wrappers too.
735
736         * threads.c (mono_thread_has_appdomain_ref): Make this public.
737
738         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
739
740         * reflection.c: Fix some memory leaks.
741         
742 2004-12-02  Martin Baulig  <martin@ximian.com>
743
744         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
745
746         * metadata.c (generic_class_cache): New static hashtable.
747         (mono_metadata_lookup_generic_class): New public method.
748
749 2004-12-02  Martin Baulig  <martin@ximian.com>
750
751         * class.c (mono_class_create_from_typedef): Call
752         mono_class_setup_parent() and mono_class_create_mono_type() before
753         parsing the interfaces.
754
755 2004-12-02  Martin Baulig  <martin@ximian.com>
756
757         * metadata.c (generic_inst_cache): New static hashtable.
758         (mono_metadata_lookup_generic_inst): New public function.
759         (mono_metadata_inflate_generic_inst): New public function.
760         (mono_metadata_parse_generic_inst): New public function.
761         (do_mono_metadata_parse_generic_class): Use the new
762         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
763         since this'll also use the cache.
764
765         * reflection.c (mono_reflection_bind_generic_method_parameters):
766         Use mono_metadata_lookup_generic_inst() to use the new cache.
767
768         * class.c (inflate_mono_type): Use
769         mono_metadata_inflate_generic_inst() to inflate a generic
770         instance; this'll also use the new cache.
771
772         * loader.c (method_from_methodspec): Use
773         mono_metadata_parse_generic_inst() and
774         mono_metadata_inflate_generic_inst() rather than parsing it
775         manually, so we can use the new cache.
776
777 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
778
779         * threads.c (wait_for_tids): Do not incorrectly free threads when 
780         the wait times out.
781
782 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
783
784         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
785         iter->args based on whether parameters are passed in registers (i.e.
786         MONO_ARCH_REGPARMS is defined)
787
788 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
789
790         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
791         the exception message. Fixes #70070.
792         (method_from_methodspec): Fix warnings.
793
794 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
795
796         * process.c: (complete_path) return the path quoted
797
798 2004-12-01  Martin Baulig  <martin@ximian.com>
799
800         * class-internals.h (MonoGenericInst): New structure.
801         (MonoGenericClass): Replaced `type_argc', `type_argv' and
802         `is_open' with `MonoGenericInst *inst'.
803         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
804         `is_open' with `MonoGenericInst *inst'.
805
806 2004-11-30  Martin Baulig  <martin@ximian.com>
807
808         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
809
810         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
811         to `generic_class_cache'.
812
813         * metadata.c
814         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
815         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
816         (mono_generic_inst_is_valuetype): Renamed to
817         mono_generic_class_is_valuetype().
818
819         * class-internals.h
820         (MonoGenericInst): Renamed to MonoGenericClass.
821         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
822         (MonoClass): Renamed `generic_inst' to `generic_class'.
823         (MonoGenericContext): Renamed `ginst' to `gclass'.
824
825         * object-internals.h
826         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
827
828         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
829         mono_reflection_generic_class_initialize().
830
831         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
832         now known as "System.Reflection.MonoGenericClass".
833         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
834
835 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
836
837         * class-internals.h: Added a flag field to MonoClass to cache the
838         declarative security attributes actions associated with the class.
839         * domain-internals.h: Added booleans to MonoJitInfo to cache the
840         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
841         applicable to the JITted method.
842         * reflection.c|h: Added functions to extract (as flags) which security
843         actions are available (declaratively) for a method, class or assembly.
844         * metadata.c|h: Added functions to search the declarative security
845         table in the metadata.
846         
847 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
848
849         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
850         EXPORTEDTYPES are already in the class name cache, so there is no
851         need to add extra code here to look at them. Just removes a bit of
852         cruft.
853
854         (ves_icall_System_Environment_get_TickCount): No need for #if
855         WINDOWS. We already have the code in io-layer.
856
857 2004-11-28  Martin Baulig  <martin@ximian.com>
858
859         * loader.c
860         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
861         Fixes gen-112.cs.
862
863 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
864
865         * assembly.c (do_mono_assembly_open): Instead of having a
866         conditional WITH_BUNDLE, incorporate support for bundles here, by
867         having a global `bundles' variable holding a pointer to the actual
868         bundles. 
869
870         (mono_register_bundled_assemblies): New API call used by the
871         bundle code. 
872
873         See mkbundle.1 for details.
874         
875 2004-11-27  Martin Baulig  <martin@ximian.com>
876
877         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
878         the vtable for generic methods.
879
880 2004-11-26  Martin Baulig  <martin@ximian.com>
881
882         * metadata.c
883         (mono_metadata_generic_method_hash): New public function.
884         (mono_metadata_generic_method_equal): Likewise.
885
886         * class-internals.h
887         (MonoGenericContainer): Added `GHashTable *method_hash'.
888
889         * reflection.c (ReflectionMethodBuilder): Added
890         `MonoGenericContainer *generic_container'.
891         (reflection_methodbuilder_to_mono_method): Don't create a new
892         MonoGenericContainer each time we're called.
893         (mono_reflection_bind_generic_method_parameters): Use
894         `container->method_hash' to cache the results so we don't create a
895         different method if we're called several times with the same
896         arguments.
897
898         * loader.c (method_from_methodspec): Use the new
899         `container->method_hash' here, too.
900
901 2004-11-26  Martin Baulig  <martin@ximian.com>
902
903         * class.c (inflate_generic_signature): Correctly compute
904         `res->has_type_parameters'.
905         (mono_class_vtable): Use the `has_type_parameters' flag to
906         determine whether we're a generic method.
907
908         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
909
910 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
911
912         * object.c (mono_runtime_run_main): Fix a small memory leak.
913
914 2004-11-25  Martin Baulig  <martin@ximian.com>
915
916         * class.c (set_generic_param_owner): Fixed the loop.
917
918 2004-11-25  Martin Baulig  <martin@ximian.com>
919
920         * object.c (mono_class_vtable): Don't create any JIT wrappers for
921         generic methods.
922
923 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
924
925         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
926         names. Fixes #69787.
927
928 2004-11-24  Martin Baulig  <martin@ximian.com>
929
930         * class.c (mono_class_create_generic_2): If we don't have a
931         `ginst->parent', inflate `gklass->parent' to get our parent.
932
933 2004-11-24  Martin Baulig  <martin@ximian.com>
934
935         * reflection.c (compare_genericparam): Correctly sort the
936         GenericParam table; fixes #69779.
937
938 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
939
940         * reflection.c: When writing a PE file, don't create a huge
941         buffer in memory. Just write the arrays we have to the file.
942         This reduces memory usage.
943
944         * metadata-internals.h: MonoDynamicStream pefile is no longer used
945         globally.
946
947 2004-11-17  Martin Baulig  <martin@ximian.com>
948
949         * class.c (mono_class_init): Don't setup `class->parent' for
950         dynamic instances; moved this to mono_class_generic_2().
951         (mono_class_create_generic): Also set `klass->inited' for dynamic
952         generic instances.
953         (mono_class_create_generic_2): Don't do anything for dynamic
954         generic instances.  Set `klass->parent' here and also call
955         mono_class_setup_parent() here. 
956
957         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
958         `MonoType *parent' argument; set `ginst->parent' before calling
959         mono_class_create_generic_2(), so we set the correct parent.
960
961 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
962
963         * reflection.c: allow getting attributes from ModuleBuilder
964         (used by ikvm).
965
966 2004-11-17  Martin Baulig  <martin@ximian.com>
967
968         * class.c (mono_class_create_from_typedef): If a type parameter is
969         inherited from an outer class, set its owner to that class.
970
971 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
972
973         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
974           for (int*) written size. This fixes bug #69592.
975
976 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
977
978         * icall.c: Added IsAuthenticodePresnet internal call.
979         * image.c|h: New function that check a MonoImage for an Authenticode
980         signature in the certificate PE data directory.
981         * security.c|h: New internal call to ask the runtime if an 
982         Authenticode signature seems referenced in the PE header.
983
984 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
985
986         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
987
988         * reflection.c (mono_image_create_pefile): Free the assembly streams
989         after writing out the assembly file.
990
991         * object.c (mono_runtime_run_main): Fix small memory leak.
992
993         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
994         property access modifiers. Fixes #69389.
995
996 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
997
998         * domain.c, object.c, object-internals.h, domain-internals.h,
999         object.h, marshal.c: keep dynamic code info per domain.
1000
1001 2004-11-15  Martin Baulig  <martin@ximian.com>
1002
1003         * class.c (mono_type_get_name_recurse): Put type arguments in
1004         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
1005         see bug #68387.
1006
1007 2004-11-15  Martin Baulig  <martin@ximian.com>
1008
1009         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
1010         (mono_class_setup_vtable): When computing `the_cname' for a
1011         generic instance, don't include the namespace since we'd otherwise
1012         add it twice.
1013
1014 2004-11-15  Martin Baulig  <martin@ximian.com>
1015
1016         * class.c (mono_class_create_generic): Changed return type to void.
1017         (mono_class_create_generic_2): New public function; setup
1018         `class->method', `class->field' and `class->interfaces' here
1019         instead of in mono_class_init().
1020
1021         * class.h (mono_class_create_generic): Moved to class-internals.h.
1022
1023 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
1024
1025         * reflection.c (mono_image_create_pefile): take a file HANDLE.
1026         rather than writing to memory, write to this file. Right now,
1027         we are just writting into a buffer, and copying that. However
1028         we can avoid the buffer later.
1029
1030         (mono_dynamic_stream_reset): new function
1031
1032         * icall.c, object-internals.h: update for the above.
1033
1034 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
1035
1036         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
1037         have been using gc'd memory. First it is slower, unlikely
1038         the comment in the source code said, secondly, it increases
1039         our footprint to do it in the gc.
1040
1041         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
1042         the method so that it does not have to copy to managed code.
1043
1044 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
1045
1046         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
1047
1048 2004-11-12  Martin Baulig  <martin@localhost>
1049
1050         * reflection.c (mono_image_create_token): Allow generic method
1051         definitions here, since they may appear in an `.override'; see
1052         gen-98/gen-99 for an example.
1053
1054 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
1055
1056         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
1057         #69365.
1058
1059         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
1060         descriptive.
1061
1062 2004-11-11  Martin Baulig  <martin@ximian.com>
1063
1064         * class.c (mono_class_setup_vtable): In an explicit interface
1065         implementation, the method name now includes the arity.
1066
1067 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
1068
1069         * object.c (mono_array_full_copy): Fix warning.
1070
1071 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
1072
1073         * appdomain.c: Removed look_for_method_by_name(). Use the new method
1074         mono_class_get_method_from_name() instead.
1075         
1076         * class-internals.h: Added two new types of wrappers. 
1077         Added MonoRemotingTarget enum. Added new trampoline function type, which
1078         takes an additional MonoRemotingTarget value as parameter, so it is
1079         possible to request a trampoline for a specific target.
1080         
1081         * class.c: Added new mono_class_get_method_from_name() method.
1082         
1083         * class.h: In MonoRemoteClass, we can have now to vtables, one for
1084         general remoting sinks and one specific for cross domain calls.
1085         
1086         * debug-helpers.c: Added new wrapper names.
1087         
1088         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
1089         of a remote class.
1090         
1091         * image.c: Porperly delete value objects form the remoting invoke hashtable.
1092         
1093         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
1094         with several other methods (mono_marshal_get_xappdomain_dispatch,
1095         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
1096         and others) can generate a fast remoting wrapper for cross domain calls.
1097         More information can be found in docs/remoting.
1098         Other changes: Removed mono_find_method_by_name, and used
1099         mono_class_get_method_from_name instead.
1100         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
1101         is stored in the remoting invoke hashtable.
1102         
1103         * marshal.h: published the new method for getting the xdomain wrapper,
1104         and also added a method for getting the adequate wrapper for a given
1105         method and target.
1106         
1107         * object-internals.h, object.c: Added a couple of methods for capying and
1108         cloning arrays.
1109         Modified mono_install_remoting_trampoline, which takes the new remoting
1110         trampoline that has a remoting target as parameter.
1111         mono_class_proxy_vtable now also takes a remoting target as parameter, and
1112         will return the most suitable vtable for the target.
1113         Added mono_remote_class_vtable, which returns the vtable of a remote class
1114         (which can be the normal remoting vtable or the xdomain vtable).
1115         
1116         * threads.c: the xdomain invoke and dispatch wrappers must also be
1117         protected against interruptions.
1118
1119 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1120
1121         * icall.c: use memmove in BlockCopyInternal when the source and
1122         destination arrays are the same.
1123
1124 2004-11-09  Martin Baulig  <martin@ximian.com>
1125
1126         * class-internals.h (MonoGenericContainer): Removed `method' and
1127         `signature', replaced them with `is_method' and `is_signature'
1128         flags.  Added `context'.
1129
1130         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
1131         instead of a `MonoGenericContainer *'.
1132
1133         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
1134         for dynamic type parameters.
1135         (mono_metadata_load_generic_params): Setup `container->context'.
1136
1137         * reflection.c (mono_reflection_setup_generic_class): Setup
1138         `tb->generic_container->context'.
1139         (do_mono_reflection_bind_generic_parameters): Use
1140         mono_class_inflate_generic_type() to correctly inflate types,
1141         rather than using our own hack just for MONO_TYPE_VAR.
1142
1143 2004-11-09  Martin Baulig  <martin@ximian.com>
1144
1145         * class.c (mono_class_inflate_generic_method): Small fix; don't
1146         crash here.
1147
1148         * icall.c
1149         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
1150         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
1151         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
1152         (ves_icall_Type_BindGenericParameters): Likewise.
1153         (ves_icall_Type_get_IsGenericInstance): Likewise.
1154         (ves_icall_Type_GetGenericParameterPosition): Likewise.
1155         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
1156         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1157         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1158
1159 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
1160
1161         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
1162         assembly versions and public key tokens. Fixes #69113.
1163
1164 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
1165
1166         * metadata.c: fix bug introduced with the type cache changes
1167         on 2004-11-06.
1168
1169 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
1170
1171         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
1172         the MonoClass pointer instead of the token in exception clauses.
1173         * reflection.c: updates for the above and make the code not depend
1174         on the structure of MonoExceptionClause.
1175
1176 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1177
1178         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1179         Add support for dynamic assemblies. Fixes #69114.
1180
1181         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1182
1183 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1184
1185         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1186         since most only those methods use it. the code member of
1187         MonoMethodPInvoke was dead, so that can be removed too. Also,
1188         remove inline_count (again, not used), and move slot so that it
1189         can share bits with some other flags. This saves 8 bytes in the
1190         structure and gives us about 50 kb back for mcs helloworld.cs
1191
1192         * *.[ch]: Do naming changes for the above.
1193
1194         * loader.c (mono_method_get_header): Lazily init the header
1195         on first access.
1196         (mono_get_method_from_token): don't init the header here
1197         (mono_free_method): the header may never be allocated
1198
1199         Overall, this saves 150 kb of unmanaged allocations
1200         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1201         memory at runtime.
1202         
1203         * loader.c, loader.h (mono_method_get_header): new accessor.
1204
1205         * *.[ch]: use the above method. Prepares us to lazily load
1206         the header.
1207
1208         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1209         three warnings, which are actual bugs (see 69206).
1210
1211         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1212         unused. Saves a cool 4 bytes / method.
1213
1214 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1215
1216         * metadata.c (builtin_types): Add types for System.Object here.
1217         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1218         for a class or valuetype from klass->this_arg or klass->byval_arg.
1219
1220         On mcs for a hello world, this gets us down from 21836 MonoType's
1221         to 14560.
1222
1223         (mono_metadata_free_type): Account for the above change.
1224
1225 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1226
1227         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1228         exception instead of asserting if name is null.
1229         (ves_icall_System_AppDomain_GetData): Ditto.
1230
1231 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1232
1233         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1234         EnumBuilder.
1235
1236         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1237         Return NULL when the domain does not have entry_assembly set.
1238
1239         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1240         Add a 'resource_modules' argument.
1241         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1242
1243         * reflection.c (mono_reflection_create_runtime_class): Move setting
1244         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1245         for enums too.
1246
1247         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1248         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1249         Throw an ArgumentNullException if 'ptr' is null.
1250
1251         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1252         assemblies here. Fixes #69020.
1253
1254 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1255
1256         * reflection.c (build_compressed_metadata): Fix the previous patch for
1257         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1258         the stack.
1259
1260 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1261
1262         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1263         the cultures is false. Fixes #69090.
1264
1265         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1266         detected by valgrind.
1267         
1268         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1269         TypeResolve multiple times for the same type. Fixes #65577.
1270
1271 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1272
1273         * marshal.c: Avoid using ldftn to call managed functions. It is
1274         much slower than just a call.
1275
1276         * reflection.c (mono_module_get_object): free the basename we
1277         allocate here from glib.
1278         
1279         * reflection.c (ensure_runtime_vtable): make sure to free
1280         overrides.  Also, we were allocating an array of MonoMethod not an
1281         array of MonoMethod*.
1282
1283         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1284
1285         * image.c (mono_image_close): free image->guid here.
1286
1287 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1288
1289         * reflection.c: Fix some spec conformance issues with the PE file
1290         structures so mcs compiled apps run on the Net 2.0 beta.
1291
1292 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1293
1294         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1295         Implement this. Fixes #67264.
1296
1297         * debug-helpers.h debug-helpers.c marshal.c: Move 
1298         mono_find_method_by_name to debug-helpers.c.
1299
1300 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1301
1302         * object.c (mono_release_type_locks): type_initialization_hash is
1303         a GHashTable.
1304
1305         * reflection.c object.c object-internals.h: Fix warnings.
1306
1307         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1308         without accessors. Fixes #61561.
1309
1310         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1311         application base from the root domain if not set. Fixes #65641.
1312         (mono_runtime_init): Fix warning.
1313
1314 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1315
1316         * appdomain.c: call mono_thread_pool_init.
1317         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1318         of worker threads based on the number of CPUs and the environment
1319         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1320         for non-windows (windows) systems.
1321
1322 2004-10-27  Chris Toshok  <toshok@ximian.com>
1323
1324         * mono-debug-debugger.c (write_class): don't call mono_class_init
1325         here, as even with the check for (!klass->init_pending), we get
1326         into a situation where we're hitting cycles in class
1327         initialization.  Fixes #68816.
1328
1329 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1330
1331         * image.c: Avoid overwriting values in the loaded_images_hash when an
1332         assembly is loaded multiple times. Fixes #61152.
1333
1334         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1335         so multiple satellite assemblies for the same name can be loaded.
1336         Fixes #68259.
1337
1338         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1339         not NULL.
1340
1341         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1342         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1343
1344         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1345         pending finalizers are not invoked after the appdomain has been 
1346         unloaded. Fixes #67862.
1347
1348 2004-10-22  Martin Baulig  <martin@ximian.com>
1349
1350         * mono-debug-debugger.c
1351         (mono_debugger_runtime_invoke): Don't box valuetypes.
1352
1353 2004-10-22  Chris Toshok  <toshok@ximian.com>
1354
1355         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1356         don't hide private methods.
1357
1358 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1359
1360         * icall.c: Allows the runtime to "share" (when known) the public key
1361         token of an assembly. This avoid the need to recalculate the token 
1362         (from the public key) in managed code.
1363
1364 2004-10-21  Chris Toshok  <toshok@ximian.com>
1365
1366         * debug-helpers.c (append_class_name): argh, revert last patch.
1367         
1368 2004-10-21  Chris Toshok  <toshok@ximian.com>
1369
1370         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1371         not '/', so that it matches what the debugger uses to look up
1372         methods.
1373
1374 2004-10-21  Martin Baulig  <martin@ximian.com>
1375
1376         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1377         public method; this is called each time an exception is thrown and
1378         allows the debugger to use exception catch points.
1379
1380 2004-10-21  Martin Baulig  <martin@ximian.com>
1381
1382         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1383         the stack pointer and the exception object in some struct and pass
1384         that to the debugger.
1385
1386 2004-10-21  Chris Toshok  <toshok@ximian.com>
1387
1388         * mono-debug-debugger.c (do_write_class): add instance/static
1389         event support.  We don't expose "raise" or "other" yet.
1390         (event_is_static): new method.
1391
1392 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1393
1394         * mono-debug-debugger.c
1395         (mono_debugger_handle_exception): Remove
1396         bogus return value for fussy compilers.
1397
1398 2004-10-20  Martin Baulig  <martin@ximian.com>
1399
1400         * mono-debug-debugger.c
1401         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1402         (mono_debugger_handled_exception): Likewise.
1403
1404 2004-10-20  Martin Baulig  <martin@ximian.com>
1405
1406         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1407         MONO_DEBUGGER_EVENT_EXCEPTION.
1408
1409         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1410         public function to send the debugger a notification for an
1411         exception and inform it about a catch/finally clause.
1412
1413 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1414
1415         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1416         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1417         fix 2.95 build. 
1418
1419         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1420
1421 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1422
1423         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1424         marshalled as [In,Out]. Fixes #58325.
1425
1426 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1427
1428         * reflection.c (mono_method_body_get_object): Implement some fields.
1429
1430 2004-10-12  Martin Baulig  <martin@ximian.com>
1431
1432         * reflection.c (mono_reflection_bind_generic_parameters): Small
1433         fix, correctly retrieve our parent from a generic instance.
1434
1435 2004-10-12  Martin Baulig  <martin@ximian.com>
1436
1437         * metadata.c (mono_metadata_generic_param_equal): We always have
1438         an owner.
1439
1440         * class.c
1441         (mono_class_from_generic_parameter): We need to have an owner.
1442         (my_mono_class_from_generic_parameter): Likewise.
1443
1444         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1445         mono_reflection_create_generic_class() and added a new
1446         mono_reflection_setup_generic_class().  
1447         (mono_reflection_initialize_generic_param): If we're a nested
1448         generic type and inherited from the containing class, set our
1449         owner to the outer class.
1450
1451 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1452
1453         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1454
1455         * reflection.c (mono_method_body_get_object): New function to create
1456         a MethodBody object.
1457
1458         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1459
1460 2004-10-11  Martin Baulig  <martin@ximian.com>
1461
1462         * metadata.c (_mono_metadata_type_equal): Renamed to
1463         do_mono_metadata_type_equal() and made static.
1464
1465 2004-10-11  Martin Baulig  <martin@ximian.com>
1466
1467         * appdomain.c: Bump corlib version number to 28.
1468
1469 2004-10-10  Martin Baulig  <martin@ximian.com>
1470
1471         * class-internals.h
1472         (MonoGenericInst): Added `MonoGenericContainer *container'.
1473         (MonoGenericMethod): Likewise.
1474         (MonoGenericContext): Likewise.
1475         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1476
1477         * metadata.c
1478         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1479         (do_mono_metadata_parse_generic_inst): Likewise.
1480         (mono_metadata_parse_type_full): New public method.  This is the actual
1481         mono_metadata_parse_type() implementation - with an additional
1482         `MonoGenericContainer *' argument.
1483         (mono_metadata_parse_array_full): Likewise.
1484         (mono_metadata_parse_signature_full): Likewise.
1485         (mono_metadata_parse_method_signature_full): Likewise.
1486         (mono_metadata_parse_mh_full): Likewise.
1487         (mono_type_create_from_typespec): Likewise.
1488         (mono_metadata_interfaces_from_typedef_full): New public method;
1489         this is similar to the other _full() methods, but we take a
1490         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1491         (mono_metadata_parse_generic_param): Take an additional
1492         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1493         from that container.
1494         (mono_metadata_generic_param_equal): New static method to compare
1495         two type parameters.
1496         (_mono_metadata_type_equal): New static method; takes an
1497         additional `gboolean signature_only' argument - if true, we don't
1498         compare the owners of generic parameters.
1499         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1500         with a TRUE argument - do a signature-only comparision.
1501
1502         * loader.c: Use the new _full() methods and pass the
1503         MonoGenericContainer to them.
1504
1505         * object-internals.h (MonoReflectionTypeBuilder): Added
1506         `MonoGenericContainer *generic_container' field.
1507         (MonoReflectionMethodBuilder): Likewise.
1508
1509 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1510
1511         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1512         case initial images of dynamic assemblies.
1513
1514         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1515
1516         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1517
1518         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1519         length of event->other array.
1520         (typebuilder_setup_events): Ditto.
1521
1522         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1523         'assembly_by_name' and add an 'assemblies' list.
1524
1525         * assembly.h assembly.c: Add a new search hook for determining whenever
1526         an assembly is already loaded. Use this instead of searching in the
1527         loaded_assemblies list.
1528
1529         * domain.c appdomain.c: Implement the new search hook so loaded 
1530         assemblies are now scoped by appdomain. Fixes #67727.
1531
1532 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1533
1534         * threads.c (mono_thread_attach): Initialize synch_lock field so
1535         mono_thread_detach works again.
1536
1537         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1538         'lib' too. Fixes #63130.
1539
1540 2004-10-06  Jackson Harper  <jackson@ximian.com>
1541
1542         * culture-info-tables.h: regenerated.
1543
1544 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1545
1546         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1547         implemented by other interfaces in the result. Fixes #65764.
1548         
1549         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1550         Handle unloadable modules without crashing.
1551
1552         * image.c (load_modules): Revert the previous patch since modules must
1553         have a fixed index inside the array.
1554         
1555         * image.c (load_modules): Don't include native modules in the modules
1556         array.
1557
1558 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1559
1560         * reflection.h: Add param_defaults field.
1561
1562         * reflection.c: Add support for parameter defaults in dynamic methods.
1563         Fixes #64595.
1564
1565         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1566         an empty string when a type has no namespace. Fixes #64230.
1567
1568 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1569
1570         * tabledefs.h: Added "internal" security actions to support non-CAS
1571         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1572         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1573
1574 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1575
1576         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1577         constructor of abstract class. Fixes #61689.
1578
1579 2004-10-04  Martin Baulig  <martin@ximian.com>
1580
1581         * class-internals.h (MonoGenericContainer): New type.
1582         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1583         `MonoGenericContainer *generic_container'.
1584         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1585         `MonoGenericContainer *generic_container'.
1586
1587         * metadata.c (mono_metadata_load_generic_params): Return a
1588         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1589         removed the `num' argument.
1590
1591 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1592
1593         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1594         for dynamic images.
1595
1596         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1597         machine fields.
1598
1599         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1600
1601         * reflection.c: Save pe_kind and machine values into the generated
1602         image file.
1603
1604         * appdomain.c: Bump corlib version number.
1605
1606         * object-internals.h: Reorganize layout of LocalBuilder.
1607
1608         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1609         New helper function.
1610
1611         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1612         created MonoType for dynamic types. Fixes #66180.
1613
1614 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1615
1616         * threadpool.c: the ares hashtable needs a critical section around it.
1617         this prevents some nasty segfaults
1618
1619 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1620
1621         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1622         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1623         bug 67324).
1624         
1625 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1626
1627         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1628         
1629 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1630
1631         * image.c: Always canonicalize image file names, to avoid loading
1632         the same assembly twice when referenced using a relative path.
1633
1634 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1635
1636         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1637
1638         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1639
1640         * marshal.c: Fix warnings.
1641
1642 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1643
1644         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1645         attempting to marshal the delegate_trampoline as the method_addr.
1646         This patch has a static hashtable of marshalled delegates so that 
1647         we can map delegate_trampoline addresses back to delegates.  This
1648         allows a delegate passed to managed code to be passed back into native
1649         code.  Fixes #67039
1650
1651 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1652
1653         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1654
1655         * reflection.c (method_encode_code): Align method headers properly.
1656         Fixes #66025.
1657
1658 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1659
1660         * marshal.c: In the runtime invoke wrapper, reset the abort
1661         exception if it is cached. This avoids the automatic rethrowal of 
1662         the exception after the catch of the wrapper. Also check for pending
1663         interruptions before calling the managed method. This is done using
1664         the new method emit_thread_force_interrupt_checkpoint, since the
1665         normal checkpoint method is ignored when running the invoke wrapper.
1666         * object.c: If the abort exception is rethrown, set the abort_exc
1667         field of the thread, so it will be rethrown aftere every catch.
1668         * threadpool.c: Only run an interruption checkpoint if what has been
1669         requested is a stop of the thread (aborts will be ignored).
1670         * threads.c: By default, a thread will now never be interrumped while
1671         running the runtime invoke wrapper (this ensures that runtime_invoke
1672         will always return to the caller if an exception pointer is provided).
1673         There is a new special method mono_thread_force_interruption_checkpoint()
1674         to force an interruption checkpoint even if running a protected
1675         wrapper, which is used by the same runtime invoke wrapper to do a check
1676         at a safe point.
1677
1678 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1679
1680         * object.c, object-internals.h: Implemented mono_release_type_locks,
1681         which releases the cctor locks held by a thread.
1682         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1683         by a thread. Added mono_thread_exit() method to be used to safely stop
1684         a thread.
1685
1686 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1687
1688         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1689         Move null check before dereference.  Avoid indexing beyond the end
1690         of the 'modules' array.
1691
1692 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1693
1694         * metadata-internals.h (MonoImage): Add module_count field.
1695         * image.c (load_modules): Set image->module_count.
1696         (mono_image_load_file_for_image): Use image->module_count.
1697         * reflection.c (mono_image_load_module): Append to image->modules array 
1698         of dynamic assembly.
1699         (mono_module_get_object): Fix loop to actually increment index.
1700         Use image->module_count.
1701         * assembly.c (mono_assembly_load_references): Use image->module_count.
1702         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1703         Likewise.
1704
1705 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1706
1707         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1708         Avoid assert on generic types.
1709
1710 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1711
1712         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1713
1714         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1715
1716         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1717         function to convert a MarshalSpec structure to its managed counterpart.
1718
1719         * reflection.c: Fix warnings.
1720         
1721         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1722         field.
1723
1724         * icall.c (mono_create_icall_signature): Fix build.
1725
1726 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1727
1728         * icall.c: Add MakePointType icall.
1729
1730         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1731         warnings.
1732
1733 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1734
1735         * threadpool.c: reuse allocated slots in the queue.
1736
1737 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1738
1739         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1740
1741         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1742
1743         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1744         previous change.
1745
1746         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1747         ThrowOnUnmappableChar.
1748
1749         * icall.c (ves_icall_Type_GetPacking): New icall.
1750
1751 2004-09-24  Martin Baulig  <martin@ximian.com>
1752
1753         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1754
1755 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1756
1757         * appdomain.c:
1758         (mono_domain_set): allow setting a domain that is being unloaded.
1759         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1760         being unloaded.
1761
1762 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1763
1764         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1765         the GetCustomAttributes icall.
1766
1767 2004-09-23  Martin Baulig  <martin@ximian.com>
1768
1769         * object-internals.h (MonoReflectionGenericParam): Replaced
1770         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1771         with `guint32 attrs'.
1772
1773 2004-09-23  Martin Baulig  <martin@ximian.com>
1774
1775         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1776
1777 2004-09-23  Martin Baulig  <martin@ximian.com>
1778
1779         * object-internals.h (GenericParameterAttributes): New enum.
1780
1781 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1782
1783         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1784         
1785         * class.c (init_events): Fill out event->other field.
1786
1787         * class.c: Fix warnings.
1788
1789         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1790
1791 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1792
1793         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1794         walk which doesn't supply the IL offset.
1795
1796 2004-09-22  Martin Baulig  <martin@ximian.com>
1797
1798         * reflection.c (mono_reflection_setup_internal_class): If we're
1799         System.ValueType, System.Object or System.Enum, set
1800         `klass->instance_size' and create the vtable.
1801         (mono_reflection_create_internal_class): If we're an enum type,
1802         get the base class from our current corlib.
1803
1804 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1805
1806         * reflection.h (MonoResolveTokenError): New type.
1807
1808         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1809         icall.
1810
1811         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1812
1813 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1814
1815         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1816         Support also calling constructors, but only for already allocated objects.
1817
1818 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1819
1820         * reflection.c (type_get_qualified_name): If the klass is null
1821         return the typename to avoid a NullRefEx.
1822         (encode_cattr_value): Get the qualified name of the boxed type,
1823         not the underlying enumtype.  Fixes #62984.
1824
1825 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1826
1827         * marshal.c: Fix problems with previous checkin.
1828
1829 2004-09-21    <vargaz@freemail.hu>
1830
1831         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1832         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1833
1834         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1835
1836 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1837
1838         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1839         should only return a type for pointers, arrays, and passbyref types.
1840         Fixes bug #63841.
1841
1842 2004-09-21  Martin Baulig  <martin@ximian.com>
1843
1844         * domain.c (mono_debugger_check_runtime_version): New public
1845         function.
1846
1847         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1848
1849 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1850
1851         * reflection.c: Added missing sort to the declarative security 
1852         attributes table. MS implementation stops seeing the attributes if the
1853         token number regress in the table (as shown by ildasm and permview).
1854
1855 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1856
1857         * object-internals.h (MonoReflectionModule): Add 'token' field.
1858         
1859         * reflection.c (mono_reflection_get_token): Add support for Module
1860         and Assembly.
1861         (mono_module_get_object): Set 'token' field.
1862         (mono_module_file_get_object): Set 'token' field.
1863
1864         * icall.c: Add new Assembly and Module icalls.
1865
1866         * appdomain.c: Bump corlib version.
1867
1868 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1869
1870         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1871         tokens of metadata objects.
1872
1873         * reflection.h reflection.c (mono_reflection_get_token): New function
1874         to obtain the token of a metadata object.
1875
1876         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1877
1878 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1879
1880         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1881         
1882         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1883
1884 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1885
1886         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1887         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1888         AssemblyBuilder to access the permissions set in the class lib.
1889         * reflection.c: Added security attributes encoding step in 
1890         mono_image_build_metadata.
1891         * tabledefs.h: Added new security actions defined in 2.0:
1892         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1893
1894 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1895
1896         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1897         macro parameter.
1898
1899 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1900  
1901         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1902           finalized. There where random SIGSEVs at program termination, when
1903           an object being finalized was trying to do a string comparison and
1904           the current culture was already finalized.
1905  
1906 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1907
1908         * threads.c: call thread_cleanup before finishing the thread if we get
1909         there.
1910
1911 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1912
1913         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1914         assemblies from the parent. Fixes #65665.
1915
1916 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1917
1918         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1919         modifiers.
1920
1921 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1922
1923         * reflection.h: add prototype for mono_get_dbnull_object
1924         * reflection.c: add prototypes for get_default_param_value_blobs 
1925         and mono_get_object_from_blob for fussier compilers
1926
1927 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1928  
1929         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1930         false deadlock checks in class initialization.
1931  
1932 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1933
1934         * image.c (mono_image_addref): Fix comment.
1935
1936         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1937         possible.
1938
1939 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1940
1941         * reflection.c (mono_param_get_objects): Modified to return
1942         ParameterInfo.DefaultValue object.
1943
1944         (get_default_param_value_blobs):
1945         (mono_get_object_from_blob):
1946         (mono_get_dbnull_object): New helper routines. 
1947
1948         * object.c (mono_get_constant_value_from_blob): New helper routine
1949         carved out from get_default_field_value ()
1950
1951         * object-internals.h (mono_get_constant_value_from_blob): Added
1952         function declaration.
1953
1954 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1955
1956         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1957         referenced assemblies. Fixes #62135.
1958
1959         * exception.h exception.c (mono_get_exception_file_not_found2): New
1960         helper function.
1961
1962 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1963
1964         * class.h class.c: Add mono_type_get_underlying_type ().
1965
1966 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1967
1968         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1969         Fix GetTypes() to support dynamically created assemblies.
1970
1971 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1972
1973         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1974         
1975         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1976         previous patch.
1977
1978         * reflection.h reflection.c loader.c: Allow dynamic construction of
1979         pinvoke methods. Fixes #65571.
1980         
1981         * reflection.c (mono_reflection_get_type): Revert previous change since
1982         it causes regressions.
1983
1984 2004-09-08  Martin Baulig  <martin@ximian.com>
1985
1986         * class.c (class_compute_field_layout): Don't call
1987         mono_class_layout_fields() for open generic instances.
1988
1989 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
1990         * threads.c appdomain.c: fix typo in GC macro
1991
1992 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1993
1994         * threads.c: don't call mono_thread_detach() in start_wrapper(),
1995         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
1996
1997 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
1998
1999         * image.c (mono_image_close): Applied patch from 
2000         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
2001         assembly is loaded multiple times from data.
2002         
2003         * image.c (mono_image_open): Fix warning.
2004
2005 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2006
2007         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
2008         once. Fixes #58334.
2009         
2010         * reflection.c (mono_reflection_create_runtime_class): Initialize
2011         klass->nested_classes. Fixes #61224.
2012
2013 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2014
2015         * threads.c: sched_yield() on exit, to allow threads to quit.
2016
2017 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2018
2019         * object.c (mono_unhandled_exception): Remove leftover debug code.
2020
2021 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2022
2023         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
2024
2025 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2026
2027         * marshal.c (emit_marshal_array): Really null terminate string arrays.
2028         
2029         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
2030
2031 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2032
2033         * marshal.c (emit_marshal_array): Null terminate string arrays.
2034         
2035         * marshal.c (raise_auto_layout_exception): Fix warning.
2036
2037         * reflection.c (mono_param_get_objects): Initialize the default value
2038         with DBNull.Value, not null. Fixes #62123.
2039
2040 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
2041
2042         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
2043         throw an exception with a cute explanation.
2044
2045 2004-09-06  Dick Porter  <dick@ximian.com>
2046
2047         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
2048         Close the new process's thread handle, as we don't use it.  The
2049         handle stays around forever otherwise.
2050
2051 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2052
2053         * object.c (arith_overflow): Fix warning.
2054
2055         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
2056         calling conventions in method refs. Fixes #65352.
2057
2058         * reflection.c: Fix warnings.
2059
2060 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2061
2062         * icall.c: Add a new icall for Array.Clear
2063
2064 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2065
2066         * object.c: When allocating an array, we have to throw
2067         an overflow exception if any of the lengths are < 0.
2068
2069 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2070
2071         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
2072         properly. Also move implementation of string array marshalling to 
2073         managed code. Fixes #42316.
2074
2075 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2076
2077         * assembly.c: provide more information when loading an assembly fails.
2078
2079 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2080
2081         * filewatcher.c: don't expect the development fam package to be
2082         installed.
2083
2084 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
2085
2086         * marshal.c: Make a copy of the signature cookie since it will be
2087         freed by the caller.
2088         
2089         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
2090
2091         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
2092
2093         * metadata.c (mono_metadata_free_marshal_spec): New function to free
2094         marshal specs.
2095
2096         * marshal.c: More refactoring.
2097         
2098         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
2099         smaller functions.
2100
2101 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
2102
2103         * object.c: In mono_message_invoke, fill the output parameter array after
2104           calling the managed method (it was done before the call). This fixes
2105           bug #59299.
2106
2107 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2108
2109         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
2110         as well.
2111
2112 2004-09-02  Martin Baulig  <martin@ximian.com>
2113
2114         * class.c (mono_class_instance_size): Don't allow generic type
2115         definitions or open generic instances.
2116         (mono_class_array_element_size): If we're a value type, call
2117         mono_class_instance_size() on the original class.
2118
2119         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
2120         handle generic instances.
2121
2122         * mono-debug-debugger.c (write_type): Handle generic instances
2123         like classes.
2124
2125 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2126
2127         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
2128         the allocation request fails. Fixes #65089.
2129
2130         * object.c (mono_runtime_free_method): Do not call mono_free_method.
2131         
2132         * object.c (mono_runtime_free_method): New function to free a dynamic
2133         method.
2134
2135         * marshal.c (mono_delegate_free_ftnptr): New function to free the
2136         delegate trampoline.
2137
2138         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
2139         with hasthis as dynamic,
2140
2141         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
2142
2143         * domain.c (mono_jit_info_table_remove): New function to remove an
2144         entry from the jit info table.
2145
2146         * class-internals.h (MonoMethod): Add 'dynamic' field.
2147
2148         * loader.c: Fix warnings.
2149
2150 2004-09-01  Martin Baulig  <martin@ximian.com>
2151
2152         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
2153         instead of mono_debugger_lock() because the latter one is a no-op
2154         unless running in the debugger.
2155
2156 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2157
2158         * class.c (class_compute_field_layout): Classes with auto-layout or
2159         reference fields are not blittable.
2160         
2161 2004-09-01  Dick Porter  <dick@ximian.com>
2162
2163         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
2164         mono_image_get_filename() to get the assembly location.
2165
2166         * icall.c:
2167         * metadata.h: Fix compile warnings
2168
2169 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2170
2171         * class.c (class_compute_field_layout): System.Object is blittable.
2172
2173         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2174         as in/out. Fixes #59909.
2175
2176 2004-09-01  Martin Baulig  <martin@ximian.com>
2177
2178         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2179         mono_metadata_generic_inst_is_valuetype() if we're a generic
2180         instance to check whether our underlying type is a reference type.
2181
2182 2004-09-01  Martin Baulig  <martin@ximian.com>
2183
2184         * metadata.c (mono_type_size): If we're a generic instance, call
2185         mono_class_value_size() for value types.
2186
2187 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2188
2189         * marshal.c: Implement more custom marshalling functionality. Fixes
2190         #64915.
2191
2192 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2193
2194         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2195
2196 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2197
2198         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2199
2200         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2201
2202         * icall.c: Fix some warnings.
2203
2204         * threads.c (abort_appdomain_thread): Fix unref errors.
2205         (mono_thread_current): Fix THREAD_DEBUG define.
2206
2207 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2208
2209         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2210
2211         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2212
2213 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2214
2215         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2216         string arrays.
2217
2218 2004-08-28  Martin Baulig  <martin@ximian.com>
2219
2220         * metadata.c
2221         (mono_metadata_generic_inst_is_valuetype): New public function.
2222
2223         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2224         mono_metadata_generic_inst_is_valuetype() if we're a generic
2225         instance to check whether our underlying type is a valuetype.
2226
2227 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2228
2229         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2230         #63768.
2231
2232 2004-08-25  Martin Baulig  <martin@ximian.com>
2233
2234         * loader.c (mono_get_method_from_token): Abstract methods can also
2235         be generic and thus have type parameters.
2236
2237         * metadata-internals.h
2238         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2239
2240         * reflection.c (mono_image_get_generic_param_info): Don't create a
2241         metadata row, just add an entry to the `gen_params' array.
2242         (build_compressed_metadata): Sort the `gen_params' array and then
2243         actually create the metadata.
2244
2245 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2246
2247         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2248
2249 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2250
2251         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2252
2253 2004-08-24  Martin Baulig  <martin@ximian.com>
2254
2255         * class.cs (mono_class_is_subclass_of): Like an interface, a
2256         generic instance also derives from System.Object.
2257
2258 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2259
2260         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2261         custom modifiers to be in any order. Fixes #61990.
2262
2263 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2264
2265         * object.c: Register mono_object_new_fast icall.
2266         
2267         * object.c (mono_class_get_allocation_ftn): Return to calling
2268         mono_object_new_fast, since it seems faster to compute the object 
2269         size in unmanaged code than passing it as a parameter.
2270
2271         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2272
2273         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2274         this function with Boehm as the oom handler, so we don't have to check
2275         the result of GC_malloc.
2276
2277         * object.c: Remove checks for oom.
2278
2279         * object.h object.c (mono_class_get_allocation_ftn): New function to
2280         return the icall which can be used to allocate an instance of a given
2281         class. 
2282
2283         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2284
2285         * class-internals.h: Add 'enabled' field.
2286
2287 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2288
2289         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2290
2291 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2292         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2293         value 0x0010.
2294
2295 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2296
2297         * appdomain.c: use the Tls function for appdomain too,
2298         at Zoltan's request. Actually return in mono_context_get
2299
2300         * appdomain.c, profiler.c, threads.c: use __thread
2301
2302 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2303
2304         * appdomain.c threads.c: Call GC_CreateThread on windows.
2305
2306         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2307         multiple libraries since this don't work on windows.
2308
2309 2004-08-18  Martin Baulig  <martin@ximian.com>
2310
2311         * class-internals.h
2312         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2313         MonoMethodHeader.
2314
2315         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2316         MonoMethodNormal since we also need it for abstract and interface
2317         methods.
2318
2319         * reflection.c
2320         (build_compressed_metadata): Sort the GenericParam table.
2321         (mono_image_create_token): Added `gboolean create_methodspec'
2322         argument; this is false when generating a MethodImpl token.
2323         (reflection_methodbuilder_to_mono_method): Abstract and interface
2324         methods may also have generic parameters.
2325
2326 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2327
2328         * appdomain.c: thread local alloc
2329
2330 2004-08-17  Martin Baulig  <martin@ximian.com>
2331
2332         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2333
2334         * icall.c
2335         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2336         argument.
2337
2338         * class.c (mono_type_get_full_name): New public function.
2339         (mono_type_get_name): Don't include the type arguments.
2340
2341 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2342
2343         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2344         for inclusion into the mono executable.
2345
2346 2004-08-16  Martin Baulig  <martin@ximian.com>
2347
2348         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2349         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2350
2351 2004-08-14  Martin Baulig  <martin@ximian.com>
2352
2353         * class.c (dup_type): Also copy the `byref' field.
2354
2355 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2356
2357         * reflection.c (create_dynamic_mono_image): Revert the last change 
2358         since it breaks bootstrap.
2359
2360 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2361
2362         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2363
2364         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2365         not free them with g_free.
2366
2367 2004-08-11  Martin Baulig  <martin@ximian.com>
2368
2369         * reflection.c (mono_reflection_setup_internal_class): Also call
2370         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2371
2372 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2373
2374         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2375         called during default (first) AppDomain creation. Keep track of
2376         Evidence when loading assemblies.
2377
2378 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2379
2380         * opcodes.c, opcodes.h: reduce runtime relocations.
2381
2382 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2383
2384         * culture-info.h, locales.c: fixes and chages to sue the new
2385         optimized format of the locale data.
2386         * culture-info-tables.h: regenerated.
2387
2388 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2389         
2390         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2391
2392 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2393
2394         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2395         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2396         * domain-internals.h: icall declaration.
2397         * icall.c: icall registration.
2398         * object-internals.h: New fields in MonoAssembly for CAS.
2399
2400 2004-08-05  Duncan Mak  <duncan@ximian.com>
2401
2402         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2403         CEE_LDELEM_ANY.
2404
2405 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2406
2407         * reflection.c: fix to deal with object[] arrays in custom ctors
2408         (bug #62550).
2409
2410 2004-08-05  Martin Baulig  <martin@ximian.com>
2411
2412         * class.c (mono_class_array_element_size): Added support for
2413         generic instances and correctly handle "recursive" types.
2414
2415 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2416
2417         * assembly.c: Fix warnings.
2418
2419 2004-08-04  Martin Baulig  <martin@ximian.com>
2420
2421         * class.c
2422         (mono_type_get_name_recurse): Added `gboolean include_arity'
2423         argument specifying whether or not we should include the generic
2424         arity in the type name.
2425         (_mono_type_get_name): New static function.
2426         (mono_class_setup_vtable): If we're a generic instance, don't
2427         include the generic arity in the names of explicit method
2428         implementations.        
2429
2430 2004-08-03  Martin Baulig  <martin@ximian.com>
2431
2432         * class.c (mono_type_get_name_recurse): Enclose the generic type
2433         arguments in `<', '>'.
2434
2435 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2436
2437         * gc.c: make GC warning messages use the trace API, they are just
2438         noise to most of the users.
2439
2440 2004-08-03  Martin Baulig  <martin@ximian.com>
2441
2442         * debug-mono-symfile.c (read_string): Correctly read the string.
2443
2444 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2445
2446         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2447         
2448         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2449         icalls.
2450         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2451
2452 2004-07-30  Martin Baulig  <martin@ximian.com>
2453
2454         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2455         Reflect latest symbol writer changes.   
2456
2457 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2458
2459         * object.c: always create an object if null is passed
2460         to Invoke() where a valuetype is expected.
2461
2462 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2463
2464         * marshal.c (mono_marshal_init): make managed
2465         signatures match native ones better for 64bits.
2466
2467 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2468
2469         * appdomain.c: hack to build correctly the private bin path on windows.
2470         Fixes bug #61991.
2471
2472 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2473
2474         * assembly.c: Load mscorlib from the correct framework directory
2475           (mono/<version>/mscorlib.dll).
2476         * appdomain.h: Added prototypes for new functions.
2477         * internals.h: Added some prototypes.
2478         * domain.c: When initializing the runtime, get from the executable and
2479           the configuration files the runtime version that the app supports.
2480           Added support methods for reading app.exe.config. Added list of versions
2481           supported by the JIT. Added two new methods: mono_init_from_assembly,
2482           which initializes the runtime and determines the required version from
2483           the provided exe file, and mono_init_version, which initializes
2484           the runtime using the provided version.
2485         * icall.c: Get machine.config from version-specific directory.
2486         * reflection.c: When generating an image, embed the version number
2487           of the current runtime.
2488
2489 2004-07-28  Dick Porter  <dick@ximian.com>
2490
2491         * socket-io.c
2492         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2493         returned sockaddr size before creating the remote address object.
2494         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2495         61608.
2496
2497 2004-07-28  Dick Porter  <dick@ximian.com>
2498
2499         * locales.c (string_invariant_compare_char): Fix invariant char
2500         compares between upper and lower cases.  Fixes bug 61458.
2501
2502 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2503         
2504         * marshal.c: actually cache stelem.ref wrappers.
2505         
2506 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2507
2508         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2509         sections and remove the mono_cli_rva_map () function.
2510
2511 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2512
2513         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2514         by Geoff Norton (<gnorton@customerdna.com>).
2515
2516 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2517
2518         * class.c: fix class loads for pointer types (typeof(int) !=
2519         typeof(int*)).
2520
2521 2004-07-27  Martin Baulig  <martin@ximian.com>
2522
2523         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2524         reading the debugging information from an external ".mdb" file.
2525
2526 2004-07-24  Martin Baulig  <martin@ximian.com>
2527
2528         * reflection.c (mono_image_get_type_info): Only write a class
2529         layout entry if we actually have a size or a packing size.
2530
2531 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2532
2533         * reflection.c (type_get_fully_qualified_name): 
2534         insert cast to get type checking of ?: with non-gcc compilers
2535
2536 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2537
2538         * rand.c: use g_getenv for both lookups of
2539         MONO_EGD_SOCKET
2540
2541 2004-07-17  Martin Baulig  <martin@ximian.com>
2542
2543         * reflection.c (mono_reflection_bind_generic_method_parameters):
2544         Set `gmethod->reflection_info'.
2545
2546 2004-07-17  Martin Baulig  <martin@ximian.com>
2547
2548         * class.c (mono_class_create_from_typedef): Insert the newly
2549         created class into the hash table before computing the interfaces
2550         since we could be called recursively.
2551
2552 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2553
2554         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2555         function to implement stelem.ref in managed code
2556         * class-internals.h, debug-helpers.c: a new wrapper type
2557         for the above.
2558
2559 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2560
2561         * gc.c: allow GC handles to work even when no GC is compiled in.
2562         Fix part of bug #61134 (GetAddrOfPinnedObject).
2563
2564 2004-07-13  Peter Williams  <peter@newton.cx>
2565  
2566         * process.c (complete_path): Make sure we don't attempt to execute
2567         directories.
2568  
2569 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2570
2571         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2572           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2573           and will add/subtract the hour if needed
2574
2575 2004-07-12  Martin Baulig  <martin@ximian.com>
2576
2577         * reflection.c (mono_field_get_object): If we have
2578         `field->generic_info', take the attributes from
2579         `field->generic_info->generic_type'.    
2580
2581 2004-07-12  Martin Baulig  <martin@ximian.com>
2582
2583         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2584         This function must be called before initializing the runtime.
2585         (mono_debug_init_1): New function; call this after initializing
2586         the runtime, but before loading the assembly.  It tells the
2587         debugger to load corlib and the builtin types.
2588
2589         * mono-debug-debugger.c: Did some larger changes in the debugging
2590         code; support recursive class declarations, make sure we actually
2591         add all classes.
2592
2593 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2594
2595         * debug-helpers.c: undo my previous patch and fixed the real issue in
2596         ../mini/exceptions-x86.c
2597
2598 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2599
2600         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2601         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2602         called from other .cctors.
2603
2604 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2605
2606         * loader.c: Removed the mono_loader_wine_init hack now that we are
2607         doing a managed version of Windows.Forms.
2608
2609 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2610
2611         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2612         threadpool.c, threads.c: remove static data from rootset.
2613
2614 2004-07-09  Dick Porter  <dick@ximian.com>
2615
2616         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2617         Don't do any more processing if the matched length was 0.  It was
2618         increasing the size of the string before.  Fixes bug 61167.
2619
2620 2004-07-09  Dick Porter  <dick@ximian.com>
2621
2622         * socket-io.h:
2623         * socket-io.c
2624         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2625         Add support for SO_PEERCRED if its available.
2626
2627 2004-07-09  Peter Bartok <pbartok@novell.com>
2628         * loader.c: winelib.exe.so error message is now only displayed if
2629         MONO_DEBUG is set. To help us avoid questions when people are trying
2630         out the new Managed.Windows.Forms.
2631
2632 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2633
2634         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2635         for isinst and castclass wrappers.
2636
2637         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2638         to libmetadata from the JIT, so they could be used by the marshalling
2639         code and the interpreter.
2640
2641         * marshal.c: Register marshalling related JIT icalls here instead of
2642         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2643         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2644
2645         * metadata.h: Remove unneeded marshalling conversions.
2646
2647         * opcodes.c: Update for new opcodes.
2648         
2649 2004-07-08  Martin Baulig  <martin@ximian.com>
2650
2651         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2652         (mono_debug_get_domain_data): Make this function static.
2653
2654 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2655
2656         * gc.c, object.h: add nice GC handle API for embedders.
2657
2658 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2659
2660         * reflection.c: more changes for the new api
2661
2662         * object.c: When we reflect on a field w/ a constant value, it
2663         will not have a memory location, so we must access metadata. Also,
2664         allow easier reading of strings so that we can read them from
2665         the constant data.
2666
2667         * class.c (mono_class_layout_fields): no need for literal fields here.
2668
2669         * class-internals.h: api changes for const fields
2670
2671         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2672
2673 2004-07-06  Martin Baulig  <martin@ximian.com>
2674
2675         * mono-debug.h: Increment version number to 44.
2676
2677         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2678         now a gpointer, rewrote this whole method.
2679
2680         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2681         function.  Add information about the wrapper in a new "misc table".
2682
2683         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2684         for the new misc table.
2685
2686 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2687
2688         * metadata-internals.h image.c: Add a cache for helper signatures.
2689
2690         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2691
2692 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2693
2694         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2695         delegates from a delegate. Fixes #61033.
2696         
2697         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2698         marshalling of stringbuilder arrays. Fixes #59900.
2699
2700 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2701
2702         * icall.c: Add EnumBuilder:setup_enum_type icall.
2703
2704 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2705
2706         * icall.c: Added a new icall for the property version of
2707         OffsetOfStringData.
2708
2709 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2710
2711         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2712         it has a constant size across platforms.
2713
2714         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2715         stack trace.
2716
2717 2004-06-29  Martin Baulig  <martin@ximian.com>
2718
2719         * mono-debug.c (mono_debug_add_method): Protect the whole function
2720         in mono_debugger_lock(), not just parts of it.
2721
2722 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2723
2724         * reflection.c: make sure padding bytes in heaps are zeroed.
2725
2726 2004-06-24  David Waite  <mass@akuma.org>
2727
2728         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2729         image.c, loader.c, locales.c, marshal.c, metadata.c,
2730         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2731         string-icalls.c, threads.c: change to C90-style comments from C99 /
2732         C++ -style
2733
2734 2004-06-24  Dick Porter  <dick@ximian.com>
2735
2736         * threads.c
2737         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2738         return createdNew.  Fixes bug 60412.
2739
2740         * threads-types.h: 
2741         * icall.c: Add createdNew parameter to CreateMutex icall
2742
2743 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2744
2745         * reflection.c, object-internals.h: save default value in params.
2746
2747 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2748
2749         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2750         no need to build a new path combining that with the application base.
2751         Fixes bug #60442.
2752
2753 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2754
2755         * reflection.c: fixed minor standard compliance issues.
2756
2757 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2758
2759         * reflection.c: fixed issue with encoding some custom attributes
2760         (arrays in properties and fields, bug #60411).
2761
2762 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2763
2764         * reflection.c: fix start address when copying the public key token.
2765
2766 2004-06-23  Martin Baulig  <martin@ximian.com>
2767
2768         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2769         the `exc' object in a static object to put it into the GC's root set.
2770
2771 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2772
2773         * reflection.c: make mono_reflection_setup_internal_class ()
2774         callable a second time to setup a new parent class.
2775
2776 2004-06-23  Dick Porter  <dick@ximian.com>
2777
2778         * threads.c: Check for WAIT_IO_COMPLETION return values.
2779
2780 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2781
2782         * appdomain.c: Removed the g_free on the public key token. Now copy 
2783         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2784         * assembly.c: Added public key token string value when loading 
2785         assemblies. Fix bug #60439.
2786         * icall.c: Added missing informations (like public key) in 
2787         GetReferencedAssemblies. Fix #60519.
2788         * image.h: Changed definition for public key token from const char*
2789         public_tok_value to guchar public_key_token [17];
2790         * reflection.c: Updated for changes to public key token.
2791
2792 2004-06-22  Lluis Sanchez Gual
2793
2794         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2795         for the field in base classes.
2796
2797 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2798
2799         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2800         mark headers as not supported, they are installed only for use by the
2801         debugger.
2802
2803 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2804
2805         * *.c, *.h: avoid namespace pollution in public headers.
2806
2807 2004-06-21  Martin Baulig  <martin@ximian.com>
2808
2809         * exception.c (mono_get_exception_security): It's in
2810         "System.Security", not in "System".
2811
2812         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2813         the exception classes.
2814
2815 2004-06-21  Martin Baulig  <martin@ximian.com>
2816
2817         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2818         Protect the exception object from being finalized.
2819
2820 2004-06-21  Martin Baulig  <martin@ximian.com>
2821
2822         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2823         public function.
2824
2825 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2826
2827         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2828         if it was not loaded before. Fix parts of #60439.
2829
2830 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2831
2832         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2833         code that was broken since Ben's change: wrappers are now
2834         dependent on the method signature only again.
2835
2836 2004-06-21  Martin Baulig  <martin@ximian.com>
2837
2838         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2839         added interface support.
2840
2841 2004-06-21  Martin Baulig  <martin@ximian.com>
2842
2843         * class.c (mono_vtable_get_static_field_data): New public method.
2844
2845 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2846
2847         * filewatcher.c : Windows build fix to be compliant with API changes.
2848
2849 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2850
2851         * class.h, class.c: more accessors.
2852         * metadata.h, metadata.c: prepare for hiding MonoType and
2853         MonoMethodSignature: people should use the accessors from now on
2854         outside of the tree.
2855
2856 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2857
2858         * *.c, *.h: more API cleanups.
2859
2860 2004-06-18  Jackson Harper  <jackson@ximian.com>
2861
2862         * assembly.c: Trace loading assemblies.
2863         * loader.c: Trace loading native libraries.
2864         * mono-config.c: Trace loading config files.
2865         
2866 2004-06-18  Dick Porter  <dick@ximian.com>
2867
2868         * locales.c: Tell ICU the lengths of strings, it can cope with
2869         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2870
2871 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2872
2873         * image.c: swapped name/filename;
2874
2875 2004-06-18  Martin Baulig  <martin@ximian.com>
2876
2877         * mono-debug-debugger.c (write_class): Write the parent class at
2878         the end of the header.
2879
2880 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2881
2882         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2883
2884 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2885
2886         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2887         (bundle_obj): New conditional define.
2888         (BUILT_SOURCES): Remove.
2889         ($(bundle_srcs)): Make parallel-make safe.
2890         (libmonoruntime_la_LIBADD): Make unconditional.
2891         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2892         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2893
2894 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2895
2896         * culture-info-tables.h: It was inconsistent with the latest
2897           supp info files.
2898
2899 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2900
2901         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2902         be loaded.
2903
2904         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2905         with gcc 2.95.
2906
2907 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2908
2909         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2910         cleaned up public header threads.h.
2911
2912 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2913
2914         * Makefile.am, *.c, *.h: more API cleanups.
2915
2916 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2917
2918         * Makefile.am: removed monosn from compilation.
2919         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2920         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2921         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2922         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2923         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2924         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2925
2926 2004-06-15  Jackson Harper  <jackson@ximian.com>
2927
2928         * assembly.c: Make locales lower case when searching the GAC for
2929         assemblies. gacutil will always make locales lowercase when
2930         installing so this effectively makes them case insensitive.
2931         
2932 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2933
2934         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2935         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2936           parameter which allows to choose whether the wait can be interrupted or 
2937           not. Also added the method mono_monitor_enter(), which locks the monitor
2938           using an infinite wait and without allowing interruption.
2939           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2940           interrupted.
2941         * object.h: Added new fields in MonoThread. suspend_event holds the event
2942           used to susped/resume the thread. synch_lock is the lock object to use for
2943           modifying the thread state.
2944         * threads.c: Use the new synch_lock object for locking, instead of "this",
2945           which can generate deadlocks.
2946           Moved thread state change in Thread.Sleep and Thread.Join from managed
2947           to unmanaged code. This avoids a deadlock when the thread was suspended
2948           just after acquiring the thread lock.
2949           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2950           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2951           which is not fully implemented in the io-layer.
2952         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2953
2954 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2955
2956         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2957         threads-types.h: more API cleanups.
2958
2959 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2960
2961         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2962         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2963         threadpool.c, threads.c: first pass at the exported API cleanup.
2964
2965 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2966
2967         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2968
2969 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2970
2971         * icall.c: added internalGetHome.
2972
2973 2004-06-14  Dick Porter  <dick@ximian.com>
2974
2975         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2976         possible to return successfully when '.' or '..' were the only
2977         entries in a directory, but were skipped.  The MonoIOStat was not
2978         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2979         Fixes bug 59574.
2980
2981 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2982
2983         * reflection.c: make binaries run on .Net 1.1 by default.
2984
2985 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2986
2987         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
2988
2989 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
2990
2991         * marshal.c: keep track of struct size with explicit layout
2992         (bug #59979).
2993
2994 2004-06-12  Martin Baulig  <martin@ximian.com>
2995
2996         * mono-debug-debugger.c: Comment out a debugging g_message().
2997
2998 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2999
3000         * reflection.c, reflection.h: do not free custom attrs that are cached.
3001         * icall.c: use braces to make code clearer.
3002
3003 2004-06-11  Martin Baulig  <martin@ximian.com>
3004
3005         * class.h (MonoInflatedField): New type.
3006         (MonoClassField): Replaced `MonoType *generic_type' with
3007         `MonoInflatedField *generic_info'.
3008
3009         * icall.c
3010         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
3011
3012 2004-06-11  Martin Baulig  <martin@ximian.com>
3013
3014         * reflection.c (mono_image_create_method_token): Correctly encode
3015         varargs methods.
3016
3017 2004-06-11  Martin Baulig  <martin@ximian.com>
3018
3019         * metadata.c (mono_metadata_parse_method_signature): When parsing
3020         a MethodDef which has VarArgs, also set sentinelpos if we don't
3021         have any parameters.
3022
3023 2004-06-11  Martin Baulig  <martin@ximian.com>
3024
3025         * verify.c (mono_method_verify): In CEE_CALL, use
3026         mono_method_get_signature() to get the method's signature, unless
3027         we're a PInvoke method.
3028
3029 2004-06-10  Jackson Harper  <jackson@ximian.com>
3030
3031         * assembly.c: Use <path>/lib/mono/gac for the extra paths
3032         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
3033         logical name as the supplied path is just a prefix to the gac not
3034         the direct path to it.
3035         
3036 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
3037
3038         * reflection.c: make the token for a created method match
3039         the token of the MethodBuilder it was created from
3040         (IKVM requires this behaviour now).
3041
3042 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
3043
3044         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
3045         reflection.c, socket-io.c: leak fixes.
3046
3047 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
3048
3049         * icall.c: handle sentinel pos in vararg methods in position different
3050         from 0.
3051
3052 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3053
3054         * culture-info-tables.h: freshly generated.
3055
3056 2004-06-09  Martin Baulig  <martin@ximian.com>
3057
3058         * loader.c (mono_get_method_constrained): Call `mono_class_init
3059         (constrained_class)'.   
3060
3061 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
3062
3063         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
3064         any methods. Fixes #59629.
3065
3066 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3067
3068         * culture-info-tables.h: reflecting locale-builder updates.
3069
3070 2004-06-08  Dick Porter  <dick@ximian.com>
3071
3072         * object.h:
3073         * locales.c: Fixed compile warnings, including a real bug in
3074         CompareInfo_internal_compare.
3075         
3076 2004-06-08  Dick Porter  <dick@ximian.com>
3077
3078         * locales.c
3079         (ves_icall_System_Globalization_CompareInfo_internal_index):
3080         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3081         Double-check the resuls of usearches, because ICU currently
3082         ignores most of the collator settings here.  Fixes bug 59720.
3083         
3084 2004-06-08  Dick Porter  <dick@ximian.com>
3085
3086         * locales.c
3087         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3088         Fix memory leak and segfault-causing typo.  No idea how this one
3089         lasted so long without being noticed.
3090
3091 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
3092
3093         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
3094         any methods. Fixes #59629.
3095
3096 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3097
3098         * assembly.c:
3099         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
3100         own the critical section before). Removed dead code (that's done
3101         in the preload hook).
3102
3103         (mono_assembly_load_with_partial_name): call the preload hook.
3104
3105 2004-06-08  Martin Baulig  <martin@ximian.com>
3106
3107         * metadata.c (mono_metadata_signature_alloc): Default
3108         `sentinelpos' to -1.
3109
3110         * reflection.c (mono_image_get_array_token): Likewise.
3111
3112 2004-06-08  Martin Baulig  <martin@ximian.com>
3113
3114         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
3115
3116         * metadata.c (mono_metadata_parse_method_signature): When parsing
3117         a MethodDef which has VarArgs, set sentinelpos.
3118
3119         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
3120         `gint16' since we're using -1 for non-varargs methods.
3121
3122         * reflection.c
3123         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
3124         (method_encode_signature): Added varargs support.
3125         (method_builder_encode_signature): Likewise.
3126         (mono_image_get_varargs_method_token): New static method.
3127         (mono_image_create_method_token): New public method; this is
3128         called via an icall instead of mono_image_create_token() when
3129         calling a varargs method.       
3130
3131 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
3132
3133         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
3134
3135 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3136
3137         * culture-info-tables.h : Reflecting the latest locale-builder that
3138           fixed empty array representation ({} to {0}).
3139
3140 2004-06-07  Jackson Harper  <jackson@ximian.com>
3141
3142         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
3143         looking up extra gac paths. This allows MONO_GAC_PATH to act
3144         exactly like a prefix.
3145         
3146 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3147
3148         * reflection.c (mono_reflection_type_from_name): Make a copy of the
3149         type name before modifying it. Fixes #59405.
3150
3151 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3152
3153         * culture-info.h: added fields for "all datetime patterns".
3154         * locales.c: (  ves_icall_System_Globalization_CultureInfo
3155           _construct_datetime_format ()): fill xxx_patterns fields.
3156         * object.h: added fields for "all datetime patterns" to
3157           MonoDateTimeFormatInfo.
3158         * culture-info-tables.h: reflecting locale-builder updates.
3159
3160 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3161
3162         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
3163         the event has no add and remove methods. Fixes #59629.
3164
3165 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
3166
3167         * object.c: Fixed possible integer overflow when allocating large
3168         strings.
3169
3170 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3171
3172         * culture-info-tables.h: reflecting locale-builder updates.
3173
3174 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3175
3176         * culture-info-tables.h: reflecting locale-builder updates.
3177
3178 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3179
3180         * culture-info-tables.h: reflecting locale-builder updates.
3181
3182 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3183
3184         * threads.c: Made Thread.Sleep abortable.
3185
3186 2004-06-02  Martin Baulig  <martin@ximian.com>
3187
3188         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3189
3190         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3191
3192 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3193
3194         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3195
3196 2004-05-30  Jackson Harper  <jackson@ximian.com>
3197
3198         * reflection.c: Do not hardcode assembly versions or public key
3199         tokens anymore. All of this except the corlib section was dead
3200         code anyways.
3201         
3202 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3203
3204         * object.c (mono_runtime_invoke_array): Automatically create boxed
3205         objects for byref valuetypes if needed. Fixes #59300.
3206         
3207         * object.c (mono_method_return_message_restore): Handle 
3208         MONO_TYPE_OBJECT as well.
3209
3210 2004-05-28  Jackson Harper  <jackson@ximian.com>
3211
3212         * reflection.c: The modified type encoding was causing build
3213         problems. Reverted for now.
3214         
3215 2004-05-28  Jackson Harper  <jackson@ximian.com>
3216
3217         * reflection.c/h: Take an assembly ref so that we dont create
3218         fully qualified names when encoding types in the same assembly as
3219         the custom attribute being emitted.
3220         * appdomain.c: Increment version number.
3221         
3222 2004-05-26  Duncan Mak  <duncan@ximian.com>
3223
3224         * icall.c
3225         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3226         Set the full version number (major, minor, build, revision).
3227
3228 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3229
3230         * marshal.c (emit_struct_conv): increment src/dst after blit
3231         (mono_marshal_get_managed_wrapper,
3232         mono_marshal_get_native_wrapper): make sure we have marshalling
3233         info before marshalling params (info computation affects
3234         blittable)
3235
3236         * class.c (class_compute_field_layout): correctly deal with
3237         blittable
3238         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3239         value types (as per what windows dows by default)
3240         (mono_class_setup_mono_type): System.ValueType is blittable
3241         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3242         blittable
3243
3244         * marshal.c (mono_marshal_load_type_info): flag types  as
3245         non-blittable if the native layout doesn't match the managed
3246         layout
3247
3248 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3249
3250         * appdomain.c: don't add stuff in the private search path that is
3251         above the application base. If application base is not set, there's
3252         no private search path.
3253
3254 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3255
3256         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3257         byref struct arguments in native->managed marshalling.
3258
3259 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3260
3261         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3262         cache methods using signature (special case for methods
3263         that are value type or string class)
3264         
3265         * image.c (mono_image_close): clean up allocated GSList's
3266         in runtime_invoke_cache.
3267
3268 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3269
3270         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3271         there's no MONO_CFG_DIR environment variable defined.
3272
3273 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3274
3275         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3276
3277 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3278
3279         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3280           is interrumped.
3281         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3282           before waiting for it, and call CloseHandle after the wait to unref it.
3283           This will make sure that handles are not disposed too early.
3284
3285 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3286
3287         * appdomain.c:
3288         * appdomain.h:
3289         * icall.c: removed
3290         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3291         needed now.
3292
3293         * object.c: se the application_base only for the domain that runs
3294         Main. Fixes bug #59216,
3295
3296 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3297
3298         * appdomain.c:
3299         * object.c: only the domain in which Main is run have
3300         SetupInformation.ConfigurationFile set, so moved a few lines from
3301         appdomain.c to object.c.
3302
3303 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3304
3305         * appdomain.c: we tried to load [name].(dll|exe), but according
3306         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3307         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3308         There's a test case attached to bug #58922.
3309
3310 2004-05-27  Dick Porter  <dick@ximian.com>
3311
3312         * icall.c:
3313         * file-io.c: Implemented icalls for locking and unlocking regions
3314         in a file.
3315         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3316         FALSE on error (fixes both compiler warning and real bug.)
3317
3318 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3319
3320         * culture-info-tables.h: reflecting locale-builder updates.
3321
3322           (Added missing ChangeLog entry for 05/26)
3323
3324 2004-05-27  Jackson Harper  <jackson@ximian.com>
3325
3326         * locales.c: Fix some cut and paste errors.
3327         
3328 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3329
3330         * mono-config.c: set the correct path for config. directory on windows.
3331
3332 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3333
3334         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3335           on win32.
3336
3337 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3338
3339         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3340         from pinvoke functions.
3341         
3342         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3343
3344 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3345
3346         * culture-info-tables.h: reflecting locale-builder updates.
3347
3348 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3349
3350         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3351         #59086.
3352
3353 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3354
3355         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3356         * icall.c: Modified icalls for RNG.
3357         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3358         Windows (CryptoAPI).
3359
3360 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3361
3362         * locales.c: Fix build.
3363
3364 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3365
3366         * culture-info-tables.h: reflecting locale-builder updates.
3367
3368 2004-05-25  Jackson Harper  <jackson@ximian.com>
3369
3370         * locales.c: When creating the current culture use the $LANGs
3371         specific culture. So DateTimeFormat and NumberFormat entries are created.
3372         
3373 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3374
3375         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3376         a char array as parameter.
3377
3378 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3379
3380         * image.c: In mono_image_open(), always use an absolute path name to
3381           look for already loaded images.
3382
3383 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3384
3385         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3386         missing in the windows build (like older cygwin include files).
3387
3388 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3389
3390         * icall.c: Fixed check for possible integer overflow in Buffer_
3391         BlockCopy icall. Replaced comments style // by /* */.
3392
3393 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3394
3395         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3396         
3397         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3398         check after MONO_VTADDR. Fixes pinvoke2.exe.
3399
3400         * marshal.h marshal.c metadata.h: Add beginnings of support for
3401         ftnptr -> delegate marshalling.
3402
3403 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3404
3405         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3406         * threads.c: Fix warnings.
3407
3408 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3409
3410         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3411         * icall.c: Registered icalls for Suspend and Resume.
3412         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3413           Thread.Abort.
3414         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3415         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3416         * process.c: Use WaitForSingleObjectEx.
3417         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3418           checkpoints.
3419         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3420           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3421           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3422           background threads. Added basic support for Abort in Windows.
3423           Start new threads using a managed delegate invoke wrapper. This wrapper
3424           has an interruption checkpoint that is needed since an interruption
3425           can be requested before the thread leaves the unmanaged code that starts 
3426           the thread.
3427         * marshal.c: Added interruption checkpoint after every native call, and
3428           also before managed calls for wrappers called from unmanaged code to
3429           go into managed code.
3430         * object.h: Added new field in MonoThread to keep track of interruption
3431           requests.
3432
3433 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3434
3435         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3436         calls.
3437
3438 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3439
3440         * appdomain.c:
3441         * assembly.c:
3442         * gc.c:
3443         * locales.c:
3444         * mono-config.c:
3445         * rand.c: getenv -> g_getenv (windows!)
3446
3447         * process.c: complete_path is also used on non-windows platforms.
3448
3449 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3450
3451         * icall.c: new signature for Process_Start.
3452
3453         * process.[ch]: new signature for Process_Start. If we're on windows
3454         and UseShellExecute is false, we have to search for the program by
3455         ourselves if we don't get a full path.
3456
3457 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3458
3459         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3460         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3461
3462 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3463
3464         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3465         Fixes bug #58373.
3466
3467 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3468
3469         * process.c: use double quotes to quote program name and arguments on
3470         windows. Fixes bug #58575.
3471
3472 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3473
3474         * file-io.c: don't return "." and ".." when using windows Find*File.
3475
3476 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3477
3478         * marshal.c: Don't pass wrappers to message init because method 
3479         addressed used to lookup metadata. part of remoting[2|3] fix.
3480
3481 2004-05-15  Jackson Harper  <jackson@ximian.com>
3482
3483         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3484         path is essentially the same as MONO_PATH except that it points to
3485         GACs instead of lib directories.
3486         * loader.h: The user gac is gone so we dont need function to
3487         enable/disable it.
3488         * mono-config.c: user gac option is now gone.
3489         
3490 2004-05-15  Jackson Harper  <jackson@ximian.com>
3491
3492         * culture-info.h: Make defines more consistent, add calendar data
3493         to the culture info table.
3494         * culture-info-tables.h: Add basic calendar data. Basically
3495         everyone gets default gregorian until all the data is
3496         updated.
3497         * locales.c: Use the new consistent defines. Set calendar data for
3498         culture info objects.
3499         * object.h: add a field for calendar data to CultureInfo
3500         
3501 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3502
3503         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3504         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3505         a signature.
3506         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3507         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3508         an extra param that is the pointer of the method to invoke. The IL for
3509         the invoke method is no longer specific to the method, but to the
3510         signature of the method. Thus, we can share the same code for multiple
3511         methods. This reduces the number of methods that have to be compiled.
3512
3513 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3514
3515         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3516
3517         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3518
3519         * icall.c: Optimize Buffer.BlockCopy.
3520
3521 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3522
3523         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3524         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3525         quote). Changed them to "MMMM yyyy".
3526
3527 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3528
3529         * rand.c
3530         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3531
3532 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3533
3534         * reflection.h: Updated after changes to managed structures.
3535
3536         * appdomain.c: Bump corlib version.
3537
3538 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3539
3540         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3541         windows.
3542
3543 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3544
3545         * Makefile.am: link to ../os/libmonoos.la on windows.
3546
3547         * assembly.c:
3548                 -If MONO_DEBUG, warn about non-existing directories in
3549                 MONO_PATH.
3550                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3551                 compile time variable.
3552                 -Removed init_default_path and call mono_set_rootdir from
3553                 libmonoos.a instead (windows only).
3554
3555         * assembly.h: declare mono_assembly_getrootdir().
3556
3557         * domain.c:
3558         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3559
3560         * loader.c: s/getenv/g_getenv/
3561
3562 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3563
3564         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3565
3566         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3567
3568         * metadata.h: Add new marshalling conversions.
3569
3570         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3571         function.
3572
3573         * reflection.c (mono_reflection_get_type): Lookup the type in all
3574         modules of a multi-module assembly. Fixes #58291.
3575
3576 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3577
3578         * threads.c: Before aborting a background, set the StopRequested
3579         state.  This avoids throwing the Abort exception.
3580         In mono_thread_manage, don't continue with the shutdown until all
3581         aborted threads have actually stopped.
3582
3583 2004-05-10  Jackson Harper  <jackson@ximian.com>
3584
3585         * locales.c: Remove the modifier from culture names.
3586         
3587 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3588
3589         * Makefile.am: monosn is not installed any more. It has been deprecated
3590         in favor of sn.
3591
3592 2004-05-07  Jackson Harper  <jackson@ximian.com>
3593
3594         * locales.c
3595         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3596         Fix array construction, add bailout if the length is 0.
3597
3598 2004-05-07  Dick Porter  <dick@ximian.com>
3599
3600         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3601         machine doesn't have a DNS entry.  Patch by Urs Muff
3602         (umuff@quark.com), fixes bug 57928.
3603
3604 2004-05-06  Jackson Harper  <jackson@ximian.com>
3605
3606         * reflection.c: Handle null PublicTokens properly. alloc mem for
3607         assembly names culture so we dont crash when freeing it.
3608         
3609 2004-05-06  Jackson Harper  <jackson@ximian.com>
3610
3611         * assembly.c: Check the usergac when loading with partial names.
3612         
3613 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3614
3615         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3616         does nothing for now (not required for Linux/Windows) but the class
3617         library can call it (and a newer or modified runtime could need it).
3618         * icall.c: Registred icall.
3619
3620 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3621
3622         * loader.c: prints a message on module loading error we set MONO_DEBUG
3623         environment variable.
3624
3625 2004-05-05  Jackson Harper  <jackson@ximian.com>
3626
3627         * appdomain.c: Handle PublicKeyToken=null properly.
3628         
3629 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3630
3631         * environment.c|h: Added icall ves_icall_System_Environment_
3632         GetOSVersionString to get the current OS version as a string.
3633         * icall.c: Registred icall.
3634
3635 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3636
3637         * object.c: in mono_object_get_virtual_method(), take into account that
3638         non-virtual methods don't have a slot in the vtable. Check needed when
3639         the object is a proxy.
3640
3641 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3642
3643         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3644         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3645
3646         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3647
3648         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3649         passed when a valuetype is expected.
3650
3651         * object.c (mono_unhandled_exception): Only set the exit code if the
3652         exception happens in the main thread. Fixes thread5.exe.
3653
3654         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3655         invalid names. Fixes #58047.
3656
3657 2004-05-03  Jackson Harper  <jackson@ximian.com>
3658
3659         * assembly.c: This line was committed accidently and is unneeded.
3660         
3661 2004-05-03  Jackson Harper  <jackson@ximian.com>
3662
3663         * icall.c: Add new icall for Assembly::LoadWithPartialName
3664         * assembly.c/.h: new function that probes the GAC to load partial
3665         assembly names by Paolo Molaro.
3666         
3667 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3668
3669         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3670         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3671         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3672         full type name.
3673
3674 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3675
3676         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3677         * reflection.c: fix bug when parsing a full type name and Version is not
3678         the last thing in the string.
3679
3680 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3681
3682         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3683         crashes when it is freed.
3684
3685 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3686
3687         * assembly.c: print the compat warning to stderr.
3688
3689 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3690
3691         * assembly.c (mono_assembly_load_references): Add a compatibility
3692         hack to run old applications that might be still referencing the
3693         3300-based assemblies, only do this for System.xxx.
3694
3695 2004-05-01  Jackson Harper  <jackson@ximian.com>
3696
3697         * appdomain.c: If the culture is neutral we set it to "".
3698         
3699 2004-04-29  Jackson Harper  <jackson@ximian.com>
3700
3701         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3702
3703 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3704  
3705         * string-icalls.c: added low overhead function for copying chars
3706         * icall.c: added needed icall for the above function
3707  
3708 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3709
3710         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3711         Environment.GetLogicalDrives.
3712
3713 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3714
3715         * rand.c: try and talk to egd or prngd
3716         for random bytes if opening devices fail.
3717
3718 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3719
3720         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3721         alignment for the type using the native alignment of its members 
3722         instead of using klass->min_align.
3723
3724         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3725
3726 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3727
3728         * file-io.c:
3729         * socket-io.c: added check for sys/aio.h.
3730
3731 2004-04-28  Dick Porter  <dick@ximian.com>
3732
3733         * threads.c: Don't abort a thread thats already aborting, when
3734         terminating everything.
3735
3736 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3737
3738         * icall.c: added 2 new async calls for Socket.
3739
3740         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3741         IO on *nix systems.
3742
3743         * threadpool.c: removed unused variable.
3744
3745 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3746
3747         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3748
3749 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3750
3751         * locales.c: put back string_invariant_tolower () and
3752         string_invariant_toupper ().
3753
3754 2004-04-26 David Waite <mass@akuma.org>
3755
3756         * file-io.h:
3757         * socket-io.h:
3758         * threads.h:
3759         * unicode.h: remove comma from end of enumeration declarations
3760
3761 2004-04-26 David Waite <mass@akuma.org>
3762
3763         * debug-mono-symfile.h:
3764         * decimal.c:
3765         * mono_debug.h:
3766         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3767
3768
3769 2004-04-26  Jackson Harper  <jackson@ximian.com>
3770
3771         * appdomain.c: Increment version number.
3772         
3773 2004-04-26  Jackson Harper  <jackson@ximian.com>
3774
3775         * appdomain.c: Set assembly references public token value when
3776         PublicKeyToken is specified, not the hash_value. Free public token
3777         values when free assembly name data. Previously the public key
3778         token was hex decoded, however we are using hex encoded public key
3779         tokens, so this is not neccasary.
3780         * assembly.c: Lookup assemblies in the gac if their public token
3781         value is set. Add function to allow enabling user gac
3782         lookups. Specify whether or not the assembly was loaded from the
3783         GAC. Compare full assembly names when checking the cache for
3784         assemblies (Temporarily disabled see comment in code). Remove
3785         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3786         specifies trace-loader they get extra info to stdout on the
3787         loading of assemblies.
3788         * image.h: Add a field for an assembly references public token
3789         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3790         whether an assembly has been loaded from the GAC.
3791         * image.c: Remove a corlib -> mscorlib name mapping.
3792         * loader.h: Add function to enable/disable the user gac.
3793         * mono-config.c: Check if the usergac is enabled in the config
3794         file.
3795         * icall.c: New icall to determine whether or not an assembly has
3796         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3797         * tabldefs.h: Add constant for assemblyref flag that specifies a
3798         full public key is used instead of a public token.
3799         * reflection.c: Remove mscorlib -> corlib mappings. Set
3800         PublicTokenValue instead of hash value. This value is a hex
3801         string so it does not need to be expanded.
3802
3803 2004-04-26  Martin Baulig  <martin@ximian.com>
3804
3805         * mono-debug-debugger.c (mono_debugger_initialize): Set
3806         `mono_debugger_initialized' before calling mono_debug_lock().
3807
3808 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3809
3810         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3811           InternalToUpper/InternalToLower.
3812         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3813           removed invariant culture shortcut.  This is now done in managed code.
3814         * locales.c: (string_invariant_toupper/tolower) removed.
3815
3816 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3817
3818         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3819         Added Poll internal call.
3820
3821         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3822         call for Poll. Select was too heavy for polling a single socket.
3823
3824         * threadpool.[ch]: added mono_threadpool_cleanup.
3825         * threads.c: use it. Don't use Thread_Abort on windows.
3826
3827 2004-04-23  Martin Baulig  <martin@ximian.com>
3828
3829         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3830
3831 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3832
3833         * icall.c: Registred new icalls for key pair protection and added an
3834         icall for Environment.GetFolderPath on Windows.
3835         * security.c|h: Added new icalls for key pair protection.
3836
3837 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3838
3839         * socket-io.c: don't display the non-supported family warning for known
3840         families. Now this is not displayed on windows when checking support
3841         for IPv4/IPv6.
3842
3843 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3844
3845         * class.c: don't display the layout warning for static fields.
3846
3847 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3848
3849         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3850         * locales.c, locales.h: Added new icalls for culture-specific
3851         Char.ToLower and Char.ToUpper.
3852
3853 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3854
3855         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3856         by David Waite.
3857
3858 2004-04-20  Martin Baulig  <martin@ximian.com>
3859
3860         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3861         of the type name before passing it to mono_reflection_type_from_name().
3862
3863 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3864
3865         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3866         encodings here. Fixes #56965.
3867
3868 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3869
3870         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3871         fix test on strstr result not that I can see anything that
3872         relies on the result.
3873
3874 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3875
3876         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3877         Fixes #57081.
3878
3879         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3880
3881         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3882         function to determine which marshalling to use for strings. Fixes
3883         #56965.
3884
3885         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3886
3887         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3888
3889 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3890
3891         * icall.c: #include mono-config.h
3892
3893 2004-04-15  Jackson Harper  <jackson@ximian.com>
3894
3895         * culture-info-tables.h: Fix date formats for en-US culture.
3896         
3897 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3898
3899         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3900         ThreadPool.SetMinThreads.
3901         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3902         ThreadPool.SetMinThreads.
3903
3904 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3905
3906         * mono-config.c: also load the .config file in the directory
3907         where the assembly was found.
3908
3909 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3910
3911         * assembly.c: load per-assembly config files.
3912         * icall.c: decrapified code to get the config dir and moved to
3913         mono-config.c.
3914         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3915         per-assembly config files. When doing a dll map lookup give precedence
3916         to the per-assembly data.
3917
3918 2004-04-14  Martin Baulig  <martin@ximian.com>
3919
3920         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3921         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3922         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3923
3924         * mono-debugger-debugger.c: While the debugger is locked, remember
3925         whether the symbol tables have changes and send one single
3926         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3927
3928 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3929
3930         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3931
3932         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3933         function.
3934
3935         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3936         account when marshalling string arrays. Fixes #56965.
3937
3938 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3939
3940         * icall.c: Add new icalls mapping for security.
3941         * security.c|h: Add internal calls for WindowsIdentity,
3942         WindowsImpersonationContext and WindowsPrincipal.
3943
3944 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3945
3946         * class.c: Added comment to ensure the System.MonoDummy class
3947         is removed when no longer necessary
3948
3949 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3950
3951         * appdomain.c: Pass arguments to the bootstraping exceptions to
3952         minimize JITed methods at boot
3953
3954         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3955         second string to be null.
3956
3957         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3958         Change the protocol to minimize the JIT methods at startup.  Now
3959         it Returns the internal codepage, if the value of "int_code_page"
3960         is 1 at entry, and we can not compute a suitable code page
3961         number, returns the code page as a string.
3962
3963 2004-04-13  Jackson Harper  <jackson@ximian.com>
3964
3965         * culture-info-tables.h: Fix number of decimal digits for all
3966         english locales.
3967
3968 2004-04-13  Jackson Harper  <jackson@ximian.com>
3969
3970         * icall.c: Clairfy out of sync error message. It is not always
3971         your corlib that is out of sync.
3972
3973 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3974
3975         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3976         properties when only the set accessor is overriden. Fixes #55874.
3977
3978 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3979
3980         * assembly.c (mono_assembly_load_references): Make this thread safe.
3981         Fixes #56327.
3982
3983 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3984
3985         * monosn.c: Add missing initialization calls.
3986
3987 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
3988
3989         * locales.c:
3990         ves_icall_System_Globalization_CultureInfo_construct_number_format
3991         Fix g_assert so it compiles on fussier compilers re int/ptr
3992         mismatch
3993
3994 2004-04-08  Dick Porter  <dick@ximian.com>
3995
3996         * socket-io.h:
3997         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
3998         53992.  Also rearrange the code so that the internal calls return
3999         an error value and exceptions are thrown from managed code.
4000
4001         * icall.c: Add type info to the socket icalls.
4002
4003 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4004
4005         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
4006         owes me a beer.
4007
4008 2004-04-07  Martin Baulig  <martin@ximian.com>
4009
4010         * class.c (mono_class_from_generic_parameter): Don't default
4011         `klass->parent' to `mono_defaults.object_type'.
4012
4013 2004-04-07  Martin Baulig  <martin@ximian.com>
4014
4015         * reflection.c (mono_reflection_initialize_generic_parameter): Set
4016         `param->pklass->reflection_info'.       
4017
4018 2004-04-07  Jackson Harper  <jackson@ximian.com>
4019
4020         * culture-info-tables.h: Fix date separator symbol.
4021         
4022 2004-04-07  Martin Baulig  <martin@ximian.com>
4023
4024         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
4025         from System.Type to System.MonoType.
4026
4027 2004-04-07  Martin Baulig  <martin@ximian.com>
4028
4029         * reflection.h
4030         (MonoReflectionGenericParam): Added `has_reference_type' and
4031         `has_value_type' fields.
4032
4033         * reflection.c (mono_image_get_generic_param_info): Encode the
4034         correct flags if we have the `class' or `struct' constraint.
4035
4036 2004-04-07  Martin Baulig  <martin@ximian.com>
4037
4038         * reflection.h
4039         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
4040
4041 2004-04-07  Jackson Harper  <jackson@ximian.com>
4042
4043         * appdomain.c: Revert extra patches, just wanted to bump the
4044         version number.
4045         
4046 2004-04-07  Jackson Harper  <jackson@ximian.com>
4047
4048         * Makefile.am: Add culture-info private headers.
4049         * icall.c: Add new icalls for contructing locales.
4050         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
4051         * locales.h: Declare new culture info construction methods.
4052         * object.h: Add new fields used to avoid the CultureMap to
4053         MonoCultureInfo.
4054         * culture-info.h: Definition of structs used in the culture info
4055         tables.
4056         * culture-info-tables.h: Autogenerated tables that contain culture
4057         info data. This file was generated with the locale-builder tool.
4058         * appdomain.c: Incement corlib version number.
4059         
4060 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
4061
4062         * appdomain.c: (mono_runtime_init) move mono_thread_init
4063         to before mono_object_new calls so critical sections
4064         are initialized before use.
4065
4066 2004-04-07  Martin Baulig  <martin@ximian.com>
4067
4068         * icall.c
4069         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
4070         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
4071         (ves_icall_MonoGenericParam_initialize): Removed.
4072         (monogenericparam_icalls): Removed.
4073         (generictypeparambuilder_icalls): Added new table for
4074         System.Reflection.Emit.GenericTypeParameterBuilder.
4075
4076         * reflection.c
4077         (mono_reflection_define_generic_parameter): Removed.
4078         (mono_reflection_initialize_generic_parameter): This is now called
4079         from GenericTypeParameterBuilder's .ctor.
4080
4081 2004-04-06  Martin Baulig  <martin@ximian.com>
4082
4083         * class.c (mono_class_init): Don't inflate nested classes in a
4084         generic instance.
4085         (mono_type_get_name_recurse): Include the generic arguments for
4086         generic instances and generic type declarations.
4087         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
4088         (_mono_class_get_instantiation_name): Removed.
4089         (mono_class_create_generic): Always use `gklass->name' as our name.
4090
4091         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
4092
4093         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
4094         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
4095         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
4096         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
4097         closed generic methods here.
4098
4099         * reflection.c
4100         (mono_reflection_generic_inst_get_nested_types): Removed.
4101         (inflate_mono_method): Copy the generic parameters from the
4102         MonoMethodHeader into out MonoGenericMethod.
4103
4104 2004-04-06  Martin Baulig  <martin@ximian.com>
4105
4106         * row-indexes.h
4107         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
4108
4109         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
4110
4111         * reflection.c (build_compressed_metadata): If we have any entries
4112         in the GenericParam, MethodSpec or GenericParamConstraint tables,
4113         set the header version to 1.1.
4114
4115 2004-04-06  Martin Baulig  <martin@ximian.com>
4116
4117         * class.c (mono_class_init): If we're a generic instance,
4118         initialize our nested classes, too.
4119         (_mono_class_get_instantiation_name): Deal with the new `!%d'
4120         suffix. 
4121
4122 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4123
4124         * process.c: quote the argument passed to the shell on windows.
4125
4126 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4127
4128         * threads.c (mono_alloc_special_static_data): Allow this to be
4129         called during startup.
4130
4131 2004-04-02  Martin Baulig  <martin@ximian.com>
4132
4133         * icall.c
4134         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
4135
4136 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4137
4138         * icall.c: Fix build.
4139
4140 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4141
4142         * Makefile.am: Added security.c|h.
4143         * icall.c: Added icall for get_UserName;
4144         * security.c: New file for security related icalls. Added function
4145         get_UserName for System.Environment (fix #56144).
4146         * security.h: New. Header file for security.c
4147
4148 2004-04-02  Dick Porter  <dick@ximian.com>
4149
4150         * icall.c: Deleted the icalls that were obsoleted some time ago
4151         by the ICU string code, and which were mixed into the icall
4152         rearranging.  Fixes bug 55969.
4153
4154         * string-icalls.h: 
4155         * string-icalls.c: Deleted the code that those icalls reference.
4156
4157 2004-04-01  Martin Baulig  <martin@ximian.com>
4158
4159         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
4160
4161         * class.c (mono_class_from_generic_parameter): Don't set 
4162         TYPE_ATTRIBUTE_INTERFACE.
4163         (my_mono_class_from_generic_parameter): Likewise.
4164
4165 2004-04-01  Martin Baulig  <martin@ximian.com>
4166
4167         * loader.c (find_method): Added an optional `MonoClass *ic'
4168         argument to search in a specific interface.
4169         (mono_get_method_constrained): New public function.
4170
4171 2004-04-01  Martin Baulig  <martin@ximian.com>
4172
4173         * reflection.c (mono_image_get_generic_field_token): Use the
4174         `handleref' cache here.
4175
4176 2004-04-01  Martin Baulig  <martin@ximian.com>
4177
4178         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4179
4180         * reflection.c (create_generic_typespec): Use the `typespec' hash
4181         here, not the `typeref' one.    
4182
4183 2004-04-01  Martin Baulig  <martin@ximian.com>
4184
4185         * class.c (mono_class_inflate_generic_type): Moved the
4186         functionality into a new static inflate_generic_type() which
4187         returns NULL if it didn't do anything.  Only increment the
4188         `mono_stats.inflated_type_count' if we actually inflated
4189         something.
4190         (mono_class_get_full): Check the classes type to see whether we
4191         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4192
4193 2004-04-01  Jackson Harper  <jackson@ximian.com>
4194
4195         * reflection.c: Set culture for assembly references.
4196         
4197 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4198
4199         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4200
4201 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4202
4203         * assembly.c:
4204         (do_mono_assembly_open): the critical section also covers
4205         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4206
4207 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4208
4209         * threads.c:
4210         (mono_manage_threads): abort the background threads when finishing.
4211         Fixes bug #47232.
4212
4213 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4214
4215         * gc.c: only close the done_event handle if there was no timeout.
4216         C-ified comments.
4217
4218 2004-03-30  Martin Baulig  <martin@ximian.com>
4219
4220         * icall.c (icall_entries): It's called "System.Activator", not
4221         "System.Activation".    
4222
4223 2004-03-30  Martin Baulig  <martin@ximian.com>
4224
4225         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4226         (mono_class_create_from_typespec): Likewise.
4227
4228 2004-03-30  Martin Baulig  <martin@ximian.com>
4229
4230         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4231         `has_ctor_constraint' and `initialized'.
4232
4233 2004-03-30  Martin Baulig  <martin@ximian.com>
4234
4235         * reflection.c (encode_new_constraint): New static function to add
4236         the constructor constraint attribute to a type parameter.
4237         (encode_constraints): Call encode_new_constraint() if necessary.
4238
4239         * reflection.h
4240         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4241
4242         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4243         
4244 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4245
4246         * reflection.c, icall.c: add support for pinning variables. 
4247
4248 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4249
4250         * marshal.c (mono_marshal_get_managed_wrapper):
4251         init bool local with zero rather than null.
4252
4253 2004-03-29  Martin Baulig  <martin@ximian.com>
4254
4255         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4256         the "official" behavior here.
4257         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4258
4259 2004-03-29  Martin Baulig  <martin@ximian.com>
4260
4261         * icall.c: Reflect latest API changes.
4262
4263 2004-03-29  Martin Baulig  <martin@ximian.com>
4264
4265         * loader.c (mono_get_method_from_token): Also call
4266         mono_metadata_load_generic_params () for abstract and interface
4267         methods; replace the type arguments in the method signature with
4268         the ones which are loaded from the metadata.
4269
4270 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4271
4272         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4273         of the lock is not the current thread. MS.NET don't do it, in spite of
4274         what the documentation says. See bug #56157.
4275
4276 2004-03-28  Martin Baulig  <martin@ximian.com>
4277
4278         * class.c (mono_class_init): Don't call init_properties() and
4279         init_events() for generic instances; set `prop->parent' when
4280         inflating properties.
4281
4282         * reflection.c (mono_generic_inst_get_object): Call
4283         `mono_class_init (ginst->klass)'.
4284         (mono_type_get_object): Only create a MonoGenericInst if your
4285         generic type is a TypeBuilder.
4286         (do_mono_reflection_bind_generic_parameters): Only set
4287         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4288
4289 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4290
4291         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4292         Fixes #56091.
4293
4294 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4295
4296         * icall.c: added Kill_internal icall.
4297         * process.[ch]: added Kill_internal icall.
4298
4299 2004-03-25  Martin Baulig  <martin@ximian.com>
4300
4301         * class.h (MonoStats): Added `generic_instance_count',
4302         `inflated_method_count', `inflated_type_count' and
4303         `generics_metadata_size'.       
4304
4305 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4306
4307         * reflection.c: no warnings now.
4308
4309 2004-03-25  Martin Baulig  <martin@ximian.com>
4310
4311         * class.c (mono_class_get_full): New public function; does a
4312         mono_class_get(), but also takes a `MonoGenericContext *'.
4313
4314         * loader.c (mono_field_from_memberref): Renamed to
4315         `field_from_memberref', made static and added `MonoGenericContext *'
4316         argument.
4317         (mono_field_from_token): Added `MonoGenericInst *' argument.
4318         (method_from_memberef): Likewise.
4319         (mono_get_method_from_token): Likewise.
4320         (mono_get_method_full): New public function; does a
4321         mono_get_method(), but also takes a `MonoGenericContext *'.
4322
4323         * verify.c (mono_method_verify): Get the method's generic context
4324         and pass it to mono_field_from_token(), mono_get_method_full() and
4325         mono_class_get_full().
4326
4327 2004-03-25  Martin Baulig  <martin@ximian.com>
4328
4329         * class.c (mono_class_inflate_generic_type): Take a
4330         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4331         `MonoGenericMethod *'.
4332
4333 2004-03-25  Martin Baulig  <martin@ximian.com>
4334
4335         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4336         instead of the MonoGenericMethod here.
4337
4338 2004-03-25  Martin Baulig  <martin@ximian.com>
4339
4340         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4341         each time we create a new MonoGenericInst, we also create a new
4342         context which points back to us.
4343
4344         * class.c (inflate_method): Use `ginst->context' instead of
4345         creating a new context.
4346
4347         * loader.c (method_from_memberref): Use
4348         `klass->generic_inst->context' instead of creating a new context.
4349
4350 2004-03-25  Martin Baulig  <martin@ximian.com>
4351
4352         * class.h (MonoGenericContext): New struct.
4353         (MonoGenericMethod): Removed `generic_inst'.
4354
4355         * class.c (mono_class_inflate_generic_method): Take a
4356         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4357
4358 2004-03-25  Martin Baulig  <martin@ximian.com>
4359
4360         * loader.h (MonoMethodInflated): New typedef.
4361
4362         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4363         `generic_param_count' consume just 30 bits, added `is_inflated'
4364         and `has_type_parameters' flags (one bit each).
4365
4366         * class.c (mono_class_inflate_generic_method): Create a
4367         MonoMethodInflated instead of a MonoMethodNormal and set
4368         `is_inflated' in the method signature.
4369
4370         * class.h (MonoGenericMethod): Removed `generic_method'.
4371
4372 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4373
4374         * image.c: Make sure the name of a MonoImage is always an absolute path.
4375           This fixes bug #54415.
4376
4377 2004-03-24  Martin Baulig  <martin@ximian.com>
4378
4379         * class.c (mono_class_setup_vtable): If we're a generic instance,
4380         use our generic type's vtable size.
4381
4382 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4383
4384         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4385         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4386         problems.
4387
4388 2004-03-23  Martin Baulig  <martin@ximian.com>
4389
4390         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4391         `MonoEvent *events'.
4392
4393         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4394         (typebuilder_icalls): Added "get_event_info"; calls
4395         mono_reflection_event_builder_get_event_info(). 
4396
4397         * reflection.c (mono_reflection_generic_inst_initialize): Added
4398         `MonoArray *events'.
4399         (mono_reflection_event_builder_get_event_info): New function.
4400
4401 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4402
4403         * object.h: add mono_type_initialization_init
4404
4405         * object.c (mono_runtime_class_init): 
4406         implement class constructor synchronization rules
4407         to cope with threading issues.  
4408         add mono_type_initialization_init
4409
4410         * appdomain.c (mono_runtime_init): call 
4411         mono_type_initialization_init
4412
4413         * class.h: removing initializing field from MonoVTable
4414
4415 2004-03-23  Martin Baulig  <martin@ximian.com>
4416
4417         * class.c (my_mono_class_from_generic_parameter): Use
4418         `param->name' if it's not NULL. 
4419
4420 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4421
4422         * class.c: do not insert non-virtual methods in the vtable.
4423         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4424         that means the method is non-virtual. This never would have
4425         happened before.
4426
4427 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4428
4429         * profiler.c: Added lock for accessing coverage_hash.
4430
4431 2004-03-22  Martin Baulig  <martin@ximian.com>
4432
4433         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4434         `method->method->signature->generic_param_count != 0' to make it
4435         work for interface methods.
4436
4437 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4438
4439         * process.c: quote the string passed to the shell using g_shell_quote.
4440
4441 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4442
4443         * threads.c:
4444         (mono_threads_manage): don't remove the finalizer thread and self
4445         from the threads hash table so that mono_thread_manage can be called
4446         more than once.
4447
4448 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4449
4450         * process.c: quote the arguments when UseShellExecute is true. Fixes
4451         bug #55790.
4452
4453 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4454
4455         * threads.c: set mono_thread_detach as a cleanup routine for every
4456         thread. This way it's always executed upon thread termination, either
4457         aborted or finished normally. No more xsp hangs!
4458
4459 2004-03-17  Martin Baulig  <martin@ximian.com>
4460
4461         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4462         `int count_nested' and a `MonoType **nested'.
4463
4464         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4465         most of the functionality into a new static
4466         do_mono_reflection_bind_generic_parameters() and don't take a
4467         `MonoType *nested_in' argument any more.  Don't compute nested
4468         types here.
4469         (mono_reflection_generic_inst_get_nested_types): New public method
4470         to get nested types.
4471
4472         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4473         we're a nested class.
4474
4475         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4476         mono_reflection_generic_inst_get_nested_types() to compute the
4477         nested types.
4478
4479 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4480
4481         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4482         descriptive error message under windows.
4483         
4484 2004-03-17  Martin Baulig  <martin@ximian.com>
4485
4486         * class.c (dup_type): Added `const MonoType *original' argument;
4487         copy the attrs from the original type.
4488
4489 2004-03-17  Martin Baulig  <martin@ximian.com>
4490
4491         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4492         `m->generic_inst_cache' here.
4493
4494 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4495
4496         * exception.h exception.c: Add stack_overflow_exception.
4497
4498 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4499
4500         * threadpool.c:
4501         (overlapped_callback): call SetEvent *after* invoking the callback.
4502         No need to call CloseHandle.
4503
4504 2004-03-16  Martin Baulig  <martin@ximian.com>
4505
4506         * reflection.c (mono_image_get_fieldref_token): Take a
4507         `MonoReflectionField *' instead of a `MonoClassField *' and a
4508         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4509
4510 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4511
4512         * appdomain.c: don't add the culture to the filename we're looking for
4513         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4514
4515 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4516
4517         * locales.c: don't ignore symbols when doing case insensitive compares.
4518         Thanks Dick! Fixes bug #54046.
4519
4520         * threads.c: surround 'threads' usage with enter/leave in
4521         mono_thread_manage.
4522
4523 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4524
4525         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4526         implicitly marshalled as [Out]. Fixes #55450.
4527
4528         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4529         an exception.
4530
4531 2004-03-16  Martin Baulig  <martin@ximian.com>
4532
4533         * class.c (mono_class_from_generic_parameter): Use the actual
4534         parameter name. 
4535
4536 2004-03-16  Martin Baulig  <martin@ximian.com>
4537
4538         * reflection.c (type_get_signature_size): New static function.
4539         Compues the size of the type in a method signature.
4540         (method_get_signature_size): New static function; calls
4541         type_get_signature_size() to compute the actual size of the
4542         method's signature.
4543         (method_encode_signature): Use method_get_signature_size() to get
4544         the signature's size rather than using `nparams * 10'.
4545
4546 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4547
4548         * file-io.h: define here WapiOverlapped on windows. I don't want the
4549         regular OVERLAPPED one.
4550
4551         * file-io.c:
4552         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4553         Disabling AIO on windows.
4554
4555 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4556
4557         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4558         bug #55385.
4559
4560 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4561
4562         * appdomain.c: upgraded corlib version.
4563
4564         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4565         and BeginWrite. Allow opening files for asynchrnous operations.
4566
4567         * file-io.h: new struct that maps FileStreamAsyncResult.
4568         * icall.c: added new icalls.
4569         * process.[ch]: support setting child process environment variables
4570         and use the SHELL or COMSPEC when UseShellExecute is true.
4571
4572         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4573         callback for async. IO is here and also BindHandle.
4574
4575         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4576         from here.
4577
4578 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4579
4580         * reflection.c (create_custom_attr): Allow len == 0.
4581
4582         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4583         computation on big-endian machines.
4584
4585 2004-03-13  Martin Baulig  <martin@ximian.com>
4586
4587         * class.h (MonoGenericInst): Added `int count_ifaces'.
4588
4589         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4590         `ginst->count_ifaces' instead `klass->interface_count' since we
4591         may get called before the vtable is created.
4592
4593         * loader.c (mono_method_get_param_names): If we're a generic
4594         instance, return and don't initialize the class.
4595
4596         * reflection.c (mono_reflection_setup_generic_class): Don't call
4597         ensure_runtime_vtable().
4598         (mono_reflection_bind_generic_parameters): Set
4599         `ginst->count_ifaces'.
4600
4601 2004-03-11  Jackson Harper <jackson@ximian.com>
4602
4603         * icall.c:
4604         * unicode.c:
4605         * unicode.h: Remove unused System.Char icalls.
4606         
4607 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4608
4609         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4610         code when we P/Invoke the first library in Windows.Forms, instead
4611         of when we first open the assembly.
4612
4613         * assembly.c: Drop the lookup from here.
4614
4615 2004-03-10  Martin Baulig  <martin@ximian.com>
4616
4617         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4618         class for properties, fields and events.  Finally fixes #54945.
4619
4620 2004-03-10  Martin Baulig  <martin@ximian.com>
4621
4622         * metadata.c (mono_metadata_class_equal): New static function;
4623         checks whether two generic instances or two generic parameters are
4624         equal.
4625         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4626         compare classes.        
4627
4628 2004-03-10  Martin Baulig  <martin@ximian.com>
4629
4630         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4631
4632         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4633         argument and write it into the `reflection_info' field.
4634
4635         * icall.c
4636         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4637         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4638
4639 2004-03-09  Jackson Harper  <jackson@ximian.com>
4640
4641         * char-conversions.h: use 8 bits for numeric data its all we need
4642         * icall.c: numeric data is only 8 bits now.
4643
4644 2004-03-09  Martin Baulig  <martin@ximian.com>
4645
4646         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4647
4648         * class.c (init_properties, init_events): Initialize the new
4649         `parent' field.
4650
4651         * reflection.c (typebuilder_setup_properties): Likewise.
4652         (typebuilder_setup_events): Likewise.
4653
4654         * reflection.h (MonoEventInfo): Replaced `parent with
4655         `declaring_type' and `reflected_type'.
4656
4657         * icall.c (ves_icall_get_property_info): Distinguish between
4658         declaring and reflected type.
4659         (ves_icall_get_event_info): Likewise.
4660
4661 2004-03-09  Martin Baulig  <martin@ximian.com>
4662
4663         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4664         (ves_icall_Type_GetField): Correctly set field->klass.
4665
4666 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4667
4668         * loader.h: Fix warning.
4669
4670 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4671
4672         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4673         library routine if present.  Notice that it will still continue
4674         executing even if its missing, for those working on the Gtk#
4675         edition of Windows.Forms.
4676
4677         * assembly.c (do_mono_assembly_open): If loading the
4678         System.Windows.Forms call mono_loader_wini_init.
4679
4680 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4681
4682         * class.h: Added MonoRemoteClass struct.
4683         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4684         function for MonoStrings.
4685         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4686         Added internal call for getting the proxy type.
4687         * marshal.c: Get the type of transparent proxies from its remote_class.
4688         Added methods that generate the IL for type checks and casts:
4689         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4690         mono_marshal_get_proxy_cancast.
4691         * marshal.h: Declaration of the previous new methods.
4692         * object.c: Added new moethods for creating and updating MonoRemoteClass
4693         instances: mono_remote_class, mono_upgrade_remote_class, 
4694         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4695         * verify.c: FIx transparent_proxy_fields layout.
4696         * appdomain.c: Bump corlib version.
4697
4698 2004-03-04  Jackson Harper  <jackson@ximian.com>
4699
4700         * icall.c: Add icall to access char conversion tables.
4701         * char-conversions.h: Character conversion tables.
4702         * Makefile.am: Add char-conversions.h private header file.
4703         
4704 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4705
4706         * appdomain.c (unload_thread_main): Increase unloading timeout to
4707         10 sec as a temporary workaround for Nant problems.
4708
4709 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4710
4711         * gc.c: Add checks for GC_enable and GC_disable.
4712
4713         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4714         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4715         (bug #54988).
4716         
4717 2004-02-27  Martin Baulig  <martin@ximian.com>
4718
4719         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4720         `MonoReflectionType *' instead of a `MonoType *'.
4721
4722 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4723
4724         * gc.c (run_finalize): Avoid finalizing the object representing the
4725         finalizer thread.
4726         (finalizer_thread): Fix warning.
4727
4728 2004-02-25  Martin Baulig  <martin@ximian.com>
4729
4730         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4731         argument for nested types.
4732         (mono_class_create_generic): Added support for nested generictypes.
4733
4734         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4735         `GList *nested'.
4736
4737         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4738
4739         * reflection.c (method_encode_signature): Increase the minimum
4740         value of `size' from 10 to 11.
4741         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4742         and `MonoType **types' arguments instead of the `MonoArray
4743         *types'; added `MonoType *nested_in'.  Recursively instantiate
4744         nested classes. 
4745
4746 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4747
4748         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4749         stack_overflow_ex members which are used by exception handling.
4750
4751         * appdomain.c (mono_runtime_init): Initialize the new members.
4752
4753         * gc.c (mono_gc_enable): New helper function.
4754         * gc.c (mono_gc_disable): New helper function.
4755
4756 2004-02-23  Martin Baulig  <martin@ximian.com>
4757
4758         * icall.c: I must have been really stupid - make it actually work
4759         this time ;-)
4760
4761 2004-02-23  Martin Baulig  <martin@ximian.com>
4762
4763         * loader.c (method_from_memberref): Only inflate the method if
4764         it's in another klass.
4765
4766 2004-02-23  Martin Baulig  <martin@ximian.com>
4767
4768         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4769         (mono_class_init): If we're a generic instance and an interface,
4770         compute `class->interface_id'; also create `class->interfaces'
4771         here and inflate them.
4772
4773         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4774         `ginst->is_open'.
4775         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4776
4777         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4778
4779 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4780
4781         * reflection.c (method_encode_code): Improved the error message
4782         generated by the exception.
4783
4784 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4785
4786         * icall.c: Martin did not do what he said in the ChangeLog for
4787         2004-02-18, but put back the changes for properties and events.
4788         Commenting those changes out again and adding comment to bug #54518.
4789         
4790         * process.c: removed warning.
4791
4792 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4793
4794         * marshal.c (emit_struct_conv): Print an error message instead of
4795         asserting when a type does not have the StructLayout attribute.
4796
4797 2004-02-20  Martin Baulig  <martin@ximian.com>
4798
4799         * reflection.c (mono_type_get_object): Also use the cache for
4800         generic instances.
4801         (mono_reflection_bind_generic_parameters): Always compute
4802         `ginst->ifaces'.        
4803
4804 2004-02-20  Martin Baulig  <martin@ximian.com>
4805
4806         * class.h (MonoGenericMethod): Removed `klass'.
4807
4808         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4809         *klass' argument.
4810
4811 2004-02-20  Martin Baulig  <martin@ximian.com>
4812
4813         * reflection.c (method_encode_methodspec): Actually use the
4814         uninflated signature for the memberref.
4815
4816 2004-02-20  Martin Baulig  <martin@ximian.com>
4817
4818         * class.h (MonoGenericMethod): Removed `declaring'.
4819
4820         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4821         is NULL, compute it here.
4822
4823 2004-02-20  Martin Baulig  <martin@ximian.com>
4824
4825         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4826
4827         * metadata.c (mono_metadata_generic_inst_hash): New method.
4828         (mono_metadata_generic_inst_equal): New method.
4829
4830         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4831         `klass->image->generic_inst_cache' cache to avoid creating
4832         duplicate MonoGenericInst's.
4833
4834         * class.c (mono_class_inflate_generic_type): Use the cache.
4835
4836 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4837
4838         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4839
4840 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4841
4842         * icall.c: added Socket.WSAIoctl icall.
4843
4844         * socket-io.[ch]: implemented
4845         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4846
4847 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4848
4849         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4850
4851 2004-02-18  Urs C Muff  <umuff@quark.com>
4852
4853         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4854         this work on PPC and other big-endian architectures.
4855
4856         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4857         fields with an underscore to make sure they're only accessed by
4858         the read32() macro.
4859
4860 2004-02-18  Martin Baulig  <martin@ximian.com>
4861
4862         * icall.c: Put the klass->refclass changes back for methods and
4863         fields, but not for properties and events.  We're currently not
4864         distinguishing between DeclaringType and ReflectedType for
4865         properties and events, that's what caused the regressions.
4866
4867 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4868
4869         * object.c:
4870         (mono_async_result_new): the handle can be NULL.
4871
4872         * threadpool.c: Use an event instead of a semaphore, don't initialize
4873         it until needed. This saves quite a few semaphores from being created
4874         when using the threadpool.
4875
4876 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4877
4878         * object.c (mono_string_is_interned_lookup): Fix interning of long
4879         strings. Fixes #54473.
4880
4881         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4882
4883         * icall.c: Revert the klass->refclass changes since they introduce
4884         regressions (bug #54518).
4885
4886 2004-02-18  Martin Baulig  <martin@ximian.com>
4887
4888         * class.c (mono_class_init): If we're a generic instance and don't
4889         come from a TypeBuilder, inflate our members here.
4890         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4891         (mono_class_create_generic): New public method.
4892         (mono_class_initialize_generic): Removed.
4893         (get_instantiation_name): Renamed to
4894         _mono_class_get_instantiation_name() and made it public.
4895
4896 2004-02-18  Martin Baulig  <martin@ximian.com>
4897
4898         * class.c (mono_class_inflate_generic_type): Clear the new
4899         instance's `nginst->klass' when inflating a generic instance.
4900         (mono_class_is_subclass_of): Added (basic) support for generic
4901         instances.
4902
4903 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4904
4905         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4906         MonoMempool to hold compiled native code.
4907
4908 2004-02-17  Martin Baulig  <martin@ximian.com>
4909
4910         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4911         `properties'.
4912
4913         * reflection.c (mono_reflection_generic_inst_initialize): Added
4914         `MonoArray *properties' argument.
4915
4916         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4917
4918 2004-02-17  Martin Baulig  <martin@ximian.com>
4919
4920         * icall.c (ves_icall_Type_GetFields): Renamed to
4921         ves_icall_Type_GetFields_internal() and added a
4922         `MonoReflectionType *rtype' argument; pass it to
4923         mono_field_get_object() to set the field's "reflected" type.
4924         (ves_icall_Type_GetConstructors): Likewise.
4925         (ves_icall_Type_GetEvents): Likewise.
4926         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4927         argument; pass it to mono_method_get_object() to set the method's
4928         "reflected" type.       
4929
4930 2004-02-17  Martin Baulig  <martin@ximian.com>
4931
4932         * class.h (MonoDynamicGenericInst): New type.
4933         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4934
4935         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4936         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4937         (ves_icall_MonoGenericInst_GetFields): New interncall.
4938
4939         * class.c (mono_class_from_generic): Don't call
4940         mono_class_initialize_generic() if this is a dynamic instance;
4941         ie. it's being created from a TypeBuilder.
4942         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4943         `class->byval_arg.type'.
4944
4945         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4946         to `inflate_method' and made static.
4947         (mono_reflection_inflate_field): Removed.
4948         (mono_reflection_generic_inst_initialize): New public method.
4949
4950         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4951         `ctors' and `fields'; added `initialized'.
4952
4953 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4954
4955         * debug-helpers.c (mono_method_full_name): Fix output for empty
4956         namespaces.
4957
4958 2004-02-12  Martin Baulig  <martin@ximian.com>
4959
4960         * class.h (MonoClassField): Added `MonoType *generic_type'.
4961
4962         * reflection.c (mono_image_get_fieldref_token): Added support for
4963         instantiated generic types.
4964         (field_encode_inflated_field): Removed.
4965         (mono_image_get_inflated_field_token): Removed.
4966         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4967
4968         * reflection.h (MonoReflectionInflatedField): Removed.
4969
4970 2004-02-12  Martin Baulig  <martin@ximian.com>
4971
4972         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4973         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4974
4975         * reflection.c (mono_image_get_methodspec_token): Take a
4976         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4977         (mono_image_create_token): Check whether we have a
4978         `method->signature->gen_method' and call
4979         mono_image_get_methodspec_token() if appropriate.
4980         (inflated_method_get_object): Removed.
4981         (mono_reflection_bind_generic_method_parameters): Return a
4982         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4983         (mono_reflection_inflate_method_or_ctor): Likewise.
4984
4985         * reflection.h (MonoReflectionInflatedMethod): Removed.
4986
4987 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
4988
4989         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
4990         for custom valuetype marshalling.
4991
4992         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
4993
4994 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4995
4996         * icall.c: fixed WSAGetLastError_internal name.
4997
4998 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
4999
5000         * threads.c (mono_thread_attach): Allow this to be called multiple
5001         times for a thread.
5002         
5003         * threads.c (build_wait_tids): Do not wait for ourselves.
5004
5005         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
5006         appdomain list is empty.
5007
5008         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
5009         memory returned by mono_string_builder_to_utf16, since it points into
5010         managed memory. Thanks to Bernie Solomon for noticing this.
5011
5012         * icall.c: Add AppDomainSetup icalls.
5013
5014         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
5015
5016         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
5017         types.
5018
5019         * reflection.c (reflection_methodbuilder_to_mono_method): Save
5020         custom attributes to the method_aux struct. Also fix array indexes etc.
5021
5022         * loader.c (mono_method_get_param_names): Make dynamic case work again.
5023         
5024 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
5025
5026         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
5027         (both static and runtime) and reduce startup time.
5028
5029 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
5030
5031         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
5032         AsAny marshalling conversion instead of crashing.
5033
5034         * marshal.c: Fix warnings.
5035
5036 2004-02-09  Martin Baulig  <martin@ximian.com>
5037
5038         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
5039
5040         * reflection.h (MonoReflectionInflatedMethod): Removed the
5041         `declaring' field, it's now in the unmanaged MonoGenericMethod.
5042
5043         * reflection.c (method_encode_methodspec): Removed the `method'
5044         argument; we get it from `gmethod->declaring'.
5045         (inflated_method_get_object): Removed the `declaring' argument.
5046
5047 2004-02-09  Martin Baulig  <martin@ximian.com>
5048
5049         * class.h (MonoGenericMethod): New type.
5050         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
5051         `generic_method'.
5052
5053         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
5054         a `MonoGenericMethod *gen_method' one.
5055
5056         * class.c (mono_class_inflate_generic_type): Take an additional
5057         `MonoGenericMethod * argument.  This is only non-NULL if we're
5058         inflating types for a generic method.   
5059         (mono_class_inflate_generic_signature): Renamed to
5060         inflate_generic_signature() and made static; take a
5061         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5062         (inflate_generic_header): Take a `MonoGenericMethod *' argument
5063         instead of a `MonoGenericInst *' one.
5064         (mono_class_inflate_generic_method): Likewise.
5065
5066         * reflection.c (encode_generic_method_sig): Take a
5067         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5068         (method_encode_methodspec): Likewise.
5069         (inflated_method_get_object): Likewise. 
5070
5071         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
5072         field with a `MonoGenericMethod *gmethod' one.  
5073
5074 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
5075
5076         * class.h (mono_class_has_parent): add parens to expansion
5077         so you can ! this.
5078
5079 2004-02-08  Martin Baulig  <martin@ximian.com>
5080
5081         * image.h (MonoImage): Removed `generics_cache'.
5082
5083         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
5084         instead of a `MonoType *' argument; removed the `inflate_methods'
5085         argument.  Don't inflate methods here.
5086
5087         * loader.c (find_method): If it's a generic instance, call
5088         mono_class_init() on the `sclass->generic_inst->generic_type'.
5089
5090         * metadata.c (mono_type_size): Make this work on uninitialized
5091         generic instances; call it on the `ginst->generic_type's class.
5092
5093         * reflection.c (mono_reflection_bind_generic_parameters): Call
5094         mono_class_from_generic() to create the `ginst->klass'.
5095
5096 2004-02-08  Martin Baulig  <martin@ximian.com>
5097
5098         * class.h (MonoClass): Changed type of `generic_inst' from
5099         `MonoType *' to `MonoGenericInst *'.
5100
5101 2004-02-08  Martin Baulig  <martin@ximian.com>
5102
5103         * icall.c (ves_icall_Type_BindGenericParameters): Just call
5104         mono_type_get_object(), this is now creating a `MonoGenericInst'
5105         for MONO_TYPE_GENERICINST.
5106         (ves_icall_MonoGenericInst_GetParentType): Likewise.
5107         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
5108
5109         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
5110         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
5111         (inflated_method_get_object): Added `MonoClass *refclass' argument.
5112         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
5113         and reflected type.
5114
5115         * reflection.h (MonoReflectionInflatedMethod): Removed
5116         `declaring_type' and `reflected_type'.
5117
5118 2004-02-08  Martin Baulig  <martin@ximian.com>
5119
5120         * class.h (MonoGenericInst): Added `MonoType *parent' and
5121         `MonoType **ifaces'.
5122
5123         * reflection.h (MonoReflectionGenericInst): Removed `klass',
5124         `parent' and `interfaces'.
5125
5126         * reflection.c (mono_reflection_bind_generic_parameters): Take a
5127         `MonoType *' argument and return a `MonoType *'.
5128
5129         * icall.c
5130         (ves_icall_MonoGenericInst_GetParentType): New interncall.
5131         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
5132
5133 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5134
5135         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
5136         valuetype marshalling.
5137
5138 2004-02-06  Martin Baulig  <martin@ximian.com>
5139
5140         * class.c
5141         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
5142         (my_mono_class_from_generic_parameter): Likewise.
5143
5144 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5145
5146         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
5147         contents of the symbol files lazily.
5148
5149         * object.h (MonoThread): Add 'name' and 'name_len' fields.
5150
5151         * threads.h threads.c icall.c: New icalls for getting and setting the
5152         threads name.
5153
5154 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
5155
5156         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
5157         Raise an exception when the domain is not found.
5158
5159 2004-02-03  Martin Baulig  <martin@ximian.com>
5160
5161         * reflection.c (mono_image_get_methodspec_token): Use the
5162         uninflated signature; fixes gen-33.
5163
5164 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5165
5166         * gc.c threads.c: Make the finalizer thread a normal managed thread so
5167         the finalizer code can use thread functionality.
5168
5169         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
5170         the finalizer thread.
5171
5172         * threads.c: Make some functions more robust.
5173
5174         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5175
5176         * metadata.h: Add new marshalling conventions.
5177
5178         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5179         stringbuilder marshalling. Fixes #53700.
5180
5181         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5182
5183         * reflection.c (mono_image_get_type_info): Save declarative security
5184         info.
5185
5186         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5187         unmanaged fields as well.
5188
5189         * appdomain.c: Bump corlib version.
5190
5191 2004-02-01  Martin Baulig  <martin@ximian.com>
5192
5193         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5194         method type arguments.  
5195
5196 2004-01-30  Duncan Mak  <duncan@ximian.com>
5197
5198         * marshal.h: Add prototype for
5199         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5200         and
5201         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5202         fix the build.
5203
5204 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5205
5206         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5207         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5208
5209 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5210
5211         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5212         custom marshalling of valuetypes.
5213
5214         * marshal.c: Fix some warnings.
5215
5216 2004-01-29  Martin Baulig  <martin@ximian.com>
5217
5218         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5219         for generic method parameters.
5220
5221         * reflection.c (method_encode_methodspec): Write the uninflated
5222         signature into the methodspec table.
5223         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5224         is always the uninflated method.
5225         (reflection_methodbuilder_to_mono_method): Copy the generic
5226         parameters from the MethodBuilder into `header->gen_params'.
5227
5228 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5229
5230         * class.c (mono_class_from_generic_parameter): Fix warning.
5231
5232 2004-01-27  Martin Baulig  <martin@ximian.com>
5233
5234         * class.c (mono_class_from_generic_parameter): Don't create
5235         `klass->methods' here.  
5236
5237 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5238
5239         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5240         extension since it does not work with libraries named lib<FOO>.dll.so.
5241
5242 2004-01-25  Martin Baulig  <martin@ximian.com>
5243
5244         * class.c (mono_class_inflate_generic_type): Added support for
5245         MONO_TYPE_GENERICINST.
5246
5247         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5248         inflate methods on open constructed types.      
5249
5250 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5251
5252         * object.c: fire ProcessExit event in the root AppDomain after running
5253         Main. Fixes bug #53299.
5254
5255 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5256
5257         * socket-io.c: include the new socket-wrappers.h header.
5258         Use the wrappers instead of the unix socket functions to make the code
5259         more clear.
5260
5261 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5262
5263         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5264
5265         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5266         Fixes #22532.
5267
5268 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5269
5270         * reflection.c (mono_image_create_pefile): Handle the case when the
5271         entry point is not a MethodBuilder.
5272
5273         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5274         field to ReflectionMethod since it is not allways a builder.
5275
5276         * reflection.c (type_get_fully_qualified_name): New helper function to
5277         return the fully qualified name of a type.
5278
5279         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5280         type name for custom marshallers.
5281
5282         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5283
5284         * class.c (mono_class_setup_vtable): If a parent class already 
5285         implements an interface, use the implementing methods from that class.
5286         Fixes #53148.
5287
5288 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5289
5290         * threadpool.c: just return instead of ExitThread to allow for thread
5291         clean up earlier.
5292
5293 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5294
5295         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5296         when closing resource modules.
5297
5298         * reflection.c (mono_image_create_pefile): Handle the case when the
5299         entry point is not a MethodBuilder.
5300
5301         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5302         field to ReflectionMethod since it is not allways a builder.
5303
5304 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5305
5306         * marshal.c (mono_marshal_get_managed_wrapper): 
5307         mono_marshal_alloc takes native int so CONV_I
5308         the arg for 64bits.
5309
5310 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5311
5312         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5313         tokens in the cattr table. Fixes #53108.
5314
5315 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5316
5317         * loader.c: don't trim ".dll" before looking up in the config file.
5318         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5319
5320 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5321
5322         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5323         Return the module which contains the resource as well.
5324         (ves_icall_System_Reflection_Module_Close): New icall.
5325
5326         * appdomain.c: Bump corlib version number.
5327
5328         * image.c (mono_image_addref): New public function.
5329
5330         * assembly.c: Call mono_image_addref.
5331
5332         * reflection.c (mono_module_get_object): Increase reference count of 
5333         the image.
5334
5335         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5336         Fixes #22532.
5337
5338         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5339         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5340         proper exceptions on DllImport problems.
5341
5342 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5343
5344         * class.c, metadata.c: eliminate CSIZE macro.
5345
5346 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5347
5348         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5349         * object.h: Added async_callback field in MonoAsyncResult.
5350         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5351         * verify.c: Added async_callback in MonoAsyncResult layout.
5352
5353 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5354
5355         * reflection.c (mono_reflection_get_custom_attrs): Add support
5356         for Modules.
5357
5358 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5359
5360         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5361         marshalling.
5362         (mono_marshal_method_from_wrapper): Add null pointer check.
5363
5364 2004-01-16  Martin Baulig  <martin@ximian.com>
5365
5366         * debug-mono-symfile.h: Set version number to 36 and reflect
5367         latest symbol writer changes.
5368
5369 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5370
5371         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5372         multi-dimensional arrays.
5373         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5374         (mono_class_from_mono_type): Use bounded_array_class_get.
5375         
5376         * class.c (mono_bounded_array_class_get): New function which takes
5377         a 'bounded' bool argument to distinguish vectors from one dimensional
5378         arrays.
5379
5380         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5381         bounded_array_class_get if the array has bounds.
5382
5383         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5384         Search modules loaded using AssemblyBuilder:AddModule as well.
5385
5386 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5387
5388         * appdomain.c: increased corlib version.
5389         * filewatcher.c: removed g_print.
5390         * icall.c:
5391         (get_property_info): only allocate what is actually requested.
5392         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5393
5394 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5395
5396         * Makefile.am: added filewatcher.[ch]
5397         * filewatcher.[ch]: FileSystemWatcher runtime support.
5398         * icall.c: added new FSW icalls.
5399
5400 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5401
5402         * string-icalls.c: fix stringbuilder regression as suggested by
5403         Iain McCoy <iain@mccoy.id.au>.
5404
5405 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5406
5407         * process.c (process_read_stringtable_block): Recognize '007f' as
5408         a language neutral stringtable block.
5409
5410 2004-01-12  Patrik Torstensson
5411
5412         * object.h (MonoStringBuilder) : Changed layout to support our
5413         new stringbuilder class.
5414         * marshal.c: Change marshalling to support the new layout of 
5415         string builder.
5416         * appdomain.c: increased version number because new layout of
5417         string builder.
5418
5419 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5420
5421         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5422         assembly name as an string instead of an AssemblyName, since it is
5423         easier to extract info from it.
5424
5425         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5426         the culture subdirectories too. Fixes #52231.
5427
5428 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5429
5430         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5431         It takes 2 new parameters with an optional name for the method to look
5432         for and case ignoring info.
5433
5434         * threadpool.c: removed unused variable.
5435
5436 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5437
5438         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5439         It takes 2 new parameters with an optional name for the property to look
5440         for and case ignoring info.
5441         Fixes bug #52753.
5442
5443 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5444
5445         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5446         Fix #52451.
5447
5448 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5449
5450         * appdomain.c:
5451         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5452         Fixes bug #52630.
5453
5454 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5455
5456         * reflection.c: Add support for more than one unmanaged resource.
5457
5458         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5459         in field->def_value, as done in all other cases.
5460
5461         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5462         TypeBuilders.
5463
5464         * reflection.c (mono_reflection_create_runtime_class): Remove 
5465         errorneous assignment to klass->element_class, since it is already
5466         done in mono_reflection_setup_internal_class.
5467
5468 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5469
5470         * gc.c: added missing LeaveCriticalSection.
5471         * icall.c: indented a couple of lines.
5472         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5473         if we call EndInvoke inside a callback. Fixes bug #52601.
5474
5475 2004-01-07  Martin Baulig  <martin@ximian.com>
5476
5477         * mono-debug-debugger.h
5478         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5479
5480 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5481
5482         * appdomain.c: Use messages in NotImplementedException.
5483
5484         * exception.c (mono_get_exception_not_implemented): Now this takes
5485         a message argument.
5486
5487         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5488         exception instead of g_asserting an aborting when something is not
5489         implemented.
5490
5491         Add some inline docs.
5492
5493 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5494
5495         * reflection.h: Update after changes to object layout.
5496
5497         * reflection.c: Implement saving of unmanaged aka win32 resources.
5498
5499         * appdomain.c: Bump version number.
5500
5501         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5502         Handle missing domains gracefully.
5503
5504 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5505
5506         * file-io.c : On Windows, there are much more invalid_path_chars.
5507
5508 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5509
5510         * class.h, object.c: prepare for GetType () speedup.
5511
5512 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5513
5514         * profiler.c: workaround for --profile null reference exception on
5515           cygwin. Patch by Patrik Torstensson.
5516
5517 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5518
5519         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5520         make work for unaligned access.
5521
5522 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5523
5524         * class.c: small cleanup (class->fields [i] -> field).
5525         * image.c: check address of metadata is valid.
5526
5527 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5528
5529         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5530         search the list of loaded assemblies.
5531
5532         * reflection.c (mono_reflection_type_from_name): Use 
5533         mono_assembly_loaded instead of mono_image_loaded.
5534
5535         * reflection.c: Fix warnings.
5536
5537 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5538
5539         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5540         is dynamic. This is needed since an assembly can contain both dynamic and
5541         non-dynamic images.
5542
5543         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5544         assembly->dynamic.
5545
5546         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5547
5548         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5549         to store modules loaded using AddModule.
5550
5551         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5552         on Modules.
5553
5554         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5555
5556         * reflection.c (mono_image_fill_export_table_from_module): New function to
5557         fill out the EXPORTEDTYPES table from a module.
5558
5559         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5560         into a separate function. Also handle loaded non-dynamic modules.
5561
5562         * reflection.c (mono_image_basic_init): Fix memory allocation.
5563
5564         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5565
5566         * assembly.c (mono_assembly_load_references): Make this public.
5567
5568 2003-12-19  Martin Baulig  <martin@ximian.com>
5569
5570         * class.c (mono_class_initialize_generic): Made this static, take
5571         a `MonoGenericInst *' instead of a `MonoClass *'.
5572         (mono_class_from_generic): Call mono_class_initialize_generic()
5573         unless we're already initialized or being called from
5574         do_mono_metadata_parse_generic_inst().
5575
5576         * class.h (MonoGenericInst): Added `initialized' and
5577         `init_pending' flags.
5578
5579         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5580         `mono_class_init (gklass)' or mono_class_initialize_generic()
5581         here; set `generic_inst->init_pending' while parsing the
5582         `type_argv'.
5583
5584 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5585
5586         * locales.c: include string.h for memxxx prototypes
5587
5588 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5589
5590         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5591         constructor when accessing literal fields.
5592
5593 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5594
5595         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5596
5597         * reflection.c (assembly_add_resource_manifest): New function to fill
5598         the MANIFESTRESOURCE table.
5599
5600         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5601
5602         * reflection.h: Update to changes in class layout.
5603
5604         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5605         Reenable call to mono_runtime_is_shutting_down ().
5606
5607         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5608         determine if the runtime is shutting down.
5609
5610 2003-12-16  Jackson Harper <jackson@ximian.com>
5611
5612         * icall.c: comment out call to mono_runtime_is_shutting_down to
5613         fix build.
5614         
5615 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5616
5617         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5618         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5619
5620 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5621
5622         * reflection.c: move definition of swap_with_size
5623         to before its first call
5624
5625 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5626
5627         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5628
5629         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5630         icall.
5631
5632         * object.c: Fix warnings.
5633
5634         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5635         members if FlattenHierarchy is set.
5636
5637         * reflection.c (mono_image_add_decl_security): New function to emit
5638         declarative security.
5639
5640         * reflection.h reflection.c: Add support for declarative security.
5641
5642         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5643         
5644 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5645
5646         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5647         
5648         * appdomain.c verify.c: Moved corlib version checking into its own
5649         function in appdomain.c since it needs to create vtables etc.
5650
5651 2003-12-13  Patrik Torstensson <p@rxc.se>
5652
5653         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5654         instead of unwrapped server.
5655
5656 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5657
5658         * verify.c (check_corlib): Fix field index.
5659
5660 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5661
5662         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5663         GetGacPath icall.
5664
5665 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5666
5667         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5668         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5669         cope with sizeof(size_t) != sizeof(guint32).
5670
5671 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5672
5673         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5674         in case of failure.
5675
5676 2003-12-10  Mark Crichton <crichton@gimp.org>
5677
5678         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5679         in managed code.
5680
5681         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5682
5683 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5684
5685         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5686         marked as deleted.
5687
5688 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5689
5690         * verify.c (check_corlib): Handle the case when the version field is 
5691         initialized by a static constructor.
5692
5693 2003-12-08  Patrik Torstensson  <p@rxc.se>
5694
5695     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5696
5697 2003-12-08  Martin Baulig  <martin@ximian.com>
5698
5699         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5700         a MonoReflectionGenericParameter, also take the parameter index
5701         and name as arguments.
5702         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5703         (ves_icall_MonoGenericParam_initialize): New interncall.
5704         (ves_icall_Type_make_byref_type): New interncall.
5705
5706         * reflection.h (MonoReflectionGenericParam): Derive from
5707         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5708         `index' fields.
5709
5710         * reflection.c (mono_reflection_define_generic_parameter): Create
5711         and return a new MonoReflectionGenericParam; don't initialize the
5712         constraints here.
5713         (mono_reflection_initialize_generic_parameter): New public method;
5714         initializes the constraints and creates the `param->pklass'.
5715
5716 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5717
5718         * reflection.h reflection.c: Use the new fields 'num_types', 
5719         'num_fields' and 'num_methods' to track the number of types etc.
5720
5721         * verify.c (check_corlib): Check corlib version number.
5722
5723 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5724
5725         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5726         function works on all methods.
5727
5728 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5729
5730         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5731         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5732         the custom_type_info flag of the transparent proxy.
5733         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5734         objects that supports IRemotingTypeInfo.
5735         * object.h: Added custom_type_info field in transparent proxy.
5736
5737 2003-12-06  Martin Baulig  <martin@ximian.com>
5738
5739         * class.c (mono_class_create_from_generic): Removed.
5740         (mono_class_from_generic): Check `ginst->klass' before doing
5741         anything else.  This is important to fully support "recursive"
5742         generic types.
5743
5744         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5745         empty `generic_inst->klass' before doing anything else.
5746
5747 2003-12-06  Dick Porter  <dick@ximian.com>
5748
5749         * verify.c: 
5750         * object.h:
5751         * icall.c:
5752         * locales.c: Use C structs to access class fields.  Don't do a
5753         conversion between MonoString and UChar because both are
5754         platform-endian UTF-16.  Compare now takes startindex and count
5755         parameters.  Add a char overload for IndexOf.  Speed up the
5756         invariant string IndexOf.
5757
5758 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5759
5760         * Makefile.am (monosn_LDADD): Fix parallel build.
5761
5762 2003-12-04  Martin Baulig  <martin@ximian.com>
5763
5764         * icall.c
5765         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5766         (ves_icall_Type_make_array_type): New interncall.       
5767
5768 2003-12-04  Martin Baulig  <martin@ximian.com>
5769
5770         * locales.c: also change it in the !HAVE_ICU case.
5771
5772 2003-12-04  Dick Porter  <dick@ximian.com>
5773
5774         * icall.c:
5775         * locales.c: construct_compareinfo is now in CompareInfo, not
5776         CultureInfo.
5777
5778 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5779
5780         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5781         image->files array.
5782
5783         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5784         table as well.
5785
5786         * assembly.c (mono_assembly_load_references): Only load references
5787         once.
5788
5789         * class.c (mono_class_from_name): Avoid linear search of the 
5790         EXPORTEDTYPE table.
5791
5792         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5793
5794 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5795
5796         * image.h (MonoImage): Add 'field_cache' field.
5797
5798         * loader.c (mono_field_from_token): Cache field lookups.
5799         
5800         * reflection.c (mono_module_get_object): Fix name property.
5801
5802         * icall.c (ves_icall_get_enum_info): Update after changes to 
5803         mono_metadata_get_constant_index ().
5804
5805         * icall.c: Get rid of get_type_info icall, use a separate icall for
5806         each type property to avoid needless memory allocations. Fixes #51514.
5807
5808         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5809         to avoid needless binary searches.
5810
5811         * class.c (class_compute_field_layout): Move the initialization of
5812         field->def_value to mono_class_vtable ().
5813
5814         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5815         non-corlib types.
5816
5817         * object.c (mono_object_allocate): Make it inline.
5818
5819         * object.c (mono_object_allocate_spec): Make it inline.
5820         
5821 2003-12-02  Dick Porter  <dick@ximian.com>
5822
5823         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5824         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5825
5826 2003-12-01  Dick Porter  <dick@ximian.com>
5827
5828         * threads.c: Fix signature and call in CreateMutex and
5829         CreateEvent.
5830
5831 2003-12-01  Dick Porter  <dick@ximian.com>
5832
5833         * icall.c: 
5834         * locales.c: Implement string compares and searching
5835
5836         * object.h: Add extra Thread field
5837
5838 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5839
5840         * reflection.c (fixup_method): Add support for MonoCMethod.
5841
5842 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5843
5844         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5845
5846         * reflection.c (assembly_name_to_aname): Allow extra characters in
5847         assembly names. Fixes #51468.
5848
5849 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5850
5851         * exception.c (mono_exception_from_name_domain): New helper function.
5852
5853         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5854         exception object in the correct domain.
5855
5856         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5857         formatting + make a copy a the input data.
5858
5859         * loader.c (mono_get_method_from_token): Methods which contain
5860         native code do not have entries in the ImplMap.
5861
5862         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5863         Thanks to Gonzalo for spotting this.
5864         
5865         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5866         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5867
5868         * assembly.h (mono_assembly_load_from): Split the second part of 
5869         assembly loading into a new public function.
5870
5871         * exception.h (mono_get_exception_bad_image_format): New function.
5872
5873 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5874
5875         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5876         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5877         
5878         * icall.c: Add new icall for creating dynamic methods.
5879
5880         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5881
5882         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5883
5884         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5885         create a dynamic method.
5886
5887         * reflection.c (resolve_object): New helper function.
5888
5889         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5890         which manipulate it so they can also work on dynamic methods.
5891
5892         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5893         creating the MonoReflectionMethodAux structure if it is not needed.
5894         
5895         * reflection.h verify.c: Update after changes to object layout.
5896
5897         * reflection.c (method_builder_encode_signature): Fix compilation on
5898         gcc 2.95.x.
5899
5900 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5901
5902         * appdomain.h: Added support for context static fields. Added static_data
5903           field to MonoAppContext and renamed thread_static_fields to a more
5904           generic special_static_fields in MonoAppDomain, since it can now contain
5905           context static fields.
5906         * domain.c: Updated hashtable name.
5907         * object.c: Replaced field_is_thread_static() for a more generic
5908           field_is_special_static() which also checks for context static attribute.
5909           In mono_class_vtable(), added support for static context fields.
5910         * threads.c: Changed methods that manage thread static fields to more
5911           generic methods so they can be reused both for thread and context static
5912           data.
5913         * threads.h: Declared some new methods.
5914
5915 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5916
5917         * reflection.h: Update after changes to the managed types.
5918
5919         * reflection.c (encode_custom_modifiers): New helper function.
5920
5921         * reflection.c (method_encode_signature): Emit custom modifiers.
5922
5923         * reflection.c (field_encode_signature): Emit custom modifiers.
5924
5925 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5926
5927         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5928
5929         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5930         implementation.
5931
5932         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5933         icall.
5934
5935         * object.c (mono_field_get_value_object): New function.
5936
5937         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5938         specific.
5939
5940 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5941
5942         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5943         return a preallocated out-of-memory exception instance.
5944
5945         * object.c (out_of_memory): Use the new function.
5946
5947         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5948         flag is before the custom modifiers. Fixes #49802.
5949
5950 2003-11-16  Martin Baulig  <martin@ximian.com>
5951
5952         * class.c (mono_class_is_open_constructed_type): Implemented the
5953         MONO_TYPE_GENERICINST case.
5954
5955 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5956
5957         * assembly.c (mono_assembly_fill_assembly_name): New function to
5958         fill out the MonoAssemblyName structure.
5959         (mono_assembly_open): Use the new function.
5960
5961         * icall.c (fill_reflection_assembly_name): New helper function.
5962
5963         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5964         new function.
5965
5966         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5967
5968 2003-11-15  Martin Baulig  <martin@ximian.com>
5969
5970         * class.c (mono_class_is_open_constructed_type): New public
5971         function; checks whether a type is an open constructed type,
5972         ie. whether it still contains type parameters.
5973         (mono_class_inflate_generic_type): If we're a type parameter and
5974         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5975         type.
5976
5977         * class.h (MonoGenericInst): Added `guint32 is_open'.
5978
5979         * loader.c (method_from_methodspec): Check whether we're an open
5980         or closed constructed type and set `ginst->is_open'.
5981
5982         * reflection.c (mono_reflection_bind_generic_parameters): Check
5983         whether we're an open or closed constructed type and set
5984         `ginst->is_open'.
5985         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5986         from open constructed types.
5987
5988 2003-11-15  Martin Baulig  <martin@ximian.com>
5989
5990         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5991         a generic instance (instead of a generic type declaration) with
5992         unbound generic parameters, bind them to our actual types.
5993
5994 2003-11-14  Martin Baulig  <martin@ximian.com>
5995
5996         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
5997
5998         * reflection.c (mono_reflection_bind_generic_parameters): If we're
5999         an interface type, populate `res->interfaces' with instantiated
6000         versions of all the interfaces we inherit.
6001
6002 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
6003
6004         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
6005         when MONO_PATH is set but doesn't contain the install dir.
6006
6007 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6008
6009         * icall.c:
6010         (ves_icall_Type_GetInterfaces): don't return an interface twice when
6011         it's also implemented in base classes. Fixes bug #50927.
6012
6013 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
6014
6015         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
6016         if this method is called from a finalizer. Fixes #50913.
6017
6018 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
6019
6020         * threads.c: Implement VolatileRead/VolatileWrite
6021
6022         * icall.c: Add new icalls for VolatileRead/VolatileWrite
6023
6024 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6025
6026         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
6027         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
6028         2.95.3.
6029
6030         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
6031         from Peter Ross (pro@missioncriticalit.com).
6032         
6033 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
6034
6035         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
6036
6037 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6038
6039         * assembly.c (mono_assembly_load_references): Disable check because it
6040         triggers on older corlibs which lots of people have.
6041
6042 2003-11-12  Jackson Harper  <jackson@ximian.com>
6043
6044         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
6045         load corlib.dll if mscorlib.dll is not found.
6046         * assembly.h: Remove corlib name define.
6047         * class.c:
6048         * domain.c:
6049         * image.c: Change corlib name to mscorlib.
6050         
6051 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6052
6053         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
6054
6055 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
6056
6057         * appdomain.h: Added loader_optimization here to sync with the C#
6058         code, and add disallow_binding_redirects field.
6059
6060 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6061
6062         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
6063
6064         * reflection.c (mono_image_build_metadata): Fix crash on modules
6065         with no types.
6066
6067         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
6068
6069         * icall.c (ves_icall_get_method_info): Return callingConvention as
6070         well.
6071
6072         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
6073         namespaces from the EXPORTEDTYPE table as well.
6074
6075         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
6076         from all modules inside the assembly.
6077         
6078 2003-11-11  Martin Baulig  <martin@ximian.com>
6079
6080         * reflection.c (mono_reflection_bind_generic_parameters): Make
6081         this work for interfaces.
6082
6083 2003-11-11  Martin Baulig  <martin@ximian.com>
6084
6085         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
6086
6087 2003-11-11  Martin Baulig  <martin@ximian.com>
6088
6089         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
6090         "MonoInflatedMethod" and "MonoInflatedCtor".
6091
6092 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6093
6094         * reflection.c (resolution_scope_from_image): Use the assembly table
6095         from the manifest module, since other modules don't have it.
6096
6097         * debug-helpers.c (mono_type_full_name): New helper function.
6098
6099         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
6100
6101         * image.c (mono_image_load_file_for_image): New public function which
6102         is a replacement for the load_file_for_image in class.c.
6103
6104         * assembly.c (mono_assembly_load_module): A wrapper for the function
6105         above which does assembly association and reference loading too.
6106
6107         * class.c (mono_class_from_name): Call mono_assembly_load_module.
6108
6109 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6110
6111         * appdomain.c: not all of the attributes for the full assembly name
6112         are required and the order doesn't matter. Fixes bug #50787.
6113
6114 2003-11-10  Dick Porter  <dick@ximian.com>
6115
6116         * locales.c: Use platform-endian UTF16
6117
6118 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6119
6120         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6121         
6122 2003-11-10  Martin Baulig  <martin@ximian.com>
6123
6124         * metadata.c
6125         (mono_metadata_load_generic_params): Make this actually work.
6126
6127         * reflection.c (mono_reflection_bind_generic_parameters): If our
6128         parent is a generic instance, pass all the `types' to it, no
6129         matter whether it has the same number of type parameters or not.
6130
6131 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6132
6133         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6134
6135         * assembly.c (mono_assembly_load_references): Move the image<->assembly
6136         assignment code to this function so it gets called recursively for all
6137         modules.
6138
6139         * image.c (load_modules): Remove the assembly assignment since it is
6140         now done by mono_assembly_load_references.
6141         
6142         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
6143         Add 'module' argument.
6144         (mono_module_get_types): New helper function.
6145         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
6146
6147 2003-11-08  Martin Baulig  <martin@ximian.com>
6148
6149         * class.c (mono_class_inflate_generic_method): Interface method
6150         don't have a header.
6151
6152         * reflection.c (mono_image_get_methodspec_token): Take an
6153         additional `MonoGenericInst *' argument instead of reading it from
6154         the header; this is necessary to support interfaces.
6155         (mono_image_create_token): Pass the `MonoGenericInst *' from the
6156         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
6157         (inflated_method_get_object): Take an additional `MonoGenericInst *'
6158         argument.
6159
6160         * reflection.h (MonoReflectionInflatedMethod): Added
6161         `MonoGenericInst *ginst'.
6162
6163 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
6164
6165         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
6166
6167 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
6168
6169         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
6170
6171 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
6172
6173         * reflection.c 
6174         (reflection_methodbuilder_from_method_builder):
6175         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6176         initialize a ReflectionMethodBuilder structure.
6177         (mono_image_get_methodbuilder_token):
6178         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6179         tokens which point to types in another module inside the same assembly.
6180
6181         * reflection.c: Use the new helper functions.
6182         
6183         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6184
6185         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6186         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6187
6188         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6189         neccesary.
6190
6191         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6192         current module. Emit the manifest only for the main module.
6193
6194         * reflection.c (mono_image_create_token): Add assertion when a 
6195         memberref needs to be created.
6196
6197         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6198
6199         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6200         larger buffer for the custom attribute blob. Fixes #50637.
6201         
6202 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6203
6204         * threadpool.c: notify listener on async processing handles after
6205         invoking the async callback. Thanks to Zoltan.
6206
6207 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6208
6209         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6210         avoid code duplication.
6211
6212         * reflection.h (MonoDynamicImage): New type which is currently unused,
6213         but will be used through the ref.emit code in place of 
6214         MonoDynamicAssembly.
6215
6216         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6217         object layout.
6218
6219         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6220         a MonoDynamicImage instead of just a MonoImage.
6221         
6222         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6223         icalls to ModuleBuilder but keep their semantics, so they will work
6224         with moduleb->assemblyb. This will change later.
6225         
6226 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6227
6228         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6229         object layout.
6230
6231         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6232         main module, since it is now done by the managed code.
6233
6234 2003-11-03  Martin Baulig  <martin@ximian.com>
6235
6236         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6237         `ginst->klass' here.
6238         (method_encode_methodspec): Don't use the `ginst->generic_method's
6239         klass if it's a generic instance, use `ginst->klass' in this case.
6240
6241 2003-11-03  Martin Baulig  <martin@ximian.com>
6242
6243         * reflection.c (mono_image_get_generic_method_param_info):
6244         Removed, use mono_image_get_generic_param_info() instead.
6245         (mono_image_get_type_info): Write the GenericParam table before
6246         the Method table.  This is neccessary because in the GenericParam
6247         table, type parameters of the class (ie. '!0' etc.) must come
6248         before the ones from its generic methods (ie. '!!0' etc).
6249
6250 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6251
6252         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6253
6254 2003-11-02  Martin Baulig  <martin@ximian.com>
6255
6256         * reflection.c (create_generic_typespec): Take a
6257         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6258         the generic parameters from it.
6259
6260 2003-11-02  Martin Baulig  <martin@ximian.com>
6261
6262         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6263         instead of a `MonoClassField *' since we just need the type.
6264         (create_generic_typespec): New static function.  Creates a
6265         TypeSpec token for a generic type declaration.
6266         (mono_image_get_generic_field_token): New static function.
6267         (mono_image_create_token): If we're a FieldBuilder in a generic
6268         type declaration, call mono_image_get_generic_field_token() to get
6269         the token.
6270
6271 2003-11-02  Martin Baulig  <martin@ximian.com>
6272
6273         * reflection.h
6274         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6275         `MonoReflectionGenericInst *declaring_type' and
6276         `MonoReflectionGenericInst *reflected_type' fields.
6277
6278         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6279         `MonoReflectionGenericInst *declaring_type' and a
6280         `MonoReflectionGenericInst *reflected_type' argument instead of a
6281         single `MonoReflectionGenericInst *type' one.  Set
6282         `res->declaring_type' and `res->reflected_type' from them.
6283         (mono_reflection_inflate_field): Likewise.      
6284
6285 2003-11-02  Martin Baulig  <martin@ximian.com>
6286
6287         * class.c (mono_class_setup_vtable): Don't store generic methods
6288         in the vtable.  
6289
6290 2003-11-02  Martin Baulig  <martin@ximian.com>
6291
6292         * reflection.h (MonoReflectionGenericInst): Added
6293         `MonoReflectionType *declaring_type'.
6294
6295         * reflection.c (mono_reflection_bind_generic_parameters): Use
6296         `if (tb->parent)' instead of `klass->parent'.
6297
6298 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6299
6300         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6301         with an empty ASSEMBLY table.
6302
6303         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6304         variable in the inner and outer loops.
6305
6306 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6307
6308         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6309         argument.
6310
6311         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6312         
6313         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6314         icalls. Instead, do everything in managed code. This is needed since
6315         it is hard to restore the original domain etc. in unmanaged code in the
6316         presence of undeniable exceptions.
6317
6318         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6319         New icalls to push and pop appdomain refs.
6320
6321 2003-10-31  Martin Baulig  <martin@ximian.com>
6322
6323         * class.c (inflate_generic_type): Renamed to
6324         mono_class_inflate_generic_type() and made it public.
6325
6326         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6327         New interncall.
6328
6329         * loader.c (mono_field_from_memberref): Also set the retklass for
6330         typespecs.
6331
6332         * fielder.c (mono_image_get_inflated_field_token): New static
6333         method; creates a metadata token for an inflated field.
6334         (mono_image_create_token, fixup_method): Added support for
6335         "MonoInflatedField".
6336         (fieldbuilder_to_mono_class_field): New static function.
6337         (mono_reflection_inflate_field): New public function.
6338
6339         * reflection.h
6340         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6341         (MonoReflectionInflatedField): New typedef.     
6342
6343 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6344
6345         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6346         for Solaris and other platforms without s6_addr16
6347
6348 2003-10-30  Martin Baulig  <martin@ximian.com>
6349
6350         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6351         argument instead of two.
6352         (mono_class_inflate_generic_signature): Likewise.
6353         (inflate_generic_header): Likewise.
6354         (mono_class_inflate_generic_method): Likewise.  In addition, if
6355         `ginst->klass' is set, it becomes the new `method->klass'.
6356
6357         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6358         field.
6359
6360         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6361         first byte. [FIXME]
6362         (method_encode_methodspec): If we have generic parameters, create
6363         a MethodSpec instead of a MethodRef.
6364         (fixup_method): Added support for "MonoInflatedMethod" and
6365         "MonoInflatedCtor".
6366         (mono_image_create_token): Added support for "MonoInflatedMethod"
6367         and "MonoInflatedCtor".
6368         (inflated_method_get_object): New static function; returns a
6369         managed "System.Reflection.MonoInflatedMethod" object.
6370         (mono_reflection_bind_generic_method_parameters): Return a
6371         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6372         (mono_reflection_inflate_method_or_ctor): Likewise.
6373         (mono_image_get_generic_method_param_info): Initialize unused
6374         fields to zero.
6375         (mono_image_get_generic_param_info): Likewise.
6376
6377         * reflection.h (MonoReflectionInflatedMethod): New public
6378         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6379         "S.R.MonoInflatedCtor" classes.
6380
6381         * loader.c (method_from_memberref): If we're a TypeSpec and it
6382         resolves to a generic instance, inflate the method.
6383
6384 2003-10-28  Dick Porter  <dick@ximian.com>
6385
6386         * object.c (mono_runtime_run_main): Convert command-line arguments
6387         into utf8, falling back to the user's locale encoding to do so.
6388
6389 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6390
6391         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6392         at this time.
6393
6394         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6395
6396         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6397         up icalls at method definition time. Partially fixes #33569.
6398
6399 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6400
6401         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6402         marshalling of arrays. Fixes #50116.
6403
6404         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6405
6406         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6407         points to a vtable in the dying appdomain.
6408
6409         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6410         listeners into unmanaged code inside the lock.
6411
6412         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6413         domains and add some comments.
6414
6415 2003-10-25  Martin Baulig  <martin@ximian.com>
6416
6417         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6418
6419         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6420
6421         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6422         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6423         currently parsing.  Create the generic class and store it in
6424         `generic_inst->klass' before parsing the type arguments.  This is
6425         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6426         for an example.
6427         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6428         to support recursive typespec entries.
6429
6430         * class.c (mono_class_setup_parent): If our parent is a generic
6431         instance, we may get called before it has its name set.
6432         (mono_class_from_generic): Splitted into
6433         mono_class_create_from_generic() and mono_class_initialize_generic().
6434
6435 2003-10-25  Martin Baulig  <martin@ximian.com>
6436
6437         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6438         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6439         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6440         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6441
6442         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6443         (create_typespec): Likewise.
6444         (mono_reflection_bind_generic_parameters): Return a
6445         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6446         (mono_reflection_inflate_method_or_ctor): New public function.
6447
6448         * reflection.h (MonoReflectionGenericInst): New typedef.        
6449
6450 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6451
6452         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6453         inside the domain lock. Fixes #49993.
6454         
6455         * object.c (mono_class_vtable): When typed allocation is used, 
6456         allocate vtables in the GC heap instead of in the mempool, since the
6457         vtables contain GC descriptors which are used by the collector even
6458         after the domain owning the mempool is unloaded.
6459
6460         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6461
6462         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6463         reflect what it does. Also invalidate mempools instead of freeing
6464         them if a define is set.
6465
6466         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6467         of the appdomain.
6468         
6469         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6470         hold the finalizable objects in this domain.
6471
6472         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6473         appdomain.
6474
6475         * appdomain.c (mono_domain_set): New function to set the current
6476         appdomain, but only if it is not being unloaded.
6477
6478         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6479         appdomain which is being unloaded.
6480         
6481         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6482         unloading of the root appdomain.
6483
6484         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6485         icall to execute a method in another appdomain. Intended as a 
6486         replacement for InternalSetDomain, which can confuse the code 
6487         generation in the JIT.
6488
6489         * appdomain.c (mono_domain_is_unloading): New function to determine
6490         whenever an appdomain is unloading.
6491
6492         * appdomain.c (mono_domain_unload): New function to correctly unload
6493         an appdomain.
6494
6495         * assembly.c (mono_assembly_load_references): Check that an assembly
6496         does not references itself.
6497
6498         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6499         domain manually, it asks the finalizer thread to do it, then waits for
6500         the result. Also added a timeout.
6501
6502         * icall.c: Register the new icalls.
6503
6504         * threads.h threads.c: Export the mono_gc_stop_world and 
6505         mono_gc_start_world functions.
6506         
6507         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6508         function to fill out the mempool with 0x2a.
6509
6510 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6511
6512         * reflection.h (MonoReflectionMethodAux): New structure to store
6513         information which is rarely used, thus is not in the MonoMethod
6514         structure.
6515
6516         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6517         store the aux info.
6518
6519         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6520         and marshalling info into the aux structure.
6521
6522         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6523         from the aux structure.
6524
6525         * loader.c (mono_method_get_param_names): Retrieve the param names from
6526         the aux structure.
6527         
6528 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6529
6530         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6531         warning.
6532
6533 2003-10-21  Dick Porter  <dick@ximian.com>
6534
6535         * socket-io.c
6536         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6537         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6538
6539 2003-10-21  Martin Baulig  <martin@ximian.com>
6540
6541         * reflection.c (mono_reflection_bind_generic_parameters):
6542         `klass->parent' is NULL for interfaces.
6543
6544 2003-10-21  Martin Baulig  <martin@ximian.com>
6545
6546         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6547
6548 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6549
6550         * exception.c (mono_exception_from_name_msg): New helper function for
6551         creating exceptions and initializing their message field.
6552
6553         * exception.c: Simplify functions using the new helper.
6554
6555         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6556         New function.
6557
6558         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6559         mono_raise_exception, since otherwise gcc doesn't generate the function
6560         epilog for raise_exception, confusing the stack unwinding in the JIT.
6561         Fixes #45043.
6562
6563         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6564         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6565         Fixes #49499.
6566
6567 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6568
6569         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6570         utf8.
6571
6572 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6573
6574         * icall.c: Removed GetUninitializedObject method because
6575           AllocateUninitializedClassInstance does the same.
6576
6577 2003-10-18  Martin Baulig  <martin@ximian.com>
6578
6579         * class.c (inflate_generic_signature): Renamed to
6580         mono_class_inflate_generic_signature() and made it public.
6581         (my_mono_class_from_generic_parameter): New static function; if we
6582         don't already have the generic parameter's MonoClass, create a
6583         very simple one which is just used internally in the runtime and
6584         not passed back to managed code.
6585
6586         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6587
6588         * metadata.h (MonoMethodSignature): Moved the
6589         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6590         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6591
6592         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6593         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6594         interncall on the MonoMethod class, not on MethodInfo.
6595         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6596         calling mono_reflection_bind_generic_method_parameters() directly.
6597
6598         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6599         return the already computed `method->signature'.
6600         (method_from_methodspec): New static function to load a method
6601         from a MethodSpec entry.
6602         (mono_get_method_from_token): Call the new method_from_methodspec()
6603         for MethodSpec tokens.  
6604         (mono_get_method_from_token): If we're a generic method, load the
6605         type parameters.
6606
6607         * reflection.c (mono_image_get_memberref_token): Allow
6608         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6609         table.
6610         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6611         (mono_image_create_token): First check whether it's a generic
6612         method (so we'd need to create a MethodSpec), then do the other
6613         two alternatives.
6614         (mono_reflection_bind_generic_method_parameters): Return a
6615         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6616         called directly from the interncall.
6617
6618 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6619
6620         * reflection.c (load_public_key): Move loading of the public key
6621         into managed code.
6622
6623         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6624
6625         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6626         fields.
6627
6628         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6629         culture, hash_alg and public_key. Fixes #49555.
6630
6631 2003-10-17  Martin Baulig  <martin@ximian.com>
6632
6633         * class.h (MonoGenericInst): Moved this declaration here and added
6634         `MonoMethod *generic_method'.
6635
6636         * icall.c
6637         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6638         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6639
6640         * metadata.c (mono_metadata_type_equal): Two types of
6641         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6642         index; ie. don't compare the address of the `MonoGenericParam'
6643         structure.
6644         (mono_metadata_load_generic_params): Removed the `MonoMethod
6645         *method' argument.
6646
6647         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6648         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6649
6650         * reflection.c (method_encode_signature): Encode the number of
6651         generic parameters.
6652         (encode_generic_method_sig): New static function.
6653         (method_encode_methodspec): New static function; creates an entry
6654         in the MethodSpec table for a generic method.
6655         (mono_image_get_methodspec_token): New static function.
6656         (mono_image_create_token): Call mono_image_get_methodspec_token()
6657         for generic methods.
6658         (mono_reflection_bind_generic_method_parameters): New public
6659         function.  Instantiates a generic method.
6660
6661 2003-10-16  Martin Baulig  <martin@ximian.com>
6662
6663         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6664         *gen_params' here from MonoMethodHeader.
6665
6666         * metadata.c (mono_metadata_parse_method_signature): If we have
6667         generic parameters, initialize `method->gen_params' and then set
6668         the correct `type->data.generic_param' in all the parameters.
6669
6670 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6671
6672         * threads.c (mono_threads_get_default_stacksize): New function to 
6673         return the default stacksize.
6674
6675         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6676         termination of the finalizer thread, since the previous method had
6677         race conditions. Fixes #49628.
6678
6679         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6680         as for the other managed threads.
6681
6682 2003-10-16  Martin Baulig  <martin@ximian.com>
6683
6684         * class.c (inflate_generic_signature): Copy `generic_param_count'
6685         and `gen_params'.
6686
6687         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6688         New interncall.
6689
6690         * metadata.c (mono_metadata_parse_method_signature): Actually set
6691         the `method->generic_param_count' here.
6692         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6693
6694 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6695
6696         * object.h: Add a new field to TypedRef to simplify the implementation
6697         of the REFANY opcodes in the JIT.
6698
6699         * icall.c: Make use of the new field.
6700
6701         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6702         dynamically.
6703
6704 2003-10-15  Martin Baulig  <martin@ximian.com>
6705
6706         * class.c (mono_class_from_gen_param): Renamed to
6707         mono_class_from_generic_parameter() and moved most of the
6708         functionality from mono_reflection_define_generic_parameter()
6709         here; ie. we create a "real" class here.
6710         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6711         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6712         previously been called.
6713
6714         * class.h (MonoGenericParam): Moved the declaration of this struct
6715         here from metadata.h and added `MonoMethod *method'.
6716
6717         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6718         interncall.
6719
6720         * loader.c (mono_get_method_from_token): If we have any generic
6721         parameters, call mono_metadata_load_generic_params() to read them
6722         from the MONO_TABLE_GENERICPAR.
6723
6724         * metadata.c (mono_metadata_load_generic_params): Added
6725         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6726
6727         * metadata.h (MonoMethodSignature): Replaced
6728         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6729         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6730
6731         * reflection.c (mono_reflection_define_generic_parameter): Moved
6732         most of the functionality into the new
6733         mono_class_from_generic_parameter(); set the `method' field if
6734         we're a method parameter.       
6735
6736 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6737
6738         * marshal.c (emit_struct_conv): if native size is 0
6739         emit no code.
6740
6741 2003-10-14  Martin Baulig  <martin@ximian.com>
6742
6743         * icall.c: The generics API has changed in the spec since it was
6744         added to System.Type; these modifications make it match the spec
6745         again.
6746         (ves_icall_Type_GetGenericParameters): Renamed to
6747         `ves_icall_Type_GetGenericArguments'.
6748         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6749         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6750         `ves_icall_MonoType_get_HasGenericArguments'.
6751         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6752         `ves_icall_MonoType_get_IsGenericParameter'.
6753         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6754         this is no interncall anymore.
6755         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6756         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6757
6758 2003-10-14  Martin Baulig  <martin@ximian.com>
6759
6760         * reflection.c (mono_reflection_bind_generic_parameters): Also
6761         inflate generic methods if we're reading the class from IL.
6762
6763 2003-10-13  Martin Baulig  <martin@ximian.com>
6764
6765         * reflection.c (mono_reflection_define_generic_parameter): This
6766         method isn't called directly from the icall anymore; take a
6767         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6768         method generic parameters.
6769         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6770         (method_builder_encode_signature): Encode generic parameters.
6771         (mono_image_get_method_info): Write generic params to the
6772         MONO_TABLE_GENERICPARAM table.
6773
6774         * reflection.h (MonoReflectionMethodBuilder): Added
6775         `MonoArray *generic_params'.
6776
6777         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6778
6779         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6780         wrapper for mono_reflection_define_generic_parameter().
6781         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6782
6783 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6784
6785         * marshal.h: Add missing function to fix build.
6786
6787         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6788         the SetLastError pinvoke attribute.
6789
6790         * marshal.c (mono_marshal_set_last_error): New helper function called
6791         by the generated code.
6792         
6793         * marshal.c (mono_mb_emit_branch): New helper function.
6794
6795         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6796
6797         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6798         classes as parameters and return values of delegates. Fixes #29256. 
6799
6800 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6801
6802         * locales.c: use gint32 in non HAVE_ICU case
6803
6804 2003-10-11  Martin Baulig  <martin@ximian.com>
6805
6806         * mono-debug.c (mono_debug_add_method): Added a workaround for
6807         bug #48591.
6808
6809 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6810
6811         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6812         delegates passed to native code must use the STDCALL calling 
6813         convention. Fixes #35987.
6814
6815 2003-10-10  Martin Baulig  <martin@ximian.com>
6816
6817         * class.c (inflate_generic_type): If we're inflating for a generic
6818         type instance (and not for a generic method), return
6819         MONO_TYPE_MVAR unchanged.
6820
6821 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6822
6823         * string-icalls.c: Join ignores null strings in the source array.
6824         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6825         * threads.c: GetAvailableTheads is slightly more accurate.
6826
6827 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6828
6829         * threads.h threads.c : add mono_threads_set_default_stacksize
6830         and pass default to CreateThread calls.
6831
6832 2003-10-09  Dick Porter  <dick@ximian.com>
6833
6834         * icall.c:
6835         * locales.h:
6836         * locales.c: Internal calls for constructing CultureInfo and
6837         related objects from libicu (if its available.)
6838
6839 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6840
6841         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6842
6843 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6844
6845         * threadpool.c: added an argument to async_invoke_thread that is the
6846         item to process, pass the MonoAsyncResult to the thread start function
6847         when creating a new thread. This way we don't need to acquire any lock
6848         when we're creating a new thread. Readded a semaphore for faster
6849         response times (instead of that Sleep i added).
6850
6851 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6852
6853         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6854         get daylight change dates better on Windows, fix handling
6855         of platforms without tm_gmtoff.
6856
6857 2003-10-06  Martin Baulig  <martin@ximian.com>
6858
6859         * class.c (inflate_generic_method): Renamed to
6860         mono_class_inflate_generic_method() and made public.
6861         (mono_class_init): Don't inflate the generic methods here.
6862         (mono_class_from_generic): Added `gboolean inflate_methods'
6863         argument.  Inflate the methods here.
6864
6865         * loader.c (mono_method_get_param_names): Ignore instances of
6866         generic types for the moment.
6867
6868         * reflection.c (fixup_method): Added support for inflated methods.
6869         (mono_image_create_token): Use mono_image_get_methodref_token()
6870         for inflated methods.
6871         (mono_custom_attrs_from_param): Ignore instances of generic types
6872         for the moment.
6873         (mono_reflection_bind_generic_parameters): New public function.
6874         Moved all the functionality from
6875         ves_icall_Type_BindGenericParameters() here and added support for
6876         dynamic types.
6877         (mono_reflection_define_generic_parameter): Initialize
6878         `klass->methods' here.
6879
6880         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6881         functionality into mono_reflection_define_generic_parameter().
6882         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6883         TypeBuilder, return that TypeBuilder.
6884
6885 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6886
6887         * appdomain.c: removed mono_delegate_semaphore.
6888
6889         * threadpool.c:
6890         (mono_thread_pool_add): moved hash table creation inside and the thread 
6891         creation outside of the critical region.
6892         (mono_thread_pool_finish): removed obsolete code.
6893         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6894         continue or exit the thread depending on the queue.
6895
6896 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6897
6898         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6899         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6900         handle more bool marshalling options
6901
6902 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6903
6904         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6905         arrays of structs. Also add a more descriptive error message when
6906         a structure member is marshalled as LPArray.
6907
6908 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6909
6910         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6911         marshalling arrays of complex types. Fixes #29098. Also remove an
6912         usused and incomplete function.
6913
6914 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6915
6916         * gc.c: report heap_size - free_bytes as total memory allocated
6917         (bug#49362).
6918
6919 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6920
6921         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6922         fix timezone handling problems on Windows.
6923         
6924         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6925         asserts when the year is outside the range handled by ms the functions.
6926
6927         * class.c (setup_interface_offsets): If the class is an interface,
6928         fill out its interface_offsets slot.
6929
6930 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6931
6932         * threadpool.c: mark threadpool threads as background.
6933
6934 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6935
6936         * decimal.c - define DECINLINE to nothing if not using GCC
6937
6938 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6939
6940         * assembly.c: More refcount fixes.
6941
6942 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6943
6944         * string-icalls.c: if we're not trimming, return the same string.
6945         When not splitting, don't create a new string.
6946
6947 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6948
6949         * image.c:
6950         (mono_image_open): increment the ref_count inside the critical section.
6951
6952 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6953
6954         * image.c (mono_image_open): Fix reference counting bug.
6955
6956 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6957
6958         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6959         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6960         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6961         mono_lookup_pinvoke_call throws.        
6962
6963 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6964
6965         * reflection.c (mono_reflection_parse_type): Fix #49114.
6966
6967         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6968         temporary workaround for cygwin header problem.
6969
6970         * object.c (mono_object_isinst): Synchronize this with the code
6971         generated by the JIT for casts.
6972
6973 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6974
6975         * reflection.c (encode_type): Fix #38332.
6976
6977 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6978
6979         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6980         the original method from the wrapper method.
6981
6982 2003-09-25  Martin Baulig  <martin@ximian.com>
6983
6984         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6985         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6986         (ves_icall_Type_get_IsGenericInstance): New interncall.
6987
6988 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
6989
6990         * object.c: fix cast warning in big endian code.
6991
6992 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
6993
6994         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
6995         
6996 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6997
6998         * assembly.c: don't call check_env from mono_assembly_load. It's
6999         already done once in mono_assemblies_init and may cause headaches when
7000         multiple threads are loading assemblies.
7001
7002 2003-09-19  Martin Baulig  <martin@ximian.com>
7003
7004         * reflection.c (mono_reflection_define_generic_parameter): Don't
7005         allocate `klass->methods', set `klass->flags' to
7006         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
7007
7008 2003-09-18  Martin Baulig  <martin@ximian.com>
7009
7010         * class.c (mono_class_init): Don't create `class->methods' if it's
7011         already initialized.
7012
7013         * metadata.c (mono_metadata_load_generic_params): Make this
7014         actually work.
7015
7016         * reflection.c (mono_reflection_define_generic_parameter): Set
7017         parent class and interfaces from the constraints.
7018
7019         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
7020         to keep this struct in sync with the declaration in TypeBuilder.cs.
7021
7022 2003-09-17  Martin Baulig  <martin@ximian.com>
7023
7024         * metadata.h (MonoType): Replaced the data's `int type_param'
7025         field with `MonoGenericParam *generic_param'.
7026         (MonoGenericParam): Added `MonoClass *klass'.
7027
7028         * class.c (mono_class_from_gen_param): Removed the
7029         `MonoImage *image' and `int type_num' arguments.
7030
7031         * metadata.c (mono_metadata_parse_generic_param): New static
7032         method; creates a MonoGenericParam which just contains the index.
7033         (do_mono_metadata_parse_type): Call
7034         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
7035         MONO_TYPE_MVAR.
7036
7037         * reflection.c (mono_image_typedef_or_ref): Generic type
7038         parameters may be in the same assembly, but never use a typedef
7039         for them.
7040         (mono_reflection_define_generic_parameter): We're now creating a
7041         "real" class for the type parameter; it's now safe to call
7042         mono_class_from_mono_type() on the class'es type, it'll do the
7043         right thing.
7044
7045 2003-09-16  Martin Baulig  <martin@ximian.com>
7046
7047         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
7048         `symfile->range_entry_size' and `symfile->class_entry_size' here;
7049         the `symfile' data structure must be fully initialized before it
7050         gets added to the table.
7051
7052 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
7053
7054         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
7055
7056         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
7057         class init trampolines.
7058
7059 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
7060
7061         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
7062         to the built-in profiler to turn off time and allocation profiling
7063         respectively.
7064
7065 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
7066
7067         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
7068         g_direct_equal.
7069
7070         * debug-helpers.c (mono_method_full_name): Print the wrapper type
7071         in human readable form.
7072
7073 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
7074
7075         * reflection.c icall.c: Fixed warnings.
7076
7077         * image.c (load_class_names): Use a temporary hash table to hold the
7078         namespaces in order to avoid doing many string comparisons.
7079
7080         * image.h: Fix typo.
7081
7082         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
7083         Pass NULL instead of g_direct_equal to the GHashTable constructor 
7084         since the NULL case is short-circuited inside g_hash_table_lookup, 
7085         leading to better performance.  
7086
7087         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
7088         obtain the first custom attribute for a given index. Depends on the
7089         CustomAttribute table being sorted by the parent field.
7090
7091         * reflection.c (mono_custom_attrs_from_index): Use the new function 
7092         for better performance.
7093
7094 2003-09-07  Martin Baulig  <martin@ximian.com>
7095
7096         * class.c (mono_class_init): If we're a generic instance, inflate
7097         all our methods instead of loading them from the image.
7098         (mono_class_from_generic): Set `class->methods = gklass->methods'.
7099
7100 2003-09-07  Martin Baulig  <martin@ximian.com>
7101
7102         * mono-debug-debugger.c: Added support for constructors.
7103
7104 2003-09-06  Martin Baulig  <martin@ximian.com>
7105
7106         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
7107         New interncall.
7108
7109         * reflection.c (mono_reflection_setup_generic_class): Call
7110         ensure_runtime_vtable() to create the vtable.
7111
7112 2003-09-05  Martin Baulig  <martin@ximian.com>
7113
7114         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
7115         MONO_TYPE_MVAR.
7116
7117 2003-09-04  Martin Baulig  <martin@ximian.com>
7118
7119         * reflection.c (mono_reflection_define_generic_parameter): Generic
7120         parameters start with zero.
7121
7122 2003-09-04  Martin Baulig  <martin@ximian.com>
7123
7124         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7125
7126         * reflection.h (MonoReflectionGenericParam): New typedef.
7127         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
7128         the generic parameters from the managed TypeBuilder.
7129
7130         * reflection.c (mono_reflection_define_generic_parameter): New function.
7131         (mono_reflection_create_runtime_class): Encode generic parameters.
7132         (mono_reflection_setup_generic_class): New function; this is
7133         called after adding adding all generic params to the TypeBuilder.
7134         (encode_type): Added MONO_TYPE_VAR.
7135
7136 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
7137
7138         * class.h class.c (mono_class_needs_cctor_run): Moved this method
7139         here from the JIT.
7140
7141         * assembly.h assembly.c: Moved the AOT loading code into an assembly
7142         load hook.
7143
7144 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
7145
7146         * reflection.h reflection.c class.h class.c: Delete duplicate 
7147         definition of mono_type_get_name () from reflection.c and export the
7148         one in class.c.
7149
7150         * class.c: Class loading fixes from Bernie Solomon 
7151         (bernard@ugsolutions.com).
7152
7153         * reflection.c: Endianness fixes from Bernie Solomon 
7154         (bernard@ugsolutions.com).
7155         
7156 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
7157
7158         * assembly.h assembly.c: Define a file format version for AOT
7159         libraries.
7160         
7161         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
7162
7163         * appdomain.h (MonoJitInfo): New field to determine whenever the
7164         code is domain neutral.
7165         
7166 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
7167
7168         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
7169
7170 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
7171
7172         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7173         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7174         Avoid caching the result since strings must be domain specific. Fixes
7175         #48050.
7176
7177 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7178
7179         * marshal.c (mono_marshal_init): Make this callable multiple times
7180         since it is hard to find a correct place to call it.
7181
7182         * object.c (mono_runtime_class_init): Execute static constructors in
7183         the correct appdomain.
7184
7185         * image.c (build_guid_table): Handle the case when multiple images have
7186         the same GUID.
7187
7188 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7189
7190         * icall.c: added a couple of icalls for System.Web.
7191
7192 2003-08-28  Martin Baulig  <martin@ximian.com>
7193
7194         * icall.c (ves_icall_Type_BindGenericParameters): Use
7195         `klass->generic_inst' instead of `&klass->byval_arg' in the
7196         mono_type_get_object() call.  The returned type must be
7197         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7198
7199 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7200
7201         * NOTES: New file.
7202
7203         * object.c (mono_class_proxy_vtable): Make it thread safe.
7204
7205         * pedump.c: Fix warning.
7206
7207         * object.c appdomain.h: Get rid of metadata_section. 
7208         It is no longer needed and it was causing deadlocks with domain->lock.
7209
7210         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7211
7212 2003-08-26  Martin Baulig  <martin@ximian.com>
7213
7214         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7215
7216 2003-08-26  Martin Baulig  <martin@ximian.com>
7217
7218         * pedump.c (main): Call mono_metadata_init(),
7219         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7220         and mono_loader_init().
7221
7222 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7223
7224         * loader.h: Add missing include to fix build.
7225
7226         * image.h: mono_image_load_references is no more.
7227
7228         * assembly.c: Reworked assembly loading to make it really thread safe.
7229         After these changes, the assembly returned by mono_assembly_open is
7230         fully initialized, i.e. all its references assemblies are loaded.
7231
7232         * assembly.c (mono_image_load_references): Renamed to 
7233         mono_assembly_load_references, and made private, since clients no
7234         longer need to call it.
7235
7236         * class.c: Removed calls to mono_assembly_load_references, since it was
7237         a source of deadlocks.
7238
7239         * loader.h loader.c class.h class.c: Protect data structures using a 
7240         new lock, the loader lock.
7241
7242         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7243         GPtrArrays only when needed.
7244
7245         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7246         into empty structures by mcs. Fixes pinvoke7.cs.
7247         
7248         * domain.c (mono_init): Call a new initialization function.
7249
7250         * appdomain.c (mono_runtime_init): Call the new initializer function
7251         of the marshal module.
7252
7253         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7254         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7255
7256         * marshal.h marshal.c: Added locks around the wrapper caches to make
7257         this module thread safe.
7258
7259         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7260         this argument. Fixes pinvoke1.exe.
7261
7262 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7263
7264         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7265         enumeration of values. Removed fields to store remote call output values in
7266         MonoAsyncResult. Not needed any more.
7267         * object.c: Initialize call_type and async_result fields in mono_message_init.
7268         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7269         dispatching the message.
7270         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7271         async call to finish. To do it use a message with EndInvoke call type.
7272
7273 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7274
7275         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7276         determines whenever a method has marshalling info.
7277
7278 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7279
7280         * assembly.c: fix the build on windows.
7281
7282 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7283
7284         * object.cs: Fixed bug #47785.
7285
7286 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7287
7288         * string-icalls.c (StringReplace): If their are no occurances of
7289         the old string found return a reference to the supplied
7290         string. This saves some memory and matches MS behavoir.
7291         
7292 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7293
7294         * socket-io.c: fixed compilation for systems that define AF_INET6
7295         and don't define SOL_IP/SOL_IPV6.
7296
7297 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7298
7299         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7300         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7301
7302         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7303
7304         * domain.c: Make this module thread safe.
7305
7306         * domain.c (mono_init): Call new initialization function.
7307
7308         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7309         reference types too. Fixes #38812.
7310
7311         * image.c (mono_image_init): Fixed warnings.
7312
7313         * class.c (mono_class_from_typeref): Handle assembly load failure
7314         correctly.
7315
7316         * appdomain.c (add_assemblies_to_domain): Handle the case when
7317         the references of an assembly are not yet loaded.
7318
7319         * metadata.c image.c assembly.c: Moved initialization of global
7320         variables to a separate function called at startup since lazy 
7321         initialization of these variables is not thread safe.
7322         
7323         * image.c assembly.c: Made this module thread safe by adding locks in 
7324         the appropriate places.
7325
7326         * domain.c (mono_init): Call the new initialization functions of the
7327         three modules.
7328
7329 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7330
7331         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7332           make a direct call. It is proxy's work to make the call asynchronous.
7333           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7334           the return values.
7335         * object.cs: mono_method_call_message_new(): read AsyncResult and
7336           state object from parameters list, if this info is requested.
7337         * object.h: Added fields to store remote call output values in
7338           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7339
7340 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7341
7342         * object.h: add needed fields to MonoThread.
7343         * threads.c, threads.h: allow registering a function to cleanup data
7344         allocated per thread by the JIT.
7345
7346 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7347
7348         * loader.h: portability fix by Bernie Solomon
7349         * <bernard@ugsolutions.com>.
7350
7351 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7352
7353         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7354         return a MonoArray. This simplifies the code and also ensures that
7355         the cache allways contains an object reference as a value.
7356
7357         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7358         function.
7359
7360 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7361
7362         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7363         fixes a problem with byte ordering when getting the address family for
7364         a socket.
7365
7366 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7367
7368         * .cvsignore: Added monosn.
7369
7370         * reflection.h reflection.c loader.c: Added support for parameter
7371         marshalling to dynamically created types. Fixes #47295.
7372
7373 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7374
7375         * rand.c: remove useless warnings.
7376
7377 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7378
7379         * class.c: implemented ldtoken for methods and fieldrefs.
7380
7381 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7382
7383         * threadpool.c: when mono_async_invoke was called, no one took care of
7384         monitoring the queue. So if the method invoked took some time and we
7385         got new async invoke requests after 500 ms (the thread created waited
7386         that long in WaitForSingleObject), the new async invoke was not called
7387         until the previous one finished.
7388
7389         This is fixed now. Thanks to Totte for helping with it.
7390
7391 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7392
7393         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7394
7395 2003-08-11  Martin Baulig  <martin@ximian.com>
7396
7397         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7398
7399 2003-08-06  Martin Baulig  <martin@ximian.com>
7400
7401         * mono-debug-debugger.c: Added support for static fields,
7402         properties and methods.
7403
7404 2003-08-06  Martin Baulig  <martin@ximian.com>
7405
7406         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7407         make this work for applications with multiple application domains.
7408
7409 2003-08-04  Martin Baulig  <martin@ximian.com>
7410
7411         * mono-debug-debugger.c: Completely reworked the type support; the
7412         most important thing is that we're now just using one single
7413         `MonoType' instance per type.
7414
7415 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7416
7417         * mono-endian.h, mono-endian.c, icall.c: Added icall
7418         ves_icall_System_Double_AssertEndianity to assert double word endianity
7419         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7420
7421 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7422
7423         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7424         support, icalls and fixes.
7425
7426 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7427
7428         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7429         classes that are a punctuation character in .NET is not the same a
7430         g_unichar_ispunct.
7431
7432 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7433
7434         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7435
7436 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7437
7438         * icall.c: Add new MemCopy internalcall.
7439         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7440         Simplified code; It is not necessary to handle all the cases here,
7441         as the C# code takes care of it.  Only handle the case of the name
7442         resource embedded into the assembly.
7443
7444         Changed signature to return the data pointer and the size of the
7445         data. 
7446
7447 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7448
7449         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7450         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7451
7452 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7453
7454         * socket-io.c: ignore EINTR error in select.
7455
7456 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7457
7458         * class.h, class.c: removed unused subclasses field in MonoClass.
7459
7460 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7461
7462         * icall.c: improve fix of get_base_definition(). If the parent class
7463           doesn't have the mehod, look at the parent of the parent.
7464         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7465           to check if a parameter is an in or out parameter
7466           (PARAM_ATTRIBUTE_IN is not set by default).
7467           mono_method_return_message_restore(): Use mono_class_value_size to
7468           get the size of a value type. mono_type_stack_size (parameterType)
7469           does not return the correct value if parameterType is byRef.
7470           mono_load_remote_field(), mono_load_remote_field_new(),
7471           mono_store_remote_field(), mono_store_remote_field_new():
7472           raise exception if the remote call returns an exception.
7473
7474 2003-07-28  Martin Baulig  <martin@ximian.com>
7475
7476         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7477         method.  This is a wrapper around mono_runtime_invoke() which
7478         boxes the instance object if neccessary.
7479
7480 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7481
7482         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7483         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7484
7485 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7486
7487         * icall.c: disable mcs bug workaround.
7488
7489 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7490
7491         * object.c (mono_runtime_class_init): Take the metadata_section
7492         mutex before obtaining the domain mutex.
7493
7494         * appdomain.h: Added definition of metadata_section mutex here. 
7495
7496         * object.c: define metadata_mutex here.
7497
7498 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7499
7500         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7501         fixed.
7502
7503 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7504
7505         * reflection.c: Fix bug #46669
7506
7507 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7508
7509         * exception.c:
7510         * exception.h:
7511         * icall.c:
7512         * object.h: fill in the type name for TypeLoadException.
7513
7514 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7515
7516         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7517         relationship between TypeBuilders while compiling corlib) and bug
7518         45993 (Array types returned from the runtime while compiling
7519         corlib were from the loaded corlib).
7520
7521 2003-07-22  Martin Baulig  <martin@ximian.com>
7522
7523         * mono-debug-debugger.c: Reworked the type support a bit more;
7524         distinguish between types and classes.
7525
7526 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7527
7528         * icall.c: add IsArrayImpl icall.
7529
7530 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7531
7532         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7533         initializing real_size only once. Also fix bug #46602.
7534
7535 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7536
7537         * object.c: Renamed mono_metadata_section to metadata_section.
7538
7539 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7540
7541         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7542           empty array if the type is an array. Fixed.
7543           ves_icall_MonoMethod_get_base_definition: if the base method
7544           is abstract, get the MethodInfo from the list of methods of
7545           the class.
7546         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7547           and it was 1-based. Fixed in mono_param_get_objects.
7548
7549 2003-07-20  Martin Baulig  <martin@ximian.com>
7550
7551         * mono-debug.h: Set version number to 31.
7552         (mono_debug_init): Added `MonoDomain *' argument.
7553
7554         * mono-debug-debugger.c: Reworked the type support; explicitly
7555         tell the debugger about builtin types; pass the `klass' address to
7556         the debugger.
7557
7558 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7559
7560         * image.c: Allow new metadata tables to be loaded without a
7561         warning. Also update the warning message to give the new constant value.
7562                 
7563 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7564
7565         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7566         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7567         array type representation changes.
7568
7569 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7570
7571         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7572         on Environment.Exit () call.
7573
7574 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7575
7576         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7577         requires a matching corlib.
7578
7579 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7580
7581         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7582           Committed again without the CRs.
7583         
7584 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7585
7586         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7587           getting it from the "this" socket instance. Did not work
7588           if the socket is a subclass of Socket.
7589           Also fixed bug #35371.
7590
7591 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7592
7593         * metadata.c: fixed size for TypedByRef.
7594         * loader.c: when searching for a method, consider the vararg amrker.
7595         * unicode.c, decimal.c: constify some arrays.
7596
7597 2003-07-15  Dick Porter  <dick@ximian.com>
7598
7599         * socket-io.c: Fixed compilation for gcc < 3.2.
7600
7601         Fixed compilation for machines that don't have AF_INET6 (thanks to
7602         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7603
7604         Fixed compile warnings.
7605         
7606         Fixed formatting and line endings.
7607
7608 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7609
7610         * socket-io.h:
7611         * socket-io.c: Added IPv6 support.
7612
7613 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7614
7615         * class.c (mono_class_is_assignable_from): New function to implement
7616         the is_assignable_from logic. Used by mono_object_isinst, 
7617         Type::IsAssignableFrom () and the interpreter.
7618
7619         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7620         Object, even interfaces.
7621         
7622         * object.c (mono_object_isinst): Implement in terms of 
7623         is_assignable_from.
7624
7625         * icall.c (ves_icall_type_is_assignable_from): New icall.
7626
7627 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7628
7629         * domain.c (foreach_domain): fix compiler warning.
7630
7631 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7632
7633         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7634         not available on all plattforms
7635
7636 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7637
7638         * image.h image.c: Store the metadata version string in MonoImage.
7639         * icall.c: New icall to retrieve the image version.
7640         * reflection.c (create_dynamic_image): Fill in the image version field
7641         * reflection.c (build_compressed_metadata): Use the image version
7642         from the image structure.
7643
7644 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7645
7646         * appdomain.c: modified comment.
7647         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7648         That will be its last iteration when mono_gc_cleanup is called from
7649         mono_runtime_cleanup and before the domain is unloaded.
7650
7651         Fixes bug #45962.
7652
7653 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7654
7655         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7656         attributes.
7657
7658 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7659
7660         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7661         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7662         Bernie Solomon <bernard@ugsolutions.com>.
7663
7664 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7665
7666         * object.c, object.h: provide mono_object_new_fast() for faster
7667         allocation in some special cases.
7668
7669 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7670
7671         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7672         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7673
7674 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7675
7676         * threadpool.c: fix leaks.
7677
7678 2003-07-01  Dick Porter  <dick@ximian.com>
7679
7680         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7681         using MonoGHashTables.  Fixes threadpool bug posted to list.
7682
7683 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7684
7685         * image.h, image.c: added support to load an assembly from a byte array.
7686         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7687         assembly bundle support.
7688
7689 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7690
7691         * threadpool.c (mono_thread_pool_add): keep a reference to the
7692         AsyncResult to prevent GC
7693
7694 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7695
7696         * class.c: leak fix.
7697
7698 2003-06-25  Dick Porter  <dick@ximian.com>
7699
7700         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7701         for the async object, the WaitHandle object will close the handle.
7702         Fixes bug 45321.
7703
7704 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7705
7706         * class.c: in mono_array_class_get (), lookup from the hash with the
7707         same type we insert: this works around a bug in
7708         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7709         lluis. The real fix will have to wait for after the release.
7710
7711 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7712
7713         * icall.c: fix memory leak when getting type members.
7714
7715 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7716
7717         * reflection.c: added more pubtoken special cases.
7718
7719 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7720
7721         * class.c: handle field offset correctly when class size
7722         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7723
7724 2003-06-20  Martin Baulig  <martin@ximian.com>
7725
7726         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7727         *image' field.
7728
7729 2003-06-20  Martin Baulig  <martin@ximian.com>
7730
7731         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7732
7733 2003-06-20  Martin Baulig  <martin@ximian.com>
7734
7735         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7736         just distinguish between variables in registers and variables at
7737         an offset relative to a register.
7738
7739 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7740
7741         * icall.c: #ifdef out latest changes until mcs is fixed.
7742
7743 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7744
7745         * icall.c: return members in metadata order.
7746
7747 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7748
7749         * icall.c: avoid infinite loop in GetTimeZoneData.
7750
7751 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7752
7753         * icall.c: added Marshal.Prelink/All icalls.
7754
7755 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7756
7757         * object.c, object.h: fix warnings and do some overflow checking
7758         when creating arrays.
7759
7760 2003-06-17  Dick Porter  <dick@ximian.com>
7761
7762         * file-io.h:
7763         * file-io.c: File attributes need to be tweaked slightly when
7764         passed from the managed to the w32 world.
7765
7766 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7767         * profiler.h profiler-private.h profiler.c: Rework last patch
7768         based on suggestion by Paolo.
7769         
7770 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7771
7772         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7773         instruction level coverage data collection.
7774         * profiler.h profiler.c (: Added new callback function which can be
7775         used by the profiler to limit which functions should have coverage
7776         instrumentation.
7777         * profiler.c (mono_profiler_load): Call g_module_build_path to
7778         generate the file name of the profiler library.
7779
7780 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7781
7782         * profiler.c, profiler.h, profiler-private.h: added basic block 
7783         coverage profiling API.
7784
7785 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7786
7787         * reflection.c (mono_reflection_create_runtime_class): Add support
7788         for events in dynamically generated code.
7789
7790         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7791         not allocated.
7792
7793 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7794
7795         * icall.c: when getting timezone info, return reasonable values if we
7796         can't get the actual data.
7797
7798 2003-06-14  Dick Porter  <dick@ximian.com>
7799
7800         * threads.c (start_wrapper): Remove the reference to the thread
7801         object in the TLS data, so the thread object can be finalized.
7802         This won't be reached if the thread threw an uncaught exception,
7803         so those thread handles will stay referenced :-( (This is due to
7804         missing support for scanning thread-specific data in the Boehm GC
7805         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7806
7807 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7808
7809         * reflection.c: ensure streams and tables are first allocated with
7810         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7811
7812 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7813
7814         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7815
7816 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7817
7818         * reflection.c (mono_reflection_create_runtime_class): Add support for
7819         properties to dynamically created classes.
7820         * reflection.c: Fix a few places where non-MonoObjects were inserted
7821         into the tokens hashtable.
7822
7823 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7824
7825         * object.c: some support to handle out of memory exceptions.
7826
7827 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7828
7829         * marshal.c (mono_marshal_get_native_wrapper): support reference
7830         return types
7831
7832 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7833
7834         * object.h, object.c: more portability stuff from Bernie Solomon.
7835         Unexport mono_object_allocate(). Added mono_object_unbox ().
7836         Set exitcode when an unhandled exception is thrown.
7837
7838 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7839
7840         * marshal.c (mono_marshal_get_native_wrapper): use custom
7841         marshaler for return types.
7842
7843 2003-06-10  Dick Porter  <dick@ximian.com>
7844
7845         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7846         ip_mreq is available
7847
7848 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7849
7850         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7851         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7852         by Bernie Solomon <bernard@ugsolutions.com>.
7853
7854 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7855
7856         * gc.c (mono_gc_init): Avoid error message on shutdown when
7857         GC_DONT_GC=1 is used.
7858
7859         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7860         New icall to return the GUID of a module.
7861
7862 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7863
7864         * class.c: ensure instance size always includes the parent's size
7865         even whem class size is set explicitly (fixes bug#44294).
7866
7867 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7868
7869         * profiler.h, profiler.c: made the simple profiler thread-safe,
7870         get more accurate timing info. Allow the loading of an
7871         externally-developed profiler module.
7872
7873 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7874
7875         * marshal.c (mono_marshal_get_native_wrapper): improved
7876         class/byref arguments.
7877         (mono_marshal_get_native_wrapper): better string marshaling support.
7878
7879 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7880
7881         * class.c: ensure .pack and .size are handled correctly and
7882         simplified layout of static fields.
7883
7884 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7885
7886         * appdomain.c
7887         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7888
7889         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7890         current directory (fix bug 44008)
7891
7892 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7893
7894         * marshal.c (mono_marshal_get_native_wrapper): started support for
7895         custom marshalers.
7896         (mono_delegate_to_ftnptr): consider marshalling specifications
7897
7898 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7899
7900         * reflection.c, reflection.h: emit custom marshal info.
7901
7902 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7903
7904         * object.c: free the GError.
7905         * icall.c: added CloseEvent_internal.
7906         * threads.[ch]:
7907         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7908         call.
7909
7910 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7911
7912         * loader.c (mono_method_get_signature): Add support for dynamic
7913         assemblies.
7914
7915 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7916
7917         * reflection.c: fixed bug #43905.
7918
7919 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7920
7921         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7922         handling TypedReference and ArgIterator.
7923         * loader.c, loader.h: added function to get signature at call site.
7924
7925 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7926
7927         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7928         data readonly. Buglets and warning fixes. Some MethodSpec support.
7929
7930 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7931
7932         * class.h, class.c, object.c: remove relative numbering support.
7933
7934 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7935
7936         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7937         free the string, until we get a chance to fix Gtk#
7938
7939 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7940
7941         * marshal.c: revert last patch.
7942
7943 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7944
7945         * icall.c: updates for new mono_class_vtable() not calling
7946         the type constructor anymore.
7947
7948 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7949
7950         * object.h, object.c: separate vtable creation from type
7951         initialization. Make running the .cctor thread safe.
7952
7953 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7954
7955         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7956
7957 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7958
7959         * loader.c (mono_get_method): consider calling convention
7960
7961 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7962
7963         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7964         to return the invisible global type for a module.
7965
7966         * reflection.c (mono_image_build_metadata): Emit global fields too.
7967
7968 2003-05-20  Peter Williams  <peterw@ximian.com>
7969
7970         * loader.c (mono_lookup_internal_call): Add a few newlines.
7971
7972 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7973
7974         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7975         literal strings.
7976
7977         * appdomain.c (set_domain_search_path): Recalculate search path when
7978         AppDomainSetup.PrivateBinPath changes.
7979
7980         * object.c (mono_class_compute_gc_descriptor): It turns out some
7981         parts of the class libs (like System.Thread) holds pointers to
7982         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7983         to treat native int a pointer type here.
7984         
7985 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7986
7987         * appdomain.h, domain.c: add hashtable for jump target resolution.
7988
7989 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
7990
7991         * reflection.h reflection.c icall.c: Added new icalls 
7992         GetManifestResourceInfoInternal, GetModulesInternal and support
7993         infrastructure.
7994
7995 2003-05-16  Dick Porter  <dick@ximian.com>
7996
7997         * icall.c:
7998         * file-io.h:
7999         * file-io.c: Implement System.IO.MonoIO::GetTempPath
8000
8001 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
8002
8003         * object.c: mono_store_remote_field: little fix to previous patch.
8004
8005 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
8006
8007         * class.c: add constructors to array classes.
8008         * icall.c: special case array construction for InternalInvoke (),
8009
8010 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
8011
8012         * class.h class.c reflection.c object.c: Added support for field
8013         defaults in dynamically generated classes.
8014
8015 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
8016
8017         * reflection.c: properly encode charset for ddlimport.
8018
8019 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
8020
8021         * threads.c: allow compiling without GC.
8022
8023 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
8024
8025         * appdomain.h, object.c, object.h, threads.c, threads.h: added
8026         handling of thread static data.
8027
8028 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
8029
8030         * reflection.h, reflection.c: added mono_custom_attrs_free ().
8031
8032 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
8033
8034         * class.c (mono_array_class_get): always set the serializable flags
8035         (mono_array_class_get): always set the SEALED attribute for array types
8036
8037 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
8038
8039         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
8040         attributes (fix for bug 42021).
8041
8042 2003-05-12  Dick Porter  <dick@ximian.com>
8043
8044         * gc.c: Don't run finalizers when the finalizer thread is
8045         finishing up, because the default domain has already been
8046         destroyed.
8047
8048 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
8049
8050         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
8051         value is null, we should throw an exception.   This is slightly
8052         different than the other conventions used for the constructor.
8053
8054 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8055
8056         * socket-io.c: fixed windows build.
8057
8058 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8059
8060         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
8061
8062 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
8063
8064         * object.c (mono_string_new_wrapper): Compatibility fix for MS
8065         compilers.
8066
8067 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
8068
8069         * class.c (mono_class_layout_fields): Add experimental GC aware
8070         auto layout facility. Requires class library changes to work correctly.
8071
8072         (mono_class_setup_vtable): Avoid overriding explicit interface
8073         method implementations. Fixes iface3.exe test.
8074
8075         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
8076         object reference.
8077         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
8078         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
8079
8080         * metadata.h: Add new type classification macro which determines
8081         whenever the type holds an object reference.
8082
8083 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
8084
8085         * marshal.c (mono_marshal_get_native_wrapper): cleanups
8086
8087 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
8088
8089         * gc.c (finalizer_thread): Work around a GC bug.
8090
8091 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
8092
8093         * marshal.c (emit_struct_conv): allow unions
8094
8095         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
8096
8097 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
8098
8099         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
8100
8101 2003-05-06  Martin Baulig  <martin@ximian.com>
8102
8103         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
8104
8105 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8106
8107         * socket-io.c:
8108         (Select_internal): allow NULLs, don't create arrays if not needed.
8109         Coupled with Socket.cs changes.
8110
8111         * threadpool.c:
8112         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
8113         register a finalizer for it that will close the semaphore handle. This
8114         fixes the leak and make Lupus' test run with > 4080 loops.
8115
8116 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
8117
8118         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
8119         Jerome Laban (bug #42287)
8120
8121 2003-05-02  Martin Baulig  <martin@ximian.com>
8122
8123         * debug-mono-symfile.h
8124         (MonoSymbolFile): Moved declaration into mono-debug.h.
8125         (MonoDebugMethodJitInfo): Likewise.
8126         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
8127         argument.
8128         (_mono_debug_address_from_il_offset): Take a
8129         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
8130
8131         * mono-debug.h
8132         (MonoDebugDomainData): New struct.
8133         (mono_debug_get_domain_data): New function.
8134         (mono_debug_add_method): Take an additional `MonoDomain *'
8135         argument.
8136         (mono_debug_source_location_from_address): Likewise.
8137         (mono_debug_il_offset_from_address): Likewise.
8138         (mono_debug_address_from_il_offset): Likewise.
8139
8140 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
8141
8142         * reflection.c: one more check for null type in custom attrs.
8143
8144 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8145
8146         * reflection.c: avoid warning (comparison is always false due to limited
8147         range of data type).
8148
8149 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8150
8151         * icall.c: throw an exception in Type.GetField if the argument 'name'
8152         is NULL.
8153
8154 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
8155
8156         * reflection.c: fixed handling of enums in named arguments to custom
8157         attributes (bug #42123).
8158
8159 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
8160
8161         * reflection.c: use the right array element type and handle
8162         a null for a Type argument, too.
8163
8164 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
8165
8166         * reflection.c: handle arrays as arguments to custom attributes.
8167
8168 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
8169
8170         * reflection.c: handle a string value in a custom attr
8171         ctor that takes an object.
8172
8173 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8174
8175         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8176         (fix bug #42063)
8177
8178 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8179
8180         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8181
8182 2003-04-27  Martin Baulig  <martin@ximian.com>
8183
8184         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8185         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8186         MONO_DEBUGGER_EVENT_BREAKPOINT.
8187         (mono_breakpoint_trampoline_code): Removed.
8188         (mono_debugger_event_handler): The last argument is now a
8189         `guint32'.
8190         (mono_debugger_insert_breakpoint_full): Removed the
8191         `use_trampoline' argument.
8192         (mono_debugger_method_has_breakpoint): Likewise.
8193         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8194         mono_debugger_breakpoint_callback(); take the method and
8195         breakpoint number as arguments.
8196
8197 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8198
8199         * metadata.c: fix off by one when loading parameters attributes.
8200
8201 2003-04-24  Martin Baulig  <martin@ximian.com>
8202
8203         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8204
8205 2003-04-24  Martin Baulig  <martin@ximian.com>
8206
8207         * mono-debug-debugger.c: Moved all code which interacts with the
8208         Mono Debugger here.
8209
8210         * debug-mono-symfile.c: This code now just deals with the symbol
8211         file itself, the debugger code is now in mono-debug-debugger.c.
8212
8213 2003-04-23  Martin Baulig  <martin@ximian.com>
8214
8215         * mono-debug.c (mono_debug_source_location_from_il_offset):
8216         New method; like mono_debug_source_location_from_address(), but
8217         takes an IL offset instead of a machine address.
8218
8219 2003-04-23  Martin Baulig  <martin@ximian.com>
8220
8221         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8222         `line' field; this is now computed by the debugger.
8223
8224 2003-04-23  Martin Baulig  <martin@ximian.com>
8225
8226         * mono-debug.[ch]: New files.  This is the new debugging interface.
8227
8228         * mono-debug-debugger.[ch]: New files.  Moved all code which
8229         interacts with the Mono Debugger here.
8230
8231 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8232
8233         * domain.c (mono_init): initialize mono_defaults.monitor_class
8234
8235 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8236
8237         * reflection.c (method_encode_code): Add a spicy exception to help
8238         future compiler authors.
8239
8240 2003-04-21  Martin Baulig  <martin@ximian.com>
8241
8242         * icall.c
8243         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8244         Make this work with relative pathnames; g_filename_to_uri() needs
8245         an absolute filename.
8246
8247 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8248
8249         * icall.c: Track name changes in Object and ValueType.
8250
8251 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8252
8253         * metadata.c (mono_type_stack_size): size should be a multiple of
8254         sizeof (gpointer)
8255
8256 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8257
8258         * gc.c:
8259         (internal_domain_finalize): moved into mono_domain_finalize. No need
8260         to create another thread because the finalizers will be run in the
8261         finalizer thread.
8262         
8263         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8264         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8265         to be run (MS does this too).
8266
8267 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8268
8269         * object.c (mono_class_compute_gc_descriptor): Update comment.
8270
8271         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8272
8273         * image.h: Add synchronized wrapper cache.
8274
8275         * image.c (do_mono_image_open): Initialize cache.
8276
8277         * reflection.c (create_dynamic_mono_image): Initialize cache.
8278
8279 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8280
8281         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8282         ves_icall_System_Buffer_ByteLengthInternal.
8283
8284 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8285
8286         * reflection.c: setup klass->nested_in earlier. Allow
8287         a dash in the assembly name.
8288
8289 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8290
8291         * metadata.c (mono_type_to_unmanaged): dont access
8292         type->data.klass for MONO_TYPE_OBJECT
8293         (mono_type_to_unmanaged): consider System.Delegate class
8294
8295 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8296
8297         * class.c: just setup supertypes in the proper place instead of
8298         initializing the full element class for arrays.
8299
8300 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8301
8302         * class.c: ensure the element class of arrays is initialized.
8303         Setup the supertype info for array classes, too.
8304
8305 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8306
8307         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8308
8309 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8310
8311         * Makefile.am: re-added -m option when running cygpath. This way,
8312         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8313         separator.
8314         * mono-config.c: same codepath for locating mono config file for WIN32
8315         and the rest.
8316         * assembly.c: if mono_assembly_setrootdir is called, don't override
8317         the value set.
8318
8319 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8320
8321         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8322         MONO_ASSEMBLIES variable.
8323
8324 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8325
8326         * icall.c: added Assembly::GetNamespaces() icall.
8327
8328 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8329
8330         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8331
8332 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8333
8334         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8335         * object.c: fixed bug in the construction of vtable for proxies
8336
8337 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8338
8339         * object.c (mono_array_new): Mark mono_array_new as an icall.
8340
8341 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8342
8343         * class.c: fixed test for public method when overriding interfaces.
8344         Closes bug #40970.
8345
8346 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8347
8348         * appdomain.h, domain.c: added mono_domain_foreach() to
8349         be able to access the currently loaded appdomains.
8350         * object.c: make string interning work across sppdomains.
8351         Mark some functions for use as icalls.
8352
8353 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8354
8355         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8356
8357         * reflection.h reflection.c: Allocate long living data using 
8358         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8359
8360         * reflection.c: Double the allocation size in streams instead of
8361         increasing it, to prevent unneccesary copying on large assemblies.
8362         
8363         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8364         creation if the assembly does not have the Run flag set.
8365
8366 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8367
8368         * class.h: avoid the C++ keywords in header files (Jerome Laban
8369         spotted and fixed this).
8370
8371 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8372
8373         * object.c:
8374         (mono_unhandled_exception): fill in the arguments for the
8375         UnhandledException event. Only trigger that event for the default
8376         domain (as MS does).
8377
8378 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8379
8380         * object.c: Improve typed allocation stuff based on suggestions from
8381         Paolo. Also turn it on if the GC library supports it.
8382
8383 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8384
8385         * object.c object.h class.h: Added experimental typed allocation
8386         facility using the interfaces in gc_gcj.h.
8387
8388         * os/gc_wrapper.h: Added new include files.
8389         
8390 2003-04-03  Martin Baulig  <martin@ximian.com>
8391
8392         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8393         which is not yet enabled by default.
8394
8395         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8396         functions.
8397         (mono_gc_lock, mono_gc_unlock): New static functions.
8398
8399         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8400         functions; stop/start the world for the garbage collector.  This
8401         is using the windows API; we need to complete the SuspendThread()/
8402         ResumeThread() implementation in the io-layer to make this work on Unix.
8403         (mono_gc_push_all_stacks): New public function; tells the garbage
8404         collector about the stack pointers from all managed threads.
8405
8406 2003-04-03  Martin Baulig  <martin@ximian.com>
8407
8408         * object.h (MonoThread): Added `gpointer stack_ptr'.
8409
8410         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8411
8412 2003-04-03  Martin Baulig  <martin@ximian.com>
8413
8414         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8415
8416 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8417
8418         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8419         field.last.
8420
8421 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8422
8423         * loader.c (mono_lookup_internal_call): Report the corlib that is
8424         out of sync.
8425
8426 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8427
8428         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8429         System.DBNull (it's class not valuetype).
8430
8431 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8432
8433         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8434         if the array method was already assigned a token (fixes bug#40646).
8435
8436 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8437
8438         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8439         if no assembly is given.
8440
8441 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8442
8443         * metadata.h: Added the new tables.
8444
8445         * row-indexes.h: Added definitions for new tables.
8446
8447         * metadata.c: Add schemas for new tables, and add support for
8448         computing the sizes of them.
8449
8450         * class.c: Update for handling the new type cases.
8451
8452 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8453
8454         * metadata.h (MONO_TYPE_IS_VOID): new macro
8455
8456 2003-03-31  Martin Baulig  <martin@ximian.com>
8457
8458         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8459
8460         * threads.c (mono_thread_new_init): Call `thread_created' in the
8461         mono_thread_callbacks.
8462
8463 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8464
8465         * loader.h: added marshalbyrefobject_class to mono_defaults
8466         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8467         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8468           generation of output parameters.
8469           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8470         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8471           contextbound and the target object belongs to the context of the caller.
8472         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8473         * object.c: Implemented support for interfaces and abstract classes
8474           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8475           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8476
8477 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8478
8479         * class.h class.c (mono_class_is_subclass_of): New function.
8480         
8481         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8482         routines for most common case (calls from ArrayList::ToArray).
8483
8484         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8485         routine so programs which call Environment::Exit() can be profiled.
8486
8487         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8488         Added MONO_ARCH_SAVE_REGS.
8489
8490         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8491
8492 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8493
8494         * blob.h: Add a couple of new MonoType types definitions.
8495
8496         * tabledefs.h: Add a couple of new call convs.
8497
8498 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8499
8500         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8501         the layout of the class.
8502
8503         * reflection.c (alloc_table): double the size on overflow to avoid
8504         unnecessary copying.
8505
8506         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8507         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8508         null so it can be garbage collected.
8509         
8510 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8511
8512         * reflection.c (mono_reflection_get_type): Return the resolved type
8513         only if it is in the assembly we searched.
8514
8515         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8516
8517         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8518         method.
8519
8520 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8521
8522         * appdomain.c:
8523         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8524         the right one is 'file:///blah', but MS allows it.
8525         * assembly.c:
8526         (mono_assembly_open): allow 'file://blah'
8527
8528         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8529
8530 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8531
8532         * socket-io.c: fixes bug #40310.
8533
8534 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8535
8536         * reflection.c (mono_reflection_parse_type): handle deeply nested
8537         types correctly.
8538
8539         * reflection.c (mono_image_create_token): Use unique token values
8540         since they will be put into a hash table.
8541
8542         * class.c (mono_class_setup_vtable): If a method occurs in more than
8543         one place in the vtable, and it gets overriden, then change the
8544         other occurances too.
8545
8546         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8547         object as return type.
8548
8549 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8550
8551         * icall.c: Deleted "ToString" implementation for double and float
8552         because they are full implemented in managed code.
8553
8554 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8555
8556         * reflection.c, reflection.h: implemented and exported functions
8557         to retrieve info about custom attributes.
8558
8559 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8560
8561         * appdomain.c: moved Uri handling to assembly.c
8562         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8563         work when using a file Uri in *nix and windows.
8564
8565         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8566         GetReferencedAssemblies.
8567
8568 2003-03-18  Dick Porter  <dick@ximian.com>
8569
8570         * icall.c: Rename a couple of internal calls
8571
8572         * threads.c: Set the thread state to Stopped when a thread exits.
8573         Fixes bug 39377.
8574
8575 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8576
8577         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8578         New icall.
8579
8580         * object.c (mono_class_vtable): fix warning.
8581
8582 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8583
8584         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8585
8586         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8587         memory.
8588         (method_encode_clauses): Create exception info structures in the right
8589         order.
8590         (mono_reflection_setup_internal_class): Initialize supertypes field.
8591
8592         * class.c object.c: Handle interfaces which implement other interfaces 
8593         correctly.
8594
8595         * class.h class.c: Move the supertypes array initialization code into 
8596         a separate function so it can be used for dynamic types too. Also call
8597         it earlier, in mono_class_init(), since it can be used before the
8598         type is initialized.
8599
8600 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8601
8602         * Makefile.am:
8603         * assembly.c:
8604         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8605
8606         * appdomain.c:
8607         * appdomain.h:
8608         * marshal.c:
8609         * object.c: remove warnings.
8610
8611 2003-03-13  Martin Baulig  <martin@ximian.com>
8612
8613         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8614         (MonoDebugLexicalBlockEntry): New types.
8615
8616         * debug-mono-symfile.c
8617         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8618
8619 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8620
8621         * process.c: ret can be any non-zero value accroding to MS doc.
8622
8623 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8624
8625         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8626         fixing a warning for a miss-used prototype, would have cause
8627         random memory corruption.
8628
8629 2003-03-07  Martin Baulig  <martin@ximian.com>
8630
8631         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8632         getting really annoying ....
8633
8634 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8635
8636         * reflection.c (fixup_method): added support for array methods.
8637
8638 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8639
8640         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8641         (pointed out by Michael Adams).
8642
8643 2003-03-04  Dick Porter  <dick@ximian.com>
8644
8645         * icall.c: Temporarily reverted the Double and Single ToString()
8646         change, because it broke nunit.
8647
8648 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8649
8650         * object.h, threads.h: make include files compatible with C++
8651         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8652
8653 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8654
8655         * icall.c: Erased ToString helper functions for Double and Single.
8656         Now, that implementations ar all in managed code (Double and Single
8657         Formatters).
8658
8659 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8660
8661         * appdomain.c: Added method for initializing the default context of
8662         a domain. Added internal call for getting the default context.
8663         * appdomain.h: Added context variable in MonoDomain struct.
8664         * domain.c: mono_domain_set also sets the default context of the domain
8665         * icall.c: Mapped internal method InternalGetDefaultContext.
8666         * object.c: mono_object_get_virtual_method returns always a remoting
8667         wrapper if the object is a transparent proxy.
8668         mono_runtime_invoke_array: when creating an object by calling the
8669         constructor, if the created object is a proxy, then the constructor should
8670         be called using the a remoting wrapper.
8671
8672 2003-03-03  Dick Porter  <dick@ximian.com>
8673
8674         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8675         variable so it compiles on solaris.  Problem spotted by
8676         Christopher Taylor <ct@cs.clemson.edu>
8677
8678 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8679
8680         * appdomain.c:
8681         (get_info_from_assembly_name): don't leak value.
8682
8683         * icall.c:
8684         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8685         result.
8686
8687 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8688
8689         * assembly.c: export mono_image_load_references ().
8690         * class.c: handle function pointers. mono_class_from_name() now
8691         supports nested type names directly.
8692
8693 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8694
8695         * reflection.h reflection.c: Encode already created dynamic methods 
8696         and fields correctly as a DEF instead of a REF.
8697
8698         * reflection.c: Get rid of the force_ref argument to 
8699         mono_image_typedef_or_ref since it was wrong in the first place.
8700
8701         * string-icalls.c: add error checking to string constructors according
8702         to the MSDN docs.
8703
8704         * reflection.c: Emit types in the order their TypeBuilders were 
8705         created. Previously, a new table index was assigned to each type before
8706         the tables were emitted. This was wrong because the signature blob
8707         might already refer to a type by its original table index.
8708
8709 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8710
8711         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8712         change.
8713         
8714 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8715
8716         * Makefile.am: make assemblies dir have \ instead of / on windows.
8717
8718 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8719
8720         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8721         iterate over the NESTEDCLASS table using a linear search since the
8722         table is not guaranteed to be sorted by the secondary key.
8723
8724         * class.c (mono_class_create_from_typedef): fixed up call to
8725         mono_metadata_nesting_typedef.
8726         
8727 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8728
8729         * marshal.c (mono_string_to_byvalstr): clear the memory as
8730         suggested by Jerome Laban <jlaban@wanadoo.fr>
8731
8732 2003-02-26  Dick Porter  <dick@ximian.com>
8733
8734         * process.c: Cope with padding in .rsrc blocks
8735
8736 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8737
8738         * metadata.h: reverted the filter_len change, it breaks reflection
8739         
8740 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8741
8742         * metadata.h: added a new field to store the filter_len
8743         
8744
8745 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8746
8747         * reflection.c: handle custom attributes for types and members
8748         created with Reflection.Emit (bug#38422).
8749
8750 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8751
8752         * reflection.c: define RTSpecialName automatically for constructors for
8753         compatibility with MS.NET.
8754
8755         * reflection.c (mono_reflection_create_runtime_class): initialize
8756         nested_in field of dynamically created classes.
8757
8758 2003-02-22  Martin Baulig  <martin@ximian.com>
8759
8760         * debug-mono-symfile.h: Incremented version number.
8761
8762 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8763
8764         * object.h icall.c process.c: fix warnings.
8765
8766 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8767
8768         * appdomain.h appdomain.c:
8769         (mono_domain_try_type_resolve): split the 
8770         name_or_tb argument into a name and a tb argument.
8771         (mono_domain_has_type_resolve): new function to check whenever the
8772         application has registered a TypeResolve event handler.
8773         
8774         * icall.c reflection.h reflection.c: move the type resolve logic into
8775         mono_reflection_get_type () so it will be invoked when 
8776         Assembly::GetType () is called.
8777
8778         * reflection.c:
8779         (mono_reflection_get_type): renamed to get_type_internal.
8780         (mono_reflection_get_type): fixed type name generation so it works 
8781         for nested types too.
8782         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8783         costly type name generation if there is no resolve event handler.
8784
8785 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8786
8787         * class.c, image.c: load exported types from file references.
8788
8789 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8790
8791         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8792           used to cache the managed methods used to create proxies and make 
8793           remote invocation of methods.
8794         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8795           to be remotely created.
8796         * object.c: Modified the method mono_class_vtable(). It now initializes 
8797           the remote flag of the vtable. Modified mono_object_new_specific(), 
8798           so now it checks the remote flag.
8799         * icall.c: Added a couple of internal methods, one for enabling instance 
8800           creation interception for a type, and one for creating objects bypassing
8801           the remote check.
8802
8803 2003-02-18  Martin Baulig  <martin@ximian.com>
8804
8805         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8806         New interncall to get a method's metadata token.
8807
8808         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8809         New interncall for the debugger.
8810
8811 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8812
8813         * class.c (mono_class_setup_vtable): allocate supertype array
8814
8815 2003-02-18  Martin Baulig  <martin@ximian.com>
8816
8817         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8818
8819 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8820
8821         * reflection.c:
8822         (assembly_name_to_aname): jump over unknown properties (i've found
8823         something like: 'type, assembly, version=xxx, custom=null, public...',
8824         so now will ignore custom=null and still get the rest of the values).
8825
8826 2003-02-17  Dick Porter  <dick@ximian.com>
8827
8828         * threads.c: Have Thread.Start() wait for a semaphore to signal
8829         that the thread has set up all its local data.  This fixes bug
8830         34323, where Abort() raced the new thread's TLS data.
8831
8832         Also removes the handle_store() call from start_wrapper, because
8833         threads are now always created suspended and there is no longer a
8834         race between the parent and child threads to store the info.
8835
8836 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8837
8838         * image.c: explain the #- heap issue in a message, hopefully
8839         avoiding FAQs on mono-list.
8840
8841 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8842
8843         * icall.c:
8844         (GetEntryAssembly): if the domain has not invoked
8845         AppDomain.ExecuteAssembly yet, return the assembly of the default
8846         AppDomain.
8847
8848 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8849
8850         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8851
8852 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8853
8854         * metadata.c, reflection.c: simple speedup to type hash
8855         and equals code.
8856
8857 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8858
8859         * image.c, image.h, class.c, assembly.c: move module loading
8860         to MonoImage. When loading metadata, consider alignemnet from
8861         the start of metadata, not from the metadata address in memory.
8862
8863 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8864
8865         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8866         AssemblyBuilder objects. Factored out custom attribute creation into
8867         a separate function.
8868         (create_custom_attr): new function to create custom attributes.
8869
8870 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8871
8872         * Makefile.am: Got tired of typing the full pathname to pedump.
8873         Until there is another option, am installing this.
8874
8875 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8876
8877         * class.c (class_compute_field_layout): always set field->parent 
8878         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8879
8880 2003-02-11  Dick Porter  <dick@ximian.com>
8881
8882         * threads-types.h:
8883         * monitor.c: Rewrote Monitor, making lock much faster and
8884         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8885         creates them as needed.
8886
8887         * exception.c: Added SynchronizationLockException
8888
8889         * threads.c: Deleted old Monitor implementation.  The new one is
8890         in a new file.
8891
8892 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8893
8894         * class.c: handled TypedReference type code. Set the correct size for
8895         class data. Setup interface_offsets for interface classes, too.
8896
8897 2003-02-09  Martin Baulig  <martin@ximian.com>
8898
8899         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8900
8901 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8902
8903         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8904         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8905         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8906         * verify.c: check for code that runs after the end of the method.
8907
8908 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8909
8910         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8911         "System.Math::Round2".
8912         * sysmath.h: Added Floor, Round and Round2 definitions.
8913         * sysmath.c: Modified certain functions that were not 100% compliant
8914         with MS.NET (math precision) and added the implementation of Floor,
8915         Round and Round2.
8916
8917 2003-02-07  Martin Baulig  <martin@ximian.com>
8918
8919         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8920
8921 2003-02-07  Martin Baulig  <martin@ximian.com>
8922
8923         * debug-mono-symfile.c: Reflected latest symwriter changes.
8924         (mono_debug_create_mono_symbol_file): Removed.
8925         (mono_debug_open_mono_symbol_file): Take an argument which
8926         specifies whether to create a dynamic symbol file.
8927
8928 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8929
8930         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8931
8932 2003-02-05  Martin Baulig  <martin@ximian.com>
8933
8934         * reflection.c (mono_image_build_metadata): Make this public,
8935         protect it against being called multiple times, don't create
8936         resources and don't build the compressed metadata here.
8937         (mono_image_create_pefile): Do this here.
8938
8939         * icall.c
8940         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8941
8942 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8943
8944         * socket-io.c: fixed bug #36322.
8945
8946 2003-02-06  Piers Haken <piersh@friskit.com>
8947
8948         * appdomain.[ch]:
8949         * class.h:
8950         * debug-mono-symfile.c:
8951         * icall.c:
8952         * loader.c:
8953         * mono-config.c:
8954         * monosn.c:
8955         * reflection.c:
8956         * socket-io.c: warning cleanups
8957
8958 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8959
8960         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8961         function. works like remoting invoke, but does a check for the Proxy first.
8962
8963 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8964
8965         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8966
8967 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8968
8969         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8970         array of pointers.
8971         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8972         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8973
8974         * object.c (mono_store_remote_field_new): used by the new jit
8975         instead of mono_store_remote_field
8976         (mono_load_remote_field_new): used by the new jit
8977         instead of mono_load_remote_field
8978
8979 2003-02-05  Patrik Torstensson
8980
8981         * appdomain.c: changed unload to take the domain id instead
8982         of domain
8983         
8984         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8985
8986
8987 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8988
8989         * appdomain.c: don't look for assemblies in ApplicationBase if
8990         PrivateBinPathProbe is set.
8991
8992 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8993
8994         * object.c: make the first argument in main_args contain the absolute
8995         path to the assembly. Fixes bug #37511.
8996
8997 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8998
8999         * icall.c: get correct UTC offset for countries not using daylight
9000         time saving. Fixes bug #30030.
9001
9002 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9003
9004         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
9005         and 1 are the family).
9006
9007 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
9008
9009         * icall.c (ves_icall_InternalExecute): removed wrong assertion
9010
9011         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
9012
9013 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
9014
9015         * reflection.c: added support for SignatureHelper tokens, which is
9016         needed by the Calli opcode.
9017
9018         * reflection.h: track changes to SignatureHelper class.
9019
9020         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
9021
9022 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9023
9024         * appdomain.c: fixed loading assemblies from PrivateBinPath.
9025
9026 2003-02-03  Patrik Torstensson
9027         * appdomain.[c|h], domain.c : 
9028          - Added support for getting a domain via domain id
9029          - Support for setting and getting domain from System.AppDomain 
9030            (used in cross appdomain channel)
9031          - Added support for get/set for a MonoAppContext on a thread 
9032            (Context class in System.Runtime.Remoting.Contexts),
9033          - Removed hack in Get/SetData and ExecuteAssembly.
9034         
9035         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
9036         the managed world to get control when a proxy is created.
9037
9038         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
9039         
9040 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
9041
9042         * icall.c
9043         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9044         Populate the codebase field as well.
9045
9046 2003-02-02  Martin Baulig  <martin@ximian.com>
9047
9048         * debug-mono-symfile.c
9049         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
9050         (mono_debug_symfile_add_method): Allow interncalls.
9051
9052 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9053
9054         * icall.c: throw parse exception if strtod fails or the string is empty.
9055
9056 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
9057
9058         * marshal.c: handle object type separately from defined
9059         class types.
9060
9061 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
9062
9063         * marshal.c: handle NATIVE_LPSTR for strings when it's
9064         explicitly specified.
9065
9066 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
9067
9068         * reflection.c, reflection.h, icall.c: setup the reflection
9069         handle cache for ModuleBuilders and AssemblyBuilders.
9070
9071 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
9072
9073         * reflection.c (reflection_methodbuilder_to_mono_method): set
9074         pinvoke flag
9075
9076 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9077
9078         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
9079
9080 2003-01-29  Dick Porter  <dick@ximian.com>
9081
9082         * threads.c: No need for the fake_thread kludge now that Thread
9083         doesn't run a class constructor
9084         
9085 2003-01-29  Dick Porter  <dick@ximian.com>
9086
9087         * threads.c: Use g_direct_hash instead of the rather bogus
9088         g_int_hash
9089
9090 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
9091
9092         * marshal.c (mono_marshal_get_native_wrapper): add check for null
9093         (fix pinvoke12.exe)
9094         (mono_marshal_get_struct_to_ptr): generate valid IL code
9095         (mono_marshal_get_ptr_to_struct): generate valid IL code
9096         (*): correctly set sig->pinvoke, we need to memdup the signature
9097         to do that
9098
9099 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
9100
9101         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
9102         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
9103
9104 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9105
9106         * profiler.c: provide more callers information.
9107
9108 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
9109
9110         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
9111
9112         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
9113
9114         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
9115
9116 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9117
9118         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
9119         exception instead of going into an infinite loop on dates which it 
9120         can't yet handle.
9121
9122         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
9123         out-of-range exception if needed.
9124
9125         * class.c (mono_class_setup_vtable): allow a virtual method to provide
9126         an implementation for an interface method and to override an inherited
9127         method at the same time. 
9128         Imagine a scenario when a virtual method is used to override a
9129         virtual abstract method in a parent class, and this same method 
9130         provides an implementation for an method inherited from an interface. 
9131         In this case, the interface resolution code will set im->slot, which 
9132         means that the virtual method override pass will skip this method 
9133         which means a pointer to the abstract method inherited from the parent
9134         will remain in the vtable of this non-abstract class.
9135
9136         * class.c: (mono_class_setup_vtable): continue search for a real 
9137         method if only an abstract method is found.     
9138
9139 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9140
9141         * reflection.c: add size to encoding for ByValStr and ByValArray
9142         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
9143
9144 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9145
9146         * class.c (mono_class_setup_vtable): pass the override info as an
9147         argument.
9148
9149         * class.c (mono_class_setup_vtable): set the slot of overriding methods
9150         correctly.
9151         
9152         * reflection.c (ensure_runtime_vtable); add support for method 
9153         overrides.
9154         
9155 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9156
9157         * reflection.c (resolution_scope_from_image): Hack to work to work with
9158         dynamic assemblies.
9159
9160         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
9161         added a 'force_ref' argument to force this function to allways return 
9162         a TypeRef. This is needed by mono_image_get_memberref_token ().
9163         
9164 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9165
9166         * reflection.c (mono_image_get_type_info): interfaces really don't have
9167         a parent.
9168
9169         * reflection.c (mono_image_basic_init): fill out missing fields of
9170         image structure.
9171
9172         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9173         dynamic assemblies. This is required so dynamic assemblies show up in
9174         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9175         Type::GetType() etc. This is consistent with MS behaviour.
9176
9177         * image.c image.h reflection.c: add newly created classes to the name 
9178         cache so mono_class_get () will find them.      
9179
9180 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9181
9182         First part of changes to get IKVM.NET running under mono.
9183         
9184         * appdomain.h, appdomain.c: added new function 
9185         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9186         This function will call AppDomain::DoTypeResolve to do the actual work.
9187
9188         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9189         moved existing code dealing with dynamic tokens to a new function 
9190         called mono_reflection_lookup_dynamic_token (). This function will 
9191         raise TypeResolve events when appropriate. Since reflection.c is not 
9192         part of libmetadata, a new hook function called 
9193         mono_lookup_dynamic_token() is added to class.c which will call this.
9194
9195         * assembly.h assembly.c: make the invoke_load_hook function public,
9196         so it can be called for dynamic assemblies.
9197
9198         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9199
9200         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9201         type isn't found.
9202
9203         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9204         MonoGHashTable, since it contains pointers to objects which the GC 
9205         needs to track.
9206
9207         * assembly.c (search_loaded): remove unused variable.
9208         
9209 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9210
9211         * object.c: fixed issue exposed by gcc-generated IL programs
9212         that use RVA data for pointers.
9213
9214 2003-01-25  Martin Baulig  <martin@ximian.com>
9215
9216         * threads.c (start_wrapper): Moved the initialization of
9217         `start_func' above the mono_new_thread_init() call to which we
9218         pass it as argument.
9219
9220 2003-01-24  Martin Baulig  <martin@ximian.com>
9221
9222         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9223         the MonoThread pointer.
9224
9225 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9226
9227         * icall.c: Rename `PowImpl' to Pow.
9228
9229 2003-01-23  Dick Porter  <dick@ximian.com>
9230
9231         * threads.c (start_wrapper): Create a Thread object if needed, so
9232         the Main() thread can do the class initialisation in a subthread
9233         that has been set up to allow managed code execution.
9234
9235         Pass the thread ID instead of the MonoThread pointer to the thread
9236         start and attach callbacks.  This change is required, because the
9237         jit thread start callback must be called _before_ the Thread
9238         object can be created.
9239         
9240         (mono_thread_init): Removed much object creation code that is no
9241         longer needed.  No managed code is called from here now.
9242
9243         * object.c (mono_runtime_exec_managed_code): Create a subthread
9244         for Main, and call back to the runtime to use it.
9245         Set the exit code when Main exits.
9246
9247         * gc.c: Make sure domain finalisation happens in a subthread.
9248         Re-enable threaded GC, fixing bug 31333 (again).
9249
9250         * environment.c: System.Environment internall calls (so far just
9251         ExitCode is here, the others are still in icall.c)
9252
9253         * appdomain.c (mono_runtime_cleanup): All threads running managed
9254         code should have finished before mono_runtime_cleanup() is
9255         reached, so no need to clean up threads.
9256
9257 2003-01-22  Martin Baulig  <martin@ximian.com>
9258
9259         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9260         `gpointer func' arguments.      
9261         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9262         but added `MonoThread *thread' argument.
9263         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9264
9265         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9266         and pass it to the mono_thread_start_cb callback.
9267         (mono_install_thread_callbacks): New public function to install a
9268         set of callbacks which are set by the debugger.
9269         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9270
9271 2003-01-22  Martin Baulig  <martin@ximian.com>
9272
9273         * Makefile.am: Install debug-mono-symfile.h.
9274
9275 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9276
9277         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9278
9279 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9280
9281         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9282         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9283         (mono_array_class_get): correctly set access levels of arrays
9284
9285 2003-01-20      Patrik Torstensson
9286         * image.h (MonoAssemblyName): changed major, minor, build, revision
9287         from signed to unsigned.
9288
9289 2003-01-20  sean kasun <skasun@azstarnet.com>
9290
9291         * reflection.c (load_cattr_value): Now this handles
9292         MONO_TYPE_SZARRAY.  Fixes bug #35629
9293
9294 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9295
9296         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9297         integer value
9298
9299 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9300
9301         * decimal.c: fixed bug #26056.
9302
9303 2003-01-17  Martin Baulig  <martin@ximian.com>
9304
9305         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9306
9307 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9308
9309         * exception.[ch]:
9310         (mono_get_exception_type_initialization): new function.
9311
9312         * object.c: throw a TypeInitializationException when an exception is
9313         thrown invoking the class constructor.
9314
9315 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9316
9317         * reflection.c: fixed attribute reading.
9318
9319 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9320
9321         * icall.c:
9322         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9323         provided, look for the type in the calling assembly and then in
9324         mscorlib; if the assembly name is provided, only try that one.
9325
9326 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9327
9328         * object.c: register the vtable before there is a chance it's
9329         queried again recursively.
9330
9331 2003-01-13  Duncan Mak  <duncan@ximian.com>
9332
9333         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9334         gc-internal.h. 
9335         
9336 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9337
9338         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9339
9340 2003-01-11  Martin Baulig  <martin@ximian.com>
9341
9342         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9343         this to 20 for the release.
9344
9345 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9346
9347         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9348
9349         * loader.c (mono_method_get_marshal_info): bug fix
9350
9351         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9352         structures with explicit layout
9353
9354 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9355
9356         * profiler.c: made the output more readable (and sorted). 
9357         Added caller information for the allocation profiler.
9358
9359 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9360
9361         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9362
9363 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9364
9365         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9366         to get value types.
9367         
9368 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9369
9370         * object.c, profiler.h, profiler.c, profiler-private.h:
9371         Added object allocation profiler.
9372
9373 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9374
9375         * reflection.h, reflection.c: handle global methods.
9376         Compress blob entries.
9377
9378 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9379
9380         * marshal.c: fix compilation.
9381
9382 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9383
9384         * loader.c (mono_method_get_marshal_info): impl.
9385
9386         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9387
9388 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9389
9390         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9391         for reference types.
9392
9393 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9394
9395         * loader.c: fixed off by one error in loaded parameter names.
9396
9397 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9398
9399         * marshal.c (mono_marshal_get_icall_wrapper): like
9400         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9401         instead of a MonoMethod.
9402
9403 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9404
9405         * decimal.c: fixed bug #36537.
9406
9407 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9408
9409         * marshal.c: throw a missing method exception if a
9410         P/Invoke method is not found.
9411
9412 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9413
9414         * icall.c: allow a null this for constructors.
9415
9416 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9417
9418         * icall.c: raise the proper exceptions if the arguments to the
9419         internal Invoke are incorrect.
9420
9421 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9422
9423         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9424
9425 2003-01-03  Martin Baulig  <martin@ximian.com>
9426
9427         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9428
9429 2002-12-31  Martin Baulig  <martin@ximian.com>
9430
9431         * debug-mono-symfile.c: Completely rewrote the type section.
9432         Instead of using individual malloc()ed fields, we use one big
9433         continuous memory area and offsets into this area.
9434         See the comments in the source code for details.
9435
9436 2002-12-30  Martin Baulig  <martin@ximian.com>
9437
9438         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9439
9440 2002-12-30  Martin Baulig  <martin@ximian.com>
9441
9442         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9443         line number table in this data blob instead of using an external
9444         pointer.
9445
9446 2002-12-28  Martin Baulig  <martin@ximian.com>
9447
9448         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9449
9450 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9451
9452         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9453         as a boxed return type.
9454
9455 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9456
9457         * appdomain.c
9458         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9459         g_build_filename to properly get separators on the filename created.
9460
9461         * object.h: Small change, introduce MonoMarshalByRefObject to
9462         track the layout of that structure in the C# universe as we make
9463         changes there.
9464
9465 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9466
9467         * object.c: removed assert to allow static fields on interfaces.
9468         * loader.c: a TypeSpec may be used for any type, not just arrays.
9469
9470 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9471
9472         * class.c, class.h: added mono_class_array_element_size ().
9473         Ignore static methods in interfaces.
9474
9475 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9476
9477         * threads.c: fixed the build under cygwin.
9478
9479 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9480
9481         * reflection.c: handle nullref constants. Allocate keys for
9482         reflection handles with the GC.
9483
9484 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9485
9486         * threads.c, threads.h: added mono_thread_get_abort_signal()
9487         to get a suitable signal for thread abort.
9488
9489 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9490
9491         * metadata.c: fix handling of ExportedType table.
9492
9493 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9494
9495         * icall.c: added WriteWindowsDebugString internal call.
9496
9497 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9498
9499         * reflection.h: added fields to match C# implementation.
9500
9501 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9502
9503         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9504
9505 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9506
9507         * gc.h, gc-internal.h: Rename header for GC internal calls to
9508         gc-internal.h from gc.h as to not clash with Boehm GC having its
9509         header installed as <gc.h> in outside include paths.
9510         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9511         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9512
9513 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9514
9515         * icall.c: assign minor, build and revision in FillName.
9516
9517 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9518
9519         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9520         Added support for running code generated by Reflection.Emit.
9521
9522 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9523
9524         * appdomain.c: check for NULL argument in LoadFrom.
9525
9526 2002-12-10  Dick Porter  <dick@ximian.com>
9527
9528         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9529
9530 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9531
9532         * appdomain.c: fix buglet when building exe file name.  Handle full
9533         assembly name (needed after latest changes to AssemblyName).
9534         * image.c:
9535         (mono_image_close): free some hashtables.
9536
9537 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9538
9539         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9540         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9541         on some systems (redhat 7.3) 
9542
9543 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9544
9545         * threads.c: delete the critical section of a sync block,
9546         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9547
9548 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9549
9550         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9551
9552 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9553
9554         * appdomain.[ch]: handle the assembly preload event to try loading the
9555         assemblies using the paths we have in the current domain.
9556
9557         * assembly.[ch]: created an assembly preload hook that is called to try
9558         loading the assembly by other means that the ones provided here.
9559
9560         * domain.c: initialize the domain search path.
9561
9562         From now on, assemblies (TODO: except corlib and System) are loaded
9563         according to these rules when using mono_assembly_load ():
9564
9565                 1. It tries to load the assembly from the ApplicationBase
9566                 of the current domain appending .dll and .exe (TODO: have to
9567                 try loading from name/name.dll and name/name.exe).
9568
9569                 2. It tries the search path specified in PrivateBinPath for the
9570                 current domain (if any).
9571
9572                 3. Previous behavior.
9573
9574 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9575
9576         * icall.c: implemented GetInterfaceMap() related icall.
9577         * domain.c, loader.h: load MethodInfo in mono_defaults.
9578
9579 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9580
9581         * gc.c: disable the finalizer thread for now, untill all the issues
9582         with it are resolved.
9583
9584 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9585
9586         * string-icalls.c: handle embedded nulls in string ctor when the
9587         length is specified.
9588
9589 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9590
9591         * class.c: look for explicit interface implementation in parent
9592         classes, too.
9593
9594 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9595
9596         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9597
9598 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9599
9600         * gc.c: protect handles with a critical section.
9601
9602 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9603
9604         * icall.c:
9605         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9606         parameters. If no assembly specified, try getting the type from all
9607         the assemblies in the current domain, else, load the assembly and get
9608         the type from it.
9609
9610 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9611
9612         * marshal.c: applied patch from Aleksey Demakov that fixes
9613         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9614
9615 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9616
9617         * icall.c: fixed get_location.
9618
9619 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9620
9621         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9622         declarations to make it work with older gcc. 
9623
9624         * loader.c (mono_get_method): set signature->pinvoke for native calls
9625
9626 2002-11-20  Dick Porter  <dick@ximian.com>
9627
9628         * threads.c (mono_thread_init): Set the main thread's handle
9629
9630 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9631
9632         * gc.c: allow compilation without GC support. Changed to match the
9633         mono coding style.
9634
9635 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9636
9637         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9638
9639 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9640
9641         * reflection.c: set a public key token on the core assemblies.
9642
9643 2002-11-18  Dick Porter  <dick@ximian.com>
9644
9645         * threads.c: Split out some thread initialisation so that other
9646         files can set the start callback function.
9647
9648         * gc.c: Run finalisers in a separate thread, to avoid stack
9649         overflow.  Fixes bug 31333.
9650
9651         * appdomain.c: Set up GC finalisation thread.
9652
9653         * reflection.c: 
9654         * object.c: 
9655         * domain.c: Use gc.h macros for GC_malloc
9656         
9657 2002-11-15  Dick Porter  <dick@ximian.com>
9658
9659         * threadpool.c: 
9660         * threads.c:
9661         * appdomain.c: Removed mono_runtime_init_with_attach(),
9662         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9663         merging the extra parameter with the existing function.  Removed
9664         unneeded code in mono_thread_attach().
9665
9666 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9667
9668         * image.c (mono_image_loaded_by_guid): a method to get loaded
9669         images by guid. 
9670         (load_metadata_ptrs): we store the guid as string.
9671
9672 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9673
9674         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9675
9676         * metadata.c (mono_guid_to_string): imported method form Zoltan
9677         Varga (slightly modified)
9678
9679         * assembly.c (mono_assembly_open): load precompiled code
9680
9681         * loader.h (MonoMethod): we store the method token for use in the
9682         aot compiler. 
9683
9684 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9685
9686         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9687         the hook function called when an assembly is loaded.
9688         
9689         * domain.c: Modified file.
9690         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9691
9692         Fixes bug #33196.
9693
9694 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9695
9696         * reflection.c: Map PEFileKind to the value expected by the WinNT
9697         image loader. 
9698
9699 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9700
9701         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9702         Read until the buffer is filled completely.
9703
9704 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9705
9706         * icall.c: implemented MonoType.InternalGetEvent ().
9707
9708 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9709
9710         * appdomain.c: implemented InitAppDomainSetup. Delayed
9711         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9712         the entry_assembly.
9713
9714         * assembly.c: base_dir is now an absolute path ending with
9715         G_DIR_SEPARATOR.
9716
9717         * icall.c: modified get_location according to the above changes.
9718
9719         * object.c: init AppDomain.SetupInformation for the default domain after
9720         we have the entry assembly.
9721
9722         * domain.c: when unloading a domain, setup = NULL.
9723
9724 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9725
9726         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9727
9728 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9729
9730         * object.h, object.c: introduced mono_object_get_virtual_method ()
9731         to lookup the method invoked on an object when a callvirt is done on
9732         a method.
9733         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9734
9735 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9736
9737         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9738         current domain when loaded an assembly and failed to load it.
9739
9740         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9741
9742 2002-10-31  Dick Porter  <dick@ximian.com>
9743
9744         * icall.c: 
9745         * file-io.h: 
9746         * file-io.c: Return the error status in a parameter, as the
9747         GetLastError() value has long since been blown away if we try and
9748         look it up in a subsequent internal call invocation.  Delete the
9749         GetLastError() internal call, because it's useless.
9750
9751 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9752
9753         * class.[ch]: added cast_class to fix bug 29517
9754
9755 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9756
9757         * marshal.c: create valid IL code in the filter clause:
9758         the new JIT is less forgiving:-)
9759
9760 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9761
9762         * icall.c: removed get_property internal call.
9763
9764 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9765
9766         * appdomain.h domain.c: Added an ID to appdomains.
9767         
9768         * threads.c threads.h icall.c: Implement icall
9769         Thread:GetDomainID(), and remove unused icall 
9770         CurrentThreadDomain_internal.
9771
9772 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9773
9774         * icall.c: Don't recurse through the base types in GetConstructor.
9775         Fixes bug #32063. 
9776
9777 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9778
9779         * mempool.h, mempool.c: added mono_mempool_empty() and
9780         mono_mempool_stats().
9781
9782 2002-10-23  Dick Porter  <dick@ximian.com>
9783
9784         * file-io.c: 
9785         * file-io.h: 
9786         * icall.c: Added MonoIO.GetFileType internal call
9787
9788 2002-10-17  Dick Porter  <dick@ximian.com>
9789
9790         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9791         delegate semaphore before waiting for all threads to finish,
9792         because new threads can also call async delegates.  Fixes bug
9793         32004.
9794
9795         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9796         of 3 seconds, in case another async job is queued.  (This part is
9797         needed because the bug fix reintroduced the 3s exit lag.)  This
9798         makes the mono_runtime_shutdown flag superfluous.
9799
9800 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9801
9802         * reflection.c: include ehader size in method section headers.
9803         Really check for suplicated modules entries.
9804
9805 2002-10-17  Martin Baulig  <martin@gnome.org>
9806
9807         * debug-mono-symfile.c: Added back support for locals.
9808
9809 2002-10-14  Martin Baulig  <martin@gnome.org>
9810
9811         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9812         MONO_TYPE_VOID.
9813
9814 2002-10-14  Martin Baulig  <martin@gnome.org>
9815
9816         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9817         mono_class_get() instead of looking in the class cache. 
9818
9819 2002-10-13  Martin Baulig  <martin@gnome.org>
9820
9821         * debug-mono-symfile.c: Set version number to 28, include the
9822         signature in method names.
9823
9824 2002-10-13  Martin Baulig  <martin@gnome.org>
9825
9826         * debug-mono-symfile.h: Set version number to 27.
9827
9828 2002-10-11  Martin Baulig  <martin@gnome.org>
9829
9830         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9831
9832 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9833
9834         * metadata.c, metadata.h: added helper function to allocate signatures.
9835
9836 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9837
9838         * icall.c: added internal call to get the location of machine.config.
9839
9840 2002-10-08  Martin Baulig  <martin@gnome.org>
9841
9842         * debug-mono-symfile.c: Ignore classes with a pending init for the
9843         moment.
9844
9845 2002-10-03  Dick Porter  <dick@ximian.com>
9846
9847         * threads.c: Freebsd pthread_t is a pointer
9848
9849 2002-10-03  Dick Porter  <dick@ximian.com>
9850
9851         * socket-io.c: Implemented GetHostName_internal
9852
9853 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9854
9855         * mono-config.c:
9856         (mono_config_parse_file): don't leak the text.
9857
9858 2002-10-02  Martin Baulig  <martin@gnome.org>
9859
9860         * debug-mono-symfile.c: Added support for methods.
9861
9862 2002-10-01  Martin Baulig  <martin@gnome.org>
9863
9864         * debug-mono-symfile.c: Don't emit methods and line numbers for
9865         the dynamic symbol file, just write the type table.  We can easily
9866         have an external helper program which creates a symbol file for an
9867         IL file.        
9868
9869 2002-10-01  Dick Porter  <dick@ximian.com>
9870
9871         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9872         Only add the handle to the cleanup array when we're about to
9873         launch the thread.  Bug 31425 deadlocked when the test was run on
9874         mono under w32.
9875
9876 2002-10-01  Martin Baulig  <martin@gnome.org>
9877
9878         * debug-mono-symfile.c: Added support for properties.
9879
9880 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9881
9882         * reflection.c: unaligned store fix from Mark Crichton
9883         <crichton@gimp.org>.
9884
9885 2002-09-27  Martin Baulig  <martin@gnome.org>
9886
9887         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9888         New interncall.
9889
9890 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9891
9892         * assembly.h, assembly.c: use a sane API to hook into the assembly
9893         loading process instead of a useless special-purpouse hack
9894         (ngen needs a hook, too, for example).
9895
9896 2002-09-27  Dick Porter  <dick@ximian.com>
9897
9898         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9899         io-layer can set up some process handle info.  Not needed on w32,
9900         but doesn't hurt either.
9901
9902         * process.c: Pass the program name in the second parameter to
9903         CreateProcess, so the path is searched.  Include the working
9904         directory. Implemented process name, process enumeration, and some
9905         process detail internal calls.
9906         
9907         * icall.c: Added internal calls for process lookup, and some
9908         process details
9909
9910 2002-09-26  Martin Baulig  <martin@gnome.org>
9911
9912         * assembly.c (mono_install_open_assembly_hook): New global
9913         function to install a function to be invoked each time a new
9914         assembly is loaded.
9915         (mono_assembly_open): Run this callback function if set.
9916
9917         * debug-mono-symfile.c: Put back line numbers for the dynamic
9918         symbol file and also record the .il file as source file.  This
9919         allows us to install the temporary symbol file as `file.dbg' just
9920         like a compiler-generated one.
9921
9922 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9923
9924         * Corrected typo in gc.c (BOHEM vs BOEHM).
9925
9926 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9927
9928         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9929         GetProperties. Also avoid calling g_slist_length in GetProperties and
9930         GetMethods.
9931
9932 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9933
9934         * reflection.c: avoid unaligned stores (bug spotted by
9935         Mark Crichton  <crichton@gimp.org>).
9936
9937 2002-09-25  Martin Baulig  <martin@gnome.org>
9938
9939         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9940         instead of guint64 for addresses and added prologue/epilogue info.
9941
9942 2002-09-25  Martin Baulig  <martin@gnome.org>
9943
9944         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9945         store line number info.  For the dynamic symbol file, we only need
9946         to provide the JIT generated dynamic line number info for the dynamic
9947         symbol file.
9948
9949 2002-09-25  Martin Baulig  <martin@gnome.org>
9950
9951         * debug-mono-symfile.h: Incremented version number.
9952
9953 2002-09-24  Martin Baulig  <martin@gnome.org>
9954
9955         * class.c (mono_debugger_class_init_func): New global function
9956         pointer variable.
9957         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9958         call it.
9959
9960         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9961         function.  This is called via the mono_debugger_class_init_func
9962         hook to add all types to the dynamic type table.
9963         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9964         from its metadata token.
9965
9966         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9967         New interncall for the debugger.
9968
9969 2002-09-24  Nick Drochak <ndrochak@gol.com>
9970
9971         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9972         before using it in case it is null.
9973         
9974 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9975
9976         * metadata.c: allow custom modifiers in local var signatures
9977         (bug spotted by Zoltan Varga).
9978
9979 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9980
9981         * class.c: deal with the <Module> class that may have a NULL vtable.
9982         Eliminate warnings.
9983
9984 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9985
9986         * image.c, image.h: more strong name helpers.
9987         * monosn.c: more work: convert pem keys to cryptoapi format.
9988
9989 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
9990
9991         * string-icalls.c: speedup IndexOf.
9992
9993 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
9994
9995         * icall.c: updates from Zoltan.2.Varga@nokia.com.
9996
9997 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
9998
9999         * icall.c: cleanup: use mono_object_domain ().
10000
10001 2002-09-23  Martin Baulig  <martin@gnome.org>
10002
10003         * debug-mono-symfile.c: Improved type support.
10004
10005 2002-09-22  Martin Baulig  <martin@gnome.org>
10006
10007         * debug-mono-symfile.c: Added support for reference types and strings.
10008
10009 2002-09-22  Martin Baulig  <martin@gnome.org>
10010
10011         * debug-mono-symfile.c: Started to work on the type table.
10012
10013 2002-09-21  Martin Baulig  <martin@gnome.org>
10014
10015         * debug-mono-symfile.c: Largely reworked the symbol table format.
10016         The symbol table is now incrementally updated each time a new
10017         method is added.  We're now also using our own magic and version
10018         so that you don't need to recompile all your classes if the
10019         dynamic table changes.
10020         (mono_debug_update_mono_symbol_file): Removed.
10021         (mono_debug_symfile_add_method): New function to add a method.
10022
10023 2002-09-21  Martin Baulig  <martin@gnome.org>
10024
10025         * icall.c
10026         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
10027         New interncall.
10028
10029         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
10030         New interncall to get a method from its metadata token.
10031
10032 2002-09-21  Martin Baulig  <martin@gnome.org>
10033
10034         * debug-mono-symfile.c: Create type table.
10035
10036 2002-09-20  Martin Baulig  <martin@gnome.org>
10037
10038         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
10039
10040 2002-09-20  Martin Baulig  <martin@gnome.org>
10041
10042         * debug-mono-symfile.c: Provide information about params and locals.
10043
10044 2002-09-20  Martin Baulig  <martin@gnome.org>
10045
10046         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
10047         New interncall.
10048
10049         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
10050         interncall to get a method from its metadata token.
10051
10052 2002-09-20  Martin Baulig  <martin@gnome.org>
10053
10054         * debug-mono-symfile.c: Added a few checks for method->header
10055         being non-NULL.  This should never happen, but for the moment
10056         let's use a g_warning() rather than a g_assert().
10057
10058 2002-09-19  Mark Crichton  <crichton@gimp.org>
10059
10060         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
10061         even if support for it isn't present.  Added an #ifdef to fix this.
10062
10063         * socket-io.c: Added checks back for Solaris support.
10064
10065 2002-09-19  Martin Baulig  <martin@gnome.org>
10066
10067         * debug-mono-symfile.c (read_string, write_string): Reflect latest
10068         changes in the symbol file format.
10069
10070 2002-09-18  Martin Baulig  <martin@gnome.org>
10071
10072         * debug-mono-symfile.c: Set version number to 21.
10073
10074 2002-09-18  Dick Porter  <dick@ximian.com>
10075
10076         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
10077         on netbsd.  Fixes bug 30051.
10078
10079 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10080
10081         * reflection.c:
10082         (set_version_from_string): little fix.
10083
10084 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10085
10086         * monosn.c, Makefile.am: added strong name utility.
10087         * reflection.h, reflection.c: implemented delayed signing,
10088         locale, version and hash id assembly attributes.
10089
10090 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10091
10092         * loader.c, metadata.c: load param attributes in signatures.
10093
10094 2002-09-16  Martin Baulig  <martin@gnome.org>
10095
10096         * debug-mono-symfile.c: Added string table with all method names.
10097
10098 2002-09-14  Martin Baulig  <martin@gnome.org>
10099
10100         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
10101         fast method lookup.
10102
10103 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10104
10105         * reflection.c: record the public key token of referenced assemblies.
10106
10107 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10108
10109         * image.c, image.h: added functions to get the strong name and the
10110         public key of an assembly.
10111         * pedump.c: use them.
10112
10113 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
10114
10115         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
10116
10117 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
10118
10119         * marshal.c (mono_marshal_get_managed_wrapper): Added
10120         MONO_TYPE_BOOLEAN 
10121
10122 2002-09-11  Martin Baulig  <martin@gnome.org>
10123
10124         * gc.c: Call GC_unregister_disappearing_link() on all links when
10125         finalizing them, this is necessary to aviod a crash in boehm's
10126         finalize handler.
10127
10128 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10129
10130         * gc.c: handle GetTarget for finalized objects spotted and fixed by
10131         nick@chemlab.org.
10132
10133 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10134
10135         * icall.c: implemented MonoType::Module.
10136         * reflection.c, reflection.h: mono_module_get_object () from
10137         Tomi Pakarinen <tomi.pakarinen@welho.com>.
10138
10139 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10140
10141         * icall.c: ignore overridden methods in GetMethods ().
10142         Fix for FieldInfo::SetValue().
10143         * object.c: handle float/double in runtime invoke.
10144
10145 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10146
10147         * object.c: allow a constructor to be called again on an object.
10148
10149 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10150
10151         * class.h, class.c: move field layout code to it's own function and
10152         export it. Get an interface id earlier. Move fields in MonoClass
10153         so they are more cache friendly and align the bitfields.
10154         * loader.c: temporary handle get_param_names() for a runtime method.
10155         * reflection.c, reflection.h: more code to handle runtime creation of
10156         types.
10157
10158 2002-09-09  Martin Baulig  <martin@gnome.org>
10159
10160         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
10161         signature with the pinvoke field being set for the actual call.
10162
10163 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10164
10165         * icall.c: removed some unused icalls. Start of map of glib charsets
10166         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
10167
10168 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10169
10170         * debug-helpers.c: break infinite loop (found and fixed by
10171         Holger Arnold <harnold@gmx.de>).
10172
10173 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10174
10175         * icall.c: target may be null in create_delegate.
10176
10177 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10178
10179         * marshal.c: handle a boolean return type.
10180
10181 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10182
10183         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10184
10185 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10186
10187         * gc.c: fix weakreferences.
10188
10189 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10190
10191         * icall.c: added icall to get default codepage.
10192
10193 2002-09-03  Dick Porter  <dick@ximian.com>
10194
10195         * threads.h: 
10196         * threads.c: Use MonoThread instead of MonoObject where
10197         apropriate.
10198
10199         Store running thread objects in a hash table, so that we have all
10200         the info to hand when waiting for them to finish
10201         (means we don't need OpenThread() any more, so mingw builds should
10202         be fully functional again.)
10203
10204         * verify.c:
10205         * object.h: Added thread ID to MonoThread
10206
10207 2002-09-03  Martin Baulig  <martin@gnome.org>
10208
10209         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10210
10211 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10212
10213         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10214
10215 2002-09-03  Martin Baulig  <martin@gnome.org>
10216
10217         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10218         argument to store the end address of the disassembled instruction.
10219
10220         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10221         here from debug-symfile.h.
10222         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10223         JIT into this struct.
10224         (MonoSymbolFile): Added `char *image_file' field.
10225         (MonoDebugGetMethodFunc): Removed.
10226         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10227         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10228         (mono_debug_find_method): New method.
10229
10230         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10231         create a full symbol file.
10232         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10233         and static symbol files.
10234         (mono_debug_find_method): The symbol file keeps an internal method hash,
10235         call this to get a MonoDebugMethodInfo from a MonoMethod.
10236
10237         * debug-symfile.[ch]: Removed.
10238
10239 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10240
10241         * image.c (do_mono_image_open): Remove linker version check.
10242
10243 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10244
10245         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10246         wrappers for instance methods.
10247         
10248 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10249
10250         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10251
10252 2002-08-28  Dick Porter  <dick@ximian.com>
10253
10254         * Makefile.am: Export HOST_CC for w32 builds
10255
10256 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10257
10258         * file-io.c process.c: MonoString are null terminated, no
10259         need for mono_string_to_utf16() anymore.
10260
10261 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10262
10263         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10264
10265 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10266
10267         * icall.c, reflection.h: speedup System.MonoType.
10268
10269 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10270
10271         * reflection.c: allow null as the value of a string argument in
10272         custom attributes constructors.
10273
10274 2002-08-27  Martin Baulig  <martin@gnome.org>
10275
10276         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10277         `trampoline_address' field.
10278
10279 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10280
10281         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10282         check (fixes bug #29486) 
10283
10284 2002-08-27  Martin Baulig  <martin@gnome.org>
10285
10286         * debug-mono-symfile.c: Changed the file format in a way that allows us
10287         open it read-only and to use a specially malloced area for all the
10288         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10289         debugging IL code and there is no MCS generated symbol file for it.
10290
10291 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10292
10293         * object.c: added a define for a good string and array
10294         creation speedup (not enabled by default because we need to deal with
10295         the synch stuff).
10296
10297 2002-08-26  Martin Baulig  <martin@gnome.org>
10298
10299         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10300         function to create a dynamic symbol file.  This is used by the
10301         debugger to create a symbol file for IL code on-the-fly.
10302
10303 2002-08-26  Martin Baulig  <martin@gnome.org>
10304
10305         * loader.c (mono_lookup_pinvoke_call): Include the error message
10306         from g_module_error() in the error message.
10307
10308 2002-08-24  Martin Baulig  <martin@gnome.org>
10309
10310         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10311         function to update the symbol file.  The symbol file is mmap()ed
10312         writable, but private.  This allows us to install the symbol file
10313         together with the assembly.
10314
10315 2002-08-24  Martin Baulig  <martin@gnome.org>
10316
10317         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10318         but they can read the new symbol file format which mcs is now creating.
10319
10320         * debug-symfile.c (mono_debug_find_source_location): Moved to
10321         debug-mono-symfile.c; this is now operating on the new symbol file.
10322
10323 2002-08-23  Martin Baulig  <martin@gnome.org>
10324
10325         * debug-helpers.c (mono_method_desc_from_method): New function to get
10326         a MonoMethodDesc from a MonoMethod.
10327
10328 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10329
10330         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10331         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10332
10333 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10334
10335         * string-icalls.[ch]: make helper methods static.
10336
10337 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10338
10339         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10340         types to it and to SetValueInternal.
10341
10342         * object.c: Moved handle_enum label to its proper place. This was the
10343         f... bug! ;-)
10344
10345         This time i compiled mcs and gtk-sharp and they both work.
10346
10347 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10348
10349         * icall.c: reverted partially my previous patch until 
10350         object.c:set_value handles enums correcly.
10351
10352 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10353
10354         * icall.c:
10355         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10356         (ves_icall_System_Environment_get_MachineName): removed warning when
10357         compiling under cygwin.
10358
10359 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10360
10361         * object.c: fixed field_get_value() for reference types.
10362
10363 2002-08-22  Dick Porter  <dick@ximian.com>
10364
10365         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10366         Don't free a buffer while it's still needed.  Patch from Jonathan
10367         Liger <Jonathan.liger@wanadoo.fr>
10368
10369 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10370
10371         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10372         internal call.
10373
10374 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10375
10376         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10377         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10378
10379         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10380         we call unmanaged code which throws exceptions.
10381
10382 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10383
10384         * appdomain.h: added per-domain entry_assembly.
10385         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10386         arguments.
10387         * icall.c: Assembly::GetEntryAssembly icall.
10388         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10389         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10390
10391 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10392
10393         * appdomain.h, gc.c: added mono_domain_finalize ().
10394
10395 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10396
10397         * object.c:
10398         (mono_print_unhandled_exception): changed g_warning by g_printerr
10399         because g_log has a 1024 characters limit (yeah, i got a big stack
10400         trace). Don't print exception name, that should be in ToString 
10401         returned string.
10402
10403 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10404
10405         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10406         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10407
10408 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10409
10410         * object.c:
10411         (mono_print_unhandled_exception): after previous commit, i realized
10412         that MS calls ToString on the exception. I changed this function to
10413         do that. This way we get stack_trace for free.
10414
10415 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10416
10417         * object.c:
10418         (mono_print_unhandled_exception): invoke Message property instead of
10419         getting 'message' field from Exception. Don't allocate memory for
10420         'trace' and 'message' if not needed.
10421
10422 2002-08-18  Dick Porter  <dick@ximian.com>
10423
10424         * unicode.c: Fix asserts to match Encoder.cs checks
10425
10426 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10427
10428         * marshal.c: fix unaligned store issue and a few wrong
10429         opcode argument types.
10430
10431 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10432
10433         * icall.c: added GetUninitializedObjectInternal internal call.
10434
10435 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10436
10437         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10438         to the right domain.
10439
10440 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10441
10442         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10443
10444         * class.c (class_compute_field_layout): set blittable to false for Strings
10445
10446         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10447
10448 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10449
10450         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10451         first chunk of code to create types at runtime. Code to
10452         handle ReflectedType/DeclaringType. Make reflection handles
10453         domain specific.
10454
10455 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10456
10457         * class.c: set correct name in arrays.
10458
10459 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10460
10461         * appdomain.c (mono_domain_transfer_object): make it work with
10462         valuetypes. bug fixes.
10463
10464 2002-08-12  Dick Porter  <dick@ximian.com>
10465
10466         * object.h: Rename some parameters to avoid c++ keywords (Patch
10467         from Joseph Wenninger <kde@jowenn.at>)
10468
10469 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10470
10471         * icall.c: added icall to implement Assembly.GetFile*.
10472
10473 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10474
10475         * reflection.h, reflection.c: code to embed managed resources.
10476
10477 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10478
10479         * class.c: move all the type size stuff into
10480         class_compute_field_layout().
10481
10482 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10483
10484         * class.c: ensure enums have always the correct instance size.
10485         * unicode.c: remove wrong assert.
10486
10487 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10488
10489         * assembly.c: fix mem corruption issue.
10490         * image.h, image.c: added mono_image_get_resource () to access
10491         managed resources.
10492         * icall.c: implemented Assembly.EntryPoint property and some
10493         Managed Resources related internalcalls.
10494
10495
10496 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10497
10498         * image.c, image.h: impemented mono_image_get_entry_point ().
10499         * appdomain.c: use mono_image_get_entry_point.
10500
10501 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10502
10503         * reflection.c: support the object type argument when loading
10504         custom attributes.
10505
10506 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10507
10508         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10509         String as return type.
10510
10511 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10512
10513         * reflection.c: fix encoding of named args for custom attrs to match
10514         the ms implementation. Read them back when instantiating custom
10515         attributes.
10516
10517 2002-08-02  Radek Doulik  <rodo@ximian.com>
10518
10519         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10520         by Dietmar as quick fix
10521         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10522         16 as stack size, used on more places as quick fix before Dietmar
10523         will fix it properly
10524
10525 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10526
10527         * object.h, object.c: added accessors for fields and properties.
10528
10529 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10530
10531         * class.c, class.h: made mono_class_get_field_from_name ()
10532         loop on parent types.
10533         Added mono_class_get_property_from_name ().
10534
10535 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10536
10537         * class.c, class.h: move the code to setup the type vtable in its own
10538         function so that it can be reused also for types created at runtime.
10539         Eliminate the "class" identifier from the header file.
10540         * reflection.c: setup the vtable for enums so that we can create
10541         objects for use in SetConstant ().
10542
10543 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10544
10545         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10546         instead of the delegate itself as this pointer (bug #28383)
10547
10548 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10549
10550         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10551         conversions.
10552
10553 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10554
10555         * loader.c: don't set the pinvoke bit on icalls.
10556
10557 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10558
10559         * debug-helpers.c (mono_method_full_name): only print a number to
10560         indicate wrapper type (so that the output is more readable in traces).
10561
10562 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10563
10564         * class.c (mono_class_init): include method override patch from Paolo
10565
10566 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10567
10568         * icall.c: fixed GetTypeCode().
10569
10570 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10571
10572         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10573         use real delegate invoke function to make it work with multicast
10574         delegates (fix bug# 28291).
10575
10576 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10577
10578         * object.c: load constant strings.
10579
10580 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10581
10582         * reflection.c: no magic numbers.
10583         * tabledefs.h: security action enum.
10584
10585 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10586
10587         * assembly.c: fix possible memory corruption.
10588
10589 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10590
10591         * reflection.h, reflection.c: added support for linking resources.
10592         * verify.c: check we have an updated corlib.
10593
10594 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10595
10596         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10597         string arrays.
10598         (mono_marshal_string_array): null terminate unmanaged string arrays.
10599         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10600
10601 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10602
10603         * icall.c: Type.GetType () can now return also types from the
10604         calling assembly.
10605
10606 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10607
10608         * loader.h, loader.c: stack walking support.
10609         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10610         GetCallingAssembly.
10611
10612 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10613
10614         * marshal.c: added optimisations for blittable types 
10615
10616         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10617         (mono_class_setup_mono_type): set blittable attribute for single
10618         and double.
10619
10620         * marshal.c (mono_string_utf8_to_builder): impl.
10621         (mono_string_builder_to_utf8): impl.
10622         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10623
10624 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10625
10626         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10627         (mono_marshal_get_managed_wrapper): impl. byref types
10628
10629 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10630
10631         * icall.c:
10632         (search_method): don't display debug message. 
10633
10634 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10635
10636         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10637
10638 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10639
10640         * appdomain.c: set the missing filename when throwing exception.
10641
10642 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10643
10644         * metadata.c (mono_type_size): code cleanup
10645         (mono_type_stack_size): removed some test code
10646
10647 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10648
10649         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10650         mono_get_exception_file_not_found now.
10651
10652         * exception.c (mono_exception_from_name_two_strings): New version
10653         that will call a constructor with two string arguments. 
10654         (mono_get_exception_file_not_found): New helper routine, used to
10655         report file-not-found errors.
10656
10657 2002-07-20  Dick Porter  <dick@ximian.com>
10658
10659         * process.h:
10660         * process.c: Pass file handles to CreateProcess
10661         
10662         * icall.c:
10663         * file-io.h:
10664         * file-io.c: Implemented CreatePipe
10665
10666 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10667
10668         * metadata.c (mono_get_param_info): set alignment for value types
10669
10670 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10671
10672         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10673         Constify mono_domain_assembly_open().
10674         * loader.c: handle null namespace in icalls.
10675
10676 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10677
10678         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10679         (emit_str_to_ptr_conv): marshal object as structs
10680
10681         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10682
10683         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10684
10685 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10686
10687         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10688         (mono_marshal_get_native_wrapper): we an now return value types
10689
10690 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10691
10692         * verify.c: more checks implemented.
10693
10694 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10695
10696         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10697         (fix bug #27695)
10698         (mono_marshal_get_native_wrapper): allow byref arguments
10699         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10700         impl. PtrToStringXXX methods
10701         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10702         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10703         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10704         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10705         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10706
10707 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10708
10709         * reflection.c: fix buglet in parsing an assembly name.
10710
10711 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10712
10713         * marshal.c (emit_ptr_to_str_conv): first impl.
10714
10715 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10716
10717         * object.c, class.h: cache the vtable in the class as suggested by
10718         vargaz@freemail.hu (Zoltan Varga).
10719
10720 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10721
10722         * class.h, loader.c: added mono_field_from_token().
10723         * verify.c: first cut of type checking code.
10724
10725 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10726
10727         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10728
10729 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10730
10731         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10732         (fix bug #27782)
10733         (mono_marshal_get_remoting_invoke): impl.
10734         (mono_delegate_begin_invoke): impl.
10735         (mono_mb_emit_save_args): impl.
10736         (mono_delegate_end_invoke): impl.
10737         (mono_marshal_get_delegate_begin_invoke):
10738         (mono_marshal_get_delegate_end_invoke):
10739         (mono_marshal_get_delegate_invoke): generate a special name for
10740         those methods (including the signature) and associate them whith
10741         the delegate class. 
10742
10743 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10744
10745         * reflection.[ch]: 
10746         (mono_reflection_type_from_name): now it has a MonoImage parameter
10747         which is used as the default image to search the type in. If the image
10748         is NULL or getting the type from it fails, it defaults to corlib.
10749
10750         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10751         new parameter.
10752
10753 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10754
10755         * reflection.c: update the parameter table index.
10756
10757 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10758
10759         * domain.c: don't include the mark byte in the string hash.
10760
10761 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10762
10763         * icall.cs: icall for Type.GetTypeCode ().
10764         * verify: a couple of fixes and disabled local initialization checks.
10765
10766 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10767
10768         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10769
10770         * debug-helpers.c (mono_method_full_name): print the type of the
10771         runtime wrapper
10772
10773         * metadata.c (mono_signature_hash): a hash function for signatures
10774         (mono_signature_hash): better hash algorithm
10775
10776         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10777
10778         * debug-helpers.c (mono_method_full_name): this can now generate
10779         method names with signatures
10780
10781         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10782         method dont have this pointers.
10783
10784 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10785
10786         * reflection.c: fixup typebuilder tokens.
10787         * image.c: fix buglet.
10788         * marshal.h: remove whitespace.
10789         * metadata.h, metadata.c: reinstate code that was removed.
10790         * verify.c: handle catch directives and fix another couple of bugs.
10791
10792 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10793
10794         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10795         (mono_marshal_get_native_wrapper): make it comp. with the old code
10796         (mono_marshal_get_native_wrapper): support boolean
10797         (mono_marshal_get_managed_wrapper): support more types
10798
10799 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10800
10801         * class.c (class_compute_field_layout): compute class->blittable attribute.
10802
10803 2002-07-09  Dick Porter  <dick@ximian.com>
10804
10805         * threads.c: Make the thread cleaning up cope with threads that
10806         call ExitThread()
10807
10808 2002-07-08  Radek Doulik  <rodo@ximian.com>
10809
10810         * reflection.c (method_encode_code): use non-translated values to
10811         compute finally_start, this fixes exception handling on ppc, yay!
10812
10813         * decimal.h (struct signscale): fix endianess
10814
10815 2002-07-07  Radek Doulik  <rodo@ximian.com>
10816
10817         * reflection.c: swap box_val and not val
10818
10819 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10820
10821         * reflection.c, reflection.h: handle full assembly info in type name.
10822         Handle Type arguments when loading custom attributes.
10823         * icall.c: updated to use new mono_reflection_type_from_name () method.
10824
10825 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10826
10827         * loader.c:
10828         (method_from_memberref): also print assembly name when method not found.
10829
10830 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10831
10832         * icall.c:
10833         (ves_icall_TypeGetProperties): fixed bug #27473. 
10834
10835 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10836
10837         * reflection.c: display image name and token when cannot find the
10838         .ctor for an attribute.
10839
10840 2002-07-05  Martin Baulig  <martin@gnome.org>
10841
10842         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10843
10844 2002-07-04  Dick Porter  <dick@ximian.com>
10845
10846         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10847         compile on mingw.  This will cause mingw builds to not wait for
10848         subthreads to terminate after the main thread does.  I've lodged a
10849         bug with the mingw developers for them to wrap OpenThread().
10850
10851 2002-07-03  Dick Porter  <dick@ximian.com>
10852
10853         * threads.c: Store thread IDs instead of handles, because
10854         GetCurrentThread() returns a pseudohandle and therefore stores
10855         useless values.  mono_thread_cleanup() continues checking the
10856         array of threads until it is empty, to cope with subthreads
10857         spawning new threads after the main thread has finished.
10858
10859         * profiler.h:
10860         * profiler.c:
10861         * profiler-private.h: Pass the thread ID to thread profiler
10862         functions, instead of a handle
10863
10864 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10865
10866         * verify.c: fixes to make it more usable.
10867         * pedump.c: added --verify code to verify IL code in an assembly.
10868
10869 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10870
10871         * reflection.c: turn errors into warnings to allow compiling corlib.
10872
10873 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10874
10875         * reflection.c: add special cases to compile corlib.
10876
10877 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10878
10879         * reflection.c: handle properties with only a set method.
10880
10881 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10882
10883         * opcodes.h: add enum with opcodes in opval order.
10884
10885 2002-07-01  Dick Porter  <dick@ximian.com>
10886         
10887         * object.h:
10888         * object.c (mono_runtime_run_main): Removed unneeded argument
10889
10890 2002-06-28  Martin Baulig  <martin@gnome.org>
10891
10892         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10893
10894 2002-06-27  Dick Porter  <dick@ximian.com>
10895
10896         * threads.c: Store the handle in both the parent thread and in the
10897         subthread, to minimise the time between starting a new thread and
10898         storing its ID.
10899
10900 2002-06-26  Dick Porter  <dick@ximian.com>
10901
10902         * appdomain.c (mono_runtime_cleanup): Close the socket library
10903         after all the threads have finished, not before
10904
10905 2002-06-26  Martin Baulig  <martin@gnome.org>
10906
10907         * debug-symfile.c (mono_debug_find_source_location): Added
10908         `guint32 *line_number' argument.  If it's not NULL, store the line number
10909         there and return the file name without the line number.
10910
10911 2002-06-25  Dick Porter  <dick@ximian.com>
10912
10913         * icall.c:
10914         * process.h:
10915         * process.c: Process forking and other support functions
10916
10917 2002-06-25  Dick Porter  <dick@ximian.com>
10918
10919         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10920         things dont happen when the image is closed.
10921         (mono_image_lookup_resource): Walk the resource section looking
10922         for a particular entry
10923
10924         * cil-coff.h: PE resource section decoding
10925
10926 2002-06-25  Dick Porter  <dick@ximian.com>
10927         
10928         * assembly.h:
10929         * assembly.c: 
10930         (mono_assembly_foreach): Accessor functions to walk the list of
10931         loaded assemblies
10932         (mono_assembly_set_main):
10933         (mono_assembly_get_main): Process methods need to know which
10934         assembly is the "main" one
10935
10936         * object.c (mono_runtime_run_main): Record the main assembly
10937
10938         * debug-helpers.c: Fix typo
10939
10940 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10941
10942         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10943         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10944
10945 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10946
10947         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10948
10949 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10950
10951         * image.c (do_mono_image_open): Initialize reference count,
10952         otherwise we leak the MonoImage.
10953
10954 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10955
10956         * reflection.c: small tweak to handle self-hosting.
10957
10958 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10959
10960         * reflection.c: fix type name parse code.
10961
10962 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10963
10964         * reflection.c: break out of the loop.
10965         * image.c: special case corlib.
10966
10967 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10968
10969         * reflection.c: add all the custom attrs at the end to ensure the
10970         ctors have been properly initialized when the attributes are defined
10971         in the current assembly.
10972
10973 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10974
10975         * reflection.c: handle correctly multiple-nested types.
10976
10977 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10978
10979         * row-indexes.h: fix typos.
10980         * reflection.c: adjust for typos and fix method_def_or_ref
10981         encoding in MethodImpl table.
10982
10983 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10984
10985         * reflection.c: fix entry point patching (thanks Serge!).
10986
10987 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
10988
10989         * verify.c: add check for System.Exception
10990
10991 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10992
10993         * image.c, class.c: minifix for code just c&p'ed.
10994         * reflection.c: warning fix.
10995         * object.h, loader.h, domain.c: load also StringBuilder.
10996
10997 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10998
10999         * marshal.h, marshal.c: some support code to handle complex marshaling.
11000
11001 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11002
11003         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
11004         Better signatures with vtable error dump.
11005
11006 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
11007
11008         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
11009
11010 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
11011
11012         * icall.c (ves_icall_Type_GetField): impl.
11013
11014 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11015
11016         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
11017         to retrieve a marshal description blob for a field or param.
11018
11019 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11020
11021         * reflection.h, reflection.c: change order of nested type emission
11022         to avoid table corruption. The NestedTypes table is sorted.
11023         * icall.c: change order of GetConstructor results to workaround mcs bug.
11024
11025 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11026
11027         * reflection.h, reflection.c: handle field and param marshal
11028         information.
11029
11030 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11031
11032         * icall.c, marshal.c marshal.h: more Marshal class implementation.
11033
11034 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11035
11036         * reflection.c: fix call convention.
11037
11038 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11039
11040         * reflection.h, reflection.c: mono_image_get_memberref_token()
11041         takes a type instead of a class, now. Added
11042         mono_image_get_array_token() to create tokens for the special
11043         multi-dim array methods.
11044
11045 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11046
11047         * assembly.c: handle modules (no assembly table). Split
11048         loading references in its own function.
11049         * class.c: handle moduleref resolution scope.
11050         * image.c, image.h: cache module name in image.
11051
11052 2002-06-07  Martin Baulig  <martin@gnome.org>
11053
11054         * reflection.c (mono_image_get_type_info): Only add a class layout entry
11055         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
11056
11057 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11058
11059         * icall.c: more signature fixes that used uint instead of int.
11060
11061 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11062
11063         * reflection.c: fixed signature of field refs.
11064
11065 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11066
11067         * class.c, reflection.c: handle typerefs of nested types
11068         (both on read and when writing files).
11069
11070 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
11071
11072         * icall.c: fix method signatures that tried to workaround the previous
11073         typo, d'oh!
11074
11075 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11076
11077         * debug-helpers.c: fix typo.
11078
11079 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11080
11081         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
11082         rewrote the PE/COFF writing code (our programs are understood by the
11083         ms runtime, now).
11084
11085 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11086
11087         * gc.c, gc.h, icall.c: weakreference support.
11088
11089 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11090
11091         * Makefile.am, mono-config.c: use $(sysconfdir).
11092
11093 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11094
11095         * icall.c: changed default precision of Double.ToString() to 15.
11096         Fixed memory leak. Unified with Single.ToString.
11097
11098 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
11099
11100         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
11101
11102 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11103
11104         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
11105         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
11106         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
11107         and myself.
11108
11109 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11110
11111         * debug-symfile.c, sysmath.c: yet more compilation fixes.
11112
11113 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11114
11115         * reflection.c, socket-io.c: more compilation fixes.
11116
11117 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11118
11119         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
11120         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
11121         unicode.c: warning and compiler compatibility fixes.
11122
11123 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11124
11125         * class.h, metadata.c: fixed warnings/compilation errors.
11126
11127 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11128
11129         * Makefile.am, mono-config.c, mono-config.h: configuration file
11130         support routines.
11131         * loader.c, loader.h: make Dll mapping configurable at runtime in the
11132         config file. Export methods to insert and lookup mappings.
11133
11134 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11135
11136         * reflection.c: handle types and boxed objects in custom attr
11137         constructors.
11138
11139 2002-05-30  Martin Baulig  <martin@gnome.org>
11140
11141         * debug-symfile.c
11142         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
11143
11144 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
11145
11146         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
11147         to lookup the implmap row for a P/Invoke method.
11148         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
11149         P/Invoke method from the runtime on an as needed basis.
11150
11151 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
11152
11153         * metadata.c (mono_metadata_parse_signature): impl.
11154
11155 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11156
11157         * class.c: handle .pack directive.
11158
11159 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11160
11161         * object.c: initialize static fields with RVA data.
11162
11163 2002-05-25  Martin Baulig  <martin@gnome.org>
11164
11165         * debug-symfile.c
11166         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
11167
11168 2002-05-24  Martin Baulig  <martin@gnome.org>
11169
11170         * debug-symfile.c
11171         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
11172         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11173         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11174
11175 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11176
11177         * object.c: special case string ctros in invoke.
11178         * gc.c: silly whitespace changes.
11179
11180 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11181
11182         * threadpool.[ch]: impl. a threadpool that can
11183         be used by mint and mono.
11184
11185 2002-05-22  Martin Baulig  <martin@gnome.org>
11186
11187         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11188         The first argument is now a `MonoReflectionModuleBuilder *', the return
11189         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11190         `methods' field to get the method builder.  The `token' argument is the
11191         unfixed token.
11192
11193         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11194         invalid characters instead of g_assert_not_reached()ing.  This seems
11195         to be the behaviour of mscorlib.
11196
11197 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11198
11199         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11200         Hestilow to fix bug #25104
11201
11202 2002-05-21  Martin Baulig  <martin@gnome.org>
11203
11204         * debug-symfile.c (mono_debug_find_source_location): New function.
11205         Looks up an IL offset in the line number table and returns the source
11206         location as a string.
11207
11208 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11209
11210         * icall.c:
11211         (mono_double_ToStringImpl): changed %f by %g until we have something
11212         better.
11213
11214 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11215
11216         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11217         parameters first in C#.
11218
11219 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11220
11221         * icall.c, reflection.h: added icall to get info about an event.
11222
11223 2002-05-20  Radek Doulik  <rodo@ximian.com>
11224
11225         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11226         endian
11227         (mono_value_box): don't use memcpy for small sizes on
11228         architectures with unaligned access
11229
11230 2002-05-20  Martin Baulig  <martin@gnome.org>
11231
11232         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11233         if `tb->parent == NULL'.
11234         (mono_reflection_create_internal_class): New function.  This is
11235         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11236         for enum types.
11237
11238         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11239         New interncall.
11240
11241 2002-05-19  Martin Baulig  <martin@gnome.org>
11242
11243         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11244         argument to get the length, don't default to the array length.
11245
11246 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11247
11248         * assembly.c (mono_assembly_setrootdir): New function used to
11249         override the MONO_ASSEMBLIES directory.
11250
11251 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11252
11253         * icall.c: ValueType_GetHashCode() initialize local var.
11254
11255 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11256
11257         * reflection.c: sort custom attributes table.
11258
11259 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11260
11261         * reflection.c: support named args in custom attributes (write support).
11262
11263 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11264
11265         * reflection.c: fix finally position calculation.
11266
11267 2002-05-15  Radek Doulik  <rodo@ximian.com>
11268
11269         * reflection.c: fixed endianess at many places
11270
11271         * icall.c (ves_icall_InitializeArray): comment out debug msg
11272
11273 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11274
11275         * object.c (mono_unhandled_exception): new function to handle
11276         unhandled exceptions.
11277         (mono_unhandled_exception): call the UnhandledException event.
11278         (mono_runtime_delegate_invoke): impl.
11279
11280 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11281
11282         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11283         returns the RVA, not the direct pointer to the data. Handle the case
11284         when the class size is fixed.
11285
11286 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11287
11288         * reflection.c: fix some endianess issues.
11289
11290 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11291
11292         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11293
11294         * threads.c (mono_thread_init): added a callback which is invoked
11295         at thread start.
11296
11297 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11298         
11299         * icall.c: make GetHashCode return non-negative values.
11300
11301 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11302
11303         * object.c, icall.c, gc.c: revert to address-based hashcode.
11304
11305 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11306
11307         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11308
11309 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11310
11311         * icall.c, class.c: special case <Module>.
11312
11313 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11314
11315         * icall.c: fix bug in GetNow().
11316
11317 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11318
11319         * object.c (mono_runtime_class_init): make sure that we call all
11320         static class constructors.
11321
11322 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11323
11324         * reflection.c: sort methodsemantics table.
11325
11326 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11327
11328         * reflection.h, reflection.c: honour init locals setting.
11329
11330 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11331
11332         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11333
11334 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11335
11336         * reflection.c: support ContructorBuilders in attribute blob creation.
11337
11338 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11339
11340         * reflection.c: some changes to build a binary that can be run
11341         directly in windows.
11342
11343 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11344
11345         * loader.c: print a big message when an icall can't be found.
11346
11347 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11348
11349         * string-icalls.c: fix bug 24248.
11350
11351 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11352
11353         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11354         icall.c, reflection.h: separate assembly loading by pathname and by
11355         assembly name. Use the MONO_PATH env var to search for assemblies.
11356
11357 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11358
11359         * assembly.c, image.h: add some support for assemblies
11360         with multiple modules.
11361         * class.c, class.h: export mono_class_from_typeref().
11362         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11363         instead.
11364
11365 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11366
11367         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11368         documentation says (the ECMA one is correct).
11369
11370 2002-05-02  Dick Porter  <dick@ximian.com>
11371
11372         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11373         Don't name the synchronisation mutex.
11374
11375 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11376
11377         * rand.c
11378         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11379         Make the prototypes match.
11380         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11381         Same.
11382
11383         * icall.c
11384         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11385         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11386         all systems have tm.tm_zone, so use strftime() with %Z to print
11387         the timezone abreviation into a temp string.
11388
11389         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11390         rather than mono_array_addr() on a MonoString on Big Endian
11391         machines.
11392
11393 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11394
11395         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11396         fix bug 24041
11397
11398 2002-04-30  Dick Porter  <dick@ximian.com>
11399
11400         * socket-io.c: Cope with SOCKET being an integer rather than a
11401         pointer now.
11402
11403         * threads.c: Added Thread_free_internal, to deal with thread
11404         handle cleanup.  Moved calls to handle_store() and handle_remove()
11405         to start_wrapper(), so each can only be called once.  Allocate
11406         synchronisation blocks with GC_malloc(), and use GC finalisation
11407         to close the handles.
11408
11409         * icall.c: added System.Threading.Thread::Thread_free_internal
11410
11411 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11412
11413         * icall.c: support Environment.Exit, CommandLineArgs().
11414
11415 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11416
11417         * object.c, object.h: added mono_runtime_run_main () and
11418         mono_runtime_get_main_args () for use in System.Environment.
11419
11420 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11421
11422         * gc.c: fix thinko, enable actual finalization since the jit is now
11423         fixed.
11424
11425 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11426
11427         * gc.c, object.c: take into account that an object may be offset wrt the address
11428         returned by GC_malloc().
11429
11430 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11431
11432         * image.c: handle files without entries in the assembly table (modules).
11433
11434 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11435
11436         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11437         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11438         allowed to be null when it's System.Object class setup.
11439
11440 2002-04-27  Martin Baulig  <martin@gnome.org>
11441
11442         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11443         if `tb->parent == NULL' rather than crashing.
11444
11445 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11446
11447         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11448         calling acos() where asin() should have been called.
11449
11450 2002-04-26  Martin Baulig  <martin@gnome.org>
11451
11452         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11453         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11454         there's a subdirectory called `System', but we don't want to read that
11455         subdirectory as an assembly.
11456
11457 2002-04-25  Martin Baulig  <martin@gnome.org>
11458
11459         * debug-symfile.c: Reflect latest MonoString changes.
11460
11461 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11462
11463         * rand.c, rand.h: instance method icalls need to have an explicit
11464         this pointer as first argument in the C implementation.
11465
11466 2002-04-25  Nick Drochak <ndrochak@gol.com>
11467
11468         * icall.c: Fix typo in map for GetNonZeroBytes
11469
11470 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11471
11472         * string-icalls.c : String does now passes unit tests without any 
11473         errors, the following changes has been made:
11474         
11475         Implemented replace methods.
11476         Renaming of methods to (try) follow the standard.
11477         Fixed compare ordinal
11478         Made all memory allocated directly to function instead of via icall function.
11479         Small performance fix in is_in_array function
11480                         
11481  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11482
11483         c (mono_string_Internal_ctor_charp_int_int):
11484         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11485         sindex < 0, throw ArgumentOutOfRangeException instead of
11486         ArgumentNullException.
11487
11488         Added new check for length == 0, however
11489         I need to make it return String.Empty from the C code.
11490         
11491         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11492         that calculate the length for us here.
11493         
11494         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11495         mono_string_new_utf16 with mono_string_new, since value is utf8.
11496
11497 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11498
11499         * object.c: register the object for finalization if needed.
11500         Allocate one more char in the string for the terminating 0 char.
11501
11502 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11503
11504         * class.c, class.h, image.c: check if a type implemenst a destructor.
11505         Use the proper key for array class lookups.
11506         * icall.c: register the icalls in the System.GC class.
11507         * gc.c, gc.h: GC-related functions and icalls.
11508
11509 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11510
11511         * icall.c:
11512         * socket-io.c:
11513         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11514         changed a couple of free () by g_free ().
11515
11516         * decimal.c: one-liner in the comments for decimal2string ().
11517
11518 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11519
11520         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11521
11522 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11523
11524         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11525         * object.c (mono_runtime_invoke_array) : handle null in params
11526
11527 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11528
11529         * string-icalls.c: fixed bug in split (one off bug)
11530
11531 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11532
11533         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11534         * icalls.c: added String::Equals as internal method
11535
11536 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11537
11538         * threads.c: fixed bug in the double interlocked functions
11539
11540 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11541
11542         * threads.c: implemented all of the new interlocked icalls.
11543         * string-icalls.c: fix a bug in insert.
11544         * icalls.c: added the icalls for interlocked, removed old string functions.
11545         
11546 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11547
11548         * loader.c: fix off-by-one error when reading argument names.
11549
11550 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11551
11552         * profiler.c: win32 counter implementation (untested).
11553         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11554         (the latter needs testing and more complete impl. from win32 folks).
11555
11556 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11557
11558         * object.c: mono_array_new_full workaround mono_array_class_get
11559         problem.
11560
11561 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11562
11563         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11564         * object.h (mono_string_chars): Changed casting type.
11565
11566 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11567
11568         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11569                            method signatures to use gunichar2 instead of gint16.
11570
11571 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11572
11573         * object.h, object.c: domain-specific versions of mono_object_new and
11574         mono_array_new.
11575
11576 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11577
11578         * object.c: changed String layout
11579
11580         * string-icalls.c (mono_string_Internal_ctor_chara): added
11581         internal string constructors.
11582
11583 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11584
11585         * threads.c: pass 'this' to the thread start routine.
11586
11587 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11588
11589         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11590         InternalCompareStr don't call twice mono_string_cmp_char for the last
11591         character. Improved performance in mono_string_cmp_char.
11592
11593 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11594
11595         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11596         code into its own library: libmonoruntime.
11597
11598 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11599
11600         * object.h, object.c: changed array format so that szarrays do not
11601         require a bounds structure.
11602         * icall.c, appdomain.c: support for new szarray format.
11603
11604 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11605
11606         * metadata.c: compare also the retuns type when comparing signatures:
11607         we didn't do this as an optimization since really overloaded methods
11608         must differ also in the arguments, but this doesn't work with
11609         low-level IL code (or when using explicit conversion operators: see
11610         bug#23498 for an example).
11611
11612 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11613
11614         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11615
11616 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11617
11618         * icall.c: make MonoType::GetElementType its own icall.
11619
11620 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11621
11622         * icall.c: remove MonoMethod_get_Name().
11623         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11624         object.
11625
11626 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11627
11628         * string-icalls.c: optimized a few methods.
11629
11630 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11631
11632         * icall.c: added all new string internal calls
11633         * string-icalls.c: added, new string internal call implementation.
11634         * object.c: added mono_string_new_size for allocating a string a size
11635
11636 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11637
11638         * object.c (mono_object_isinst): use the same code as in the
11639         optimized x86 version.
11640
11641 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11642
11643         * profiler.c: TSC-based timer code (faster and more accurate).
11644         Not hooked up in configure, yet (set USE_X86TSC to 1).
11645
11646 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11647
11648         * profiler.c, profiler.h: track time spent compiling methods.
11649         * threads.c: track thread creation/destruction.
11650
11651 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11652
11653         * profiler.c, profiler.h, profiler-private.h: profiling interface
11654         and sample implementation. Moved here so that it can be used also by
11655         the jit.
11656
11657 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11658
11659         * reflection.c, reflection.h: keep types and other handles separate in
11660         the hash tables for referred tokens. Add guid for modules.
11661
11662 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11663
11664         * assembly.c: fix bugs found with valgrind.
11665         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11666
11667 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11668
11669         * threads: added icall support for getting current domain for
11670                    the thread.
11671  
11672 2002-04-13  Martin Baulig  <martin@gnome.org>
11673
11674         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11675         (MonoDebugVarInfo): Added `index' field for register based addresses.
11676         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11677         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11678         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11679         `MonoDebugVarInfo *this_var'.
11680
11681         * debug-symfile.c (relocate_variable): New static function to write
11682         a location description for a local variable or method parameter.
11683
11684 2002-04-12  Martin Baulig  <martin@gnome.org>
11685
11686         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11687         stack offset and begin/end scope address of a local variable.
11688         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11689         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11690         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11691
11692         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11693         Added new relocation types for start/end scope of a local variable.
11694
11695 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11696
11697         * object.h: add mono_object_domain() macro.
11698         * reflection.c: handle typespecs.
11699         * icall.c: MonoMethod::get_Name() implementation.
11700
11701 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11702
11703         * icall.c: String::GetHashCode() icall implementation.
11704
11705 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11706
11707         * icall.c: String::IndexOfAny icall.
11708         * object.c, object.h: make array->max_length more useful.
11709         Intrduced mono_object_class() and mono_string_length() macros.
11710
11711 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11712
11713         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11714         instead of g_unichar_isdigit.
11715
11716 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11717
11718         * icall.c: Implement a simple Double.ToString().
11719
11720 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11721
11722         * appdomain.h: only io-layer.h is supposed to be included.
11723         * icall.c: explicitly import environ. Fix warning.
11724
11725 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11726
11727         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11728                 return true even if it's not Daylight Savings time.
11729                 Only return false for the case where the function isn't
11730                 implemented for a plaform (read Windows).
11731
11732 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11733
11734         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11735         data with a mutex.
11736
11737 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11738
11739         * mempool.c (mono_mempool_alloc): only use g_malloc when
11740         absolutely necessary.
11741
11742 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11743
11744         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11745
11746         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11747         (mono_class_proxy_vtable): use domain mempool
11748
11749 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11750
11751         * appdomain.h, appdomain.c: split initialization that requires the
11752         execution engine support into mono_runtime_init().
11753
11754 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11755
11756         * class.c (mono_class_init): don't include vtable inside MonoClass
11757         to save some memory, gather some statistics.
11758         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11759
11760 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11761
11762         * icall.c: internalcall implementation for ValueType.Equals().
11763
11764 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11765
11766         * object.c (mono_message_init): moved 
11767         (mono_runtime_exec_main): new arch. independent impl.
11768         (mono_runtime_invoke_array): new method - like
11769         mono_runtime_invoke, but you can pass an array of objects.
11770         (mono_remoting_invoke): new arch. independent impl.
11771         (mono_message_invoke): new arch. independent impl.
11772         (mono_runtime_class_init): new arch. independent impl.
11773         (mono_runtime_object_init): new arch. independent impl.
11774
11775 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11776
11777         * metadata.c, object.c, reflection.c: documented the exported
11778         functions.
11779
11780 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11781
11782         * icall.c: simpler code to pass the assembly builder data to corlib.
11783         Implement GetNestedTypes() internalcall.
11784
11785 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11786
11787         * class.c: warn if a type can't be loaded.
11788
11789 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11790
11791         * image.h: typedef MonoImageOpenStatus
11792         * types.h: removed unused file
11793         
11794 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11795
11796         * icall.c: Enum_ToObject accepts enum value arguments.
11797
11798 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11799
11800         * class.c: move initialization of properties, events and nested
11801         classes, so that they happen for interfaces, too.
11802
11803 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11804
11805         * icall.c: cleanup some ugly casts in Array_SetValue*.
11806
11807 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11808
11809         * icall.c: the values array fro enums is of the correct type, now.
11810         Implement (correctly) getFullName instead of assQualifiedName for
11811         MonoType.
11812         * reflection.h, reflection.c: added mono_type_get_name ().
11813
11814 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11815
11816         * assembly.c, image.h: for each MonoImage, record from wich assembly
11817         it was loaded.
11818         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11819         Make Type.Assembly work.
11820
11821 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11822
11823         * debug-symfile.h: use char* instead of gpointer to avoid
11824         unnecessary casts.
11825
11826         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11827
11828         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11829         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11830
11831 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11832
11833         * icall.c (mono_message_init): impl. (code cleanup)
11834         (ves_icall_InternalExecute): impl. FieldGetter
11835
11836         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11837         defined we call all (non-static)methods through the vtable. 
11838
11839 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11840
11841         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11842         finalizer even though the memory is still referenced (and the chunk of
11843         memory is not freed).
11844
11845 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11846
11847         * assembly.c: fix brokeness.
11848
11849 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11850
11851         * class.c: kill some warnings. Check explicit interface method
11852         implementation also without considering the namespace.
11853         Load also literal strings in static class data.
11854
11855 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11856
11857         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11858         (default_assembly_name_resolver): Make the resolver take the
11859         "base" directory where the assembly was originally defined, so we
11860         can load DLLs that are in the same directory as the assembly that
11861         is being referenced.
11862
11863 2002-03-28  Dick Porter  <dick@ximian.com>
11864
11865         * file-io.h: 
11866         * file-io.c:
11867         * socket-io.c: 
11868         * unicode.h: 
11869         * unicode.c: Warning cleanups
11870
11871 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11872
11873         * object.h, reflection.h: use the correct type instead of MonoObject.
11874
11875 2002-03-28  Martin Baulig  <martin@gnome.org>
11876
11877         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11878         (mono_debug_update_symbol_file): Initialize classes if necessary.
11879
11880 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11881
11882         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11883         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11884
11885 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11886
11887         * assembly.h: fix function prototype.
11888         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11889         * mono-endian.h: use const cast.
11890
11891 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11892
11893         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11894
11895 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11896
11897         * loader.c: don't assert when a typeref can't be loaded, give
11898         a chance to the runtime to trow an exception instead.
11899         * loader.h: fix warning.
11900
11901 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11902
11903         * class.c (mono_class_proxy_vtable): added proxy support
11904
11905 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11906
11907         * icall.c: removed last of PAL calls, added System.Environment
11908         * file-io.h, file-io.c: MonoIO implementation
11909         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11910
11911 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11912
11913         * appdomain.c: do not use the byte marker in ldstr table lookup.
11914         * debug-helpers.c: allow two ':' to separate class and method name.
11915         * object.c: allocate arrays bounds with the GC, too.
11916         * verify: add a few more checks.
11917
11918 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11919
11920         * reflection.c: output also literal strings. Allocate parameter data
11921         with GC_malloc() (thanks, Martin, for catching this!).
11922
11923 2002-03-26  Martin Baulig  <martin@gnome.org>
11924
11925         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11926         include the `this' offset in the `param_offsets'.
11927
11928 2002-03-25  Martin Baulig  <martin@gnome.org>
11929
11930         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11931         mono_debug_get_class() function to get the classes. Added new
11932         relocation types for arrays and strings.
11933         (mono_debug_get_class): New static function to search in all
11934         referenced assemblies for a metadata token.
11935
11936         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11937
11938 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11939
11940         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11941         hold gc-allocated objects. Make the string heap a stream like the
11942         others. Removed duplicated code when writing stream info.
11943         Added asserts to catch possible buffer overflows. Set the sorted map
11944         for tables that need sorting. Added some documentation.
11945
11946 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11947
11948         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11949         for interned strings and vtables.
11950
11951 2002-03-24  Martin Baulig  <martin@gnome.org>
11952
11953         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11954         it in the array since it was created with g_slist_prepend().
11955
11956 2002-03-24  Martin Baulig  <martin@gnome.org>
11957
11958         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11959         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11960         (mono_debug_method_from_token): Renamed to
11961         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11962         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11963
11964         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11965         relocation types.
11966
11967         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11968
11969 2002-03-24  Martin Baulig  <martin@gnome.org>
11970
11971         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11972         (mono_debug_method_from_token): New func.
11973
11974         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11975         New interncall, calls mono_debug_local_type_from_signature().
11976         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11977         calls mono_debug_method_from_token().
11978
11979 2002-03-23  Martin Baulig  <martin@gnome.org>
11980
11981         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11982         specifies the number of bytes to be converted, not the array size.
11983         Return the number of chars, not the number of bytes.
11984         (ves_icall_iconv_get_chars): The `byteCount' argument
11985         specifies the number of bytes to be converted, not the array size.
11986
11987 2002-03-23  Martin Baulig  <martin@gnome.org>
11988
11989         * reflection.h (MonoReflectionSigHelper): New type.
11990
11991         * reflection.c (mono_reflection_sighelper_get_signature_local),
11992         (mono_reflection_sighelper_get_signature_local): New functions.
11993
11994         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
11995         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
11996         interncalls.
11997
11998 2002-03-23  Martin Baulig  <martin@gnome.org>
11999
12000         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
12001         is_writeable is set.
12002         (mono_raw_buffer_update): New function to write the modified map
12003         back to disk.
12004
12005         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
12006
12007         * debug-symfile.c (mono_debug_update_symbol_file): Call
12008         mono_raw_buffer_update() when done writing.
12009
12010 2002-03-23  Martin Baulig  <martin@gnome.org>
12011
12012         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
12013
12014         * debug-symfile.c: Added support for arguments and local variables.
12015
12016 2002-03-23  Dick Porter  <dick@ximian.com>
12017
12018         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
12019         protected by ifdefs, hence breaking the w32 build.
12020
12021 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12022
12023         * object.c: implement is_interned() the right way.
12024
12025 2002-03-21  Martin Baulig  <martin@gnome.org>
12026
12027         * debug-symfile.[ch]: New files to handle debugging information
12028         files. There's also support to dynamically update these symbol
12029         files to include machine dependent information.
12030
12031 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
12032
12033         * threads.c (mono_thread_create): new function to create thread
12034         from C
12035
12036 2002-03-20  Martin Baulig  <martin@gnome.org>
12037
12038         * icall.c (ves_icall_InternalInvoke): Create a new object if the
12039         method is a constructor.
12040         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
12041         points to ves_icall_InternalInvoke().
12042
12043 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
12044
12045         * file-io.c: Flush shouldn't throw exceptions.
12046
12047 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
12048
12049         * file-io.c: FileStream flush support; FileSetLength now
12050         restores file pointer.
12051
12052 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12053
12054         * class.c: set image for pointer classes.
12055
12056 2002/03/19  Nick Drochak <ndrochak@gol.com>
12057
12058         * sysmath.c: Forgot one.
12059
12060 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
12061
12062         * sysmath.c: Avoid redefining existing names.
12063
12064 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
12065
12066         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
12067         handled by runtime as icall rather than dllimport from libm.so
12068         * file-io.c, file-io.h: fixed handle argument type.
12069
12070 2002-03-18  Dick Porter  <dick@ximian.com>
12071
12072         * reflection.c (mono_image_get_type_info): rename interface to
12073         iface, because of "#define interface struct" on windows.
12074
12075 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
12076
12077         * class.c, class.h: rename and export mono_ptr_class_get().
12078         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
12079         * reflection.c, reflection.h, icall.c: better/saner type name
12080         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
12081         method signatures.
12082
12083 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
12084
12085         * class.c (mono_class_init): removed hardcoded GHC_SLOT
12086
12087         * icall.c (ves_icall_InternalInvoke): impl.
12088
12089 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12090
12091         * reflection.c: output the interface map table, too.
12092
12093 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12094
12095         * class.c (class_compute_field_layout): separate computation of 
12096         static field layout
12097
12098 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
12099
12100         * icall.c: added System.Buffer support.
12101         * file-io.c: moved file icalls from PAL to FileStream.
12102
12103 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12104
12105         * icall.c (ves_icall_System_Object_GetHashCode): impl.
12106
12107 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
12108
12109         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
12110
12111 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12112
12113         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
12114
12115 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12116
12117         * debug-helpers.{c,h}: moved here from monograph some useful functions
12118         to locate a method by name/signature in a class or image. Included
12119         also a small and flexible IL disassembler.
12120
12121 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12122
12123         * reflection.c: fixup tokens in methods with small header size, too.
12124
12125 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
12126
12127         * object.c (mono_string_to_utf8): remove assert(!error), instead
12128         print a warning. 
12129
12130 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
12131
12132         * icall.c: update to the new mono_Array_class_get interface.
12133
12134 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12135
12136         * appdomain.c, object.c: Boehm-GC enable.
12137         * icall.c: make get_data_chunk() support split data requests.
12138         Ensure a class is initialized in more cases. Return only the first
12139         property found in GetProperties() or the compiler gets confused. 
12140         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
12141         * reflection.h, reflection.c: add fixup mechanism for field and method
12142         tokens. Initialize assembly->typeref in a single place. Output
12143         properties after events. Support custom attributes for events, too.
12144         Typo fix for paramter custom attrs.
12145
12146 2002-03-07  Martin Baulig  <martin@gnome.org>
12147
12148         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
12149
12150 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
12151
12152         * class.c (mono_array_class_get): fix. for multi. dim. arrays
12153
12154 2002-03-06  Martin Baulig  <martin@gnome.org>
12155
12156         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
12157         non-zero lower bounds. See testcases #F10-#F13.
12158
12159 2002-03-05  Martin Baulig  <martin@gnome.org>
12160
12161         * exception.c (mono_get_exception_argument_out_of_range): New exception.
12162
12163         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
12164         ves_icall_System_Array_GetValue(), only calculate the absolute array position
12165         here.
12166         (ves_icall_System_Array_SetValue): Likewise.
12167         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
12168         as argument and does the actual work. This function is used when copying a
12169         multi-dimensional array.
12170         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
12171         now do all the widening conversions of value types.
12172         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12173
12174 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12175
12176         * class.c: remove some magic numbers and use the smbolic names,
12177         instead. Added init_events() to load event info at class init time.
12178         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12179         and mono_metadata_methods_from_event().
12180         * reflection.h, reflection.c: added support for writing out the evnets
12181         related information.
12182
12183 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12184
12185         * reflection.h, icall.c: use a different method (GetInterfaces)
12186         to gather interface info and add isbyref, isprimitive and
12187         ispointer to the ves_icall_get_type_info() return value.
12188
12189 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12190
12191         * class.h: stared adding support for events.
12192         * icall.c: split find_members implementation. Added debug icall to get
12193         the address of an object.
12194         * reflection.c: handle TypeBuilders in mono_type_get_object().
12195
12196 2002-03-01  Martin Baulig  <martin@gnome.org>
12197
12198         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12199         ArgumentOutOfRangeException(), not an ArgumentException().
12200         (ves_icall_System_Array_GetLowerBound): Likewise.
12201         (ves_icall_System_Array_GetValue): Improved argument checking.
12202         (ves_icall_System_Array_SetValue): Improved argument checking.
12203
12204 2002-03-01  Martin Baulig  <martin@gnome.org>
12205
12206         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12207         called with invalid arguments rather than just dying with g_assert().
12208         (ves_icall_System_Array_SetValue): Likewise.
12209         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12210         raise a NotImplementedException instead.
12211         (ves_icall_System_Array_GetLength): Added argument checking.
12212         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12213
12214 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12215
12216         * object.h (mono_assert): new macros mono_assert and
12217         mono_assert_not_reached
12218
12219 2002-02-28  Martin Baulig  <martin@gnome.org>
12220
12221         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12222         and "System::String::IsInterned" to "System::String::_IsInterned".
12223
12224 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12225
12226         * icall.c: remove hacks for typebuilder. Added icall to create a
12227         modified type from a tybebuilder.
12228         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12229         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12230         to create a backing MonoClass for a TypeBuilder.
12231
12232 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12233
12234         * class.c, class.h: more refactoring of class init.
12235         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12236
12237 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12238
12239         * marshal.c, marshal.h: start of marshaling interface.
12240
12241 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12242
12243         * icall.c: fix order in assembly qualified name icall.
12244
12245 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12246
12247         * class.c: do not free str, since we store it in the hash table.
12248         * reflection.h: add label field to MonoILExceptionInfo.
12249         * reflection.c: handle references to more than one assembly. Handle
12250         case when there isn't a module created in the assembly.
12251
12252 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12253
12254         * class.c: Fix typo. Start refactoring of class init code.
12255
12256 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12257
12258         * appdomain.c: exit with 1 on error.
12259         * class.c: we already have the name in MonoClassField.
12260         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12261         MonoStreamHeader instead of an offset of image->raw_metadata.
12262
12263 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12264
12265         * appdomain.c (mono_init): Be even more descriptive about the error.
12266
12267 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12268
12269         * appdomain.c: give the user an informative message when corlib can't
12270         be loaded.
12271
12272 2002-02-26  Martin Baulig  <martin@gnome.org>
12273
12274         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12275         New icall to get the time zone data.
12276
12277 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12278
12279         * reflection.c: set virtual and raw size of section correctly.
12280         * threads.c: transfer domain information to newly created threads.
12281
12282 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12283
12284         * class.c: when instancing a class in a domain, load the default
12285         vaules for static fields from the constant table. Fix System.Enum to
12286         not be an enum.
12287         * icall.c: implement Object::GetType() internalcall. Implemented
12288         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12289         Fixed checking of binding flags in find_members().
12290         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12291         * reflection.c: handle enumerations when writing to the constant
12292         table. Use a different object cache for types.
12293
12294
12295 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12296
12297         * object.c (mono_object_isinst): fix for arrays
12298
12299         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12300
12301 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12302
12303         * object.c: don't use mprotect ()  and fix intern pool hash table
12304         lookup for big endian systems.
12305
12306 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12307
12308         * icall.c: change type_is_subtype_of () signature.
12309
12310 2002-02-21  Mark Crichton  <crichton@gimp.org>
12311
12312         * rand.c, rand.h: Added random number generator for
12313         System.Security.Cryptography classes.
12314
12315         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12316
12317         * icall.c: Added System.Security.Cryptography calls.
12318
12319 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12320
12321         * class.c, icall.c, metadata.c: better support for pointer types.
12322         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12323         * reflection.c: Add support for getting custom attrs for properties
12324         and simplify some code.
12325
12326 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12327
12328         * icall.c: change getToken () and add custom attribute GetBlob()helper
12329         method.
12330         * reflection.h: add custom attrs array to the reflection builder structures.
12331         * reflection.c: encode and emit custom attributes for all the relevant
12332         reflection objects. Cache fieldref and methodref tokens. Change
12333         mono_image_create_token() interface to take a MonoDynamicAssembly.
12334         More complete custom attributes decoder. Load custom attributes for
12335         Assembly, Field, Method and Constructor objects, too. Make the
12336         returned array an Attribute[] one, not object[]. Added
12337         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12338         custom attribute constructor.
12339
12340 2002-02-20  Dick Porter  <dick@ximian.com>
12341
12342         * icall.c:
12343         * rawbuffer.c:
12344         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12345         problem code out for now).
12346
12347 2002-02-19  Radek Doulik  <rodo@ximian.com>
12348
12349         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12350
12351 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12352
12353         * icall.c: register the GetCustomAttributes method.
12354         * object.c, object.h: add mono_string_new_len ().
12355         * reflection.h, reflection.c: added mono_runtime_invoke(),
12356         mono_install_runtime_invoke(). Added
12357         mono_reflection_get_custom_attrs () to load custom attributes and
12358         create the attribute objects.
12359
12360 2002-02-19  Dick Porter  <dick@ximian.com>
12361         * threads-dummy-types.c:
12362         * threads-dummy-types.h:
12363         * threads-dummy.c:
12364         * threads-dummy.h:
12365         * threads-pthread-types.c:
12366         * threads-pthread-types.h:
12367         * threads-pthread.c:
12368         * threads-pthread.h:  Deleted obsolete files
12369
12370 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12371
12372         * class.c (mono_class_vtable): runtime init the class when we
12373         allocate static class data.
12374
12375         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12376
12377         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12378         and String - but we will need generic marshalling support in the
12379         future. 
12380         (mono_init): set the domain name in a ms compatible way
12381
12382         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12383         String[].
12384
12385 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12386
12387         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12388         for sizes
12389
12390         * appdomain.c (mono_domain_unload): impl.
12391
12392 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12393
12394         * appdomain.c, object.c: fix intern pool implementation.
12395         * class.c: fix alignment code.
12396
12397 2002-02-16  Radek Doulik  <rodo@ximian.com>
12398
12399         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12400         and s2 > s1, just copy lower bytes to be compatible with little
12401         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12402         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12403
12404         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12405         force big_endian to be 1 for big endian machines 
12406         (ves_icall_iconv_new_decoder): ditto
12407
12408 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12409
12410         * socket-io.c (convert_sockopt_level_and_name): If the system
12411         doesn't define SOL_IP or SOL_TCP, get them by hand using
12412         getprotobyname() and caching the values (because this could be a
12413         slow operation).
12414         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12415         Use the appropriate struct when the system does support it. Ie,
12416         not all systems have struct ip_mreqn so use struct ip_mreq when
12417         appropriate.
12418
12419 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12420
12421         * reflection.c: handle finally clauses.
12422
12423 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12424
12425         * socket-io.c: use g_snprintf() instead of snprintf.
12426
12427 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12428
12429         * reflection.c (mono_param_get_objects): Cast second argument to
12430         mono_method_get_param_names to a const char** to silence the
12431         compiler warning.
12432
12433         * appdomain.c (mono_domain_assembly_open): Put parens around the
12434         truth statement in the for-loop.
12435
12436         * unicode.c (iconv_convert): Got rid of a compiler warning about
12437         int i being unused when the system has a new iconv.
12438         (iconv_get_length): Same.
12439
12440         * image.c (load_class_names): Cast the second argument to
12441         g_hash_table_insert() to char* to hush compiler warnings about the
12442         arg being a const.
12443         (mono_image_open): Same here.
12444
12445         * socket-io.c: Don't conditionally include sys/filio.h or
12446         sys/sockio.h here anymore since we now get them from
12447         io-layer/io-layer.h
12448         (inet_pton): If the system doesn't support inet_aton, implement
12449         using inet_addr and also #define INADDR_NONE if it isn't defined
12450         by the system.
12451
12452 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12453
12454         * metadata.c, metadata.h: added function to get packing and size info
12455         of a typedef.
12456         * reflection.h, reflection.c: handle field RVA data. Save info about
12457         the table layout if needed. Assign typedef indexes to all the types
12458         before dumping the info about them to avoid forward reference problems.
12459
12460 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12461
12462         * socket-io.c (convert_sockopt_level_and_name): ifdef
12463         SO_ACCEPTCONN because it is not defined on my system (old debian)
12464
12465 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12466
12467         * opcode.c: use stddef.h to get NULL.
12468
12469 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12470
12471         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12472         for FIONBIO, FIONREAD and SIOCATMARK.
12473         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12474         define INADDR_NONE and besides, inet_addr() is deprecated and
12475         should not be used. Use inet_pton() instead - it also has the
12476         added bonus that it can easily handle IPv6 addresses as well.
12477         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12478
12479 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12480
12481         * decimal.c: remove _MSC_VER conditional.
12482
12483 2002-02-13  Dick Porter  <dick@ximian.com>
12484
12485         * socket-io.c: 
12486         * icall.c: Internal calls for Blocking, Select, Shutdown,
12487         GetSocketOption and SetSocketOption
12488
12489 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12490
12491         * assembly.cs: better resolver: use it instead of some kludgy
12492         code.
12493
12494 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12495
12496         * reflection.c: the best way to speed-up the compiler is to avoid
12497         infinite loops.
12498
12499 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12500
12501         * class.c (mono_class_vtable): changed the object layout
12502         (obj->vtable->class). 
12503         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12504
12505 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12506
12507         * assembly.c: look for assemblies in the assembly dir, too.
12508
12509 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12510
12511         * class.c: fix thinko in mono_class_from_type().
12512
12513 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12514
12515         * exception.h, exception.c: added TypeLoadException.
12516         * object.h, object.c: added mono_array_clone ().
12517         * icall.c: handle throwOnError in AssemblyGetType().
12518         Added Array.Clone().
12519         * opcode.h, opcode.c: use a single value for the opcode val.
12520         Compile fix for non-gcc compilers.
12521
12522 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12523
12524         * opcodes.c, opcodes.h: export interesting info about opcodes.
12525
12526 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12527
12528         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12529         icalls. 
12530
12531         * class.c (class_compute_field_layout): set element_class for enums
12532         (mono_class_create_from_typedef): set element_class for normal classes
12533
12534         * icall.c (ves_icall_System_Enum_get_value): impl.
12535
12536         * class.c (mono_class_create_from_typedef): do not set valuetype
12537         flag for System.ValueType and System.Enum
12538
12539 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12540
12541         * unicode.c (iconv_convert): fix big endian problem.
12542
12543 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12544
12545         * class.c: add asserts if we are ever going to scribble over memory.
12546         * socket-io.c: not all systems have AF_IRDA defined.
12547
12548 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12549
12550         * class.c (class_compute_field_layout): do not consider static
12551         fields to compute alignment
12552
12553 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12554
12555         * appdomain.c (mono_appdomain_get): impl.
12556         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12557
12558 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12559
12560         * icall.c: ignore "file://" prefix when loading an assembly.
12561
12562 2002-01-23  Dick Porter  <dick@ximian.com>
12563
12564         * socket-io.c:
12565         * icall.c:
12566         * Makefile.am: Added socket support
12567
12568 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12569
12570         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12571         code back.  This should return the assemblies that are loaded by
12572         the runtime on behalf of an application domain. 
12573
12574         The current implementation is still broken, it just returns every
12575         assembly loaded, but until we get real applications domain this
12576         will do.
12577
12578 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12579
12580         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12581         AppDomain object.
12582
12583 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12584
12585         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12586         the mono_class_from_name lookup.
12587         (ves_icall_get_parameter_info): ditto.
12588         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12589         method.
12590         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12591
12592 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12593
12594         * class.c: load also nested classes on class init.
12595         System.ValueType instance methods gets passed boxed
12596         values, unless methods in derived classed that get a pointer to the
12597         data.
12598         * icall.c: use better name parsing code in GetType().
12599         * image.c, image.h: add mono_image_loaded ().
12600         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12601         * reflection.c, reflection.h: added mono_reflection_parse_type().
12602
12603 2002-01-22  Veronica De Santis <veron78@interfree.it>
12604
12605         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12606         * threads.c : Added the implementation of internal calls for events
12607         * threads.h : Added prototypes of internal calls for events
12608         
12609 2002-01-21  Radek Doulik  <rodo@ximian.com>
12610
12611         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12612
12613 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12614
12615         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12616         (mono_class_value_size): use min_align
12617
12618 2002-01-20  Dick Porter  <dick@ximian.com>
12619
12620         * threads.h:
12621         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12622         so it compiles on w32.
12623
12624 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12625
12626         * metadata.c (mono_type_stack_size): impl.
12627
12628         * class.c (mono_class_get_field): impl. memberref token
12629
12630 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12631
12632         * icall.h : Added the internal calls mapping for CreateMutex_internal
12633                     and ReleaseMutex_internal.
12634         * threads.h : Added the prototype of mutexes internal calls.
12635         * threads.c : Added the implementations of mutexes internal calls.
12636
12637 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12638
12639         * metaparse.h: removed unused file.
12640         * reflection.c, reflection.h: added stream_data_align () function 
12641         to align data in streams and keep stream aligned. Add support for
12642         exception support in method headers.
12643
12644 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12645
12646         * unicode.c: make iconv_convert () return the number of bytess written
12647         in the output buffer.
12648
12649 2002-01-15  Dick Porter  <dick@ximian.com>
12650         * threads.c: Make the runtime's idea of infinite timeouts coincide
12651         with the class library's
12652
12653         Fix a particularly egregious bug in mono_thread_cleanup(). That
12654         code was so utterly bogus it must have been written on a Monday.
12655
12656 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12657
12658         * reflection.h: add subtypes field to TypeBuilder.
12659         * reflection.c: encode constants for literal fields.
12660         Handle subtypes. Fix user string token (and add a zero byte)
12661         at the end.
12662         
12663 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12664
12665         * class.c (mono_class_init): bug fix: assign slot numbers for
12666         abstract methods.
12667
12668 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12669
12670         * reflection.c: don't try to output a code RVA for abstract methods.
12671         Small fixes for method header format. Output parameter info to the
12672         ParamDef table. Save method overriding info to MethodImpl table.
12673         Fix property support. Allow typedef.extends to be a type in the
12674         building assembly.
12675         * verify.c: fix off-by-one error.
12676
12677 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12678
12679         * class.c: fix mono_class_from_mono_type () for szarray types.
12680         Remove unused cache check in mono_class_from_type_spec().
12681         * icall.c: *type_from_name () functions handle simple arrays and byref.
12682         * reflection.c: handle byref and szarray types. Handle methods without
12683         body (gets P/Invoke compilation working). Handle types and fields in
12684         get_token ().
12685         * reflection.h: add rank to MonoTypeInfo.
12686
12687 2002-01-10  Dick Porter  <dick@ximian.com>
12688
12689         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12690         internal calls
12691
12692 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12693
12694         * icall.c: initialize class in type_from_handle ().
12695         Loop also in parent classes for get_method ().
12696         * reflection.c: properly encode class and valuetype types.
12697         Start on encoding TypeBuilder types. Handle fieldrefs.
12698         Use correct length when registering a user string.
12699         Handle ConstructorBuilder and MonoMethod in get_token ().
12700         Make mono_type_get_object () aware of cached types.
12701         * object.c: back out change to mono_string_new ().
12702
12703 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12704         * object.c: mono_string_new should return a NULL when the string 
12705         passed in is NULL -- not try to deference it.
12706         
12707 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12708
12709         * icall.c: hack to make IsSubType work for TypeBuilders.
12710         * reflection.c: emit constructors before methods.
12711         Retrieve param names in mono_param_get_objects().
12712
12713 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12714
12715         * Makefile.am: fix list of headers and sources so automake 1.5
12716         doesn't complain. Removed \# at end of list.
12717
12718 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12719
12720         * reflection.c: get token for a method ref. Set return type of
12721         constructor to void.
12722         * loader.c: debug message.
12723         * class.c: typo fix.
12724
12725 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12726
12727         * icall.c: fix array init with rank > 1. FindMembers
12728         loops in parent class as well.
12729         * image.c: do not insert nested types in name cache.
12730         * reflection.c: warning fix.
12731         * reflection.h: add override method (for interface impl).
12732
12733 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12734
12735         * metadata.c: fix customattr decoding.
12736
12737 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12738
12739         * rawbuffer.cs: Added native Win32 implementation, avoids using
12740         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12741
12742 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12743
12744         * class.c: make the low-level routines handle the cache.
12745
12746 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12747
12748         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12749
12750 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12751
12752         * class.c: fix mono_array_element_size() for objects.
12753         * class.h, class.c: add properties to MonoClass and load them
12754         at init time.
12755         * icall.c: check with isinst() when assigning a value to an array
12756         instead of requiring the classes to match exactly.
12757         Implemented icall for System.Type::GetType().
12758         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12759         enums. Handle bindingflags when looking for methods and fields.
12760         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12761         and mono_metadata_methods_from_property().
12762         * reflection.h, reflection.c: added structures for propreties,
12763         parameters and enums. Implemented mono_property_get_object() and
12764         mono_param_get_objects().
12765
12766 2001-12-18  Dick Porter  <dick@ximian.com>
12767
12768         * file-io.c: Use mono_string_to_utf16() instead of
12769         mono_string_chars()
12770
12771         * object.c: Added mono_string_to_utf16(), which copies the non
12772         NULL-terminated MonoString into a new double-null-terminated
12773         buffer.
12774
12775 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12776
12777         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12778
12779 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12780
12781         * file-io.c: raise exceptions if handle is invalid.
12782
12783 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12784
12785         * assembly.c: yet another check for mscorlib.
12786         * class.c, class.h: load nesting info for classes.
12787         * icall.c: many new functions to support the Reflection classes.
12788         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12789         * reflection.h, reflection.c: mono_image_create_token(),
12790         mono_assembly_get_object(), mono_type_get_object(),
12791         mono_method_get_object(), mono_field_get_object(): methods to return
12792         objects that parallel the C representation of assemblies, types,
12793         methods, fields.
12794
12795 2001-12-11  Dick Porter  <dick@ximian.com>
12796
12797         * icall.c:
12798         * file-io.c: Internal calls for file IO.
12799
12800 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12801
12802         * tabledefs.h: missing FileAttributes.
12803         * verify.h, verify.c: use is_valid_string () to simplify and check for
12804         valid strings more correctly. Fix warnings and speeling.
12805         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12806         Check code: branches, maxstack, method calls.
12807
12808 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12809
12810         * object.c (mono_object_allocate): removed static, so that the jit
12811         can allocate value types.
12812
12813         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12814
12815 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12816
12817         * class.c: init enum types right away and register the
12818         token->MonoClass map in mono_class_create_from_typedef ().
12819         * verify.h, verify.c: first cut of the verifier.
12820         * pedump.c: add --verify switch to verify metadata tables.
12821         * tabledefs.h: add some missing enums.
12822
12823 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12824
12825         * class.c (mono_install_runtime_class_init): impl.
12826         (mono_class_init): renamed mono_class_metadata_init to
12827         mono_class_init, also removed the metadata_inited flag
12828
12829         * object.c (mono_object_isinst): use faster algorithm
12830
12831 2001-11-30  Radek Doulik  <rodo@ximian.com>
12832
12833         * mono-endian.h: reverted last change
12834         added function prototypes
12835
12836         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12837         add mono-endian.c back
12838
12839         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12840         for unaligned access, I've mistaked it with endianess. I am
12841         sorry.
12842         (mono_read16): fix reverted endianess
12843         (mono_read64): ditto
12844         (mono_read32): ditto
12845
12846 2001-11-30  Dick Porter  <dick@ximian.com>
12847
12848         * exception.c: Implement mono_exception_from_name()
12849
12850 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12851
12852         * metadata.h, metadata.c: remove params_size and locals_size and their
12853         calculation from the metadata code: they are only usefult to the
12854         interp.
12855
12856 2001-11-29  Radek Doulik  <rodo@ximian.com>
12857
12858         * object.c (mono_ldstr): swap bytes here, it's probably not the
12859         best place, but works for me now, I'll redo it once I know mono
12860         better, also note that I add PROT_WRITE and don't reset back, also
12861         note that it's only affects big endians, so x86 should be OK
12862
12863         * mono-endian.h (read16): use just glib macros for both endians
12864
12865         * mono-endian.c: removed as glib macros are used in in
12866         mono-endian.h so we don't need to care about endianess for read
12867         macros as glib does that for us already
12868
12869 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12870
12871         * class.h, class.h: take minimum alignment into consideration so
12872         that the fields of a class remain aligned also when in an array.
12873
12874 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12875
12876         * loader.h, loader.c: add mono_method_get_param_names().
12877         * class.c: 0-init class fields.
12878
12879 2001-11-26  Dick Porter  <dick@ximian.com>
12880
12881         * icall.c:
12882         * threads-types.h:
12883         * threads.c: New file that handles System.Threading on all platforms
12884
12885         * object.c: 
12886         * object.h: Remove the synchronisation struct from MonoObject,
12887         replace it with a pointer that gets initialised on demand
12888
12889         * Makefile.am: Replace all the system-specific threading code with
12890         a single file that uses the new wrapper library
12891
12892 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12893
12894         * class.c, class.h: add mono_install_trampoline() so that the runtime
12895         can register a function to create a trampoline: removes the ugly
12896         requirement that a runtime needed to export arch_create_jit_trampoline.
12897         * object.h, object.c: added mono_install_handler() so that the runtime
12898         can install an handler for exceptions generated in C code (with
12899         mono_raise_exception()). Added C struct for System.Delegate.
12900         * pedump.c: removed arch_create_jit_trampoline.
12901         * reflection.c: some cleanups to allow registering user strings and
12902         later getting a token for methodrefs and fieldrefs before the assembly
12903         is built.
12904         * row-indexes.h: updates and fixes from the new ECMA specs.
12905
12906 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12907
12908         * class.h, class.c: add enum_basetype field to MonoClass.
12909         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12910         to get index in the constant table reated to a field, param or
12911         property.
12912         * reflection.h, reflection.c: handle constructors. Set public-key and
12913         version number of the built assembly to 0.
12914         * row-indexes.h: update from new ECMA spec.
12915
12916 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12917
12918         * class.h, class.c: add a max_interface_id to MonoClass.
12919         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12920         since it's used to do that. Added mono_type_type_from_obj().
12921         Make GetType() return NULL instead of segfaulting if the type was not
12922         found. Handle simple arrays in assQualifiedName.
12923         * object.h: add a struct to represent an Exception.
12924         * reflection.c: output call convention in method signature.
12925         Add code to support P/Invoke methods and fixed offsets for fields.
12926
12927 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12928
12929         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12930         the value.
12931         * icall.c: use mono_array_addr instead of array->vector: fixes the
12932         reflection image writing.
12933         * reflection.c: init call convention byte to 0 in method signature.
12934         Encode the property signature. Don't output property-related methods
12935         twice. Really process the properties for a type (don't cast a field to
12936         a property, my mom always told me that).
12937         Fix 64 bit issues in pointer alignment in a different and more
12938         readable way.
12939
12940 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12941
12942         * loader.h: Removed type class from MonoDefaults, added monotype
12943
12944         * loader.c: Loaded MonoType, removed loading of Type
12945
12946         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12947         and fills in System.Type._impl with a RuntimeTypeHandle rather
12948         than the actual MonoClass *
12949
12950         (ves_icall_type_from_handle): change from type_class to
12951         monotype_class
12952
12953         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12954         implemented
12955
12956         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12957         implemented
12958
12959         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12960
12961         (ves_icall_System_Reflection_Assembly_GetType): implemented
12962
12963         (ves_icall_System_MonoType_assQualifiedName): implemented
12964
12965         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12966
12967 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12968
12969         * assembly.c (mono_assembly_open): Implement a cache for the
12970         assemblies. 
12971
12972         (mono_assembly_close): only destroy the assembly when the last
12973         reference is gone.
12974         
12975 2001-11-09  Dick Porter  <dick@ximian.com>
12976
12977         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12978
12979 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12980
12981         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12982
12983 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12984
12985         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12986         from Martin Weindel.
12987         * object.h: add mono_string_chars ().
12988
12989 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
12990
12991         * reflection.c (build_compressed_metadata): Eliminates warnings
12992         and uses 64-bit clean code.
12993
12994         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
12995         (mono_type_equal): Change signature to eliminate warnings.
12996
12997 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12998
12999         * icall.c, loader.c: remove the internalcall array constructors.
13000         Changes to match the new MonoArray structure.
13001         * object.h, object.c: an array object doesn't allocate an extra
13002         vector. Add mono_array_new_full () to create jagged arrays easily.
13003
13004 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
13005
13006         * metadata.h, metadata.c: add mono_metadata_field_info () to
13007         retreive all the info about a field from vairous tables.
13008         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
13009         * class.h, class.c: augment MonoClassField with more info.
13010         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
13011         policy and load a field's RVA if needed.
13012
13013 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
13014
13015         * class.c (mono_class_metadata_init): create a trampoline for all
13016         virtual functions instead of actually compiling them.
13017
13018 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
13019
13020         * class.h, class.c: include name in MonoClassField.
13021         * class.c: fix fundamental type of System.Object and System.String.
13022         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
13023         tokens in ldtoken.
13024         * icall.c: remove internalcalls for the Reflection stuff that is now
13025         done in C# code.
13026         * loader.c: mono_field_from_memberref () implementation.
13027         * mono-endian.c: thinko (s/struct/union/g).
13028         * object.c, object.h: make the mono_string_* prototypes actually use
13029         MonoString instead of MonoObject.
13030         * reflection.c, reflection.h: updates for changes in the reflection
13031         code in corlib: we use C structures that map to the actual C# classes.
13032         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
13033         fat method header if needed and use the info from the ILGenerator for
13034         methods. Handle fields in types. Misc fixes.
13035
13036 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
13037
13038         * class.c (mono_class_metadata_init): bug fix: always allocate
13039         space for static class data
13040
13041 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
13042
13043         * class.c (mono_compute_relative_numbering): use relative
13044         numbering to support fast runtime type checks.
13045
13046 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
13047
13048         * class.c (mono_class_create_from_typeref): added debugging output
13049         to print class name when MonoDummy is returned instead of real class
13050
13051 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
13052
13053         * class.c (mono_class_metadata_init): interface offset table now
13054         contains pointers into the vtable - this is more efficient for the jit
13055
13056 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
13057
13058         * class.c (mono_class_metadata_init): use a temporary vtable (the
13059         old algorithm only worked for the interpreter, but not for the jit)
13060
13061 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
13062
13063         * loader.c (method_from_memberref): use mono_class_get to get the
13064         class of an array instead of using System.Array directly.
13065         (mono_get_method): also add MEMBERREF methods to the method cache
13066         which usefull for arrays.
13067
13068 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
13069
13070         * pedump.c (arch_compile_method): added to compute vtable entry
13071
13072         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
13073         number of interfaces.
13074         
13075         * class.h: merged MonoArrayClass into MonoClass
13076
13077         * class.c (mono_class_create_from_typedef): compute the vtable size and
13078         allocate space to include the vtable inside MonoClass
13079         (mono_class_metadata_init): initialize the vtable
13080
13081 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
13082
13083         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
13084         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
13085         * image.c: endian fixes by Laurent Rioux.
13086         * object.h, object.c: rename MonoStringObject to MonoString and
13087         MonoArrayObject to MonoArray. Change some function names to conform to
13088         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
13089         guint16* as first argument, so don't use char*.
13090         Provide macros to do the interesting things on arrays in a portable way.
13091         * threads-pthread.c: updates for the API changes and #include <sched.h>
13092         (required for sched_yield()).
13093         * icall.c: updates for the API changes above.
13094         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
13095         platforms that need them.
13096
13097 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13098
13099         * class.c: set the correct type for all the fundamental
13100         type when loading the class.
13101
13102 2001-10-05  Dick Porter  <dick@ximian.com>
13103
13104         * threads-pthread.c (pthread_mutex_timedlock): Simple
13105         compatibility version for C libraries that lack this call.
13106
13107 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13108
13109         * class.c: MonoTypes stored in MonoClass are stored as
13110         fundamental MonoTypes when the class represents a
13111         fundamental type (System.Int32, ...).
13112         The TypeHandle return by ldtoken is a MonoType*.
13113         * icall.c: ves_icall_get_data_chunk () write out all the
13114         PE/COFF stuff. Implement ves_icall_define_method (),
13115         ves_icall_set_method_body (), ves_icall_type_from_handle ().
13116         * image.c: properly skip unknown streams.
13117         * loader.h, loader.c: add type_class to mono_defaults.
13118         * metadata.c, metadata.h: export compute_size () as
13119         mono_metadata_compute_size () with a better interface.
13120         Typo and C&P fixes.
13121         * pedump.c: don't try to print the entry point RVA if there is no entry point.
13122         * reflection.c, reflection.h: many cleanups, fixes, output method
13123         signatures and headers, typedef and typeref info, compress the metadata
13124         tables, output all the heap streams, cli header etc.
13125         * row-indexes.h: typo fixes.
13126
13127 2001-10-04  Dick Porter  <dick@ximian.com>
13128
13129         * object.h: Add a synchronisation mutex struct to MonoObject
13130
13131         * object.c (mono_new_object): Initialise the object
13132         synchronisation mutexes
13133
13134         * icall.c: System.Threading.Monitor internal calls
13135         
13136         * threads-pthread.h:
13137         * threads-pthread.c: System.Threading.Monitor internal calls
13138
13139         * threads-types.h: New file, includes the system-specific thread
13140         structures
13141         
13142         * threads-pthread-types.h:
13143         * threads-pthread-types.c: New files, handle pthread-specific
13144         synchronisation types
13145
13146         * threads-dummy-types.h: 
13147         * threads-dummy-types.c: New files of dummy support for
13148         thread-specific types
13149
13150         * metadata.c:
13151         * image.c:
13152         * pedump.c: include mono-endian.h not endian.h
13153         
13154         * Makefile.am: More threads files.
13155         Name mono-endian.h not endian.h
13156
13157 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
13158
13159         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
13160         stuff and implement a few more bits.
13161         * icall.c: a field needs to be dereferenced twice. Do not use the same
13162         name for two variables in the same scope.
13163         * image.c, image.h: cleanups.
13164
13165 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
13166
13167         * class.c (mono_class_metadata_init): bug fix: compute the right size
13168
13169 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
13170
13171         * icall.c: implemented some of the Reflection internalcalls.
13172         * image.c, image.h: start writing out the PE/COFF image.
13173         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13174         that does the reverse than decode_blob_size ().
13175         * object.c: use mono_metadata_encode_value (). Move here
13176         temporary implementation of mono_string_to_utf8 ().
13177         * rawbuffer.c: make malloc_map static.
13178
13179 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13180
13181         * metadata.c: fix type comparison for arrays.
13182         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13183         Added a couple of new classes to monodefaults.
13184         * icall.c: added a couple of Reflection-related internalcalls.
13185         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13186         Added a byval_arg MonoType to MonoClass.
13187
13188 2001-09-28  Dick Porter  <dick@ximian.com>
13189
13190         * icall.c:
13191         * threads-pthread.h: 
13192         * threads-pthread.c: Implemented internal calls for
13193         LocalDataStoreSlot operations.  Applied mutexes around all shared
13194         data.  Reworked the thread creation and Start() operations to
13195         avoid a race condition.
13196         
13197         * threads-dummy.h:
13198         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13199
13200 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13201
13202         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13203
13204 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13205
13206         * class.c, loader.c: warn and return NULL instead of erroring out.
13207         * icall.c: added System.AppDomain::getCurDomain().
13208         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13209
13210 2001-09-25  Dick Porter  <dick@ximian.com>
13211
13212         * threads-pthread.h:
13213         * threads-pthread.c: Implemented timed thread joining and added
13214         System.Threading.Thread::Join_internal internal call
13215
13216         * icall.c: Added System.Threading.Thread::Join_internal internal call
13217
13218         * threads-dummy.h:
13219         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13220
13221 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13222
13223         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13224         mono_string_intern () to implement the semantics of the ldstr opcode
13225         and the interning of System.Strings.
13226         * icall.c: provide hooks to make String::IsIntern and String::Intern
13227         internalcalls.
13228
13229 2001-09-23  Dick Porter  <dick@ximian.com>
13230
13231         * threads-dummy.c: 
13232         * threads-dummy.h: New files of dummy threading routines
13233
13234         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13235         support code based on system specifics
13236
13237         Rename PTHREAD_LIBS to THREAD_LIBS
13238         
13239 2001-09-23  Dick Porter  <dick@ximian.com>
13240
13241         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13242         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13243         internal calls.
13244         (mono_thread_init): Set up a Thread object instance to return when
13245         the main thread calls Thread.CurrentThread
13246         (mono_thread_cleanup): Wait for all subthreads to exit
13247
13248         * icall.c: New internal calls for System.Threading.Thread::Sleep
13249         (including Schedule) and CurrentThread
13250
13251         * threads.h: New file, to insulate thread-specific stuff from the
13252         rest of the code
13253
13254 2001-09-21  Dick Porter  <dick@ximian.com>
13255
13256         * threads-pthread.h: 
13257         * threads-pthread.c: New file, for handling pthreads-style
13258         threading support.  Start() now starts a new thread and executes
13259         the ThreadStart delegate instance.
13260
13261         * icall.c: Added the internalcall for
13262         System.Threading.Thread::Start_internal
13263
13264         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13265
13266 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13267
13268         * loader.c: work around the different signatures for delegates
13269         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13270
13271 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13272
13273         * class.h, class.c: add mono_class_get_field_from_name ().
13274         * *: Fix C comments and other ANSI C issues.
13275
13276 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13277
13278         * endian.h, assembly.c: fix some endianness issues.
13279
13280 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13281
13282         * loader.h, load.c: add delegate_class to mono_defaults.
13283         Handle runtime provided methods in mono_get_method ().
13284
13285 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13286
13287         * loader.c (mono_get_method): use pinvoke for internal call
13288
13289         * icall.c: use pinvoke for internal call
13290
13291         * loader.c (method_from_memberref): set the method name
13292
13293 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13294
13295         * metadata.c: help the compiler generate better code for
13296         mono_class_from_mono_type ().
13297
13298 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13299
13300         * class.c (mono_class_metadata_init): delayed computing of the
13301         class size to mono_class_metadata_init ()
13302
13303 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13304
13305         * class.c, class.h: add an interfaces member to MonoClass.
13306         * image.c, image.h: add assembly_name field to MonoImage
13307         from the assembly table.
13308         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13309
13310 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13311
13312         * class.c: Handle Array in mono_class_from_mono_type ().
13313         * metadata.c, pedump.c: some endian fixes.
13314
13315 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13316
13317         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13318         * metadata.c: fix small problem introduced with the latest commit.
13319
13320 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13321
13322         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13323         We don't need a MonoMetadata pointer anymore to compare signatures in
13324         mono_metadata_signature_equal (), update callers.
13325         Reduced memory usage an number of allocations for MonoMethodHeader and
13326         MonoMethodSignature.
13327
13328 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13329
13330         * metadata.c: added compare for szarray.
13331
13332 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13333
13334         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13335         and add a couple more types to it and mono_defaults. Give an hint on
13336         classes that need implementing in our corlib and are referenced
13337         in mscorlib.
13338
13339 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13340
13341         * class.h, class.c: keep track if a class is also an Enum.
13342         * loader.c: Implement a couple more types for use in libffi
13343         marshalling. Gives better diagnostics when failing to dlopen
13344         a library. Set method->klass for P/Invoke methods, too.
13345
13346 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13347
13348         * class.c, class.h: add a MonoType this_arg to MonoClass that
13349         represents a pointer to an object of the class' type that
13350         can be used by the interpreter and later the type cache.
13351         Add best guess alignment info for valuetype objects.
13352
13353 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13354
13355         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13356         into MonoType: one less level of indirection and allocation and
13357         simplifies quite a bit of code. Added cache for MonoTypes that are
13358         used frequently, so that we don't need to allocate them all the time.
13359
13360 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13361
13362         * class.c (mono_class_create_from_typedef): System.Enum is also a
13363         value type, although it does not derive from System.ValueType
13364         (maybe a bug in the ms compiler?)
13365
13366         * metadata.c (mono_type_size): return the right size for value types
13367
13368         * loader.c (mono_get_method): only initialize method header if not abstract
13369
13370         * class.c (mono_class_from_mono_type): use mono_default values. 
13371
13372 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13373
13374         * *: use MonoClass pointers instead of <type_tokens>
13375         
13376         * class.h: new flag: metadata_inited.
13377
13378         * class.c (mono_class_metadata_init): impl.
13379         (mono_class_instance_size): impl.
13380         (mono_class_data_size): impl.
13381
13382 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13383
13384         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13385         MonoClass now has the name and name_space fields. 
13386         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13387         mono_get_method () takes and optional MonoClass as argument.
13388         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13389         instead that takes advantage of a map from class names to typedef
13390         tokens in MonoImage.
13391
13392 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13393
13394         * metadata.c: zero is not a valid alignment boundary.
13395         Merge MONO_TYPE_VOID in default decoding code.
13396
13397 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13398
13399         * image.h: merged MonoMetadata into MonoImage
13400
13401         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13402         identify the type of elements.
13403
13404 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13405
13406         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13407         * cil-coff.h: split MonoMSDOSHeader and add size info.
13408         * image.c: add some consistency checks.
13409         * metadata.c: fix row size computation: one programmer
13410         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13411         add explanation for the locator routine.
13412         Fix decoding of size in method header.
13413         
13414 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13415
13416         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13417         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13418         function from gnome-libs.  This uses the right path separator
13419         based on the OS, and also works around a bug in some systems where
13420         a double slash is not allowed. 
13421         (default_assembly_name_resolver): Use g_concat_dir_and_file
13422         (mono_assembly_open): ditto.
13423
13424 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13425
13426         * metadata.c (mono_metadata_signature_equal): impl.
13427
13428         * *: void is now a realy MonoType (instead of using NULL)
13429         
13430         * metadata.c (do_mono_metadata_parse_type): use
13431         mono_metadata_parse_type to parse void value.
13432
13433 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13434
13435         * metadata.c, metadata.h: in the signature and method header store
13436         only the space required for holding the loca vars and incoming arguments.
13437
13438 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13439
13440         * metadata.c (do_mono_metadata_parse_type): treat void like any
13441         other type (instead of assigning NULL);
13442
13443 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13444
13445         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13446
13447 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13448
13449         * image.c (do_mono_image_open): added a cache for arrays.
13450
13451 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13452
13453         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13454         decode a single column from a row in a metadata table and changes
13455         to take advantage of it in the typedef locator (gives a nice speed up).
13456         Store offset info for function params.
13457
13458 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13459
13460         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13461
13462 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13463
13464         * assembly.c: how could mono_assembly_close () had ever worked?
13465         * metadata.c, metadata.h: provide offset info for local vars.
13466         Implement mono_type_size () to take care of alignment as well
13467         as size (it was mono_field_type_size in cli/class.c before).
13468
13469 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13470
13471         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13472
13473         * assembly.h (CORLIB_NAME): set to corlib.dll
13474
13475         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13476
13477 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13478
13479         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13480         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13481         tokentype.h: massive namespace cleanup.
13482
13483 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13484
13485         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13486
13487 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13488
13489         * metadata.c (mono_metadata_free_type): added check for type !=
13490         NULL (void) before calling mono_metadata_free_type()
13491
13492 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13493
13494         * metadata.h, row_indexes.h: added header with enumerations to use
13495         to index in the columns from tables in metadata and to decode coded
13496         tokens: we should start using this instead of embedding magic numbers
13497         all over the code.
13498
13499 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13500
13501         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13502         Move metadata_t info from cli_image_info_t to MonoImage, where
13503         it's easily accessible. Changed all the uses accordingly.
13504         Added the method and class caches to MonoImage.
13505         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13506         and mono_metadata_decode_value () signature to be more consistent
13507         with the other parse functions (and simplify code). Taken advantage
13508         of zero-length array allocation with GCC. Removed reduntant (and
13509         wrong) MonoFieldType struct and use MonoParam instead. Changed
13510         mono_metadata_parse_field_type () to use common code for parsing.
13511         Added mono_metadata_typedef_from_field () and
13512         mono_metadata_typedef_from_method () to lookup a typedef index from a
13513         field or method token.
13514         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13515
13516 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13517
13518         * metadata.c (mono_metadata_parse_field_type): Implement. 
13519         (do_mono_metadata_parse_type): Split engine from
13520         mono_metadata_parse_type, so that we can create smaller structures
13521         for things that just have one pointer to the MonoType (look at
13522         the MonoFieldType)
13523
13524 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13525
13526         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13527         as Jan Gray found out, it is incorrect. 
13528
13529 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13530
13531         * assembly.c: Implement asssembly loading.  This loads an image
13532         and loads all the referenced assemblies.  Come to think of it, we
13533         could always do lazy loading of the assemblies. 
13534
13535         * image.c (mono_image_open): Keep loaded images in a hashtable.
13536
13537         * image.h (MonoImage): Add reference count.
13538
13539 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13540
13541         * assembly.c (mono_assembly_open): Keep track of the file name in
13542         case the assembly has no ASSEMBLY table.
13543
13544         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13545         from get.c here.
13546
13547 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13548
13549         * metadata.c, metadata.h: decode local vars in method header
13550         parse function. Change callers accordingly.
13551
13552 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13553
13554         * metadata.h, cil-coff.h: protect against multiple inclusion.
13555         Added some new structures to hold information decoded from metadata:
13556         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13557         and relevant decoding/free functions.
13558         * metadata.c: implement decoding functions. Add warning for out of bounds
13559         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13560         all the info about a method signature and invocation. Remove check on
13561         uninitialized local var in parse_mh() and fix memory leak.
13562
13563 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13564
13565         * metadata.h: More macros.
13566
13567         * tokentype.h: New file.
13568
13569 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13570
13571         * assembly.c: added a consistency check and initialize
13572         some structures with g_new0().
13573         * metadata.c: fixed a couple more bugs in table size computation
13574         and add other checks for out-of bound access to metadata.
13575
13576 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13577
13578         * metatada.c: fix bugs computing table sizes. Spew a
13579         warning when index in string heap is out of bounds.
13580
13581 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13582
13583         * metadata.h: Add a couple of macros to manipulate tokens. 
13584
13585 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13586
13587         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13588         cli_section_tables).
13589
13590 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13591
13592         * metadata.c (mono_metadata_user_string): New function, provides
13593         access to the UserString heap. 
13594
13595 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13596
13597         * metadata.c: Add inline documentation.
13598
13599 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13600
13601         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13602         files. 
13603
13604 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13605
13606         * typeattr.h: New file, TypeAttribute flags. 
13607
13608 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13609
13610         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13611         mono_assembly_ensure_section): Section loading code.
13612         (load_section_tables): Load the sections.
13613
13614         * mono/metadata/metadata.c (mono_metadata_locate_token,
13615         mono_metadata_locate): Functions to locate the information
13616         definition given a token or a table and an index.
13617         (mono_metadata_compute_table_bases): New.
13618         (compute_size): New function to compute the sizes of the various
13619         tables.
13620
13621         * mono/metadata/metadata.h: Finish listing the different index
13622         types. 
13623
13624         * mono/metadata/pedump.c: Improve to dump new information.
13625
13626 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13627
13628         * mono/metadata/metadata.c: Entered all the tables matching
13629         Beta2. 
13630
13631         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13632