2005-01-26 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * reflection.c: Remove warning by adding missing include for marshal.h
4
5 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6
7         * domain.c, object.c: change the ldstr_table to hold
8         MonoString* as keys: makes the runtime isinterned lookup
9         faster and simplifies memory management.
10
11 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
12  
13         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
14         possible to add imperative security checks before calling the icall.
15         * reflection.c: Return security attributes on the original MonoMethod
16         (and not the wrapped one). This fix permissions on icalls.
17
18 2005-01-25  Dick Porter  <dick@ximian.com>
19
20         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
21         the check for mktime() support actually test the mktime() return
22         value.  "Fixes" bug 71682, though the output is still different to
23         MS.
24
25 2005-01-25  Martin Baulig  <martin@ximian.com>
26
27         * class.c (mono_class_is_assignable_from): Make this work for
28         generic instances.
29
30 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
31
32         * marshal.c (mono_string_utf8_to_builder)
33         (mono_string_builder_to_utf16): We might not have ownership of the
34         string. In thise case, we need to create a new buffer.
35
36         * object-internals.h (mono_stringbuilder_capacity): sb->str might
37         be null, in which case, use the default capacity.
38
39 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
40
41         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
42         GC events to the profiler.
43
44 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
45
46         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
47         if you don't want the GC to run.
48
49 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
50
51         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
52         start providing a GC API and keeping different implementations in
53         their own file.
54         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
55
56 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
57
58         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
59         mmap rather than allocating a huge buffer.
60         (mono_debug_close_mono_symbol_file): Free the buffer allocated
61         above.
62
63 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
64
65         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
66         and CheckExecutionRights.
67         * reflection.c|h: Keep the index of the declarative security to be 
68         used, instead of the pointer, when AOT compiler is used. Also add 
69         class initialization when requesting demands.
70         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
71         CheckExecutionRights. Both properties are now FALSE by default, and
72         unmodifiable, unless the --security option is used.
73
74 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
75
76         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
77         reflection.c: properly refcount images and assemblies, many leaks fixed.
78
79 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
80
81         * threadpool.c: increase the timeout for threads in the thread pool to
82         10s.  Fixes bug #67159.
83
84 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
85
86         * class-internals.h: Sun's compiler insists on explicit
87         signed on bit fields to handle then correctly.
88
89 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
90
91         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
92         Make the size of the array fit only the number of invalid path
93         chars that we have.
94
95         * class.c (_mono_class_get): Improve the error reporting when a
96         class referenced is not found, to assist debugging. 
97
98 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
99
100         * threads.c: fix off-by-one error.
101         * domain.c: free data allocated in the domain.
102
103 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
104
105         * reflection.c (mono_method_body_get_object): Fill out exception info
106         as well.
107
108         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
109         structure.
110         
111 2005-01-19  Martin Baulig  <martin@ximian.com>
112
113         * loader.c (mono_get_method_constrained): Make this work again.
114
115 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
116
117         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
118         guint16 to match the managed side.
119
120         * reflection.c (mono_reflection_body_get_object): Fill out local
121         variables array.
122
123         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
124         as well.
125
126         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
127         'local_var_sig_token'.
128
129 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
130
131         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
132         System.Drawing.
133
134         * reflection.c (mono_method_body_get_object): Handle abstract and
135         runtime methods.
136
137 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
138
139         * marshal.c, loader.c, class-internals.h, reflection.c:
140         store the emthod data for a wrapper in an array instead of a list.
141
142 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
143
144         * marshal.c: change the code to allocate memory more
145         conservatively for method wrappers.
146
147 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
148
149         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
150         fields from MonoClass to the marshal info structure where they belong.
151
152 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
153
154         * class.c, object.c, class-internals.h, marshal.c: rearrange
155         some fields and tweak some types to lower memory usage.
156
157 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
158
159         * threads.c (signal_thread_state_change): Handle the case when the
160         target thread is the current thread.
161
162         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
163
164         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
165         emit_ptr_to_object_conv. 
166
167         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
168         marshalling. Fixes #71352.
169
170 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
171
172         * metadata.h, blob.h: move table enum to blob.h so it can be included
173         in any header.
174         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
175         cut the size of MonoImage/MonoDynamicImage.
176
177 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
178
179         * profiler.c (mono_profiler_install_simple): Fix default arguments.
180
181 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
182
183         * reflection.c, reflection.h, icall.c: add a function to check
184         if an attribute type is defined for a metadata object.
185
186 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
187
188         * object-internals.h: Added some needed fields from StringBuilder class.
189         * marshal.c: Set the maxCapacity when creating a StringBuilder.
190
191 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
192
193         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
194         threads before shutting down the runtime.
195
196         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
197
198 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
199
200         * object-internal.h, threads.c: implement stacksize and 
201         parameterized thread start functionality (requires
202         matching corlib). Marked broken code for later removal.
203
204 2005-01-12  Martin Baulig  <martin@ximian.com>
205
206         * class-internals.h (MonoGenericClass): Moved the `initialized'
207         flag to MonoDynamicGenericClass, removed `init_pending'.
208         (MonoGenericInst): Added `is_reference' flag.
209
210 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
211
212         * reflection.c (mono_image_create_pefile): Only set the pe_offset
213         inside the MSDOS header. Fixes #71201.
214
215         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
216         gc thread.
217         (mono_domain_finalize): Ditto.
218
219 2005-01-12  Martin Baulig  <martin@ximian.com>
220
221         * class.c (mono_get_shared_generic_class): Use the cache for
222         non-dynamic generic classes.
223
224         * class-internals.h (mono_class_create_generic_2): Removed
225         function prototype, this function is now static inside class.c.
226
227         * class.c (mono_class_create_generic_2): Made this static, only
228         call it from mono_class_init() and mono_class_setup_parent().
229         (collect_implemented_interfaces_aux): Call mono_class_init() on
230         the interfaces we collect.
231         (mono_class_setup_vtable): Call mono_class_init (class->parent).
232
233 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
234
235         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
236         it a real thread handle.
237
238         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
239         MonoJitExceptionInfo, since each catch clause needs its own variable.
240         
241 2005-01-11  Dick Porter  <dick@ximian.com>
242
243         * image.c (mono_pe_file_open): New variant on mono_image_open()
244         that does not set up the CLI metadata; used for FileVersionInfo so
245         it can get the data for windows binaries too.
246         
247         * process.c (process_read_string_block): Don't read off the end of
248         the StringTable block.
249
250         These both fix bug 70766.
251
252 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
253
254         * gc.c: set some fields to NULL at GC cleanup time.
255         * threads.c: if we quit the main thread, call exit ().
256
257 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
258
259         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
260
261 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
262
263         * threads.h, threads.c, object.c: added accessor and settor for
264         main_thread. Handle it specially when exiting from it: wait
265         for other foreground threads to exit.
266
267 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
268
269         * process.c, verify.c: remove some bloat.
270
271 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
272
273         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
274         the calling convention to cdecl under win32.
275
276 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
277
278         * object.c (mono_object_get_size): New function to get the size of
279         an object instance.
280
281         * profiler.c (simple_allocation): Use above.
282
283 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
284
285         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
286         ves_icall_System_AppDomain_getRootDomain (as it's not required to
287         get an appdomain by it's id and we can't assume the root's id is 0).
288         * domain-internals.h: Change the function prototype to match.
289         * icall.c: Change the icall table for AppDomain.
290
291 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
292
293         * locales.c (string_invariant_compare_char): Only compute
294         GUnicodeTypes in the case where we need them.  Test for ordinality
295         first and return if so.
296
297         From the commit:
298
299                 /*
300                  * FIXME: here we must use the information from c1type and c2type
301                  * to find out the proper collation, even on the InvariantCulture, the
302                  * sorting is not done by computing the unicode values, but their
303                  * actual sort order.
304                  */
305
306 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
307
308         * loader.c: for P/Invoke methods, allow the "Internal" shared
309         library name to refer to the calling process symbol namespace.
310
311 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
312
313         * Makefile.am: Add the security manager to the build.
314         * security-manager.c|h: New. Initialization of the security manager.
315
316 2005-01-07  Dick Porter  <dick@ximian.com>
317
318         * threads.c: 
319         * monitor.c: Update thread state during Monitor and WaitHandle
320         waits.  Fixes bug 71031.
321
322 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
323
324         * reflection.c (property_encode_signature): Correctly handle when the
325         property has no methods.
326
327 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
328
329         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
330         
331         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
332         fields from mb, not rmb. Fixes #71017.
333
334         * marshal.c (emit_ptr_to_str_conv): Add support for 
335         ByValTStr -> string conversion. Fixes #71015.
336
337         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
338
339         * mempool.c (mono_mempool_contains_addr): New helper function.
340
341 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
342
343         * metadata.c (mono_metadata_compute_size): Fix size calculation of
344         HasSematics encoded fields.
345         
346         * metadata.c (mono_type_to_unmanaged): Improve error message for 
347         invalid string marshalling.
348
349         * metadata.c: Fix warnings.
350         
351 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
352
353         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
354         profiler support.
355
356 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
357
358         * domain.c object.c domain-internals.h: Revert part of r38077 since the
359         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
360         tests.
361
362 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
363
364         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
365         so methods containing these can be AOTed.
366
367 2005-01-03  Martin Baulig  <martin@ximian.com>
368
369         * loader.c (find_method): Removed the hack for generic instances.
370         (method_from_memberref): If our parent is a generic instance, pass
371         its generic type definition to find_method() and then inflate the
372         method.
373         (mono_get_method_constrained): Pass the generic type definition to
374         find_method() and inflate the method later.
375
376         * class-internals.h (MonoStats): Added `generic_class_count'.
377
378         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
379         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
380
381         * reflection.c (mono_custom_attrs_from_params): Don't ignore
382         generic type definitions.
383
384 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
385
386         * loader.c icall.c: Fix warnings.
387
388 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
389
390         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
391         blittable types. Fixes #70864.
392
393 2004-12-29  Martin Baulig  <martin@ximian.com>
394
395         * icall.c
396         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
397
398         * reflection.c (mono_method_get_object): Create a
399         "System.Reflection.MonoGenericMethod" for inflated methods; don't
400         call mono_get_inflated_method().
401
402         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
403
404 2004-12-27  Martin Baulig  <martin@ximian.com>
405
406         * class-internals.h (MonoMethod): Added `is_inflated' flag.
407         (MonoMethodInflated): Added `inflated' field.
408
409         * class.c (mono_class_inflate_generic_method): Don't really
410         inflate the method here; just set the `is_inflated' flag in the
411         MonoMethod.
412         (mono_class_get_inflated_method): Actually inflate the method here
413         if it's not already inflated; we use the MonoMethodInflated's new
414         `inflated' field as a cache.
415
416 2004-12-26  Martin Baulig  <martin@ximian.com>
417
418         * class.c
419         (inflate_generic_class): Moved some code out of inflate_generic_type().
420         (mono_class_inflate_generic_method): If we're already inflated,
421         inflate the context and use the declaring method; ie. make sure
422         the declaring method of an inflated method is always the generic
423         method definition.
424         (mono_class_create_from_typedef): Create
425         `class->generic_container->context->gclass'.
426
427 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
428
429         * metadata-internals.h, marshal.c, reflection.c: More
430         MonoGHashTable->GHashTable.
431
432         * domain-internals.h, class.c: Change MonoGHashTable's into
433         GHashTables for some cases where no gc stuff is used
434
435         All users: update apis
436
437 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
438
439         * metadata.c (builtin_types): Make this `const'. Makes this get
440         put into the shareable section.
441         (mono_metadata_init): Casts to make gcc happy.
442
443 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
444
445         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
446
447 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
448
449         * icall.c: Added an internal call to retrieve the position and length
450         of assembly-level declarative security attributes (RequestMinimum, 
451         RequestOptional and RequestRefuse). This is used by the Assembly class
452         to re-create the corresponding permission sets.
453
454 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
455
456         * marshal.c: fix the stelemref wrapper to be type correct
457         (and faster).
458
459 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
460
461         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
462         to do key & 0x7fffffff. Hashtable already does this. It just
463         results in longer code.
464
465 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
466
467         * appdomain.c: Bump corlib version.
468         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
469         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
470         * reflection.c|h: Add functions to get declarative security infos
471         (blob position and length) for assemblies, classes and methods.
472
473 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
474
475         * reflection.c: sort the constant table (bug #70693).
476
477 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
478
479         * object-internals.h, threads.c, domain.c: add accessors for
480         the MonoThread and MonoDomain tls keys.
481
482 2004-12-18  Martin Baulig  <martin@ximian.com>
483
484         * class.c (inflate_generic_type): If we're inflating a generic
485         instance, set `ngclass->context->container = context->container';
486         ie. the container we inflated into.
487
488         * metadata.c (mono_metadata_parse_generic_param): Reflect above
489         inflate_generic_type() changes.
490
491 2004-12-17  Martin Baulig  <martin@ximian.com>
492
493         * class-internals.h
494         (MonoGenericClass): Replaced `MonoType *generic_type' with
495         `MonoClass *generic_class'.  Removed `dynamic_info'; if
496         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
497         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
498
499 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
500
501         * exception.c (mono_exception_from_token): New helper function.
502
503 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
504
505         * assembly.c (mono_assembly_load_with_partial_name): Call 
506         mono_assembly_loaded before invoking the preload hooks. Fixes
507         #70564.
508
509         * object-internals.h (MonoThread): Change culture_info and 
510         ui_culture_info into an array.
511
512         * threads.c: Cache culture info objects from more than one appdomain.
513
514         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
515         current UI culture.
516
517 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
518
519         * threads.h threads.c appdomain.c: Clear the culture_info field of
520         all threads during unloading if they point to an object in the dying
521         appdomain.
522
523 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
524
525         * culture-info.h (TextInfoEntry): New struct
526         * object-internals.h: sync with managed
527         * locales.c: fill the `text_info_data' field
528         * culture-info-tables.h: update
529
530 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
531
532         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
533         collector.
534
535 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
536
537         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
538         (ves_icall_ModuleBuilder_getMethodToken): Ditto
539
540 2004-12-12  Martin Baulig  <martin@ximian.com>
541
542         * mono-debug-debugger.c (write_type): If we're an enum and the
543         builtin types have already been initialized, call mono_class_init().
544
545 2004-12-11  Martin Baulig  <martin@ximian.com>
546
547         * metadata.c (mono_metadata_load_generic_params): Added
548         `MonoGenericContainer *parent_container' argument; automatically
549         compute `container->is_method'; pass the correct owner to
550         get_constraints().      
551
552         * reflection.c (compare_genericparam): Sort the GenericParam table
553         according to increasing owners. 
554
555 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
556
557         * profiler.c: allow disabling the default profiler.
558
559 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
560
561         * decimal.c, icall.c: allow disabling System.Decimal support.
562
563 2004-12-09  Marek Safar <marek.safar@seznam.cz>
564
565         * reflection.c: Add support for null attribute arguments.
566
567 2004-12-09  Martin Baulig  <martin@ximian.com>
568
569         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
570         names to get rid of compiler warnings.
571
572 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
573
574         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
575         mono_marshal_load_type_info (). Fixes #69625.
576         (mono_marshal_get_ptr_to_struct): Likewise.
577
578 2004-12-08  Martin Baulig  <martin@ximian.com>
579
580         * mono-debug.h: Bumped version number to 47.
581
582         * mono-debug-debugger.c
583         (mono_debugger_event_handler, mono_debugger_event): Take two
584         guint64 arguments insteed of a gpointer and a guint32.  
585
586 2004-12-08  Martin Baulig  <martin@ximian.com>
587
588         * debug-mono-symfile.h
589         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
590         `address' to `native_offset'.
591
592 2004-12-08  Martin Baulig  <martin@ximian.com>
593
594         * class.c (mono_class_create_from_typespec): Only inflate if we
595         either have `context->gclass' or `context->gmethod'.
596
597 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
598
599         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
600
601         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
602
603         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
604
605         * reflection.c (mono_assembly_get_object): Remove the workaround put
606         in for the release.
607         
608         * appdomain.c: Use the corlib_internal field from MonoAssembly.
609
610         * appdomain.c: Bump corlib version.
611
612         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
613         be visible in other appdomains.
614
615 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
616
617         * threads.c: Interlocked inc and dec for longs were messed up,
618         use a KISS based impl for this. Fixes 70234
619
620 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
621
622         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
623
624 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
625
626         * icall.c: fix to follow policy not to allow struct
627         arguments in icalls.
628
629 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
630
631         * process.c: make the patch that handles spaces in file paths work
632         on mono/windows too.
633
634 2004-12-06  Martin Baulig  <martin@ximian.com>
635
636         * class.c (mono_class_create_generic): Call
637         mono_class_setup_supertypes() if we're dynamic.
638         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
639
640 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
641
642         * object-internals.h: Add new fields to MonoThread.
643
644         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
645
646         * icall.c threads-types.h threads.c: Add new icalls.
647
648         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
649
650         * object-internals.h (MonoReflectionAssembly): Sync object layout with
651         managed side.
652
653         * appdomain.c: Bump corlib version.
654
655         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
656         internal assemblies. Fixes #69181.
657
658 2004-12-05  Martin Baulig  <martin@ximian.com>
659
660         * class.c (mono_class_inflate_generic_signature): Make this a
661         no-op if `context' is NULL or we don't have any type parameters;
662         also copy `sentinelpos'.        
663
664 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
665
666         * image.c: Add unbox_wrapper_cache.
667
668         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
669
670         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
671         function generator.
672         
673         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
674         Fixes #70173.
675
676         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
677         
678 2004-12-04  Martin Baulig  <martin@ximian.com>
679
680         * loader.c (mono_method_get_signature_full): New public function;
681         like mono_method_get_signature(), but with an additional
682         `MonoGenericContext *' argument.
683
684         * class.c (mono_class_inflate_generic_signature): Formerly known
685         as inflate_generic_signature(); make this public.
686
687 2004-12-04  Martin Baulig  <martin@ximian.com>
688
689         * metadata.c
690         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
691         instead of a `MonoGenericContainer *'.  
692         (mono_metadata_parse_array_full): Likewise.
693         (mono_metadata_parse_signature_full): Likewise.
694         (mono_metadata_parse_method_signature_full): Likewise.
695         (mono_metadata_parse_generic_inst): Likewise.
696         (mono_metadata_parse_generic_param): Likewise.
697         (mono_metadata_parse_mh_full): Likewise.
698         (mono_type_create_from_typespec_full): Likewise.
699
700 2004-12-03  Martin Baulig  <martin@ximian.com>
701
702         * class-internals.h (MonoGenericContainer): Replaced the
703         `MonoGenericContext * pointer with a `MonoGenericContext'
704         structure and made it the first element.
705
706 2004-12-03  Martin Baulig  <martin@ximian.com>
707
708         * class.c
709         (inflate_generic_type): Set the `context->container' when creating
710         a new MonoGenericContext.
711         (mono_class_inflate_generic_method): Likewise.
712         (mono_class_create_from_typespec): Just use `context->container'
713         to get the container.
714
715         * loader.c (method_from_methodspec): Set `context->parent' from
716         `context->container' - and if that's a method container, use its
717         parent.  Also set the `context->container' when creating a new
718         MonoGenericContext.
719         (mono_get_method_from_token): Use just `context->container' to get
720         the container.
721
722         * metadata.c (do_mono_metadata_parse_generic_class): Also set
723         `gclass->context->container'.
724
725         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
726         the `context->container' when creating a new MonoGenericContext.
727
728 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
729
730         * reflection.c (compare_genericparam): Sort params with identical
731         owner by their number. Fixes gen-111 on sparc.
732
733 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
734
735         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
736         around the domain changes.
737
738         * appdomain.c (mono_domain_unload): Handle the case when the thread
739         calling Unload is itself being aborted during unloading. Fixes #70022.
740
741         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
742
743         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
744         checkpoint_func as an icall so it gets a wrapper.
745         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
746         in the cross-appdomain wrappers too.
747
748         * threads.c (mono_thread_has_appdomain_ref): Make this public.
749
750         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
751
752         * reflection.c: Fix some memory leaks.
753         
754 2004-12-02  Martin Baulig  <martin@ximian.com>
755
756         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
757
758         * metadata.c (generic_class_cache): New static hashtable.
759         (mono_metadata_lookup_generic_class): New public method.
760
761 2004-12-02  Martin Baulig  <martin@ximian.com>
762
763         * class.c (mono_class_create_from_typedef): Call
764         mono_class_setup_parent() and mono_class_create_mono_type() before
765         parsing the interfaces.
766
767 2004-12-02  Martin Baulig  <martin@ximian.com>
768
769         * metadata.c (generic_inst_cache): New static hashtable.
770         (mono_metadata_lookup_generic_inst): New public function.
771         (mono_metadata_inflate_generic_inst): New public function.
772         (mono_metadata_parse_generic_inst): New public function.
773         (do_mono_metadata_parse_generic_class): Use the new
774         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
775         since this'll also use the cache.
776
777         * reflection.c (mono_reflection_bind_generic_method_parameters):
778         Use mono_metadata_lookup_generic_inst() to use the new cache.
779
780         * class.c (inflate_mono_type): Use
781         mono_metadata_inflate_generic_inst() to inflate a generic
782         instance; this'll also use the new cache.
783
784         * loader.c (method_from_methodspec): Use
785         mono_metadata_parse_generic_inst() and
786         mono_metadata_inflate_generic_inst() rather than parsing it
787         manually, so we can use the new cache.
788
789 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
790
791         * threads.c (wait_for_tids): Do not incorrectly free threads when 
792         the wait times out.
793
794 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
795
796         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
797         iter->args based on whether parameters are passed in registers (i.e.
798         MONO_ARCH_REGPARMS is defined)
799
800 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
801
802         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
803         the exception message. Fixes #70070.
804         (method_from_methodspec): Fix warnings.
805
806 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
807
808         * process.c: (complete_path) return the path quoted
809
810 2004-12-01  Martin Baulig  <martin@ximian.com>
811
812         * class-internals.h (MonoGenericInst): New structure.
813         (MonoGenericClass): Replaced `type_argc', `type_argv' and
814         `is_open' with `MonoGenericInst *inst'.
815         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
816         `is_open' with `MonoGenericInst *inst'.
817
818 2004-11-30  Martin Baulig  <martin@ximian.com>
819
820         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
821
822         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
823         to `generic_class_cache'.
824
825         * metadata.c
826         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
827         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
828         (mono_generic_inst_is_valuetype): Renamed to
829         mono_generic_class_is_valuetype().
830
831         * class-internals.h
832         (MonoGenericInst): Renamed to MonoGenericClass.
833         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
834         (MonoClass): Renamed `generic_inst' to `generic_class'.
835         (MonoGenericContext): Renamed `ginst' to `gclass'.
836
837         * object-internals.h
838         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
839
840         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
841         mono_reflection_generic_class_initialize().
842
843         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
844         now known as "System.Reflection.MonoGenericClass".
845         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
846
847 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
848
849         * class-internals.h: Added a flag field to MonoClass to cache the
850         declarative security attributes actions associated with the class.
851         * domain-internals.h: Added booleans to MonoJitInfo to cache the
852         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
853         applicable to the JITted method.
854         * reflection.c|h: Added functions to extract (as flags) which security
855         actions are available (declaratively) for a method, class or assembly.
856         * metadata.c|h: Added functions to search the declarative security
857         table in the metadata.
858         
859 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
860
861         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
862         EXPORTEDTYPES are already in the class name cache, so there is no
863         need to add extra code here to look at them. Just removes a bit of
864         cruft.
865
866         (ves_icall_System_Environment_get_TickCount): No need for #if
867         WINDOWS. We already have the code in io-layer.
868
869 2004-11-28  Martin Baulig  <martin@ximian.com>
870
871         * loader.c
872         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
873         Fixes gen-112.cs.
874
875 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
876
877         * assembly.c (do_mono_assembly_open): Instead of having a
878         conditional WITH_BUNDLE, incorporate support for bundles here, by
879         having a global `bundles' variable holding a pointer to the actual
880         bundles. 
881
882         (mono_register_bundled_assemblies): New API call used by the
883         bundle code. 
884
885         See mkbundle.1 for details.
886         
887 2004-11-27  Martin Baulig  <martin@ximian.com>
888
889         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
890         the vtable for generic methods.
891
892 2004-11-26  Martin Baulig  <martin@ximian.com>
893
894         * metadata.c
895         (mono_metadata_generic_method_hash): New public function.
896         (mono_metadata_generic_method_equal): Likewise.
897
898         * class-internals.h
899         (MonoGenericContainer): Added `GHashTable *method_hash'.
900
901         * reflection.c (ReflectionMethodBuilder): Added
902         `MonoGenericContainer *generic_container'.
903         (reflection_methodbuilder_to_mono_method): Don't create a new
904         MonoGenericContainer each time we're called.
905         (mono_reflection_bind_generic_method_parameters): Use
906         `container->method_hash' to cache the results so we don't create a
907         different method if we're called several times with the same
908         arguments.
909
910         * loader.c (method_from_methodspec): Use the new
911         `container->method_hash' here, too.
912
913 2004-11-26  Martin Baulig  <martin@ximian.com>
914
915         * class.c (inflate_generic_signature): Correctly compute
916         `res->has_type_parameters'.
917         (mono_class_vtable): Use the `has_type_parameters' flag to
918         determine whether we're a generic method.
919
920         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
921
922 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
923
924         * object.c (mono_runtime_run_main): Fix a small memory leak.
925
926 2004-11-25  Martin Baulig  <martin@ximian.com>
927
928         * class.c (set_generic_param_owner): Fixed the loop.
929
930 2004-11-25  Martin Baulig  <martin@ximian.com>
931
932         * object.c (mono_class_vtable): Don't create any JIT wrappers for
933         generic methods.
934
935 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
936
937         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
938         names. Fixes #69787.
939
940 2004-11-24  Martin Baulig  <martin@ximian.com>
941
942         * class.c (mono_class_create_generic_2): If we don't have a
943         `ginst->parent', inflate `gklass->parent' to get our parent.
944
945 2004-11-24  Martin Baulig  <martin@ximian.com>
946
947         * reflection.c (compare_genericparam): Correctly sort the
948         GenericParam table; fixes #69779.
949
950 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
951
952         * reflection.c: When writing a PE file, don't create a huge
953         buffer in memory. Just write the arrays we have to the file.
954         This reduces memory usage.
955
956         * metadata-internals.h: MonoDynamicStream pefile is no longer used
957         globally.
958
959 2004-11-17  Martin Baulig  <martin@ximian.com>
960
961         * class.c (mono_class_init): Don't setup `class->parent' for
962         dynamic instances; moved this to mono_class_generic_2().
963         (mono_class_create_generic): Also set `klass->inited' for dynamic
964         generic instances.
965         (mono_class_create_generic_2): Don't do anything for dynamic
966         generic instances.  Set `klass->parent' here and also call
967         mono_class_setup_parent() here. 
968
969         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
970         `MonoType *parent' argument; set `ginst->parent' before calling
971         mono_class_create_generic_2(), so we set the correct parent.
972
973 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
974
975         * reflection.c: allow getting attributes from ModuleBuilder
976         (used by ikvm).
977
978 2004-11-17  Martin Baulig  <martin@ximian.com>
979
980         * class.c (mono_class_create_from_typedef): If a type parameter is
981         inherited from an outer class, set its owner to that class.
982
983 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
984
985         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
986           for (int*) written size. This fixes bug #69592.
987
988 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
989
990         * icall.c: Added IsAuthenticodePresnet internal call.
991         * image.c|h: New function that check a MonoImage for an Authenticode
992         signature in the certificate PE data directory.
993         * security.c|h: New internal call to ask the runtime if an 
994         Authenticode signature seems referenced in the PE header.
995
996 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
997
998         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
999
1000         * reflection.c (mono_image_create_pefile): Free the assembly streams
1001         after writing out the assembly file.
1002
1003         * object.c (mono_runtime_run_main): Fix small memory leak.
1004
1005         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
1006         property access modifiers. Fixes #69389.
1007
1008 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
1009
1010         * domain.c, object.c, object-internals.h, domain-internals.h,
1011         object.h, marshal.c: keep dynamic code info per domain.
1012
1013 2004-11-15  Martin Baulig  <martin@ximian.com>
1014
1015         * class.c (mono_type_get_name_recurse): Put type arguments in
1016         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
1017         see bug #68387.
1018
1019 2004-11-15  Martin Baulig  <martin@ximian.com>
1020
1021         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
1022         (mono_class_setup_vtable): When computing `the_cname' for a
1023         generic instance, don't include the namespace since we'd otherwise
1024         add it twice.
1025
1026 2004-11-15  Martin Baulig  <martin@ximian.com>
1027
1028         * class.c (mono_class_create_generic): Changed return type to void.
1029         (mono_class_create_generic_2): New public function; setup
1030         `class->method', `class->field' and `class->interfaces' here
1031         instead of in mono_class_init().
1032
1033         * class.h (mono_class_create_generic): Moved to class-internals.h.
1034
1035 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
1036
1037         * reflection.c (mono_image_create_pefile): take a file HANDLE.
1038         rather than writing to memory, write to this file. Right now,
1039         we are just writting into a buffer, and copying that. However
1040         we can avoid the buffer later.
1041
1042         (mono_dynamic_stream_reset): new function
1043
1044         * icall.c, object-internals.h: update for the above.
1045
1046 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
1047
1048         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
1049         have been using gc'd memory. First it is slower, unlikely
1050         the comment in the source code said, secondly, it increases
1051         our footprint to do it in the gc.
1052
1053         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
1054         the method so that it does not have to copy to managed code.
1055
1056 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
1057
1058         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
1059
1060 2004-11-12  Martin Baulig  <martin@localhost>
1061
1062         * reflection.c (mono_image_create_token): Allow generic method
1063         definitions here, since they may appear in an `.override'; see
1064         gen-98/gen-99 for an example.
1065
1066 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
1067
1068         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
1069         #69365.
1070
1071         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
1072         descriptive.
1073
1074 2004-11-11  Martin Baulig  <martin@ximian.com>
1075
1076         * class.c (mono_class_setup_vtable): In an explicit interface
1077         implementation, the method name now includes the arity.
1078
1079 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
1080
1081         * object.c (mono_array_full_copy): Fix warning.
1082
1083 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
1084
1085         * appdomain.c: Removed look_for_method_by_name(). Use the new method
1086         mono_class_get_method_from_name() instead.
1087         
1088         * class-internals.h: Added two new types of wrappers. 
1089         Added MonoRemotingTarget enum. Added new trampoline function type, which
1090         takes an additional MonoRemotingTarget value as parameter, so it is
1091         possible to request a trampoline for a specific target.
1092         
1093         * class.c: Added new mono_class_get_method_from_name() method.
1094         
1095         * class.h: In MonoRemoteClass, we can have now to vtables, one for
1096         general remoting sinks and one specific for cross domain calls.
1097         
1098         * debug-helpers.c: Added new wrapper names.
1099         
1100         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
1101         of a remote class.
1102         
1103         * image.c: Porperly delete value objects form the remoting invoke hashtable.
1104         
1105         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
1106         with several other methods (mono_marshal_get_xappdomain_dispatch,
1107         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
1108         and others) can generate a fast remoting wrapper for cross domain calls.
1109         More information can be found in docs/remoting.
1110         Other changes: Removed mono_find_method_by_name, and used
1111         mono_class_get_method_from_name instead.
1112         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
1113         is stored in the remoting invoke hashtable.
1114         
1115         * marshal.h: published the new method for getting the xdomain wrapper,
1116         and also added a method for getting the adequate wrapper for a given
1117         method and target.
1118         
1119         * object-internals.h, object.c: Added a couple of methods for capying and
1120         cloning arrays.
1121         Modified mono_install_remoting_trampoline, which takes the new remoting
1122         trampoline that has a remoting target as parameter.
1123         mono_class_proxy_vtable now also takes a remoting target as parameter, and
1124         will return the most suitable vtable for the target.
1125         Added mono_remote_class_vtable, which returns the vtable of a remote class
1126         (which can be the normal remoting vtable or the xdomain vtable).
1127         
1128         * threads.c: the xdomain invoke and dispatch wrappers must also be
1129         protected against interruptions.
1130
1131 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1132
1133         * icall.c: use memmove in BlockCopyInternal when the source and
1134         destination arrays are the same.
1135
1136 2004-11-09  Martin Baulig  <martin@ximian.com>
1137
1138         * class-internals.h (MonoGenericContainer): Removed `method' and
1139         `signature', replaced them with `is_method' and `is_signature'
1140         flags.  Added `context'.
1141
1142         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
1143         instead of a `MonoGenericContainer *'.
1144
1145         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
1146         for dynamic type parameters.
1147         (mono_metadata_load_generic_params): Setup `container->context'.
1148
1149         * reflection.c (mono_reflection_setup_generic_class): Setup
1150         `tb->generic_container->context'.
1151         (do_mono_reflection_bind_generic_parameters): Use
1152         mono_class_inflate_generic_type() to correctly inflate types,
1153         rather than using our own hack just for MONO_TYPE_VAR.
1154
1155 2004-11-09  Martin Baulig  <martin@ximian.com>
1156
1157         * class.c (mono_class_inflate_generic_method): Small fix; don't
1158         crash here.
1159
1160         * icall.c
1161         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
1162         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
1163         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
1164         (ves_icall_Type_BindGenericParameters): Likewise.
1165         (ves_icall_Type_get_IsGenericInstance): Likewise.
1166         (ves_icall_Type_GetGenericParameterPosition): Likewise.
1167         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
1168         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1169         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1170
1171 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
1172
1173         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
1174         assembly versions and public key tokens. Fixes #69113.
1175
1176 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
1177
1178         * metadata.c: fix bug introduced with the type cache changes
1179         on 2004-11-06.
1180
1181 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
1182
1183         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
1184         the MonoClass pointer instead of the token in exception clauses.
1185         * reflection.c: updates for the above and make the code not depend
1186         on the structure of MonoExceptionClause.
1187
1188 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1189
1190         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1191         Add support for dynamic assemblies. Fixes #69114.
1192
1193         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1194
1195 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1196
1197         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1198         since most only those methods use it. the code member of
1199         MonoMethodPInvoke was dead, so that can be removed too. Also,
1200         remove inline_count (again, not used), and move slot so that it
1201         can share bits with some other flags. This saves 8 bytes in the
1202         structure and gives us about 50 kb back for mcs helloworld.cs
1203
1204         * *.[ch]: Do naming changes for the above.
1205
1206         * loader.c (mono_method_get_header): Lazily init the header
1207         on first access.
1208         (mono_get_method_from_token): don't init the header here
1209         (mono_free_method): the header may never be allocated
1210
1211         Overall, this saves 150 kb of unmanaged allocations
1212         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1213         memory at runtime.
1214         
1215         * loader.c, loader.h (mono_method_get_header): new accessor.
1216
1217         * *.[ch]: use the above method. Prepares us to lazily load
1218         the header.
1219
1220         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1221         three warnings, which are actual bugs (see 69206).
1222
1223         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1224         unused. Saves a cool 4 bytes / method.
1225
1226 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1227
1228         * metadata.c (builtin_types): Add types for System.Object here.
1229         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1230         for a class or valuetype from klass->this_arg or klass->byval_arg.
1231
1232         On mcs for a hello world, this gets us down from 21836 MonoType's
1233         to 14560.
1234
1235         (mono_metadata_free_type): Account for the above change.
1236
1237 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1238
1239         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1240         exception instead of asserting if name is null.
1241         (ves_icall_System_AppDomain_GetData): Ditto.
1242
1243 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1244
1245         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1246         EnumBuilder.
1247
1248         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1249         Return NULL when the domain does not have entry_assembly set.
1250
1251         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1252         Add a 'resource_modules' argument.
1253         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1254
1255         * reflection.c (mono_reflection_create_runtime_class): Move setting
1256         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1257         for enums too.
1258
1259         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1260         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1261         Throw an ArgumentNullException if 'ptr' is null.
1262
1263         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1264         assemblies here. Fixes #69020.
1265
1266 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1267
1268         * reflection.c (build_compressed_metadata): Fix the previous patch for
1269         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1270         the stack.
1271
1272 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1273
1274         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1275         the cultures is false. Fixes #69090.
1276
1277         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1278         detected by valgrind.
1279         
1280         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1281         TypeResolve multiple times for the same type. Fixes #65577.
1282
1283 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1284
1285         * marshal.c: Avoid using ldftn to call managed functions. It is
1286         much slower than just a call.
1287
1288         * reflection.c (mono_module_get_object): free the basename we
1289         allocate here from glib.
1290         
1291         * reflection.c (ensure_runtime_vtable): make sure to free
1292         overrides.  Also, we were allocating an array of MonoMethod not an
1293         array of MonoMethod*.
1294
1295         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1296
1297         * image.c (mono_image_close): free image->guid here.
1298
1299 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1300
1301         * reflection.c: Fix some spec conformance issues with the PE file
1302         structures so mcs compiled apps run on the Net 2.0 beta.
1303
1304 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1305
1306         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1307         Implement this. Fixes #67264.
1308
1309         * debug-helpers.h debug-helpers.c marshal.c: Move 
1310         mono_find_method_by_name to debug-helpers.c.
1311
1312 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1313
1314         * object.c (mono_release_type_locks): type_initialization_hash is
1315         a GHashTable.
1316
1317         * reflection.c object.c object-internals.h: Fix warnings.
1318
1319         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1320         without accessors. Fixes #61561.
1321
1322         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1323         application base from the root domain if not set. Fixes #65641.
1324         (mono_runtime_init): Fix warning.
1325
1326 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1327
1328         * appdomain.c: call mono_thread_pool_init.
1329         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1330         of worker threads based on the number of CPUs and the environment
1331         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1332         for non-windows (windows) systems.
1333
1334 2004-10-27  Chris Toshok  <toshok@ximian.com>
1335
1336         * mono-debug-debugger.c (write_class): don't call mono_class_init
1337         here, as even with the check for (!klass->init_pending), we get
1338         into a situation where we're hitting cycles in class
1339         initialization.  Fixes #68816.
1340
1341 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1342
1343         * image.c: Avoid overwriting values in the loaded_images_hash when an
1344         assembly is loaded multiple times. Fixes #61152.
1345
1346         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1347         so multiple satellite assemblies for the same name can be loaded.
1348         Fixes #68259.
1349
1350         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1351         not NULL.
1352
1353         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1354         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1355
1356         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1357         pending finalizers are not invoked after the appdomain has been 
1358         unloaded. Fixes #67862.
1359
1360 2004-10-22  Martin Baulig  <martin@ximian.com>
1361
1362         * mono-debug-debugger.c
1363         (mono_debugger_runtime_invoke): Don't box valuetypes.
1364
1365 2004-10-22  Chris Toshok  <toshok@ximian.com>
1366
1367         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1368         don't hide private methods.
1369
1370 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1371
1372         * icall.c: Allows the runtime to "share" (when known) the public key
1373         token of an assembly. This avoid the need to recalculate the token 
1374         (from the public key) in managed code.
1375
1376 2004-10-21  Chris Toshok  <toshok@ximian.com>
1377
1378         * debug-helpers.c (append_class_name): argh, revert last patch.
1379         
1380 2004-10-21  Chris Toshok  <toshok@ximian.com>
1381
1382         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1383         not '/', so that it matches what the debugger uses to look up
1384         methods.
1385
1386 2004-10-21  Martin Baulig  <martin@ximian.com>
1387
1388         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1389         public method; this is called each time an exception is thrown and
1390         allows the debugger to use exception catch points.
1391
1392 2004-10-21  Martin Baulig  <martin@ximian.com>
1393
1394         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1395         the stack pointer and the exception object in some struct and pass
1396         that to the debugger.
1397
1398 2004-10-21  Chris Toshok  <toshok@ximian.com>
1399
1400         * mono-debug-debugger.c (do_write_class): add instance/static
1401         event support.  We don't expose "raise" or "other" yet.
1402         (event_is_static): new method.
1403
1404 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1405
1406         * mono-debug-debugger.c
1407         (mono_debugger_handle_exception): Remove
1408         bogus return value for fussy compilers.
1409
1410 2004-10-20  Martin Baulig  <martin@ximian.com>
1411
1412         * mono-debug-debugger.c
1413         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1414         (mono_debugger_handled_exception): Likewise.
1415
1416 2004-10-20  Martin Baulig  <martin@ximian.com>
1417
1418         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1419         MONO_DEBUGGER_EVENT_EXCEPTION.
1420
1421         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1422         public function to send the debugger a notification for an
1423         exception and inform it about a catch/finally clause.
1424
1425 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1426
1427         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1428         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1429         fix 2.95 build. 
1430
1431         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1432
1433 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1434
1435         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1436         marshalled as [In,Out]. Fixes #58325.
1437
1438 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1439
1440         * reflection.c (mono_method_body_get_object): Implement some fields.
1441
1442 2004-10-12  Martin Baulig  <martin@ximian.com>
1443
1444         * reflection.c (mono_reflection_bind_generic_parameters): Small
1445         fix, correctly retrieve our parent from a generic instance.
1446
1447 2004-10-12  Martin Baulig  <martin@ximian.com>
1448
1449         * metadata.c (mono_metadata_generic_param_equal): We always have
1450         an owner.
1451
1452         * class.c
1453         (mono_class_from_generic_parameter): We need to have an owner.
1454         (my_mono_class_from_generic_parameter): Likewise.
1455
1456         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1457         mono_reflection_create_generic_class() and added a new
1458         mono_reflection_setup_generic_class().  
1459         (mono_reflection_initialize_generic_param): If we're a nested
1460         generic type and inherited from the containing class, set our
1461         owner to the outer class.
1462
1463 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1464
1465         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1466
1467         * reflection.c (mono_method_body_get_object): New function to create
1468         a MethodBody object.
1469
1470         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1471
1472 2004-10-11  Martin Baulig  <martin@ximian.com>
1473
1474         * metadata.c (_mono_metadata_type_equal): Renamed to
1475         do_mono_metadata_type_equal() and made static.
1476
1477 2004-10-11  Martin Baulig  <martin@ximian.com>
1478
1479         * appdomain.c: Bump corlib version number to 28.
1480
1481 2004-10-10  Martin Baulig  <martin@ximian.com>
1482
1483         * class-internals.h
1484         (MonoGenericInst): Added `MonoGenericContainer *container'.
1485         (MonoGenericMethod): Likewise.
1486         (MonoGenericContext): Likewise.
1487         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1488
1489         * metadata.c
1490         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1491         (do_mono_metadata_parse_generic_inst): Likewise.
1492         (mono_metadata_parse_type_full): New public method.  This is the actual
1493         mono_metadata_parse_type() implementation - with an additional
1494         `MonoGenericContainer *' argument.
1495         (mono_metadata_parse_array_full): Likewise.
1496         (mono_metadata_parse_signature_full): Likewise.
1497         (mono_metadata_parse_method_signature_full): Likewise.
1498         (mono_metadata_parse_mh_full): Likewise.
1499         (mono_type_create_from_typespec): Likewise.
1500         (mono_metadata_interfaces_from_typedef_full): New public method;
1501         this is similar to the other _full() methods, but we take a
1502         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1503         (mono_metadata_parse_generic_param): Take an additional
1504         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1505         from that container.
1506         (mono_metadata_generic_param_equal): New static method to compare
1507         two type parameters.
1508         (_mono_metadata_type_equal): New static method; takes an
1509         additional `gboolean signature_only' argument - if true, we don't
1510         compare the owners of generic parameters.
1511         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1512         with a TRUE argument - do a signature-only comparision.
1513
1514         * loader.c: Use the new _full() methods and pass the
1515         MonoGenericContainer to them.
1516
1517         * object-internals.h (MonoReflectionTypeBuilder): Added
1518         `MonoGenericContainer *generic_container' field.
1519         (MonoReflectionMethodBuilder): Likewise.
1520
1521 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1522
1523         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1524         case initial images of dynamic assemblies.
1525
1526         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1527
1528         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1529
1530         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1531         length of event->other array.
1532         (typebuilder_setup_events): Ditto.
1533
1534         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1535         'assembly_by_name' and add an 'assemblies' list.
1536
1537         * assembly.h assembly.c: Add a new search hook for determining whenever
1538         an assembly is already loaded. Use this instead of searching in the
1539         loaded_assemblies list.
1540
1541         * domain.c appdomain.c: Implement the new search hook so loaded 
1542         assemblies are now scoped by appdomain. Fixes #67727.
1543
1544 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1545
1546         * threads.c (mono_thread_attach): Initialize synch_lock field so
1547         mono_thread_detach works again.
1548
1549         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1550         'lib' too. Fixes #63130.
1551
1552 2004-10-06  Jackson Harper  <jackson@ximian.com>
1553
1554         * culture-info-tables.h: regenerated.
1555
1556 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1557
1558         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1559         implemented by other interfaces in the result. Fixes #65764.
1560         
1561         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1562         Handle unloadable modules without crashing.
1563
1564         * image.c (load_modules): Revert the previous patch since modules must
1565         have a fixed index inside the array.
1566         
1567         * image.c (load_modules): Don't include native modules in the modules
1568         array.
1569
1570 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1571
1572         * reflection.h: Add param_defaults field.
1573
1574         * reflection.c: Add support for parameter defaults in dynamic methods.
1575         Fixes #64595.
1576
1577         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1578         an empty string when a type has no namespace. Fixes #64230.
1579
1580 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1581
1582         * tabledefs.h: Added "internal" security actions to support non-CAS
1583         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1584         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1585
1586 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1587
1588         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1589         constructor of abstract class. Fixes #61689.
1590
1591 2004-10-04  Martin Baulig  <martin@ximian.com>
1592
1593         * class-internals.h (MonoGenericContainer): New type.
1594         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1595         `MonoGenericContainer *generic_container'.
1596         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1597         `MonoGenericContainer *generic_container'.
1598
1599         * metadata.c (mono_metadata_load_generic_params): Return a
1600         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1601         removed the `num' argument.
1602
1603 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1604
1605         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1606         for dynamic images.
1607
1608         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1609         machine fields.
1610
1611         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1612
1613         * reflection.c: Save pe_kind and machine values into the generated
1614         image file.
1615
1616         * appdomain.c: Bump corlib version number.
1617
1618         * object-internals.h: Reorganize layout of LocalBuilder.
1619
1620         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1621         New helper function.
1622
1623         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1624         created MonoType for dynamic types. Fixes #66180.
1625
1626 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1627
1628         * threadpool.c: the ares hashtable needs a critical section around it.
1629         this prevents some nasty segfaults
1630
1631 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1632
1633         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1634         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1635         bug 67324).
1636         
1637 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1638
1639         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1640         
1641 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1642
1643         * image.c: Always canonicalize image file names, to avoid loading
1644         the same assembly twice when referenced using a relative path.
1645
1646 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1647
1648         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1649
1650         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1651
1652         * marshal.c: Fix warnings.
1653
1654 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1655
1656         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1657         attempting to marshal the delegate_trampoline as the method_addr.
1658         This patch has a static hashtable of marshalled delegates so that 
1659         we can map delegate_trampoline addresses back to delegates.  This
1660         allows a delegate passed to managed code to be passed back into native
1661         code.  Fixes #67039
1662
1663 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1664
1665         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1666
1667         * reflection.c (method_encode_code): Align method headers properly.
1668         Fixes #66025.
1669
1670 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1671
1672         * marshal.c: In the runtime invoke wrapper, reset the abort
1673         exception if it is cached. This avoids the automatic rethrowal of 
1674         the exception after the catch of the wrapper. Also check for pending
1675         interruptions before calling the managed method. This is done using
1676         the new method emit_thread_force_interrupt_checkpoint, since the
1677         normal checkpoint method is ignored when running the invoke wrapper.
1678         * object.c: If the abort exception is rethrown, set the abort_exc
1679         field of the thread, so it will be rethrown aftere every catch.
1680         * threadpool.c: Only run an interruption checkpoint if what has been
1681         requested is a stop of the thread (aborts will be ignored).
1682         * threads.c: By default, a thread will now never be interrumped while
1683         running the runtime invoke wrapper (this ensures that runtime_invoke
1684         will always return to the caller if an exception pointer is provided).
1685         There is a new special method mono_thread_force_interruption_checkpoint()
1686         to force an interruption checkpoint even if running a protected
1687         wrapper, which is used by the same runtime invoke wrapper to do a check
1688         at a safe point.
1689
1690 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1691
1692         * object.c, object-internals.h: Implemented mono_release_type_locks,
1693         which releases the cctor locks held by a thread.
1694         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1695         by a thread. Added mono_thread_exit() method to be used to safely stop
1696         a thread.
1697
1698 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1699
1700         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1701         Move null check before dereference.  Avoid indexing beyond the end
1702         of the 'modules' array.
1703
1704 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1705
1706         * metadata-internals.h (MonoImage): Add module_count field.
1707         * image.c (load_modules): Set image->module_count.
1708         (mono_image_load_file_for_image): Use image->module_count.
1709         * reflection.c (mono_image_load_module): Append to image->modules array 
1710         of dynamic assembly.
1711         (mono_module_get_object): Fix loop to actually increment index.
1712         Use image->module_count.
1713         * assembly.c (mono_assembly_load_references): Use image->module_count.
1714         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1715         Likewise.
1716
1717 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1718
1719         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1720         Avoid assert on generic types.
1721
1722 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1723
1724         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1725
1726         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1727
1728         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1729         function to convert a MarshalSpec structure to its managed counterpart.
1730
1731         * reflection.c: Fix warnings.
1732         
1733         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1734         field.
1735
1736         * icall.c (mono_create_icall_signature): Fix build.
1737
1738 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1739
1740         * icall.c: Add MakePointType icall.
1741
1742         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1743         warnings.
1744
1745 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1746
1747         * threadpool.c: reuse allocated slots in the queue.
1748
1749 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1750
1751         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1752
1753         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1754
1755         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1756         previous change.
1757
1758         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1759         ThrowOnUnmappableChar.
1760
1761         * icall.c (ves_icall_Type_GetPacking): New icall.
1762
1763 2004-09-24  Martin Baulig  <martin@ximian.com>
1764
1765         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1766
1767 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1768
1769         * appdomain.c:
1770         (mono_domain_set): allow setting a domain that is being unloaded.
1771         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1772         being unloaded.
1773
1774 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1775
1776         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1777         the GetCustomAttributes icall.
1778
1779 2004-09-23  Martin Baulig  <martin@ximian.com>
1780
1781         * object-internals.h (MonoReflectionGenericParam): Replaced
1782         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1783         with `guint32 attrs'.
1784
1785 2004-09-23  Martin Baulig  <martin@ximian.com>
1786
1787         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1788
1789 2004-09-23  Martin Baulig  <martin@ximian.com>
1790
1791         * object-internals.h (GenericParameterAttributes): New enum.
1792
1793 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1794
1795         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1796         
1797         * class.c (init_events): Fill out event->other field.
1798
1799         * class.c: Fix warnings.
1800
1801         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1802
1803 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1804
1805         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1806         walk which doesn't supply the IL offset.
1807
1808 2004-09-22  Martin Baulig  <martin@ximian.com>
1809
1810         * reflection.c (mono_reflection_setup_internal_class): If we're
1811         System.ValueType, System.Object or System.Enum, set
1812         `klass->instance_size' and create the vtable.
1813         (mono_reflection_create_internal_class): If we're an enum type,
1814         get the base class from our current corlib.
1815
1816 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1817
1818         * reflection.h (MonoResolveTokenError): New type.
1819
1820         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1821         icall.
1822
1823         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1824
1825 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1826
1827         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1828         Support also calling constructors, but only for already allocated objects.
1829
1830 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1831
1832         * reflection.c (type_get_qualified_name): If the klass is null
1833         return the typename to avoid a NullRefEx.
1834         (encode_cattr_value): Get the qualified name of the boxed type,
1835         not the underlying enumtype.  Fixes #62984.
1836
1837 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1838
1839         * marshal.c: Fix problems with previous checkin.
1840
1841 2004-09-21    <vargaz@freemail.hu>
1842
1843         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1844         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1845
1846         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1847
1848 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1849
1850         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1851         should only return a type for pointers, arrays, and passbyref types.
1852         Fixes bug #63841.
1853
1854 2004-09-21  Martin Baulig  <martin@ximian.com>
1855
1856         * domain.c (mono_debugger_check_runtime_version): New public
1857         function.
1858
1859         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1860
1861 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1862
1863         * reflection.c: Added missing sort to the declarative security 
1864         attributes table. MS implementation stops seeing the attributes if the
1865         token number regress in the table (as shown by ildasm and permview).
1866
1867 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1868
1869         * object-internals.h (MonoReflectionModule): Add 'token' field.
1870         
1871         * reflection.c (mono_reflection_get_token): Add support for Module
1872         and Assembly.
1873         (mono_module_get_object): Set 'token' field.
1874         (mono_module_file_get_object): Set 'token' field.
1875
1876         * icall.c: Add new Assembly and Module icalls.
1877
1878         * appdomain.c: Bump corlib version.
1879
1880 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1881
1882         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1883         tokens of metadata objects.
1884
1885         * reflection.h reflection.c (mono_reflection_get_token): New function
1886         to obtain the token of a metadata object.
1887
1888         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1889
1890 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1891
1892         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1893         
1894         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1895
1896 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1897
1898         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1899         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1900         AssemblyBuilder to access the permissions set in the class lib.
1901         * reflection.c: Added security attributes encoding step in 
1902         mono_image_build_metadata.
1903         * tabledefs.h: Added new security actions defined in 2.0:
1904         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1905
1906 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1907
1908         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1909         macro parameter.
1910
1911 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1912  
1913         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1914           finalized. There where random SIGSEVs at program termination, when
1915           an object being finalized was trying to do a string comparison and
1916           the current culture was already finalized.
1917  
1918 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1919
1920         * threads.c: call thread_cleanup before finishing the thread if we get
1921         there.
1922
1923 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1924
1925         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1926         assemblies from the parent. Fixes #65665.
1927
1928 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1929
1930         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1931         modifiers.
1932
1933 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1934
1935         * reflection.h: add prototype for mono_get_dbnull_object
1936         * reflection.c: add prototypes for get_default_param_value_blobs 
1937         and mono_get_object_from_blob for fussier compilers
1938
1939 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1940  
1941         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1942         false deadlock checks in class initialization.
1943  
1944 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1945
1946         * image.c (mono_image_addref): Fix comment.
1947
1948         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1949         possible.
1950
1951 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1952
1953         * reflection.c (mono_param_get_objects): Modified to return
1954         ParameterInfo.DefaultValue object.
1955
1956         (get_default_param_value_blobs):
1957         (mono_get_object_from_blob):
1958         (mono_get_dbnull_object): New helper routines. 
1959
1960         * object.c (mono_get_constant_value_from_blob): New helper routine
1961         carved out from get_default_field_value ()
1962
1963         * object-internals.h (mono_get_constant_value_from_blob): Added
1964         function declaration.
1965
1966 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1967
1968         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1969         referenced assemblies. Fixes #62135.
1970
1971         * exception.h exception.c (mono_get_exception_file_not_found2): New
1972         helper function.
1973
1974 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1975
1976         * class.h class.c: Add mono_type_get_underlying_type ().
1977
1978 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1979
1980         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1981         Fix GetTypes() to support dynamically created assemblies.
1982
1983 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1984
1985         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1986         
1987         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1988         previous patch.
1989
1990         * reflection.h reflection.c loader.c: Allow dynamic construction of
1991         pinvoke methods. Fixes #65571.
1992         
1993         * reflection.c (mono_reflection_get_type): Revert previous change since
1994         it causes regressions.
1995
1996 2004-09-08  Martin Baulig  <martin@ximian.com>
1997
1998         * class.c (class_compute_field_layout): Don't call
1999         mono_class_layout_fields() for open generic instances.
2000
2001 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
2002         * threads.c appdomain.c: fix typo in GC macro
2003
2004 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2005
2006         * threads.c: don't call mono_thread_detach() in start_wrapper(),
2007         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
2008
2009 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
2010
2011         * image.c (mono_image_close): Applied patch from 
2012         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
2013         assembly is loaded multiple times from data.
2014         
2015         * image.c (mono_image_open): Fix warning.
2016
2017 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2018
2019         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
2020         once. Fixes #58334.
2021         
2022         * reflection.c (mono_reflection_create_runtime_class): Initialize
2023         klass->nested_classes. Fixes #61224.
2024
2025 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2026
2027         * threads.c: sched_yield() on exit, to allow threads to quit.
2028
2029 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2030
2031         * object.c (mono_unhandled_exception): Remove leftover debug code.
2032
2033 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2034
2035         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
2036
2037 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2038
2039         * marshal.c (emit_marshal_array): Really null terminate string arrays.
2040         
2041         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
2042
2043 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2044
2045         * marshal.c (emit_marshal_array): Null terminate string arrays.
2046         
2047         * marshal.c (raise_auto_layout_exception): Fix warning.
2048
2049         * reflection.c (mono_param_get_objects): Initialize the default value
2050         with DBNull.Value, not null. Fixes #62123.
2051
2052 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
2053
2054         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
2055         throw an exception with a cute explanation.
2056
2057 2004-09-06  Dick Porter  <dick@ximian.com>
2058
2059         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
2060         Close the new process's thread handle, as we don't use it.  The
2061         handle stays around forever otherwise.
2062
2063 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2064
2065         * object.c (arith_overflow): Fix warning.
2066
2067         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
2068         calling conventions in method refs. Fixes #65352.
2069
2070         * reflection.c: Fix warnings.
2071
2072 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2073
2074         * icall.c: Add a new icall for Array.Clear
2075
2076 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2077
2078         * object.c: When allocating an array, we have to throw
2079         an overflow exception if any of the lengths are < 0.
2080
2081 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2082
2083         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
2084         properly. Also move implementation of string array marshalling to 
2085         managed code. Fixes #42316.
2086
2087 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2088
2089         * assembly.c: provide more information when loading an assembly fails.
2090
2091 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2092
2093         * filewatcher.c: don't expect the development fam package to be
2094         installed.
2095
2096 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
2097
2098         * marshal.c: Make a copy of the signature cookie since it will be
2099         freed by the caller.
2100         
2101         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
2102
2103         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
2104
2105         * metadata.c (mono_metadata_free_marshal_spec): New function to free
2106         marshal specs.
2107
2108         * marshal.c: More refactoring.
2109         
2110         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
2111         smaller functions.
2112
2113 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
2114
2115         * object.c: In mono_message_invoke, fill the output parameter array after
2116           calling the managed method (it was done before the call). This fixes
2117           bug #59299.
2118
2119 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2120
2121         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
2122         as well.
2123
2124 2004-09-02  Martin Baulig  <martin@ximian.com>
2125
2126         * class.c (mono_class_instance_size): Don't allow generic type
2127         definitions or open generic instances.
2128         (mono_class_array_element_size): If we're a value type, call
2129         mono_class_instance_size() on the original class.
2130
2131         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
2132         handle generic instances.
2133
2134         * mono-debug-debugger.c (write_type): Handle generic instances
2135         like classes.
2136
2137 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2138
2139         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
2140         the allocation request fails. Fixes #65089.
2141
2142         * object.c (mono_runtime_free_method): Do not call mono_free_method.
2143         
2144         * object.c (mono_runtime_free_method): New function to free a dynamic
2145         method.
2146
2147         * marshal.c (mono_delegate_free_ftnptr): New function to free the
2148         delegate trampoline.
2149
2150         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
2151         with hasthis as dynamic,
2152
2153         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
2154
2155         * domain.c (mono_jit_info_table_remove): New function to remove an
2156         entry from the jit info table.
2157
2158         * class-internals.h (MonoMethod): Add 'dynamic' field.
2159
2160         * loader.c: Fix warnings.
2161
2162 2004-09-01  Martin Baulig  <martin@ximian.com>
2163
2164         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
2165         instead of mono_debugger_lock() because the latter one is a no-op
2166         unless running in the debugger.
2167
2168 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2169
2170         * class.c (class_compute_field_layout): Classes with auto-layout or
2171         reference fields are not blittable.
2172         
2173 2004-09-01  Dick Porter  <dick@ximian.com>
2174
2175         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
2176         mono_image_get_filename() to get the assembly location.
2177
2178         * icall.c:
2179         * metadata.h: Fix compile warnings
2180
2181 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2182
2183         * class.c (class_compute_field_layout): System.Object is blittable.
2184
2185         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2186         as in/out. Fixes #59909.
2187
2188 2004-09-01  Martin Baulig  <martin@ximian.com>
2189
2190         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2191         mono_metadata_generic_inst_is_valuetype() if we're a generic
2192         instance to check whether our underlying type is a reference type.
2193
2194 2004-09-01  Martin Baulig  <martin@ximian.com>
2195
2196         * metadata.c (mono_type_size): If we're a generic instance, call
2197         mono_class_value_size() for value types.
2198
2199 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2200
2201         * marshal.c: Implement more custom marshalling functionality. Fixes
2202         #64915.
2203
2204 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2205
2206         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2207
2208 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2209
2210         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2211
2212         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2213
2214         * icall.c: Fix some warnings.
2215
2216         * threads.c (abort_appdomain_thread): Fix unref errors.
2217         (mono_thread_current): Fix THREAD_DEBUG define.
2218
2219 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2220
2221         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2222
2223         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2224
2225 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2226
2227         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2228         string arrays.
2229
2230 2004-08-28  Martin Baulig  <martin@ximian.com>
2231
2232         * metadata.c
2233         (mono_metadata_generic_inst_is_valuetype): New public function.
2234
2235         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2236         mono_metadata_generic_inst_is_valuetype() if we're a generic
2237         instance to check whether our underlying type is a valuetype.
2238
2239 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2240
2241         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2242         #63768.
2243
2244 2004-08-25  Martin Baulig  <martin@ximian.com>
2245
2246         * loader.c (mono_get_method_from_token): Abstract methods can also
2247         be generic and thus have type parameters.
2248
2249         * metadata-internals.h
2250         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2251
2252         * reflection.c (mono_image_get_generic_param_info): Don't create a
2253         metadata row, just add an entry to the `gen_params' array.
2254         (build_compressed_metadata): Sort the `gen_params' array and then
2255         actually create the metadata.
2256
2257 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2258
2259         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2260
2261 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2262
2263         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2264
2265 2004-08-24  Martin Baulig  <martin@ximian.com>
2266
2267         * class.cs (mono_class_is_subclass_of): Like an interface, a
2268         generic instance also derives from System.Object.
2269
2270 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2271
2272         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2273         custom modifiers to be in any order. Fixes #61990.
2274
2275 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2276
2277         * object.c: Register mono_object_new_fast icall.
2278         
2279         * object.c (mono_class_get_allocation_ftn): Return to calling
2280         mono_object_new_fast, since it seems faster to compute the object 
2281         size in unmanaged code than passing it as a parameter.
2282
2283         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2284
2285         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2286         this function with Boehm as the oom handler, so we don't have to check
2287         the result of GC_malloc.
2288
2289         * object.c: Remove checks for oom.
2290
2291         * object.h object.c (mono_class_get_allocation_ftn): New function to
2292         return the icall which can be used to allocate an instance of a given
2293         class. 
2294
2295         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2296
2297         * class-internals.h: Add 'enabled' field.
2298
2299 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2300
2301         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2302
2303 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2304         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2305         value 0x0010.
2306
2307 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2308
2309         * appdomain.c: use the Tls function for appdomain too,
2310         at Zoltan's request. Actually return in mono_context_get
2311
2312         * appdomain.c, profiler.c, threads.c: use __thread
2313
2314 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2315
2316         * appdomain.c threads.c: Call GC_CreateThread on windows.
2317
2318         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2319         multiple libraries since this don't work on windows.
2320
2321 2004-08-18  Martin Baulig  <martin@ximian.com>
2322
2323         * class-internals.h
2324         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2325         MonoMethodHeader.
2326
2327         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2328         MonoMethodNormal since we also need it for abstract and interface
2329         methods.
2330
2331         * reflection.c
2332         (build_compressed_metadata): Sort the GenericParam table.
2333         (mono_image_create_token): Added `gboolean create_methodspec'
2334         argument; this is false when generating a MethodImpl token.
2335         (reflection_methodbuilder_to_mono_method): Abstract and interface
2336         methods may also have generic parameters.
2337
2338 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2339
2340         * appdomain.c: thread local alloc
2341
2342 2004-08-17  Martin Baulig  <martin@ximian.com>
2343
2344         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2345
2346         * icall.c
2347         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2348         argument.
2349
2350         * class.c (mono_type_get_full_name): New public function.
2351         (mono_type_get_name): Don't include the type arguments.
2352
2353 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2354
2355         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2356         for inclusion into the mono executable.
2357
2358 2004-08-16  Martin Baulig  <martin@ximian.com>
2359
2360         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2361         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2362
2363 2004-08-14  Martin Baulig  <martin@ximian.com>
2364
2365         * class.c (dup_type): Also copy the `byref' field.
2366
2367 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2368
2369         * reflection.c (create_dynamic_mono_image): Revert the last change 
2370         since it breaks bootstrap.
2371
2372 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2373
2374         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2375
2376         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2377         not free them with g_free.
2378
2379 2004-08-11  Martin Baulig  <martin@ximian.com>
2380
2381         * reflection.c (mono_reflection_setup_internal_class): Also call
2382         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2383
2384 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2385
2386         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2387         called during default (first) AppDomain creation. Keep track of
2388         Evidence when loading assemblies.
2389
2390 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2391
2392         * opcodes.c, opcodes.h: reduce runtime relocations.
2393
2394 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2395
2396         * culture-info.h, locales.c: fixes and chages to sue the new
2397         optimized format of the locale data.
2398         * culture-info-tables.h: regenerated.
2399
2400 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2401         
2402         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2403
2404 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2405
2406         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2407         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2408         * domain-internals.h: icall declaration.
2409         * icall.c: icall registration.
2410         * object-internals.h: New fields in MonoAssembly for CAS.
2411
2412 2004-08-05  Duncan Mak  <duncan@ximian.com>
2413
2414         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2415         CEE_LDELEM_ANY.
2416
2417 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2418
2419         * reflection.c: fix to deal with object[] arrays in custom ctors
2420         (bug #62550).
2421
2422 2004-08-05  Martin Baulig  <martin@ximian.com>
2423
2424         * class.c (mono_class_array_element_size): Added support for
2425         generic instances and correctly handle "recursive" types.
2426
2427 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2428
2429         * assembly.c: Fix warnings.
2430
2431 2004-08-04  Martin Baulig  <martin@ximian.com>
2432
2433         * class.c
2434         (mono_type_get_name_recurse): Added `gboolean include_arity'
2435         argument specifying whether or not we should include the generic
2436         arity in the type name.
2437         (_mono_type_get_name): New static function.
2438         (mono_class_setup_vtable): If we're a generic instance, don't
2439         include the generic arity in the names of explicit method
2440         implementations.        
2441
2442 2004-08-03  Martin Baulig  <martin@ximian.com>
2443
2444         * class.c (mono_type_get_name_recurse): Enclose the generic type
2445         arguments in `<', '>'.
2446
2447 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2448
2449         * gc.c: make GC warning messages use the trace API, they are just
2450         noise to most of the users.
2451
2452 2004-08-03  Martin Baulig  <martin@ximian.com>
2453
2454         * debug-mono-symfile.c (read_string): Correctly read the string.
2455
2456 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2457
2458         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2459         
2460         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2461         icalls.
2462         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2463
2464 2004-07-30  Martin Baulig  <martin@ximian.com>
2465
2466         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2467         Reflect latest symbol writer changes.   
2468
2469 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2470
2471         * object.c: always create an object if null is passed
2472         to Invoke() where a valuetype is expected.
2473
2474 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2475
2476         * marshal.c (mono_marshal_init): make managed
2477         signatures match native ones better for 64bits.
2478
2479 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2480
2481         * appdomain.c: hack to build correctly the private bin path on windows.
2482         Fixes bug #61991.
2483
2484 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2485
2486         * assembly.c: Load mscorlib from the correct framework directory
2487           (mono/<version>/mscorlib.dll).
2488         * appdomain.h: Added prototypes for new functions.
2489         * internals.h: Added some prototypes.
2490         * domain.c: When initializing the runtime, get from the executable and
2491           the configuration files the runtime version that the app supports.
2492           Added support methods for reading app.exe.config. Added list of versions
2493           supported by the JIT. Added two new methods: mono_init_from_assembly,
2494           which initializes the runtime and determines the required version from
2495           the provided exe file, and mono_init_version, which initializes
2496           the runtime using the provided version.
2497         * icall.c: Get machine.config from version-specific directory.
2498         * reflection.c: When generating an image, embed the version number
2499           of the current runtime.
2500
2501 2004-07-28  Dick Porter  <dick@ximian.com>
2502
2503         * socket-io.c
2504         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2505         returned sockaddr size before creating the remote address object.
2506         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2507         61608.
2508
2509 2004-07-28  Dick Porter  <dick@ximian.com>
2510
2511         * locales.c (string_invariant_compare_char): Fix invariant char
2512         compares between upper and lower cases.  Fixes bug 61458.
2513
2514 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2515         
2516         * marshal.c: actually cache stelem.ref wrappers.
2517         
2518 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2519
2520         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2521         sections and remove the mono_cli_rva_map () function.
2522
2523 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2524
2525         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2526         by Geoff Norton (<gnorton@customerdna.com>).
2527
2528 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2529
2530         * class.c: fix class loads for pointer types (typeof(int) !=
2531         typeof(int*)).
2532
2533 2004-07-27  Martin Baulig  <martin@ximian.com>
2534
2535         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2536         reading the debugging information from an external ".mdb" file.
2537
2538 2004-07-24  Martin Baulig  <martin@ximian.com>
2539
2540         * reflection.c (mono_image_get_type_info): Only write a class
2541         layout entry if we actually have a size or a packing size.
2542
2543 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2544
2545         * reflection.c (type_get_fully_qualified_name): 
2546         insert cast to get type checking of ?: with non-gcc compilers
2547
2548 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2549
2550         * rand.c: use g_getenv for both lookups of
2551         MONO_EGD_SOCKET
2552
2553 2004-07-17  Martin Baulig  <martin@ximian.com>
2554
2555         * reflection.c (mono_reflection_bind_generic_method_parameters):
2556         Set `gmethod->reflection_info'.
2557
2558 2004-07-17  Martin Baulig  <martin@ximian.com>
2559
2560         * class.c (mono_class_create_from_typedef): Insert the newly
2561         created class into the hash table before computing the interfaces
2562         since we could be called recursively.
2563
2564 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2565
2566         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2567         function to implement stelem.ref in managed code
2568         * class-internals.h, debug-helpers.c: a new wrapper type
2569         for the above.
2570
2571 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2572
2573         * gc.c: allow GC handles to work even when no GC is compiled in.
2574         Fix part of bug #61134 (GetAddrOfPinnedObject).
2575
2576 2004-07-13  Peter Williams  <peter@newton.cx>
2577  
2578         * process.c (complete_path): Make sure we don't attempt to execute
2579         directories.
2580  
2581 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2582
2583         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2584           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2585           and will add/subtract the hour if needed
2586
2587 2004-07-12  Martin Baulig  <martin@ximian.com>
2588
2589         * reflection.c (mono_field_get_object): If we have
2590         `field->generic_info', take the attributes from
2591         `field->generic_info->generic_type'.    
2592
2593 2004-07-12  Martin Baulig  <martin@ximian.com>
2594
2595         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2596         This function must be called before initializing the runtime.
2597         (mono_debug_init_1): New function; call this after initializing
2598         the runtime, but before loading the assembly.  It tells the
2599         debugger to load corlib and the builtin types.
2600
2601         * mono-debug-debugger.c: Did some larger changes in the debugging
2602         code; support recursive class declarations, make sure we actually
2603         add all classes.
2604
2605 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2606
2607         * debug-helpers.c: undo my previous patch and fixed the real issue in
2608         ../mini/exceptions-x86.c
2609
2610 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2611
2612         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2613         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2614         called from other .cctors.
2615
2616 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2617
2618         * loader.c: Removed the mono_loader_wine_init hack now that we are
2619         doing a managed version of Windows.Forms.
2620
2621 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2622
2623         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2624         threadpool.c, threads.c: remove static data from rootset.
2625
2626 2004-07-09  Dick Porter  <dick@ximian.com>
2627
2628         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2629         Don't do any more processing if the matched length was 0.  It was
2630         increasing the size of the string before.  Fixes bug 61167.
2631
2632 2004-07-09  Dick Porter  <dick@ximian.com>
2633
2634         * socket-io.h:
2635         * socket-io.c
2636         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2637         Add support for SO_PEERCRED if its available.
2638
2639 2004-07-09  Peter Bartok <pbartok@novell.com>
2640         * loader.c: winelib.exe.so error message is now only displayed if
2641         MONO_DEBUG is set. To help us avoid questions when people are trying
2642         out the new Managed.Windows.Forms.
2643
2644 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2645
2646         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2647         for isinst and castclass wrappers.
2648
2649         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2650         to libmetadata from the JIT, so they could be used by the marshalling
2651         code and the interpreter.
2652
2653         * marshal.c: Register marshalling related JIT icalls here instead of
2654         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2655         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2656
2657         * metadata.h: Remove unneeded marshalling conversions.
2658
2659         * opcodes.c: Update for new opcodes.
2660         
2661 2004-07-08  Martin Baulig  <martin@ximian.com>
2662
2663         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2664         (mono_debug_get_domain_data): Make this function static.
2665
2666 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2667
2668         * gc.c, object.h: add nice GC handle API for embedders.
2669
2670 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2671
2672         * reflection.c: more changes for the new api
2673
2674         * object.c: When we reflect on a field w/ a constant value, it
2675         will not have a memory location, so we must access metadata. Also,
2676         allow easier reading of strings so that we can read them from
2677         the constant data.
2678
2679         * class.c (mono_class_layout_fields): no need for literal fields here.
2680
2681         * class-internals.h: api changes for const fields
2682
2683         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2684
2685 2004-07-06  Martin Baulig  <martin@ximian.com>
2686
2687         * mono-debug.h: Increment version number to 44.
2688
2689         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2690         now a gpointer, rewrote this whole method.
2691
2692         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2693         function.  Add information about the wrapper in a new "misc table".
2694
2695         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2696         for the new misc table.
2697
2698 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2699
2700         * metadata-internals.h image.c: Add a cache for helper signatures.
2701
2702         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2703
2704 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2705
2706         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2707         delegates from a delegate. Fixes #61033.
2708         
2709         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2710         marshalling of stringbuilder arrays. Fixes #59900.
2711
2712 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2713
2714         * icall.c: Add EnumBuilder:setup_enum_type icall.
2715
2716 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2717
2718         * icall.c: Added a new icall for the property version of
2719         OffsetOfStringData.
2720
2721 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2722
2723         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2724         it has a constant size across platforms.
2725
2726         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2727         stack trace.
2728
2729 2004-06-29  Martin Baulig  <martin@ximian.com>
2730
2731         * mono-debug.c (mono_debug_add_method): Protect the whole function
2732         in mono_debugger_lock(), not just parts of it.
2733
2734 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2735
2736         * reflection.c: make sure padding bytes in heaps are zeroed.
2737
2738 2004-06-24  David Waite  <mass@akuma.org>
2739
2740         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2741         image.c, loader.c, locales.c, marshal.c, metadata.c,
2742         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2743         string-icalls.c, threads.c: change to C90-style comments from C99 /
2744         C++ -style
2745
2746 2004-06-24  Dick Porter  <dick@ximian.com>
2747
2748         * threads.c
2749         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2750         return createdNew.  Fixes bug 60412.
2751
2752         * threads-types.h: 
2753         * icall.c: Add createdNew parameter to CreateMutex icall
2754
2755 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2756
2757         * reflection.c, object-internals.h: save default value in params.
2758
2759 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2760
2761         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2762         no need to build a new path combining that with the application base.
2763         Fixes bug #60442.
2764
2765 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2766
2767         * reflection.c: fixed minor standard compliance issues.
2768
2769 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2770
2771         * reflection.c: fixed issue with encoding some custom attributes
2772         (arrays in properties and fields, bug #60411).
2773
2774 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2775
2776         * reflection.c: fix start address when copying the public key token.
2777
2778 2004-06-23  Martin Baulig  <martin@ximian.com>
2779
2780         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2781         the `exc' object in a static object to put it into the GC's root set.
2782
2783 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2784
2785         * reflection.c: make mono_reflection_setup_internal_class ()
2786         callable a second time to setup a new parent class.
2787
2788 2004-06-23  Dick Porter  <dick@ximian.com>
2789
2790         * threads.c: Check for WAIT_IO_COMPLETION return values.
2791
2792 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2793
2794         * appdomain.c: Removed the g_free on the public key token. Now copy 
2795         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2796         * assembly.c: Added public key token string value when loading 
2797         assemblies. Fix bug #60439.
2798         * icall.c: Added missing informations (like public key) in 
2799         GetReferencedAssemblies. Fix #60519.
2800         * image.h: Changed definition for public key token from const char*
2801         public_tok_value to guchar public_key_token [17];
2802         * reflection.c: Updated for changes to public key token.
2803
2804 2004-06-22  Lluis Sanchez Gual
2805
2806         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2807         for the field in base classes.
2808
2809 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2810
2811         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2812         mark headers as not supported, they are installed only for use by the
2813         debugger.
2814
2815 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2816
2817         * *.c, *.h: avoid namespace pollution in public headers.
2818
2819 2004-06-21  Martin Baulig  <martin@ximian.com>
2820
2821         * exception.c (mono_get_exception_security): It's in
2822         "System.Security", not in "System".
2823
2824         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2825         the exception classes.
2826
2827 2004-06-21  Martin Baulig  <martin@ximian.com>
2828
2829         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2830         Protect the exception object from being finalized.
2831
2832 2004-06-21  Martin Baulig  <martin@ximian.com>
2833
2834         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2835         public function.
2836
2837 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2838
2839         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2840         if it was not loaded before. Fix parts of #60439.
2841
2842 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2843
2844         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2845         code that was broken since Ben's change: wrappers are now
2846         dependent on the method signature only again.
2847
2848 2004-06-21  Martin Baulig  <martin@ximian.com>
2849
2850         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2851         added interface support.
2852
2853 2004-06-21  Martin Baulig  <martin@ximian.com>
2854
2855         * class.c (mono_vtable_get_static_field_data): New public method.
2856
2857 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2858
2859         * filewatcher.c : Windows build fix to be compliant with API changes.
2860
2861 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2862
2863         * class.h, class.c: more accessors.
2864         * metadata.h, metadata.c: prepare for hiding MonoType and
2865         MonoMethodSignature: people should use the accessors from now on
2866         outside of the tree.
2867
2868 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2869
2870         * *.c, *.h: more API cleanups.
2871
2872 2004-06-18  Jackson Harper  <jackson@ximian.com>
2873
2874         * assembly.c: Trace loading assemblies.
2875         * loader.c: Trace loading native libraries.
2876         * mono-config.c: Trace loading config files.
2877         
2878 2004-06-18  Dick Porter  <dick@ximian.com>
2879
2880         * locales.c: Tell ICU the lengths of strings, it can cope with
2881         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2882
2883 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2884
2885         * image.c: swapped name/filename;
2886
2887 2004-06-18  Martin Baulig  <martin@ximian.com>
2888
2889         * mono-debug-debugger.c (write_class): Write the parent class at
2890         the end of the header.
2891
2892 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2893
2894         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2895
2896 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2897
2898         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2899         (bundle_obj): New conditional define.
2900         (BUILT_SOURCES): Remove.
2901         ($(bundle_srcs)): Make parallel-make safe.
2902         (libmonoruntime_la_LIBADD): Make unconditional.
2903         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2904         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2905
2906 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2907
2908         * culture-info-tables.h: It was inconsistent with the latest
2909           supp info files.
2910
2911 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2912
2913         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2914         be loaded.
2915
2916         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2917         with gcc 2.95.
2918
2919 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2920
2921         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2922         cleaned up public header threads.h.
2923
2924 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2925
2926         * Makefile.am, *.c, *.h: more API cleanups.
2927
2928 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2929
2930         * Makefile.am: removed monosn from compilation.
2931         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2932         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2933         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2934         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2935         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2936         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2937
2938 2004-06-15  Jackson Harper  <jackson@ximian.com>
2939
2940         * assembly.c: Make locales lower case when searching the GAC for
2941         assemblies. gacutil will always make locales lowercase when
2942         installing so this effectively makes them case insensitive.
2943         
2944 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2945
2946         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2947         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2948           parameter which allows to choose whether the wait can be interrupted or 
2949           not. Also added the method mono_monitor_enter(), which locks the monitor
2950           using an infinite wait and without allowing interruption.
2951           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2952           interrupted.
2953         * object.h: Added new fields in MonoThread. suspend_event holds the event
2954           used to susped/resume the thread. synch_lock is the lock object to use for
2955           modifying the thread state.
2956         * threads.c: Use the new synch_lock object for locking, instead of "this",
2957           which can generate deadlocks.
2958           Moved thread state change in Thread.Sleep and Thread.Join from managed
2959           to unmanaged code. This avoids a deadlock when the thread was suspended
2960           just after acquiring the thread lock.
2961           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2962           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2963           which is not fully implemented in the io-layer.
2964         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2965
2966 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2967
2968         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2969         threads-types.h: more API cleanups.
2970
2971 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2972
2973         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2974         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2975         threadpool.c, threads.c: first pass at the exported API cleanup.
2976
2977 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2978
2979         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2980
2981 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2982
2983         * icall.c: added internalGetHome.
2984
2985 2004-06-14  Dick Porter  <dick@ximian.com>
2986
2987         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2988         possible to return successfully when '.' or '..' were the only
2989         entries in a directory, but were skipped.  The MonoIOStat was not
2990         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
2991         Fixes bug 59574.
2992
2993 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2994
2995         * reflection.c: make binaries run on .Net 1.1 by default.
2996
2997 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
2998
2999         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
3000
3001 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
3002
3003         * marshal.c: keep track of struct size with explicit layout
3004         (bug #59979).
3005
3006 2004-06-12  Martin Baulig  <martin@ximian.com>
3007
3008         * mono-debug-debugger.c: Comment out a debugging g_message().
3009
3010 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
3011
3012         * reflection.c, reflection.h: do not free custom attrs that are cached.
3013         * icall.c: use braces to make code clearer.
3014
3015 2004-06-11  Martin Baulig  <martin@ximian.com>
3016
3017         * class.h (MonoInflatedField): New type.
3018         (MonoClassField): Replaced `MonoType *generic_type' with
3019         `MonoInflatedField *generic_info'.
3020
3021         * icall.c
3022         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
3023
3024 2004-06-11  Martin Baulig  <martin@ximian.com>
3025
3026         * reflection.c (mono_image_create_method_token): Correctly encode
3027         varargs methods.
3028
3029 2004-06-11  Martin Baulig  <martin@ximian.com>
3030
3031         * metadata.c (mono_metadata_parse_method_signature): When parsing
3032         a MethodDef which has VarArgs, also set sentinelpos if we don't
3033         have any parameters.
3034
3035 2004-06-11  Martin Baulig  <martin@ximian.com>
3036
3037         * verify.c (mono_method_verify): In CEE_CALL, use
3038         mono_method_get_signature() to get the method's signature, unless
3039         we're a PInvoke method.
3040
3041 2004-06-10  Jackson Harper  <jackson@ximian.com>
3042
3043         * assembly.c: Use <path>/lib/mono/gac for the extra paths
3044         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
3045         logical name as the supplied path is just a prefix to the gac not
3046         the direct path to it.
3047         
3048 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
3049
3050         * reflection.c: make the token for a created method match
3051         the token of the MethodBuilder it was created from
3052         (IKVM requires this behaviour now).
3053
3054 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
3055
3056         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
3057         reflection.c, socket-io.c: leak fixes.
3058
3059 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
3060
3061         * icall.c: handle sentinel pos in vararg methods in position different
3062         from 0.
3063
3064 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3065
3066         * culture-info-tables.h: freshly generated.
3067
3068 2004-06-09  Martin Baulig  <martin@ximian.com>
3069
3070         * loader.c (mono_get_method_constrained): Call `mono_class_init
3071         (constrained_class)'.   
3072
3073 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
3074
3075         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
3076         any methods. Fixes #59629.
3077
3078 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3079
3080         * culture-info-tables.h: reflecting locale-builder updates.
3081
3082 2004-06-08  Dick Porter  <dick@ximian.com>
3083
3084         * object.h:
3085         * locales.c: Fixed compile warnings, including a real bug in
3086         CompareInfo_internal_compare.
3087         
3088 2004-06-08  Dick Porter  <dick@ximian.com>
3089
3090         * locales.c
3091         (ves_icall_System_Globalization_CompareInfo_internal_index):
3092         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3093         Double-check the resuls of usearches, because ICU currently
3094         ignores most of the collator settings here.  Fixes bug 59720.
3095         
3096 2004-06-08  Dick Porter  <dick@ximian.com>
3097
3098         * locales.c
3099         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3100         Fix memory leak and segfault-causing typo.  No idea how this one
3101         lasted so long without being noticed.
3102
3103 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
3104
3105         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
3106         any methods. Fixes #59629.
3107
3108 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3109
3110         * assembly.c:
3111         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
3112         own the critical section before). Removed dead code (that's done
3113         in the preload hook).
3114
3115         (mono_assembly_load_with_partial_name): call the preload hook.
3116
3117 2004-06-08  Martin Baulig  <martin@ximian.com>
3118
3119         * metadata.c (mono_metadata_signature_alloc): Default
3120         `sentinelpos' to -1.
3121
3122         * reflection.c (mono_image_get_array_token): Likewise.
3123
3124 2004-06-08  Martin Baulig  <martin@ximian.com>
3125
3126         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
3127
3128         * metadata.c (mono_metadata_parse_method_signature): When parsing
3129         a MethodDef which has VarArgs, set sentinelpos.
3130
3131         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
3132         `gint16' since we're using -1 for non-varargs methods.
3133
3134         * reflection.c
3135         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
3136         (method_encode_signature): Added varargs support.
3137         (method_builder_encode_signature): Likewise.
3138         (mono_image_get_varargs_method_token): New static method.
3139         (mono_image_create_method_token): New public method; this is
3140         called via an icall instead of mono_image_create_token() when
3141         calling a varargs method.       
3142
3143 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
3144
3145         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
3146
3147 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3148
3149         * culture-info-tables.h : Reflecting the latest locale-builder that
3150           fixed empty array representation ({} to {0}).
3151
3152 2004-06-07  Jackson Harper  <jackson@ximian.com>
3153
3154         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
3155         looking up extra gac paths. This allows MONO_GAC_PATH to act
3156         exactly like a prefix.
3157         
3158 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3159
3160         * reflection.c (mono_reflection_type_from_name): Make a copy of the
3161         type name before modifying it. Fixes #59405.
3162
3163 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3164
3165         * culture-info.h: added fields for "all datetime patterns".
3166         * locales.c: (  ves_icall_System_Globalization_CultureInfo
3167           _construct_datetime_format ()): fill xxx_patterns fields.
3168         * object.h: added fields for "all datetime patterns" to
3169           MonoDateTimeFormatInfo.
3170         * culture-info-tables.h: reflecting locale-builder updates.
3171
3172 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3173
3174         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
3175         the event has no add and remove methods. Fixes #59629.
3176
3177 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
3178
3179         * object.c: Fixed possible integer overflow when allocating large
3180         strings.
3181
3182 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3183
3184         * culture-info-tables.h: reflecting locale-builder updates.
3185
3186 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3187
3188         * culture-info-tables.h: reflecting locale-builder updates.
3189
3190 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3191
3192         * culture-info-tables.h: reflecting locale-builder updates.
3193
3194 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3195
3196         * threads.c: Made Thread.Sleep abortable.
3197
3198 2004-06-02  Martin Baulig  <martin@ximian.com>
3199
3200         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3201
3202         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3203
3204 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3205
3206         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3207
3208 2004-05-30  Jackson Harper  <jackson@ximian.com>
3209
3210         * reflection.c: Do not hardcode assembly versions or public key
3211         tokens anymore. All of this except the corlib section was dead
3212         code anyways.
3213         
3214 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3215
3216         * object.c (mono_runtime_invoke_array): Automatically create boxed
3217         objects for byref valuetypes if needed. Fixes #59300.
3218         
3219         * object.c (mono_method_return_message_restore): Handle 
3220         MONO_TYPE_OBJECT as well.
3221
3222 2004-05-28  Jackson Harper  <jackson@ximian.com>
3223
3224         * reflection.c: The modified type encoding was causing build
3225         problems. Reverted for now.
3226         
3227 2004-05-28  Jackson Harper  <jackson@ximian.com>
3228
3229         * reflection.c/h: Take an assembly ref so that we dont create
3230         fully qualified names when encoding types in the same assembly as
3231         the custom attribute being emitted.
3232         * appdomain.c: Increment version number.
3233         
3234 2004-05-26  Duncan Mak  <duncan@ximian.com>
3235
3236         * icall.c
3237         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3238         Set the full version number (major, minor, build, revision).
3239
3240 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3241
3242         * marshal.c (emit_struct_conv): increment src/dst after blit
3243         (mono_marshal_get_managed_wrapper,
3244         mono_marshal_get_native_wrapper): make sure we have marshalling
3245         info before marshalling params (info computation affects
3246         blittable)
3247
3248         * class.c (class_compute_field_layout): correctly deal with
3249         blittable
3250         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3251         value types (as per what windows dows by default)
3252         (mono_class_setup_mono_type): System.ValueType is blittable
3253         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3254         blittable
3255
3256         * marshal.c (mono_marshal_load_type_info): flag types  as
3257         non-blittable if the native layout doesn't match the managed
3258         layout
3259
3260 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3261
3262         * appdomain.c: don't add stuff in the private search path that is
3263         above the application base. If application base is not set, there's
3264         no private search path.
3265
3266 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3267
3268         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3269         byref struct arguments in native->managed marshalling.
3270
3271 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3272
3273         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3274         cache methods using signature (special case for methods
3275         that are value type or string class)
3276         
3277         * image.c (mono_image_close): clean up allocated GSList's
3278         in runtime_invoke_cache.
3279
3280 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3281
3282         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3283         there's no MONO_CFG_DIR environment variable defined.
3284
3285 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3286
3287         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3288
3289 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3290
3291         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3292           is interrumped.
3293         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3294           before waiting for it, and call CloseHandle after the wait to unref it.
3295           This will make sure that handles are not disposed too early.
3296
3297 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3298
3299         * appdomain.c:
3300         * appdomain.h:
3301         * icall.c: removed
3302         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3303         needed now.
3304
3305         * object.c: se the application_base only for the domain that runs
3306         Main. Fixes bug #59216,
3307
3308 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3309
3310         * appdomain.c:
3311         * object.c: only the domain in which Main is run have
3312         SetupInformation.ConfigurationFile set, so moved a few lines from
3313         appdomain.c to object.c.
3314
3315 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3316
3317         * appdomain.c: we tried to load [name].(dll|exe), but according
3318         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3319         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3320         There's a test case attached to bug #58922.
3321
3322 2004-05-27  Dick Porter  <dick@ximian.com>
3323
3324         * icall.c:
3325         * file-io.c: Implemented icalls for locking and unlocking regions
3326         in a file.
3327         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3328         FALSE on error (fixes both compiler warning and real bug.)
3329
3330 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3331
3332         * culture-info-tables.h: reflecting locale-builder updates.
3333
3334           (Added missing ChangeLog entry for 05/26)
3335
3336 2004-05-27  Jackson Harper  <jackson@ximian.com>
3337
3338         * locales.c: Fix some cut and paste errors.
3339         
3340 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3341
3342         * mono-config.c: set the correct path for config. directory on windows.
3343
3344 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3345
3346         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3347           on win32.
3348
3349 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3350
3351         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3352         from pinvoke functions.
3353         
3354         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3355
3356 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3357
3358         * culture-info-tables.h: reflecting locale-builder updates.
3359
3360 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3361
3362         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3363         #59086.
3364
3365 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3366
3367         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3368         * icall.c: Modified icalls for RNG.
3369         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3370         Windows (CryptoAPI).
3371
3372 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3373
3374         * locales.c: Fix build.
3375
3376 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3377
3378         * culture-info-tables.h: reflecting locale-builder updates.
3379
3380 2004-05-25  Jackson Harper  <jackson@ximian.com>
3381
3382         * locales.c: When creating the current culture use the $LANGs
3383         specific culture. So DateTimeFormat and NumberFormat entries are created.
3384         
3385 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3386
3387         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3388         a char array as parameter.
3389
3390 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3391
3392         * image.c: In mono_image_open(), always use an absolute path name to
3393           look for already loaded images.
3394
3395 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3396
3397         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3398         missing in the windows build (like older cygwin include files).
3399
3400 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3401
3402         * icall.c: Fixed check for possible integer overflow in Buffer_
3403         BlockCopy icall. Replaced comments style // by /* */.
3404
3405 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3406
3407         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3408         
3409         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3410         check after MONO_VTADDR. Fixes pinvoke2.exe.
3411
3412         * marshal.h marshal.c metadata.h: Add beginnings of support for
3413         ftnptr -> delegate marshalling.
3414
3415 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3416
3417         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3418         * threads.c: Fix warnings.
3419
3420 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3421
3422         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3423         * icall.c: Registered icalls for Suspend and Resume.
3424         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3425           Thread.Abort.
3426         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3427         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3428         * process.c: Use WaitForSingleObjectEx.
3429         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3430           checkpoints.
3431         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3432           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3433           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3434           background threads. Added basic support for Abort in Windows.
3435           Start new threads using a managed delegate invoke wrapper. This wrapper
3436           has an interruption checkpoint that is needed since an interruption
3437           can be requested before the thread leaves the unmanaged code that starts 
3438           the thread.
3439         * marshal.c: Added interruption checkpoint after every native call, and
3440           also before managed calls for wrappers called from unmanaged code to
3441           go into managed code.
3442         * object.h: Added new field in MonoThread to keep track of interruption
3443           requests.
3444
3445 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3446
3447         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3448         calls.
3449
3450 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3451
3452         * appdomain.c:
3453         * assembly.c:
3454         * gc.c:
3455         * locales.c:
3456         * mono-config.c:
3457         * rand.c: getenv -> g_getenv (windows!)
3458
3459         * process.c: complete_path is also used on non-windows platforms.
3460
3461 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3462
3463         * icall.c: new signature for Process_Start.
3464
3465         * process.[ch]: new signature for Process_Start. If we're on windows
3466         and UseShellExecute is false, we have to search for the program by
3467         ourselves if we don't get a full path.
3468
3469 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3470
3471         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3472         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3473
3474 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3475
3476         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3477         Fixes bug #58373.
3478
3479 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3480
3481         * process.c: use double quotes to quote program name and arguments on
3482         windows. Fixes bug #58575.
3483
3484 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3485
3486         * file-io.c: don't return "." and ".." when using windows Find*File.
3487
3488 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3489
3490         * marshal.c: Don't pass wrappers to message init because method 
3491         addressed used to lookup metadata. part of remoting[2|3] fix.
3492
3493 2004-05-15  Jackson Harper  <jackson@ximian.com>
3494
3495         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3496         path is essentially the same as MONO_PATH except that it points to
3497         GACs instead of lib directories.
3498         * loader.h: The user gac is gone so we dont need function to
3499         enable/disable it.
3500         * mono-config.c: user gac option is now gone.
3501         
3502 2004-05-15  Jackson Harper  <jackson@ximian.com>
3503
3504         * culture-info.h: Make defines more consistent, add calendar data
3505         to the culture info table.
3506         * culture-info-tables.h: Add basic calendar data. Basically
3507         everyone gets default gregorian until all the data is
3508         updated.
3509         * locales.c: Use the new consistent defines. Set calendar data for
3510         culture info objects.
3511         * object.h: add a field for calendar data to CultureInfo
3512         
3513 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3514
3515         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3516         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3517         a signature.
3518         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3519         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3520         an extra param that is the pointer of the method to invoke. The IL for
3521         the invoke method is no longer specific to the method, but to the
3522         signature of the method. Thus, we can share the same code for multiple
3523         methods. This reduces the number of methods that have to be compiled.
3524
3525 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3526
3527         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3528
3529         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3530
3531         * icall.c: Optimize Buffer.BlockCopy.
3532
3533 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3534
3535         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3536         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3537         quote). Changed them to "MMMM yyyy".
3538
3539 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3540
3541         * rand.c
3542         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3543
3544 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3545
3546         * reflection.h: Updated after changes to managed structures.
3547
3548         * appdomain.c: Bump corlib version.
3549
3550 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3551
3552         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3553         windows.
3554
3555 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3556
3557         * Makefile.am: link to ../os/libmonoos.la on windows.
3558
3559         * assembly.c:
3560                 -If MONO_DEBUG, warn about non-existing directories in
3561                 MONO_PATH.
3562                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3563                 compile time variable.
3564                 -Removed init_default_path and call mono_set_rootdir from
3565                 libmonoos.a instead (windows only).
3566
3567         * assembly.h: declare mono_assembly_getrootdir().
3568
3569         * domain.c:
3570         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3571
3572         * loader.c: s/getenv/g_getenv/
3573
3574 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3575
3576         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3577
3578         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3579
3580         * metadata.h: Add new marshalling conversions.
3581
3582         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3583         function.
3584
3585         * reflection.c (mono_reflection_get_type): Lookup the type in all
3586         modules of a multi-module assembly. Fixes #58291.
3587
3588 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3589
3590         * threads.c: Before aborting a background, set the StopRequested
3591         state.  This avoids throwing the Abort exception.
3592         In mono_thread_manage, don't continue with the shutdown until all
3593         aborted threads have actually stopped.
3594
3595 2004-05-10  Jackson Harper  <jackson@ximian.com>
3596
3597         * locales.c: Remove the modifier from culture names.
3598         
3599 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3600
3601         * Makefile.am: monosn is not installed any more. It has been deprecated
3602         in favor of sn.
3603
3604 2004-05-07  Jackson Harper  <jackson@ximian.com>
3605
3606         * locales.c
3607         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3608         Fix array construction, add bailout if the length is 0.
3609
3610 2004-05-07  Dick Porter  <dick@ximian.com>
3611
3612         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3613         machine doesn't have a DNS entry.  Patch by Urs Muff
3614         (umuff@quark.com), fixes bug 57928.
3615
3616 2004-05-06  Jackson Harper  <jackson@ximian.com>
3617
3618         * reflection.c: Handle null PublicTokens properly. alloc mem for
3619         assembly names culture so we dont crash when freeing it.
3620         
3621 2004-05-06  Jackson Harper  <jackson@ximian.com>
3622
3623         * assembly.c: Check the usergac when loading with partial names.
3624         
3625 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3626
3627         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3628         does nothing for now (not required for Linux/Windows) but the class
3629         library can call it (and a newer or modified runtime could need it).
3630         * icall.c: Registred icall.
3631
3632 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3633
3634         * loader.c: prints a message on module loading error we set MONO_DEBUG
3635         environment variable.
3636
3637 2004-05-05  Jackson Harper  <jackson@ximian.com>
3638
3639         * appdomain.c: Handle PublicKeyToken=null properly.
3640         
3641 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3642
3643         * environment.c|h: Added icall ves_icall_System_Environment_
3644         GetOSVersionString to get the current OS version as a string.
3645         * icall.c: Registred icall.
3646
3647 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3648
3649         * object.c: in mono_object_get_virtual_method(), take into account that
3650         non-virtual methods don't have a slot in the vtable. Check needed when
3651         the object is a proxy.
3652
3653 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3654
3655         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3656         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3657
3658         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3659
3660         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3661         passed when a valuetype is expected.
3662
3663         * object.c (mono_unhandled_exception): Only set the exit code if the
3664         exception happens in the main thread. Fixes thread5.exe.
3665
3666         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3667         invalid names. Fixes #58047.
3668
3669 2004-05-03  Jackson Harper  <jackson@ximian.com>
3670
3671         * assembly.c: This line was committed accidently and is unneeded.
3672         
3673 2004-05-03  Jackson Harper  <jackson@ximian.com>
3674
3675         * icall.c: Add new icall for Assembly::LoadWithPartialName
3676         * assembly.c/.h: new function that probes the GAC to load partial
3677         assembly names by Paolo Molaro.
3678         
3679 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3680
3681         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3682         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3683         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3684         full type name.
3685
3686 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3687
3688         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3689         * reflection.c: fix bug when parsing a full type name and Version is not
3690         the last thing in the string.
3691
3692 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3693
3694         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3695         crashes when it is freed.
3696
3697 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3698
3699         * assembly.c: print the compat warning to stderr.
3700
3701 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3702
3703         * assembly.c (mono_assembly_load_references): Add a compatibility
3704         hack to run old applications that might be still referencing the
3705         3300-based assemblies, only do this for System.xxx.
3706
3707 2004-05-01  Jackson Harper  <jackson@ximian.com>
3708
3709         * appdomain.c: If the culture is neutral we set it to "".
3710         
3711 2004-04-29  Jackson Harper  <jackson@ximian.com>
3712
3713         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3714
3715 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3716  
3717         * string-icalls.c: added low overhead function for copying chars
3718         * icall.c: added needed icall for the above function
3719  
3720 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3721
3722         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3723         Environment.GetLogicalDrives.
3724
3725 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3726
3727         * rand.c: try and talk to egd or prngd
3728         for random bytes if opening devices fail.
3729
3730 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3731
3732         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3733         alignment for the type using the native alignment of its members 
3734         instead of using klass->min_align.
3735
3736         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3737
3738 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3739
3740         * file-io.c:
3741         * socket-io.c: added check for sys/aio.h.
3742
3743 2004-04-28  Dick Porter  <dick@ximian.com>
3744
3745         * threads.c: Don't abort a thread thats already aborting, when
3746         terminating everything.
3747
3748 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3749
3750         * icall.c: added 2 new async calls for Socket.
3751
3752         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3753         IO on *nix systems.
3754
3755         * threadpool.c: removed unused variable.
3756
3757 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3758
3759         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3760
3761 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3762
3763         * locales.c: put back string_invariant_tolower () and
3764         string_invariant_toupper ().
3765
3766 2004-04-26 David Waite <mass@akuma.org>
3767
3768         * file-io.h:
3769         * socket-io.h:
3770         * threads.h:
3771         * unicode.h: remove comma from end of enumeration declarations
3772
3773 2004-04-26 David Waite <mass@akuma.org>
3774
3775         * debug-mono-symfile.h:
3776         * decimal.c:
3777         * mono_debug.h:
3778         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3779
3780
3781 2004-04-26  Jackson Harper  <jackson@ximian.com>
3782
3783         * appdomain.c: Increment version number.
3784         
3785 2004-04-26  Jackson Harper  <jackson@ximian.com>
3786
3787         * appdomain.c: Set assembly references public token value when
3788         PublicKeyToken is specified, not the hash_value. Free public token
3789         values when free assembly name data. Previously the public key
3790         token was hex decoded, however we are using hex encoded public key
3791         tokens, so this is not neccasary.
3792         * assembly.c: Lookup assemblies in the gac if their public token
3793         value is set. Add function to allow enabling user gac
3794         lookups. Specify whether or not the assembly was loaded from the
3795         GAC. Compare full assembly names when checking the cache for
3796         assemblies (Temporarily disabled see comment in code). Remove
3797         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3798         specifies trace-loader they get extra info to stdout on the
3799         loading of assemblies.
3800         * image.h: Add a field for an assembly references public token
3801         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3802         whether an assembly has been loaded from the GAC.
3803         * image.c: Remove a corlib -> mscorlib name mapping.
3804         * loader.h: Add function to enable/disable the user gac.
3805         * mono-config.c: Check if the usergac is enabled in the config
3806         file.
3807         * icall.c: New icall to determine whether or not an assembly has
3808         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3809         * tabldefs.h: Add constant for assemblyref flag that specifies a
3810         full public key is used instead of a public token.
3811         * reflection.c: Remove mscorlib -> corlib mappings. Set
3812         PublicTokenValue instead of hash value. This value is a hex
3813         string so it does not need to be expanded.
3814
3815 2004-04-26  Martin Baulig  <martin@ximian.com>
3816
3817         * mono-debug-debugger.c (mono_debugger_initialize): Set
3818         `mono_debugger_initialized' before calling mono_debug_lock().
3819
3820 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3821
3822         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3823           InternalToUpper/InternalToLower.
3824         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3825           removed invariant culture shortcut.  This is now done in managed code.
3826         * locales.c: (string_invariant_toupper/tolower) removed.
3827
3828 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3829
3830         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3831         Added Poll internal call.
3832
3833         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3834         call for Poll. Select was too heavy for polling a single socket.
3835
3836         * threadpool.[ch]: added mono_threadpool_cleanup.
3837         * threads.c: use it. Don't use Thread_Abort on windows.
3838
3839 2004-04-23  Martin Baulig  <martin@ximian.com>
3840
3841         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3842
3843 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3844
3845         * icall.c: Registred new icalls for key pair protection and added an
3846         icall for Environment.GetFolderPath on Windows.
3847         * security.c|h: Added new icalls for key pair protection.
3848
3849 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3850
3851         * socket-io.c: don't display the non-supported family warning for known
3852         families. Now this is not displayed on windows when checking support
3853         for IPv4/IPv6.
3854
3855 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3856
3857         * class.c: don't display the layout warning for static fields.
3858
3859 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3860
3861         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3862         * locales.c, locales.h: Added new icalls for culture-specific
3863         Char.ToLower and Char.ToUpper.
3864
3865 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3866
3867         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3868         by David Waite.
3869
3870 2004-04-20  Martin Baulig  <martin@ximian.com>
3871
3872         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3873         of the type name before passing it to mono_reflection_type_from_name().
3874
3875 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3876
3877         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3878         encodings here. Fixes #56965.
3879
3880 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3881
3882         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3883         fix test on strstr result not that I can see anything that
3884         relies on the result.
3885
3886 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3887
3888         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3889         Fixes #57081.
3890
3891         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3892
3893         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3894         function to determine which marshalling to use for strings. Fixes
3895         #56965.
3896
3897         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3898
3899         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3900
3901 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3902
3903         * icall.c: #include mono-config.h
3904
3905 2004-04-15  Jackson Harper  <jackson@ximian.com>
3906
3907         * culture-info-tables.h: Fix date formats for en-US culture.
3908         
3909 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3910
3911         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3912         ThreadPool.SetMinThreads.
3913         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3914         ThreadPool.SetMinThreads.
3915
3916 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3917
3918         * mono-config.c: also load the .config file in the directory
3919         where the assembly was found.
3920
3921 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3922
3923         * assembly.c: load per-assembly config files.
3924         * icall.c: decrapified code to get the config dir and moved to
3925         mono-config.c.
3926         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3927         per-assembly config files. When doing a dll map lookup give precedence
3928         to the per-assembly data.
3929
3930 2004-04-14  Martin Baulig  <martin@ximian.com>
3931
3932         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3933         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3934         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3935
3936         * mono-debugger-debugger.c: While the debugger is locked, remember
3937         whether the symbol tables have changes and send one single
3938         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3939
3940 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3941
3942         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3943
3944         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3945         function.
3946
3947         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3948         account when marshalling string arrays. Fixes #56965.
3949
3950 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3951
3952         * icall.c: Add new icalls mapping for security.
3953         * security.c|h: Add internal calls for WindowsIdentity,
3954         WindowsImpersonationContext and WindowsPrincipal.
3955
3956 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3957
3958         * class.c: Added comment to ensure the System.MonoDummy class
3959         is removed when no longer necessary
3960
3961 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3962
3963         * appdomain.c: Pass arguments to the bootstraping exceptions to
3964         minimize JITed methods at boot
3965
3966         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3967         second string to be null.
3968
3969         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3970         Change the protocol to minimize the JIT methods at startup.  Now
3971         it Returns the internal codepage, if the value of "int_code_page"
3972         is 1 at entry, and we can not compute a suitable code page
3973         number, returns the code page as a string.
3974
3975 2004-04-13  Jackson Harper  <jackson@ximian.com>
3976
3977         * culture-info-tables.h: Fix number of decimal digits for all
3978         english locales.
3979
3980 2004-04-13  Jackson Harper  <jackson@ximian.com>
3981
3982         * icall.c: Clairfy out of sync error message. It is not always
3983         your corlib that is out of sync.
3984
3985 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3986
3987         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3988         properties when only the set accessor is overriden. Fixes #55874.
3989
3990 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
3991
3992         * assembly.c (mono_assembly_load_references): Make this thread safe.
3993         Fixes #56327.
3994
3995 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
3996
3997         * monosn.c: Add missing initialization calls.
3998
3999 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
4000
4001         * locales.c:
4002         ves_icall_System_Globalization_CultureInfo_construct_number_format
4003         Fix g_assert so it compiles on fussier compilers re int/ptr
4004         mismatch
4005
4006 2004-04-08  Dick Porter  <dick@ximian.com>
4007
4008         * socket-io.h:
4009         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
4010         53992.  Also rearrange the code so that the internal calls return
4011         an error value and exceptions are thrown from managed code.
4012
4013         * icall.c: Add type info to the socket icalls.
4014
4015 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4016
4017         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
4018         owes me a beer.
4019
4020 2004-04-07  Martin Baulig  <martin@ximian.com>
4021
4022         * class.c (mono_class_from_generic_parameter): Don't default
4023         `klass->parent' to `mono_defaults.object_type'.
4024
4025 2004-04-07  Martin Baulig  <martin@ximian.com>
4026
4027         * reflection.c (mono_reflection_initialize_generic_parameter): Set
4028         `param->pklass->reflection_info'.       
4029
4030 2004-04-07  Jackson Harper  <jackson@ximian.com>
4031
4032         * culture-info-tables.h: Fix date separator symbol.
4033         
4034 2004-04-07  Martin Baulig  <martin@ximian.com>
4035
4036         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
4037         from System.Type to System.MonoType.
4038
4039 2004-04-07  Martin Baulig  <martin@ximian.com>
4040
4041         * reflection.h
4042         (MonoReflectionGenericParam): Added `has_reference_type' and
4043         `has_value_type' fields.
4044
4045         * reflection.c (mono_image_get_generic_param_info): Encode the
4046         correct flags if we have the `class' or `struct' constraint.
4047
4048 2004-04-07  Martin Baulig  <martin@ximian.com>
4049
4050         * reflection.h
4051         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
4052
4053 2004-04-07  Jackson Harper  <jackson@ximian.com>
4054
4055         * appdomain.c: Revert extra patches, just wanted to bump the
4056         version number.
4057         
4058 2004-04-07  Jackson Harper  <jackson@ximian.com>
4059
4060         * Makefile.am: Add culture-info private headers.
4061         * icall.c: Add new icalls for contructing locales.
4062         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
4063         * locales.h: Declare new culture info construction methods.
4064         * object.h: Add new fields used to avoid the CultureMap to
4065         MonoCultureInfo.
4066         * culture-info.h: Definition of structs used in the culture info
4067         tables.
4068         * culture-info-tables.h: Autogenerated tables that contain culture
4069         info data. This file was generated with the locale-builder tool.
4070         * appdomain.c: Incement corlib version number.
4071         
4072 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
4073
4074         * appdomain.c: (mono_runtime_init) move mono_thread_init
4075         to before mono_object_new calls so critical sections
4076         are initialized before use.
4077
4078 2004-04-07  Martin Baulig  <martin@ximian.com>
4079
4080         * icall.c
4081         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
4082         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
4083         (ves_icall_MonoGenericParam_initialize): Removed.
4084         (monogenericparam_icalls): Removed.
4085         (generictypeparambuilder_icalls): Added new table for
4086         System.Reflection.Emit.GenericTypeParameterBuilder.
4087
4088         * reflection.c
4089         (mono_reflection_define_generic_parameter): Removed.
4090         (mono_reflection_initialize_generic_parameter): This is now called
4091         from GenericTypeParameterBuilder's .ctor.
4092
4093 2004-04-06  Martin Baulig  <martin@ximian.com>
4094
4095         * class.c (mono_class_init): Don't inflate nested classes in a
4096         generic instance.
4097         (mono_type_get_name_recurse): Include the generic arguments for
4098         generic instances and generic type declarations.
4099         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
4100         (_mono_class_get_instantiation_name): Removed.
4101         (mono_class_create_generic): Always use `gklass->name' as our name.
4102
4103         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
4104
4105         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
4106         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
4107         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
4108         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
4109         closed generic methods here.
4110
4111         * reflection.c
4112         (mono_reflection_generic_inst_get_nested_types): Removed.
4113         (inflate_mono_method): Copy the generic parameters from the
4114         MonoMethodHeader into out MonoGenericMethod.
4115
4116 2004-04-06  Martin Baulig  <martin@ximian.com>
4117
4118         * row-indexes.h
4119         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
4120
4121         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
4122
4123         * reflection.c (build_compressed_metadata): If we have any entries
4124         in the GenericParam, MethodSpec or GenericParamConstraint tables,
4125         set the header version to 1.1.
4126
4127 2004-04-06  Martin Baulig  <martin@ximian.com>
4128
4129         * class.c (mono_class_init): If we're a generic instance,
4130         initialize our nested classes, too.
4131         (_mono_class_get_instantiation_name): Deal with the new `!%d'
4132         suffix. 
4133
4134 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4135
4136         * process.c: quote the argument passed to the shell on windows.
4137
4138 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4139
4140         * threads.c (mono_alloc_special_static_data): Allow this to be
4141         called during startup.
4142
4143 2004-04-02  Martin Baulig  <martin@ximian.com>
4144
4145         * icall.c
4146         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
4147
4148 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4149
4150         * icall.c: Fix build.
4151
4152 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4153
4154         * Makefile.am: Added security.c|h.
4155         * icall.c: Added icall for get_UserName;
4156         * security.c: New file for security related icalls. Added function
4157         get_UserName for System.Environment (fix #56144).
4158         * security.h: New. Header file for security.c
4159
4160 2004-04-02  Dick Porter  <dick@ximian.com>
4161
4162         * icall.c: Deleted the icalls that were obsoleted some time ago
4163         by the ICU string code, and which were mixed into the icall
4164         rearranging.  Fixes bug 55969.
4165
4166         * string-icalls.h: 
4167         * string-icalls.c: Deleted the code that those icalls reference.
4168
4169 2004-04-01  Martin Baulig  <martin@ximian.com>
4170
4171         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
4172
4173         * class.c (mono_class_from_generic_parameter): Don't set 
4174         TYPE_ATTRIBUTE_INTERFACE.
4175         (my_mono_class_from_generic_parameter): Likewise.
4176
4177 2004-04-01  Martin Baulig  <martin@ximian.com>
4178
4179         * loader.c (find_method): Added an optional `MonoClass *ic'
4180         argument to search in a specific interface.
4181         (mono_get_method_constrained): New public function.
4182
4183 2004-04-01  Martin Baulig  <martin@ximian.com>
4184
4185         * reflection.c (mono_image_get_generic_field_token): Use the
4186         `handleref' cache here.
4187
4188 2004-04-01  Martin Baulig  <martin@ximian.com>
4189
4190         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4191
4192         * reflection.c (create_generic_typespec): Use the `typespec' hash
4193         here, not the `typeref' one.    
4194
4195 2004-04-01  Martin Baulig  <martin@ximian.com>
4196
4197         * class.c (mono_class_inflate_generic_type): Moved the
4198         functionality into a new static inflate_generic_type() which
4199         returns NULL if it didn't do anything.  Only increment the
4200         `mono_stats.inflated_type_count' if we actually inflated
4201         something.
4202         (mono_class_get_full): Check the classes type to see whether we
4203         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4204
4205 2004-04-01  Jackson Harper  <jackson@ximian.com>
4206
4207         * reflection.c: Set culture for assembly references.
4208         
4209 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4210
4211         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4212
4213 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4214
4215         * assembly.c:
4216         (do_mono_assembly_open): the critical section also covers
4217         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4218
4219 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4220
4221         * threads.c:
4222         (mono_manage_threads): abort the background threads when finishing.
4223         Fixes bug #47232.
4224
4225 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4226
4227         * gc.c: only close the done_event handle if there was no timeout.
4228         C-ified comments.
4229
4230 2004-03-30  Martin Baulig  <martin@ximian.com>
4231
4232         * icall.c (icall_entries): It's called "System.Activator", not
4233         "System.Activation".    
4234
4235 2004-03-30  Martin Baulig  <martin@ximian.com>
4236
4237         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4238         (mono_class_create_from_typespec): Likewise.
4239
4240 2004-03-30  Martin Baulig  <martin@ximian.com>
4241
4242         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4243         `has_ctor_constraint' and `initialized'.
4244
4245 2004-03-30  Martin Baulig  <martin@ximian.com>
4246
4247         * reflection.c (encode_new_constraint): New static function to add
4248         the constructor constraint attribute to a type parameter.
4249         (encode_constraints): Call encode_new_constraint() if necessary.
4250
4251         * reflection.h
4252         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4253
4254         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4255         
4256 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4257
4258         * reflection.c, icall.c: add support for pinning variables. 
4259
4260 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4261
4262         * marshal.c (mono_marshal_get_managed_wrapper):
4263         init bool local with zero rather than null.
4264
4265 2004-03-29  Martin Baulig  <martin@ximian.com>
4266
4267         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4268         the "official" behavior here.
4269         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4270
4271 2004-03-29  Martin Baulig  <martin@ximian.com>
4272
4273         * icall.c: Reflect latest API changes.
4274
4275 2004-03-29  Martin Baulig  <martin@ximian.com>
4276
4277         * loader.c (mono_get_method_from_token): Also call
4278         mono_metadata_load_generic_params () for abstract and interface
4279         methods; replace the type arguments in the method signature with
4280         the ones which are loaded from the metadata.
4281
4282 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4283
4284         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4285         of the lock is not the current thread. MS.NET don't do it, in spite of
4286         what the documentation says. See bug #56157.
4287
4288 2004-03-28  Martin Baulig  <martin@ximian.com>
4289
4290         * class.c (mono_class_init): Don't call init_properties() and
4291         init_events() for generic instances; set `prop->parent' when
4292         inflating properties.
4293
4294         * reflection.c (mono_generic_inst_get_object): Call
4295         `mono_class_init (ginst->klass)'.
4296         (mono_type_get_object): Only create a MonoGenericInst if your
4297         generic type is a TypeBuilder.
4298         (do_mono_reflection_bind_generic_parameters): Only set
4299         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4300
4301 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4302
4303         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4304         Fixes #56091.
4305
4306 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4307
4308         * icall.c: added Kill_internal icall.
4309         * process.[ch]: added Kill_internal icall.
4310
4311 2004-03-25  Martin Baulig  <martin@ximian.com>
4312
4313         * class.h (MonoStats): Added `generic_instance_count',
4314         `inflated_method_count', `inflated_type_count' and
4315         `generics_metadata_size'.       
4316
4317 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4318
4319         * reflection.c: no warnings now.
4320
4321 2004-03-25  Martin Baulig  <martin@ximian.com>
4322
4323         * class.c (mono_class_get_full): New public function; does a
4324         mono_class_get(), but also takes a `MonoGenericContext *'.
4325
4326         * loader.c (mono_field_from_memberref): Renamed to
4327         `field_from_memberref', made static and added `MonoGenericContext *'
4328         argument.
4329         (mono_field_from_token): Added `MonoGenericInst *' argument.
4330         (method_from_memberef): Likewise.
4331         (mono_get_method_from_token): Likewise.
4332         (mono_get_method_full): New public function; does a
4333         mono_get_method(), but also takes a `MonoGenericContext *'.
4334
4335         * verify.c (mono_method_verify): Get the method's generic context
4336         and pass it to mono_field_from_token(), mono_get_method_full() and
4337         mono_class_get_full().
4338
4339 2004-03-25  Martin Baulig  <martin@ximian.com>
4340
4341         * class.c (mono_class_inflate_generic_type): Take a
4342         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4343         `MonoGenericMethod *'.
4344
4345 2004-03-25  Martin Baulig  <martin@ximian.com>
4346
4347         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4348         instead of the MonoGenericMethod here.
4349
4350 2004-03-25  Martin Baulig  <martin@ximian.com>
4351
4352         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4353         each time we create a new MonoGenericInst, we also create a new
4354         context which points back to us.
4355
4356         * class.c (inflate_method): Use `ginst->context' instead of
4357         creating a new context.
4358
4359         * loader.c (method_from_memberref): Use
4360         `klass->generic_inst->context' instead of creating a new context.
4361
4362 2004-03-25  Martin Baulig  <martin@ximian.com>
4363
4364         * class.h (MonoGenericContext): New struct.
4365         (MonoGenericMethod): Removed `generic_inst'.
4366
4367         * class.c (mono_class_inflate_generic_method): Take a
4368         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4369
4370 2004-03-25  Martin Baulig  <martin@ximian.com>
4371
4372         * loader.h (MonoMethodInflated): New typedef.
4373
4374         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4375         `generic_param_count' consume just 30 bits, added `is_inflated'
4376         and `has_type_parameters' flags (one bit each).
4377
4378         * class.c (mono_class_inflate_generic_method): Create a
4379         MonoMethodInflated instead of a MonoMethodNormal and set
4380         `is_inflated' in the method signature.
4381
4382         * class.h (MonoGenericMethod): Removed `generic_method'.
4383
4384 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4385
4386         * image.c: Make sure the name of a MonoImage is always an absolute path.
4387           This fixes bug #54415.
4388
4389 2004-03-24  Martin Baulig  <martin@ximian.com>
4390
4391         * class.c (mono_class_setup_vtable): If we're a generic instance,
4392         use our generic type's vtable size.
4393
4394 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4395
4396         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4397         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4398         problems.
4399
4400 2004-03-23  Martin Baulig  <martin@ximian.com>
4401
4402         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4403         `MonoEvent *events'.
4404
4405         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4406         (typebuilder_icalls): Added "get_event_info"; calls
4407         mono_reflection_event_builder_get_event_info(). 
4408
4409         * reflection.c (mono_reflection_generic_inst_initialize): Added
4410         `MonoArray *events'.
4411         (mono_reflection_event_builder_get_event_info): New function.
4412
4413 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4414
4415         * object.h: add mono_type_initialization_init
4416
4417         * object.c (mono_runtime_class_init): 
4418         implement class constructor synchronization rules
4419         to cope with threading issues.  
4420         add mono_type_initialization_init
4421
4422         * appdomain.c (mono_runtime_init): call 
4423         mono_type_initialization_init
4424
4425         * class.h: removing initializing field from MonoVTable
4426
4427 2004-03-23  Martin Baulig  <martin@ximian.com>
4428
4429         * class.c (my_mono_class_from_generic_parameter): Use
4430         `param->name' if it's not NULL. 
4431
4432 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4433
4434         * class.c: do not insert non-virtual methods in the vtable.
4435         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4436         that means the method is non-virtual. This never would have
4437         happened before.
4438
4439 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4440
4441         * profiler.c: Added lock for accessing coverage_hash.
4442
4443 2004-03-22  Martin Baulig  <martin@ximian.com>
4444
4445         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4446         `method->method->signature->generic_param_count != 0' to make it
4447         work for interface methods.
4448
4449 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4450
4451         * process.c: quote the string passed to the shell using g_shell_quote.
4452
4453 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4454
4455         * threads.c:
4456         (mono_threads_manage): don't remove the finalizer thread and self
4457         from the threads hash table so that mono_thread_manage can be called
4458         more than once.
4459
4460 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4461
4462         * process.c: quote the arguments when UseShellExecute is true. Fixes
4463         bug #55790.
4464
4465 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4466
4467         * threads.c: set mono_thread_detach as a cleanup routine for every
4468         thread. This way it's always executed upon thread termination, either
4469         aborted or finished normally. No more xsp hangs!
4470
4471 2004-03-17  Martin Baulig  <martin@ximian.com>
4472
4473         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4474         `int count_nested' and a `MonoType **nested'.
4475
4476         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4477         most of the functionality into a new static
4478         do_mono_reflection_bind_generic_parameters() and don't take a
4479         `MonoType *nested_in' argument any more.  Don't compute nested
4480         types here.
4481         (mono_reflection_generic_inst_get_nested_types): New public method
4482         to get nested types.
4483
4484         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4485         we're a nested class.
4486
4487         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4488         mono_reflection_generic_inst_get_nested_types() to compute the
4489         nested types.
4490
4491 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4492
4493         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4494         descriptive error message under windows.
4495         
4496 2004-03-17  Martin Baulig  <martin@ximian.com>
4497
4498         * class.c (dup_type): Added `const MonoType *original' argument;
4499         copy the attrs from the original type.
4500
4501 2004-03-17  Martin Baulig  <martin@ximian.com>
4502
4503         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4504         `m->generic_inst_cache' here.
4505
4506 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4507
4508         * exception.h exception.c: Add stack_overflow_exception.
4509
4510 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4511
4512         * threadpool.c:
4513         (overlapped_callback): call SetEvent *after* invoking the callback.
4514         No need to call CloseHandle.
4515
4516 2004-03-16  Martin Baulig  <martin@ximian.com>
4517
4518         * reflection.c (mono_image_get_fieldref_token): Take a
4519         `MonoReflectionField *' instead of a `MonoClassField *' and a
4520         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4521
4522 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4523
4524         * appdomain.c: don't add the culture to the filename we're looking for
4525         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4526
4527 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4528
4529         * locales.c: don't ignore symbols when doing case insensitive compares.
4530         Thanks Dick! Fixes bug #54046.
4531
4532         * threads.c: surround 'threads' usage with enter/leave in
4533         mono_thread_manage.
4534
4535 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4536
4537         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4538         implicitly marshalled as [Out]. Fixes #55450.
4539
4540         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4541         an exception.
4542
4543 2004-03-16  Martin Baulig  <martin@ximian.com>
4544
4545         * class.c (mono_class_from_generic_parameter): Use the actual
4546         parameter name. 
4547
4548 2004-03-16  Martin Baulig  <martin@ximian.com>
4549
4550         * reflection.c (type_get_signature_size): New static function.
4551         Compues the size of the type in a method signature.
4552         (method_get_signature_size): New static function; calls
4553         type_get_signature_size() to compute the actual size of the
4554         method's signature.
4555         (method_encode_signature): Use method_get_signature_size() to get
4556         the signature's size rather than using `nparams * 10'.
4557
4558 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4559
4560         * file-io.h: define here WapiOverlapped on windows. I don't want the
4561         regular OVERLAPPED one.
4562
4563         * file-io.c:
4564         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4565         Disabling AIO on windows.
4566
4567 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4568
4569         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4570         bug #55385.
4571
4572 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4573
4574         * appdomain.c: upgraded corlib version.
4575
4576         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4577         and BeginWrite. Allow opening files for asynchrnous operations.
4578
4579         * file-io.h: new struct that maps FileStreamAsyncResult.
4580         * icall.c: added new icalls.
4581         * process.[ch]: support setting child process environment variables
4582         and use the SHELL or COMSPEC when UseShellExecute is true.
4583
4584         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4585         callback for async. IO is here and also BindHandle.
4586
4587         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4588         from here.
4589
4590 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4591
4592         * reflection.c (create_custom_attr): Allow len == 0.
4593
4594         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4595         computation on big-endian machines.
4596
4597 2004-03-13  Martin Baulig  <martin@ximian.com>
4598
4599         * class.h (MonoGenericInst): Added `int count_ifaces'.
4600
4601         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4602         `ginst->count_ifaces' instead `klass->interface_count' since we
4603         may get called before the vtable is created.
4604
4605         * loader.c (mono_method_get_param_names): If we're a generic
4606         instance, return and don't initialize the class.
4607
4608         * reflection.c (mono_reflection_setup_generic_class): Don't call
4609         ensure_runtime_vtable().
4610         (mono_reflection_bind_generic_parameters): Set
4611         `ginst->count_ifaces'.
4612
4613 2004-03-11  Jackson Harper <jackson@ximian.com>
4614
4615         * icall.c:
4616         * unicode.c:
4617         * unicode.h: Remove unused System.Char icalls.
4618         
4619 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4620
4621         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4622         code when we P/Invoke the first library in Windows.Forms, instead
4623         of when we first open the assembly.
4624
4625         * assembly.c: Drop the lookup from here.
4626
4627 2004-03-10  Martin Baulig  <martin@ximian.com>
4628
4629         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4630         class for properties, fields and events.  Finally fixes #54945.
4631
4632 2004-03-10  Martin Baulig  <martin@ximian.com>
4633
4634         * metadata.c (mono_metadata_class_equal): New static function;
4635         checks whether two generic instances or two generic parameters are
4636         equal.
4637         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4638         compare classes.        
4639
4640 2004-03-10  Martin Baulig  <martin@ximian.com>
4641
4642         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4643
4644         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4645         argument and write it into the `reflection_info' field.
4646
4647         * icall.c
4648         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4649         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4650
4651 2004-03-09  Jackson Harper  <jackson@ximian.com>
4652
4653         * char-conversions.h: use 8 bits for numeric data its all we need
4654         * icall.c: numeric data is only 8 bits now.
4655
4656 2004-03-09  Martin Baulig  <martin@ximian.com>
4657
4658         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4659
4660         * class.c (init_properties, init_events): Initialize the new
4661         `parent' field.
4662
4663         * reflection.c (typebuilder_setup_properties): Likewise.
4664         (typebuilder_setup_events): Likewise.
4665
4666         * reflection.h (MonoEventInfo): Replaced `parent with
4667         `declaring_type' and `reflected_type'.
4668
4669         * icall.c (ves_icall_get_property_info): Distinguish between
4670         declaring and reflected type.
4671         (ves_icall_get_event_info): Likewise.
4672
4673 2004-03-09  Martin Baulig  <martin@ximian.com>
4674
4675         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4676         (ves_icall_Type_GetField): Correctly set field->klass.
4677
4678 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4679
4680         * loader.h: Fix warning.
4681
4682 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4683
4684         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4685         library routine if present.  Notice that it will still continue
4686         executing even if its missing, for those working on the Gtk#
4687         edition of Windows.Forms.
4688
4689         * assembly.c (do_mono_assembly_open): If loading the
4690         System.Windows.Forms call mono_loader_wini_init.
4691
4692 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4693
4694         * class.h: Added MonoRemoteClass struct.
4695         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4696         function for MonoStrings.
4697         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4698         Added internal call for getting the proxy type.
4699         * marshal.c: Get the type of transparent proxies from its remote_class.
4700         Added methods that generate the IL for type checks and casts:
4701         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4702         mono_marshal_get_proxy_cancast.
4703         * marshal.h: Declaration of the previous new methods.
4704         * object.c: Added new moethods for creating and updating MonoRemoteClass
4705         instances: mono_remote_class, mono_upgrade_remote_class, 
4706         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4707         * verify.c: FIx transparent_proxy_fields layout.
4708         * appdomain.c: Bump corlib version.
4709
4710 2004-03-04  Jackson Harper  <jackson@ximian.com>
4711
4712         * icall.c: Add icall to access char conversion tables.
4713         * char-conversions.h: Character conversion tables.
4714         * Makefile.am: Add char-conversions.h private header file.
4715         
4716 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4717
4718         * appdomain.c (unload_thread_main): Increase unloading timeout to
4719         10 sec as a temporary workaround for Nant problems.
4720
4721 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4722
4723         * gc.c: Add checks for GC_enable and GC_disable.
4724
4725         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4726         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4727         (bug #54988).
4728         
4729 2004-02-27  Martin Baulig  <martin@ximian.com>
4730
4731         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4732         `MonoReflectionType *' instead of a `MonoType *'.
4733
4734 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4735
4736         * gc.c (run_finalize): Avoid finalizing the object representing the
4737         finalizer thread.
4738         (finalizer_thread): Fix warning.
4739
4740 2004-02-25  Martin Baulig  <martin@ximian.com>
4741
4742         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4743         argument for nested types.
4744         (mono_class_create_generic): Added support for nested generictypes.
4745
4746         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4747         `GList *nested'.
4748
4749         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4750
4751         * reflection.c (method_encode_signature): Increase the minimum
4752         value of `size' from 10 to 11.
4753         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4754         and `MonoType **types' arguments instead of the `MonoArray
4755         *types'; added `MonoType *nested_in'.  Recursively instantiate
4756         nested classes. 
4757
4758 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4759
4760         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4761         stack_overflow_ex members which are used by exception handling.
4762
4763         * appdomain.c (mono_runtime_init): Initialize the new members.
4764
4765         * gc.c (mono_gc_enable): New helper function.
4766         * gc.c (mono_gc_disable): New helper function.
4767
4768 2004-02-23  Martin Baulig  <martin@ximian.com>
4769
4770         * icall.c: I must have been really stupid - make it actually work
4771         this time ;-)
4772
4773 2004-02-23  Martin Baulig  <martin@ximian.com>
4774
4775         * loader.c (method_from_memberref): Only inflate the method if
4776         it's in another klass.
4777
4778 2004-02-23  Martin Baulig  <martin@ximian.com>
4779
4780         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4781         (mono_class_init): If we're a generic instance and an interface,
4782         compute `class->interface_id'; also create `class->interfaces'
4783         here and inflate them.
4784
4785         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4786         `ginst->is_open'.
4787         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4788
4789         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4790
4791 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4792
4793         * reflection.c (method_encode_code): Improved the error message
4794         generated by the exception.
4795
4796 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4797
4798         * icall.c: Martin did not do what he said in the ChangeLog for
4799         2004-02-18, but put back the changes for properties and events.
4800         Commenting those changes out again and adding comment to bug #54518.
4801         
4802         * process.c: removed warning.
4803
4804 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4805
4806         * marshal.c (emit_struct_conv): Print an error message instead of
4807         asserting when a type does not have the StructLayout attribute.
4808
4809 2004-02-20  Martin Baulig  <martin@ximian.com>
4810
4811         * reflection.c (mono_type_get_object): Also use the cache for
4812         generic instances.
4813         (mono_reflection_bind_generic_parameters): Always compute
4814         `ginst->ifaces'.        
4815
4816 2004-02-20  Martin Baulig  <martin@ximian.com>
4817
4818         * class.h (MonoGenericMethod): Removed `klass'.
4819
4820         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4821         *klass' argument.
4822
4823 2004-02-20  Martin Baulig  <martin@ximian.com>
4824
4825         * reflection.c (method_encode_methodspec): Actually use the
4826         uninflated signature for the memberref.
4827
4828 2004-02-20  Martin Baulig  <martin@ximian.com>
4829
4830         * class.h (MonoGenericMethod): Removed `declaring'.
4831
4832         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4833         is NULL, compute it here.
4834
4835 2004-02-20  Martin Baulig  <martin@ximian.com>
4836
4837         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4838
4839         * metadata.c (mono_metadata_generic_inst_hash): New method.
4840         (mono_metadata_generic_inst_equal): New method.
4841
4842         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4843         `klass->image->generic_inst_cache' cache to avoid creating
4844         duplicate MonoGenericInst's.
4845
4846         * class.c (mono_class_inflate_generic_type): Use the cache.
4847
4848 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4849
4850         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4851
4852 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4853
4854         * icall.c: added Socket.WSAIoctl icall.
4855
4856         * socket-io.[ch]: implemented
4857         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4858
4859 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4860
4861         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4862
4863 2004-02-18  Urs C Muff  <umuff@quark.com>
4864
4865         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4866         this work on PPC and other big-endian architectures.
4867
4868         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4869         fields with an underscore to make sure they're only accessed by
4870         the read32() macro.
4871
4872 2004-02-18  Martin Baulig  <martin@ximian.com>
4873
4874         * icall.c: Put the klass->refclass changes back for methods and
4875         fields, but not for properties and events.  We're currently not
4876         distinguishing between DeclaringType and ReflectedType for
4877         properties and events, that's what caused the regressions.
4878
4879 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4880
4881         * object.c:
4882         (mono_async_result_new): the handle can be NULL.
4883
4884         * threadpool.c: Use an event instead of a semaphore, don't initialize
4885         it until needed. This saves quite a few semaphores from being created
4886         when using the threadpool.
4887
4888 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4889
4890         * object.c (mono_string_is_interned_lookup): Fix interning of long
4891         strings. Fixes #54473.
4892
4893         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4894
4895         * icall.c: Revert the klass->refclass changes since they introduce
4896         regressions (bug #54518).
4897
4898 2004-02-18  Martin Baulig  <martin@ximian.com>
4899
4900         * class.c (mono_class_init): If we're a generic instance and don't
4901         come from a TypeBuilder, inflate our members here.
4902         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4903         (mono_class_create_generic): New public method.
4904         (mono_class_initialize_generic): Removed.
4905         (get_instantiation_name): Renamed to
4906         _mono_class_get_instantiation_name() and made it public.
4907
4908 2004-02-18  Martin Baulig  <martin@ximian.com>
4909
4910         * class.c (mono_class_inflate_generic_type): Clear the new
4911         instance's `nginst->klass' when inflating a generic instance.
4912         (mono_class_is_subclass_of): Added (basic) support for generic
4913         instances.
4914
4915 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4916
4917         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4918         MonoMempool to hold compiled native code.
4919
4920 2004-02-17  Martin Baulig  <martin@ximian.com>
4921
4922         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4923         `properties'.
4924
4925         * reflection.c (mono_reflection_generic_inst_initialize): Added
4926         `MonoArray *properties' argument.
4927
4928         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4929
4930 2004-02-17  Martin Baulig  <martin@ximian.com>
4931
4932         * icall.c (ves_icall_Type_GetFields): Renamed to
4933         ves_icall_Type_GetFields_internal() and added a
4934         `MonoReflectionType *rtype' argument; pass it to
4935         mono_field_get_object() to set the field's "reflected" type.
4936         (ves_icall_Type_GetConstructors): Likewise.
4937         (ves_icall_Type_GetEvents): Likewise.
4938         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4939         argument; pass it to mono_method_get_object() to set the method's
4940         "reflected" type.       
4941
4942 2004-02-17  Martin Baulig  <martin@ximian.com>
4943
4944         * class.h (MonoDynamicGenericInst): New type.
4945         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4946
4947         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4948         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4949         (ves_icall_MonoGenericInst_GetFields): New interncall.
4950
4951         * class.c (mono_class_from_generic): Don't call
4952         mono_class_initialize_generic() if this is a dynamic instance;
4953         ie. it's being created from a TypeBuilder.
4954         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4955         `class->byval_arg.type'.
4956
4957         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4958         to `inflate_method' and made static.
4959         (mono_reflection_inflate_field): Removed.
4960         (mono_reflection_generic_inst_initialize): New public method.
4961
4962         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4963         `ctors' and `fields'; added `initialized'.
4964
4965 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4966
4967         * debug-helpers.c (mono_method_full_name): Fix output for empty
4968         namespaces.
4969
4970 2004-02-12  Martin Baulig  <martin@ximian.com>
4971
4972         * class.h (MonoClassField): Added `MonoType *generic_type'.
4973
4974         * reflection.c (mono_image_get_fieldref_token): Added support for
4975         instantiated generic types.
4976         (field_encode_inflated_field): Removed.
4977         (mono_image_get_inflated_field_token): Removed.
4978         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4979
4980         * reflection.h (MonoReflectionInflatedField): Removed.
4981
4982 2004-02-12  Martin Baulig  <martin@ximian.com>
4983
4984         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4985         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4986
4987         * reflection.c (mono_image_get_methodspec_token): Take a
4988         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
4989         (mono_image_create_token): Check whether we have a
4990         `method->signature->gen_method' and call
4991         mono_image_get_methodspec_token() if appropriate.
4992         (inflated_method_get_object): Removed.
4993         (mono_reflection_bind_generic_method_parameters): Return a
4994         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
4995         (mono_reflection_inflate_method_or_ctor): Likewise.
4996
4997         * reflection.h (MonoReflectionInflatedMethod): Removed.
4998
4999 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
5000
5001         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
5002         for custom valuetype marshalling.
5003
5004         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
5005
5006 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5007
5008         * icall.c: fixed WSAGetLastError_internal name.
5009
5010 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
5011
5012         * threads.c (mono_thread_attach): Allow this to be called multiple
5013         times for a thread.
5014         
5015         * threads.c (build_wait_tids): Do not wait for ourselves.
5016
5017         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
5018         appdomain list is empty.
5019
5020         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
5021         memory returned by mono_string_builder_to_utf16, since it points into
5022         managed memory. Thanks to Bernie Solomon for noticing this.
5023
5024         * icall.c: Add AppDomainSetup icalls.
5025
5026         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
5027
5028         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
5029         types.
5030
5031         * reflection.c (reflection_methodbuilder_to_mono_method): Save
5032         custom attributes to the method_aux struct. Also fix array indexes etc.
5033
5034         * loader.c (mono_method_get_param_names): Make dynamic case work again.
5035         
5036 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
5037
5038         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
5039         (both static and runtime) and reduce startup time.
5040
5041 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
5042
5043         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
5044         AsAny marshalling conversion instead of crashing.
5045
5046         * marshal.c: Fix warnings.
5047
5048 2004-02-09  Martin Baulig  <martin@ximian.com>
5049
5050         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
5051
5052         * reflection.h (MonoReflectionInflatedMethod): Removed the
5053         `declaring' field, it's now in the unmanaged MonoGenericMethod.
5054
5055         * reflection.c (method_encode_methodspec): Removed the `method'
5056         argument; we get it from `gmethod->declaring'.
5057         (inflated_method_get_object): Removed the `declaring' argument.
5058
5059 2004-02-09  Martin Baulig  <martin@ximian.com>
5060
5061         * class.h (MonoGenericMethod): New type.
5062         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
5063         `generic_method'.
5064
5065         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
5066         a `MonoGenericMethod *gen_method' one.
5067
5068         * class.c (mono_class_inflate_generic_type): Take an additional
5069         `MonoGenericMethod * argument.  This is only non-NULL if we're
5070         inflating types for a generic method.   
5071         (mono_class_inflate_generic_signature): Renamed to
5072         inflate_generic_signature() and made static; take a
5073         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5074         (inflate_generic_header): Take a `MonoGenericMethod *' argument
5075         instead of a `MonoGenericInst *' one.
5076         (mono_class_inflate_generic_method): Likewise.
5077
5078         * reflection.c (encode_generic_method_sig): Take a
5079         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5080         (method_encode_methodspec): Likewise.
5081         (inflated_method_get_object): Likewise. 
5082
5083         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
5084         field with a `MonoGenericMethod *gmethod' one.  
5085
5086 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
5087
5088         * class.h (mono_class_has_parent): add parens to expansion
5089         so you can ! this.
5090
5091 2004-02-08  Martin Baulig  <martin@ximian.com>
5092
5093         * image.h (MonoImage): Removed `generics_cache'.
5094
5095         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
5096         instead of a `MonoType *' argument; removed the `inflate_methods'
5097         argument.  Don't inflate methods here.
5098
5099         * loader.c (find_method): If it's a generic instance, call
5100         mono_class_init() on the `sclass->generic_inst->generic_type'.
5101
5102         * metadata.c (mono_type_size): Make this work on uninitialized
5103         generic instances; call it on the `ginst->generic_type's class.
5104
5105         * reflection.c (mono_reflection_bind_generic_parameters): Call
5106         mono_class_from_generic() to create the `ginst->klass'.
5107
5108 2004-02-08  Martin Baulig  <martin@ximian.com>
5109
5110         * class.h (MonoClass): Changed type of `generic_inst' from
5111         `MonoType *' to `MonoGenericInst *'.
5112
5113 2004-02-08  Martin Baulig  <martin@ximian.com>
5114
5115         * icall.c (ves_icall_Type_BindGenericParameters): Just call
5116         mono_type_get_object(), this is now creating a `MonoGenericInst'
5117         for MONO_TYPE_GENERICINST.
5118         (ves_icall_MonoGenericInst_GetParentType): Likewise.
5119         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
5120
5121         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
5122         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
5123         (inflated_method_get_object): Added `MonoClass *refclass' argument.
5124         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
5125         and reflected type.
5126
5127         * reflection.h (MonoReflectionInflatedMethod): Removed
5128         `declaring_type' and `reflected_type'.
5129
5130 2004-02-08  Martin Baulig  <martin@ximian.com>
5131
5132         * class.h (MonoGenericInst): Added `MonoType *parent' and
5133         `MonoType **ifaces'.
5134
5135         * reflection.h (MonoReflectionGenericInst): Removed `klass',
5136         `parent' and `interfaces'.
5137
5138         * reflection.c (mono_reflection_bind_generic_parameters): Take a
5139         `MonoType *' argument and return a `MonoType *'.
5140
5141         * icall.c
5142         (ves_icall_MonoGenericInst_GetParentType): New interncall.
5143         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
5144
5145 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5146
5147         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
5148         valuetype marshalling.
5149
5150 2004-02-06  Martin Baulig  <martin@ximian.com>
5151
5152         * class.c
5153         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
5154         (my_mono_class_from_generic_parameter): Likewise.
5155
5156 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5157
5158         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
5159         contents of the symbol files lazily.
5160
5161         * object.h (MonoThread): Add 'name' and 'name_len' fields.
5162
5163         * threads.h threads.c icall.c: New icalls for getting and setting the
5164         threads name.
5165
5166 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
5167
5168         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
5169         Raise an exception when the domain is not found.
5170
5171 2004-02-03  Martin Baulig  <martin@ximian.com>
5172
5173         * reflection.c (mono_image_get_methodspec_token): Use the
5174         uninflated signature; fixes gen-33.
5175
5176 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5177
5178         * gc.c threads.c: Make the finalizer thread a normal managed thread so
5179         the finalizer code can use thread functionality.
5180
5181         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
5182         the finalizer thread.
5183
5184         * threads.c: Make some functions more robust.
5185
5186         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5187
5188         * metadata.h: Add new marshalling conventions.
5189
5190         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5191         stringbuilder marshalling. Fixes #53700.
5192
5193         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5194
5195         * reflection.c (mono_image_get_type_info): Save declarative security
5196         info.
5197
5198         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5199         unmanaged fields as well.
5200
5201         * appdomain.c: Bump corlib version.
5202
5203 2004-02-01  Martin Baulig  <martin@ximian.com>
5204
5205         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5206         method type arguments.  
5207
5208 2004-01-30  Duncan Mak  <duncan@ximian.com>
5209
5210         * marshal.h: Add prototype for
5211         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5212         and
5213         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5214         fix the build.
5215
5216 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5217
5218         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5219         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5220
5221 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5222
5223         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5224         custom marshalling of valuetypes.
5225
5226         * marshal.c: Fix some warnings.
5227
5228 2004-01-29  Martin Baulig  <martin@ximian.com>
5229
5230         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5231         for generic method parameters.
5232
5233         * reflection.c (method_encode_methodspec): Write the uninflated
5234         signature into the methodspec table.
5235         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5236         is always the uninflated method.
5237         (reflection_methodbuilder_to_mono_method): Copy the generic
5238         parameters from the MethodBuilder into `header->gen_params'.
5239
5240 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5241
5242         * class.c (mono_class_from_generic_parameter): Fix warning.
5243
5244 2004-01-27  Martin Baulig  <martin@ximian.com>
5245
5246         * class.c (mono_class_from_generic_parameter): Don't create
5247         `klass->methods' here.  
5248
5249 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5250
5251         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5252         extension since it does not work with libraries named lib<FOO>.dll.so.
5253
5254 2004-01-25  Martin Baulig  <martin@ximian.com>
5255
5256         * class.c (mono_class_inflate_generic_type): Added support for
5257         MONO_TYPE_GENERICINST.
5258
5259         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5260         inflate methods on open constructed types.      
5261
5262 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5263
5264         * object.c: fire ProcessExit event in the root AppDomain after running
5265         Main. Fixes bug #53299.
5266
5267 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5268
5269         * socket-io.c: include the new socket-wrappers.h header.
5270         Use the wrappers instead of the unix socket functions to make the code
5271         more clear.
5272
5273 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5274
5275         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5276
5277         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5278         Fixes #22532.
5279
5280 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5281
5282         * reflection.c (mono_image_create_pefile): Handle the case when the
5283         entry point is not a MethodBuilder.
5284
5285         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5286         field to ReflectionMethod since it is not allways a builder.
5287
5288         * reflection.c (type_get_fully_qualified_name): New helper function to
5289         return the fully qualified name of a type.
5290
5291         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5292         type name for custom marshallers.
5293
5294         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5295
5296         * class.c (mono_class_setup_vtable): If a parent class already 
5297         implements an interface, use the implementing methods from that class.
5298         Fixes #53148.
5299
5300 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5301
5302         * threadpool.c: just return instead of ExitThread to allow for thread
5303         clean up earlier.
5304
5305 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5306
5307         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5308         when closing resource modules.
5309
5310         * reflection.c (mono_image_create_pefile): Handle the case when the
5311         entry point is not a MethodBuilder.
5312
5313         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5314         field to ReflectionMethod since it is not allways a builder.
5315
5316 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5317
5318         * marshal.c (mono_marshal_get_managed_wrapper): 
5319         mono_marshal_alloc takes native int so CONV_I
5320         the arg for 64bits.
5321
5322 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5323
5324         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5325         tokens in the cattr table. Fixes #53108.
5326
5327 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5328
5329         * loader.c: don't trim ".dll" before looking up in the config file.
5330         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5331
5332 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5333
5334         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5335         Return the module which contains the resource as well.
5336         (ves_icall_System_Reflection_Module_Close): New icall.
5337
5338         * appdomain.c: Bump corlib version number.
5339
5340         * image.c (mono_image_addref): New public function.
5341
5342         * assembly.c: Call mono_image_addref.
5343
5344         * reflection.c (mono_module_get_object): Increase reference count of 
5345         the image.
5346
5347         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5348         Fixes #22532.
5349
5350         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5351         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5352         proper exceptions on DllImport problems.
5353
5354 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5355
5356         * class.c, metadata.c: eliminate CSIZE macro.
5357
5358 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5359
5360         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5361         * object.h: Added async_callback field in MonoAsyncResult.
5362         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5363         * verify.c: Added async_callback in MonoAsyncResult layout.
5364
5365 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5366
5367         * reflection.c (mono_reflection_get_custom_attrs): Add support
5368         for Modules.
5369
5370 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5371
5372         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5373         marshalling.
5374         (mono_marshal_method_from_wrapper): Add null pointer check.
5375
5376 2004-01-16  Martin Baulig  <martin@ximian.com>
5377
5378         * debug-mono-symfile.h: Set version number to 36 and reflect
5379         latest symbol writer changes.
5380
5381 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5382
5383         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5384         multi-dimensional arrays.
5385         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5386         (mono_class_from_mono_type): Use bounded_array_class_get.
5387         
5388         * class.c (mono_bounded_array_class_get): New function which takes
5389         a 'bounded' bool argument to distinguish vectors from one dimensional
5390         arrays.
5391
5392         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5393         bounded_array_class_get if the array has bounds.
5394
5395         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5396         Search modules loaded using AssemblyBuilder:AddModule as well.
5397
5398 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5399
5400         * appdomain.c: increased corlib version.
5401         * filewatcher.c: removed g_print.
5402         * icall.c:
5403         (get_property_info): only allocate what is actually requested.
5404         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5405
5406 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5407
5408         * Makefile.am: added filewatcher.[ch]
5409         * filewatcher.[ch]: FileSystemWatcher runtime support.
5410         * icall.c: added new FSW icalls.
5411
5412 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5413
5414         * string-icalls.c: fix stringbuilder regression as suggested by
5415         Iain McCoy <iain@mccoy.id.au>.
5416
5417 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5418
5419         * process.c (process_read_stringtable_block): Recognize '007f' as
5420         a language neutral stringtable block.
5421
5422 2004-01-12  Patrik Torstensson
5423
5424         * object.h (MonoStringBuilder) : Changed layout to support our
5425         new stringbuilder class.
5426         * marshal.c: Change marshalling to support the new layout of 
5427         string builder.
5428         * appdomain.c: increased version number because new layout of
5429         string builder.
5430
5431 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5432
5433         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5434         assembly name as an string instead of an AssemblyName, since it is
5435         easier to extract info from it.
5436
5437         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5438         the culture subdirectories too. Fixes #52231.
5439
5440 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5441
5442         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5443         It takes 2 new parameters with an optional name for the method to look
5444         for and case ignoring info.
5445
5446         * threadpool.c: removed unused variable.
5447
5448 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5449
5450         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5451         It takes 2 new parameters with an optional name for the property to look
5452         for and case ignoring info.
5453         Fixes bug #52753.
5454
5455 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5456
5457         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5458         Fix #52451.
5459
5460 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5461
5462         * appdomain.c:
5463         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5464         Fixes bug #52630.
5465
5466 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5467
5468         * reflection.c: Add support for more than one unmanaged resource.
5469
5470         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5471         in field->def_value, as done in all other cases.
5472
5473         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5474         TypeBuilders.
5475
5476         * reflection.c (mono_reflection_create_runtime_class): Remove 
5477         errorneous assignment to klass->element_class, since it is already
5478         done in mono_reflection_setup_internal_class.
5479
5480 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5481
5482         * gc.c: added missing LeaveCriticalSection.
5483         * icall.c: indented a couple of lines.
5484         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5485         if we call EndInvoke inside a callback. Fixes bug #52601.
5486
5487 2004-01-07  Martin Baulig  <martin@ximian.com>
5488
5489         * mono-debug-debugger.h
5490         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5491
5492 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5493
5494         * appdomain.c: Use messages in NotImplementedException.
5495
5496         * exception.c (mono_get_exception_not_implemented): Now this takes
5497         a message argument.
5498
5499         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5500         exception instead of g_asserting an aborting when something is not
5501         implemented.
5502
5503         Add some inline docs.
5504
5505 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5506
5507         * reflection.h: Update after changes to object layout.
5508
5509         * reflection.c: Implement saving of unmanaged aka win32 resources.
5510
5511         * appdomain.c: Bump version number.
5512
5513         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5514         Handle missing domains gracefully.
5515
5516 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5517
5518         * file-io.c : On Windows, there are much more invalid_path_chars.
5519
5520 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5521
5522         * class.h, object.c: prepare for GetType () speedup.
5523
5524 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5525
5526         * profiler.c: workaround for --profile null reference exception on
5527           cygwin. Patch by Patrik Torstensson.
5528
5529 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5530
5531         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5532         make work for unaligned access.
5533
5534 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5535
5536         * class.c: small cleanup (class->fields [i] -> field).
5537         * image.c: check address of metadata is valid.
5538
5539 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5540
5541         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5542         search the list of loaded assemblies.
5543
5544         * reflection.c (mono_reflection_type_from_name): Use 
5545         mono_assembly_loaded instead of mono_image_loaded.
5546
5547         * reflection.c: Fix warnings.
5548
5549 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5550
5551         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5552         is dynamic. This is needed since an assembly can contain both dynamic and
5553         non-dynamic images.
5554
5555         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5556         assembly->dynamic.
5557
5558         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5559
5560         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5561         to store modules loaded using AddModule.
5562
5563         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5564         on Modules.
5565
5566         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5567
5568         * reflection.c (mono_image_fill_export_table_from_module): New function to
5569         fill out the EXPORTEDTYPES table from a module.
5570
5571         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5572         into a separate function. Also handle loaded non-dynamic modules.
5573
5574         * reflection.c (mono_image_basic_init): Fix memory allocation.
5575
5576         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5577
5578         * assembly.c (mono_assembly_load_references): Make this public.
5579
5580 2003-12-19  Martin Baulig  <martin@ximian.com>
5581
5582         * class.c (mono_class_initialize_generic): Made this static, take
5583         a `MonoGenericInst *' instead of a `MonoClass *'.
5584         (mono_class_from_generic): Call mono_class_initialize_generic()
5585         unless we're already initialized or being called from
5586         do_mono_metadata_parse_generic_inst().
5587
5588         * class.h (MonoGenericInst): Added `initialized' and
5589         `init_pending' flags.
5590
5591         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5592         `mono_class_init (gklass)' or mono_class_initialize_generic()
5593         here; set `generic_inst->init_pending' while parsing the
5594         `type_argv'.
5595
5596 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5597
5598         * locales.c: include string.h for memxxx prototypes
5599
5600 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5601
5602         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5603         constructor when accessing literal fields.
5604
5605 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5606
5607         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5608
5609         * reflection.c (assembly_add_resource_manifest): New function to fill
5610         the MANIFESTRESOURCE table.
5611
5612         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5613
5614         * reflection.h: Update to changes in class layout.
5615
5616         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5617         Reenable call to mono_runtime_is_shutting_down ().
5618
5619         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5620         determine if the runtime is shutting down.
5621
5622 2003-12-16  Jackson Harper <jackson@ximian.com>
5623
5624         * icall.c: comment out call to mono_runtime_is_shutting_down to
5625         fix build.
5626         
5627 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5628
5629         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5630         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5631
5632 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5633
5634         * reflection.c: move definition of swap_with_size
5635         to before its first call
5636
5637 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5638
5639         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5640
5641         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5642         icall.
5643
5644         * object.c: Fix warnings.
5645
5646         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5647         members if FlattenHierarchy is set.
5648
5649         * reflection.c (mono_image_add_decl_security): New function to emit
5650         declarative security.
5651
5652         * reflection.h reflection.c: Add support for declarative security.
5653
5654         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5655         
5656 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5657
5658         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5659         
5660         * appdomain.c verify.c: Moved corlib version checking into its own
5661         function in appdomain.c since it needs to create vtables etc.
5662
5663 2003-12-13  Patrik Torstensson <p@rxc.se>
5664
5665         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5666         instead of unwrapped server.
5667
5668 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5669
5670         * verify.c (check_corlib): Fix field index.
5671
5672 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5673
5674         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5675         GetGacPath icall.
5676
5677 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5678
5679         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5680         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5681         cope with sizeof(size_t) != sizeof(guint32).
5682
5683 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5684
5685         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5686         in case of failure.
5687
5688 2003-12-10  Mark Crichton <crichton@gimp.org>
5689
5690         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5691         in managed code.
5692
5693         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5694
5695 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5696
5697         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5698         marked as deleted.
5699
5700 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5701
5702         * verify.c (check_corlib): Handle the case when the version field is 
5703         initialized by a static constructor.
5704
5705 2003-12-08  Patrik Torstensson  <p@rxc.se>
5706
5707     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5708
5709 2003-12-08  Martin Baulig  <martin@ximian.com>
5710
5711         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5712         a MonoReflectionGenericParameter, also take the parameter index
5713         and name as arguments.
5714         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5715         (ves_icall_MonoGenericParam_initialize): New interncall.
5716         (ves_icall_Type_make_byref_type): New interncall.
5717
5718         * reflection.h (MonoReflectionGenericParam): Derive from
5719         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5720         `index' fields.
5721
5722         * reflection.c (mono_reflection_define_generic_parameter): Create
5723         and return a new MonoReflectionGenericParam; don't initialize the
5724         constraints here.
5725         (mono_reflection_initialize_generic_parameter): New public method;
5726         initializes the constraints and creates the `param->pklass'.
5727
5728 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5729
5730         * reflection.h reflection.c: Use the new fields 'num_types', 
5731         'num_fields' and 'num_methods' to track the number of types etc.
5732
5733         * verify.c (check_corlib): Check corlib version number.
5734
5735 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5736
5737         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5738         function works on all methods.
5739
5740 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5741
5742         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5743         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5744         the custom_type_info flag of the transparent proxy.
5745         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5746         objects that supports IRemotingTypeInfo.
5747         * object.h: Added custom_type_info field in transparent proxy.
5748
5749 2003-12-06  Martin Baulig  <martin@ximian.com>
5750
5751         * class.c (mono_class_create_from_generic): Removed.
5752         (mono_class_from_generic): Check `ginst->klass' before doing
5753         anything else.  This is important to fully support "recursive"
5754         generic types.
5755
5756         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5757         empty `generic_inst->klass' before doing anything else.
5758
5759 2003-12-06  Dick Porter  <dick@ximian.com>
5760
5761         * verify.c: 
5762         * object.h:
5763         * icall.c:
5764         * locales.c: Use C structs to access class fields.  Don't do a
5765         conversion between MonoString and UChar because both are
5766         platform-endian UTF-16.  Compare now takes startindex and count
5767         parameters.  Add a char overload for IndexOf.  Speed up the
5768         invariant string IndexOf.
5769
5770 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5771
5772         * Makefile.am (monosn_LDADD): Fix parallel build.
5773
5774 2003-12-04  Martin Baulig  <martin@ximian.com>
5775
5776         * icall.c
5777         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5778         (ves_icall_Type_make_array_type): New interncall.       
5779
5780 2003-12-04  Martin Baulig  <martin@ximian.com>
5781
5782         * locales.c: also change it in the !HAVE_ICU case.
5783
5784 2003-12-04  Dick Porter  <dick@ximian.com>
5785
5786         * icall.c:
5787         * locales.c: construct_compareinfo is now in CompareInfo, not
5788         CultureInfo.
5789
5790 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5791
5792         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5793         image->files array.
5794
5795         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5796         table as well.
5797
5798         * assembly.c (mono_assembly_load_references): Only load references
5799         once.
5800
5801         * class.c (mono_class_from_name): Avoid linear search of the 
5802         EXPORTEDTYPE table.
5803
5804         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5805
5806 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5807
5808         * image.h (MonoImage): Add 'field_cache' field.
5809
5810         * loader.c (mono_field_from_token): Cache field lookups.
5811         
5812         * reflection.c (mono_module_get_object): Fix name property.
5813
5814         * icall.c (ves_icall_get_enum_info): Update after changes to 
5815         mono_metadata_get_constant_index ().
5816
5817         * icall.c: Get rid of get_type_info icall, use a separate icall for
5818         each type property to avoid needless memory allocations. Fixes #51514.
5819
5820         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5821         to avoid needless binary searches.
5822
5823         * class.c (class_compute_field_layout): Move the initialization of
5824         field->def_value to mono_class_vtable ().
5825
5826         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5827         non-corlib types.
5828
5829         * object.c (mono_object_allocate): Make it inline.
5830
5831         * object.c (mono_object_allocate_spec): Make it inline.
5832         
5833 2003-12-02  Dick Porter  <dick@ximian.com>
5834
5835         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5836         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5837
5838 2003-12-01  Dick Porter  <dick@ximian.com>
5839
5840         * threads.c: Fix signature and call in CreateMutex and
5841         CreateEvent.
5842
5843 2003-12-01  Dick Porter  <dick@ximian.com>
5844
5845         * icall.c: 
5846         * locales.c: Implement string compares and searching
5847
5848         * object.h: Add extra Thread field
5849
5850 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5851
5852         * reflection.c (fixup_method): Add support for MonoCMethod.
5853
5854 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5855
5856         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5857
5858         * reflection.c (assembly_name_to_aname): Allow extra characters in
5859         assembly names. Fixes #51468.
5860
5861 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5862
5863         * exception.c (mono_exception_from_name_domain): New helper function.
5864
5865         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5866         exception object in the correct domain.
5867
5868         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5869         formatting + make a copy a the input data.
5870
5871         * loader.c (mono_get_method_from_token): Methods which contain
5872         native code do not have entries in the ImplMap.
5873
5874         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5875         Thanks to Gonzalo for spotting this.
5876         
5877         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5878         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5879
5880         * assembly.h (mono_assembly_load_from): Split the second part of 
5881         assembly loading into a new public function.
5882
5883         * exception.h (mono_get_exception_bad_image_format): New function.
5884
5885 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5886
5887         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5888         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5889         
5890         * icall.c: Add new icall for creating dynamic methods.
5891
5892         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5893
5894         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5895
5896         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5897         create a dynamic method.
5898
5899         * reflection.c (resolve_object): New helper function.
5900
5901         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5902         which manipulate it so they can also work on dynamic methods.
5903
5904         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5905         creating the MonoReflectionMethodAux structure if it is not needed.
5906         
5907         * reflection.h verify.c: Update after changes to object layout.
5908
5909         * reflection.c (method_builder_encode_signature): Fix compilation on
5910         gcc 2.95.x.
5911
5912 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5913
5914         * appdomain.h: Added support for context static fields. Added static_data
5915           field to MonoAppContext and renamed thread_static_fields to a more
5916           generic special_static_fields in MonoAppDomain, since it can now contain
5917           context static fields.
5918         * domain.c: Updated hashtable name.
5919         * object.c: Replaced field_is_thread_static() for a more generic
5920           field_is_special_static() which also checks for context static attribute.
5921           In mono_class_vtable(), added support for static context fields.
5922         * threads.c: Changed methods that manage thread static fields to more
5923           generic methods so they can be reused both for thread and context static
5924           data.
5925         * threads.h: Declared some new methods.
5926
5927 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5928
5929         * reflection.h: Update after changes to the managed types.
5930
5931         * reflection.c (encode_custom_modifiers): New helper function.
5932
5933         * reflection.c (method_encode_signature): Emit custom modifiers.
5934
5935         * reflection.c (field_encode_signature): Emit custom modifiers.
5936
5937 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5938
5939         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5940
5941         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5942         implementation.
5943
5944         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5945         icall.
5946
5947         * object.c (mono_field_get_value_object): New function.
5948
5949         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5950         specific.
5951
5952 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5953
5954         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5955         return a preallocated out-of-memory exception instance.
5956
5957         * object.c (out_of_memory): Use the new function.
5958
5959         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5960         flag is before the custom modifiers. Fixes #49802.
5961
5962 2003-11-16  Martin Baulig  <martin@ximian.com>
5963
5964         * class.c (mono_class_is_open_constructed_type): Implemented the
5965         MONO_TYPE_GENERICINST case.
5966
5967 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5968
5969         * assembly.c (mono_assembly_fill_assembly_name): New function to
5970         fill out the MonoAssemblyName structure.
5971         (mono_assembly_open): Use the new function.
5972
5973         * icall.c (fill_reflection_assembly_name): New helper function.
5974
5975         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5976         new function.
5977
5978         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5979
5980 2003-11-15  Martin Baulig  <martin@ximian.com>
5981
5982         * class.c (mono_class_is_open_constructed_type): New public
5983         function; checks whether a type is an open constructed type,
5984         ie. whether it still contains type parameters.
5985         (mono_class_inflate_generic_type): If we're a type parameter and
5986         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5987         type.
5988
5989         * class.h (MonoGenericInst): Added `guint32 is_open'.
5990
5991         * loader.c (method_from_methodspec): Check whether we're an open
5992         or closed constructed type and set `ginst->is_open'.
5993
5994         * reflection.c (mono_reflection_bind_generic_parameters): Check
5995         whether we're an open or closed constructed type and set
5996         `ginst->is_open'.
5997         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
5998         from open constructed types.
5999
6000 2003-11-15  Martin Baulig  <martin@ximian.com>
6001
6002         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6003         a generic instance (instead of a generic type declaration) with
6004         unbound generic parameters, bind them to our actual types.
6005
6006 2003-11-14  Martin Baulig  <martin@ximian.com>
6007
6008         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
6009
6010         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6011         an interface type, populate `res->interfaces' with instantiated
6012         versions of all the interfaces we inherit.
6013
6014 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
6015
6016         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
6017         when MONO_PATH is set but doesn't contain the install dir.
6018
6019 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6020
6021         * icall.c:
6022         (ves_icall_Type_GetInterfaces): don't return an interface twice when
6023         it's also implemented in base classes. Fixes bug #50927.
6024
6025 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
6026
6027         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
6028         if this method is called from a finalizer. Fixes #50913.
6029
6030 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
6031
6032         * threads.c: Implement VolatileRead/VolatileWrite
6033
6034         * icall.c: Add new icalls for VolatileRead/VolatileWrite
6035
6036 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6037
6038         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
6039         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
6040         2.95.3.
6041
6042         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
6043         from Peter Ross (pro@missioncriticalit.com).
6044         
6045 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
6046
6047         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
6048
6049 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6050
6051         * assembly.c (mono_assembly_load_references): Disable check because it
6052         triggers on older corlibs which lots of people have.
6053
6054 2003-11-12  Jackson Harper  <jackson@ximian.com>
6055
6056         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
6057         load corlib.dll if mscorlib.dll is not found.
6058         * assembly.h: Remove corlib name define.
6059         * class.c:
6060         * domain.c:
6061         * image.c: Change corlib name to mscorlib.
6062         
6063 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6064
6065         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
6066
6067 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
6068
6069         * appdomain.h: Added loader_optimization here to sync with the C#
6070         code, and add disallow_binding_redirects field.
6071
6072 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6073
6074         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
6075
6076         * reflection.c (mono_image_build_metadata): Fix crash on modules
6077         with no types.
6078
6079         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
6080
6081         * icall.c (ves_icall_get_method_info): Return callingConvention as
6082         well.
6083
6084         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
6085         namespaces from the EXPORTEDTYPE table as well.
6086
6087         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
6088         from all modules inside the assembly.
6089         
6090 2003-11-11  Martin Baulig  <martin@ximian.com>
6091
6092         * reflection.c (mono_reflection_bind_generic_parameters): Make
6093         this work for interfaces.
6094
6095 2003-11-11  Martin Baulig  <martin@ximian.com>
6096
6097         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
6098
6099 2003-11-11  Martin Baulig  <martin@ximian.com>
6100
6101         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
6102         "MonoInflatedMethod" and "MonoInflatedCtor".
6103
6104 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6105
6106         * reflection.c (resolution_scope_from_image): Use the assembly table
6107         from the manifest module, since other modules don't have it.
6108
6109         * debug-helpers.c (mono_type_full_name): New helper function.
6110
6111         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
6112
6113         * image.c (mono_image_load_file_for_image): New public function which
6114         is a replacement for the load_file_for_image in class.c.
6115
6116         * assembly.c (mono_assembly_load_module): A wrapper for the function
6117         above which does assembly association and reference loading too.
6118
6119         * class.c (mono_class_from_name): Call mono_assembly_load_module.
6120
6121 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6122
6123         * appdomain.c: not all of the attributes for the full assembly name
6124         are required and the order doesn't matter. Fixes bug #50787.
6125
6126 2003-11-10  Dick Porter  <dick@ximian.com>
6127
6128         * locales.c: Use platform-endian UTF16
6129
6130 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6131
6132         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6133         
6134 2003-11-10  Martin Baulig  <martin@ximian.com>
6135
6136         * metadata.c
6137         (mono_metadata_load_generic_params): Make this actually work.
6138
6139         * reflection.c (mono_reflection_bind_generic_parameters): If our
6140         parent is a generic instance, pass all the `types' to it, no
6141         matter whether it has the same number of type parameters or not.
6142
6143 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6144
6145         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6146
6147         * assembly.c (mono_assembly_load_references): Move the image<->assembly
6148         assignment code to this function so it gets called recursively for all
6149         modules.
6150
6151         * image.c (load_modules): Remove the assembly assignment since it is
6152         now done by mono_assembly_load_references.
6153         
6154         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
6155         Add 'module' argument.
6156         (mono_module_get_types): New helper function.
6157         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
6158
6159 2003-11-08  Martin Baulig  <martin@ximian.com>
6160
6161         * class.c (mono_class_inflate_generic_method): Interface method
6162         don't have a header.
6163
6164         * reflection.c (mono_image_get_methodspec_token): Take an
6165         additional `MonoGenericInst *' argument instead of reading it from
6166         the header; this is necessary to support interfaces.
6167         (mono_image_create_token): Pass the `MonoGenericInst *' from the
6168         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
6169         (inflated_method_get_object): Take an additional `MonoGenericInst *'
6170         argument.
6171
6172         * reflection.h (MonoReflectionInflatedMethod): Added
6173         `MonoGenericInst *ginst'.
6174
6175 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
6176
6177         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
6178
6179 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
6180
6181         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
6182
6183 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
6184
6185         * reflection.c 
6186         (reflection_methodbuilder_from_method_builder):
6187         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6188         initialize a ReflectionMethodBuilder structure.
6189         (mono_image_get_methodbuilder_token):
6190         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6191         tokens which point to types in another module inside the same assembly.
6192
6193         * reflection.c: Use the new helper functions.
6194         
6195         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6196
6197         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6198         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6199
6200         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6201         neccesary.
6202
6203         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6204         current module. Emit the manifest only for the main module.
6205
6206         * reflection.c (mono_image_create_token): Add assertion when a 
6207         memberref needs to be created.
6208
6209         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6210
6211         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6212         larger buffer for the custom attribute blob. Fixes #50637.
6213         
6214 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6215
6216         * threadpool.c: notify listener on async processing handles after
6217         invoking the async callback. Thanks to Zoltan.
6218
6219 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6220
6221         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6222         avoid code duplication.
6223
6224         * reflection.h (MonoDynamicImage): New type which is currently unused,
6225         but will be used through the ref.emit code in place of 
6226         MonoDynamicAssembly.
6227
6228         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6229         object layout.
6230
6231         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6232         a MonoDynamicImage instead of just a MonoImage.
6233         
6234         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6235         icalls to ModuleBuilder but keep their semantics, so they will work
6236         with moduleb->assemblyb. This will change later.
6237         
6238 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6239
6240         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6241         object layout.
6242
6243         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6244         main module, since it is now done by the managed code.
6245
6246 2003-11-03  Martin Baulig  <martin@ximian.com>
6247
6248         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6249         `ginst->klass' here.
6250         (method_encode_methodspec): Don't use the `ginst->generic_method's
6251         klass if it's a generic instance, use `ginst->klass' in this case.
6252
6253 2003-11-03  Martin Baulig  <martin@ximian.com>
6254
6255         * reflection.c (mono_image_get_generic_method_param_info):
6256         Removed, use mono_image_get_generic_param_info() instead.
6257         (mono_image_get_type_info): Write the GenericParam table before
6258         the Method table.  This is neccessary because in the GenericParam
6259         table, type parameters of the class (ie. '!0' etc.) must come
6260         before the ones from its generic methods (ie. '!!0' etc).
6261
6262 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6263
6264         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6265
6266 2003-11-02  Martin Baulig  <martin@ximian.com>
6267
6268         * reflection.c (create_generic_typespec): Take a
6269         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6270         the generic parameters from it.
6271
6272 2003-11-02  Martin Baulig  <martin@ximian.com>
6273
6274         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6275         instead of a `MonoClassField *' since we just need the type.
6276         (create_generic_typespec): New static function.  Creates a
6277         TypeSpec token for a generic type declaration.
6278         (mono_image_get_generic_field_token): New static function.
6279         (mono_image_create_token): If we're a FieldBuilder in a generic
6280         type declaration, call mono_image_get_generic_field_token() to get
6281         the token.
6282
6283 2003-11-02  Martin Baulig  <martin@ximian.com>
6284
6285         * reflection.h
6286         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6287         `MonoReflectionGenericInst *declaring_type' and
6288         `MonoReflectionGenericInst *reflected_type' fields.
6289
6290         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6291         `MonoReflectionGenericInst *declaring_type' and a
6292         `MonoReflectionGenericInst *reflected_type' argument instead of a
6293         single `MonoReflectionGenericInst *type' one.  Set
6294         `res->declaring_type' and `res->reflected_type' from them.
6295         (mono_reflection_inflate_field): Likewise.      
6296
6297 2003-11-02  Martin Baulig  <martin@ximian.com>
6298
6299         * class.c (mono_class_setup_vtable): Don't store generic methods
6300         in the vtable.  
6301
6302 2003-11-02  Martin Baulig  <martin@ximian.com>
6303
6304         * reflection.h (MonoReflectionGenericInst): Added
6305         `MonoReflectionType *declaring_type'.
6306
6307         * reflection.c (mono_reflection_bind_generic_parameters): Use
6308         `if (tb->parent)' instead of `klass->parent'.
6309
6310 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6311
6312         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6313         with an empty ASSEMBLY table.
6314
6315         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6316         variable in the inner and outer loops.
6317
6318 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6319
6320         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6321         argument.
6322
6323         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6324         
6325         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6326         icalls. Instead, do everything in managed code. This is needed since
6327         it is hard to restore the original domain etc. in unmanaged code in the
6328         presence of undeniable exceptions.
6329
6330         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6331         New icalls to push and pop appdomain refs.
6332
6333 2003-10-31  Martin Baulig  <martin@ximian.com>
6334
6335         * class.c (inflate_generic_type): Renamed to
6336         mono_class_inflate_generic_type() and made it public.
6337
6338         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6339         New interncall.
6340
6341         * loader.c (mono_field_from_memberref): Also set the retklass for
6342         typespecs.
6343
6344         * fielder.c (mono_image_get_inflated_field_token): New static
6345         method; creates a metadata token for an inflated field.
6346         (mono_image_create_token, fixup_method): Added support for
6347         "MonoInflatedField".
6348         (fieldbuilder_to_mono_class_field): New static function.
6349         (mono_reflection_inflate_field): New public function.
6350
6351         * reflection.h
6352         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6353         (MonoReflectionInflatedField): New typedef.     
6354
6355 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6356
6357         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6358         for Solaris and other platforms without s6_addr16
6359
6360 2003-10-30  Martin Baulig  <martin@ximian.com>
6361
6362         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6363         argument instead of two.
6364         (mono_class_inflate_generic_signature): Likewise.
6365         (inflate_generic_header): Likewise.
6366         (mono_class_inflate_generic_method): Likewise.  In addition, if
6367         `ginst->klass' is set, it becomes the new `method->klass'.
6368
6369         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6370         field.
6371
6372         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6373         first byte. [FIXME]
6374         (method_encode_methodspec): If we have generic parameters, create
6375         a MethodSpec instead of a MethodRef.
6376         (fixup_method): Added support for "MonoInflatedMethod" and
6377         "MonoInflatedCtor".
6378         (mono_image_create_token): Added support for "MonoInflatedMethod"
6379         and "MonoInflatedCtor".
6380         (inflated_method_get_object): New static function; returns a
6381         managed "System.Reflection.MonoInflatedMethod" object.
6382         (mono_reflection_bind_generic_method_parameters): Return a
6383         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6384         (mono_reflection_inflate_method_or_ctor): Likewise.
6385         (mono_image_get_generic_method_param_info): Initialize unused
6386         fields to zero.
6387         (mono_image_get_generic_param_info): Likewise.
6388
6389         * reflection.h (MonoReflectionInflatedMethod): New public
6390         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6391         "S.R.MonoInflatedCtor" classes.
6392
6393         * loader.c (method_from_memberref): If we're a TypeSpec and it
6394         resolves to a generic instance, inflate the method.
6395
6396 2003-10-28  Dick Porter  <dick@ximian.com>
6397
6398         * object.c (mono_runtime_run_main): Convert command-line arguments
6399         into utf8, falling back to the user's locale encoding to do so.
6400
6401 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6402
6403         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6404         at this time.
6405
6406         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6407
6408         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6409         up icalls at method definition time. Partially fixes #33569.
6410
6411 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6412
6413         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6414         marshalling of arrays. Fixes #50116.
6415
6416         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6417
6418         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6419         points to a vtable in the dying appdomain.
6420
6421         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6422         listeners into unmanaged code inside the lock.
6423
6424         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6425         domains and add some comments.
6426
6427 2003-10-25  Martin Baulig  <martin@ximian.com>
6428
6429         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6430
6431         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6432
6433         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6434         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6435         currently parsing.  Create the generic class and store it in
6436         `generic_inst->klass' before parsing the type arguments.  This is
6437         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6438         for an example.
6439         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6440         to support recursive typespec entries.
6441
6442         * class.c (mono_class_setup_parent): If our parent is a generic
6443         instance, we may get called before it has its name set.
6444         (mono_class_from_generic): Splitted into
6445         mono_class_create_from_generic() and mono_class_initialize_generic().
6446
6447 2003-10-25  Martin Baulig  <martin@ximian.com>
6448
6449         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6450         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6451         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6452         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6453
6454         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6455         (create_typespec): Likewise.
6456         (mono_reflection_bind_generic_parameters): Return a
6457         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6458         (mono_reflection_inflate_method_or_ctor): New public function.
6459
6460         * reflection.h (MonoReflectionGenericInst): New typedef.        
6461
6462 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6463
6464         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6465         inside the domain lock. Fixes #49993.
6466         
6467         * object.c (mono_class_vtable): When typed allocation is used, 
6468         allocate vtables in the GC heap instead of in the mempool, since the
6469         vtables contain GC descriptors which are used by the collector even
6470         after the domain owning the mempool is unloaded.
6471
6472         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6473
6474         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6475         reflect what it does. Also invalidate mempools instead of freeing
6476         them if a define is set.
6477
6478         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6479         of the appdomain.
6480         
6481         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6482         hold the finalizable objects in this domain.
6483
6484         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6485         appdomain.
6486
6487         * appdomain.c (mono_domain_set): New function to set the current
6488         appdomain, but only if it is not being unloaded.
6489
6490         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6491         appdomain which is being unloaded.
6492         
6493         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6494         unloading of the root appdomain.
6495
6496         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6497         icall to execute a method in another appdomain. Intended as a 
6498         replacement for InternalSetDomain, which can confuse the code 
6499         generation in the JIT.
6500
6501         * appdomain.c (mono_domain_is_unloading): New function to determine
6502         whenever an appdomain is unloading.
6503
6504         * appdomain.c (mono_domain_unload): New function to correctly unload
6505         an appdomain.
6506
6507         * assembly.c (mono_assembly_load_references): Check that an assembly
6508         does not references itself.
6509
6510         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6511         domain manually, it asks the finalizer thread to do it, then waits for
6512         the result. Also added a timeout.
6513
6514         * icall.c: Register the new icalls.
6515
6516         * threads.h threads.c: Export the mono_gc_stop_world and 
6517         mono_gc_start_world functions.
6518         
6519         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6520         function to fill out the mempool with 0x2a.
6521
6522 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6523
6524         * reflection.h (MonoReflectionMethodAux): New structure to store
6525         information which is rarely used, thus is not in the MonoMethod
6526         structure.
6527
6528         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6529         store the aux info.
6530
6531         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6532         and marshalling info into the aux structure.
6533
6534         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6535         from the aux structure.
6536
6537         * loader.c (mono_method_get_param_names): Retrieve the param names from
6538         the aux structure.
6539         
6540 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6541
6542         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6543         warning.
6544
6545 2003-10-21  Dick Porter  <dick@ximian.com>
6546
6547         * socket-io.c
6548         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6549         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6550
6551 2003-10-21  Martin Baulig  <martin@ximian.com>
6552
6553         * reflection.c (mono_reflection_bind_generic_parameters):
6554         `klass->parent' is NULL for interfaces.
6555
6556 2003-10-21  Martin Baulig  <martin@ximian.com>
6557
6558         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6559
6560 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6561
6562         * exception.c (mono_exception_from_name_msg): New helper function for
6563         creating exceptions and initializing their message field.
6564
6565         * exception.c: Simplify functions using the new helper.
6566
6567         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6568         New function.
6569
6570         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6571         mono_raise_exception, since otherwise gcc doesn't generate the function
6572         epilog for raise_exception, confusing the stack unwinding in the JIT.
6573         Fixes #45043.
6574
6575         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6576         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6577         Fixes #49499.
6578
6579 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6580
6581         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6582         utf8.
6583
6584 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6585
6586         * icall.c: Removed GetUninitializedObject method because
6587           AllocateUninitializedClassInstance does the same.
6588
6589 2003-10-18  Martin Baulig  <martin@ximian.com>
6590
6591         * class.c (inflate_generic_signature): Renamed to
6592         mono_class_inflate_generic_signature() and made it public.
6593         (my_mono_class_from_generic_parameter): New static function; if we
6594         don't already have the generic parameter's MonoClass, create a
6595         very simple one which is just used internally in the runtime and
6596         not passed back to managed code.
6597
6598         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6599
6600         * metadata.h (MonoMethodSignature): Moved the
6601         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6602         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6603
6604         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6605         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6606         interncall on the MonoMethod class, not on MethodInfo.
6607         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6608         calling mono_reflection_bind_generic_method_parameters() directly.
6609
6610         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6611         return the already computed `method->signature'.
6612         (method_from_methodspec): New static function to load a method
6613         from a MethodSpec entry.
6614         (mono_get_method_from_token): Call the new method_from_methodspec()
6615         for MethodSpec tokens.  
6616         (mono_get_method_from_token): If we're a generic method, load the
6617         type parameters.
6618
6619         * reflection.c (mono_image_get_memberref_token): Allow
6620         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6621         table.
6622         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6623         (mono_image_create_token): First check whether it's a generic
6624         method (so we'd need to create a MethodSpec), then do the other
6625         two alternatives.
6626         (mono_reflection_bind_generic_method_parameters): Return a
6627         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6628         called directly from the interncall.
6629
6630 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6631
6632         * reflection.c (load_public_key): Move loading of the public key
6633         into managed code.
6634
6635         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6636
6637         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6638         fields.
6639
6640         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6641         culture, hash_alg and public_key. Fixes #49555.
6642
6643 2003-10-17  Martin Baulig  <martin@ximian.com>
6644
6645         * class.h (MonoGenericInst): Moved this declaration here and added
6646         `MonoMethod *generic_method'.
6647
6648         * icall.c
6649         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6650         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6651
6652         * metadata.c (mono_metadata_type_equal): Two types of
6653         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6654         index; ie. don't compare the address of the `MonoGenericParam'
6655         structure.
6656         (mono_metadata_load_generic_params): Removed the `MonoMethod
6657         *method' argument.
6658
6659         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6660         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6661
6662         * reflection.c (method_encode_signature): Encode the number of
6663         generic parameters.
6664         (encode_generic_method_sig): New static function.
6665         (method_encode_methodspec): New static function; creates an entry
6666         in the MethodSpec table for a generic method.
6667         (mono_image_get_methodspec_token): New static function.
6668         (mono_image_create_token): Call mono_image_get_methodspec_token()
6669         for generic methods.
6670         (mono_reflection_bind_generic_method_parameters): New public
6671         function.  Instantiates a generic method.
6672
6673 2003-10-16  Martin Baulig  <martin@ximian.com>
6674
6675         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6676         *gen_params' here from MonoMethodHeader.
6677
6678         * metadata.c (mono_metadata_parse_method_signature): If we have
6679         generic parameters, initialize `method->gen_params' and then set
6680         the correct `type->data.generic_param' in all the parameters.
6681
6682 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6683
6684         * threads.c (mono_threads_get_default_stacksize): New function to 
6685         return the default stacksize.
6686
6687         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6688         termination of the finalizer thread, since the previous method had
6689         race conditions. Fixes #49628.
6690
6691         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6692         as for the other managed threads.
6693
6694 2003-10-16  Martin Baulig  <martin@ximian.com>
6695
6696         * class.c (inflate_generic_signature): Copy `generic_param_count'
6697         and `gen_params'.
6698
6699         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6700         New interncall.
6701
6702         * metadata.c (mono_metadata_parse_method_signature): Actually set
6703         the `method->generic_param_count' here.
6704         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6705
6706 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6707
6708         * object.h: Add a new field to TypedRef to simplify the implementation
6709         of the REFANY opcodes in the JIT.
6710
6711         * icall.c: Make use of the new field.
6712
6713         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6714         dynamically.
6715
6716 2003-10-15  Martin Baulig  <martin@ximian.com>
6717
6718         * class.c (mono_class_from_gen_param): Renamed to
6719         mono_class_from_generic_parameter() and moved most of the
6720         functionality from mono_reflection_define_generic_parameter()
6721         here; ie. we create a "real" class here.
6722         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6723         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6724         previously been called.
6725
6726         * class.h (MonoGenericParam): Moved the declaration of this struct
6727         here from metadata.h and added `MonoMethod *method'.
6728
6729         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6730         interncall.
6731
6732         * loader.c (mono_get_method_from_token): If we have any generic
6733         parameters, call mono_metadata_load_generic_params() to read them
6734         from the MONO_TABLE_GENERICPAR.
6735
6736         * metadata.c (mono_metadata_load_generic_params): Added
6737         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6738
6739         * metadata.h (MonoMethodSignature): Replaced
6740         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6741         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6742
6743         * reflection.c (mono_reflection_define_generic_parameter): Moved
6744         most of the functionality into the new
6745         mono_class_from_generic_parameter(); set the `method' field if
6746         we're a method parameter.       
6747
6748 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6749
6750         * marshal.c (emit_struct_conv): if native size is 0
6751         emit no code.
6752
6753 2003-10-14  Martin Baulig  <martin@ximian.com>
6754
6755         * icall.c: The generics API has changed in the spec since it was
6756         added to System.Type; these modifications make it match the spec
6757         again.
6758         (ves_icall_Type_GetGenericParameters): Renamed to
6759         `ves_icall_Type_GetGenericArguments'.
6760         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6761         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6762         `ves_icall_MonoType_get_HasGenericArguments'.
6763         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6764         `ves_icall_MonoType_get_IsGenericParameter'.
6765         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6766         this is no interncall anymore.
6767         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6768         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6769
6770 2003-10-14  Martin Baulig  <martin@ximian.com>
6771
6772         * reflection.c (mono_reflection_bind_generic_parameters): Also
6773         inflate generic methods if we're reading the class from IL.
6774
6775 2003-10-13  Martin Baulig  <martin@ximian.com>
6776
6777         * reflection.c (mono_reflection_define_generic_parameter): This
6778         method isn't called directly from the icall anymore; take a
6779         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6780         method generic parameters.
6781         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6782         (method_builder_encode_signature): Encode generic parameters.
6783         (mono_image_get_method_info): Write generic params to the
6784         MONO_TABLE_GENERICPARAM table.
6785
6786         * reflection.h (MonoReflectionMethodBuilder): Added
6787         `MonoArray *generic_params'.
6788
6789         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6790
6791         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6792         wrapper for mono_reflection_define_generic_parameter().
6793         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6794
6795 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6796
6797         * marshal.h: Add missing function to fix build.
6798
6799         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6800         the SetLastError pinvoke attribute.
6801
6802         * marshal.c (mono_marshal_set_last_error): New helper function called
6803         by the generated code.
6804         
6805         * marshal.c (mono_mb_emit_branch): New helper function.
6806
6807         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6808
6809         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6810         classes as parameters and return values of delegates. Fixes #29256. 
6811
6812 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6813
6814         * locales.c: use gint32 in non HAVE_ICU case
6815
6816 2003-10-11  Martin Baulig  <martin@ximian.com>
6817
6818         * mono-debug.c (mono_debug_add_method): Added a workaround for
6819         bug #48591.
6820
6821 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6822
6823         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6824         delegates passed to native code must use the STDCALL calling 
6825         convention. Fixes #35987.
6826
6827 2003-10-10  Martin Baulig  <martin@ximian.com>
6828
6829         * class.c (inflate_generic_type): If we're inflating for a generic
6830         type instance (and not for a generic method), return
6831         MONO_TYPE_MVAR unchanged.
6832
6833 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6834
6835         * string-icalls.c: Join ignores null strings in the source array.
6836         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6837         * threads.c: GetAvailableTheads is slightly more accurate.
6838
6839 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6840
6841         * threads.h threads.c : add mono_threads_set_default_stacksize
6842         and pass default to CreateThread calls.
6843
6844 2003-10-09  Dick Porter  <dick@ximian.com>
6845
6846         * icall.c:
6847         * locales.h:
6848         * locales.c: Internal calls for constructing CultureInfo and
6849         related objects from libicu (if its available.)
6850
6851 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6852
6853         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6854
6855 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6856
6857         * threadpool.c: added an argument to async_invoke_thread that is the
6858         item to process, pass the MonoAsyncResult to the thread start function
6859         when creating a new thread. This way we don't need to acquire any lock
6860         when we're creating a new thread. Readded a semaphore for faster
6861         response times (instead of that Sleep i added).
6862
6863 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6864
6865         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6866         get daylight change dates better on Windows, fix handling
6867         of platforms without tm_gmtoff.
6868
6869 2003-10-06  Martin Baulig  <martin@ximian.com>
6870
6871         * class.c (inflate_generic_method): Renamed to
6872         mono_class_inflate_generic_method() and made public.
6873         (mono_class_init): Don't inflate the generic methods here.
6874         (mono_class_from_generic): Added `gboolean inflate_methods'
6875         argument.  Inflate the methods here.
6876
6877         * loader.c (mono_method_get_param_names): Ignore instances of
6878         generic types for the moment.
6879
6880         * reflection.c (fixup_method): Added support for inflated methods.
6881         (mono_image_create_token): Use mono_image_get_methodref_token()
6882         for inflated methods.
6883         (mono_custom_attrs_from_param): Ignore instances of generic types
6884         for the moment.
6885         (mono_reflection_bind_generic_parameters): New public function.
6886         Moved all the functionality from
6887         ves_icall_Type_BindGenericParameters() here and added support for
6888         dynamic types.
6889         (mono_reflection_define_generic_parameter): Initialize
6890         `klass->methods' here.
6891
6892         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6893         functionality into mono_reflection_define_generic_parameter().
6894         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6895         TypeBuilder, return that TypeBuilder.
6896
6897 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6898
6899         * appdomain.c: removed mono_delegate_semaphore.
6900
6901         * threadpool.c:
6902         (mono_thread_pool_add): moved hash table creation inside and the thread 
6903         creation outside of the critical region.
6904         (mono_thread_pool_finish): removed obsolete code.
6905         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6906         continue or exit the thread depending on the queue.
6907
6908 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6909
6910         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6911         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6912         handle more bool marshalling options
6913
6914 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6915
6916         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6917         arrays of structs. Also add a more descriptive error message when
6918         a structure member is marshalled as LPArray.
6919
6920 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6921
6922         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6923         marshalling arrays of complex types. Fixes #29098. Also remove an
6924         usused and incomplete function.
6925
6926 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6927
6928         * gc.c: report heap_size - free_bytes as total memory allocated
6929         (bug#49362).
6930
6931 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6932
6933         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6934         fix timezone handling problems on Windows.
6935         
6936         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6937         asserts when the year is outside the range handled by ms the functions.
6938
6939         * class.c (setup_interface_offsets): If the class is an interface,
6940         fill out its interface_offsets slot.
6941
6942 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6943
6944         * threadpool.c: mark threadpool threads as background.
6945
6946 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6947
6948         * decimal.c - define DECINLINE to nothing if not using GCC
6949
6950 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6951
6952         * assembly.c: More refcount fixes.
6953
6954 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6955
6956         * string-icalls.c: if we're not trimming, return the same string.
6957         When not splitting, don't create a new string.
6958
6959 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6960
6961         * image.c:
6962         (mono_image_open): increment the ref_count inside the critical section.
6963
6964 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6965
6966         * image.c (mono_image_open): Fix reference counting bug.
6967
6968 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6969
6970         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6971         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6972         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6973         mono_lookup_pinvoke_call throws.        
6974
6975 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6976
6977         * reflection.c (mono_reflection_parse_type): Fix #49114.
6978
6979         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6980         temporary workaround for cygwin header problem.
6981
6982         * object.c (mono_object_isinst): Synchronize this with the code
6983         generated by the JIT for casts.
6984
6985 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6986
6987         * reflection.c (encode_type): Fix #38332.
6988
6989 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
6990
6991         * marshal.c (mono_marshal_method_from_wrapper): New function to return
6992         the original method from the wrapper method.
6993
6994 2003-09-25  Martin Baulig  <martin@ximian.com>
6995
6996         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
6997         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
6998         (ves_icall_Type_get_IsGenericInstance): New interncall.
6999
7000 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
7001
7002         * object.c: fix cast warning in big endian code.
7003
7004 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
7005
7006         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
7007         
7008 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7009
7010         * assembly.c: don't call check_env from mono_assembly_load. It's
7011         already done once in mono_assemblies_init and may cause headaches when
7012         multiple threads are loading assemblies.
7013
7014 2003-09-19  Martin Baulig  <martin@ximian.com>
7015
7016         * reflection.c (mono_reflection_define_generic_parameter): Don't
7017         allocate `klass->methods', set `klass->flags' to
7018         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
7019
7020 2003-09-18  Martin Baulig  <martin@ximian.com>
7021
7022         * class.c (mono_class_init): Don't create `class->methods' if it's
7023         already initialized.
7024
7025         * metadata.c (mono_metadata_load_generic_params): Make this
7026         actually work.
7027
7028         * reflection.c (mono_reflection_define_generic_parameter): Set
7029         parent class and interfaces from the constraints.
7030
7031         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
7032         to keep this struct in sync with the declaration in TypeBuilder.cs.
7033
7034 2003-09-17  Martin Baulig  <martin@ximian.com>
7035
7036         * metadata.h (MonoType): Replaced the data's `int type_param'
7037         field with `MonoGenericParam *generic_param'.
7038         (MonoGenericParam): Added `MonoClass *klass'.
7039
7040         * class.c (mono_class_from_gen_param): Removed the
7041         `MonoImage *image' and `int type_num' arguments.
7042
7043         * metadata.c (mono_metadata_parse_generic_param): New static
7044         method; creates a MonoGenericParam which just contains the index.
7045         (do_mono_metadata_parse_type): Call
7046         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
7047         MONO_TYPE_MVAR.
7048
7049         * reflection.c (mono_image_typedef_or_ref): Generic type
7050         parameters may be in the same assembly, but never use a typedef
7051         for them.
7052         (mono_reflection_define_generic_parameter): We're now creating a
7053         "real" class for the type parameter; it's now safe to call
7054         mono_class_from_mono_type() on the class'es type, it'll do the
7055         right thing.
7056
7057 2003-09-16  Martin Baulig  <martin@ximian.com>
7058
7059         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
7060         `symfile->range_entry_size' and `symfile->class_entry_size' here;
7061         the `symfile' data structure must be fully initialized before it
7062         gets added to the table.
7063
7064 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
7065
7066         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
7067
7068         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
7069         class init trampolines.
7070
7071 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
7072
7073         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
7074         to the built-in profiler to turn off time and allocation profiling
7075         respectively.
7076
7077 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
7078
7079         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
7080         g_direct_equal.
7081
7082         * debug-helpers.c (mono_method_full_name): Print the wrapper type
7083         in human readable form.
7084
7085 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
7086
7087         * reflection.c icall.c: Fixed warnings.
7088
7089         * image.c (load_class_names): Use a temporary hash table to hold the
7090         namespaces in order to avoid doing many string comparisons.
7091
7092         * image.h: Fix typo.
7093
7094         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
7095         Pass NULL instead of g_direct_equal to the GHashTable constructor 
7096         since the NULL case is short-circuited inside g_hash_table_lookup, 
7097         leading to better performance.  
7098
7099         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
7100         obtain the first custom attribute for a given index. Depends on the
7101         CustomAttribute table being sorted by the parent field.
7102
7103         * reflection.c (mono_custom_attrs_from_index): Use the new function 
7104         for better performance.
7105
7106 2003-09-07  Martin Baulig  <martin@ximian.com>
7107
7108         * class.c (mono_class_init): If we're a generic instance, inflate
7109         all our methods instead of loading them from the image.
7110         (mono_class_from_generic): Set `class->methods = gklass->methods'.
7111
7112 2003-09-07  Martin Baulig  <martin@ximian.com>
7113
7114         * mono-debug-debugger.c: Added support for constructors.
7115
7116 2003-09-06  Martin Baulig  <martin@ximian.com>
7117
7118         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
7119         New interncall.
7120
7121         * reflection.c (mono_reflection_setup_generic_class): Call
7122         ensure_runtime_vtable() to create the vtable.
7123
7124 2003-09-05  Martin Baulig  <martin@ximian.com>
7125
7126         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
7127         MONO_TYPE_MVAR.
7128
7129 2003-09-04  Martin Baulig  <martin@ximian.com>
7130
7131         * reflection.c (mono_reflection_define_generic_parameter): Generic
7132         parameters start with zero.
7133
7134 2003-09-04  Martin Baulig  <martin@ximian.com>
7135
7136         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7137
7138         * reflection.h (MonoReflectionGenericParam): New typedef.
7139         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
7140         the generic parameters from the managed TypeBuilder.
7141
7142         * reflection.c (mono_reflection_define_generic_parameter): New function.
7143         (mono_reflection_create_runtime_class): Encode generic parameters.
7144         (mono_reflection_setup_generic_class): New function; this is
7145         called after adding adding all generic params to the TypeBuilder.
7146         (encode_type): Added MONO_TYPE_VAR.
7147
7148 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
7149
7150         * class.h class.c (mono_class_needs_cctor_run): Moved this method
7151         here from the JIT.
7152
7153         * assembly.h assembly.c: Moved the AOT loading code into an assembly
7154         load hook.
7155
7156 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
7157
7158         * reflection.h reflection.c class.h class.c: Delete duplicate 
7159         definition of mono_type_get_name () from reflection.c and export the
7160         one in class.c.
7161
7162         * class.c: Class loading fixes from Bernie Solomon 
7163         (bernard@ugsolutions.com).
7164
7165         * reflection.c: Endianness fixes from Bernie Solomon 
7166         (bernard@ugsolutions.com).
7167         
7168 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
7169
7170         * assembly.h assembly.c: Define a file format version for AOT
7171         libraries.
7172         
7173         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
7174
7175         * appdomain.h (MonoJitInfo): New field to determine whenever the
7176         code is domain neutral.
7177         
7178 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
7179
7180         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
7181
7182 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
7183
7184         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7185         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7186         Avoid caching the result since strings must be domain specific. Fixes
7187         #48050.
7188
7189 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7190
7191         * marshal.c (mono_marshal_init): Make this callable multiple times
7192         since it is hard to find a correct place to call it.
7193
7194         * object.c (mono_runtime_class_init): Execute static constructors in
7195         the correct appdomain.
7196
7197         * image.c (build_guid_table): Handle the case when multiple images have
7198         the same GUID.
7199
7200 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7201
7202         * icall.c: added a couple of icalls for System.Web.
7203
7204 2003-08-28  Martin Baulig  <martin@ximian.com>
7205
7206         * icall.c (ves_icall_Type_BindGenericParameters): Use
7207         `klass->generic_inst' instead of `&klass->byval_arg' in the
7208         mono_type_get_object() call.  The returned type must be
7209         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7210
7211 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7212
7213         * NOTES: New file.
7214
7215         * object.c (mono_class_proxy_vtable): Make it thread safe.
7216
7217         * pedump.c: Fix warning.
7218
7219         * object.c appdomain.h: Get rid of metadata_section. 
7220         It is no longer needed and it was causing deadlocks with domain->lock.
7221
7222         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7223
7224 2003-08-26  Martin Baulig  <martin@ximian.com>
7225
7226         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7227
7228 2003-08-26  Martin Baulig  <martin@ximian.com>
7229
7230         * pedump.c (main): Call mono_metadata_init(),
7231         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7232         and mono_loader_init().
7233
7234 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7235
7236         * loader.h: Add missing include to fix build.
7237
7238         * image.h: mono_image_load_references is no more.
7239
7240         * assembly.c: Reworked assembly loading to make it really thread safe.
7241         After these changes, the assembly returned by mono_assembly_open is
7242         fully initialized, i.e. all its references assemblies are loaded.
7243
7244         * assembly.c (mono_image_load_references): Renamed to 
7245         mono_assembly_load_references, and made private, since clients no
7246         longer need to call it.
7247
7248         * class.c: Removed calls to mono_assembly_load_references, since it was
7249         a source of deadlocks.
7250
7251         * loader.h loader.c class.h class.c: Protect data structures using a 
7252         new lock, the loader lock.
7253
7254         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7255         GPtrArrays only when needed.
7256
7257         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7258         into empty structures by mcs. Fixes pinvoke7.cs.
7259         
7260         * domain.c (mono_init): Call a new initialization function.
7261
7262         * appdomain.c (mono_runtime_init): Call the new initializer function
7263         of the marshal module.
7264
7265         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7266         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7267
7268         * marshal.h marshal.c: Added locks around the wrapper caches to make
7269         this module thread safe.
7270
7271         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7272         this argument. Fixes pinvoke1.exe.
7273
7274 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7275
7276         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7277         enumeration of values. Removed fields to store remote call output values in
7278         MonoAsyncResult. Not needed any more.
7279         * object.c: Initialize call_type and async_result fields in mono_message_init.
7280         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7281         dispatching the message.
7282         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7283         async call to finish. To do it use a message with EndInvoke call type.
7284
7285 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7286
7287         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7288         determines whenever a method has marshalling info.
7289
7290 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7291
7292         * assembly.c: fix the build on windows.
7293
7294 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7295
7296         * object.cs: Fixed bug #47785.
7297
7298 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7299
7300         * string-icalls.c (StringReplace): If their are no occurances of
7301         the old string found return a reference to the supplied
7302         string. This saves some memory and matches MS behavoir.
7303         
7304 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7305
7306         * socket-io.c: fixed compilation for systems that define AF_INET6
7307         and don't define SOL_IP/SOL_IPV6.
7308
7309 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7310
7311         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7312         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7313
7314         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7315
7316         * domain.c: Make this module thread safe.
7317
7318         * domain.c (mono_init): Call new initialization function.
7319
7320         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7321         reference types too. Fixes #38812.
7322
7323         * image.c (mono_image_init): Fixed warnings.
7324
7325         * class.c (mono_class_from_typeref): Handle assembly load failure
7326         correctly.
7327
7328         * appdomain.c (add_assemblies_to_domain): Handle the case when
7329         the references of an assembly are not yet loaded.
7330
7331         * metadata.c image.c assembly.c: Moved initialization of global
7332         variables to a separate function called at startup since lazy 
7333         initialization of these variables is not thread safe.
7334         
7335         * image.c assembly.c: Made this module thread safe by adding locks in 
7336         the appropriate places.
7337
7338         * domain.c (mono_init): Call the new initialization functions of the
7339         three modules.
7340
7341 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7342
7343         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7344           make a direct call. It is proxy's work to make the call asynchronous.
7345           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7346           the return values.
7347         * object.cs: mono_method_call_message_new(): read AsyncResult and
7348           state object from parameters list, if this info is requested.
7349         * object.h: Added fields to store remote call output values in
7350           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7351
7352 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7353
7354         * object.h: add needed fields to MonoThread.
7355         * threads.c, threads.h: allow registering a function to cleanup data
7356         allocated per thread by the JIT.
7357
7358 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7359
7360         * loader.h: portability fix by Bernie Solomon
7361         * <bernard@ugsolutions.com>.
7362
7363 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7364
7365         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7366         return a MonoArray. This simplifies the code and also ensures that
7367         the cache allways contains an object reference as a value.
7368
7369         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7370         function.
7371
7372 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7373
7374         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7375         fixes a problem with byte ordering when getting the address family for
7376         a socket.
7377
7378 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7379
7380         * .cvsignore: Added monosn.
7381
7382         * reflection.h reflection.c loader.c: Added support for parameter
7383         marshalling to dynamically created types. Fixes #47295.
7384
7385 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7386
7387         * rand.c: remove useless warnings.
7388
7389 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7390
7391         * class.c: implemented ldtoken for methods and fieldrefs.
7392
7393 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7394
7395         * threadpool.c: when mono_async_invoke was called, no one took care of
7396         monitoring the queue. So if the method invoked took some time and we
7397         got new async invoke requests after 500 ms (the thread created waited
7398         that long in WaitForSingleObject), the new async invoke was not called
7399         until the previous one finished.
7400
7401         This is fixed now. Thanks to Totte for helping with it.
7402
7403 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7404
7405         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7406
7407 2003-08-11  Martin Baulig  <martin@ximian.com>
7408
7409         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7410
7411 2003-08-06  Martin Baulig  <martin@ximian.com>
7412
7413         * mono-debug-debugger.c: Added support for static fields,
7414         properties and methods.
7415
7416 2003-08-06  Martin Baulig  <martin@ximian.com>
7417
7418         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7419         make this work for applications with multiple application domains.
7420
7421 2003-08-04  Martin Baulig  <martin@ximian.com>
7422
7423         * mono-debug-debugger.c: Completely reworked the type support; the
7424         most important thing is that we're now just using one single
7425         `MonoType' instance per type.
7426
7427 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7428
7429         * mono-endian.h, mono-endian.c, icall.c: Added icall
7430         ves_icall_System_Double_AssertEndianity to assert double word endianity
7431         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7432
7433 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7434
7435         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7436         support, icalls and fixes.
7437
7438 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7439
7440         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7441         classes that are a punctuation character in .NET is not the same a
7442         g_unichar_ispunct.
7443
7444 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7445
7446         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7447
7448 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7449
7450         * icall.c: Add new MemCopy internalcall.
7451         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7452         Simplified code; It is not necessary to handle all the cases here,
7453         as the C# code takes care of it.  Only handle the case of the name
7454         resource embedded into the assembly.
7455
7456         Changed signature to return the data pointer and the size of the
7457         data. 
7458
7459 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7460
7461         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7462         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7463
7464 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7465
7466         * socket-io.c: ignore EINTR error in select.
7467
7468 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7469
7470         * class.h, class.c: removed unused subclasses field in MonoClass.
7471
7472 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7473
7474         * icall.c: improve fix of get_base_definition(). If the parent class
7475           doesn't have the mehod, look at the parent of the parent.
7476         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7477           to check if a parameter is an in or out parameter
7478           (PARAM_ATTRIBUTE_IN is not set by default).
7479           mono_method_return_message_restore(): Use mono_class_value_size to
7480           get the size of a value type. mono_type_stack_size (parameterType)
7481           does not return the correct value if parameterType is byRef.
7482           mono_load_remote_field(), mono_load_remote_field_new(),
7483           mono_store_remote_field(), mono_store_remote_field_new():
7484           raise exception if the remote call returns an exception.
7485
7486 2003-07-28  Martin Baulig  <martin@ximian.com>
7487
7488         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7489         method.  This is a wrapper around mono_runtime_invoke() which
7490         boxes the instance object if neccessary.
7491
7492 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7493
7494         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7495         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7496
7497 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7498
7499         * icall.c: disable mcs bug workaround.
7500
7501 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7502
7503         * object.c (mono_runtime_class_init): Take the metadata_section
7504         mutex before obtaining the domain mutex.
7505
7506         * appdomain.h: Added definition of metadata_section mutex here. 
7507
7508         * object.c: define metadata_mutex here.
7509
7510 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7511
7512         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7513         fixed.
7514
7515 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7516
7517         * reflection.c: Fix bug #46669
7518
7519 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7520
7521         * exception.c:
7522         * exception.h:
7523         * icall.c:
7524         * object.h: fill in the type name for TypeLoadException.
7525
7526 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7527
7528         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7529         relationship between TypeBuilders while compiling corlib) and bug
7530         45993 (Array types returned from the runtime while compiling
7531         corlib were from the loaded corlib).
7532
7533 2003-07-22  Martin Baulig  <martin@ximian.com>
7534
7535         * mono-debug-debugger.c: Reworked the type support a bit more;
7536         distinguish between types and classes.
7537
7538 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7539
7540         * icall.c: add IsArrayImpl icall.
7541
7542 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7543
7544         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7545         initializing real_size only once. Also fix bug #46602.
7546
7547 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7548
7549         * object.c: Renamed mono_metadata_section to metadata_section.
7550
7551 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7552
7553         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7554           empty array if the type is an array. Fixed.
7555           ves_icall_MonoMethod_get_base_definition: if the base method
7556           is abstract, get the MethodInfo from the list of methods of
7557           the class.
7558         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7559           and it was 1-based. Fixed in mono_param_get_objects.
7560
7561 2003-07-20  Martin Baulig  <martin@ximian.com>
7562
7563         * mono-debug.h: Set version number to 31.
7564         (mono_debug_init): Added `MonoDomain *' argument.
7565
7566         * mono-debug-debugger.c: Reworked the type support; explicitly
7567         tell the debugger about builtin types; pass the `klass' address to
7568         the debugger.
7569
7570 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7571
7572         * image.c: Allow new metadata tables to be loaded without a
7573         warning. Also update the warning message to give the new constant value.
7574                 
7575 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7576
7577         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7578         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7579         array type representation changes.
7580
7581 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7582
7583         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7584         on Environment.Exit () call.
7585
7586 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7587
7588         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7589         requires a matching corlib.
7590
7591 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7592
7593         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7594           Committed again without the CRs.
7595         
7596 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7597
7598         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7599           getting it from the "this" socket instance. Did not work
7600           if the socket is a subclass of Socket.
7601           Also fixed bug #35371.
7602
7603 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7604
7605         * metadata.c: fixed size for TypedByRef.
7606         * loader.c: when searching for a method, consider the vararg amrker.
7607         * unicode.c, decimal.c: constify some arrays.
7608
7609 2003-07-15  Dick Porter  <dick@ximian.com>
7610
7611         * socket-io.c: Fixed compilation for gcc < 3.2.
7612
7613         Fixed compilation for machines that don't have AF_INET6 (thanks to
7614         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7615
7616         Fixed compile warnings.
7617         
7618         Fixed formatting and line endings.
7619
7620 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7621
7622         * socket-io.h:
7623         * socket-io.c: Added IPv6 support.
7624
7625 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7626
7627         * class.c (mono_class_is_assignable_from): New function to implement
7628         the is_assignable_from logic. Used by mono_object_isinst, 
7629         Type::IsAssignableFrom () and the interpreter.
7630
7631         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7632         Object, even interfaces.
7633         
7634         * object.c (mono_object_isinst): Implement in terms of 
7635         is_assignable_from.
7636
7637         * icall.c (ves_icall_type_is_assignable_from): New icall.
7638
7639 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7640
7641         * domain.c (foreach_domain): fix compiler warning.
7642
7643 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7644
7645         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7646         not available on all plattforms
7647
7648 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7649
7650         * image.h image.c: Store the metadata version string in MonoImage.
7651         * icall.c: New icall to retrieve the image version.
7652         * reflection.c (create_dynamic_image): Fill in the image version field
7653         * reflection.c (build_compressed_metadata): Use the image version
7654         from the image structure.
7655
7656 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7657
7658         * appdomain.c: modified comment.
7659         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7660         That will be its last iteration when mono_gc_cleanup is called from
7661         mono_runtime_cleanup and before the domain is unloaded.
7662
7663         Fixes bug #45962.
7664
7665 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7666
7667         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7668         attributes.
7669
7670 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7671
7672         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7673         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7674         Bernie Solomon <bernard@ugsolutions.com>.
7675
7676 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7677
7678         * object.c, object.h: provide mono_object_new_fast() for faster
7679         allocation in some special cases.
7680
7681 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7682
7683         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7684         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7685
7686 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7687
7688         * threadpool.c: fix leaks.
7689
7690 2003-07-01  Dick Porter  <dick@ximian.com>
7691
7692         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7693         using MonoGHashTables.  Fixes threadpool bug posted to list.
7694
7695 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7696
7697         * image.h, image.c: added support to load an assembly from a byte array.
7698         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7699         assembly bundle support.
7700
7701 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7702
7703         * threadpool.c (mono_thread_pool_add): keep a reference to the
7704         AsyncResult to prevent GC
7705
7706 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7707
7708         * class.c: leak fix.
7709
7710 2003-06-25  Dick Porter  <dick@ximian.com>
7711
7712         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7713         for the async object, the WaitHandle object will close the handle.
7714         Fixes bug 45321.
7715
7716 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7717
7718         * class.c: in mono_array_class_get (), lookup from the hash with the
7719         same type we insert: this works around a bug in
7720         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7721         lluis. The real fix will have to wait for after the release.
7722
7723 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7724
7725         * icall.c: fix memory leak when getting type members.
7726
7727 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7728
7729         * reflection.c: added more pubtoken special cases.
7730
7731 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7732
7733         * class.c: handle field offset correctly when class size
7734         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7735
7736 2003-06-20  Martin Baulig  <martin@ximian.com>
7737
7738         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7739         *image' field.
7740
7741 2003-06-20  Martin Baulig  <martin@ximian.com>
7742
7743         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7744
7745 2003-06-20  Martin Baulig  <martin@ximian.com>
7746
7747         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7748         just distinguish between variables in registers and variables at
7749         an offset relative to a register.
7750
7751 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7752
7753         * icall.c: #ifdef out latest changes until mcs is fixed.
7754
7755 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7756
7757         * icall.c: return members in metadata order.
7758
7759 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7760
7761         * icall.c: avoid infinite loop in GetTimeZoneData.
7762
7763 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7764
7765         * icall.c: added Marshal.Prelink/All icalls.
7766
7767 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7768
7769         * object.c, object.h: fix warnings and do some overflow checking
7770         when creating arrays.
7771
7772 2003-06-17  Dick Porter  <dick@ximian.com>
7773
7774         * file-io.h:
7775         * file-io.c: File attributes need to be tweaked slightly when
7776         passed from the managed to the w32 world.
7777
7778 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7779         * profiler.h profiler-private.h profiler.c: Rework last patch
7780         based on suggestion by Paolo.
7781         
7782 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7783
7784         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7785         instruction level coverage data collection.
7786         * profiler.h profiler.c (: Added new callback function which can be
7787         used by the profiler to limit which functions should have coverage
7788         instrumentation.
7789         * profiler.c (mono_profiler_load): Call g_module_build_path to
7790         generate the file name of the profiler library.
7791
7792 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7793
7794         * profiler.c, profiler.h, profiler-private.h: added basic block 
7795         coverage profiling API.
7796
7797 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7798
7799         * reflection.c (mono_reflection_create_runtime_class): Add support
7800         for events in dynamically generated code.
7801
7802         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7803         not allocated.
7804
7805 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7806
7807         * icall.c: when getting timezone info, return reasonable values if we
7808         can't get the actual data.
7809
7810 2003-06-14  Dick Porter  <dick@ximian.com>
7811
7812         * threads.c (start_wrapper): Remove the reference to the thread
7813         object in the TLS data, so the thread object can be finalized.
7814         This won't be reached if the thread threw an uncaught exception,
7815         so those thread handles will stay referenced :-( (This is due to
7816         missing support for scanning thread-specific data in the Boehm GC
7817         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7818
7819 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7820
7821         * reflection.c: ensure streams and tables are first allocated with
7822         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7823
7824 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7825
7826         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7827
7828 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7829
7830         * reflection.c (mono_reflection_create_runtime_class): Add support for
7831         properties to dynamically created classes.
7832         * reflection.c: Fix a few places where non-MonoObjects were inserted
7833         into the tokens hashtable.
7834
7835 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7836
7837         * object.c: some support to handle out of memory exceptions.
7838
7839 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7840
7841         * marshal.c (mono_marshal_get_native_wrapper): support reference
7842         return types
7843
7844 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7845
7846         * object.h, object.c: more portability stuff from Bernie Solomon.
7847         Unexport mono_object_allocate(). Added mono_object_unbox ().
7848         Set exitcode when an unhandled exception is thrown.
7849
7850 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7851
7852         * marshal.c (mono_marshal_get_native_wrapper): use custom
7853         marshaler for return types.
7854
7855 2003-06-10  Dick Porter  <dick@ximian.com>
7856
7857         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7858         ip_mreq is available
7859
7860 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7861
7862         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7863         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7864         by Bernie Solomon <bernard@ugsolutions.com>.
7865
7866 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * gc.c (mono_gc_init): Avoid error message on shutdown when
7869         GC_DONT_GC=1 is used.
7870
7871         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7872         New icall to return the GUID of a module.
7873
7874 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7875
7876         * class.c: ensure instance size always includes the parent's size
7877         even whem class size is set explicitly (fixes bug#44294).
7878
7879 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7880
7881         * profiler.h, profiler.c: made the simple profiler thread-safe,
7882         get more accurate timing info. Allow the loading of an
7883         externally-developed profiler module.
7884
7885 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7886
7887         * marshal.c (mono_marshal_get_native_wrapper): improved
7888         class/byref arguments.
7889         (mono_marshal_get_native_wrapper): better string marshaling support.
7890
7891 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7892
7893         * class.c: ensure .pack and .size are handled correctly and
7894         simplified layout of static fields.
7895
7896 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7897
7898         * appdomain.c
7899         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7900
7901         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7902         current directory (fix bug 44008)
7903
7904 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7905
7906         * marshal.c (mono_marshal_get_native_wrapper): started support for
7907         custom marshalers.
7908         (mono_delegate_to_ftnptr): consider marshalling specifications
7909
7910 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7911
7912         * reflection.c, reflection.h: emit custom marshal info.
7913
7914 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7915
7916         * object.c: free the GError.
7917         * icall.c: added CloseEvent_internal.
7918         * threads.[ch]:
7919         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7920         call.
7921
7922 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7923
7924         * loader.c (mono_method_get_signature): Add support for dynamic
7925         assemblies.
7926
7927 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7928
7929         * reflection.c: fixed bug #43905.
7930
7931 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7932
7933         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7934         handling TypedReference and ArgIterator.
7935         * loader.c, loader.h: added function to get signature at call site.
7936
7937 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7938
7939         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7940         data readonly. Buglets and warning fixes. Some MethodSpec support.
7941
7942 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7943
7944         * class.h, class.c, object.c: remove relative numbering support.
7945
7946 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7947
7948         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7949         free the string, until we get a chance to fix Gtk#
7950
7951 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7952
7953         * marshal.c: revert last patch.
7954
7955 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7956
7957         * icall.c: updates for new mono_class_vtable() not calling
7958         the type constructor anymore.
7959
7960 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7961
7962         * object.h, object.c: separate vtable creation from type
7963         initialization. Make running the .cctor thread safe.
7964
7965 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7966
7967         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7968
7969 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7970
7971         * loader.c (mono_get_method): consider calling convention
7972
7973 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7974
7975         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7976         to return the invisible global type for a module.
7977
7978         * reflection.c (mono_image_build_metadata): Emit global fields too.
7979
7980 2003-05-20  Peter Williams  <peterw@ximian.com>
7981
7982         * loader.c (mono_lookup_internal_call): Add a few newlines.
7983
7984 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7987         literal strings.
7988
7989         * appdomain.c (set_domain_search_path): Recalculate search path when
7990         AppDomainSetup.PrivateBinPath changes.
7991
7992         * object.c (mono_class_compute_gc_descriptor): It turns out some
7993         parts of the class libs (like System.Thread) holds pointers to
7994         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
7995         to treat native int a pointer type here.
7996         
7997 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
7998
7999         * appdomain.h, domain.c: add hashtable for jump target resolution.
8000
8001 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
8002
8003         * reflection.h reflection.c icall.c: Added new icalls 
8004         GetManifestResourceInfoInternal, GetModulesInternal and support
8005         infrastructure.
8006
8007 2003-05-16  Dick Porter  <dick@ximian.com>
8008
8009         * icall.c:
8010         * file-io.h:
8011         * file-io.c: Implement System.IO.MonoIO::GetTempPath
8012
8013 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
8014
8015         * object.c: mono_store_remote_field: little fix to previous patch.
8016
8017 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
8018
8019         * class.c: add constructors to array classes.
8020         * icall.c: special case array construction for InternalInvoke (),
8021
8022 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
8023
8024         * class.h class.c reflection.c object.c: Added support for field
8025         defaults in dynamically generated classes.
8026
8027 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
8028
8029         * reflection.c: properly encode charset for ddlimport.
8030
8031 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
8032
8033         * threads.c: allow compiling without GC.
8034
8035 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
8036
8037         * appdomain.h, object.c, object.h, threads.c, threads.h: added
8038         handling of thread static data.
8039
8040 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
8041
8042         * reflection.h, reflection.c: added mono_custom_attrs_free ().
8043
8044 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
8045
8046         * class.c (mono_array_class_get): always set the serializable flags
8047         (mono_array_class_get): always set the SEALED attribute for array types
8048
8049 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
8050
8051         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
8052         attributes (fix for bug 42021).
8053
8054 2003-05-12  Dick Porter  <dick@ximian.com>
8055
8056         * gc.c: Don't run finalizers when the finalizer thread is
8057         finishing up, because the default domain has already been
8058         destroyed.
8059
8060 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
8061
8062         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
8063         value is null, we should throw an exception.   This is slightly
8064         different than the other conventions used for the constructor.
8065
8066 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8067
8068         * socket-io.c: fixed windows build.
8069
8070 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8071
8072         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
8073
8074 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
8075
8076         * object.c (mono_string_new_wrapper): Compatibility fix for MS
8077         compilers.
8078
8079 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
8080
8081         * class.c (mono_class_layout_fields): Add experimental GC aware
8082         auto layout facility. Requires class library changes to work correctly.
8083
8084         (mono_class_setup_vtable): Avoid overriding explicit interface
8085         method implementations. Fixes iface3.exe test.
8086
8087         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
8088         object reference.
8089         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
8090         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
8091
8092         * metadata.h: Add new type classification macro which determines
8093         whenever the type holds an object reference.
8094
8095 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
8096
8097         * marshal.c (mono_marshal_get_native_wrapper): cleanups
8098
8099 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
8100
8101         * gc.c (finalizer_thread): Work around a GC bug.
8102
8103 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
8104
8105         * marshal.c (emit_struct_conv): allow unions
8106
8107         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
8108
8109 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
8110
8111         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
8112
8113 2003-05-06  Martin Baulig  <martin@ximian.com>
8114
8115         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
8116
8117 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8118
8119         * socket-io.c:
8120         (Select_internal): allow NULLs, don't create arrays if not needed.
8121         Coupled with Socket.cs changes.
8122
8123         * threadpool.c:
8124         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
8125         register a finalizer for it that will close the semaphore handle. This
8126         fixes the leak and make Lupus' test run with > 4080 loops.
8127
8128 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
8129
8130         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
8131         Jerome Laban (bug #42287)
8132
8133 2003-05-02  Martin Baulig  <martin@ximian.com>
8134
8135         * debug-mono-symfile.h
8136         (MonoSymbolFile): Moved declaration into mono-debug.h.
8137         (MonoDebugMethodJitInfo): Likewise.
8138         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
8139         argument.
8140         (_mono_debug_address_from_il_offset): Take a
8141         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
8142
8143         * mono-debug.h
8144         (MonoDebugDomainData): New struct.
8145         (mono_debug_get_domain_data): New function.
8146         (mono_debug_add_method): Take an additional `MonoDomain *'
8147         argument.
8148         (mono_debug_source_location_from_address): Likewise.
8149         (mono_debug_il_offset_from_address): Likewise.
8150         (mono_debug_address_from_il_offset): Likewise.
8151
8152 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
8153
8154         * reflection.c: one more check for null type in custom attrs.
8155
8156 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8157
8158         * reflection.c: avoid warning (comparison is always false due to limited
8159         range of data type).
8160
8161 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8162
8163         * icall.c: throw an exception in Type.GetField if the argument 'name'
8164         is NULL.
8165
8166 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
8167
8168         * reflection.c: fixed handling of enums in named arguments to custom
8169         attributes (bug #42123).
8170
8171 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
8172
8173         * reflection.c: use the right array element type and handle
8174         a null for a Type argument, too.
8175
8176 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
8177
8178         * reflection.c: handle arrays as arguments to custom attributes.
8179
8180 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
8181
8182         * reflection.c: handle a string value in a custom attr
8183         ctor that takes an object.
8184
8185 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8186
8187         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8188         (fix bug #42063)
8189
8190 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8191
8192         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8193
8194 2003-04-27  Martin Baulig  <martin@ximian.com>
8195
8196         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8197         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8198         MONO_DEBUGGER_EVENT_BREAKPOINT.
8199         (mono_breakpoint_trampoline_code): Removed.
8200         (mono_debugger_event_handler): The last argument is now a
8201         `guint32'.
8202         (mono_debugger_insert_breakpoint_full): Removed the
8203         `use_trampoline' argument.
8204         (mono_debugger_method_has_breakpoint): Likewise.
8205         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8206         mono_debugger_breakpoint_callback(); take the method and
8207         breakpoint number as arguments.
8208
8209 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8210
8211         * metadata.c: fix off by one when loading parameters attributes.
8212
8213 2003-04-24  Martin Baulig  <martin@ximian.com>
8214
8215         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8216
8217 2003-04-24  Martin Baulig  <martin@ximian.com>
8218
8219         * mono-debug-debugger.c: Moved all code which interacts with the
8220         Mono Debugger here.
8221
8222         * debug-mono-symfile.c: This code now just deals with the symbol
8223         file itself, the debugger code is now in mono-debug-debugger.c.
8224
8225 2003-04-23  Martin Baulig  <martin@ximian.com>
8226
8227         * mono-debug.c (mono_debug_source_location_from_il_offset):
8228         New method; like mono_debug_source_location_from_address(), but
8229         takes an IL offset instead of a machine address.
8230
8231 2003-04-23  Martin Baulig  <martin@ximian.com>
8232
8233         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8234         `line' field; this is now computed by the debugger.
8235
8236 2003-04-23  Martin Baulig  <martin@ximian.com>
8237
8238         * mono-debug.[ch]: New files.  This is the new debugging interface.
8239
8240         * mono-debug-debugger.[ch]: New files.  Moved all code which
8241         interacts with the Mono Debugger here.
8242
8243 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8244
8245         * domain.c (mono_init): initialize mono_defaults.monitor_class
8246
8247 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8248
8249         * reflection.c (method_encode_code): Add a spicy exception to help
8250         future compiler authors.
8251
8252 2003-04-21  Martin Baulig  <martin@ximian.com>
8253
8254         * icall.c
8255         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8256         Make this work with relative pathnames; g_filename_to_uri() needs
8257         an absolute filename.
8258
8259 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8260
8261         * icall.c: Track name changes in Object and ValueType.
8262
8263 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8264
8265         * metadata.c (mono_type_stack_size): size should be a multiple of
8266         sizeof (gpointer)
8267
8268 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8269
8270         * gc.c:
8271         (internal_domain_finalize): moved into mono_domain_finalize. No need
8272         to create another thread because the finalizers will be run in the
8273         finalizer thread.
8274         
8275         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8276         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8277         to be run (MS does this too).
8278
8279 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8280
8281         * object.c (mono_class_compute_gc_descriptor): Update comment.
8282
8283         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8284
8285         * image.h: Add synchronized wrapper cache.
8286
8287         * image.c (do_mono_image_open): Initialize cache.
8288
8289         * reflection.c (create_dynamic_mono_image): Initialize cache.
8290
8291 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8292
8293         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8294         ves_icall_System_Buffer_ByteLengthInternal.
8295
8296 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8297
8298         * reflection.c: setup klass->nested_in earlier. Allow
8299         a dash in the assembly name.
8300
8301 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8302
8303         * metadata.c (mono_type_to_unmanaged): dont access
8304         type->data.klass for MONO_TYPE_OBJECT
8305         (mono_type_to_unmanaged): consider System.Delegate class
8306
8307 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8308
8309         * class.c: just setup supertypes in the proper place instead of
8310         initializing the full element class for arrays.
8311
8312 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8313
8314         * class.c: ensure the element class of arrays is initialized.
8315         Setup the supertype info for array classes, too.
8316
8317 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8318
8319         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8320
8321 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8322
8323         * Makefile.am: re-added -m option when running cygpath. This way,
8324         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8325         separator.
8326         * mono-config.c: same codepath for locating mono config file for WIN32
8327         and the rest.
8328         * assembly.c: if mono_assembly_setrootdir is called, don't override
8329         the value set.
8330
8331 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8332
8333         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8334         MONO_ASSEMBLIES variable.
8335
8336 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8337
8338         * icall.c: added Assembly::GetNamespaces() icall.
8339
8340 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8341
8342         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8343
8344 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8345
8346         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8347         * object.c: fixed bug in the construction of vtable for proxies
8348
8349 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8350
8351         * object.c (mono_array_new): Mark mono_array_new as an icall.
8352
8353 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8354
8355         * class.c: fixed test for public method when overriding interfaces.
8356         Closes bug #40970.
8357
8358 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8359
8360         * appdomain.h, domain.c: added mono_domain_foreach() to
8361         be able to access the currently loaded appdomains.
8362         * object.c: make string interning work across sppdomains.
8363         Mark some functions for use as icalls.
8364
8365 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8366
8367         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8368
8369         * reflection.h reflection.c: Allocate long living data using 
8370         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8371
8372         * reflection.c: Double the allocation size in streams instead of
8373         increasing it, to prevent unneccesary copying on large assemblies.
8374         
8375         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8376         creation if the assembly does not have the Run flag set.
8377
8378 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8379
8380         * class.h: avoid the C++ keywords in header files (Jerome Laban
8381         spotted and fixed this).
8382
8383 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8384
8385         * object.c:
8386         (mono_unhandled_exception): fill in the arguments for the
8387         UnhandledException event. Only trigger that event for the default
8388         domain (as MS does).
8389
8390 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8391
8392         * object.c: Improve typed allocation stuff based on suggestions from
8393         Paolo. Also turn it on if the GC library supports it.
8394
8395 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8396
8397         * object.c object.h class.h: Added experimental typed allocation
8398         facility using the interfaces in gc_gcj.h.
8399
8400         * os/gc_wrapper.h: Added new include files.
8401         
8402 2003-04-03  Martin Baulig  <martin@ximian.com>
8403
8404         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8405         which is not yet enabled by default.
8406
8407         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8408         functions.
8409         (mono_gc_lock, mono_gc_unlock): New static functions.
8410
8411         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8412         functions; stop/start the world for the garbage collector.  This
8413         is using the windows API; we need to complete the SuspendThread()/
8414         ResumeThread() implementation in the io-layer to make this work on Unix.
8415         (mono_gc_push_all_stacks): New public function; tells the garbage
8416         collector about the stack pointers from all managed threads.
8417
8418 2003-04-03  Martin Baulig  <martin@ximian.com>
8419
8420         * object.h (MonoThread): Added `gpointer stack_ptr'.
8421
8422         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8423
8424 2003-04-03  Martin Baulig  <martin@ximian.com>
8425
8426         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8427
8428 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8429
8430         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8431         field.last.
8432
8433 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8434
8435         * loader.c (mono_lookup_internal_call): Report the corlib that is
8436         out of sync.
8437
8438 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8439
8440         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8441         System.DBNull (it's class not valuetype).
8442
8443 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8444
8445         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8446         if the array method was already assigned a token (fixes bug#40646).
8447
8448 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8449
8450         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8451         if no assembly is given.
8452
8453 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8454
8455         * metadata.h: Added the new tables.
8456
8457         * row-indexes.h: Added definitions for new tables.
8458
8459         * metadata.c: Add schemas for new tables, and add support for
8460         computing the sizes of them.
8461
8462         * class.c: Update for handling the new type cases.
8463
8464 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8465
8466         * metadata.h (MONO_TYPE_IS_VOID): new macro
8467
8468 2003-03-31  Martin Baulig  <martin@ximian.com>
8469
8470         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8471
8472         * threads.c (mono_thread_new_init): Call `thread_created' in the
8473         mono_thread_callbacks.
8474
8475 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8476
8477         * loader.h: added marshalbyrefobject_class to mono_defaults
8478         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8479         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8480           generation of output parameters.
8481           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8482         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8483           contextbound and the target object belongs to the context of the caller.
8484         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8485         * object.c: Implemented support for interfaces and abstract classes
8486           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8487           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8488
8489 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8490
8491         * class.h class.c (mono_class_is_subclass_of): New function.
8492         
8493         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8494         routines for most common case (calls from ArrayList::ToArray).
8495
8496         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8497         routine so programs which call Environment::Exit() can be profiled.
8498
8499         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8500         Added MONO_ARCH_SAVE_REGS.
8501
8502         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8503
8504 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8505
8506         * blob.h: Add a couple of new MonoType types definitions.
8507
8508         * tabledefs.h: Add a couple of new call convs.
8509
8510 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8511
8512         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8513         the layout of the class.
8514
8515         * reflection.c (alloc_table): double the size on overflow to avoid
8516         unnecessary copying.
8517
8518         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8519         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8520         null so it can be garbage collected.
8521         
8522 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8523
8524         * reflection.c (mono_reflection_get_type): Return the resolved type
8525         only if it is in the assembly we searched.
8526
8527         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8528
8529         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8530         method.
8531
8532 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8533
8534         * appdomain.c:
8535         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8536         the right one is 'file:///blah', but MS allows it.
8537         * assembly.c:
8538         (mono_assembly_open): allow 'file://blah'
8539
8540         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8541
8542 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8543
8544         * socket-io.c: fixes bug #40310.
8545
8546 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8547
8548         * reflection.c (mono_reflection_parse_type): handle deeply nested
8549         types correctly.
8550
8551         * reflection.c (mono_image_create_token): Use unique token values
8552         since they will be put into a hash table.
8553
8554         * class.c (mono_class_setup_vtable): If a method occurs in more than
8555         one place in the vtable, and it gets overriden, then change the
8556         other occurances too.
8557
8558         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8559         object as return type.
8560
8561 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8562
8563         * icall.c: Deleted "ToString" implementation for double and float
8564         because they are full implemented in managed code.
8565
8566 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8567
8568         * reflection.c, reflection.h: implemented and exported functions
8569         to retrieve info about custom attributes.
8570
8571 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8572
8573         * appdomain.c: moved Uri handling to assembly.c
8574         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8575         work when using a file Uri in *nix and windows.
8576
8577         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8578         GetReferencedAssemblies.
8579
8580 2003-03-18  Dick Porter  <dick@ximian.com>
8581
8582         * icall.c: Rename a couple of internal calls
8583
8584         * threads.c: Set the thread state to Stopped when a thread exits.
8585         Fixes bug 39377.
8586
8587 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8588
8589         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8590         New icall.
8591
8592         * object.c (mono_class_vtable): fix warning.
8593
8594 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8595
8596         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8597
8598         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8599         memory.
8600         (method_encode_clauses): Create exception info structures in the right
8601         order.
8602         (mono_reflection_setup_internal_class): Initialize supertypes field.
8603
8604         * class.c object.c: Handle interfaces which implement other interfaces 
8605         correctly.
8606
8607         * class.h class.c: Move the supertypes array initialization code into 
8608         a separate function so it can be used for dynamic types too. Also call
8609         it earlier, in mono_class_init(), since it can be used before the
8610         type is initialized.
8611
8612 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8613
8614         * Makefile.am:
8615         * assembly.c:
8616         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8617
8618         * appdomain.c:
8619         * appdomain.h:
8620         * marshal.c:
8621         * object.c: remove warnings.
8622
8623 2003-03-13  Martin Baulig  <martin@ximian.com>
8624
8625         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8626         (MonoDebugLexicalBlockEntry): New types.
8627
8628         * debug-mono-symfile.c
8629         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8630
8631 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8632
8633         * process.c: ret can be any non-zero value accroding to MS doc.
8634
8635 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8636
8637         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8638         fixing a warning for a miss-used prototype, would have cause
8639         random memory corruption.
8640
8641 2003-03-07  Martin Baulig  <martin@ximian.com>
8642
8643         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8644         getting really annoying ....
8645
8646 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8647
8648         * reflection.c (fixup_method): added support for array methods.
8649
8650 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8651
8652         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8653         (pointed out by Michael Adams).
8654
8655 2003-03-04  Dick Porter  <dick@ximian.com>
8656
8657         * icall.c: Temporarily reverted the Double and Single ToString()
8658         change, because it broke nunit.
8659
8660 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8661
8662         * object.h, threads.h: make include files compatible with C++
8663         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8664
8665 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8666
8667         * icall.c: Erased ToString helper functions for Double and Single.
8668         Now, that implementations ar all in managed code (Double and Single
8669         Formatters).
8670
8671 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8672
8673         * appdomain.c: Added method for initializing the default context of
8674         a domain. Added internal call for getting the default context.
8675         * appdomain.h: Added context variable in MonoDomain struct.
8676         * domain.c: mono_domain_set also sets the default context of the domain
8677         * icall.c: Mapped internal method InternalGetDefaultContext.
8678         * object.c: mono_object_get_virtual_method returns always a remoting
8679         wrapper if the object is a transparent proxy.
8680         mono_runtime_invoke_array: when creating an object by calling the
8681         constructor, if the created object is a proxy, then the constructor should
8682         be called using the a remoting wrapper.
8683
8684 2003-03-03  Dick Porter  <dick@ximian.com>
8685
8686         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8687         variable so it compiles on solaris.  Problem spotted by
8688         Christopher Taylor <ct@cs.clemson.edu>
8689
8690 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8691
8692         * appdomain.c:
8693         (get_info_from_assembly_name): don't leak value.
8694
8695         * icall.c:
8696         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8697         result.
8698
8699 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8700
8701         * assembly.c: export mono_image_load_references ().
8702         * class.c: handle function pointers. mono_class_from_name() now
8703         supports nested type names directly.
8704
8705 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8706
8707         * reflection.h reflection.c: Encode already created dynamic methods 
8708         and fields correctly as a DEF instead of a REF.
8709
8710         * reflection.c: Get rid of the force_ref argument to 
8711         mono_image_typedef_or_ref since it was wrong in the first place.
8712
8713         * string-icalls.c: add error checking to string constructors according
8714         to the MSDN docs.
8715
8716         * reflection.c: Emit types in the order their TypeBuilders were 
8717         created. Previously, a new table index was assigned to each type before
8718         the tables were emitted. This was wrong because the signature blob
8719         might already refer to a type by its original table index.
8720
8721 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8722
8723         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8724         change.
8725         
8726 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8727
8728         * Makefile.am: make assemblies dir have \ instead of / on windows.
8729
8730 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8731
8732         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8733         iterate over the NESTEDCLASS table using a linear search since the
8734         table is not guaranteed to be sorted by the secondary key.
8735
8736         * class.c (mono_class_create_from_typedef): fixed up call to
8737         mono_metadata_nesting_typedef.
8738         
8739 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8740
8741         * marshal.c (mono_string_to_byvalstr): clear the memory as
8742         suggested by Jerome Laban <jlaban@wanadoo.fr>
8743
8744 2003-02-26  Dick Porter  <dick@ximian.com>
8745
8746         * process.c: Cope with padding in .rsrc blocks
8747
8748 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8749
8750         * metadata.h: reverted the filter_len change, it breaks reflection
8751         
8752 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8753
8754         * metadata.h: added a new field to store the filter_len
8755         
8756
8757 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8758
8759         * reflection.c: handle custom attributes for types and members
8760         created with Reflection.Emit (bug#38422).
8761
8762 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8763
8764         * reflection.c: define RTSpecialName automatically for constructors for
8765         compatibility with MS.NET.
8766
8767         * reflection.c (mono_reflection_create_runtime_class): initialize
8768         nested_in field of dynamically created classes.
8769
8770 2003-02-22  Martin Baulig  <martin@ximian.com>
8771
8772         * debug-mono-symfile.h: Incremented version number.
8773
8774 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8775
8776         * object.h icall.c process.c: fix warnings.
8777
8778 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8779
8780         * appdomain.h appdomain.c:
8781         (mono_domain_try_type_resolve): split the 
8782         name_or_tb argument into a name and a tb argument.
8783         (mono_domain_has_type_resolve): new function to check whenever the
8784         application has registered a TypeResolve event handler.
8785         
8786         * icall.c reflection.h reflection.c: move the type resolve logic into
8787         mono_reflection_get_type () so it will be invoked when 
8788         Assembly::GetType () is called.
8789
8790         * reflection.c:
8791         (mono_reflection_get_type): renamed to get_type_internal.
8792         (mono_reflection_get_type): fixed type name generation so it works 
8793         for nested types too.
8794         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8795         costly type name generation if there is no resolve event handler.
8796
8797 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8798
8799         * class.c, image.c: load exported types from file references.
8800
8801 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8802
8803         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8804           used to cache the managed methods used to create proxies and make 
8805           remote invocation of methods.
8806         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8807           to be remotely created.
8808         * object.c: Modified the method mono_class_vtable(). It now initializes 
8809           the remote flag of the vtable. Modified mono_object_new_specific(), 
8810           so now it checks the remote flag.
8811         * icall.c: Added a couple of internal methods, one for enabling instance 
8812           creation interception for a type, and one for creating objects bypassing
8813           the remote check.
8814
8815 2003-02-18  Martin Baulig  <martin@ximian.com>
8816
8817         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8818         New interncall to get a method's metadata token.
8819
8820         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8821         New interncall for the debugger.
8822
8823 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8824
8825         * class.c (mono_class_setup_vtable): allocate supertype array
8826
8827 2003-02-18  Martin Baulig  <martin@ximian.com>
8828
8829         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8830
8831 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8832
8833         * reflection.c:
8834         (assembly_name_to_aname): jump over unknown properties (i've found
8835         something like: 'type, assembly, version=xxx, custom=null, public...',
8836         so now will ignore custom=null and still get the rest of the values).
8837
8838 2003-02-17  Dick Porter  <dick@ximian.com>
8839
8840         * threads.c: Have Thread.Start() wait for a semaphore to signal
8841         that the thread has set up all its local data.  This fixes bug
8842         34323, where Abort() raced the new thread's TLS data.
8843
8844         Also removes the handle_store() call from start_wrapper, because
8845         threads are now always created suspended and there is no longer a
8846         race between the parent and child threads to store the info.
8847
8848 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8849
8850         * image.c: explain the #- heap issue in a message, hopefully
8851         avoiding FAQs on mono-list.
8852
8853 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8854
8855         * icall.c:
8856         (GetEntryAssembly): if the domain has not invoked
8857         AppDomain.ExecuteAssembly yet, return the assembly of the default
8858         AppDomain.
8859
8860 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8861
8862         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8863
8864 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8865
8866         * metadata.c, reflection.c: simple speedup to type hash
8867         and equals code.
8868
8869 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8870
8871         * image.c, image.h, class.c, assembly.c: move module loading
8872         to MonoImage. When loading metadata, consider alignemnet from
8873         the start of metadata, not from the metadata address in memory.
8874
8875 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8876
8877         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8878         AssemblyBuilder objects. Factored out custom attribute creation into
8879         a separate function.
8880         (create_custom_attr): new function to create custom attributes.
8881
8882 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8883
8884         * Makefile.am: Got tired of typing the full pathname to pedump.
8885         Until there is another option, am installing this.
8886
8887 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8888
8889         * class.c (class_compute_field_layout): always set field->parent 
8890         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8891
8892 2003-02-11  Dick Porter  <dick@ximian.com>
8893
8894         * threads-types.h:
8895         * monitor.c: Rewrote Monitor, making lock much faster and
8896         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8897         creates them as needed.
8898
8899         * exception.c: Added SynchronizationLockException
8900
8901         * threads.c: Deleted old Monitor implementation.  The new one is
8902         in a new file.
8903
8904 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8905
8906         * class.c: handled TypedReference type code. Set the correct size for
8907         class data. Setup interface_offsets for interface classes, too.
8908
8909 2003-02-09  Martin Baulig  <martin@ximian.com>
8910
8911         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8912
8913 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8914
8915         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8916         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8917         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8918         * verify.c: check for code that runs after the end of the method.
8919
8920 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8921
8922         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8923         "System.Math::Round2".
8924         * sysmath.h: Added Floor, Round and Round2 definitions.
8925         * sysmath.c: Modified certain functions that were not 100% compliant
8926         with MS.NET (math precision) and added the implementation of Floor,
8927         Round and Round2.
8928
8929 2003-02-07  Martin Baulig  <martin@ximian.com>
8930
8931         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8932
8933 2003-02-07  Martin Baulig  <martin@ximian.com>
8934
8935         * debug-mono-symfile.c: Reflected latest symwriter changes.
8936         (mono_debug_create_mono_symbol_file): Removed.
8937         (mono_debug_open_mono_symbol_file): Take an argument which
8938         specifies whether to create a dynamic symbol file.
8939
8940 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8941
8942         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8943
8944 2003-02-05  Martin Baulig  <martin@ximian.com>
8945
8946         * reflection.c (mono_image_build_metadata): Make this public,
8947         protect it against being called multiple times, don't create
8948         resources and don't build the compressed metadata here.
8949         (mono_image_create_pefile): Do this here.
8950
8951         * icall.c
8952         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8953
8954 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8955
8956         * socket-io.c: fixed bug #36322.
8957
8958 2003-02-06  Piers Haken <piersh@friskit.com>
8959
8960         * appdomain.[ch]:
8961         * class.h:
8962         * debug-mono-symfile.c:
8963         * icall.c:
8964         * loader.c:
8965         * mono-config.c:
8966         * monosn.c:
8967         * reflection.c:
8968         * socket-io.c: warning cleanups
8969
8970 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8971
8972         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8973         function. works like remoting invoke, but does a check for the Proxy first.
8974
8975 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8976
8977         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8978
8979 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8980
8981         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8982         array of pointers.
8983         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8984         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8985
8986         * object.c (mono_store_remote_field_new): used by the new jit
8987         instead of mono_store_remote_field
8988         (mono_load_remote_field_new): used by the new jit
8989         instead of mono_load_remote_field
8990
8991 2003-02-05  Patrik Torstensson
8992
8993         * appdomain.c: changed unload to take the domain id instead
8994         of domain
8995         
8996         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
8997
8998
8999 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9000
9001         * appdomain.c: don't look for assemblies in ApplicationBase if
9002         PrivateBinPathProbe is set.
9003
9004 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9005
9006         * object.c: make the first argument in main_args contain the absolute
9007         path to the assembly. Fixes bug #37511.
9008
9009 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9010
9011         * icall.c: get correct UTC offset for countries not using daylight
9012         time saving. Fixes bug #30030.
9013
9014 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9015
9016         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
9017         and 1 are the family).
9018
9019 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
9020
9021         * icall.c (ves_icall_InternalExecute): removed wrong assertion
9022
9023         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
9024
9025 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
9026
9027         * reflection.c: added support for SignatureHelper tokens, which is
9028         needed by the Calli opcode.
9029
9030         * reflection.h: track changes to SignatureHelper class.
9031
9032         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
9033
9034 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9035
9036         * appdomain.c: fixed loading assemblies from PrivateBinPath.
9037
9038 2003-02-03  Patrik Torstensson
9039         * appdomain.[c|h], domain.c : 
9040          - Added support for getting a domain via domain id
9041          - Support for setting and getting domain from System.AppDomain 
9042            (used in cross appdomain channel)
9043          - Added support for get/set for a MonoAppContext on a thread 
9044            (Context class in System.Runtime.Remoting.Contexts),
9045          - Removed hack in Get/SetData and ExecuteAssembly.
9046         
9047         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
9048         the managed world to get control when a proxy is created.
9049
9050         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
9051         
9052 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
9053
9054         * icall.c
9055         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9056         Populate the codebase field as well.
9057
9058 2003-02-02  Martin Baulig  <martin@ximian.com>
9059
9060         * debug-mono-symfile.c
9061         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
9062         (mono_debug_symfile_add_method): Allow interncalls.
9063
9064 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9065
9066         * icall.c: throw parse exception if strtod fails or the string is empty.
9067
9068 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
9069
9070         * marshal.c: handle object type separately from defined
9071         class types.
9072
9073 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
9074
9075         * marshal.c: handle NATIVE_LPSTR for strings when it's
9076         explicitly specified.
9077
9078 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
9079
9080         * reflection.c, reflection.h, icall.c: setup the reflection
9081         handle cache for ModuleBuilders and AssemblyBuilders.
9082
9083 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
9084
9085         * reflection.c (reflection_methodbuilder_to_mono_method): set
9086         pinvoke flag
9087
9088 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9089
9090         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
9091
9092 2003-01-29  Dick Porter  <dick@ximian.com>
9093
9094         * threads.c: No need for the fake_thread kludge now that Thread
9095         doesn't run a class constructor
9096         
9097 2003-01-29  Dick Porter  <dick@ximian.com>
9098
9099         * threads.c: Use g_direct_hash instead of the rather bogus
9100         g_int_hash
9101
9102 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
9103
9104         * marshal.c (mono_marshal_get_native_wrapper): add check for null
9105         (fix pinvoke12.exe)
9106         (mono_marshal_get_struct_to_ptr): generate valid IL code
9107         (mono_marshal_get_ptr_to_struct): generate valid IL code
9108         (*): correctly set sig->pinvoke, we need to memdup the signature
9109         to do that
9110
9111 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
9112
9113         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
9114         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
9115
9116 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9117
9118         * profiler.c: provide more callers information.
9119
9120 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
9121
9122         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
9123
9124         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
9125
9126         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
9127
9128 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9129
9130         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
9131         exception instead of going into an infinite loop on dates which it 
9132         can't yet handle.
9133
9134         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
9135         out-of-range exception if needed.
9136
9137         * class.c (mono_class_setup_vtable): allow a virtual method to provide
9138         an implementation for an interface method and to override an inherited
9139         method at the same time. 
9140         Imagine a scenario when a virtual method is used to override a
9141         virtual abstract method in a parent class, and this same method 
9142         provides an implementation for an method inherited from an interface. 
9143         In this case, the interface resolution code will set im->slot, which 
9144         means that the virtual method override pass will skip this method 
9145         which means a pointer to the abstract method inherited from the parent
9146         will remain in the vtable of this non-abstract class.
9147
9148         * class.c: (mono_class_setup_vtable): continue search for a real 
9149         method if only an abstract method is found.     
9150
9151 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9152
9153         * reflection.c: add size to encoding for ByValStr and ByValArray
9154         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
9155
9156 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9157
9158         * class.c (mono_class_setup_vtable): pass the override info as an
9159         argument.
9160
9161         * class.c (mono_class_setup_vtable): set the slot of overriding methods
9162         correctly.
9163         
9164         * reflection.c (ensure_runtime_vtable); add support for method 
9165         overrides.
9166         
9167 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9168
9169         * reflection.c (resolution_scope_from_image): Hack to work to work with
9170         dynamic assemblies.
9171
9172         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
9173         added a 'force_ref' argument to force this function to allways return 
9174         a TypeRef. This is needed by mono_image_get_memberref_token ().
9175         
9176 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9177
9178         * reflection.c (mono_image_get_type_info): interfaces really don't have
9179         a parent.
9180
9181         * reflection.c (mono_image_basic_init): fill out missing fields of
9182         image structure.
9183
9184         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9185         dynamic assemblies. This is required so dynamic assemblies show up in
9186         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9187         Type::GetType() etc. This is consistent with MS behaviour.
9188
9189         * image.c image.h reflection.c: add newly created classes to the name 
9190         cache so mono_class_get () will find them.      
9191
9192 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9193
9194         First part of changes to get IKVM.NET running under mono.
9195         
9196         * appdomain.h, appdomain.c: added new function 
9197         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9198         This function will call AppDomain::DoTypeResolve to do the actual work.
9199
9200         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9201         moved existing code dealing with dynamic tokens to a new function 
9202         called mono_reflection_lookup_dynamic_token (). This function will 
9203         raise TypeResolve events when appropriate. Since reflection.c is not 
9204         part of libmetadata, a new hook function called 
9205         mono_lookup_dynamic_token() is added to class.c which will call this.
9206
9207         * assembly.h assembly.c: make the invoke_load_hook function public,
9208         so it can be called for dynamic assemblies.
9209
9210         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9211
9212         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9213         type isn't found.
9214
9215         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9216         MonoGHashTable, since it contains pointers to objects which the GC 
9217         needs to track.
9218
9219         * assembly.c (search_loaded): remove unused variable.
9220         
9221 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9222
9223         * object.c: fixed issue exposed by gcc-generated IL programs
9224         that use RVA data for pointers.
9225
9226 2003-01-25  Martin Baulig  <martin@ximian.com>
9227
9228         * threads.c (start_wrapper): Moved the initialization of
9229         `start_func' above the mono_new_thread_init() call to which we
9230         pass it as argument.
9231
9232 2003-01-24  Martin Baulig  <martin@ximian.com>
9233
9234         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9235         the MonoThread pointer.
9236
9237 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9238
9239         * icall.c: Rename `PowImpl' to Pow.
9240
9241 2003-01-23  Dick Porter  <dick@ximian.com>
9242
9243         * threads.c (start_wrapper): Create a Thread object if needed, so
9244         the Main() thread can do the class initialisation in a subthread
9245         that has been set up to allow managed code execution.
9246
9247         Pass the thread ID instead of the MonoThread pointer to the thread
9248         start and attach callbacks.  This change is required, because the
9249         jit thread start callback must be called _before_ the Thread
9250         object can be created.
9251         
9252         (mono_thread_init): Removed much object creation code that is no
9253         longer needed.  No managed code is called from here now.
9254
9255         * object.c (mono_runtime_exec_managed_code): Create a subthread
9256         for Main, and call back to the runtime to use it.
9257         Set the exit code when Main exits.
9258
9259         * gc.c: Make sure domain finalisation happens in a subthread.
9260         Re-enable threaded GC, fixing bug 31333 (again).
9261
9262         * environment.c: System.Environment internall calls (so far just
9263         ExitCode is here, the others are still in icall.c)
9264
9265         * appdomain.c (mono_runtime_cleanup): All threads running managed
9266         code should have finished before mono_runtime_cleanup() is
9267         reached, so no need to clean up threads.
9268
9269 2003-01-22  Martin Baulig  <martin@ximian.com>
9270
9271         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9272         `gpointer func' arguments.      
9273         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9274         but added `MonoThread *thread' argument.
9275         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9276
9277         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9278         and pass it to the mono_thread_start_cb callback.
9279         (mono_install_thread_callbacks): New public function to install a
9280         set of callbacks which are set by the debugger.
9281         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9282
9283 2003-01-22  Martin Baulig  <martin@ximian.com>
9284
9285         * Makefile.am: Install debug-mono-symfile.h.
9286
9287 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9288
9289         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9290
9291 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9292
9293         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9294         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9295         (mono_array_class_get): correctly set access levels of arrays
9296
9297 2003-01-20      Patrik Torstensson
9298         * image.h (MonoAssemblyName): changed major, minor, build, revision
9299         from signed to unsigned.
9300
9301 2003-01-20  sean kasun <skasun@azstarnet.com>
9302
9303         * reflection.c (load_cattr_value): Now this handles
9304         MONO_TYPE_SZARRAY.  Fixes bug #35629
9305
9306 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9307
9308         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9309         integer value
9310
9311 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9312
9313         * decimal.c: fixed bug #26056.
9314
9315 2003-01-17  Martin Baulig  <martin@ximian.com>
9316
9317         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9318
9319 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9320
9321         * exception.[ch]:
9322         (mono_get_exception_type_initialization): new function.
9323
9324         * object.c: throw a TypeInitializationException when an exception is
9325         thrown invoking the class constructor.
9326
9327 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9328
9329         * reflection.c: fixed attribute reading.
9330
9331 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9332
9333         * icall.c:
9334         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9335         provided, look for the type in the calling assembly and then in
9336         mscorlib; if the assembly name is provided, only try that one.
9337
9338 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9339
9340         * object.c: register the vtable before there is a chance it's
9341         queried again recursively.
9342
9343 2003-01-13  Duncan Mak  <duncan@ximian.com>
9344
9345         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9346         gc-internal.h. 
9347         
9348 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9349
9350         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9351
9352 2003-01-11  Martin Baulig  <martin@ximian.com>
9353
9354         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9355         this to 20 for the release.
9356
9357 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9358
9359         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9360
9361         * loader.c (mono_method_get_marshal_info): bug fix
9362
9363         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9364         structures with explicit layout
9365
9366 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9367
9368         * profiler.c: made the output more readable (and sorted). 
9369         Added caller information for the allocation profiler.
9370
9371 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9372
9373         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9374
9375 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9376
9377         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9378         to get value types.
9379         
9380 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9381
9382         * object.c, profiler.h, profiler.c, profiler-private.h:
9383         Added object allocation profiler.
9384
9385 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9386
9387         * reflection.h, reflection.c: handle global methods.
9388         Compress blob entries.
9389
9390 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9391
9392         * marshal.c: fix compilation.
9393
9394 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9395
9396         * loader.c (mono_method_get_marshal_info): impl.
9397
9398         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9399
9400 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9401
9402         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9403         for reference types.
9404
9405 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9406
9407         * loader.c: fixed off by one error in loaded parameter names.
9408
9409 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9410
9411         * marshal.c (mono_marshal_get_icall_wrapper): like
9412         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9413         instead of a MonoMethod.
9414
9415 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9416
9417         * decimal.c: fixed bug #36537.
9418
9419 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9420
9421         * marshal.c: throw a missing method exception if a
9422         P/Invoke method is not found.
9423
9424 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9425
9426         * icall.c: allow a null this for constructors.
9427
9428 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9429
9430         * icall.c: raise the proper exceptions if the arguments to the
9431         internal Invoke are incorrect.
9432
9433 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9434
9435         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9436
9437 2003-01-03  Martin Baulig  <martin@ximian.com>
9438
9439         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9440
9441 2002-12-31  Martin Baulig  <martin@ximian.com>
9442
9443         * debug-mono-symfile.c: Completely rewrote the type section.
9444         Instead of using individual malloc()ed fields, we use one big
9445         continuous memory area and offsets into this area.
9446         See the comments in the source code for details.
9447
9448 2002-12-30  Martin Baulig  <martin@ximian.com>
9449
9450         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9451
9452 2002-12-30  Martin Baulig  <martin@ximian.com>
9453
9454         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9455         line number table in this data blob instead of using an external
9456         pointer.
9457
9458 2002-12-28  Martin Baulig  <martin@ximian.com>
9459
9460         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9461
9462 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9463
9464         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9465         as a boxed return type.
9466
9467 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9468
9469         * appdomain.c
9470         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9471         g_build_filename to properly get separators on the filename created.
9472
9473         * object.h: Small change, introduce MonoMarshalByRefObject to
9474         track the layout of that structure in the C# universe as we make
9475         changes there.
9476
9477 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9478
9479         * object.c: removed assert to allow static fields on interfaces.
9480         * loader.c: a TypeSpec may be used for any type, not just arrays.
9481
9482 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9483
9484         * class.c, class.h: added mono_class_array_element_size ().
9485         Ignore static methods in interfaces.
9486
9487 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9488
9489         * threads.c: fixed the build under cygwin.
9490
9491 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9492
9493         * reflection.c: handle nullref constants. Allocate keys for
9494         reflection handles with the GC.
9495
9496 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9497
9498         * threads.c, threads.h: added mono_thread_get_abort_signal()
9499         to get a suitable signal for thread abort.
9500
9501 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9502
9503         * metadata.c: fix handling of ExportedType table.
9504
9505 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9506
9507         * icall.c: added WriteWindowsDebugString internal call.
9508
9509 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9510
9511         * reflection.h: added fields to match C# implementation.
9512
9513 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9514
9515         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9516
9517 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9518
9519         * gc.h, gc-internal.h: Rename header for GC internal calls to
9520         gc-internal.h from gc.h as to not clash with Boehm GC having its
9521         header installed as <gc.h> in outside include paths.
9522         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9523         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9524
9525 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9526
9527         * icall.c: assign minor, build and revision in FillName.
9528
9529 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9530
9531         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9532         Added support for running code generated by Reflection.Emit.
9533
9534 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9535
9536         * appdomain.c: check for NULL argument in LoadFrom.
9537
9538 2002-12-10  Dick Porter  <dick@ximian.com>
9539
9540         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9541
9542 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9543
9544         * appdomain.c: fix buglet when building exe file name.  Handle full
9545         assembly name (needed after latest changes to AssemblyName).
9546         * image.c:
9547         (mono_image_close): free some hashtables.
9548
9549 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9550
9551         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9552         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9553         on some systems (redhat 7.3) 
9554
9555 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9556
9557         * threads.c: delete the critical section of a sync block,
9558         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9559
9560 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9561
9562         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9563
9564 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9565
9566         * appdomain.[ch]: handle the assembly preload event to try loading the
9567         assemblies using the paths we have in the current domain.
9568
9569         * assembly.[ch]: created an assembly preload hook that is called to try
9570         loading the assembly by other means that the ones provided here.
9571
9572         * domain.c: initialize the domain search path.
9573
9574         From now on, assemblies (TODO: except corlib and System) are loaded
9575         according to these rules when using mono_assembly_load ():
9576
9577                 1. It tries to load the assembly from the ApplicationBase
9578                 of the current domain appending .dll and .exe (TODO: have to
9579                 try loading from name/name.dll and name/name.exe).
9580
9581                 2. It tries the search path specified in PrivateBinPath for the
9582                 current domain (if any).
9583
9584                 3. Previous behavior.
9585
9586 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9587
9588         * icall.c: implemented GetInterfaceMap() related icall.
9589         * domain.c, loader.h: load MethodInfo in mono_defaults.
9590
9591 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9592
9593         * gc.c: disable the finalizer thread for now, untill all the issues
9594         with it are resolved.
9595
9596 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9597
9598         * string-icalls.c: handle embedded nulls in string ctor when the
9599         length is specified.
9600
9601 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9602
9603         * class.c: look for explicit interface implementation in parent
9604         classes, too.
9605
9606 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9607
9608         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9609
9610 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9611
9612         * gc.c: protect handles with a critical section.
9613
9614 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9615
9616         * icall.c:
9617         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9618         parameters. If no assembly specified, try getting the type from all
9619         the assemblies in the current domain, else, load the assembly and get
9620         the type from it.
9621
9622 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9623
9624         * marshal.c: applied patch from Aleksey Demakov that fixes
9625         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9626
9627 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9628
9629         * icall.c: fixed get_location.
9630
9631 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9632
9633         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9634         declarations to make it work with older gcc. 
9635
9636         * loader.c (mono_get_method): set signature->pinvoke for native calls
9637
9638 2002-11-20  Dick Porter  <dick@ximian.com>
9639
9640         * threads.c (mono_thread_init): Set the main thread's handle
9641
9642 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9643
9644         * gc.c: allow compilation without GC support. Changed to match the
9645         mono coding style.
9646
9647 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9648
9649         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9650
9651 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9652
9653         * reflection.c: set a public key token on the core assemblies.
9654
9655 2002-11-18  Dick Porter  <dick@ximian.com>
9656
9657         * threads.c: Split out some thread initialisation so that other
9658         files can set the start callback function.
9659
9660         * gc.c: Run finalisers in a separate thread, to avoid stack
9661         overflow.  Fixes bug 31333.
9662
9663         * appdomain.c: Set up GC finalisation thread.
9664
9665         * reflection.c: 
9666         * object.c: 
9667         * domain.c: Use gc.h macros for GC_malloc
9668         
9669 2002-11-15  Dick Porter  <dick@ximian.com>
9670
9671         * threadpool.c: 
9672         * threads.c:
9673         * appdomain.c: Removed mono_runtime_init_with_attach(),
9674         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9675         merging the extra parameter with the existing function.  Removed
9676         unneeded code in mono_thread_attach().
9677
9678 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9679
9680         * image.c (mono_image_loaded_by_guid): a method to get loaded
9681         images by guid. 
9682         (load_metadata_ptrs): we store the guid as string.
9683
9684 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9685
9686         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9687
9688         * metadata.c (mono_guid_to_string): imported method form Zoltan
9689         Varga (slightly modified)
9690
9691         * assembly.c (mono_assembly_open): load precompiled code
9692
9693         * loader.h (MonoMethod): we store the method token for use in the
9694         aot compiler. 
9695
9696 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9697
9698         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9699         the hook function called when an assembly is loaded.
9700         
9701         * domain.c: Modified file.
9702         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9703
9704         Fixes bug #33196.
9705
9706 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9707
9708         * reflection.c: Map PEFileKind to the value expected by the WinNT
9709         image loader. 
9710
9711 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9712
9713         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9714         Read until the buffer is filled completely.
9715
9716 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9717
9718         * icall.c: implemented MonoType.InternalGetEvent ().
9719
9720 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9721
9722         * appdomain.c: implemented InitAppDomainSetup. Delayed
9723         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9724         the entry_assembly.
9725
9726         * assembly.c: base_dir is now an absolute path ending with
9727         G_DIR_SEPARATOR.
9728
9729         * icall.c: modified get_location according to the above changes.
9730
9731         * object.c: init AppDomain.SetupInformation for the default domain after
9732         we have the entry assembly.
9733
9734         * domain.c: when unloading a domain, setup = NULL.
9735
9736 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9737
9738         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9739
9740 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9741
9742         * object.h, object.c: introduced mono_object_get_virtual_method ()
9743         to lookup the method invoked on an object when a callvirt is done on
9744         a method.
9745         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9746
9747 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9748
9749         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9750         current domain when loaded an assembly and failed to load it.
9751
9752         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9753
9754 2002-10-31  Dick Porter  <dick@ximian.com>
9755
9756         * icall.c: 
9757         * file-io.h: 
9758         * file-io.c: Return the error status in a parameter, as the
9759         GetLastError() value has long since been blown away if we try and
9760         look it up in a subsequent internal call invocation.  Delete the
9761         GetLastError() internal call, because it's useless.
9762
9763 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9764
9765         * class.[ch]: added cast_class to fix bug 29517
9766
9767 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9768
9769         * marshal.c: create valid IL code in the filter clause:
9770         the new JIT is less forgiving:-)
9771
9772 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9773
9774         * icall.c: removed get_property internal call.
9775
9776 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9777
9778         * appdomain.h domain.c: Added an ID to appdomains.
9779         
9780         * threads.c threads.h icall.c: Implement icall
9781         Thread:GetDomainID(), and remove unused icall 
9782         CurrentThreadDomain_internal.
9783
9784 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9785
9786         * icall.c: Don't recurse through the base types in GetConstructor.
9787         Fixes bug #32063. 
9788
9789 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9790
9791         * mempool.h, mempool.c: added mono_mempool_empty() and
9792         mono_mempool_stats().
9793
9794 2002-10-23  Dick Porter  <dick@ximian.com>
9795
9796         * file-io.c: 
9797         * file-io.h: 
9798         * icall.c: Added MonoIO.GetFileType internal call
9799
9800 2002-10-17  Dick Porter  <dick@ximian.com>
9801
9802         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9803         delegate semaphore before waiting for all threads to finish,
9804         because new threads can also call async delegates.  Fixes bug
9805         32004.
9806
9807         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9808         of 3 seconds, in case another async job is queued.  (This part is
9809         needed because the bug fix reintroduced the 3s exit lag.)  This
9810         makes the mono_runtime_shutdown flag superfluous.
9811
9812 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9813
9814         * reflection.c: include ehader size in method section headers.
9815         Really check for suplicated modules entries.
9816
9817 2002-10-17  Martin Baulig  <martin@gnome.org>
9818
9819         * debug-mono-symfile.c: Added back support for locals.
9820
9821 2002-10-14  Martin Baulig  <martin@gnome.org>
9822
9823         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9824         MONO_TYPE_VOID.
9825
9826 2002-10-14  Martin Baulig  <martin@gnome.org>
9827
9828         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9829         mono_class_get() instead of looking in the class cache. 
9830
9831 2002-10-13  Martin Baulig  <martin@gnome.org>
9832
9833         * debug-mono-symfile.c: Set version number to 28, include the
9834         signature in method names.
9835
9836 2002-10-13  Martin Baulig  <martin@gnome.org>
9837
9838         * debug-mono-symfile.h: Set version number to 27.
9839
9840 2002-10-11  Martin Baulig  <martin@gnome.org>
9841
9842         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9843
9844 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9845
9846         * metadata.c, metadata.h: added helper function to allocate signatures.
9847
9848 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9849
9850         * icall.c: added internal call to get the location of machine.config.
9851
9852 2002-10-08  Martin Baulig  <martin@gnome.org>
9853
9854         * debug-mono-symfile.c: Ignore classes with a pending init for the
9855         moment.
9856
9857 2002-10-03  Dick Porter  <dick@ximian.com>
9858
9859         * threads.c: Freebsd pthread_t is a pointer
9860
9861 2002-10-03  Dick Porter  <dick@ximian.com>
9862
9863         * socket-io.c: Implemented GetHostName_internal
9864
9865 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9866
9867         * mono-config.c:
9868         (mono_config_parse_file): don't leak the text.
9869
9870 2002-10-02  Martin Baulig  <martin@gnome.org>
9871
9872         * debug-mono-symfile.c: Added support for methods.
9873
9874 2002-10-01  Martin Baulig  <martin@gnome.org>
9875
9876         * debug-mono-symfile.c: Don't emit methods and line numbers for
9877         the dynamic symbol file, just write the type table.  We can easily
9878         have an external helper program which creates a symbol file for an
9879         IL file.        
9880
9881 2002-10-01  Dick Porter  <dick@ximian.com>
9882
9883         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9884         Only add the handle to the cleanup array when we're about to
9885         launch the thread.  Bug 31425 deadlocked when the test was run on
9886         mono under w32.
9887
9888 2002-10-01  Martin Baulig  <martin@gnome.org>
9889
9890         * debug-mono-symfile.c: Added support for properties.
9891
9892 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9893
9894         * reflection.c: unaligned store fix from Mark Crichton
9895         <crichton@gimp.org>.
9896
9897 2002-09-27  Martin Baulig  <martin@gnome.org>
9898
9899         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9900         New interncall.
9901
9902 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9903
9904         * assembly.h, assembly.c: use a sane API to hook into the assembly
9905         loading process instead of a useless special-purpouse hack
9906         (ngen needs a hook, too, for example).
9907
9908 2002-09-27  Dick Porter  <dick@ximian.com>
9909
9910         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9911         io-layer can set up some process handle info.  Not needed on w32,
9912         but doesn't hurt either.
9913
9914         * process.c: Pass the program name in the second parameter to
9915         CreateProcess, so the path is searched.  Include the working
9916         directory. Implemented process name, process enumeration, and some
9917         process detail internal calls.
9918         
9919         * icall.c: Added internal calls for process lookup, and some
9920         process details
9921
9922 2002-09-26  Martin Baulig  <martin@gnome.org>
9923
9924         * assembly.c (mono_install_open_assembly_hook): New global
9925         function to install a function to be invoked each time a new
9926         assembly is loaded.
9927         (mono_assembly_open): Run this callback function if set.
9928
9929         * debug-mono-symfile.c: Put back line numbers for the dynamic
9930         symbol file and also record the .il file as source file.  This
9931         allows us to install the temporary symbol file as `file.dbg' just
9932         like a compiler-generated one.
9933
9934 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9935
9936         * Corrected typo in gc.c (BOHEM vs BOEHM).
9937
9938 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9939
9940         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9941         GetProperties. Also avoid calling g_slist_length in GetProperties and
9942         GetMethods.
9943
9944 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9945
9946         * reflection.c: avoid unaligned stores (bug spotted by
9947         Mark Crichton  <crichton@gimp.org>).
9948
9949 2002-09-25  Martin Baulig  <martin@gnome.org>
9950
9951         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9952         instead of guint64 for addresses and added prologue/epilogue info.
9953
9954 2002-09-25  Martin Baulig  <martin@gnome.org>
9955
9956         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9957         store line number info.  For the dynamic symbol file, we only need
9958         to provide the JIT generated dynamic line number info for the dynamic
9959         symbol file.
9960
9961 2002-09-25  Martin Baulig  <martin@gnome.org>
9962
9963         * debug-mono-symfile.h: Incremented version number.
9964
9965 2002-09-24  Martin Baulig  <martin@gnome.org>
9966
9967         * class.c (mono_debugger_class_init_func): New global function
9968         pointer variable.
9969         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9970         call it.
9971
9972         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9973         function.  This is called via the mono_debugger_class_init_func
9974         hook to add all types to the dynamic type table.
9975         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9976         from its metadata token.
9977
9978         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9979         New interncall for the debugger.
9980
9981 2002-09-24  Nick Drochak <ndrochak@gol.com>
9982
9983         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9984         before using it in case it is null.
9985         
9986 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9987
9988         * metadata.c: allow custom modifiers in local var signatures
9989         (bug spotted by Zoltan Varga).
9990
9991 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
9992
9993         * class.c: deal with the <Module> class that may have a NULL vtable.
9994         Eliminate warnings.
9995
9996 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
9997
9998         * image.c, image.h: more strong name helpers.
9999         * monosn.c: more work: convert pem keys to cryptoapi format.
10000
10001 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10002
10003         * string-icalls.c: speedup IndexOf.
10004
10005 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10006
10007         * icall.c: updates from Zoltan.2.Varga@nokia.com.
10008
10009 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10010
10011         * icall.c: cleanup: use mono_object_domain ().
10012
10013 2002-09-23  Martin Baulig  <martin@gnome.org>
10014
10015         * debug-mono-symfile.c: Improved type support.
10016
10017 2002-09-22  Martin Baulig  <martin@gnome.org>
10018
10019         * debug-mono-symfile.c: Added support for reference types and strings.
10020
10021 2002-09-22  Martin Baulig  <martin@gnome.org>
10022
10023         * debug-mono-symfile.c: Started to work on the type table.
10024
10025 2002-09-21  Martin Baulig  <martin@gnome.org>
10026
10027         * debug-mono-symfile.c: Largely reworked the symbol table format.
10028         The symbol table is now incrementally updated each time a new
10029         method is added.  We're now also using our own magic and version
10030         so that you don't need to recompile all your classes if the
10031         dynamic table changes.
10032         (mono_debug_update_mono_symbol_file): Removed.
10033         (mono_debug_symfile_add_method): New function to add a method.
10034
10035 2002-09-21  Martin Baulig  <martin@gnome.org>
10036
10037         * icall.c
10038         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
10039         New interncall.
10040
10041         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
10042         New interncall to get a method from its metadata token.
10043
10044 2002-09-21  Martin Baulig  <martin@gnome.org>
10045
10046         * debug-mono-symfile.c: Create type table.
10047
10048 2002-09-20  Martin Baulig  <martin@gnome.org>
10049
10050         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
10051
10052 2002-09-20  Martin Baulig  <martin@gnome.org>
10053
10054         * debug-mono-symfile.c: Provide information about params and locals.
10055
10056 2002-09-20  Martin Baulig  <martin@gnome.org>
10057
10058         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
10059         New interncall.
10060
10061         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
10062         interncall to get a method from its metadata token.
10063
10064 2002-09-20  Martin Baulig  <martin@gnome.org>
10065
10066         * debug-mono-symfile.c: Added a few checks for method->header
10067         being non-NULL.  This should never happen, but for the moment
10068         let's use a g_warning() rather than a g_assert().
10069
10070 2002-09-19  Mark Crichton  <crichton@gimp.org>
10071
10072         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
10073         even if support for it isn't present.  Added an #ifdef to fix this.
10074
10075         * socket-io.c: Added checks back for Solaris support.
10076
10077 2002-09-19  Martin Baulig  <martin@gnome.org>
10078
10079         * debug-mono-symfile.c (read_string, write_string): Reflect latest
10080         changes in the symbol file format.
10081
10082 2002-09-18  Martin Baulig  <martin@gnome.org>
10083
10084         * debug-mono-symfile.c: Set version number to 21.
10085
10086 2002-09-18  Dick Porter  <dick@ximian.com>
10087
10088         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
10089         on netbsd.  Fixes bug 30051.
10090
10091 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10092
10093         * reflection.c:
10094         (set_version_from_string): little fix.
10095
10096 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10097
10098         * monosn.c, Makefile.am: added strong name utility.
10099         * reflection.h, reflection.c: implemented delayed signing,
10100         locale, version and hash id assembly attributes.
10101
10102 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10103
10104         * loader.c, metadata.c: load param attributes in signatures.
10105
10106 2002-09-16  Martin Baulig  <martin@gnome.org>
10107
10108         * debug-mono-symfile.c: Added string table with all method names.
10109
10110 2002-09-14  Martin Baulig  <martin@gnome.org>
10111
10112         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
10113         fast method lookup.
10114
10115 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10116
10117         * reflection.c: record the public key token of referenced assemblies.
10118
10119 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10120
10121         * image.c, image.h: added functions to get the strong name and the
10122         public key of an assembly.
10123         * pedump.c: use them.
10124
10125 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
10126
10127         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
10128
10129 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
10130
10131         * marshal.c (mono_marshal_get_managed_wrapper): Added
10132         MONO_TYPE_BOOLEAN 
10133
10134 2002-09-11  Martin Baulig  <martin@gnome.org>
10135
10136         * gc.c: Call GC_unregister_disappearing_link() on all links when
10137         finalizing them, this is necessary to aviod a crash in boehm's
10138         finalize handler.
10139
10140 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10141
10142         * gc.c: handle GetTarget for finalized objects spotted and fixed by
10143         nick@chemlab.org.
10144
10145 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10146
10147         * icall.c: implemented MonoType::Module.
10148         * reflection.c, reflection.h: mono_module_get_object () from
10149         Tomi Pakarinen <tomi.pakarinen@welho.com>.
10150
10151 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10152
10153         * icall.c: ignore overridden methods in GetMethods ().
10154         Fix for FieldInfo::SetValue().
10155         * object.c: handle float/double in runtime invoke.
10156
10157 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10158
10159         * object.c: allow a constructor to be called again on an object.
10160
10161 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10162
10163         * class.h, class.c: move field layout code to it's own function and
10164         export it. Get an interface id earlier. Move fields in MonoClass
10165         so they are more cache friendly and align the bitfields.
10166         * loader.c: temporary handle get_param_names() for a runtime method.
10167         * reflection.c, reflection.h: more code to handle runtime creation of
10168         types.
10169
10170 2002-09-09  Martin Baulig  <martin@gnome.org>
10171
10172         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
10173         signature with the pinvoke field being set for the actual call.
10174
10175 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10176
10177         * icall.c: removed some unused icalls. Start of map of glib charsets
10178         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
10179
10180 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10181
10182         * debug-helpers.c: break infinite loop (found and fixed by
10183         Holger Arnold <harnold@gmx.de>).
10184
10185 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10186
10187         * icall.c: target may be null in create_delegate.
10188
10189 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10190
10191         * marshal.c: handle a boolean return type.
10192
10193 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10194
10195         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10196
10197 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10198
10199         * gc.c: fix weakreferences.
10200
10201 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10202
10203         * icall.c: added icall to get default codepage.
10204
10205 2002-09-03  Dick Porter  <dick@ximian.com>
10206
10207         * threads.h: 
10208         * threads.c: Use MonoThread instead of MonoObject where
10209         apropriate.
10210
10211         Store running thread objects in a hash table, so that we have all
10212         the info to hand when waiting for them to finish
10213         (means we don't need OpenThread() any more, so mingw builds should
10214         be fully functional again.)
10215
10216         * verify.c:
10217         * object.h: Added thread ID to MonoThread
10218
10219 2002-09-03  Martin Baulig  <martin@gnome.org>
10220
10221         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10222
10223 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10224
10225         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10226
10227 2002-09-03  Martin Baulig  <martin@gnome.org>
10228
10229         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10230         argument to store the end address of the disassembled instruction.
10231
10232         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10233         here from debug-symfile.h.
10234         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10235         JIT into this struct.
10236         (MonoSymbolFile): Added `char *image_file' field.
10237         (MonoDebugGetMethodFunc): Removed.
10238         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10239         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10240         (mono_debug_find_method): New method.
10241
10242         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10243         create a full symbol file.
10244         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10245         and static symbol files.
10246         (mono_debug_find_method): The symbol file keeps an internal method hash,
10247         call this to get a MonoDebugMethodInfo from a MonoMethod.
10248
10249         * debug-symfile.[ch]: Removed.
10250
10251 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10252
10253         * image.c (do_mono_image_open): Remove linker version check.
10254
10255 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10256
10257         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10258         wrappers for instance methods.
10259         
10260 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10261
10262         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10263
10264 2002-08-28  Dick Porter  <dick@ximian.com>
10265
10266         * Makefile.am: Export HOST_CC for w32 builds
10267
10268 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10269
10270         * file-io.c process.c: MonoString are null terminated, no
10271         need for mono_string_to_utf16() anymore.
10272
10273 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10274
10275         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10276
10277 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10278
10279         * icall.c, reflection.h: speedup System.MonoType.
10280
10281 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10282
10283         * reflection.c: allow null as the value of a string argument in
10284         custom attributes constructors.
10285
10286 2002-08-27  Martin Baulig  <martin@gnome.org>
10287
10288         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10289         `trampoline_address' field.
10290
10291 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10292
10293         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10294         check (fixes bug #29486) 
10295
10296 2002-08-27  Martin Baulig  <martin@gnome.org>
10297
10298         * debug-mono-symfile.c: Changed the file format in a way that allows us
10299         open it read-only and to use a specially malloced area for all the
10300         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10301         debugging IL code and there is no MCS generated symbol file for it.
10302
10303 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10304
10305         * object.c: added a define for a good string and array
10306         creation speedup (not enabled by default because we need to deal with
10307         the synch stuff).
10308
10309 2002-08-26  Martin Baulig  <martin@gnome.org>
10310
10311         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10312         function to create a dynamic symbol file.  This is used by the
10313         debugger to create a symbol file for IL code on-the-fly.
10314
10315 2002-08-26  Martin Baulig  <martin@gnome.org>
10316
10317         * loader.c (mono_lookup_pinvoke_call): Include the error message
10318         from g_module_error() in the error message.
10319
10320 2002-08-24  Martin Baulig  <martin@gnome.org>
10321
10322         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10323         function to update the symbol file.  The symbol file is mmap()ed
10324         writable, but private.  This allows us to install the symbol file
10325         together with the assembly.
10326
10327 2002-08-24  Martin Baulig  <martin@gnome.org>
10328
10329         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10330         but they can read the new symbol file format which mcs is now creating.
10331
10332         * debug-symfile.c (mono_debug_find_source_location): Moved to
10333         debug-mono-symfile.c; this is now operating on the new symbol file.
10334
10335 2002-08-23  Martin Baulig  <martin@gnome.org>
10336
10337         * debug-helpers.c (mono_method_desc_from_method): New function to get
10338         a MonoMethodDesc from a MonoMethod.
10339
10340 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10341
10342         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10343         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10344
10345 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10346
10347         * string-icalls.[ch]: make helper methods static.
10348
10349 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10350
10351         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10352         types to it and to SetValueInternal.
10353
10354         * object.c: Moved handle_enum label to its proper place. This was the
10355         f... bug! ;-)
10356
10357         This time i compiled mcs and gtk-sharp and they both work.
10358
10359 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10360
10361         * icall.c: reverted partially my previous patch until 
10362         object.c:set_value handles enums correcly.
10363
10364 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10365
10366         * icall.c:
10367         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10368         (ves_icall_System_Environment_get_MachineName): removed warning when
10369         compiling under cygwin.
10370
10371 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10372
10373         * object.c: fixed field_get_value() for reference types.
10374
10375 2002-08-22  Dick Porter  <dick@ximian.com>
10376
10377         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10378         Don't free a buffer while it's still needed.  Patch from Jonathan
10379         Liger <Jonathan.liger@wanadoo.fr>
10380
10381 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10382
10383         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10384         internal call.
10385
10386 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10387
10388         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10389         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10390
10391         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10392         we call unmanaged code which throws exceptions.
10393
10394 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10395
10396         * appdomain.h: added per-domain entry_assembly.
10397         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10398         arguments.
10399         * icall.c: Assembly::GetEntryAssembly icall.
10400         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10401         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10402
10403 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10404
10405         * appdomain.h, gc.c: added mono_domain_finalize ().
10406
10407 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10408
10409         * object.c:
10410         (mono_print_unhandled_exception): changed g_warning by g_printerr
10411         because g_log has a 1024 characters limit (yeah, i got a big stack
10412         trace). Don't print exception name, that should be in ToString 
10413         returned string.
10414
10415 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10416
10417         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10418         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10419
10420 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10421
10422         * object.c:
10423         (mono_print_unhandled_exception): after previous commit, i realized
10424         that MS calls ToString on the exception. I changed this function to
10425         do that. This way we get stack_trace for free.
10426
10427 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10428
10429         * object.c:
10430         (mono_print_unhandled_exception): invoke Message property instead of
10431         getting 'message' field from Exception. Don't allocate memory for
10432         'trace' and 'message' if not needed.
10433
10434 2002-08-18  Dick Porter  <dick@ximian.com>
10435
10436         * unicode.c: Fix asserts to match Encoder.cs checks
10437
10438 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10439
10440         * marshal.c: fix unaligned store issue and a few wrong
10441         opcode argument types.
10442
10443 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10444
10445         * icall.c: added GetUninitializedObjectInternal internal call.
10446
10447 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10448
10449         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10450         to the right domain.
10451
10452 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10453
10454         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10455
10456         * class.c (class_compute_field_layout): set blittable to false for Strings
10457
10458         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10459
10460 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10461
10462         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10463         first chunk of code to create types at runtime. Code to
10464         handle ReflectedType/DeclaringType. Make reflection handles
10465         domain specific.
10466
10467 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10468
10469         * class.c: set correct name in arrays.
10470
10471 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10472
10473         * appdomain.c (mono_domain_transfer_object): make it work with
10474         valuetypes. bug fixes.
10475
10476 2002-08-12  Dick Porter  <dick@ximian.com>
10477
10478         * object.h: Rename some parameters to avoid c++ keywords (Patch
10479         from Joseph Wenninger <kde@jowenn.at>)
10480
10481 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10482
10483         * icall.c: added icall to implement Assembly.GetFile*.
10484
10485 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10486
10487         * reflection.h, reflection.c: code to embed managed resources.
10488
10489 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10490
10491         * class.c: move all the type size stuff into
10492         class_compute_field_layout().
10493
10494 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10495
10496         * class.c: ensure enums have always the correct instance size.
10497         * unicode.c: remove wrong assert.
10498
10499 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10500
10501         * assembly.c: fix mem corruption issue.
10502         * image.h, image.c: added mono_image_get_resource () to access
10503         managed resources.
10504         * icall.c: implemented Assembly.EntryPoint property and some
10505         Managed Resources related internalcalls.
10506
10507
10508 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10509
10510         * image.c, image.h: impemented mono_image_get_entry_point ().
10511         * appdomain.c: use mono_image_get_entry_point.
10512
10513 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10514
10515         * reflection.c: support the object type argument when loading
10516         custom attributes.
10517
10518 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10519
10520         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10521         String as return type.
10522
10523 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10524
10525         * reflection.c: fix encoding of named args for custom attrs to match
10526         the ms implementation. Read them back when instantiating custom
10527         attributes.
10528
10529 2002-08-02  Radek Doulik  <rodo@ximian.com>
10530
10531         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10532         by Dietmar as quick fix
10533         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10534         16 as stack size, used on more places as quick fix before Dietmar
10535         will fix it properly
10536
10537 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10538
10539         * object.h, object.c: added accessors for fields and properties.
10540
10541 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10542
10543         * class.c, class.h: made mono_class_get_field_from_name ()
10544         loop on parent types.
10545         Added mono_class_get_property_from_name ().
10546
10547 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10548
10549         * class.c, class.h: move the code to setup the type vtable in its own
10550         function so that it can be reused also for types created at runtime.
10551         Eliminate the "class" identifier from the header file.
10552         * reflection.c: setup the vtable for enums so that we can create
10553         objects for use in SetConstant ().
10554
10555 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10556
10557         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10558         instead of the delegate itself as this pointer (bug #28383)
10559
10560 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10561
10562         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10563         conversions.
10564
10565 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10566
10567         * loader.c: don't set the pinvoke bit on icalls.
10568
10569 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10570
10571         * debug-helpers.c (mono_method_full_name): only print a number to
10572         indicate wrapper type (so that the output is more readable in traces).
10573
10574 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10575
10576         * class.c (mono_class_init): include method override patch from Paolo
10577
10578 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10579
10580         * icall.c: fixed GetTypeCode().
10581
10582 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10583
10584         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10585         use real delegate invoke function to make it work with multicast
10586         delegates (fix bug# 28291).
10587
10588 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10589
10590         * object.c: load constant strings.
10591
10592 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10593
10594         * reflection.c: no magic numbers.
10595         * tabledefs.h: security action enum.
10596
10597 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10598
10599         * assembly.c: fix possible memory corruption.
10600
10601 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10602
10603         * reflection.h, reflection.c: added support for linking resources.
10604         * verify.c: check we have an updated corlib.
10605
10606 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10607
10608         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10609         string arrays.
10610         (mono_marshal_string_array): null terminate unmanaged string arrays.
10611         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10612
10613 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10614
10615         * icall.c: Type.GetType () can now return also types from the
10616         calling assembly.
10617
10618 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10619
10620         * loader.h, loader.c: stack walking support.
10621         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10622         GetCallingAssembly.
10623
10624 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10625
10626         * marshal.c: added optimisations for blittable types 
10627
10628         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10629         (mono_class_setup_mono_type): set blittable attribute for single
10630         and double.
10631
10632         * marshal.c (mono_string_utf8_to_builder): impl.
10633         (mono_string_builder_to_utf8): impl.
10634         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10635
10636 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10637
10638         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10639         (mono_marshal_get_managed_wrapper): impl. byref types
10640
10641 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10642
10643         * icall.c:
10644         (search_method): don't display debug message. 
10645
10646 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10647
10648         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10649
10650 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10651
10652         * appdomain.c: set the missing filename when throwing exception.
10653
10654 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10655
10656         * metadata.c (mono_type_size): code cleanup
10657         (mono_type_stack_size): removed some test code
10658
10659 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10660
10661         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10662         mono_get_exception_file_not_found now.
10663
10664         * exception.c (mono_exception_from_name_two_strings): New version
10665         that will call a constructor with two string arguments. 
10666         (mono_get_exception_file_not_found): New helper routine, used to
10667         report file-not-found errors.
10668
10669 2002-07-20  Dick Porter  <dick@ximian.com>
10670
10671         * process.h:
10672         * process.c: Pass file handles to CreateProcess
10673         
10674         * icall.c:
10675         * file-io.h:
10676         * file-io.c: Implemented CreatePipe
10677
10678 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10679
10680         * metadata.c (mono_get_param_info): set alignment for value types
10681
10682 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10683
10684         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10685         Constify mono_domain_assembly_open().
10686         * loader.c: handle null namespace in icalls.
10687
10688 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10689
10690         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10691         (emit_str_to_ptr_conv): marshal object as structs
10692
10693         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10694
10695         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10696
10697 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10698
10699         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10700         (mono_marshal_get_native_wrapper): we an now return value types
10701
10702 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10703
10704         * verify.c: more checks implemented.
10705
10706 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10707
10708         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10709         (fix bug #27695)
10710         (mono_marshal_get_native_wrapper): allow byref arguments
10711         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10712         impl. PtrToStringXXX methods
10713         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10714         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10715         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10716         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10717         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10718
10719 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10720
10721         * reflection.c: fix buglet in parsing an assembly name.
10722
10723 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10724
10725         * marshal.c (emit_ptr_to_str_conv): first impl.
10726
10727 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10728
10729         * object.c, class.h: cache the vtable in the class as suggested by
10730         vargaz@freemail.hu (Zoltan Varga).
10731
10732 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10733
10734         * class.h, loader.c: added mono_field_from_token().
10735         * verify.c: first cut of type checking code.
10736
10737 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10738
10739         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10740
10741 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10742
10743         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10744         (fix bug #27782)
10745         (mono_marshal_get_remoting_invoke): impl.
10746         (mono_delegate_begin_invoke): impl.
10747         (mono_mb_emit_save_args): impl.
10748         (mono_delegate_end_invoke): impl.
10749         (mono_marshal_get_delegate_begin_invoke):
10750         (mono_marshal_get_delegate_end_invoke):
10751         (mono_marshal_get_delegate_invoke): generate a special name for
10752         those methods (including the signature) and associate them whith
10753         the delegate class. 
10754
10755 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10756
10757         * reflection.[ch]: 
10758         (mono_reflection_type_from_name): now it has a MonoImage parameter
10759         which is used as the default image to search the type in. If the image
10760         is NULL or getting the type from it fails, it defaults to corlib.
10761
10762         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10763         new parameter.
10764
10765 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10766
10767         * reflection.c: update the parameter table index.
10768
10769 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10770
10771         * domain.c: don't include the mark byte in the string hash.
10772
10773 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10774
10775         * icall.cs: icall for Type.GetTypeCode ().
10776         * verify: a couple of fixes and disabled local initialization checks.
10777
10778 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10779
10780         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10781
10782         * debug-helpers.c (mono_method_full_name): print the type of the
10783         runtime wrapper
10784
10785         * metadata.c (mono_signature_hash): a hash function for signatures
10786         (mono_signature_hash): better hash algorithm
10787
10788         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10789
10790         * debug-helpers.c (mono_method_full_name): this can now generate
10791         method names with signatures
10792
10793         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10794         method dont have this pointers.
10795
10796 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10797
10798         * reflection.c: fixup typebuilder tokens.
10799         * image.c: fix buglet.
10800         * marshal.h: remove whitespace.
10801         * metadata.h, metadata.c: reinstate code that was removed.
10802         * verify.c: handle catch directives and fix another couple of bugs.
10803
10804 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10805
10806         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10807         (mono_marshal_get_native_wrapper): make it comp. with the old code
10808         (mono_marshal_get_native_wrapper): support boolean
10809         (mono_marshal_get_managed_wrapper): support more types
10810
10811 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10812
10813         * class.c (class_compute_field_layout): compute class->blittable attribute.
10814
10815 2002-07-09  Dick Porter  <dick@ximian.com>
10816
10817         * threads.c: Make the thread cleaning up cope with threads that
10818         call ExitThread()
10819
10820 2002-07-08  Radek Doulik  <rodo@ximian.com>
10821
10822         * reflection.c (method_encode_code): use non-translated values to
10823         compute finally_start, this fixes exception handling on ppc, yay!
10824
10825         * decimal.h (struct signscale): fix endianess
10826
10827 2002-07-07  Radek Doulik  <rodo@ximian.com>
10828
10829         * reflection.c: swap box_val and not val
10830
10831 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10832
10833         * reflection.c, reflection.h: handle full assembly info in type name.
10834         Handle Type arguments when loading custom attributes.
10835         * icall.c: updated to use new mono_reflection_type_from_name () method.
10836
10837 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10838
10839         * loader.c:
10840         (method_from_memberref): also print assembly name when method not found.
10841
10842 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10843
10844         * icall.c:
10845         (ves_icall_TypeGetProperties): fixed bug #27473. 
10846
10847 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10848
10849         * reflection.c: display image name and token when cannot find the
10850         .ctor for an attribute.
10851
10852 2002-07-05  Martin Baulig  <martin@gnome.org>
10853
10854         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10855
10856 2002-07-04  Dick Porter  <dick@ximian.com>
10857
10858         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10859         compile on mingw.  This will cause mingw builds to not wait for
10860         subthreads to terminate after the main thread does.  I've lodged a
10861         bug with the mingw developers for them to wrap OpenThread().
10862
10863 2002-07-03  Dick Porter  <dick@ximian.com>
10864
10865         * threads.c: Store thread IDs instead of handles, because
10866         GetCurrentThread() returns a pseudohandle and therefore stores
10867         useless values.  mono_thread_cleanup() continues checking the
10868         array of threads until it is empty, to cope with subthreads
10869         spawning new threads after the main thread has finished.
10870
10871         * profiler.h:
10872         * profiler.c:
10873         * profiler-private.h: Pass the thread ID to thread profiler
10874         functions, instead of a handle
10875
10876 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10877
10878         * verify.c: fixes to make it more usable.
10879         * pedump.c: added --verify code to verify IL code in an assembly.
10880
10881 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10882
10883         * reflection.c: turn errors into warnings to allow compiling corlib.
10884
10885 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10886
10887         * reflection.c: add special cases to compile corlib.
10888
10889 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10890
10891         * reflection.c: handle properties with only a set method.
10892
10893 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10894
10895         * opcodes.h: add enum with opcodes in opval order.
10896
10897 2002-07-01  Dick Porter  <dick@ximian.com>
10898         
10899         * object.h:
10900         * object.c (mono_runtime_run_main): Removed unneeded argument
10901
10902 2002-06-28  Martin Baulig  <martin@gnome.org>
10903
10904         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10905
10906 2002-06-27  Dick Porter  <dick@ximian.com>
10907
10908         * threads.c: Store the handle in both the parent thread and in the
10909         subthread, to minimise the time between starting a new thread and
10910         storing its ID.
10911
10912 2002-06-26  Dick Porter  <dick@ximian.com>
10913
10914         * appdomain.c (mono_runtime_cleanup): Close the socket library
10915         after all the threads have finished, not before
10916
10917 2002-06-26  Martin Baulig  <martin@gnome.org>
10918
10919         * debug-symfile.c (mono_debug_find_source_location): Added
10920         `guint32 *line_number' argument.  If it's not NULL, store the line number
10921         there and return the file name without the line number.
10922
10923 2002-06-25  Dick Porter  <dick@ximian.com>
10924
10925         * icall.c:
10926         * process.h:
10927         * process.c: Process forking and other support functions
10928
10929 2002-06-25  Dick Porter  <dick@ximian.com>
10930
10931         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10932         things dont happen when the image is closed.
10933         (mono_image_lookup_resource): Walk the resource section looking
10934         for a particular entry
10935
10936         * cil-coff.h: PE resource section decoding
10937
10938 2002-06-25  Dick Porter  <dick@ximian.com>
10939         
10940         * assembly.h:
10941         * assembly.c: 
10942         (mono_assembly_foreach): Accessor functions to walk the list of
10943         loaded assemblies
10944         (mono_assembly_set_main):
10945         (mono_assembly_get_main): Process methods need to know which
10946         assembly is the "main" one
10947
10948         * object.c (mono_runtime_run_main): Record the main assembly
10949
10950         * debug-helpers.c: Fix typo
10951
10952 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10953
10954         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10955         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10956
10957 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10958
10959         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10960
10961 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10962
10963         * image.c (do_mono_image_open): Initialize reference count,
10964         otherwise we leak the MonoImage.
10965
10966 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10967
10968         * reflection.c: small tweak to handle self-hosting.
10969
10970 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10971
10972         * reflection.c: fix type name parse code.
10973
10974 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10975
10976         * reflection.c: break out of the loop.
10977         * image.c: special case corlib.
10978
10979 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10980
10981         * reflection.c: add all the custom attrs at the end to ensure the
10982         ctors have been properly initialized when the attributes are defined
10983         in the current assembly.
10984
10985 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10986
10987         * reflection.c: handle correctly multiple-nested types.
10988
10989 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
10990
10991         * row-indexes.h: fix typos.
10992         * reflection.c: adjust for typos and fix method_def_or_ref
10993         encoding in MethodImpl table.
10994
10995 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
10996
10997         * reflection.c: fix entry point patching (thanks Serge!).
10998
10999 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
11000
11001         * verify.c: add check for System.Exception
11002
11003 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
11004
11005         * image.c, class.c: minifix for code just c&p'ed.
11006         * reflection.c: warning fix.
11007         * object.h, loader.h, domain.c: load also StringBuilder.
11008
11009 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11010
11011         * marshal.h, marshal.c: some support code to handle complex marshaling.
11012
11013 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11014
11015         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
11016         Better signatures with vtable error dump.
11017
11018 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
11019
11020         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
11021
11022 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
11023
11024         * icall.c (ves_icall_Type_GetField): impl.
11025
11026 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11027
11028         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
11029         to retrieve a marshal description blob for a field or param.
11030
11031 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11032
11033         * reflection.h, reflection.c: change order of nested type emission
11034         to avoid table corruption. The NestedTypes table is sorted.
11035         * icall.c: change order of GetConstructor results to workaround mcs bug.
11036
11037 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11038
11039         * reflection.h, reflection.c: handle field and param marshal
11040         information.
11041
11042 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11043
11044         * icall.c, marshal.c marshal.h: more Marshal class implementation.
11045
11046 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11047
11048         * reflection.c: fix call convention.
11049
11050 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11051
11052         * reflection.h, reflection.c: mono_image_get_memberref_token()
11053         takes a type instead of a class, now. Added
11054         mono_image_get_array_token() to create tokens for the special
11055         multi-dim array methods.
11056
11057 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11058
11059         * assembly.c: handle modules (no assembly table). Split
11060         loading references in its own function.
11061         * class.c: handle moduleref resolution scope.
11062         * image.c, image.h: cache module name in image.
11063
11064 2002-06-07  Martin Baulig  <martin@gnome.org>
11065
11066         * reflection.c (mono_image_get_type_info): Only add a class layout entry
11067         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
11068
11069 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11070
11071         * icall.c: more signature fixes that used uint instead of int.
11072
11073 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11074
11075         * reflection.c: fixed signature of field refs.
11076
11077 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11078
11079         * class.c, reflection.c: handle typerefs of nested types
11080         (both on read and when writing files).
11081
11082 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
11083
11084         * icall.c: fix method signatures that tried to workaround the previous
11085         typo, d'oh!
11086
11087 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11088
11089         * debug-helpers.c: fix typo.
11090
11091 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11092
11093         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
11094         rewrote the PE/COFF writing code (our programs are understood by the
11095         ms runtime, now).
11096
11097 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11098
11099         * gc.c, gc.h, icall.c: weakreference support.
11100
11101 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11102
11103         * Makefile.am, mono-config.c: use $(sysconfdir).
11104
11105 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11106
11107         * icall.c: changed default precision of Double.ToString() to 15.
11108         Fixed memory leak. Unified with Single.ToString.
11109
11110 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
11111
11112         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
11113
11114 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11115
11116         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
11117         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
11118         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
11119         and myself.
11120
11121 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11122
11123         * debug-symfile.c, sysmath.c: yet more compilation fixes.
11124
11125 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11126
11127         * reflection.c, socket-io.c: more compilation fixes.
11128
11129 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11130
11131         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
11132         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
11133         unicode.c: warning and compiler compatibility fixes.
11134
11135 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11136
11137         * class.h, metadata.c: fixed warnings/compilation errors.
11138
11139 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11140
11141         * Makefile.am, mono-config.c, mono-config.h: configuration file
11142         support routines.
11143         * loader.c, loader.h: make Dll mapping configurable at runtime in the
11144         config file. Export methods to insert and lookup mappings.
11145
11146 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11147
11148         * reflection.c: handle types and boxed objects in custom attr
11149         constructors.
11150
11151 2002-05-30  Martin Baulig  <martin@gnome.org>
11152
11153         * debug-symfile.c
11154         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
11155
11156 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
11157
11158         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
11159         to lookup the implmap row for a P/Invoke method.
11160         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
11161         P/Invoke method from the runtime on an as needed basis.
11162
11163 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
11164
11165         * metadata.c (mono_metadata_parse_signature): impl.
11166
11167 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11168
11169         * class.c: handle .pack directive.
11170
11171 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11172
11173         * object.c: initialize static fields with RVA data.
11174
11175 2002-05-25  Martin Baulig  <martin@gnome.org>
11176
11177         * debug-symfile.c
11178         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
11179
11180 2002-05-24  Martin Baulig  <martin@gnome.org>
11181
11182         * debug-symfile.c
11183         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
11184         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11185         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11186
11187 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11188
11189         * object.c: special case string ctros in invoke.
11190         * gc.c: silly whitespace changes.
11191
11192 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11193
11194         * threadpool.[ch]: impl. a threadpool that can
11195         be used by mint and mono.
11196
11197 2002-05-22  Martin Baulig  <martin@gnome.org>
11198
11199         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11200         The first argument is now a `MonoReflectionModuleBuilder *', the return
11201         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11202         `methods' field to get the method builder.  The `token' argument is the
11203         unfixed token.
11204
11205         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11206         invalid characters instead of g_assert_not_reached()ing.  This seems
11207         to be the behaviour of mscorlib.
11208
11209 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11210
11211         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11212         Hestilow to fix bug #25104
11213
11214 2002-05-21  Martin Baulig  <martin@gnome.org>
11215
11216         * debug-symfile.c (mono_debug_find_source_location): New function.
11217         Looks up an IL offset in the line number table and returns the source
11218         location as a string.
11219
11220 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11221
11222         * icall.c:
11223         (mono_double_ToStringImpl): changed %f by %g until we have something
11224         better.
11225
11226 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11227
11228         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11229         parameters first in C#.
11230
11231 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11232
11233         * icall.c, reflection.h: added icall to get info about an event.
11234
11235 2002-05-20  Radek Doulik  <rodo@ximian.com>
11236
11237         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11238         endian
11239         (mono_value_box): don't use memcpy for small sizes on
11240         architectures with unaligned access
11241
11242 2002-05-20  Martin Baulig  <martin@gnome.org>
11243
11244         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11245         if `tb->parent == NULL'.
11246         (mono_reflection_create_internal_class): New function.  This is
11247         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11248         for enum types.
11249
11250         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11251         New interncall.
11252
11253 2002-05-19  Martin Baulig  <martin@gnome.org>
11254
11255         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11256         argument to get the length, don't default to the array length.
11257
11258 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11259
11260         * assembly.c (mono_assembly_setrootdir): New function used to
11261         override the MONO_ASSEMBLIES directory.
11262
11263 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11264
11265         * icall.c: ValueType_GetHashCode() initialize local var.
11266
11267 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11268
11269         * reflection.c: sort custom attributes table.
11270
11271 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11272
11273         * reflection.c: support named args in custom attributes (write support).
11274
11275 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11276
11277         * reflection.c: fix finally position calculation.
11278
11279 2002-05-15  Radek Doulik  <rodo@ximian.com>
11280
11281         * reflection.c: fixed endianess at many places
11282
11283         * icall.c (ves_icall_InitializeArray): comment out debug msg
11284
11285 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11286
11287         * object.c (mono_unhandled_exception): new function to handle
11288         unhandled exceptions.
11289         (mono_unhandled_exception): call the UnhandledException event.
11290         (mono_runtime_delegate_invoke): impl.
11291
11292 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11293
11294         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11295         returns the RVA, not the direct pointer to the data. Handle the case
11296         when the class size is fixed.
11297
11298 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11299
11300         * reflection.c: fix some endianess issues.
11301
11302 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11303
11304         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11305
11306         * threads.c (mono_thread_init): added a callback which is invoked
11307         at thread start.
11308
11309 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11310         
11311         * icall.c: make GetHashCode return non-negative values.
11312
11313 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11314
11315         * object.c, icall.c, gc.c: revert to address-based hashcode.
11316
11317 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11318
11319         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11320
11321 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11322
11323         * icall.c, class.c: special case <Module>.
11324
11325 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11326
11327         * icall.c: fix bug in GetNow().
11328
11329 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11330
11331         * object.c (mono_runtime_class_init): make sure that we call all
11332         static class constructors.
11333
11334 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11335
11336         * reflection.c: sort methodsemantics table.
11337
11338 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11339
11340         * reflection.h, reflection.c: honour init locals setting.
11341
11342 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11343
11344         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11345
11346 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11347
11348         * reflection.c: support ContructorBuilders in attribute blob creation.
11349
11350 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11351
11352         * reflection.c: some changes to build a binary that can be run
11353         directly in windows.
11354
11355 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11356
11357         * loader.c: print a big message when an icall can't be found.
11358
11359 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11360
11361         * string-icalls.c: fix bug 24248.
11362
11363 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11364
11365         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11366         icall.c, reflection.h: separate assembly loading by pathname and by
11367         assembly name. Use the MONO_PATH env var to search for assemblies.
11368
11369 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11370
11371         * assembly.c, image.h: add some support for assemblies
11372         with multiple modules.
11373         * class.c, class.h: export mono_class_from_typeref().
11374         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11375         instead.
11376
11377 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11378
11379         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11380         documentation says (the ECMA one is correct).
11381
11382 2002-05-02  Dick Porter  <dick@ximian.com>
11383
11384         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11385         Don't name the synchronisation mutex.
11386
11387 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11388
11389         * rand.c
11390         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11391         Make the prototypes match.
11392         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11393         Same.
11394
11395         * icall.c
11396         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11397         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11398         all systems have tm.tm_zone, so use strftime() with %Z to print
11399         the timezone abreviation into a temp string.
11400
11401         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11402         rather than mono_array_addr() on a MonoString on Big Endian
11403         machines.
11404
11405 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11406
11407         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11408         fix bug 24041
11409
11410 2002-04-30  Dick Porter  <dick@ximian.com>
11411
11412         * socket-io.c: Cope with SOCKET being an integer rather than a
11413         pointer now.
11414
11415         * threads.c: Added Thread_free_internal, to deal with thread
11416         handle cleanup.  Moved calls to handle_store() and handle_remove()
11417         to start_wrapper(), so each can only be called once.  Allocate
11418         synchronisation blocks with GC_malloc(), and use GC finalisation
11419         to close the handles.
11420
11421         * icall.c: added System.Threading.Thread::Thread_free_internal
11422
11423 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11424
11425         * icall.c: support Environment.Exit, CommandLineArgs().
11426
11427 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11428
11429         * object.c, object.h: added mono_runtime_run_main () and
11430         mono_runtime_get_main_args () for use in System.Environment.
11431
11432 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11433
11434         * gc.c: fix thinko, enable actual finalization since the jit is now
11435         fixed.
11436
11437 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11438
11439         * gc.c, object.c: take into account that an object may be offset wrt the address
11440         returned by GC_malloc().
11441
11442 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11443
11444         * image.c: handle files without entries in the assembly table (modules).
11445
11446 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11447
11448         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11449         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11450         allowed to be null when it's System.Object class setup.
11451
11452 2002-04-27  Martin Baulig  <martin@gnome.org>
11453
11454         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11455         if `tb->parent == NULL' rather than crashing.
11456
11457 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11458
11459         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11460         calling acos() where asin() should have been called.
11461
11462 2002-04-26  Martin Baulig  <martin@gnome.org>
11463
11464         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11465         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11466         there's a subdirectory called `System', but we don't want to read that
11467         subdirectory as an assembly.
11468
11469 2002-04-25  Martin Baulig  <martin@gnome.org>
11470
11471         * debug-symfile.c: Reflect latest MonoString changes.
11472
11473 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11474
11475         * rand.c, rand.h: instance method icalls need to have an explicit
11476         this pointer as first argument in the C implementation.
11477
11478 2002-04-25  Nick Drochak <ndrochak@gol.com>
11479
11480         * icall.c: Fix typo in map for GetNonZeroBytes
11481
11482 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11483
11484         * string-icalls.c : String does now passes unit tests without any 
11485         errors, the following changes has been made:
11486         
11487         Implemented replace methods.
11488         Renaming of methods to (try) follow the standard.
11489         Fixed compare ordinal
11490         Made all memory allocated directly to function instead of via icall function.
11491         Small performance fix in is_in_array function
11492                         
11493  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11494
11495         c (mono_string_Internal_ctor_charp_int_int):
11496         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11497         sindex < 0, throw ArgumentOutOfRangeException instead of
11498         ArgumentNullException.
11499
11500         Added new check for length == 0, however
11501         I need to make it return String.Empty from the C code.
11502         
11503         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11504         that calculate the length for us here.
11505         
11506         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11507         mono_string_new_utf16 with mono_string_new, since value is utf8.
11508
11509 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11510
11511         * object.c: register the object for finalization if needed.
11512         Allocate one more char in the string for the terminating 0 char.
11513
11514 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11515
11516         * class.c, class.h, image.c: check if a type implemenst a destructor.
11517         Use the proper key for array class lookups.
11518         * icall.c: register the icalls in the System.GC class.
11519         * gc.c, gc.h: GC-related functions and icalls.
11520
11521 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11522
11523         * icall.c:
11524         * socket-io.c:
11525         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11526         changed a couple of free () by g_free ().
11527
11528         * decimal.c: one-liner in the comments for decimal2string ().
11529
11530 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11531
11532         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11533
11534 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11535
11536         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11537         * object.c (mono_runtime_invoke_array) : handle null in params
11538
11539 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11540
11541         * string-icalls.c: fixed bug in split (one off bug)
11542
11543 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11544
11545         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11546         * icalls.c: added String::Equals as internal method
11547
11548 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11549
11550         * threads.c: fixed bug in the double interlocked functions
11551
11552 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11553
11554         * threads.c: implemented all of the new interlocked icalls.
11555         * string-icalls.c: fix a bug in insert.
11556         * icalls.c: added the icalls for interlocked, removed old string functions.
11557         
11558 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11559
11560         * loader.c: fix off-by-one error when reading argument names.
11561
11562 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11563
11564         * profiler.c: win32 counter implementation (untested).
11565         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11566         (the latter needs testing and more complete impl. from win32 folks).
11567
11568 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11569
11570         * object.c: mono_array_new_full workaround mono_array_class_get
11571         problem.
11572
11573 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11574
11575         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11576         * object.h (mono_string_chars): Changed casting type.
11577
11578 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11579
11580         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11581                            method signatures to use gunichar2 instead of gint16.
11582
11583 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11584
11585         * object.h, object.c: domain-specific versions of mono_object_new and
11586         mono_array_new.
11587
11588 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11589
11590         * object.c: changed String layout
11591
11592         * string-icalls.c (mono_string_Internal_ctor_chara): added
11593         internal string constructors.
11594
11595 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11596
11597         * threads.c: pass 'this' to the thread start routine.
11598
11599 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11600
11601         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11602         InternalCompareStr don't call twice mono_string_cmp_char for the last
11603         character. Improved performance in mono_string_cmp_char.
11604
11605 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11606
11607         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11608         code into its own library: libmonoruntime.
11609
11610 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11611
11612         * object.h, object.c: changed array format so that szarrays do not
11613         require a bounds structure.
11614         * icall.c, appdomain.c: support for new szarray format.
11615
11616 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11617
11618         * metadata.c: compare also the retuns type when comparing signatures:
11619         we didn't do this as an optimization since really overloaded methods
11620         must differ also in the arguments, but this doesn't work with
11621         low-level IL code (or when using explicit conversion operators: see
11622         bug#23498 for an example).
11623
11624 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11625
11626         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11627
11628 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11629
11630         * icall.c: make MonoType::GetElementType its own icall.
11631
11632 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11633
11634         * icall.c: remove MonoMethod_get_Name().
11635         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11636         object.
11637
11638 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11639
11640         * string-icalls.c: optimized a few methods.
11641
11642 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11643
11644         * icall.c: added all new string internal calls
11645         * string-icalls.c: added, new string internal call implementation.
11646         * object.c: added mono_string_new_size for allocating a string a size
11647
11648 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11649
11650         * object.c (mono_object_isinst): use the same code as in the
11651         optimized x86 version.
11652
11653 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11654
11655         * profiler.c: TSC-based timer code (faster and more accurate).
11656         Not hooked up in configure, yet (set USE_X86TSC to 1).
11657
11658 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11659
11660         * profiler.c, profiler.h: track time spent compiling methods.
11661         * threads.c: track thread creation/destruction.
11662
11663 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11664
11665         * profiler.c, profiler.h, profiler-private.h: profiling interface
11666         and sample implementation. Moved here so that it can be used also by
11667         the jit.
11668
11669 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11670
11671         * reflection.c, reflection.h: keep types and other handles separate in
11672         the hash tables for referred tokens. Add guid for modules.
11673
11674 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11675
11676         * assembly.c: fix bugs found with valgrind.
11677         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11678
11679 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11680
11681         * threads: added icall support for getting current domain for
11682                    the thread.
11683  
11684 2002-04-13  Martin Baulig  <martin@gnome.org>
11685
11686         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11687         (MonoDebugVarInfo): Added `index' field for register based addresses.
11688         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11689         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11690         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11691         `MonoDebugVarInfo *this_var'.
11692
11693         * debug-symfile.c (relocate_variable): New static function to write
11694         a location description for a local variable or method parameter.
11695
11696 2002-04-12  Martin Baulig  <martin@gnome.org>
11697
11698         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11699         stack offset and begin/end scope address of a local variable.
11700         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11701         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11702         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11703
11704         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11705         Added new relocation types for start/end scope of a local variable.
11706
11707 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11708
11709         * object.h: add mono_object_domain() macro.
11710         * reflection.c: handle typespecs.
11711         * icall.c: MonoMethod::get_Name() implementation.
11712
11713 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11714
11715         * icall.c: String::GetHashCode() icall implementation.
11716
11717 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11718
11719         * icall.c: String::IndexOfAny icall.
11720         * object.c, object.h: make array->max_length more useful.
11721         Intrduced mono_object_class() and mono_string_length() macros.
11722
11723 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11724
11725         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11726         instead of g_unichar_isdigit.
11727
11728 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11729
11730         * icall.c: Implement a simple Double.ToString().
11731
11732 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11733
11734         * appdomain.h: only io-layer.h is supposed to be included.
11735         * icall.c: explicitly import environ. Fix warning.
11736
11737 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11738
11739         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11740                 return true even if it's not Daylight Savings time.
11741                 Only return false for the case where the function isn't
11742                 implemented for a plaform (read Windows).
11743
11744 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11745
11746         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11747         data with a mutex.
11748
11749 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11750
11751         * mempool.c (mono_mempool_alloc): only use g_malloc when
11752         absolutely necessary.
11753
11754 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11755
11756         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11757
11758         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11759         (mono_class_proxy_vtable): use domain mempool
11760
11761 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11762
11763         * appdomain.h, appdomain.c: split initialization that requires the
11764         execution engine support into mono_runtime_init().
11765
11766 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11767
11768         * class.c (mono_class_init): don't include vtable inside MonoClass
11769         to save some memory, gather some statistics.
11770         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11771
11772 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11773
11774         * icall.c: internalcall implementation for ValueType.Equals().
11775
11776 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11777
11778         * object.c (mono_message_init): moved 
11779         (mono_runtime_exec_main): new arch. independent impl.
11780         (mono_runtime_invoke_array): new method - like
11781         mono_runtime_invoke, but you can pass an array of objects.
11782         (mono_remoting_invoke): new arch. independent impl.
11783         (mono_message_invoke): new arch. independent impl.
11784         (mono_runtime_class_init): new arch. independent impl.
11785         (mono_runtime_object_init): new arch. independent impl.
11786
11787 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11788
11789         * metadata.c, object.c, reflection.c: documented the exported
11790         functions.
11791
11792 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11793
11794         * icall.c: simpler code to pass the assembly builder data to corlib.
11795         Implement GetNestedTypes() internalcall.
11796
11797 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11798
11799         * class.c: warn if a type can't be loaded.
11800
11801 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11802
11803         * image.h: typedef MonoImageOpenStatus
11804         * types.h: removed unused file
11805         
11806 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11807
11808         * icall.c: Enum_ToObject accepts enum value arguments.
11809
11810 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11811
11812         * class.c: move initialization of properties, events and nested
11813         classes, so that they happen for interfaces, too.
11814
11815 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11816
11817         * icall.c: cleanup some ugly casts in Array_SetValue*.
11818
11819 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11820
11821         * icall.c: the values array fro enums is of the correct type, now.
11822         Implement (correctly) getFullName instead of assQualifiedName for
11823         MonoType.
11824         * reflection.h, reflection.c: added mono_type_get_name ().
11825
11826 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11827
11828         * assembly.c, image.h: for each MonoImage, record from wich assembly
11829         it was loaded.
11830         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11831         Make Type.Assembly work.
11832
11833 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11834
11835         * debug-symfile.h: use char* instead of gpointer to avoid
11836         unnecessary casts.
11837
11838         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11839
11840         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11841         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11842
11843 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11844
11845         * icall.c (mono_message_init): impl. (code cleanup)
11846         (ves_icall_InternalExecute): impl. FieldGetter
11847
11848         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11849         defined we call all (non-static)methods through the vtable. 
11850
11851 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11852
11853         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11854         finalizer even though the memory is still referenced (and the chunk of
11855         memory is not freed).
11856
11857 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11858
11859         * assembly.c: fix brokeness.
11860
11861 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11862
11863         * class.c: kill some warnings. Check explicit interface method
11864         implementation also without considering the namespace.
11865         Load also literal strings in static class data.
11866
11867 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11868
11869         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11870         (default_assembly_name_resolver): Make the resolver take the
11871         "base" directory where the assembly was originally defined, so we
11872         can load DLLs that are in the same directory as the assembly that
11873         is being referenced.
11874
11875 2002-03-28  Dick Porter  <dick@ximian.com>
11876
11877         * file-io.h: 
11878         * file-io.c:
11879         * socket-io.c: 
11880         * unicode.h: 
11881         * unicode.c: Warning cleanups
11882
11883 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11884
11885         * object.h, reflection.h: use the correct type instead of MonoObject.
11886
11887 2002-03-28  Martin Baulig  <martin@gnome.org>
11888
11889         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11890         (mono_debug_update_symbol_file): Initialize classes if necessary.
11891
11892 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11893
11894         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11895         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11896
11897 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11898
11899         * assembly.h: fix function prototype.
11900         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11901         * mono-endian.h: use const cast.
11902
11903 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11904
11905         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11906
11907 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11908
11909         * loader.c: don't assert when a typeref can't be loaded, give
11910         a chance to the runtime to trow an exception instead.
11911         * loader.h: fix warning.
11912
11913 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11914
11915         * class.c (mono_class_proxy_vtable): added proxy support
11916
11917 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11918
11919         * icall.c: removed last of PAL calls, added System.Environment
11920         * file-io.h, file-io.c: MonoIO implementation
11921         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11922
11923 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11924
11925         * appdomain.c: do not use the byte marker in ldstr table lookup.
11926         * debug-helpers.c: allow two ':' to separate class and method name.
11927         * object.c: allocate arrays bounds with the GC, too.
11928         * verify: add a few more checks.
11929
11930 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11931
11932         * reflection.c: output also literal strings. Allocate parameter data
11933         with GC_malloc() (thanks, Martin, for catching this!).
11934
11935 2002-03-26  Martin Baulig  <martin@gnome.org>
11936
11937         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11938         include the `this' offset in the `param_offsets'.
11939
11940 2002-03-25  Martin Baulig  <martin@gnome.org>
11941
11942         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11943         mono_debug_get_class() function to get the classes. Added new
11944         relocation types for arrays and strings.
11945         (mono_debug_get_class): New static function to search in all
11946         referenced assemblies for a metadata token.
11947
11948         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11949
11950 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11951
11952         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11953         hold gc-allocated objects. Make the string heap a stream like the
11954         others. Removed duplicated code when writing stream info.
11955         Added asserts to catch possible buffer overflows. Set the sorted map
11956         for tables that need sorting. Added some documentation.
11957
11958 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11959
11960         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11961         for interned strings and vtables.
11962
11963 2002-03-24  Martin Baulig  <martin@gnome.org>
11964
11965         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11966         it in the array since it was created with g_slist_prepend().
11967
11968 2002-03-24  Martin Baulig  <martin@gnome.org>
11969
11970         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11971         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11972         (mono_debug_method_from_token): Renamed to
11973         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11974         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11975
11976         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11977         relocation types.
11978
11979         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11980
11981 2002-03-24  Martin Baulig  <martin@gnome.org>
11982
11983         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11984         (mono_debug_method_from_token): New func.
11985
11986         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11987         New interncall, calls mono_debug_local_type_from_signature().
11988         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
11989         calls mono_debug_method_from_token().
11990
11991 2002-03-23  Martin Baulig  <martin@gnome.org>
11992
11993         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
11994         specifies the number of bytes to be converted, not the array size.
11995         Return the number of chars, not the number of bytes.
11996         (ves_icall_iconv_get_chars): The `byteCount' argument
11997         specifies the number of bytes to be converted, not the array size.
11998
11999 2002-03-23  Martin Baulig  <martin@gnome.org>
12000
12001         * reflection.h (MonoReflectionSigHelper): New type.
12002
12003         * reflection.c (mono_reflection_sighelper_get_signature_local),
12004         (mono_reflection_sighelper_get_signature_local): New functions.
12005
12006         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
12007         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
12008         interncalls.
12009
12010 2002-03-23  Martin Baulig  <martin@gnome.org>
12011
12012         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
12013         is_writeable is set.
12014         (mono_raw_buffer_update): New function to write the modified map
12015         back to disk.
12016
12017         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
12018
12019         * debug-symfile.c (mono_debug_update_symbol_file): Call
12020         mono_raw_buffer_update() when done writing.
12021
12022 2002-03-23  Martin Baulig  <martin@gnome.org>
12023
12024         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
12025
12026         * debug-symfile.c: Added support for arguments and local variables.
12027
12028 2002-03-23  Dick Porter  <dick@ximian.com>
12029
12030         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
12031         protected by ifdefs, hence breaking the w32 build.
12032
12033 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12034
12035         * object.c: implement is_interned() the right way.
12036
12037 2002-03-21  Martin Baulig  <martin@gnome.org>
12038
12039         * debug-symfile.[ch]: New files to handle debugging information
12040         files. There's also support to dynamically update these symbol
12041         files to include machine dependent information.
12042
12043 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
12044
12045         * threads.c (mono_thread_create): new function to create thread
12046         from C
12047
12048 2002-03-20  Martin Baulig  <martin@gnome.org>
12049
12050         * icall.c (ves_icall_InternalInvoke): Create a new object if the
12051         method is a constructor.
12052         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
12053         points to ves_icall_InternalInvoke().
12054
12055 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
12056
12057         * file-io.c: Flush shouldn't throw exceptions.
12058
12059 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
12060
12061         * file-io.c: FileStream flush support; FileSetLength now
12062         restores file pointer.
12063
12064 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12065
12066         * class.c: set image for pointer classes.
12067
12068 2002/03/19  Nick Drochak <ndrochak@gol.com>
12069
12070         * sysmath.c: Forgot one.
12071
12072 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
12073
12074         * sysmath.c: Avoid redefining existing names.
12075
12076 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
12077
12078         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
12079         handled by runtime as icall rather than dllimport from libm.so
12080         * file-io.c, file-io.h: fixed handle argument type.
12081
12082 2002-03-18  Dick Porter  <dick@ximian.com>
12083
12084         * reflection.c (mono_image_get_type_info): rename interface to
12085         iface, because of "#define interface struct" on windows.
12086
12087 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
12088
12089         * class.c, class.h: rename and export mono_ptr_class_get().
12090         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
12091         * reflection.c, reflection.h, icall.c: better/saner type name
12092         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
12093         method signatures.
12094
12095 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
12096
12097         * class.c (mono_class_init): removed hardcoded GHC_SLOT
12098
12099         * icall.c (ves_icall_InternalInvoke): impl.
12100
12101 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12102
12103         * reflection.c: output the interface map table, too.
12104
12105 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12106
12107         * class.c (class_compute_field_layout): separate computation of 
12108         static field layout
12109
12110 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
12111
12112         * icall.c: added System.Buffer support.
12113         * file-io.c: moved file icalls from PAL to FileStream.
12114
12115 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12116
12117         * icall.c (ves_icall_System_Object_GetHashCode): impl.
12118
12119 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
12120
12121         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
12122
12123 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12124
12125         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
12126
12127 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12128
12129         * debug-helpers.{c,h}: moved here from monograph some useful functions
12130         to locate a method by name/signature in a class or image. Included
12131         also a small and flexible IL disassembler.
12132
12133 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12134
12135         * reflection.c: fixup tokens in methods with small header size, too.
12136
12137 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
12138
12139         * object.c (mono_string_to_utf8): remove assert(!error), instead
12140         print a warning. 
12141
12142 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
12143
12144         * icall.c: update to the new mono_Array_class_get interface.
12145
12146 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12147
12148         * appdomain.c, object.c: Boehm-GC enable.
12149         * icall.c: make get_data_chunk() support split data requests.
12150         Ensure a class is initialized in more cases. Return only the first
12151         property found in GetProperties() or the compiler gets confused. 
12152         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
12153         * reflection.h, reflection.c: add fixup mechanism for field and method
12154         tokens. Initialize assembly->typeref in a single place. Output
12155         properties after events. Support custom attributes for events, too.
12156         Typo fix for paramter custom attrs.
12157
12158 2002-03-07  Martin Baulig  <martin@gnome.org>
12159
12160         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
12161
12162 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
12163
12164         * class.c (mono_array_class_get): fix. for multi. dim. arrays
12165
12166 2002-03-06  Martin Baulig  <martin@gnome.org>
12167
12168         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
12169         non-zero lower bounds. See testcases #F10-#F13.
12170
12171 2002-03-05  Martin Baulig  <martin@gnome.org>
12172
12173         * exception.c (mono_get_exception_argument_out_of_range): New exception.
12174
12175         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
12176         ves_icall_System_Array_GetValue(), only calculate the absolute array position
12177         here.
12178         (ves_icall_System_Array_SetValue): Likewise.
12179         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
12180         as argument and does the actual work. This function is used when copying a
12181         multi-dimensional array.
12182         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
12183         now do all the widening conversions of value types.
12184         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12185
12186 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12187
12188         * class.c: remove some magic numbers and use the smbolic names,
12189         instead. Added init_events() to load event info at class init time.
12190         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12191         and mono_metadata_methods_from_event().
12192         * reflection.h, reflection.c: added support for writing out the evnets
12193         related information.
12194
12195 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12196
12197         * reflection.h, icall.c: use a different method (GetInterfaces)
12198         to gather interface info and add isbyref, isprimitive and
12199         ispointer to the ves_icall_get_type_info() return value.
12200
12201 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12202
12203         * class.h: stared adding support for events.
12204         * icall.c: split find_members implementation. Added debug icall to get
12205         the address of an object.
12206         * reflection.c: handle TypeBuilders in mono_type_get_object().
12207
12208 2002-03-01  Martin Baulig  <martin@gnome.org>
12209
12210         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12211         ArgumentOutOfRangeException(), not an ArgumentException().
12212         (ves_icall_System_Array_GetLowerBound): Likewise.
12213         (ves_icall_System_Array_GetValue): Improved argument checking.
12214         (ves_icall_System_Array_SetValue): Improved argument checking.
12215
12216 2002-03-01  Martin Baulig  <martin@gnome.org>
12217
12218         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12219         called with invalid arguments rather than just dying with g_assert().
12220         (ves_icall_System_Array_SetValue): Likewise.
12221         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12222         raise a NotImplementedException instead.
12223         (ves_icall_System_Array_GetLength): Added argument checking.
12224         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12225
12226 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12227
12228         * object.h (mono_assert): new macros mono_assert and
12229         mono_assert_not_reached
12230
12231 2002-02-28  Martin Baulig  <martin@gnome.org>
12232
12233         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12234         and "System::String::IsInterned" to "System::String::_IsInterned".
12235
12236 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12237
12238         * icall.c: remove hacks for typebuilder. Added icall to create a
12239         modified type from a tybebuilder.
12240         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12241         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12242         to create a backing MonoClass for a TypeBuilder.
12243
12244 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12245
12246         * class.c, class.h: more refactoring of class init.
12247         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12248
12249 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12250
12251         * marshal.c, marshal.h: start of marshaling interface.
12252
12253 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12254
12255         * icall.c: fix order in assembly qualified name icall.
12256
12257 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12258
12259         * class.c: do not free str, since we store it in the hash table.
12260         * reflection.h: add label field to MonoILExceptionInfo.
12261         * reflection.c: handle references to more than one assembly. Handle
12262         case when there isn't a module created in the assembly.
12263
12264 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12265
12266         * class.c: Fix typo. Start refactoring of class init code.
12267
12268 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12269
12270         * appdomain.c: exit with 1 on error.
12271         * class.c: we already have the name in MonoClassField.
12272         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12273         MonoStreamHeader instead of an offset of image->raw_metadata.
12274
12275 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12276
12277         * appdomain.c (mono_init): Be even more descriptive about the error.
12278
12279 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12280
12281         * appdomain.c: give the user an informative message when corlib can't
12282         be loaded.
12283
12284 2002-02-26  Martin Baulig  <martin@gnome.org>
12285
12286         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12287         New icall to get the time zone data.
12288
12289 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12290
12291         * reflection.c: set virtual and raw size of section correctly.
12292         * threads.c: transfer domain information to newly created threads.
12293
12294 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12295
12296         * class.c: when instancing a class in a domain, load the default
12297         vaules for static fields from the constant table. Fix System.Enum to
12298         not be an enum.
12299         * icall.c: implement Object::GetType() internalcall. Implemented
12300         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12301         Fixed checking of binding flags in find_members().
12302         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12303         * reflection.c: handle enumerations when writing to the constant
12304         table. Use a different object cache for types.
12305
12306
12307 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12308
12309         * object.c (mono_object_isinst): fix for arrays
12310
12311         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12312
12313 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12314
12315         * object.c: don't use mprotect ()  and fix intern pool hash table
12316         lookup for big endian systems.
12317
12318 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12319
12320         * icall.c: change type_is_subtype_of () signature.
12321
12322 2002-02-21  Mark Crichton  <crichton@gimp.org>
12323
12324         * rand.c, rand.h: Added random number generator for
12325         System.Security.Cryptography classes.
12326
12327         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12328
12329         * icall.c: Added System.Security.Cryptography calls.
12330
12331 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12332
12333         * class.c, icall.c, metadata.c: better support for pointer types.
12334         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12335         * reflection.c: Add support for getting custom attrs for properties
12336         and simplify some code.
12337
12338 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12339
12340         * icall.c: change getToken () and add custom attribute GetBlob()helper
12341         method.
12342         * reflection.h: add custom attrs array to the reflection builder structures.
12343         * reflection.c: encode and emit custom attributes for all the relevant
12344         reflection objects. Cache fieldref and methodref tokens. Change
12345         mono_image_create_token() interface to take a MonoDynamicAssembly.
12346         More complete custom attributes decoder. Load custom attributes for
12347         Assembly, Field, Method and Constructor objects, too. Make the
12348         returned array an Attribute[] one, not object[]. Added
12349         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12350         custom attribute constructor.
12351
12352 2002-02-20  Dick Porter  <dick@ximian.com>
12353
12354         * icall.c:
12355         * rawbuffer.c:
12356         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12357         problem code out for now).
12358
12359 2002-02-19  Radek Doulik  <rodo@ximian.com>
12360
12361         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12362
12363 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12364
12365         * icall.c: register the GetCustomAttributes method.
12366         * object.c, object.h: add mono_string_new_len ().
12367         * reflection.h, reflection.c: added mono_runtime_invoke(),
12368         mono_install_runtime_invoke(). Added
12369         mono_reflection_get_custom_attrs () to load custom attributes and
12370         create the attribute objects.
12371
12372 2002-02-19  Dick Porter  <dick@ximian.com>
12373         * threads-dummy-types.c:
12374         * threads-dummy-types.h:
12375         * threads-dummy.c:
12376         * threads-dummy.h:
12377         * threads-pthread-types.c:
12378         * threads-pthread-types.h:
12379         * threads-pthread.c:
12380         * threads-pthread.h:  Deleted obsolete files
12381
12382 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12383
12384         * class.c (mono_class_vtable): runtime init the class when we
12385         allocate static class data.
12386
12387         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12388
12389         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12390         and String - but we will need generic marshalling support in the
12391         future. 
12392         (mono_init): set the domain name in a ms compatible way
12393
12394         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12395         String[].
12396
12397 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12398
12399         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12400         for sizes
12401
12402         * appdomain.c (mono_domain_unload): impl.
12403
12404 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12405
12406         * appdomain.c, object.c: fix intern pool implementation.
12407         * class.c: fix alignment code.
12408
12409 2002-02-16  Radek Doulik  <rodo@ximian.com>
12410
12411         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12412         and s2 > s1, just copy lower bytes to be compatible with little
12413         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12414         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12415
12416         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12417         force big_endian to be 1 for big endian machines 
12418         (ves_icall_iconv_new_decoder): ditto
12419
12420 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12421
12422         * socket-io.c (convert_sockopt_level_and_name): If the system
12423         doesn't define SOL_IP or SOL_TCP, get them by hand using
12424         getprotobyname() and caching the values (because this could be a
12425         slow operation).
12426         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12427         Use the appropriate struct when the system does support it. Ie,
12428         not all systems have struct ip_mreqn so use struct ip_mreq when
12429         appropriate.
12430
12431 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12432
12433         * reflection.c: handle finally clauses.
12434
12435 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12436
12437         * socket-io.c: use g_snprintf() instead of snprintf.
12438
12439 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12440
12441         * reflection.c (mono_param_get_objects): Cast second argument to
12442         mono_method_get_param_names to a const char** to silence the
12443         compiler warning.
12444
12445         * appdomain.c (mono_domain_assembly_open): Put parens around the
12446         truth statement in the for-loop.
12447
12448         * unicode.c (iconv_convert): Got rid of a compiler warning about
12449         int i being unused when the system has a new iconv.
12450         (iconv_get_length): Same.
12451
12452         * image.c (load_class_names): Cast the second argument to
12453         g_hash_table_insert() to char* to hush compiler warnings about the
12454         arg being a const.
12455         (mono_image_open): Same here.
12456
12457         * socket-io.c: Don't conditionally include sys/filio.h or
12458         sys/sockio.h here anymore since we now get them from
12459         io-layer/io-layer.h
12460         (inet_pton): If the system doesn't support inet_aton, implement
12461         using inet_addr and also #define INADDR_NONE if it isn't defined
12462         by the system.
12463
12464 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12465
12466         * metadata.c, metadata.h: added function to get packing and size info
12467         of a typedef.
12468         * reflection.h, reflection.c: handle field RVA data. Save info about
12469         the table layout if needed. Assign typedef indexes to all the types
12470         before dumping the info about them to avoid forward reference problems.
12471
12472 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12473
12474         * socket-io.c (convert_sockopt_level_and_name): ifdef
12475         SO_ACCEPTCONN because it is not defined on my system (old debian)
12476
12477 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12478
12479         * opcode.c: use stddef.h to get NULL.
12480
12481 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12482
12483         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12484         for FIONBIO, FIONREAD and SIOCATMARK.
12485         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12486         define INADDR_NONE and besides, inet_addr() is deprecated and
12487         should not be used. Use inet_pton() instead - it also has the
12488         added bonus that it can easily handle IPv6 addresses as well.
12489         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12490
12491 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12492
12493         * decimal.c: remove _MSC_VER conditional.
12494
12495 2002-02-13  Dick Porter  <dick@ximian.com>
12496
12497         * socket-io.c: 
12498         * icall.c: Internal calls for Blocking, Select, Shutdown,
12499         GetSocketOption and SetSocketOption
12500
12501 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12502
12503         * assembly.cs: better resolver: use it instead of some kludgy
12504         code.
12505
12506 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12507
12508         * reflection.c: the best way to speed-up the compiler is to avoid
12509         infinite loops.
12510
12511 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12512
12513         * class.c (mono_class_vtable): changed the object layout
12514         (obj->vtable->class). 
12515         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12516
12517 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12518
12519         * assembly.c: look for assemblies in the assembly dir, too.
12520
12521 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12522
12523         * class.c: fix thinko in mono_class_from_type().
12524
12525 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12526
12527         * exception.h, exception.c: added TypeLoadException.
12528         * object.h, object.c: added mono_array_clone ().
12529         * icall.c: handle throwOnError in AssemblyGetType().
12530         Added Array.Clone().
12531         * opcode.h, opcode.c: use a single value for the opcode val.
12532         Compile fix for non-gcc compilers.
12533
12534 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12535
12536         * opcodes.c, opcodes.h: export interesting info about opcodes.
12537
12538 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12539
12540         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12541         icalls. 
12542
12543         * class.c (class_compute_field_layout): set element_class for enums
12544         (mono_class_create_from_typedef): set element_class for normal classes
12545
12546         * icall.c (ves_icall_System_Enum_get_value): impl.
12547
12548         * class.c (mono_class_create_from_typedef): do not set valuetype
12549         flag for System.ValueType and System.Enum
12550
12551 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12552
12553         * unicode.c (iconv_convert): fix big endian problem.
12554
12555 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12556
12557         * class.c: add asserts if we are ever going to scribble over memory.
12558         * socket-io.c: not all systems have AF_IRDA defined.
12559
12560 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12561
12562         * class.c (class_compute_field_layout): do not consider static
12563         fields to compute alignment
12564
12565 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12566
12567         * appdomain.c (mono_appdomain_get): impl.
12568         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12569
12570 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12571
12572         * icall.c: ignore "file://" prefix when loading an assembly.
12573
12574 2002-01-23  Dick Porter  <dick@ximian.com>
12575
12576         * socket-io.c:
12577         * icall.c:
12578         * Makefile.am: Added socket support
12579
12580 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12581
12582         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12583         code back.  This should return the assemblies that are loaded by
12584         the runtime on behalf of an application domain. 
12585
12586         The current implementation is still broken, it just returns every
12587         assembly loaded, but until we get real applications domain this
12588         will do.
12589
12590 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12591
12592         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12593         AppDomain object.
12594
12595 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12596
12597         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12598         the mono_class_from_name lookup.
12599         (ves_icall_get_parameter_info): ditto.
12600         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12601         method.
12602         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12603
12604 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12605
12606         * class.c: load also nested classes on class init.
12607         System.ValueType instance methods gets passed boxed
12608         values, unless methods in derived classed that get a pointer to the
12609         data.
12610         * icall.c: use better name parsing code in GetType().
12611         * image.c, image.h: add mono_image_loaded ().
12612         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12613         * reflection.c, reflection.h: added mono_reflection_parse_type().
12614
12615 2002-01-22  Veronica De Santis <veron78@interfree.it>
12616
12617         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12618         * threads.c : Added the implementation of internal calls for events
12619         * threads.h : Added prototypes of internal calls for events
12620         
12621 2002-01-21  Radek Doulik  <rodo@ximian.com>
12622
12623         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12624
12625 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12626
12627         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12628         (mono_class_value_size): use min_align
12629
12630 2002-01-20  Dick Porter  <dick@ximian.com>
12631
12632         * threads.h:
12633         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12634         so it compiles on w32.
12635
12636 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12637
12638         * metadata.c (mono_type_stack_size): impl.
12639
12640         * class.c (mono_class_get_field): impl. memberref token
12641
12642 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12643
12644         * icall.h : Added the internal calls mapping for CreateMutex_internal
12645                     and ReleaseMutex_internal.
12646         * threads.h : Added the prototype of mutexes internal calls.
12647         * threads.c : Added the implementations of mutexes internal calls.
12648
12649 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12650
12651         * metaparse.h: removed unused file.
12652         * reflection.c, reflection.h: added stream_data_align () function 
12653         to align data in streams and keep stream aligned. Add support for
12654         exception support in method headers.
12655
12656 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12657
12658         * unicode.c: make iconv_convert () return the number of bytess written
12659         in the output buffer.
12660
12661 2002-01-15  Dick Porter  <dick@ximian.com>
12662         * threads.c: Make the runtime's idea of infinite timeouts coincide
12663         with the class library's
12664
12665         Fix a particularly egregious bug in mono_thread_cleanup(). That
12666         code was so utterly bogus it must have been written on a Monday.
12667
12668 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12669
12670         * reflection.h: add subtypes field to TypeBuilder.
12671         * reflection.c: encode constants for literal fields.
12672         Handle subtypes. Fix user string token (and add a zero byte)
12673         at the end.
12674         
12675 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12676
12677         * class.c (mono_class_init): bug fix: assign slot numbers for
12678         abstract methods.
12679
12680 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12681
12682         * reflection.c: don't try to output a code RVA for abstract methods.
12683         Small fixes for method header format. Output parameter info to the
12684         ParamDef table. Save method overriding info to MethodImpl table.
12685         Fix property support. Allow typedef.extends to be a type in the
12686         building assembly.
12687         * verify.c: fix off-by-one error.
12688
12689 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12690
12691         * class.c: fix mono_class_from_mono_type () for szarray types.
12692         Remove unused cache check in mono_class_from_type_spec().
12693         * icall.c: *type_from_name () functions handle simple arrays and byref.
12694         * reflection.c: handle byref and szarray types. Handle methods without
12695         body (gets P/Invoke compilation working). Handle types and fields in
12696         get_token ().
12697         * reflection.h: add rank to MonoTypeInfo.
12698
12699 2002-01-10  Dick Porter  <dick@ximian.com>
12700
12701         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12702         internal calls
12703
12704 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12705
12706         * icall.c: initialize class in type_from_handle ().
12707         Loop also in parent classes for get_method ().
12708         * reflection.c: properly encode class and valuetype types.
12709         Start on encoding TypeBuilder types. Handle fieldrefs.
12710         Use correct length when registering a user string.
12711         Handle ConstructorBuilder and MonoMethod in get_token ().
12712         Make mono_type_get_object () aware of cached types.
12713         * object.c: back out change to mono_string_new ().
12714
12715 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12716         * object.c: mono_string_new should return a NULL when the string 
12717         passed in is NULL -- not try to deference it.
12718         
12719 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12720
12721         * icall.c: hack to make IsSubType work for TypeBuilders.
12722         * reflection.c: emit constructors before methods.
12723         Retrieve param names in mono_param_get_objects().
12724
12725 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12726
12727         * Makefile.am: fix list of headers and sources so automake 1.5
12728         doesn't complain. Removed \# at end of list.
12729
12730 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12731
12732         * reflection.c: get token for a method ref. Set return type of
12733         constructor to void.
12734         * loader.c: debug message.
12735         * class.c: typo fix.
12736
12737 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12738
12739         * icall.c: fix array init with rank > 1. FindMembers
12740         loops in parent class as well.
12741         * image.c: do not insert nested types in name cache.
12742         * reflection.c: warning fix.
12743         * reflection.h: add override method (for interface impl).
12744
12745 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12746
12747         * metadata.c: fix customattr decoding.
12748
12749 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12750
12751         * rawbuffer.cs: Added native Win32 implementation, avoids using
12752         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12753
12754 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12755
12756         * class.c: make the low-level routines handle the cache.
12757
12758 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12759
12760         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12761
12762 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12763
12764         * class.c: fix mono_array_element_size() for objects.
12765         * class.h, class.c: add properties to MonoClass and load them
12766         at init time.
12767         * icall.c: check with isinst() when assigning a value to an array
12768         instead of requiring the classes to match exactly.
12769         Implemented icall for System.Type::GetType().
12770         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12771         enums. Handle bindingflags when looking for methods and fields.
12772         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12773         and mono_metadata_methods_from_property().
12774         * reflection.h, reflection.c: added structures for propreties,
12775         parameters and enums. Implemented mono_property_get_object() and
12776         mono_param_get_objects().
12777
12778 2001-12-18  Dick Porter  <dick@ximian.com>
12779
12780         * file-io.c: Use mono_string_to_utf16() instead of
12781         mono_string_chars()
12782
12783         * object.c: Added mono_string_to_utf16(), which copies the non
12784         NULL-terminated MonoString into a new double-null-terminated
12785         buffer.
12786
12787 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12788
12789         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12790
12791 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12792
12793         * file-io.c: raise exceptions if handle is invalid.
12794
12795 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12796
12797         * assembly.c: yet another check for mscorlib.
12798         * class.c, class.h: load nesting info for classes.
12799         * icall.c: many new functions to support the Reflection classes.
12800         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12801         * reflection.h, reflection.c: mono_image_create_token(),
12802         mono_assembly_get_object(), mono_type_get_object(),
12803         mono_method_get_object(), mono_field_get_object(): methods to return
12804         objects that parallel the C representation of assemblies, types,
12805         methods, fields.
12806
12807 2001-12-11  Dick Porter  <dick@ximian.com>
12808
12809         * icall.c:
12810         * file-io.c: Internal calls for file IO.
12811
12812 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12813
12814         * tabledefs.h: missing FileAttributes.
12815         * verify.h, verify.c: use is_valid_string () to simplify and check for
12816         valid strings more correctly. Fix warnings and speeling.
12817         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12818         Check code: branches, maxstack, method calls.
12819
12820 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12821
12822         * object.c (mono_object_allocate): removed static, so that the jit
12823         can allocate value types.
12824
12825         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12826
12827 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12828
12829         * class.c: init enum types right away and register the
12830         token->MonoClass map in mono_class_create_from_typedef ().
12831         * verify.h, verify.c: first cut of the verifier.
12832         * pedump.c: add --verify switch to verify metadata tables.
12833         * tabledefs.h: add some missing enums.
12834
12835 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12836
12837         * class.c (mono_install_runtime_class_init): impl.
12838         (mono_class_init): renamed mono_class_metadata_init to
12839         mono_class_init, also removed the metadata_inited flag
12840
12841         * object.c (mono_object_isinst): use faster algorithm
12842
12843 2001-11-30  Radek Doulik  <rodo@ximian.com>
12844
12845         * mono-endian.h: reverted last change
12846         added function prototypes
12847
12848         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12849         add mono-endian.c back
12850
12851         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12852         for unaligned access, I've mistaked it with endianess. I am
12853         sorry.
12854         (mono_read16): fix reverted endianess
12855         (mono_read64): ditto
12856         (mono_read32): ditto
12857
12858 2001-11-30  Dick Porter  <dick@ximian.com>
12859
12860         * exception.c: Implement mono_exception_from_name()
12861
12862 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12863
12864         * metadata.h, metadata.c: remove params_size and locals_size and their
12865         calculation from the metadata code: they are only usefult to the
12866         interp.
12867
12868 2001-11-29  Radek Doulik  <rodo@ximian.com>
12869
12870         * object.c (mono_ldstr): swap bytes here, it's probably not the
12871         best place, but works for me now, I'll redo it once I know mono
12872         better, also note that I add PROT_WRITE and don't reset back, also
12873         note that it's only affects big endians, so x86 should be OK
12874
12875         * mono-endian.h (read16): use just glib macros for both endians
12876
12877         * mono-endian.c: removed as glib macros are used in in
12878         mono-endian.h so we don't need to care about endianess for read
12879         macros as glib does that for us already
12880
12881 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12882
12883         * class.h, class.h: take minimum alignment into consideration so
12884         that the fields of a class remain aligned also when in an array.
12885
12886 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12887
12888         * loader.h, loader.c: add mono_method_get_param_names().
12889         * class.c: 0-init class fields.
12890
12891 2001-11-26  Dick Porter  <dick@ximian.com>
12892
12893         * icall.c:
12894         * threads-types.h:
12895         * threads.c: New file that handles System.Threading on all platforms
12896
12897         * object.c: 
12898         * object.h: Remove the synchronisation struct from MonoObject,
12899         replace it with a pointer that gets initialised on demand
12900
12901         * Makefile.am: Replace all the system-specific threading code with
12902         a single file that uses the new wrapper library
12903
12904 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12905
12906         * class.c, class.h: add mono_install_trampoline() so that the runtime
12907         can register a function to create a trampoline: removes the ugly
12908         requirement that a runtime needed to export arch_create_jit_trampoline.
12909         * object.h, object.c: added mono_install_handler() so that the runtime
12910         can install an handler for exceptions generated in C code (with
12911         mono_raise_exception()). Added C struct for System.Delegate.
12912         * pedump.c: removed arch_create_jit_trampoline.
12913         * reflection.c: some cleanups to allow registering user strings and
12914         later getting a token for methodrefs and fieldrefs before the assembly
12915         is built.
12916         * row-indexes.h: updates and fixes from the new ECMA specs.
12917
12918 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12919
12920         * class.h, class.c: add enum_basetype field to MonoClass.
12921         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12922         to get index in the constant table reated to a field, param or
12923         property.
12924         * reflection.h, reflection.c: handle constructors. Set public-key and
12925         version number of the built assembly to 0.
12926         * row-indexes.h: update from new ECMA spec.
12927
12928 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12929
12930         * class.h, class.c: add a max_interface_id to MonoClass.
12931         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12932         since it's used to do that. Added mono_type_type_from_obj().
12933         Make GetType() return NULL instead of segfaulting if the type was not
12934         found. Handle simple arrays in assQualifiedName.
12935         * object.h: add a struct to represent an Exception.
12936         * reflection.c: output call convention in method signature.
12937         Add code to support P/Invoke methods and fixed offsets for fields.
12938
12939 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12940
12941         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12942         the value.
12943         * icall.c: use mono_array_addr instead of array->vector: fixes the
12944         reflection image writing.
12945         * reflection.c: init call convention byte to 0 in method signature.
12946         Encode the property signature. Don't output property-related methods
12947         twice. Really process the properties for a type (don't cast a field to
12948         a property, my mom always told me that).
12949         Fix 64 bit issues in pointer alignment in a different and more
12950         readable way.
12951
12952 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12953
12954         * loader.h: Removed type class from MonoDefaults, added monotype
12955
12956         * loader.c: Loaded MonoType, removed loading of Type
12957
12958         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12959         and fills in System.Type._impl with a RuntimeTypeHandle rather
12960         than the actual MonoClass *
12961
12962         (ves_icall_type_from_handle): change from type_class to
12963         monotype_class
12964
12965         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12966         implemented
12967
12968         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12969         implemented
12970
12971         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12972
12973         (ves_icall_System_Reflection_Assembly_GetType): implemented
12974
12975         (ves_icall_System_MonoType_assQualifiedName): implemented
12976
12977         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12978
12979 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12980
12981         * assembly.c (mono_assembly_open): Implement a cache for the
12982         assemblies. 
12983
12984         (mono_assembly_close): only destroy the assembly when the last
12985         reference is gone.
12986         
12987 2001-11-09  Dick Porter  <dick@ximian.com>
12988
12989         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
12990
12991 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
12992
12993         * class.c (mono_class_metadata_init): bug fix: compute the right slot
12994
12995 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12996
12997         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
12998         from Martin Weindel.
12999         * object.h: add mono_string_chars ().
13000
13001 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
13002
13003         * reflection.c (build_compressed_metadata): Eliminates warnings
13004         and uses 64-bit clean code.
13005
13006         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
13007         (mono_type_equal): Change signature to eliminate warnings.
13008
13009 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
13010
13011         * icall.c, loader.c: remove the internalcall array constructors.
13012         Changes to match the new MonoArray structure.
13013         * object.h, object.c: an array object doesn't allocate an extra
13014         vector. Add mono_array_new_full () to create jagged arrays easily.
13015
13016 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
13017
13018         * metadata.h, metadata.c: add mono_metadata_field_info () to
13019         retreive all the info about a field from vairous tables.
13020         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
13021         * class.h, class.c: augment MonoClassField with more info.
13022         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
13023         policy and load a field's RVA if needed.
13024
13025 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
13026
13027         * class.c (mono_class_metadata_init): create a trampoline for all
13028         virtual functions instead of actually compiling them.
13029
13030 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
13031
13032         * class.h, class.c: include name in MonoClassField.
13033         * class.c: fix fundamental type of System.Object and System.String.
13034         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
13035         tokens in ldtoken.
13036         * icall.c: remove internalcalls for the Reflection stuff that is now
13037         done in C# code.
13038         * loader.c: mono_field_from_memberref () implementation.
13039         * mono-endian.c: thinko (s/struct/union/g).
13040         * object.c, object.h: make the mono_string_* prototypes actually use
13041         MonoString instead of MonoObject.
13042         * reflection.c, reflection.h: updates for changes in the reflection
13043         code in corlib: we use C structures that map to the actual C# classes.
13044         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
13045         fat method header if needed and use the info from the ILGenerator for
13046         methods. Handle fields in types. Misc fixes.
13047
13048 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
13049
13050         * class.c (mono_class_metadata_init): bug fix: always allocate
13051         space for static class data
13052
13053 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
13054
13055         * class.c (mono_compute_relative_numbering): use relative
13056         numbering to support fast runtime type checks.
13057
13058 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
13059
13060         * class.c (mono_class_create_from_typeref): added debugging output
13061         to print class name when MonoDummy is returned instead of real class
13062
13063 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
13064
13065         * class.c (mono_class_metadata_init): interface offset table now
13066         contains pointers into the vtable - this is more efficient for the jit
13067
13068 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
13069
13070         * class.c (mono_class_metadata_init): use a temporary vtable (the
13071         old algorithm only worked for the interpreter, but not for the jit)
13072
13073 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
13074
13075         * loader.c (method_from_memberref): use mono_class_get to get the
13076         class of an array instead of using System.Array directly.
13077         (mono_get_method): also add MEMBERREF methods to the method cache
13078         which usefull for arrays.
13079
13080 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
13081
13082         * pedump.c (arch_compile_method): added to compute vtable entry
13083
13084         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
13085         number of interfaces.
13086         
13087         * class.h: merged MonoArrayClass into MonoClass
13088
13089         * class.c (mono_class_create_from_typedef): compute the vtable size and
13090         allocate space to include the vtable inside MonoClass
13091         (mono_class_metadata_init): initialize the vtable
13092
13093 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
13094
13095         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
13096         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
13097         * image.c: endian fixes by Laurent Rioux.
13098         * object.h, object.c: rename MonoStringObject to MonoString and
13099         MonoArrayObject to MonoArray. Change some function names to conform to
13100         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
13101         guint16* as first argument, so don't use char*.
13102         Provide macros to do the interesting things on arrays in a portable way.
13103         * threads-pthread.c: updates for the API changes and #include <sched.h>
13104         (required for sched_yield()).
13105         * icall.c: updates for the API changes above.
13106         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
13107         platforms that need them.
13108
13109 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13110
13111         * class.c: set the correct type for all the fundamental
13112         type when loading the class.
13113
13114 2001-10-05  Dick Porter  <dick@ximian.com>
13115
13116         * threads-pthread.c (pthread_mutex_timedlock): Simple
13117         compatibility version for C libraries that lack this call.
13118
13119 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13120
13121         * class.c: MonoTypes stored in MonoClass are stored as
13122         fundamental MonoTypes when the class represents a
13123         fundamental type (System.Int32, ...).
13124         The TypeHandle return by ldtoken is a MonoType*.
13125         * icall.c: ves_icall_get_data_chunk () write out all the
13126         PE/COFF stuff. Implement ves_icall_define_method (),
13127         ves_icall_set_method_body (), ves_icall_type_from_handle ().
13128         * image.c: properly skip unknown streams.
13129         * loader.h, loader.c: add type_class to mono_defaults.
13130         * metadata.c, metadata.h: export compute_size () as
13131         mono_metadata_compute_size () with a better interface.
13132         Typo and C&P fixes.
13133         * pedump.c: don't try to print the entry point RVA if there is no entry point.
13134         * reflection.c, reflection.h: many cleanups, fixes, output method
13135         signatures and headers, typedef and typeref info, compress the metadata
13136         tables, output all the heap streams, cli header etc.
13137         * row-indexes.h: typo fixes.
13138
13139 2001-10-04  Dick Porter  <dick@ximian.com>
13140
13141         * object.h: Add a synchronisation mutex struct to MonoObject
13142
13143         * object.c (mono_new_object): Initialise the object
13144         synchronisation mutexes
13145
13146         * icall.c: System.Threading.Monitor internal calls
13147         
13148         * threads-pthread.h:
13149         * threads-pthread.c: System.Threading.Monitor internal calls
13150
13151         * threads-types.h: New file, includes the system-specific thread
13152         structures
13153         
13154         * threads-pthread-types.h:
13155         * threads-pthread-types.c: New files, handle pthread-specific
13156         synchronisation types
13157
13158         * threads-dummy-types.h: 
13159         * threads-dummy-types.c: New files of dummy support for
13160         thread-specific types
13161
13162         * metadata.c:
13163         * image.c:
13164         * pedump.c: include mono-endian.h not endian.h
13165         
13166         * Makefile.am: More threads files.
13167         Name mono-endian.h not endian.h
13168
13169 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
13170
13171         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
13172         stuff and implement a few more bits.
13173         * icall.c: a field needs to be dereferenced twice. Do not use the same
13174         name for two variables in the same scope.
13175         * image.c, image.h: cleanups.
13176
13177 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
13178
13179         * class.c (mono_class_metadata_init): bug fix: compute the right size
13180
13181 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
13182
13183         * icall.c: implemented some of the Reflection internalcalls.
13184         * image.c, image.h: start writing out the PE/COFF image.
13185         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13186         that does the reverse than decode_blob_size ().
13187         * object.c: use mono_metadata_encode_value (). Move here
13188         temporary implementation of mono_string_to_utf8 ().
13189         * rawbuffer.c: make malloc_map static.
13190
13191 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13192
13193         * metadata.c: fix type comparison for arrays.
13194         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13195         Added a couple of new classes to monodefaults.
13196         * icall.c: added a couple of Reflection-related internalcalls.
13197         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13198         Added a byval_arg MonoType to MonoClass.
13199
13200 2001-09-28  Dick Porter  <dick@ximian.com>
13201
13202         * icall.c:
13203         * threads-pthread.h: 
13204         * threads-pthread.c: Implemented internal calls for
13205         LocalDataStoreSlot operations.  Applied mutexes around all shared
13206         data.  Reworked the thread creation and Start() operations to
13207         avoid a race condition.
13208         
13209         * threads-dummy.h:
13210         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13211
13212 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13213
13214         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13215
13216 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13217
13218         * class.c, loader.c: warn and return NULL instead of erroring out.
13219         * icall.c: added System.AppDomain::getCurDomain().
13220         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13221
13222 2001-09-25  Dick Porter  <dick@ximian.com>
13223
13224         * threads-pthread.h:
13225         * threads-pthread.c: Implemented timed thread joining and added
13226         System.Threading.Thread::Join_internal internal call
13227
13228         * icall.c: Added System.Threading.Thread::Join_internal internal call
13229
13230         * threads-dummy.h:
13231         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13232
13233 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13234
13235         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13236         mono_string_intern () to implement the semantics of the ldstr opcode
13237         and the interning of System.Strings.
13238         * icall.c: provide hooks to make String::IsIntern and String::Intern
13239         internalcalls.
13240
13241 2001-09-23  Dick Porter  <dick@ximian.com>
13242
13243         * threads-dummy.c: 
13244         * threads-dummy.h: New files of dummy threading routines
13245
13246         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13247         support code based on system specifics
13248
13249         Rename PTHREAD_LIBS to THREAD_LIBS
13250         
13251 2001-09-23  Dick Porter  <dick@ximian.com>
13252
13253         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13254         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13255         internal calls.
13256         (mono_thread_init): Set up a Thread object instance to return when
13257         the main thread calls Thread.CurrentThread
13258         (mono_thread_cleanup): Wait for all subthreads to exit
13259
13260         * icall.c: New internal calls for System.Threading.Thread::Sleep
13261         (including Schedule) and CurrentThread
13262
13263         * threads.h: New file, to insulate thread-specific stuff from the
13264         rest of the code
13265
13266 2001-09-21  Dick Porter  <dick@ximian.com>
13267
13268         * threads-pthread.h: 
13269         * threads-pthread.c: New file, for handling pthreads-style
13270         threading support.  Start() now starts a new thread and executes
13271         the ThreadStart delegate instance.
13272
13273         * icall.c: Added the internalcall for
13274         System.Threading.Thread::Start_internal
13275
13276         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13277
13278 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13279
13280         * loader.c: work around the different signatures for delegates
13281         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13282
13283 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13284
13285         * class.h, class.c: add mono_class_get_field_from_name ().
13286         * *: Fix C comments and other ANSI C issues.
13287
13288 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13289
13290         * endian.h, assembly.c: fix some endianness issues.
13291
13292 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13293
13294         * loader.h, load.c: add delegate_class to mono_defaults.
13295         Handle runtime provided methods in mono_get_method ().
13296
13297 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13298
13299         * loader.c (mono_get_method): use pinvoke for internal call
13300
13301         * icall.c: use pinvoke for internal call
13302
13303         * loader.c (method_from_memberref): set the method name
13304
13305 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13306
13307         * metadata.c: help the compiler generate better code for
13308         mono_class_from_mono_type ().
13309
13310 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13311
13312         * class.c (mono_class_metadata_init): delayed computing of the
13313         class size to mono_class_metadata_init ()
13314
13315 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13316
13317         * class.c, class.h: add an interfaces member to MonoClass.
13318         * image.c, image.h: add assembly_name field to MonoImage
13319         from the assembly table.
13320         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13321
13322 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13323
13324         * class.c: Handle Array in mono_class_from_mono_type ().
13325         * metadata.c, pedump.c: some endian fixes.
13326
13327 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13328
13329         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13330         * metadata.c: fix small problem introduced with the latest commit.
13331
13332 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13333
13334         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13335         We don't need a MonoMetadata pointer anymore to compare signatures in
13336         mono_metadata_signature_equal (), update callers.
13337         Reduced memory usage an number of allocations for MonoMethodHeader and
13338         MonoMethodSignature.
13339
13340 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13341
13342         * metadata.c: added compare for szarray.
13343
13344 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13345
13346         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13347         and add a couple more types to it and mono_defaults. Give an hint on
13348         classes that need implementing in our corlib and are referenced
13349         in mscorlib.
13350
13351 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13352
13353         * class.h, class.c: keep track if a class is also an Enum.
13354         * loader.c: Implement a couple more types for use in libffi
13355         marshalling. Gives better diagnostics when failing to dlopen
13356         a library. Set method->klass for P/Invoke methods, too.
13357
13358 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13359
13360         * class.c, class.h: add a MonoType this_arg to MonoClass that
13361         represents a pointer to an object of the class' type that
13362         can be used by the interpreter and later the type cache.
13363         Add best guess alignment info for valuetype objects.
13364
13365 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13366
13367         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13368         into MonoType: one less level of indirection and allocation and
13369         simplifies quite a bit of code. Added cache for MonoTypes that are
13370         used frequently, so that we don't need to allocate them all the time.
13371
13372 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13373
13374         * class.c (mono_class_create_from_typedef): System.Enum is also a
13375         value type, although it does not derive from System.ValueType
13376         (maybe a bug in the ms compiler?)
13377
13378         * metadata.c (mono_type_size): return the right size for value types
13379
13380         * loader.c (mono_get_method): only initialize method header if not abstract
13381
13382         * class.c (mono_class_from_mono_type): use mono_default values. 
13383
13384 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13385
13386         * *: use MonoClass pointers instead of <type_tokens>
13387         
13388         * class.h: new flag: metadata_inited.
13389
13390         * class.c (mono_class_metadata_init): impl.
13391         (mono_class_instance_size): impl.
13392         (mono_class_data_size): impl.
13393
13394 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13395
13396         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13397         MonoClass now has the name and name_space fields. 
13398         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13399         mono_get_method () takes and optional MonoClass as argument.
13400         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13401         instead that takes advantage of a map from class names to typedef
13402         tokens in MonoImage.
13403
13404 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13405
13406         * metadata.c: zero is not a valid alignment boundary.
13407         Merge MONO_TYPE_VOID in default decoding code.
13408
13409 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13410
13411         * image.h: merged MonoMetadata into MonoImage
13412
13413         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13414         identify the type of elements.
13415
13416 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13417
13418         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13419         * cil-coff.h: split MonoMSDOSHeader and add size info.
13420         * image.c: add some consistency checks.
13421         * metadata.c: fix row size computation: one programmer
13422         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13423         add explanation for the locator routine.
13424         Fix decoding of size in method header.
13425         
13426 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13427
13428         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13429         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13430         function from gnome-libs.  This uses the right path separator
13431         based on the OS, and also works around a bug in some systems where
13432         a double slash is not allowed. 
13433         (default_assembly_name_resolver): Use g_concat_dir_and_file
13434         (mono_assembly_open): ditto.
13435
13436 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13437
13438         * metadata.c (mono_metadata_signature_equal): impl.
13439
13440         * *: void is now a realy MonoType (instead of using NULL)
13441         
13442         * metadata.c (do_mono_metadata_parse_type): use
13443         mono_metadata_parse_type to parse void value.
13444
13445 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13446
13447         * metadata.c, metadata.h: in the signature and method header store
13448         only the space required for holding the loca vars and incoming arguments.
13449
13450 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13451
13452         * metadata.c (do_mono_metadata_parse_type): treat void like any
13453         other type (instead of assigning NULL);
13454
13455 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13456
13457         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13458
13459 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13460
13461         * image.c (do_mono_image_open): added a cache for arrays.
13462
13463 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13464
13465         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13466         decode a single column from a row in a metadata table and changes
13467         to take advantage of it in the typedef locator (gives a nice speed up).
13468         Store offset info for function params.
13469
13470 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13471
13472         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13473
13474 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13475
13476         * assembly.c: how could mono_assembly_close () had ever worked?
13477         * metadata.c, metadata.h: provide offset info for local vars.
13478         Implement mono_type_size () to take care of alignment as well
13479         as size (it was mono_field_type_size in cli/class.c before).
13480
13481 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13482
13483         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13484
13485         * assembly.h (CORLIB_NAME): set to corlib.dll
13486
13487         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13488
13489 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13490
13491         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13492         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13493         tokentype.h: massive namespace cleanup.
13494
13495 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13496
13497         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13498
13499 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13500
13501         * metadata.c (mono_metadata_free_type): added check for type !=
13502         NULL (void) before calling mono_metadata_free_type()
13503
13504 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13505
13506         * metadata.h, row_indexes.h: added header with enumerations to use
13507         to index in the columns from tables in metadata and to decode coded
13508         tokens: we should start using this instead of embedding magic numbers
13509         all over the code.
13510
13511 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13512
13513         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13514         Move metadata_t info from cli_image_info_t to MonoImage, where
13515         it's easily accessible. Changed all the uses accordingly.
13516         Added the method and class caches to MonoImage.
13517         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13518         and mono_metadata_decode_value () signature to be more consistent
13519         with the other parse functions (and simplify code). Taken advantage
13520         of zero-length array allocation with GCC. Removed reduntant (and
13521         wrong) MonoFieldType struct and use MonoParam instead. Changed
13522         mono_metadata_parse_field_type () to use common code for parsing.
13523         Added mono_metadata_typedef_from_field () and
13524         mono_metadata_typedef_from_method () to lookup a typedef index from a
13525         field or method token.
13526         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13527
13528 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13529
13530         * metadata.c (mono_metadata_parse_field_type): Implement. 
13531         (do_mono_metadata_parse_type): Split engine from
13532         mono_metadata_parse_type, so that we can create smaller structures
13533         for things that just have one pointer to the MonoType (look at
13534         the MonoFieldType)
13535
13536 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13537
13538         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13539         as Jan Gray found out, it is incorrect. 
13540
13541 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13542
13543         * assembly.c: Implement asssembly loading.  This loads an image
13544         and loads all the referenced assemblies.  Come to think of it, we
13545         could always do lazy loading of the assemblies. 
13546
13547         * image.c (mono_image_open): Keep loaded images in a hashtable.
13548
13549         * image.h (MonoImage): Add reference count.
13550
13551 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13552
13553         * assembly.c (mono_assembly_open): Keep track of the file name in
13554         case the assembly has no ASSEMBLY table.
13555
13556         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13557         from get.c here.
13558
13559 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13560
13561         * metadata.c, metadata.h: decode local vars in method header
13562         parse function. Change callers accordingly.
13563
13564 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13565
13566         * metadata.h, cil-coff.h: protect against multiple inclusion.
13567         Added some new structures to hold information decoded from metadata:
13568         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13569         and relevant decoding/free functions.
13570         * metadata.c: implement decoding functions. Add warning for out of bounds
13571         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13572         all the info about a method signature and invocation. Remove check on
13573         uninitialized local var in parse_mh() and fix memory leak.
13574
13575 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13576
13577         * metadata.h: More macros.
13578
13579         * tokentype.h: New file.
13580
13581 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13582
13583         * assembly.c: added a consistency check and initialize
13584         some structures with g_new0().
13585         * metadata.c: fixed a couple more bugs in table size computation
13586         and add other checks for out-of bound access to metadata.
13587
13588 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13589
13590         * metatada.c: fix bugs computing table sizes. Spew a
13591         warning when index in string heap is out of bounds.
13592
13593 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13594
13595         * metadata.h: Add a couple of macros to manipulate tokens. 
13596
13597 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13598
13599         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13600         cli_section_tables).
13601
13602 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13603
13604         * metadata.c (mono_metadata_user_string): New function, provides
13605         access to the UserString heap. 
13606
13607 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13608
13609         * metadata.c: Add inline documentation.
13610
13611 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13612
13613         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13614         files. 
13615
13616 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13617
13618         * typeattr.h: New file, TypeAttribute flags. 
13619
13620 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13621
13622         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13623         mono_assembly_ensure_section): Section loading code.
13624         (load_section_tables): Load the sections.
13625
13626         * mono/metadata/metadata.c (mono_metadata_locate_token,
13627         mono_metadata_locate): Functions to locate the information
13628         definition given a token or a table and an index.
13629         (mono_metadata_compute_table_bases): New.
13630         (compute_size): New function to compute the sizes of the various
13631         tables.
13632
13633         * mono/metadata/metadata.h: Finish listing the different index
13634         types. 
13635
13636         * mono/metadata/pedump.c: Improve to dump new information.
13637
13638 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13639
13640         * mono/metadata/metadata.c: Entered all the tables matching
13641         Beta2. 
13642
13643         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13644