Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
3
4         * gc.c: rework the gc handles code to reuse handles
5         when freed.
6
7 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8
9         * domain.c: fixed long standing bug in mono_string_equal() which
10         was brought to light with the ldstr changes.
11
12 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
13
14         * reflection.c: Remove warning by adding missing include for marshal.h
15
16 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
17
18         * domain.c, object.c: change the ldstr_table to hold
19         MonoString* as keys: makes the runtime isinterned lookup
20         faster and simplifies memory management.
21
22 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
23  
24         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
25         possible to add imperative security checks before calling the icall.
26         * reflection.c: Return security attributes on the original MonoMethod
27         (and not the wrapped one). This fix permissions on icalls.
28
29 2005-01-25  Dick Porter  <dick@ximian.com>
30
31         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
32         the check for mktime() support actually test the mktime() return
33         value.  "Fixes" bug 71682, though the output is still different to
34         MS.
35
36 2005-01-25  Martin Baulig  <martin@ximian.com>
37
38         * class.c (mono_class_is_assignable_from): Make this work for
39         generic instances.
40
41 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
42
43         * marshal.c (mono_string_utf8_to_builder)
44         (mono_string_builder_to_utf16): We might not have ownership of the
45         string. In thise case, we need to create a new buffer.
46
47         * object-internals.h (mono_stringbuilder_capacity): sb->str might
48         be null, in which case, use the default capacity.
49
50 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
51
52         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
53         GC events to the profiler.
54
55 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
56
57         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
58         if you don't want the GC to run.
59
60 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
61
62         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
63         start providing a GC API and keeping different implementations in
64         their own file.
65         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
66
67 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
68
69         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
70         mmap rather than allocating a huge buffer.
71         (mono_debug_close_mono_symbol_file): Free the buffer allocated
72         above.
73
74 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
75
76         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
77         and CheckExecutionRights.
78         * reflection.c|h: Keep the index of the declarative security to be 
79         used, instead of the pointer, when AOT compiler is used. Also add 
80         class initialization when requesting demands.
81         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
82         CheckExecutionRights. Both properties are now FALSE by default, and
83         unmodifiable, unless the --security option is used.
84
85 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
86
87         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
88         reflection.c: properly refcount images and assemblies, many leaks fixed.
89
90 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
91
92         * threadpool.c: increase the timeout for threads in the thread pool to
93         10s.  Fixes bug #67159.
94
95 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
96
97         * class-internals.h: Sun's compiler insists on explicit
98         signed on bit fields to handle then correctly.
99
100 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
101
102         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
103         Make the size of the array fit only the number of invalid path
104         chars that we have.
105
106         * class.c (_mono_class_get): Improve the error reporting when a
107         class referenced is not found, to assist debugging. 
108
109 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
110
111         * threads.c: fix off-by-one error.
112         * domain.c: free data allocated in the domain.
113
114 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
115
116         * reflection.c (mono_method_body_get_object): Fill out exception info
117         as well.
118
119         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
120         structure.
121         
122 2005-01-19  Martin Baulig  <martin@ximian.com>
123
124         * loader.c (mono_get_method_constrained): Make this work again.
125
126 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
127
128         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
129         guint16 to match the managed side.
130
131         * reflection.c (mono_reflection_body_get_object): Fill out local
132         variables array.
133
134         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
135         as well.
136
137         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
138         'local_var_sig_token'.
139
140 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
141
142         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
143         System.Drawing.
144
145         * reflection.c (mono_method_body_get_object): Handle abstract and
146         runtime methods.
147
148 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
149
150         * marshal.c, loader.c, class-internals.h, reflection.c:
151         store the emthod data for a wrapper in an array instead of a list.
152
153 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
154
155         * marshal.c: change the code to allocate memory more
156         conservatively for method wrappers.
157
158 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
159
160         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
161         fields from MonoClass to the marshal info structure where they belong.
162
163 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
164
165         * class.c, object.c, class-internals.h, marshal.c: rearrange
166         some fields and tweak some types to lower memory usage.
167
168 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
169
170         * threads.c (signal_thread_state_change): Handle the case when the
171         target thread is the current thread.
172
173         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
174
175         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
176         emit_ptr_to_object_conv. 
177
178         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
179         marshalling. Fixes #71352.
180
181 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
182
183         * metadata.h, blob.h: move table enum to blob.h so it can be included
184         in any header.
185         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
186         cut the size of MonoImage/MonoDynamicImage.
187
188 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
189
190         * profiler.c (mono_profiler_install_simple): Fix default arguments.
191
192 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
193
194         * reflection.c, reflection.h, icall.c: add a function to check
195         if an attribute type is defined for a metadata object.
196
197 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
198
199         * object-internals.h: Added some needed fields from StringBuilder class.
200         * marshal.c: Set the maxCapacity when creating a StringBuilder.
201
202 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
203
204         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
205         threads before shutting down the runtime.
206
207         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
208
209 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
210
211         * object-internal.h, threads.c: implement stacksize and 
212         parameterized thread start functionality (requires
213         matching corlib). Marked broken code for later removal.
214
215 2005-01-12  Martin Baulig  <martin@ximian.com>
216
217         * class-internals.h (MonoGenericClass): Moved the `initialized'
218         flag to MonoDynamicGenericClass, removed `init_pending'.
219         (MonoGenericInst): Added `is_reference' flag.
220
221 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
222
223         * reflection.c (mono_image_create_pefile): Only set the pe_offset
224         inside the MSDOS header. Fixes #71201.
225
226         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
227         gc thread.
228         (mono_domain_finalize): Ditto.
229
230 2005-01-12  Martin Baulig  <martin@ximian.com>
231
232         * class.c (mono_get_shared_generic_class): Use the cache for
233         non-dynamic generic classes.
234
235         * class-internals.h (mono_class_create_generic_2): Removed
236         function prototype, this function is now static inside class.c.
237
238         * class.c (mono_class_create_generic_2): Made this static, only
239         call it from mono_class_init() and mono_class_setup_parent().
240         (collect_implemented_interfaces_aux): Call mono_class_init() on
241         the interfaces we collect.
242         (mono_class_setup_vtable): Call mono_class_init (class->parent).
243
244 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
245
246         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
247         it a real thread handle.
248
249         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
250         MonoJitExceptionInfo, since each catch clause needs its own variable.
251         
252 2005-01-11  Dick Porter  <dick@ximian.com>
253
254         * image.c (mono_pe_file_open): New variant on mono_image_open()
255         that does not set up the CLI metadata; used for FileVersionInfo so
256         it can get the data for windows binaries too.
257         
258         * process.c (process_read_string_block): Don't read off the end of
259         the StringTable block.
260
261         These both fix bug 70766.
262
263 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
264
265         * gc.c: set some fields to NULL at GC cleanup time.
266         * threads.c: if we quit the main thread, call exit ().
267
268 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
269
270         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
271
272 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
273
274         * threads.h, threads.c, object.c: added accessor and settor for
275         main_thread. Handle it specially when exiting from it: wait
276         for other foreground threads to exit.
277
278 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
279
280         * process.c, verify.c: remove some bloat.
281
282 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
283
284         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
285         the calling convention to cdecl under win32.
286
287 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
288
289         * object.c (mono_object_get_size): New function to get the size of
290         an object instance.
291
292         * profiler.c (simple_allocation): Use above.
293
294 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
295
296         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
297         ves_icall_System_AppDomain_getRootDomain (as it's not required to
298         get an appdomain by it's id and we can't assume the root's id is 0).
299         * domain-internals.h: Change the function prototype to match.
300         * icall.c: Change the icall table for AppDomain.
301
302 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
303
304         * locales.c (string_invariant_compare_char): Only compute
305         GUnicodeTypes in the case where we need them.  Test for ordinality
306         first and return if so.
307
308         From the commit:
309
310                 /*
311                  * FIXME: here we must use the information from c1type and c2type
312                  * to find out the proper collation, even on the InvariantCulture, the
313                  * sorting is not done by computing the unicode values, but their
314                  * actual sort order.
315                  */
316
317 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
318
319         * loader.c: for P/Invoke methods, allow the "Internal" shared
320         library name to refer to the calling process symbol namespace.
321
322 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
323
324         * Makefile.am: Add the security manager to the build.
325         * security-manager.c|h: New. Initialization of the security manager.
326
327 2005-01-07  Dick Porter  <dick@ximian.com>
328
329         * threads.c: 
330         * monitor.c: Update thread state during Monitor and WaitHandle
331         waits.  Fixes bug 71031.
332
333 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
334
335         * reflection.c (property_encode_signature): Correctly handle when the
336         property has no methods.
337
338 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
339
340         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
341         
342         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
343         fields from mb, not rmb. Fixes #71017.
344
345         * marshal.c (emit_ptr_to_str_conv): Add support for 
346         ByValTStr -> string conversion. Fixes #71015.
347
348         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
349
350         * mempool.c (mono_mempool_contains_addr): New helper function.
351
352 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
353
354         * metadata.c (mono_metadata_compute_size): Fix size calculation of
355         HasSematics encoded fields.
356         
357         * metadata.c (mono_type_to_unmanaged): Improve error message for 
358         invalid string marshalling.
359
360         * metadata.c: Fix warnings.
361         
362 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
363
364         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
365         profiler support.
366
367 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
368
369         * domain.c object.c domain-internals.h: Revert part of r38077 since the
370         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
371         tests.
372
373 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
374
375         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
376         so methods containing these can be AOTed.
377
378 2005-01-03  Martin Baulig  <martin@ximian.com>
379
380         * loader.c (find_method): Removed the hack for generic instances.
381         (method_from_memberref): If our parent is a generic instance, pass
382         its generic type definition to find_method() and then inflate the
383         method.
384         (mono_get_method_constrained): Pass the generic type definition to
385         find_method() and inflate the method later.
386
387         * class-internals.h (MonoStats): Added `generic_class_count'.
388
389         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
390         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
391
392         * reflection.c (mono_custom_attrs_from_params): Don't ignore
393         generic type definitions.
394
395 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
396
397         * loader.c icall.c: Fix warnings.
398
399 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
400
401         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
402         blittable types. Fixes #70864.
403
404 2004-12-29  Martin Baulig  <martin@ximian.com>
405
406         * icall.c
407         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
408
409         * reflection.c (mono_method_get_object): Create a
410         "System.Reflection.MonoGenericMethod" for inflated methods; don't
411         call mono_get_inflated_method().
412
413         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
414
415 2004-12-27  Martin Baulig  <martin@ximian.com>
416
417         * class-internals.h (MonoMethod): Added `is_inflated' flag.
418         (MonoMethodInflated): Added `inflated' field.
419
420         * class.c (mono_class_inflate_generic_method): Don't really
421         inflate the method here; just set the `is_inflated' flag in the
422         MonoMethod.
423         (mono_class_get_inflated_method): Actually inflate the method here
424         if it's not already inflated; we use the MonoMethodInflated's new
425         `inflated' field as a cache.
426
427 2004-12-26  Martin Baulig  <martin@ximian.com>
428
429         * class.c
430         (inflate_generic_class): Moved some code out of inflate_generic_type().
431         (mono_class_inflate_generic_method): If we're already inflated,
432         inflate the context and use the declaring method; ie. make sure
433         the declaring method of an inflated method is always the generic
434         method definition.
435         (mono_class_create_from_typedef): Create
436         `class->generic_container->context->gclass'.
437
438 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
439
440         * metadata-internals.h, marshal.c, reflection.c: More
441         MonoGHashTable->GHashTable.
442
443         * domain-internals.h, class.c: Change MonoGHashTable's into
444         GHashTables for some cases where no gc stuff is used
445
446         All users: update apis
447
448 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
449
450         * metadata.c (builtin_types): Make this `const'. Makes this get
451         put into the shareable section.
452         (mono_metadata_init): Casts to make gcc happy.
453
454 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
455
456         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
457
458 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
459
460         * icall.c: Added an internal call to retrieve the position and length
461         of assembly-level declarative security attributes (RequestMinimum, 
462         RequestOptional and RequestRefuse). This is used by the Assembly class
463         to re-create the corresponding permission sets.
464
465 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
466
467         * marshal.c: fix the stelemref wrapper to be type correct
468         (and faster).
469
470 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
471
472         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
473         to do key & 0x7fffffff. Hashtable already does this. It just
474         results in longer code.
475
476 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
477
478         * appdomain.c: Bump corlib version.
479         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
480         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
481         * reflection.c|h: Add functions to get declarative security infos
482         (blob position and length) for assemblies, classes and methods.
483
484 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
485
486         * reflection.c: sort the constant table (bug #70693).
487
488 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
489
490         * object-internals.h, threads.c, domain.c: add accessors for
491         the MonoThread and MonoDomain tls keys.
492
493 2004-12-18  Martin Baulig  <martin@ximian.com>
494
495         * class.c (inflate_generic_type): If we're inflating a generic
496         instance, set `ngclass->context->container = context->container';
497         ie. the container we inflated into.
498
499         * metadata.c (mono_metadata_parse_generic_param): Reflect above
500         inflate_generic_type() changes.
501
502 2004-12-17  Martin Baulig  <martin@ximian.com>
503
504         * class-internals.h
505         (MonoGenericClass): Replaced `MonoType *generic_type' with
506         `MonoClass *generic_class'.  Removed `dynamic_info'; if
507         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
508         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
509
510 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
511
512         * exception.c (mono_exception_from_token): New helper function.
513
514 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
515
516         * assembly.c (mono_assembly_load_with_partial_name): Call 
517         mono_assembly_loaded before invoking the preload hooks. Fixes
518         #70564.
519
520         * object-internals.h (MonoThread): Change culture_info and 
521         ui_culture_info into an array.
522
523         * threads.c: Cache culture info objects from more than one appdomain.
524
525         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
526         current UI culture.
527
528 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
529
530         * threads.h threads.c appdomain.c: Clear the culture_info field of
531         all threads during unloading if they point to an object in the dying
532         appdomain.
533
534 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
535
536         * culture-info.h (TextInfoEntry): New struct
537         * object-internals.h: sync with managed
538         * locales.c: fill the `text_info_data' field
539         * culture-info-tables.h: update
540
541 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
542
543         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
544         collector.
545
546 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
547
548         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
549         (ves_icall_ModuleBuilder_getMethodToken): Ditto
550
551 2004-12-12  Martin Baulig  <martin@ximian.com>
552
553         * mono-debug-debugger.c (write_type): If we're an enum and the
554         builtin types have already been initialized, call mono_class_init().
555
556 2004-12-11  Martin Baulig  <martin@ximian.com>
557
558         * metadata.c (mono_metadata_load_generic_params): Added
559         `MonoGenericContainer *parent_container' argument; automatically
560         compute `container->is_method'; pass the correct owner to
561         get_constraints().      
562
563         * reflection.c (compare_genericparam): Sort the GenericParam table
564         according to increasing owners. 
565
566 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
567
568         * profiler.c: allow disabling the default profiler.
569
570 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
571
572         * decimal.c, icall.c: allow disabling System.Decimal support.
573
574 2004-12-09  Marek Safar <marek.safar@seznam.cz>
575
576         * reflection.c: Add support for null attribute arguments.
577
578 2004-12-09  Martin Baulig  <martin@ximian.com>
579
580         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
581         names to get rid of compiler warnings.
582
583 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
584
585         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
586         mono_marshal_load_type_info (). Fixes #69625.
587         (mono_marshal_get_ptr_to_struct): Likewise.
588
589 2004-12-08  Martin Baulig  <martin@ximian.com>
590
591         * mono-debug.h: Bumped version number to 47.
592
593         * mono-debug-debugger.c
594         (mono_debugger_event_handler, mono_debugger_event): Take two
595         guint64 arguments insteed of a gpointer and a guint32.  
596
597 2004-12-08  Martin Baulig  <martin@ximian.com>
598
599         * debug-mono-symfile.h
600         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
601         `address' to `native_offset'.
602
603 2004-12-08  Martin Baulig  <martin@ximian.com>
604
605         * class.c (mono_class_create_from_typespec): Only inflate if we
606         either have `context->gclass' or `context->gmethod'.
607
608 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
609
610         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
611
612         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
613
614         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
615
616         * reflection.c (mono_assembly_get_object): Remove the workaround put
617         in for the release.
618         
619         * appdomain.c: Use the corlib_internal field from MonoAssembly.
620
621         * appdomain.c: Bump corlib version.
622
623         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
624         be visible in other appdomains.
625
626 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
627
628         * threads.c: Interlocked inc and dec for longs were messed up,
629         use a KISS based impl for this. Fixes 70234
630
631 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
632
633         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
634
635 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
636
637         * icall.c: fix to follow policy not to allow struct
638         arguments in icalls.
639
640 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
641
642         * process.c: make the patch that handles spaces in file paths work
643         on mono/windows too.
644
645 2004-12-06  Martin Baulig  <martin@ximian.com>
646
647         * class.c (mono_class_create_generic): Call
648         mono_class_setup_supertypes() if we're dynamic.
649         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
650
651 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
652
653         * object-internals.h: Add new fields to MonoThread.
654
655         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
656
657         * icall.c threads-types.h threads.c: Add new icalls.
658
659         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
660
661         * object-internals.h (MonoReflectionAssembly): Sync object layout with
662         managed side.
663
664         * appdomain.c: Bump corlib version.
665
666         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
667         internal assemblies. Fixes #69181.
668
669 2004-12-05  Martin Baulig  <martin@ximian.com>
670
671         * class.c (mono_class_inflate_generic_signature): Make this a
672         no-op if `context' is NULL or we don't have any type parameters;
673         also copy `sentinelpos'.        
674
675 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
676
677         * image.c: Add unbox_wrapper_cache.
678
679         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
680
681         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
682         function generator.
683         
684         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
685         Fixes #70173.
686
687         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
688         
689 2004-12-04  Martin Baulig  <martin@ximian.com>
690
691         * loader.c (mono_method_get_signature_full): New public function;
692         like mono_method_get_signature(), but with an additional
693         `MonoGenericContext *' argument.
694
695         * class.c (mono_class_inflate_generic_signature): Formerly known
696         as inflate_generic_signature(); make this public.
697
698 2004-12-04  Martin Baulig  <martin@ximian.com>
699
700         * metadata.c
701         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
702         instead of a `MonoGenericContainer *'.  
703         (mono_metadata_parse_array_full): Likewise.
704         (mono_metadata_parse_signature_full): Likewise.
705         (mono_metadata_parse_method_signature_full): Likewise.
706         (mono_metadata_parse_generic_inst): Likewise.
707         (mono_metadata_parse_generic_param): Likewise.
708         (mono_metadata_parse_mh_full): Likewise.
709         (mono_type_create_from_typespec_full): Likewise.
710
711 2004-12-03  Martin Baulig  <martin@ximian.com>
712
713         * class-internals.h (MonoGenericContainer): Replaced the
714         `MonoGenericContext * pointer with a `MonoGenericContext'
715         structure and made it the first element.
716
717 2004-12-03  Martin Baulig  <martin@ximian.com>
718
719         * class.c
720         (inflate_generic_type): Set the `context->container' when creating
721         a new MonoGenericContext.
722         (mono_class_inflate_generic_method): Likewise.
723         (mono_class_create_from_typespec): Just use `context->container'
724         to get the container.
725
726         * loader.c (method_from_methodspec): Set `context->parent' from
727         `context->container' - and if that's a method container, use its
728         parent.  Also set the `context->container' when creating a new
729         MonoGenericContext.
730         (mono_get_method_from_token): Use just `context->container' to get
731         the container.
732
733         * metadata.c (do_mono_metadata_parse_generic_class): Also set
734         `gclass->context->container'.
735
736         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
737         the `context->container' when creating a new MonoGenericContext.
738
739 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
740
741         * reflection.c (compare_genericparam): Sort params with identical
742         owner by their number. Fixes gen-111 on sparc.
743
744 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
745
746         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
747         around the domain changes.
748
749         * appdomain.c (mono_domain_unload): Handle the case when the thread
750         calling Unload is itself being aborted during unloading. Fixes #70022.
751
752         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
753
754         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
755         checkpoint_func as an icall so it gets a wrapper.
756         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
757         in the cross-appdomain wrappers too.
758
759         * threads.c (mono_thread_has_appdomain_ref): Make this public.
760
761         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
762
763         * reflection.c: Fix some memory leaks.
764         
765 2004-12-02  Martin Baulig  <martin@ximian.com>
766
767         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
768
769         * metadata.c (generic_class_cache): New static hashtable.
770         (mono_metadata_lookup_generic_class): New public method.
771
772 2004-12-02  Martin Baulig  <martin@ximian.com>
773
774         * class.c (mono_class_create_from_typedef): Call
775         mono_class_setup_parent() and mono_class_create_mono_type() before
776         parsing the interfaces.
777
778 2004-12-02  Martin Baulig  <martin@ximian.com>
779
780         * metadata.c (generic_inst_cache): New static hashtable.
781         (mono_metadata_lookup_generic_inst): New public function.
782         (mono_metadata_inflate_generic_inst): New public function.
783         (mono_metadata_parse_generic_inst): New public function.
784         (do_mono_metadata_parse_generic_class): Use the new
785         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
786         since this'll also use the cache.
787
788         * reflection.c (mono_reflection_bind_generic_method_parameters):
789         Use mono_metadata_lookup_generic_inst() to use the new cache.
790
791         * class.c (inflate_mono_type): Use
792         mono_metadata_inflate_generic_inst() to inflate a generic
793         instance; this'll also use the new cache.
794
795         * loader.c (method_from_methodspec): Use
796         mono_metadata_parse_generic_inst() and
797         mono_metadata_inflate_generic_inst() rather than parsing it
798         manually, so we can use the new cache.
799
800 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
801
802         * threads.c (wait_for_tids): Do not incorrectly free threads when 
803         the wait times out.
804
805 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
806
807         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
808         iter->args based on whether parameters are passed in registers (i.e.
809         MONO_ARCH_REGPARMS is defined)
810
811 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
812
813         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
814         the exception message. Fixes #70070.
815         (method_from_methodspec): Fix warnings.
816
817 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
818
819         * process.c: (complete_path) return the path quoted
820
821 2004-12-01  Martin Baulig  <martin@ximian.com>
822
823         * class-internals.h (MonoGenericInst): New structure.
824         (MonoGenericClass): Replaced `type_argc', `type_argv' and
825         `is_open' with `MonoGenericInst *inst'.
826         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
827         `is_open' with `MonoGenericInst *inst'.
828
829 2004-11-30  Martin Baulig  <martin@ximian.com>
830
831         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
832
833         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
834         to `generic_class_cache'.
835
836         * metadata.c
837         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
838         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
839         (mono_generic_inst_is_valuetype): Renamed to
840         mono_generic_class_is_valuetype().
841
842         * class-internals.h
843         (MonoGenericInst): Renamed to MonoGenericClass.
844         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
845         (MonoClass): Renamed `generic_inst' to `generic_class'.
846         (MonoGenericContext): Renamed `ginst' to `gclass'.
847
848         * object-internals.h
849         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
850
851         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
852         mono_reflection_generic_class_initialize().
853
854         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
855         now known as "System.Reflection.MonoGenericClass".
856         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
857
858 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
859
860         * class-internals.h: Added a flag field to MonoClass to cache the
861         declarative security attributes actions associated with the class.
862         * domain-internals.h: Added booleans to MonoJitInfo to cache the
863         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
864         applicable to the JITted method.
865         * reflection.c|h: Added functions to extract (as flags) which security
866         actions are available (declaratively) for a method, class or assembly.
867         * metadata.c|h: Added functions to search the declarative security
868         table in the metadata.
869         
870 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
871
872         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
873         EXPORTEDTYPES are already in the class name cache, so there is no
874         need to add extra code here to look at them. Just removes a bit of
875         cruft.
876
877         (ves_icall_System_Environment_get_TickCount): No need for #if
878         WINDOWS. We already have the code in io-layer.
879
880 2004-11-28  Martin Baulig  <martin@ximian.com>
881
882         * loader.c
883         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
884         Fixes gen-112.cs.
885
886 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
887
888         * assembly.c (do_mono_assembly_open): Instead of having a
889         conditional WITH_BUNDLE, incorporate support for bundles here, by
890         having a global `bundles' variable holding a pointer to the actual
891         bundles. 
892
893         (mono_register_bundled_assemblies): New API call used by the
894         bundle code. 
895
896         See mkbundle.1 for details.
897         
898 2004-11-27  Martin Baulig  <martin@ximian.com>
899
900         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
901         the vtable for generic methods.
902
903 2004-11-26  Martin Baulig  <martin@ximian.com>
904
905         * metadata.c
906         (mono_metadata_generic_method_hash): New public function.
907         (mono_metadata_generic_method_equal): Likewise.
908
909         * class-internals.h
910         (MonoGenericContainer): Added `GHashTable *method_hash'.
911
912         * reflection.c (ReflectionMethodBuilder): Added
913         `MonoGenericContainer *generic_container'.
914         (reflection_methodbuilder_to_mono_method): Don't create a new
915         MonoGenericContainer each time we're called.
916         (mono_reflection_bind_generic_method_parameters): Use
917         `container->method_hash' to cache the results so we don't create a
918         different method if we're called several times with the same
919         arguments.
920
921         * loader.c (method_from_methodspec): Use the new
922         `container->method_hash' here, too.
923
924 2004-11-26  Martin Baulig  <martin@ximian.com>
925
926         * class.c (inflate_generic_signature): Correctly compute
927         `res->has_type_parameters'.
928         (mono_class_vtable): Use the `has_type_parameters' flag to
929         determine whether we're a generic method.
930
931         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
932
933 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
934
935         * object.c (mono_runtime_run_main): Fix a small memory leak.
936
937 2004-11-25  Martin Baulig  <martin@ximian.com>
938
939         * class.c (set_generic_param_owner): Fixed the loop.
940
941 2004-11-25  Martin Baulig  <martin@ximian.com>
942
943         * object.c (mono_class_vtable): Don't create any JIT wrappers for
944         generic methods.
945
946 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
947
948         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
949         names. Fixes #69787.
950
951 2004-11-24  Martin Baulig  <martin@ximian.com>
952
953         * class.c (mono_class_create_generic_2): If we don't have a
954         `ginst->parent', inflate `gklass->parent' to get our parent.
955
956 2004-11-24  Martin Baulig  <martin@ximian.com>
957
958         * reflection.c (compare_genericparam): Correctly sort the
959         GenericParam table; fixes #69779.
960
961 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
962
963         * reflection.c: When writing a PE file, don't create a huge
964         buffer in memory. Just write the arrays we have to the file.
965         This reduces memory usage.
966
967         * metadata-internals.h: MonoDynamicStream pefile is no longer used
968         globally.
969
970 2004-11-17  Martin Baulig  <martin@ximian.com>
971
972         * class.c (mono_class_init): Don't setup `class->parent' for
973         dynamic instances; moved this to mono_class_generic_2().
974         (mono_class_create_generic): Also set `klass->inited' for dynamic
975         generic instances.
976         (mono_class_create_generic_2): Don't do anything for dynamic
977         generic instances.  Set `klass->parent' here and also call
978         mono_class_setup_parent() here. 
979
980         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
981         `MonoType *parent' argument; set `ginst->parent' before calling
982         mono_class_create_generic_2(), so we set the correct parent.
983
984 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
985
986         * reflection.c: allow getting attributes from ModuleBuilder
987         (used by ikvm).
988
989 2004-11-17  Martin Baulig  <martin@ximian.com>
990
991         * class.c (mono_class_create_from_typedef): If a type parameter is
992         inherited from an outer class, set its owner to that class.
993
994 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
995
996         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
997           for (int*) written size. This fixes bug #69592.
998
999 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
1000
1001         * icall.c: Added IsAuthenticodePresnet internal call.
1002         * image.c|h: New function that check a MonoImage for an Authenticode
1003         signature in the certificate PE data directory.
1004         * security.c|h: New internal call to ask the runtime if an 
1005         Authenticode signature seems referenced in the PE header.
1006
1007 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
1008
1009         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
1010
1011         * reflection.c (mono_image_create_pefile): Free the assembly streams
1012         after writing out the assembly file.
1013
1014         * object.c (mono_runtime_run_main): Fix small memory leak.
1015
1016         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
1017         property access modifiers. Fixes #69389.
1018
1019 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
1020
1021         * domain.c, object.c, object-internals.h, domain-internals.h,
1022         object.h, marshal.c: keep dynamic code info per domain.
1023
1024 2004-11-15  Martin Baulig  <martin@ximian.com>
1025
1026         * class.c (mono_type_get_name_recurse): Put type arguments in
1027         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
1028         see bug #68387.
1029
1030 2004-11-15  Martin Baulig  <martin@ximian.com>
1031
1032         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
1033         (mono_class_setup_vtable): When computing `the_cname' for a
1034         generic instance, don't include the namespace since we'd otherwise
1035         add it twice.
1036
1037 2004-11-15  Martin Baulig  <martin@ximian.com>
1038
1039         * class.c (mono_class_create_generic): Changed return type to void.
1040         (mono_class_create_generic_2): New public function; setup
1041         `class->method', `class->field' and `class->interfaces' here
1042         instead of in mono_class_init().
1043
1044         * class.h (mono_class_create_generic): Moved to class-internals.h.
1045
1046 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
1047
1048         * reflection.c (mono_image_create_pefile): take a file HANDLE.
1049         rather than writing to memory, write to this file. Right now,
1050         we are just writting into a buffer, and copying that. However
1051         we can avoid the buffer later.
1052
1053         (mono_dynamic_stream_reset): new function
1054
1055         * icall.c, object-internals.h: update for the above.
1056
1057 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
1058
1059         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
1060         have been using gc'd memory. First it is slower, unlikely
1061         the comment in the source code said, secondly, it increases
1062         our footprint to do it in the gc.
1063
1064         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
1065         the method so that it does not have to copy to managed code.
1066
1067 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
1068
1069         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
1070
1071 2004-11-12  Martin Baulig  <martin@localhost>
1072
1073         * reflection.c (mono_image_create_token): Allow generic method
1074         definitions here, since they may appear in an `.override'; see
1075         gen-98/gen-99 for an example.
1076
1077 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
1078
1079         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
1080         #69365.
1081
1082         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
1083         descriptive.
1084
1085 2004-11-11  Martin Baulig  <martin@ximian.com>
1086
1087         * class.c (mono_class_setup_vtable): In an explicit interface
1088         implementation, the method name now includes the arity.
1089
1090 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
1091
1092         * object.c (mono_array_full_copy): Fix warning.
1093
1094 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
1095
1096         * appdomain.c: Removed look_for_method_by_name(). Use the new method
1097         mono_class_get_method_from_name() instead.
1098         
1099         * class-internals.h: Added two new types of wrappers. 
1100         Added MonoRemotingTarget enum. Added new trampoline function type, which
1101         takes an additional MonoRemotingTarget value as parameter, so it is
1102         possible to request a trampoline for a specific target.
1103         
1104         * class.c: Added new mono_class_get_method_from_name() method.
1105         
1106         * class.h: In MonoRemoteClass, we can have now to vtables, one for
1107         general remoting sinks and one specific for cross domain calls.
1108         
1109         * debug-helpers.c: Added new wrapper names.
1110         
1111         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
1112         of a remote class.
1113         
1114         * image.c: Porperly delete value objects form the remoting invoke hashtable.
1115         
1116         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
1117         with several other methods (mono_marshal_get_xappdomain_dispatch,
1118         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
1119         and others) can generate a fast remoting wrapper for cross domain calls.
1120         More information can be found in docs/remoting.
1121         Other changes: Removed mono_find_method_by_name, and used
1122         mono_class_get_method_from_name instead.
1123         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
1124         is stored in the remoting invoke hashtable.
1125         
1126         * marshal.h: published the new method for getting the xdomain wrapper,
1127         and also added a method for getting the adequate wrapper for a given
1128         method and target.
1129         
1130         * object-internals.h, object.c: Added a couple of methods for capying and
1131         cloning arrays.
1132         Modified mono_install_remoting_trampoline, which takes the new remoting
1133         trampoline that has a remoting target as parameter.
1134         mono_class_proxy_vtable now also takes a remoting target as parameter, and
1135         will return the most suitable vtable for the target.
1136         Added mono_remote_class_vtable, which returns the vtable of a remote class
1137         (which can be the normal remoting vtable or the xdomain vtable).
1138         
1139         * threads.c: the xdomain invoke and dispatch wrappers must also be
1140         protected against interruptions.
1141
1142 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1143
1144         * icall.c: use memmove in BlockCopyInternal when the source and
1145         destination arrays are the same.
1146
1147 2004-11-09  Martin Baulig  <martin@ximian.com>
1148
1149         * class-internals.h (MonoGenericContainer): Removed `method' and
1150         `signature', replaced them with `is_method' and `is_signature'
1151         flags.  Added `context'.
1152
1153         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
1154         instead of a `MonoGenericContainer *'.
1155
1156         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
1157         for dynamic type parameters.
1158         (mono_metadata_load_generic_params): Setup `container->context'.
1159
1160         * reflection.c (mono_reflection_setup_generic_class): Setup
1161         `tb->generic_container->context'.
1162         (do_mono_reflection_bind_generic_parameters): Use
1163         mono_class_inflate_generic_type() to correctly inflate types,
1164         rather than using our own hack just for MONO_TYPE_VAR.
1165
1166 2004-11-09  Martin Baulig  <martin@ximian.com>
1167
1168         * class.c (mono_class_inflate_generic_method): Small fix; don't
1169         crash here.
1170
1171         * icall.c
1172         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
1173         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
1174         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
1175         (ves_icall_Type_BindGenericParameters): Likewise.
1176         (ves_icall_Type_get_IsGenericInstance): Likewise.
1177         (ves_icall_Type_GetGenericParameterPosition): Likewise.
1178         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
1179         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
1180         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1181
1182 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
1183
1184         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
1185         assembly versions and public key tokens. Fixes #69113.
1186
1187 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
1188
1189         * metadata.c: fix bug introduced with the type cache changes
1190         on 2004-11-06.
1191
1192 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
1193
1194         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
1195         the MonoClass pointer instead of the token in exception clauses.
1196         * reflection.c: updates for the above and make the code not depend
1197         on the structure of MonoExceptionClause.
1198
1199 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
1200
1201         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1202         Add support for dynamic assemblies. Fixes #69114.
1203
1204         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
1205
1206 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
1207
1208         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
1209         since most only those methods use it. the code member of
1210         MonoMethodPInvoke was dead, so that can be removed too. Also,
1211         remove inline_count (again, not used), and move slot so that it
1212         can share bits with some other flags. This saves 8 bytes in the
1213         structure and gives us about 50 kb back for mcs helloworld.cs
1214
1215         * *.[ch]: Do naming changes for the above.
1216
1217         * loader.c (mono_method_get_header): Lazily init the header
1218         on first access.
1219         (mono_get_method_from_token): don't init the header here
1220         (mono_free_method): the header may never be allocated
1221
1222         Overall, this saves 150 kb of unmanaged allocations
1223         for mcs helloworld.cs. That accounts for 10% of the unmanaged
1224         memory at runtime.
1225         
1226         * loader.c, loader.h (mono_method_get_header): new accessor.
1227
1228         * *.[ch]: use the above method. Prepares us to lazily load
1229         the header.
1230
1231         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
1232         three warnings, which are actual bugs (see 69206).
1233
1234         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
1235         unused. Saves a cool 4 bytes / method.
1236
1237 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
1238
1239         * metadata.c (builtin_types): Add types for System.Object here.
1240         (mono_metadata_parse_type_full): Cache MonoType*'s that are
1241         for a class or valuetype from klass->this_arg or klass->byval_arg.
1242
1243         On mcs for a hello world, this gets us down from 21836 MonoType's
1244         to 14560.
1245
1246         (mono_metadata_free_type): Account for the above change.
1247
1248 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
1249
1250         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
1251         exception instead of asserting if name is null.
1252         (ves_icall_System_AppDomain_GetData): Ditto.
1253
1254 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
1255
1256         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
1257         EnumBuilder.
1258
1259         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
1260         Return NULL when the domain does not have entry_assembly set.
1261
1262         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
1263         Add a 'resource_modules' argument.
1264         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
1265
1266         * reflection.c (mono_reflection_create_runtime_class): Move setting
1267         of wastypebuilder here, so mono_get_type_object () returns a MonoType
1268         for enums too.
1269
1270         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
1271         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
1272         Throw an ArgumentNullException if 'ptr' is null.
1273
1274         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
1275         assemblies here. Fixes #69020.
1276
1277 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
1278
1279         * reflection.c (build_compressed_metadata): Fix the previous patch for
1280         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
1281         the stack.
1282
1283 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1284
1285         * assembly.c (mono_assembly_names_equal): Allow a match if one of
1286         the cultures is false. Fixes #69090.
1287
1288         * reflection.c (build_compressed_metadata): Fix invalid memory read 
1289         detected by valgrind.
1290         
1291         * reflection.c (mono_reflection_get_type): Avoid triggering a 
1292         TypeResolve multiple times for the same type. Fixes #65577.
1293
1294 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
1295
1296         * marshal.c: Avoid using ldftn to call managed functions. It is
1297         much slower than just a call.
1298
1299         * reflection.c (mono_module_get_object): free the basename we
1300         allocate here from glib.
1301         
1302         * reflection.c (ensure_runtime_vtable): make sure to free
1303         overrides.  Also, we were allocating an array of MonoMethod not an
1304         array of MonoMethod*.
1305
1306         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
1307
1308         * image.c (mono_image_close): free image->guid here.
1309
1310 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
1311
1312         * reflection.c: Fix some spec conformance issues with the PE file
1313         structures so mcs compiled apps run on the Net 2.0 beta.
1314
1315 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
1316
1317         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
1318         Implement this. Fixes #67264.
1319
1320         * debug-helpers.h debug-helpers.c marshal.c: Move 
1321         mono_find_method_by_name to debug-helpers.c.
1322
1323 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
1324
1325         * object.c (mono_release_type_locks): type_initialization_hash is
1326         a GHashTable.
1327
1328         * reflection.c object.c object-internals.h: Fix warnings.
1329
1330         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
1331         without accessors. Fixes #61561.
1332
1333         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
1334         application base from the root domain if not set. Fixes #65641.
1335         (mono_runtime_init): Fix warning.
1336
1337 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1338
1339         * appdomain.c: call mono_thread_pool_init.
1340         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
1341         of worker threads based on the number of CPUs and the environment
1342         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
1343         for non-windows (windows) systems.
1344
1345 2004-10-27  Chris Toshok  <toshok@ximian.com>
1346
1347         * mono-debug-debugger.c (write_class): don't call mono_class_init
1348         here, as even with the check for (!klass->init_pending), we get
1349         into a situation where we're hitting cycles in class
1350         initialization.  Fixes #68816.
1351
1352 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
1353
1354         * image.c: Avoid overwriting values in the loaded_images_hash when an
1355         assembly is loaded multiple times. Fixes #61152.
1356
1357         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
1358         so multiple satellite assemblies for the same name can be loaded.
1359         Fixes #68259.
1360
1361         * mono_domain_assembly_preload: Actually return the loaded assembly, 
1362         not NULL.
1363
1364         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
1365         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
1366
1367         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
1368         pending finalizers are not invoked after the appdomain has been 
1369         unloaded. Fixes #67862.
1370
1371 2004-10-22  Martin Baulig  <martin@ximian.com>
1372
1373         * mono-debug-debugger.c
1374         (mono_debugger_runtime_invoke): Don't box valuetypes.
1375
1376 2004-10-22  Chris Toshok  <toshok@ximian.com>
1377
1378         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
1379         don't hide private methods.
1380
1381 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
1382
1383         * icall.c: Allows the runtime to "share" (when known) the public key
1384         token of an assembly. This avoid the need to recalculate the token 
1385         (from the public key) in managed code.
1386
1387 2004-10-21  Chris Toshok  <toshok@ximian.com>
1388
1389         * debug-helpers.c (append_class_name): argh, revert last patch.
1390         
1391 2004-10-21  Chris Toshok  <toshok@ximian.com>
1392
1393         * debug-helpers.c (append_class_name): use '+' as the delimiter,
1394         not '/', so that it matches what the debugger uses to look up
1395         methods.
1396
1397 2004-10-21  Martin Baulig  <martin@ximian.com>
1398
1399         * mono-debug-debugger.c (mono_debugger_throw_exception): New
1400         public method; this is called each time an exception is thrown and
1401         allows the debugger to use exception catch points.
1402
1403 2004-10-21  Martin Baulig  <martin@ximian.com>
1404
1405         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
1406         the stack pointer and the exception object in some struct and pass
1407         that to the debugger.
1408
1409 2004-10-21  Chris Toshok  <toshok@ximian.com>
1410
1411         * mono-debug-debugger.c (do_write_class): add instance/static
1412         event support.  We don't expose "raise" or "other" yet.
1413         (event_is_static): new method.
1414
1415 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
1416
1417         * mono-debug-debugger.c
1418         (mono_debugger_handle_exception): Remove
1419         bogus return value for fussy compilers.
1420
1421 2004-10-20  Martin Baulig  <martin@ximian.com>
1422
1423         * mono-debug-debugger.c
1424         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
1425         (mono_debugger_handled_exception): Likewise.
1426
1427 2004-10-20  Martin Baulig  <martin@ximian.com>
1428
1429         * mono-debug-debugger.h (MonoDebuggerEvent): Added
1430         MONO_DEBUGGER_EVENT_EXCEPTION.
1431
1432         * mono-debug-debugger.c (mono_debugger_handle_exception): New
1433         public function to send the debugger a notification for an
1434         exception and inform it about a catch/finally clause.
1435
1436 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
1437
1438         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
1439         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
1440         fix 2.95 build. 
1441
1442         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
1443
1444 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
1445
1446         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
1447         marshalled as [In,Out]. Fixes #58325.
1448
1449 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
1450
1451         * reflection.c (mono_method_body_get_object): Implement some fields.
1452
1453 2004-10-12  Martin Baulig  <martin@ximian.com>
1454
1455         * reflection.c (mono_reflection_bind_generic_parameters): Small
1456         fix, correctly retrieve our parent from a generic instance.
1457
1458 2004-10-12  Martin Baulig  <martin@ximian.com>
1459
1460         * metadata.c (mono_metadata_generic_param_equal): We always have
1461         an owner.
1462
1463         * class.c
1464         (mono_class_from_generic_parameter): We need to have an owner.
1465         (my_mono_class_from_generic_parameter): Likewise.
1466
1467         * reflection.c (mono_reflection_setup_generic_class): Renamed to
1468         mono_reflection_create_generic_class() and added a new
1469         mono_reflection_setup_generic_class().  
1470         (mono_reflection_initialize_generic_param): If we're a nested
1471         generic type and inherited from the containing class, set our
1472         owner to the outer class.
1473
1474 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
1475
1476         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
1477
1478         * reflection.c (mono_method_body_get_object): New function to create
1479         a MethodBody object.
1480
1481         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
1482
1483 2004-10-11  Martin Baulig  <martin@ximian.com>
1484
1485         * metadata.c (_mono_metadata_type_equal): Renamed to
1486         do_mono_metadata_type_equal() and made static.
1487
1488 2004-10-11  Martin Baulig  <martin@ximian.com>
1489
1490         * appdomain.c: Bump corlib version number to 28.
1491
1492 2004-10-10  Martin Baulig  <martin@ximian.com>
1493
1494         * class-internals.h
1495         (MonoGenericInst): Added `MonoGenericContainer *container'.
1496         (MonoGenericMethod): Likewise.
1497         (MonoGenericContext): Likewise.
1498         (MonoGenericParam): Added `MonoGenericContainer *owner'.
1499
1500         * metadata.c
1501         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
1502         (do_mono_metadata_parse_generic_inst): Likewise.
1503         (mono_metadata_parse_type_full): New public method.  This is the actual
1504         mono_metadata_parse_type() implementation - with an additional
1505         `MonoGenericContainer *' argument.
1506         (mono_metadata_parse_array_full): Likewise.
1507         (mono_metadata_parse_signature_full): Likewise.
1508         (mono_metadata_parse_method_signature_full): Likewise.
1509         (mono_metadata_parse_mh_full): Likewise.
1510         (mono_type_create_from_typespec): Likewise.
1511         (mono_metadata_interfaces_from_typedef_full): New public method;
1512         this is similar to the other _full() methods, but we take a
1513         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
1514         (mono_metadata_parse_generic_param): Take an additional
1515         `MonoGenericContainer *' argument and lookup the MonoGenericParam
1516         from that container.
1517         (mono_metadata_generic_param_equal): New static method to compare
1518         two type parameters.
1519         (_mono_metadata_type_equal): New static method; takes an
1520         additional `gboolean signature_only' argument - if true, we don't
1521         compare the owners of generic parameters.
1522         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
1523         with a TRUE argument - do a signature-only comparision.
1524
1525         * loader.c: Use the new _full() methods and pass the
1526         MonoGenericContainer to them.
1527
1528         * object-internals.h (MonoReflectionTypeBuilder): Added
1529         `MonoGenericContainer *generic_container' field.
1530         (MonoReflectionMethodBuilder): Likewise.
1531
1532 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1533
1534         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
1535         case initial images of dynamic assemblies.
1536
1537         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
1538
1539         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
1540
1541         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
1542         length of event->other array.
1543         (typebuilder_setup_events): Ditto.
1544
1545         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
1546         'assembly_by_name' and add an 'assemblies' list.
1547
1548         * assembly.h assembly.c: Add a new search hook for determining whenever
1549         an assembly is already loaded. Use this instead of searching in the
1550         loaded_assemblies list.
1551
1552         * domain.c appdomain.c: Implement the new search hook so loaded 
1553         assemblies are now scoped by appdomain. Fixes #67727.
1554
1555 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
1556
1557         * threads.c (mono_thread_attach): Initialize synch_lock field so
1558         mono_thread_detach works again.
1559
1560         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
1561         'lib' too. Fixes #63130.
1562
1563 2004-10-06  Jackson Harper  <jackson@ximian.com>
1564
1565         * culture-info-tables.h: regenerated.
1566
1567 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1568
1569         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
1570         implemented by other interfaces in the result. Fixes #65764.
1571         
1572         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1573         Handle unloadable modules without crashing.
1574
1575         * image.c (load_modules): Revert the previous patch since modules must
1576         have a fixed index inside the array.
1577         
1578         * image.c (load_modules): Don't include native modules in the modules
1579         array.
1580
1581 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
1582
1583         * reflection.h: Add param_defaults field.
1584
1585         * reflection.c: Add support for parameter defaults in dynamic methods.
1586         Fixes #64595.
1587
1588         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
1589         an empty string when a type has no namespace. Fixes #64230.
1590
1591 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
1592
1593         * tabledefs.h: Added "internal" security actions to support non-CAS
1594         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
1595         Note: they do not seems to be used anymore in 2.0 (new metadata format)
1596
1597 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1598
1599         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
1600         constructor of abstract class. Fixes #61689.
1601
1602 2004-10-04  Martin Baulig  <martin@ximian.com>
1603
1604         * class-internals.h (MonoGenericContainer): New type.
1605         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
1606         `MonoGenericContainer *generic_container'.
1607         (MonoClass): Replaced `gen_params' and `num_gen_params' with
1608         `MonoGenericContainer *generic_container'.
1609
1610         * metadata.c (mono_metadata_load_generic_params): Return a
1611         `MonoGenericContainer *' instead of a `MonoGenericParam *';
1612         removed the `num' argument.
1613
1614 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1615
1616         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
1617         for dynamic images.
1618
1619         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
1620         machine fields.
1621
1622         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
1623
1624         * reflection.c: Save pe_kind and machine values into the generated
1625         image file.
1626
1627         * appdomain.c: Bump corlib version number.
1628
1629         * object-internals.h: Reorganize layout of LocalBuilder.
1630
1631         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
1632         New helper function.
1633
1634         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
1635         created MonoType for dynamic types. Fixes #66180.
1636
1637 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
1638
1639         * threadpool.c: the ares hashtable needs a critical section around it.
1640         this prevents some nasty segfaults
1641
1642 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
1643
1644         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
1645         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
1646         bug 67324).
1647         
1648 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1649
1650         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
1651         
1652 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
1653
1654         * image.c: Always canonicalize image file names, to avoid loading
1655         the same assembly twice when referenced using a relative path.
1656
1657 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1658
1659         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
1660
1661         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
1662
1663         * marshal.c: Fix warnings.
1664
1665 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
1666
1667         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
1668         attempting to marshal the delegate_trampoline as the method_addr.
1669         This patch has a static hashtable of marshalled delegates so that 
1670         we can map delegate_trampoline addresses back to delegates.  This
1671         allows a delegate passed to managed code to be passed back into native
1672         code.  Fixes #67039
1673
1674 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1675
1676         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
1677
1678         * reflection.c (method_encode_code): Align method headers properly.
1679         Fixes #66025.
1680
1681 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1682
1683         * marshal.c: In the runtime invoke wrapper, reset the abort
1684         exception if it is cached. This avoids the automatic rethrowal of 
1685         the exception after the catch of the wrapper. Also check for pending
1686         interruptions before calling the managed method. This is done using
1687         the new method emit_thread_force_interrupt_checkpoint, since the
1688         normal checkpoint method is ignored when running the invoke wrapper.
1689         * object.c: If the abort exception is rethrown, set the abort_exc
1690         field of the thread, so it will be rethrown aftere every catch.
1691         * threadpool.c: Only run an interruption checkpoint if what has been
1692         requested is a stop of the thread (aborts will be ignored).
1693         * threads.c: By default, a thread will now never be interrumped while
1694         running the runtime invoke wrapper (this ensures that runtime_invoke
1695         will always return to the caller if an exception pointer is provided).
1696         There is a new special method mono_thread_force_interruption_checkpoint()
1697         to force an interruption checkpoint even if running a protected
1698         wrapper, which is used by the same runtime invoke wrapper to do a check
1699         at a safe point.
1700
1701 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1702
1703         * object.c, object-internals.h: Implemented mono_release_type_locks,
1704         which releases the cctor locks held by a thread.
1705         * threads.c, threads.h: In thread_cleanup, release cctor locks held
1706         by a thread. Added mono_thread_exit() method to be used to safely stop
1707         a thread.
1708
1709 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1710
1711         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
1712         Move null check before dereference.  Avoid indexing beyond the end
1713         of the 'modules' array.
1714
1715 2004-09-28  Raja R Harinath  <rharinath@novell.com>
1716
1717         * metadata-internals.h (MonoImage): Add module_count field.
1718         * image.c (load_modules): Set image->module_count.
1719         (mono_image_load_file_for_image): Use image->module_count.
1720         * reflection.c (mono_image_load_module): Append to image->modules array 
1721         of dynamic assembly.
1722         (mono_module_get_object): Fix loop to actually increment index.
1723         Use image->module_count.
1724         * assembly.c (mono_assembly_load_references): Use image->module_count.
1725         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
1726         Likewise.
1727
1728 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
1729
1730         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
1731         Avoid assert on generic types.
1732
1733 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1734
1735         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
1736
1737         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
1738
1739         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
1740         function to convert a MarshalSpec structure to its managed counterpart.
1741
1742         * reflection.c: Fix warnings.
1743         
1744         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
1745         field.
1746
1747         * icall.c (mono_create_icall_signature): Fix build.
1748
1749 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1750
1751         * icall.c: Add MakePointType icall.
1752
1753         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
1754         warnings.
1755
1756 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1757
1758         * threadpool.c: reuse allocated slots in the queue.
1759
1760 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1761
1762         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
1763
1764         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
1765
1766         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
1767         previous change.
1768
1769         * tabledefs.h: Add constants for pinvoke attributes BestFit and
1770         ThrowOnUnmappableChar.
1771
1772         * icall.c (ves_icall_Type_GetPacking): New icall.
1773
1774 2004-09-24  Martin Baulig  <martin@ximian.com>
1775
1776         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
1777
1778 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1779
1780         * appdomain.c:
1781         (mono_domain_set): allow setting a domain that is being unloaded.
1782         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
1783         being unloaded.
1784
1785 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1786
1787         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
1788         the GetCustomAttributes icall.
1789
1790 2004-09-23  Martin Baulig  <martin@ximian.com>
1791
1792         * object-internals.h (MonoReflectionGenericParam): Replaced
1793         'has_ctor_constraint', `has_reference_type' and `has_value_type'
1794         with `guint32 attrs'.
1795
1796 2004-09-23  Martin Baulig  <martin@ximian.com>
1797
1798         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
1799
1800 2004-09-23  Martin Baulig  <martin@ximian.com>
1801
1802         * object-internals.h (GenericParameterAttributes): New enum.
1803
1804 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1805
1806         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
1807         
1808         * class.c (init_events): Fill out event->other field.
1809
1810         * class.c: Fix warnings.
1811
1812         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
1813
1814 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
1815
1816         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
1817         walk which doesn't supply the IL offset.
1818
1819 2004-09-22  Martin Baulig  <martin@ximian.com>
1820
1821         * reflection.c (mono_reflection_setup_internal_class): If we're
1822         System.ValueType, System.Object or System.Enum, set
1823         `klass->instance_size' and create the vtable.
1824         (mono_reflection_create_internal_class): If we're an enum type,
1825         get the base class from our current corlib.
1826
1827 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
1828
1829         * reflection.h (MonoResolveTokenError): New type.
1830
1831         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
1832         icall.
1833
1834         * icall.c: Add an 'error' argument to the ResolveToken icalls.
1835
1836 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
1837
1838         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
1839         Support also calling constructors, but only for already allocated objects.
1840
1841 2004-09-17  Geoff Norton <gnorton@customerdna.com>
1842
1843         * reflection.c (type_get_qualified_name): If the klass is null
1844         return the typename to avoid a NullRefEx.
1845         (encode_cattr_value): Get the qualified name of the boxed type,
1846         not the underlying enumtype.  Fixes #62984.
1847
1848 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
1849
1850         * marshal.c: Fix problems with previous checkin.
1851
1852 2004-09-21    <vargaz@freemail.hu>
1853
1854         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
1855         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
1856
1857         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
1858
1859 2004-09-21  Geoff Norton <gnorton@customerdna.com>
1860
1861         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
1862         should only return a type for pointers, arrays, and passbyref types.
1863         Fixes bug #63841.
1864
1865 2004-09-21  Martin Baulig  <martin@ximian.com>
1866
1867         * domain.c (mono_debugger_check_runtime_version): New public
1868         function.
1869
1870         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
1871
1872 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1873
1874         * reflection.c: Added missing sort to the declarative security 
1875         attributes table. MS implementation stops seeing the attributes if the
1876         token number regress in the table (as shown by ildasm and permview).
1877
1878 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
1879
1880         * object-internals.h (MonoReflectionModule): Add 'token' field.
1881         
1882         * reflection.c (mono_reflection_get_token): Add support for Module
1883         and Assembly.
1884         (mono_module_get_object): Set 'token' field.
1885         (mono_module_file_get_object): Set 'token' field.
1886
1887         * icall.c: Add new Assembly and Module icalls.
1888
1889         * appdomain.c: Bump corlib version.
1890
1891 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
1892
1893         * loader.h loader.c class.h class.c: Add helper functions for obtaining
1894         tokens of metadata objects.
1895
1896         * reflection.h reflection.c (mono_reflection_get_token): New function
1897         to obtain the token of a metadata object.
1898
1899         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
1900
1901 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1902
1903         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
1904         
1905         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
1906
1907 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1908
1909         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
1910         * object-internals.h: Added 3 MonoArray* members to MonoReflection
1911         AssemblyBuilder to access the permissions set in the class lib.
1912         * reflection.c: Added security attributes encoding step in 
1913         mono_image_build_metadata.
1914         * tabledefs.h: Added new security actions defined in 2.0:
1915         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
1916
1917 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1918
1919         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
1920         macro parameter.
1921
1922 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
1923  
1924         * locales.c: nullify the ICU_collator member of CompareInfo when it is
1925           finalized. There where random SIGSEVs at program termination, when
1926           an object being finalized was trying to do a string comparison and
1927           the current culture was already finalized.
1928  
1929 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1930
1931         * threads.c: call thread_cleanup before finishing the thread if we get
1932         there.
1933
1934 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
1935
1936         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
1937         assemblies from the parent. Fixes #65665.
1938
1939 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
1940
1941         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
1942         modifiers.
1943
1944 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
1945
1946         * reflection.h: add prototype for mono_get_dbnull_object
1947         * reflection.c: add prototypes for get_default_param_value_blobs 
1948         and mono_get_object_from_blob for fussier compilers
1949
1950 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
1951  
1952         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
1953         false deadlock checks in class initialization.
1954  
1955 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
1956
1957         * image.c (mono_image_addref): Fix comment.
1958
1959         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
1960         possible.
1961
1962 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
1963
1964         * reflection.c (mono_param_get_objects): Modified to return
1965         ParameterInfo.DefaultValue object.
1966
1967         (get_default_param_value_blobs):
1968         (mono_get_object_from_blob):
1969         (mono_get_dbnull_object): New helper routines. 
1970
1971         * object.c (mono_get_constant_value_from_blob): New helper routine
1972         carved out from get_default_field_value ()
1973
1974         * object-internals.h (mono_get_constant_value_from_blob): Added
1975         function declaration.
1976
1977 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
1978
1979         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
1980         referenced assemblies. Fixes #62135.
1981
1982         * exception.h exception.c (mono_get_exception_file_not_found2): New
1983         helper function.
1984
1985 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
1986
1987         * class.h class.c: Add mono_type_get_underlying_type ().
1988
1989 2004-09-09  Geoff Norton <gnorton@customerndna.com>
1990
1991         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
1992         Fix GetTypes() to support dynamically created assemblies.
1993
1994 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1995
1996         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
1997         
1998         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
1999         previous patch.
2000
2001         * reflection.h reflection.c loader.c: Allow dynamic construction of
2002         pinvoke methods. Fixes #65571.
2003         
2004         * reflection.c (mono_reflection_get_type): Revert previous change since
2005         it causes regressions.
2006
2007 2004-09-08  Martin Baulig  <martin@ximian.com>
2008
2009         * class.c (class_compute_field_layout): Don't call
2010         mono_class_layout_fields() for open generic instances.
2011
2012 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
2013         * threads.c appdomain.c: fix typo in GC macro
2014
2015 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2016
2017         * threads.c: don't call mono_thread_detach() in start_wrapper(),
2018         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
2019
2020 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
2021
2022         * image.c (mono_image_close): Applied patch from 
2023         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
2024         assembly is loaded multiple times from data.
2025         
2026         * image.c (mono_image_open): Fix warning.
2027
2028 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2029
2030         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
2031         once. Fixes #58334.
2032         
2033         * reflection.c (mono_reflection_create_runtime_class): Initialize
2034         klass->nested_classes. Fixes #61224.
2035
2036 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2037
2038         * threads.c: sched_yield() on exit, to allow threads to quit.
2039
2040 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2041
2042         * object.c (mono_unhandled_exception): Remove leftover debug code.
2043
2044 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2045
2046         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
2047
2048 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
2049
2050         * marshal.c (emit_marshal_array): Really null terminate string arrays.
2051         
2052         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
2053
2054 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2055
2056         * marshal.c (emit_marshal_array): Null terminate string arrays.
2057         
2058         * marshal.c (raise_auto_layout_exception): Fix warning.
2059
2060         * reflection.c (mono_param_get_objects): Initialize the default value
2061         with DBNull.Value, not null. Fixes #62123.
2062
2063 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
2064
2065         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
2066         throw an exception with a cute explanation.
2067
2068 2004-09-06  Dick Porter  <dick@ximian.com>
2069
2070         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
2071         Close the new process's thread handle, as we don't use it.  The
2072         handle stays around forever otherwise.
2073
2074 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2075
2076         * object.c (arith_overflow): Fix warning.
2077
2078         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
2079         calling conventions in method refs. Fixes #65352.
2080
2081         * reflection.c: Fix warnings.
2082
2083 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2084
2085         * icall.c: Add a new icall for Array.Clear
2086
2087 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
2088
2089         * object.c: When allocating an array, we have to throw
2090         an overflow exception if any of the lengths are < 0.
2091
2092 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
2093
2094         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
2095         properly. Also move implementation of string array marshalling to 
2096         managed code. Fixes #42316.
2097
2098 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2099
2100         * assembly.c: provide more information when loading an assembly fails.
2101
2102 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2103
2104         * filewatcher.c: don't expect the development fam package to be
2105         installed.
2106
2107 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
2108
2109         * marshal.c: Make a copy of the signature cookie since it will be
2110         freed by the caller.
2111         
2112         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
2113
2114         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
2115
2116         * metadata.c (mono_metadata_free_marshal_spec): New function to free
2117         marshal specs.
2118
2119         * marshal.c: More refactoring.
2120         
2121         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
2122         smaller functions.
2123
2124 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
2125
2126         * object.c: In mono_message_invoke, fill the output parameter array after
2127           calling the managed method (it was done before the call). This fixes
2128           bug #59299.
2129
2130 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2131
2132         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
2133         as well.
2134
2135 2004-09-02  Martin Baulig  <martin@ximian.com>
2136
2137         * class.c (mono_class_instance_size): Don't allow generic type
2138         definitions or open generic instances.
2139         (mono_class_array_element_size): If we're a value type, call
2140         mono_class_instance_size() on the original class.
2141
2142         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
2143         handle generic instances.
2144
2145         * mono-debug-debugger.c (write_type): Handle generic instances
2146         like classes.
2147
2148 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
2149
2150         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
2151         the allocation request fails. Fixes #65089.
2152
2153         * object.c (mono_runtime_free_method): Do not call mono_free_method.
2154         
2155         * object.c (mono_runtime_free_method): New function to free a dynamic
2156         method.
2157
2158         * marshal.c (mono_delegate_free_ftnptr): New function to free the
2159         delegate trampoline.
2160
2161         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
2162         with hasthis as dynamic,
2163
2164         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
2165
2166         * domain.c (mono_jit_info_table_remove): New function to remove an
2167         entry from the jit info table.
2168
2169         * class-internals.h (MonoMethod): Add 'dynamic' field.
2170
2171         * loader.c: Fix warnings.
2172
2173 2004-09-01  Martin Baulig  <martin@ximian.com>
2174
2175         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
2176         instead of mono_debugger_lock() because the latter one is a no-op
2177         unless running in the debugger.
2178
2179 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2180
2181         * class.c (class_compute_field_layout): Classes with auto-layout or
2182         reference fields are not blittable.
2183         
2184 2004-09-01  Dick Porter  <dick@ximian.com>
2185
2186         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
2187         mono_image_get_filename() to get the assembly location.
2188
2189         * icall.c:
2190         * metadata.h: Fix compile warnings
2191
2192 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
2193
2194         * class.c (class_compute_field_layout): System.Object is blittable.
2195
2196         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
2197         as in/out. Fixes #59909.
2198
2199 2004-09-01  Martin Baulig  <martin@ximian.com>
2200
2201         * metadata.h (MONO_TYPE_ISREFERENCE): Call
2202         mono_metadata_generic_inst_is_valuetype() if we're a generic
2203         instance to check whether our underlying type is a reference type.
2204
2205 2004-09-01  Martin Baulig  <martin@ximian.com>
2206
2207         * metadata.c (mono_type_size): If we're a generic instance, call
2208         mono_class_value_size() for value types.
2209
2210 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
2211
2212         * marshal.c: Implement more custom marshalling functionality. Fixes
2213         #64915.
2214
2215 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
2216
2217         * mono-debug.c, debug-mono-symfile.c: add some locking love.
2218
2219 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
2220
2221         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
2222
2223         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
2224
2225         * icall.c: Fix some warnings.
2226
2227         * threads.c (abort_appdomain_thread): Fix unref errors.
2228         (mono_thread_current): Fix THREAD_DEBUG define.
2229
2230 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
2231
2232         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
2233
2234         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
2235
2236 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
2237
2238         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
2239         string arrays.
2240
2241 2004-08-28  Martin Baulig  <martin@ximian.com>
2242
2243         * metadata.c
2244         (mono_metadata_generic_inst_is_valuetype): New public function.
2245
2246         * metadata.h (MONO_TYPE_ISSTRUCT): Call
2247         mono_metadata_generic_inst_is_valuetype() if we're a generic
2248         instance to check whether our underlying type is a valuetype.
2249
2250 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
2251
2252         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
2253         #63768.
2254
2255 2004-08-25  Martin Baulig  <martin@ximian.com>
2256
2257         * loader.c (mono_get_method_from_token): Abstract methods can also
2258         be generic and thus have type parameters.
2259
2260         * metadata-internals.h
2261         (MonoDynamicImage): Added `GPtrArray *gen_params'.
2262
2263         * reflection.c (mono_image_get_generic_param_info): Don't create a
2264         metadata row, just add an entry to the `gen_params' array.
2265         (build_compressed_metadata): Sort the `gen_params' array and then
2266         actually create the metadata.
2267
2268 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2269
2270         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
2271
2272 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
2273
2274         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
2275
2276 2004-08-24  Martin Baulig  <martin@ximian.com>
2277
2278         * class.cs (mono_class_is_subclass_of): Like an interface, a
2279         generic instance also derives from System.Object.
2280
2281 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
2282
2283         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
2284         custom modifiers to be in any order. Fixes #61990.
2285
2286 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
2287
2288         * object.c: Register mono_object_new_fast icall.
2289         
2290         * object.c (mono_class_get_allocation_ftn): Return to calling
2291         mono_object_new_fast, since it seems faster to compute the object 
2292         size in unmanaged code than passing it as a parameter.
2293
2294         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
2295
2296         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
2297         this function with Boehm as the oom handler, so we don't have to check
2298         the result of GC_malloc.
2299
2300         * object.c: Remove checks for oom.
2301
2302         * object.h object.c (mono_class_get_allocation_ftn): New function to
2303         return the icall which can be used to allocate an instance of a given
2304         class. 
2305
2306         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
2307
2308         * class-internals.h: Add 'enabled' field.
2309
2310 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
2311
2312         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
2313
2314 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
2315         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
2316         value 0x0010.
2317
2318 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
2319
2320         * appdomain.c: use the Tls function for appdomain too,
2321         at Zoltan's request. Actually return in mono_context_get
2322
2323         * appdomain.c, profiler.c, threads.c: use __thread
2324
2325 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
2326
2327         * appdomain.c threads.c: Call GC_CreateThread on windows.
2328
2329         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
2330         multiple libraries since this don't work on windows.
2331
2332 2004-08-18  Martin Baulig  <martin@ximian.com>
2333
2334         * class-internals.h
2335         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
2336         MonoMethodHeader.
2337
2338         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
2339         MonoMethodNormal since we also need it for abstract and interface
2340         methods.
2341
2342         * reflection.c
2343         (build_compressed_metadata): Sort the GenericParam table.
2344         (mono_image_create_token): Added `gboolean create_methodspec'
2345         argument; this is false when generating a MethodImpl token.
2346         (reflection_methodbuilder_to_mono_method): Abstract and interface
2347         methods may also have generic parameters.
2348
2349 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
2350
2351         * appdomain.c: thread local alloc
2352
2353 2004-08-17  Martin Baulig  <martin@ximian.com>
2354
2355         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
2356
2357         * icall.c
2358         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
2359         argument.
2360
2361         * class.c (mono_type_get_full_name): New public function.
2362         (mono_type_get_name): Don't include the type arguments.
2363
2364 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
2365
2366         * Makefile.am: Build static versions of libmetadata and libmonoruntime
2367         for inclusion into the mono executable.
2368
2369 2004-08-16  Martin Baulig  <martin@ximian.com>
2370
2371         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
2372         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
2373
2374 2004-08-14  Martin Baulig  <martin@ximian.com>
2375
2376         * class.c (dup_type): Also copy the `byref' field.
2377
2378 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
2379
2380         * reflection.c (create_dynamic_mono_image): Revert the last change 
2381         since it breaks bootstrap.
2382
2383 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
2384
2385         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
2386
2387         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
2388         not free them with g_free.
2389
2390 2004-08-11  Martin Baulig  <martin@ximian.com>
2391
2392         * reflection.c (mono_reflection_setup_internal_class): Also call
2393         mono_class_setup_mono_type() if we already have a `tb->type.type'.
2394
2395 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
2396
2397         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
2398         called during default (first) AppDomain creation. Keep track of
2399         Evidence when loading assemblies.
2400
2401 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2402
2403         * opcodes.c, opcodes.h: reduce runtime relocations.
2404
2405 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
2406
2407         * culture-info.h, locales.c: fixes and chages to sue the new
2408         optimized format of the locale data.
2409         * culture-info-tables.h: regenerated.
2410
2411 2004-08-06  Geoff Norton <gnorton@customerdna.com>
2412         
2413         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
2414
2415 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
2416
2417         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
2418         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
2419         * domain-internals.h: icall declaration.
2420         * icall.c: icall registration.
2421         * object-internals.h: New fields in MonoAssembly for CAS.
2422
2423 2004-08-05  Duncan Mak  <duncan@ximian.com>
2424
2425         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
2426         CEE_LDELEM_ANY.
2427
2428 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2429
2430         * reflection.c: fix to deal with object[] arrays in custom ctors
2431         (bug #62550).
2432
2433 2004-08-05  Martin Baulig  <martin@ximian.com>
2434
2435         * class.c (mono_class_array_element_size): Added support for
2436         generic instances and correctly handle "recursive" types.
2437
2438 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
2439
2440         * assembly.c: Fix warnings.
2441
2442 2004-08-04  Martin Baulig  <martin@ximian.com>
2443
2444         * class.c
2445         (mono_type_get_name_recurse): Added `gboolean include_arity'
2446         argument specifying whether or not we should include the generic
2447         arity in the type name.
2448         (_mono_type_get_name): New static function.
2449         (mono_class_setup_vtable): If we're a generic instance, don't
2450         include the generic arity in the names of explicit method
2451         implementations.        
2452
2453 2004-08-03  Martin Baulig  <martin@ximian.com>
2454
2455         * class.c (mono_type_get_name_recurse): Enclose the generic type
2456         arguments in `<', '>'.
2457
2458 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2459
2460         * gc.c: make GC warning messages use the trace API, they are just
2461         noise to most of the users.
2462
2463 2004-08-03  Martin Baulig  <martin@ximian.com>
2464
2465         * debug-mono-symfile.c (read_string): Correctly read the string.
2466
2467 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
2468
2469         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
2470         
2471         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
2472         icalls.
2473         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
2474
2475 2004-07-30  Martin Baulig  <martin@ximian.com>
2476
2477         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
2478         Reflect latest symbol writer changes.   
2479
2480 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2481
2482         * object.c: always create an object if null is passed
2483         to Invoke() where a valuetype is expected.
2484
2485 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
2486
2487         * marshal.c (mono_marshal_init): make managed
2488         signatures match native ones better for 64bits.
2489
2490 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2491
2492         * appdomain.c: hack to build correctly the private bin path on windows.
2493         Fixes bug #61991.
2494
2495 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2496
2497         * assembly.c: Load mscorlib from the correct framework directory
2498           (mono/<version>/mscorlib.dll).
2499         * appdomain.h: Added prototypes for new functions.
2500         * internals.h: Added some prototypes.
2501         * domain.c: When initializing the runtime, get from the executable and
2502           the configuration files the runtime version that the app supports.
2503           Added support methods for reading app.exe.config. Added list of versions
2504           supported by the JIT. Added two new methods: mono_init_from_assembly,
2505           which initializes the runtime and determines the required version from
2506           the provided exe file, and mono_init_version, which initializes
2507           the runtime using the provided version.
2508         * icall.c: Get machine.config from version-specific directory.
2509         * reflection.c: When generating an image, embed the version number
2510           of the current runtime.
2511
2512 2004-07-28  Dick Porter  <dick@ximian.com>
2513
2514         * socket-io.c
2515         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
2516         returned sockaddr size before creating the remote address object.
2517         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
2518         61608.
2519
2520 2004-07-28  Dick Porter  <dick@ximian.com>
2521
2522         * locales.c (string_invariant_compare_char): Fix invariant char
2523         compares between upper and lower cases.  Fixes bug 61458.
2524
2525 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
2526         
2527         * marshal.c: actually cache stelem.ref wrappers.
2528         
2529 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
2530
2531         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
2532         sections and remove the mono_cli_rva_map () function.
2533
2534 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2535
2536         * debug-mono-symfile.c: fix one more endianess issue, from a patch
2537         by Geoff Norton (<gnorton@customerdna.com>).
2538
2539 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
2540
2541         * class.c: fix class loads for pointer types (typeof(int) !=
2542         typeof(int*)).
2543
2544 2004-07-27  Martin Baulig  <martin@ximian.com>
2545
2546         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
2547         reading the debugging information from an external ".mdb" file.
2548
2549 2004-07-24  Martin Baulig  <martin@ximian.com>
2550
2551         * reflection.c (mono_image_get_type_info): Only write a class
2552         layout entry if we actually have a size or a packing size.
2553
2554 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2555
2556         * reflection.c (type_get_fully_qualified_name): 
2557         insert cast to get type checking of ?: with non-gcc compilers
2558
2559 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
2560
2561         * rand.c: use g_getenv for both lookups of
2562         MONO_EGD_SOCKET
2563
2564 2004-07-17  Martin Baulig  <martin@ximian.com>
2565
2566         * reflection.c (mono_reflection_bind_generic_method_parameters):
2567         Set `gmethod->reflection_info'.
2568
2569 2004-07-17  Martin Baulig  <martin@ximian.com>
2570
2571         * class.c (mono_class_create_from_typedef): Insert the newly
2572         created class into the hash table before computing the interfaces
2573         since we could be called recursively.
2574
2575 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
2576
2577         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
2578         function to implement stelem.ref in managed code
2579         * class-internals.h, debug-helpers.c: a new wrapper type
2580         for the above.
2581
2582 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
2583
2584         * gc.c: allow GC handles to work even when no GC is compiled in.
2585         Fix part of bug #61134 (GetAddrOfPinnedObject).
2586
2587 2004-07-13  Peter Williams  <peter@newton.cx>
2588  
2589         * process.c (complete_path): Make sure we don't attempt to execute
2590         directories.
2591  
2592 2004-07-12  Geoff Norton <gnorton@customerdna.com>
2593
2594         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
2595           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
2596           and will add/subtract the hour if needed
2597
2598 2004-07-12  Martin Baulig  <martin@ximian.com>
2599
2600         * reflection.c (mono_field_get_object): If we have
2601         `field->generic_info', take the attributes from
2602         `field->generic_info->generic_type'.    
2603
2604 2004-07-12  Martin Baulig  <martin@ximian.com>
2605
2606         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
2607         This function must be called before initializing the runtime.
2608         (mono_debug_init_1): New function; call this after initializing
2609         the runtime, but before loading the assembly.  It tells the
2610         debugger to load corlib and the builtin types.
2611
2612         * mono-debug-debugger.c: Did some larger changes in the debugging
2613         code; support recursive class declarations, make sure we actually
2614         add all classes.
2615
2616 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2617
2618         * debug-helpers.c: undo my previous patch and fixed the real issue in
2619         ../mini/exceptions-x86.c
2620
2621 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2622
2623         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
2624         when no HOME env. variable was set and a NullRef was thrown in a .cctor
2625         called from other .cctors.
2626
2627 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
2628
2629         * loader.c: Removed the mono_loader_wine_init hack now that we are
2630         doing a managed version of Windows.Forms.
2631
2632 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
2633
2634         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
2635         threadpool.c, threads.c: remove static data from rootset.
2636
2637 2004-07-09  Dick Porter  <dick@ximian.com>
2638
2639         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
2640         Don't do any more processing if the matched length was 0.  It was
2641         increasing the size of the string before.  Fixes bug 61167.
2642
2643 2004-07-09  Dick Porter  <dick@ximian.com>
2644
2645         * socket-io.h:
2646         * socket-io.c
2647         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2648         Add support for SO_PEERCRED if its available.
2649
2650 2004-07-09  Peter Bartok <pbartok@novell.com>
2651         * loader.c: winelib.exe.so error message is now only displayed if
2652         MONO_DEBUG is set. To help us avoid questions when people are trying
2653         out the new Managed.Windows.Forms.
2654
2655 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
2656
2657         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
2658         for isinst and castclass wrappers.
2659
2660         * class-internals.h icall.c: Move registration and lookup of JIT icalls
2661         to libmetadata from the JIT, so they could be used by the marshalling
2662         code and the interpreter.
2663
2664         * marshal.c: Register marshalling related JIT icalls here instead of
2665         in mini.c. Use CEE_MONO_ICALL instead of the family of 
2666         CEE_MONO_PROC<x> opcodes to call marshalling functions.
2667
2668         * metadata.h: Remove unneeded marshalling conversions.
2669
2670         * opcodes.c: Update for new opcodes.
2671         
2672 2004-07-08  Martin Baulig  <martin@ximian.com>
2673
2674         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
2675         (mono_debug_get_domain_data): Make this function static.
2676
2677 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2678
2679         * gc.c, object.h: add nice GC handle API for embedders.
2680
2681 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
2682
2683         * reflection.c: more changes for the new api
2684
2685         * object.c: When we reflect on a field w/ a constant value, it
2686         will not have a memory location, so we must access metadata. Also,
2687         allow easier reading of strings so that we can read them from
2688         the constant data.
2689
2690         * class.c (mono_class_layout_fields): no need for literal fields here.
2691
2692         * class-internals.h: api changes for const fields
2693
2694         * icall.c (ves_icall_get_enum_info): use new apis for const fields
2695
2696 2004-07-06  Martin Baulig  <martin@ximian.com>
2697
2698         * mono-debug.h: Increment version number to 44.
2699
2700         * mono-debug.c (mono_debug_add_wrapper): The second argument is
2701         now a gpointer, rewrote this whole method.
2702
2703         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
2704         function.  Add information about the wrapper in a new "misc table".
2705
2706         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
2707         for the new misc table.
2708
2709 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
2710
2711         * metadata-internals.h image.c: Add a cache for helper signatures.
2712
2713         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
2714
2715 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
2716
2717         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
2718         delegates from a delegate. Fixes #61033.
2719         
2720         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
2721         marshalling of stringbuilder arrays. Fixes #59900.
2722
2723 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
2724
2725         * icall.c: Add EnumBuilder:setup_enum_type icall.
2726
2727 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
2728
2729         * icall.c: Added a new icall for the property version of
2730         OffsetOfStringData.
2731
2732 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
2733
2734         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
2735         it has a constant size across platforms.
2736
2737         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
2738         stack trace.
2739
2740 2004-06-29  Martin Baulig  <martin@ximian.com>
2741
2742         * mono-debug.c (mono_debug_add_method): Protect the whole function
2743         in mono_debugger_lock(), not just parts of it.
2744
2745 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
2746
2747         * reflection.c: make sure padding bytes in heaps are zeroed.
2748
2749 2004-06-24  David Waite  <mass@akuma.org>
2750
2751         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
2752         image.c, loader.c, locales.c, marshal.c, metadata.c,
2753         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
2754         string-icalls.c, threads.c: change to C90-style comments from C99 /
2755         C++ -style
2756
2757 2004-06-24  Dick Porter  <dick@ximian.com>
2758
2759         * threads.c
2760         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
2761         return createdNew.  Fixes bug 60412.
2762
2763         * threads-types.h: 
2764         * icall.c: Add createdNew parameter to CreateMutex icall
2765
2766 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2767
2768         * reflection.c, object-internals.h: save default value in params.
2769
2770 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2771
2772         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
2773         no need to build a new path combining that with the application base.
2774         Fixes bug #60442.
2775
2776 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
2777
2778         * reflection.c: fixed minor standard compliance issues.
2779
2780 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
2781
2782         * reflection.c: fixed issue with encoding some custom attributes
2783         (arrays in properties and fields, bug #60411).
2784
2785 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2786
2787         * reflection.c: fix start address when copying the public key token.
2788
2789 2004-06-23  Martin Baulig  <martin@ximian.com>
2790
2791         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
2792         the `exc' object in a static object to put it into the GC's root set.
2793
2794 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
2795
2796         * reflection.c: make mono_reflection_setup_internal_class ()
2797         callable a second time to setup a new parent class.
2798
2799 2004-06-23  Dick Porter  <dick@ximian.com>
2800
2801         * threads.c: Check for WAIT_IO_COMPLETION return values.
2802
2803 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
2804
2805         * appdomain.c: Removed the g_free on the public key token. Now copy 
2806         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
2807         * assembly.c: Added public key token string value when loading 
2808         assemblies. Fix bug #60439.
2809         * icall.c: Added missing informations (like public key) in 
2810         GetReferencedAssemblies. Fix #60519.
2811         * image.h: Changed definition for public key token from const char*
2812         public_tok_value to guchar public_key_token [17];
2813         * reflection.c: Updated for changes to public key token.
2814
2815 2004-06-22  Lluis Sanchez Gual
2816
2817         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
2818         for the field in base classes.
2819
2820 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
2821
2822         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
2823         mark headers as not supported, they are installed only for use by the
2824         debugger.
2825
2826 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
2827
2828         * *.c, *.h: avoid namespace pollution in public headers.
2829
2830 2004-06-21  Martin Baulig  <martin@ximian.com>
2831
2832         * exception.c (mono_get_exception_security): It's in
2833         "System.Security", not in "System".
2834
2835         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
2836         the exception classes.
2837
2838 2004-06-21  Martin Baulig  <martin@ximian.com>
2839
2840         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
2841         Protect the exception object from being finalized.
2842
2843 2004-06-21  Martin Baulig  <martin@ximian.com>
2844
2845         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
2846         public function.
2847
2848 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
2849
2850         * reflection.c: Load the assembly in mono_reflection_type_from_name,
2851         if it was not loaded before. Fix parts of #60439.
2852
2853 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
2854
2855         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
2856         code that was broken since Ben's change: wrappers are now
2857         dependent on the method signature only again.
2858
2859 2004-06-21  Martin Baulig  <martin@ximian.com>
2860
2861         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
2862         added interface support.
2863
2864 2004-06-21  Martin Baulig  <martin@ximian.com>
2865
2866         * class.c (mono_vtable_get_static_field_data): New public method.
2867
2868 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
2869
2870         * filewatcher.c : Windows build fix to be compliant with API changes.
2871
2872 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2873
2874         * class.h, class.c: more accessors.
2875         * metadata.h, metadata.c: prepare for hiding MonoType and
2876         MonoMethodSignature: people should use the accessors from now on
2877         outside of the tree.
2878
2879 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
2880
2881         * *.c, *.h: more API cleanups.
2882
2883 2004-06-18  Jackson Harper  <jackson@ximian.com>
2884
2885         * assembly.c: Trace loading assemblies.
2886         * loader.c: Trace loading native libraries.
2887         * mono-config.c: Trace loading config files.
2888         
2889 2004-06-18  Dick Porter  <dick@ximian.com>
2890
2891         * locales.c: Tell ICU the lengths of strings, it can cope with
2892         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
2893
2894 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
2895
2896         * image.c: swapped name/filename;
2897
2898 2004-06-18  Martin Baulig  <martin@ximian.com>
2899
2900         * mono-debug-debugger.c (write_class): Write the parent class at
2901         the end of the header.
2902
2903 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
2904
2905         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
2906
2907 2004-06-17  Raja R Harinath  <rharinath@novell.com>
2908
2909         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
2910         (bundle_obj): New conditional define.
2911         (BUILT_SOURCES): Remove.
2912         ($(bundle_srcs)): Make parallel-make safe.
2913         (libmonoruntime_la_LIBADD): Make unconditional.
2914         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
2915         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
2916
2917 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
2918
2919         * culture-info-tables.h: It was inconsistent with the latest
2920           supp info files.
2921
2922 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
2923
2924         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
2925         be loaded.
2926
2927         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
2928         with gcc 2.95.
2929
2930 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
2931
2932         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
2933         cleaned up public header threads.h.
2934
2935 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
2936
2937         * Makefile.am, *.c, *.h: more API cleanups.
2938
2939 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
2940
2941         * Makefile.am: removed monosn from compilation.
2942         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
2943         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
2944         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
2945         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
2946         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
2947         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
2948
2949 2004-06-15  Jackson Harper  <jackson@ximian.com>
2950
2951         * assembly.c: Make locales lower case when searching the GAC for
2952         assemblies. gacutil will always make locales lowercase when
2953         installing so this effectively makes them case insensitive.
2954         
2955 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
2956
2957         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
2958         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
2959           parameter which allows to choose whether the wait can be interrupted or 
2960           not. Also added the method mono_monitor_enter(), which locks the monitor
2961           using an infinite wait and without allowing interruption.
2962           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
2963           interrupted.
2964         * object.h: Added new fields in MonoThread. suspend_event holds the event
2965           used to susped/resume the thread. synch_lock is the lock object to use for
2966           modifying the thread state.
2967         * threads.c: Use the new synch_lock object for locking, instead of "this",
2968           which can generate deadlocks.
2969           Moved thread state change in Thread.Sleep and Thread.Join from managed
2970           to unmanaged code. This avoids a deadlock when the thread was suspended
2971           just after acquiring the thread lock.
2972           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
2973           Implemented Thread.Suspend using an event instead of ThreadSuspend,
2974           which is not fully implemented in the io-layer.
2975         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
2976
2977 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
2978
2979         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
2980         threads-types.h: more API cleanups.
2981
2982 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
2983
2984         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
2985         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
2986         threadpool.c, threads.c: first pass at the exported API cleanup.
2987
2988 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
2989
2990         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
2991
2992 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2993
2994         * icall.c: added internalGetHome.
2995
2996 2004-06-14  Dick Porter  <dick@ximian.com>
2997
2998         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
2999         possible to return successfully when '.' or '..' were the only
3000         entries in a directory, but were skipped.  The MonoIOStat was not
3001         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
3002         Fixes bug 59574.
3003
3004 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
3005
3006         * reflection.c: make binaries run on .Net 1.1 by default.
3007
3008 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3009
3010         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
3011
3012 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
3013
3014         * marshal.c: keep track of struct size with explicit layout
3015         (bug #59979).
3016
3017 2004-06-12  Martin Baulig  <martin@ximian.com>
3018
3019         * mono-debug-debugger.c: Comment out a debugging g_message().
3020
3021 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
3022
3023         * reflection.c, reflection.h: do not free custom attrs that are cached.
3024         * icall.c: use braces to make code clearer.
3025
3026 2004-06-11  Martin Baulig  <martin@ximian.com>
3027
3028         * class.h (MonoInflatedField): New type.
3029         (MonoClassField): Replaced `MonoType *generic_type' with
3030         `MonoInflatedField *generic_info'.
3031
3032         * icall.c
3033         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
3034
3035 2004-06-11  Martin Baulig  <martin@ximian.com>
3036
3037         * reflection.c (mono_image_create_method_token): Correctly encode
3038         varargs methods.
3039
3040 2004-06-11  Martin Baulig  <martin@ximian.com>
3041
3042         * metadata.c (mono_metadata_parse_method_signature): When parsing
3043         a MethodDef which has VarArgs, also set sentinelpos if we don't
3044         have any parameters.
3045
3046 2004-06-11  Martin Baulig  <martin@ximian.com>
3047
3048         * verify.c (mono_method_verify): In CEE_CALL, use
3049         mono_method_get_signature() to get the method's signature, unless
3050         we're a PInvoke method.
3051
3052 2004-06-10  Jackson Harper  <jackson@ximian.com>
3053
3054         * assembly.c: Use <path>/lib/mono/gac for the extra paths
3055         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
3056         logical name as the supplied path is just a prefix to the gac not
3057         the direct path to it.
3058         
3059 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
3060
3061         * reflection.c: make the token for a created method match
3062         the token of the MethodBuilder it was created from
3063         (IKVM requires this behaviour now).
3064
3065 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
3066
3067         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
3068         reflection.c, socket-io.c: leak fixes.
3069
3070 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
3071
3072         * icall.c: handle sentinel pos in vararg methods in position different
3073         from 0.
3074
3075 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3076
3077         * culture-info-tables.h: freshly generated.
3078
3079 2004-06-09  Martin Baulig  <martin@ximian.com>
3080
3081         * loader.c (mono_get_method_constrained): Call `mono_class_init
3082         (constrained_class)'.   
3083
3084 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
3085
3086         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
3087         any methods. Fixes #59629.
3088
3089 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3090
3091         * culture-info-tables.h: reflecting locale-builder updates.
3092
3093 2004-06-08  Dick Porter  <dick@ximian.com>
3094
3095         * object.h:
3096         * locales.c: Fixed compile warnings, including a real bug in
3097         CompareInfo_internal_compare.
3098         
3099 2004-06-08  Dick Porter  <dick@ximian.com>
3100
3101         * locales.c
3102         (ves_icall_System_Globalization_CompareInfo_internal_index):
3103         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3104         Double-check the resuls of usearches, because ICU currently
3105         ignores most of the collator settings here.  Fixes bug 59720.
3106         
3107 2004-06-08  Dick Porter  <dick@ximian.com>
3108
3109         * locales.c
3110         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
3111         Fix memory leak and segfault-causing typo.  No idea how this one
3112         lasted so long without being noticed.
3113
3114 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
3115
3116         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
3117         any methods. Fixes #59629.
3118
3119 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3120
3121         * assembly.c:
3122         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
3123         own the critical section before). Removed dead code (that's done
3124         in the preload hook).
3125
3126         (mono_assembly_load_with_partial_name): call the preload hook.
3127
3128 2004-06-08  Martin Baulig  <martin@ximian.com>
3129
3130         * metadata.c (mono_metadata_signature_alloc): Default
3131         `sentinelpos' to -1.
3132
3133         * reflection.c (mono_image_get_array_token): Likewise.
3134
3135 2004-06-08  Martin Baulig  <martin@ximian.com>
3136
3137         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
3138
3139         * metadata.c (mono_metadata_parse_method_signature): When parsing
3140         a MethodDef which has VarArgs, set sentinelpos.
3141
3142         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
3143         `gint16' since we're using -1 for non-varargs methods.
3144
3145         * reflection.c
3146         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
3147         (method_encode_signature): Added varargs support.
3148         (method_builder_encode_signature): Likewise.
3149         (mono_image_get_varargs_method_token): New static method.
3150         (mono_image_create_method_token): New public method; this is
3151         called via an icall instead of mono_image_create_token() when
3152         calling a varargs method.       
3153
3154 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
3155
3156         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
3157
3158 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3159
3160         * culture-info-tables.h : Reflecting the latest locale-builder that
3161           fixed empty array representation ({} to {0}).
3162
3163 2004-06-07  Jackson Harper  <jackson@ximian.com>
3164
3165         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
3166         looking up extra gac paths. This allows MONO_GAC_PATH to act
3167         exactly like a prefix.
3168         
3169 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3170
3171         * reflection.c (mono_reflection_type_from_name): Make a copy of the
3172         type name before modifying it. Fixes #59405.
3173
3174 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3175
3176         * culture-info.h: added fields for "all datetime patterns".
3177         * locales.c: (  ves_icall_System_Globalization_CultureInfo
3178           _construct_datetime_format ()): fill xxx_patterns fields.
3179         * object.h: added fields for "all datetime patterns" to
3180           MonoDateTimeFormatInfo.
3181         * culture-info-tables.h: reflecting locale-builder updates.
3182
3183 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
3184
3185         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
3186         the event has no add and remove methods. Fixes #59629.
3187
3188 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
3189
3190         * object.c: Fixed possible integer overflow when allocating large
3191         strings.
3192
3193 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3194
3195         * culture-info-tables.h: reflecting locale-builder updates.
3196
3197 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
3198
3199         * culture-info-tables.h: reflecting locale-builder updates.
3200
3201 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
3202
3203         * culture-info-tables.h: reflecting locale-builder updates.
3204
3205 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
3206
3207         * threads.c: Made Thread.Sleep abortable.
3208
3209 2004-06-02  Martin Baulig  <martin@ximian.com>
3210
3211         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
3212
3213         * debug-mono-symfile.h: Bumped symbol file version number to 37.
3214
3215 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
3216
3217         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
3218
3219 2004-05-30  Jackson Harper  <jackson@ximian.com>
3220
3221         * reflection.c: Do not hardcode assembly versions or public key
3222         tokens anymore. All of this except the corlib section was dead
3223         code anyways.
3224         
3225 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
3226
3227         * object.c (mono_runtime_invoke_array): Automatically create boxed
3228         objects for byref valuetypes if needed. Fixes #59300.
3229         
3230         * object.c (mono_method_return_message_restore): Handle 
3231         MONO_TYPE_OBJECT as well.
3232
3233 2004-05-28  Jackson Harper  <jackson@ximian.com>
3234
3235         * reflection.c: The modified type encoding was causing build
3236         problems. Reverted for now.
3237         
3238 2004-05-28  Jackson Harper  <jackson@ximian.com>
3239
3240         * reflection.c/h: Take an assembly ref so that we dont create
3241         fully qualified names when encoding types in the same assembly as
3242         the custom attribute being emitted.
3243         * appdomain.c: Increment version number.
3244         
3245 2004-05-26  Duncan Mak  <duncan@ximian.com>
3246
3247         * icall.c
3248         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3249         Set the full version number (major, minor, build, revision).
3250
3251 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
3252
3253         * marshal.c (emit_struct_conv): increment src/dst after blit
3254         (mono_marshal_get_managed_wrapper,
3255         mono_marshal_get_native_wrapper): make sure we have marshalling
3256         info before marshalling params (info computation affects
3257         blittable)
3258
3259         * class.c (class_compute_field_layout): correctly deal with
3260         blittable
3261         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
3262         value types (as per what windows dows by default)
3263         (mono_class_setup_mono_type): System.ValueType is blittable
3264         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
3265         blittable
3266
3267         * marshal.c (mono_marshal_load_type_info): flag types  as
3268         non-blittable if the native layout doesn't match the managed
3269         layout
3270
3271 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3272
3273         * appdomain.c: don't add stuff in the private search path that is
3274         above the application base. If application base is not set, there's
3275         no private search path.
3276
3277 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
3278
3279         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
3280         byref struct arguments in native->managed marshalling.
3281
3282 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
3283
3284         * marshal.c (mono_marshal_get_runtime_invoke): correctly
3285         cache methods using signature (special case for methods
3286         that are value type or string class)
3287         
3288         * image.c (mono_image_close): clean up allocated GSList's
3289         in runtime_invoke_cache.
3290
3291 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3292
3293         * mono-config.c: set the correct path for mono_cfg_dir on windows when
3294         there's no MONO_CFG_DIR environment variable defined.
3295
3296 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3297
3298         * threads.c: windows version must be >= 0x0500 to include OpenThread.
3299
3300 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
3301
3302         * threadpool.c: Really wait for 500ms after the async call, even if the wait
3303           is interrumped.
3304         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
3305           before waiting for it, and call CloseHandle after the wait to unref it.
3306           This will make sure that handles are not disposed too early.
3307
3308 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3309
3310         * appdomain.c:
3311         * appdomain.h:
3312         * icall.c: removed
3313         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
3314         needed now.
3315
3316         * object.c: se the application_base only for the domain that runs
3317         Main. Fixes bug #59216,
3318
3319 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3320
3321         * appdomain.c:
3322         * object.c: only the domain in which Main is run have
3323         SetupInformation.ConfigurationFile set, so moved a few lines from
3324         appdomain.c to object.c.
3325
3326 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3327
3328         * appdomain.c: we tried to load [name].(dll|exe), but according
3329         to bug #57710, we must also try [culture]/[name].(dll|exe) and
3330         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
3331         There's a test case attached to bug #58922.
3332
3333 2004-05-27  Dick Porter  <dick@ximian.com>
3334
3335         * icall.c:
3336         * file-io.c: Implemented icalls for locking and unlocking regions
3337         in a file.
3338         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
3339         FALSE on error (fixes both compiler warning and real bug.)
3340
3341 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
3342
3343         * culture-info-tables.h: reflecting locale-builder updates.
3344
3345           (Added missing ChangeLog entry for 05/26)
3346
3347 2004-05-27  Jackson Harper  <jackson@ximian.com>
3348
3349         * locales.c: Fix some cut and paste errors.
3350         
3351 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3352
3353         * mono-config.c: set the correct path for config. directory on windows.
3354
3355 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3356
3357         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
3358           on win32.
3359
3360 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3361
3362         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
3363         from pinvoke functions.
3364         
3365         * marshal.c (mono_ftnptr_to_delegate): Implement this.
3366
3367 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3368
3369         * culture-info-tables.h: reflecting locale-builder updates.
3370
3371 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
3372
3373         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
3374         #59086.
3375
3376 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
3377
3378         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
3379         * icall.c: Modified icalls for RNG.
3380         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
3381         Windows (CryptoAPI).
3382
3383 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3384
3385         * locales.c: Fix build.
3386
3387 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3388
3389         * culture-info-tables.h: reflecting locale-builder updates.
3390
3391 2004-05-25  Jackson Harper  <jackson@ximian.com>
3392
3393         * locales.c: When creating the current culture use the $LANGs
3394         specific culture. So DateTimeFormat and NumberFormat entries are created.
3395         
3396 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
3397
3398         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
3399         a char array as parameter.
3400
3401 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
3402
3403         * image.c: In mono_image_open(), always use an absolute path name to
3404           look for already loaded images.
3405
3406 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
3407
3408         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
3409         missing in the windows build (like older cygwin include files).
3410
3411 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
3412
3413         * icall.c: Fixed check for possible integer overflow in Buffer_
3414         BlockCopy icall. Replaced comments style // by /* */.
3415
3416 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
3417
3418         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
3419         
3420         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
3421         check after MONO_VTADDR. Fixes pinvoke2.exe.
3422
3423         * marshal.h marshal.c metadata.h: Add beginnings of support for
3424         ftnptr -> delegate marshalling.
3425
3426 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
3427
3428         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
3429         * threads.c: Fix warnings.
3430
3431 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
3432
3433         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
3434         * icall.c: Registered icalls for Suspend and Resume.
3435         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
3436           Thread.Abort.
3437         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
3438         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
3439         * process.c: Use WaitForSingleObjectEx.
3440         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
3441           checkpoints.
3442         * threads.c, threads.h: Make use of new Ex wait methods. Improved
3443           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
3444           for Suspend and Resume. Added new mono_thread_stop, used for stoping
3445           background threads. Added basic support for Abort in Windows.
3446           Start new threads using a managed delegate invoke wrapper. This wrapper
3447           has an interruption checkpoint that is needed since an interruption
3448           can be requested before the thread leaves the unmanaged code that starts 
3449           the thread.
3450         * marshal.c: Added interruption checkpoint after every native call, and
3451           also before managed calls for wrappers called from unmanaged code to
3452           go into managed code.
3453         * object.h: Added new field in MonoThread to keep track of interruption
3454           requests.
3455
3456 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
3457
3458         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
3459         calls.
3460
3461 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3462
3463         * appdomain.c:
3464         * assembly.c:
3465         * gc.c:
3466         * locales.c:
3467         * mono-config.c:
3468         * rand.c: getenv -> g_getenv (windows!)
3469
3470         * process.c: complete_path is also used on non-windows platforms.
3471
3472 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3473
3474         * icall.c: new signature for Process_Start.
3475
3476         * process.[ch]: new signature for Process_Start. If we're on windows
3477         and UseShellExecute is false, we have to search for the program by
3478         ourselves if we don't get a full path.
3479
3480 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
3481
3482         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
3483         marshalling and call CleanUpNativeData if needed. Fixes #58646.
3484
3485 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3486
3487         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
3488         Fixes bug #58373.
3489
3490 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3491
3492         * process.c: use double quotes to quote program name and arguments on
3493         windows. Fixes bug #58575.
3494
3495 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3496
3497         * file-io.c: don't return "." and ".." when using windows Find*File.
3498
3499 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
3500
3501         * marshal.c: Don't pass wrappers to message init because method 
3502         addressed used to lookup metadata. part of remoting[2|3] fix.
3503
3504 2004-05-15  Jackson Harper  <jackson@ximian.com>
3505
3506         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
3507         path is essentially the same as MONO_PATH except that it points to
3508         GACs instead of lib directories.
3509         * loader.h: The user gac is gone so we dont need function to
3510         enable/disable it.
3511         * mono-config.c: user gac option is now gone.
3512         
3513 2004-05-15  Jackson Harper  <jackson@ximian.com>
3514
3515         * culture-info.h: Make defines more consistent, add calendar data
3516         to the culture info table.
3517         * culture-info-tables.h: Add basic calendar data. Basically
3518         everyone gets default gregorian until all the data is
3519         updated.
3520         * locales.c: Use the new consistent defines. Set calendar data for
3521         culture info objects.
3522         * object.h: add a field for calendar data to CultureInfo
3523         
3524 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
3525
3526         * image.c: image->runtime_invoke_cache is keyed on signatures now.
3527         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
3528         a signature.
3529         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
3530         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
3531         an extra param that is the pointer of the method to invoke. The IL for
3532         the invoke method is no longer specific to the method, but to the
3533         signature of the method. Thus, we can share the same code for multiple
3534         methods. This reduces the number of methods that have to be compiled.
3535
3536 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
3537
3538         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
3539
3540         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3541
3542         * icall.c: Optimize Buffer.BlockCopy.
3543
3544 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3545
3546         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
3547         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
3548         quote). Changed them to "MMMM yyyy".
3549
3550 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
3551
3552         * rand.c
3553         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
3554
3555 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
3556
3557         * reflection.h: Updated after changes to managed structures.
3558
3559         * appdomain.c: Bump corlib version.
3560
3561 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3562
3563         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
3564         windows.
3565
3566 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3567
3568         * Makefile.am: link to ../os/libmonoos.la on windows.
3569
3570         * assembly.c:
3571                 -If MONO_DEBUG, warn about non-existing directories in
3572                 MONO_PATH.
3573                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
3574                 compile time variable.
3575                 -Removed init_default_path and call mono_set_rootdir from
3576                 libmonoos.a instead (windows only).
3577
3578         * assembly.h: declare mono_assembly_getrootdir().
3579
3580         * domain.c:
3581         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
3582
3583         * loader.c: s/getenv/g_getenv/
3584
3585 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
3586
3587         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
3588
3589         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
3590
3591         * metadata.h: Add new marshalling conversions.
3592
3593         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
3594         function.
3595
3596         * reflection.c (mono_reflection_get_type): Lookup the type in all
3597         modules of a multi-module assembly. Fixes #58291.
3598
3599 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
3600
3601         * threads.c: Before aborting a background, set the StopRequested
3602         state.  This avoids throwing the Abort exception.
3603         In mono_thread_manage, don't continue with the shutdown until all
3604         aborted threads have actually stopped.
3605
3606 2004-05-10  Jackson Harper  <jackson@ximian.com>
3607
3608         * locales.c: Remove the modifier from culture names.
3609         
3610 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3611
3612         * Makefile.am: monosn is not installed any more. It has been deprecated
3613         in favor of sn.
3614
3615 2004-05-07  Jackson Harper  <jackson@ximian.com>
3616
3617         * locales.c
3618         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
3619         Fix array construction, add bailout if the length is 0.
3620
3621 2004-05-07  Dick Porter  <dick@ximian.com>
3622
3623         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
3624         machine doesn't have a DNS entry.  Patch by Urs Muff
3625         (umuff@quark.com), fixes bug 57928.
3626
3627 2004-05-06  Jackson Harper  <jackson@ximian.com>
3628
3629         * reflection.c: Handle null PublicTokens properly. alloc mem for
3630         assembly names culture so we dont crash when freeing it.
3631         
3632 2004-05-06  Jackson Harper  <jackson@ximian.com>
3633
3634         * assembly.c: Check the usergac when loading with partial names.
3635         
3636 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3637
3638         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
3639         does nothing for now (not required for Linux/Windows) but the class
3640         library can call it (and a newer or modified runtime could need it).
3641         * icall.c: Registred icall.
3642
3643 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3644
3645         * loader.c: prints a message on module loading error we set MONO_DEBUG
3646         environment variable.
3647
3648 2004-05-05  Jackson Harper  <jackson@ximian.com>
3649
3650         * appdomain.c: Handle PublicKeyToken=null properly.
3651         
3652 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
3653
3654         * environment.c|h: Added icall ves_icall_System_Environment_
3655         GetOSVersionString to get the current OS version as a string.
3656         * icall.c: Registred icall.
3657
3658 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
3659
3660         * object.c: in mono_object_get_virtual_method(), take into account that
3661         non-virtual methods don't have a slot in the vtable. Check needed when
3662         the object is a proxy.
3663
3664 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
3665
3666         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
3667         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
3668
3669         * object.c (mono_class_compute_gc_descriptor): Fix warning.
3670
3671         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
3672         passed when a valuetype is expected.
3673
3674         * object.c (mono_unhandled_exception): Only set the exit code if the
3675         exception happens in the main thread. Fixes thread5.exe.
3676
3677         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
3678         invalid names. Fixes #58047.
3679
3680 2004-05-03  Jackson Harper  <jackson@ximian.com>
3681
3682         * assembly.c: This line was committed accidently and is unneeded.
3683         
3684 2004-05-03  Jackson Harper  <jackson@ximian.com>
3685
3686         * icall.c: Add new icall for Assembly::LoadWithPartialName
3687         * assembly.c/.h: new function that probes the GAC to load partial
3688         assembly names by Paolo Molaro.
3689         
3690 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3691
3692         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
3693         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
3694         (type_get_fully_qualified_name): Added PublicKeyToken when building a
3695         full type name.
3696
3697 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3698
3699         * appdomain.c: fixed check for 'neutral' culture and removed warning.
3700         * reflection.c: fix bug when parsing a full type name and Version is not
3701         the last thing in the string.
3702
3703 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
3704
3705         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
3706         crashes when it is freed.
3707
3708 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3709
3710         * assembly.c: print the compat warning to stderr.
3711
3712 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
3713
3714         * assembly.c (mono_assembly_load_references): Add a compatibility
3715         hack to run old applications that might be still referencing the
3716         3300-based assemblies, only do this for System.xxx.
3717
3718 2004-05-01  Jackson Harper  <jackson@ximian.com>
3719
3720         * appdomain.c: If the culture is neutral we set it to "".
3721         
3722 2004-04-29  Jackson Harper  <jackson@ximian.com>
3723
3724         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
3725
3726 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
3727  
3728         * string-icalls.c: added low overhead function for copying chars
3729         * icall.c: added needed icall for the above function
3730  
3731 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3732
3733         * icall.c: fix return value of get_global_assembly_cache.  Implemented
3734         Environment.GetLogicalDrives.
3735
3736 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
3737
3738         * rand.c: try and talk to egd or prngd
3739         for random bytes if opening devices fail.
3740
3741 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
3742
3743         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
3744         alignment for the type using the native alignment of its members 
3745         instead of using klass->min_align.
3746
3747         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
3748
3749 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3750
3751         * file-io.c:
3752         * socket-io.c: added check for sys/aio.h.
3753
3754 2004-04-28  Dick Porter  <dick@ximian.com>
3755
3756         * threads.c: Don't abort a thread thats already aborting, when
3757         terminating everything.
3758
3759 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3760
3761         * icall.c: added 2 new async calls for Socket.
3762
3763         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
3764         IO on *nix systems.
3765
3766         * threadpool.c: removed unused variable.
3767
3768 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
3769
3770         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
3771
3772 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
3773
3774         * locales.c: put back string_invariant_tolower () and
3775         string_invariant_toupper ().
3776
3777 2004-04-26 David Waite <mass@akuma.org>
3778
3779         * file-io.h:
3780         * socket-io.h:
3781         * threads.h:
3782         * unicode.h: remove comma from end of enumeration declarations
3783
3784 2004-04-26 David Waite <mass@akuma.org>
3785
3786         * debug-mono-symfile.h:
3787         * decimal.c:
3788         * mono_debug.h:
3789         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
3790
3791
3792 2004-04-26  Jackson Harper  <jackson@ximian.com>
3793
3794         * appdomain.c: Increment version number.
3795         
3796 2004-04-26  Jackson Harper  <jackson@ximian.com>
3797
3798         * appdomain.c: Set assembly references public token value when
3799         PublicKeyToken is specified, not the hash_value. Free public token
3800         values when free assembly name data. Previously the public key
3801         token was hex decoded, however we are using hex encoded public key
3802         tokens, so this is not neccasary.
3803         * assembly.c: Lookup assemblies in the gac if their public token
3804         value is set. Add function to allow enabling user gac
3805         lookups. Specify whether or not the assembly was loaded from the
3806         GAC. Compare full assembly names when checking the cache for
3807         assemblies (Temporarily disabled see comment in code). Remove
3808         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
3809         specifies trace-loader they get extra info to stdout on the
3810         loading of assemblies.
3811         * image.h: Add a field for an assembly references public token
3812         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
3813         whether an assembly has been loaded from the GAC.
3814         * image.c: Remove a corlib -> mscorlib name mapping.
3815         * loader.h: Add function to enable/disable the user gac.
3816         * mono-config.c: Check if the usergac is enabled in the config
3817         file.
3818         * icall.c: New icall to determine whether or not an assembly has
3819         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
3820         * tabldefs.h: Add constant for assemblyref flag that specifies a
3821         full public key is used instead of a public token.
3822         * reflection.c: Remove mscorlib -> corlib mappings. Set
3823         PublicTokenValue instead of hash value. This value is a hex
3824         string so it does not need to be expanded.
3825
3826 2004-04-26  Martin Baulig  <martin@ximian.com>
3827
3828         * mono-debug-debugger.c (mono_debugger_initialize): Set
3829         `mono_debugger_initialized' before calling mono_debug_lock().
3830
3831 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
3832
3833         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
3834           InternalToUpper/InternalToLower.
3835         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
3836           removed invariant culture shortcut.  This is now done in managed code.
3837         * locales.c: (string_invariant_toupper/tolower) removed.
3838
3839 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3840
3841         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
3842         Added Poll internal call.
3843
3844         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
3845         call for Poll. Select was too heavy for polling a single socket.
3846
3847         * threadpool.[ch]: added mono_threadpool_cleanup.
3848         * threads.c: use it. Don't use Thread_Abort on windows.
3849
3850 2004-04-23  Martin Baulig  <martin@ximian.com>
3851
3852         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
3853
3854 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
3855
3856         * icall.c: Registred new icalls for key pair protection and added an
3857         icall for Environment.GetFolderPath on Windows.
3858         * security.c|h: Added new icalls for key pair protection.
3859
3860 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3861
3862         * socket-io.c: don't display the non-supported family warning for known
3863         families. Now this is not displayed on windows when checking support
3864         for IPv4/IPv6.
3865
3866 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3867
3868         * class.c: don't display the layout warning for static fields.
3869
3870 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
3871
3872         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
3873         * locales.c, locales.h: Added new icalls for culture-specific
3874         Char.ToLower and Char.ToUpper.
3875
3876 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3877
3878         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
3879         by David Waite.
3880
3881 2004-04-20  Martin Baulig  <martin@ximian.com>
3882
3883         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
3884         of the type name before passing it to mono_reflection_type_from_name().
3885
3886 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
3887
3888         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
3889         encodings here. Fixes #56965.
3890
3891 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
3892
3893         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3894         fix test on strstr result not that I can see anything that
3895         relies on the result.
3896
3897 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
3898
3899         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
3900         Fixes #57081.
3901
3902         * marshal.c (mono_marshal_get_string_encoding): New helper function.
3903
3904         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
3905         function to determine which marshalling to use for strings. Fixes
3906         #56965.
3907
3908         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
3909
3910         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
3911
3912 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
3913
3914         * icall.c: #include mono-config.h
3915
3916 2004-04-15  Jackson Harper  <jackson@ximian.com>
3917
3918         * culture-info-tables.h: Fix date formats for en-US culture.
3919         
3920 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
3921
3922         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
3923         ThreadPool.SetMinThreads.
3924         * threadpool.c: Implemented ThreadPool.GetMinThreads and
3925         ThreadPool.SetMinThreads.
3926
3927 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
3928
3929         * mono-config.c: also load the .config file in the directory
3930         where the assembly was found.
3931
3932 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
3933
3934         * assembly.c: load per-assembly config files.
3935         * icall.c: decrapified code to get the config dir and moved to
3936         mono-config.c.
3937         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
3938         per-assembly config files. When doing a dll map lookup give precedence
3939         to the per-assembly data.
3940
3941 2004-04-14  Martin Baulig  <martin@ximian.com>
3942
3943         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
3944         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
3945         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
3946
3947         * mono-debugger-debugger.c: While the debugger is locked, remember
3948         whether the symbol tables have changes and send one single
3949         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
3950
3951 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
3952
3953         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
3954
3955         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
3956         function.
3957
3958         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
3959         account when marshalling string arrays. Fixes #56965.
3960
3961 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
3962
3963         * icall.c: Add new icalls mapping for security.
3964         * security.c|h: Add internal calls for WindowsIdentity,
3965         WindowsImpersonationContext and WindowsPrincipal.
3966
3967 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
3968
3969         * class.c: Added comment to ensure the System.MonoDummy class
3970         is removed when no longer necessary
3971
3972 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
3973
3974         * appdomain.c: Pass arguments to the bootstraping exceptions to
3975         minimize JITed methods at boot
3976
3977         * metadata.c (mono_exception_from_name_two_strings): Allow for the
3978         second string to be null.
3979
3980         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
3981         Change the protocol to minimize the JIT methods at startup.  Now
3982         it Returns the internal codepage, if the value of "int_code_page"
3983         is 1 at entry, and we can not compute a suitable code page
3984         number, returns the code page as a string.
3985
3986 2004-04-13  Jackson Harper  <jackson@ximian.com>
3987
3988         * culture-info-tables.h: Fix number of decimal digits for all
3989         english locales.
3990
3991 2004-04-13  Jackson Harper  <jackson@ximian.com>
3992
3993         * icall.c: Clairfy out of sync error message. It is not always
3994         your corlib that is out of sync.
3995
3996 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
3997
3998         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
3999         properties when only the set accessor is overriden. Fixes #55874.
4000
4001 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
4002
4003         * assembly.c (mono_assembly_load_references): Make this thread safe.
4004         Fixes #56327.
4005
4006 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
4007
4008         * monosn.c: Add missing initialization calls.
4009
4010 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
4011
4012         * locales.c:
4013         ves_icall_System_Globalization_CultureInfo_construct_number_format
4014         Fix g_assert so it compiles on fussier compilers re int/ptr
4015         mismatch
4016
4017 2004-04-08  Dick Porter  <dick@ximian.com>
4018
4019         * socket-io.h:
4020         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
4021         53992.  Also rearrange the code so that the internal calls return
4022         an error value and exceptions are thrown from managed code.
4023
4024         * icall.c: Add type info to the socket icalls.
4025
4026 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4027
4028         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
4029         owes me a beer.
4030
4031 2004-04-07  Martin Baulig  <martin@ximian.com>
4032
4033         * class.c (mono_class_from_generic_parameter): Don't default
4034         `klass->parent' to `mono_defaults.object_type'.
4035
4036 2004-04-07  Martin Baulig  <martin@ximian.com>
4037
4038         * reflection.c (mono_reflection_initialize_generic_parameter): Set
4039         `param->pklass->reflection_info'.       
4040
4041 2004-04-07  Jackson Harper  <jackson@ximian.com>
4042
4043         * culture-info-tables.h: Fix date separator symbol.
4044         
4045 2004-04-07  Martin Baulig  <martin@ximian.com>
4046
4047         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
4048         from System.Type to System.MonoType.
4049
4050 2004-04-07  Martin Baulig  <martin@ximian.com>
4051
4052         * reflection.h
4053         (MonoReflectionGenericParam): Added `has_reference_type' and
4054         `has_value_type' fields.
4055
4056         * reflection.c (mono_image_get_generic_param_info): Encode the
4057         correct flags if we have the `class' or `struct' constraint.
4058
4059 2004-04-07  Martin Baulig  <martin@ximian.com>
4060
4061         * reflection.h
4062         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
4063
4064 2004-04-07  Jackson Harper  <jackson@ximian.com>
4065
4066         * appdomain.c: Revert extra patches, just wanted to bump the
4067         version number.
4068         
4069 2004-04-07  Jackson Harper  <jackson@ximian.com>
4070
4071         * Makefile.am: Add culture-info private headers.
4072         * icall.c: Add new icalls for contructing locales.
4073         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
4074         * locales.h: Declare new culture info construction methods.
4075         * object.h: Add new fields used to avoid the CultureMap to
4076         MonoCultureInfo.
4077         * culture-info.h: Definition of structs used in the culture info
4078         tables.
4079         * culture-info-tables.h: Autogenerated tables that contain culture
4080         info data. This file was generated with the locale-builder tool.
4081         * appdomain.c: Incement corlib version number.
4082         
4083 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
4084
4085         * appdomain.c: (mono_runtime_init) move mono_thread_init
4086         to before mono_object_new calls so critical sections
4087         are initialized before use.
4088
4089 2004-04-07  Martin Baulig  <martin@ximian.com>
4090
4091         * icall.c
4092         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
4093         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
4094         (ves_icall_MonoGenericParam_initialize): Removed.
4095         (monogenericparam_icalls): Removed.
4096         (generictypeparambuilder_icalls): Added new table for
4097         System.Reflection.Emit.GenericTypeParameterBuilder.
4098
4099         * reflection.c
4100         (mono_reflection_define_generic_parameter): Removed.
4101         (mono_reflection_initialize_generic_parameter): This is now called
4102         from GenericTypeParameterBuilder's .ctor.
4103
4104 2004-04-06  Martin Baulig  <martin@ximian.com>
4105
4106         * class.c (mono_class_init): Don't inflate nested classes in a
4107         generic instance.
4108         (mono_type_get_name_recurse): Include the generic arguments for
4109         generic instances and generic type declarations.
4110         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
4111         (_mono_class_get_instantiation_name): Removed.
4112         (mono_class_create_generic): Always use `gklass->name' as our name.
4113
4114         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
4115
4116         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
4117         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
4118         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
4119         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
4120         closed generic methods here.
4121
4122         * reflection.c
4123         (mono_reflection_generic_inst_get_nested_types): Removed.
4124         (inflate_mono_method): Copy the generic parameters from the
4125         MonoMethodHeader into out MonoGenericMethod.
4126
4127 2004-04-06  Martin Baulig  <martin@ximian.com>
4128
4129         * row-indexes.h
4130         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
4131
4132         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
4133
4134         * reflection.c (build_compressed_metadata): If we have any entries
4135         in the GenericParam, MethodSpec or GenericParamConstraint tables,
4136         set the header version to 1.1.
4137
4138 2004-04-06  Martin Baulig  <martin@ximian.com>
4139
4140         * class.c (mono_class_init): If we're a generic instance,
4141         initialize our nested classes, too.
4142         (_mono_class_get_instantiation_name): Deal with the new `!%d'
4143         suffix. 
4144
4145 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4146
4147         * process.c: quote the argument passed to the shell on windows.
4148
4149 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
4150
4151         * threads.c (mono_alloc_special_static_data): Allow this to be
4152         called during startup.
4153
4154 2004-04-02  Martin Baulig  <martin@ximian.com>
4155
4156         * icall.c
4157         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
4158
4159 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
4160
4161         * icall.c: Fix build.
4162
4163 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
4164
4165         * Makefile.am: Added security.c|h.
4166         * icall.c: Added icall for get_UserName;
4167         * security.c: New file for security related icalls. Added function
4168         get_UserName for System.Environment (fix #56144).
4169         * security.h: New. Header file for security.c
4170
4171 2004-04-02  Dick Porter  <dick@ximian.com>
4172
4173         * icall.c: Deleted the icalls that were obsoleted some time ago
4174         by the ICU string code, and which were mixed into the icall
4175         rearranging.  Fixes bug 55969.
4176
4177         * string-icalls.h: 
4178         * string-icalls.c: Deleted the code that those icalls reference.
4179
4180 2004-04-01  Martin Baulig  <martin@ximian.com>
4181
4182         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
4183
4184         * class.c (mono_class_from_generic_parameter): Don't set 
4185         TYPE_ATTRIBUTE_INTERFACE.
4186         (my_mono_class_from_generic_parameter): Likewise.
4187
4188 2004-04-01  Martin Baulig  <martin@ximian.com>
4189
4190         * loader.c (find_method): Added an optional `MonoClass *ic'
4191         argument to search in a specific interface.
4192         (mono_get_method_constrained): New public function.
4193
4194 2004-04-01  Martin Baulig  <martin@ximian.com>
4195
4196         * reflection.c (mono_image_get_generic_field_token): Use the
4197         `handleref' cache here.
4198
4199 2004-04-01  Martin Baulig  <martin@ximian.com>
4200
4201         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
4202
4203         * reflection.c (create_generic_typespec): Use the `typespec' hash
4204         here, not the `typeref' one.    
4205
4206 2004-04-01  Martin Baulig  <martin@ximian.com>
4207
4208         * class.c (mono_class_inflate_generic_type): Moved the
4209         functionality into a new static inflate_generic_type() which
4210         returns NULL if it didn't do anything.  Only increment the
4211         `mono_stats.inflated_type_count' if we actually inflated
4212         something.
4213         (mono_class_get_full): Check the classes type to see whether we
4214         need to inflate it; also inflate MONO_TYPE_(M)VAR.
4215
4216 2004-04-01  Jackson Harper  <jackson@ximian.com>
4217
4218         * reflection.c: Set culture for assembly references.
4219         
4220 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
4221
4222         * reflection.[ch], icall.[ch], Fix support for pinning variables.
4223
4224 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4225
4226         * assembly.c:
4227         (do_mono_assembly_open): the critical section also covers
4228         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
4229
4230 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4231
4232         * threads.c:
4233         (mono_manage_threads): abort the background threads when finishing.
4234         Fixes bug #47232.
4235
4236 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4237
4238         * gc.c: only close the done_event handle if there was no timeout.
4239         C-ified comments.
4240
4241 2004-03-30  Martin Baulig  <martin@ximian.com>
4242
4243         * icall.c (icall_entries): It's called "System.Activator", not
4244         "System.Activation".    
4245
4246 2004-03-30  Martin Baulig  <martin@ximian.com>
4247
4248         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
4249         (mono_class_create_from_typespec): Likewise.
4250
4251 2004-03-30  Martin Baulig  <martin@ximian.com>
4252
4253         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
4254         `has_ctor_constraint' and `initialized'.
4255
4256 2004-03-30  Martin Baulig  <martin@ximian.com>
4257
4258         * reflection.c (encode_new_constraint): New static function to add
4259         the constructor constraint attribute to a type parameter.
4260         (encode_constraints): Call encode_new_constraint() if necessary.
4261
4262         * reflection.h
4263         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
4264
4265         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
4266         
4267 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
4268
4269         * reflection.c, icall.c: add support for pinning variables. 
4270
4271 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
4272
4273         * marshal.c (mono_marshal_get_managed_wrapper):
4274         init bool local with zero rather than null.
4275
4276 2004-03-29  Martin Baulig  <martin@ximian.com>
4277
4278         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
4279         the "official" behavior here.
4280         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
4281
4282 2004-03-29  Martin Baulig  <martin@ximian.com>
4283
4284         * icall.c: Reflect latest API changes.
4285
4286 2004-03-29  Martin Baulig  <martin@ximian.com>
4287
4288         * loader.c (mono_get_method_from_token): Also call
4289         mono_metadata_load_generic_params () for abstract and interface
4290         methods; replace the type arguments in the method signature with
4291         the ones which are loaded from the metadata.
4292
4293 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
4294
4295         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
4296         of the lock is not the current thread. MS.NET don't do it, in spite of
4297         what the documentation says. See bug #56157.
4298
4299 2004-03-28  Martin Baulig  <martin@ximian.com>
4300
4301         * class.c (mono_class_init): Don't call init_properties() and
4302         init_events() for generic instances; set `prop->parent' when
4303         inflating properties.
4304
4305         * reflection.c (mono_generic_inst_get_object): Call
4306         `mono_class_init (ginst->klass)'.
4307         (mono_type_get_object): Only create a MonoGenericInst if your
4308         generic type is a TypeBuilder.
4309         (do_mono_reflection_bind_generic_parameters): Only set
4310         `ginst->is_dynamic' if our generic type is a TypeBuilder.
4311
4312 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
4313
4314         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
4315         Fixes #56091.
4316
4317 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4318
4319         * icall.c: added Kill_internal icall.
4320         * process.[ch]: added Kill_internal icall.
4321
4322 2004-03-25  Martin Baulig  <martin@ximian.com>
4323
4324         * class.h (MonoStats): Added `generic_instance_count',
4325         `inflated_method_count', `inflated_type_count' and
4326         `generics_metadata_size'.       
4327
4328 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4329
4330         * reflection.c: no warnings now.
4331
4332 2004-03-25  Martin Baulig  <martin@ximian.com>
4333
4334         * class.c (mono_class_get_full): New public function; does a
4335         mono_class_get(), but also takes a `MonoGenericContext *'.
4336
4337         * loader.c (mono_field_from_memberref): Renamed to
4338         `field_from_memberref', made static and added `MonoGenericContext *'
4339         argument.
4340         (mono_field_from_token): Added `MonoGenericInst *' argument.
4341         (method_from_memberef): Likewise.
4342         (mono_get_method_from_token): Likewise.
4343         (mono_get_method_full): New public function; does a
4344         mono_get_method(), but also takes a `MonoGenericContext *'.
4345
4346         * verify.c (mono_method_verify): Get the method's generic context
4347         and pass it to mono_field_from_token(), mono_get_method_full() and
4348         mono_class_get_full().
4349
4350 2004-03-25  Martin Baulig  <martin@ximian.com>
4351
4352         * class.c (mono_class_inflate_generic_type): Take a
4353         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
4354         `MonoGenericMethod *'.
4355
4356 2004-03-25  Martin Baulig  <martin@ximian.com>
4357
4358         * loader.h (MonoMethodInflated): Store the MonoGenericContext
4359         instead of the MonoGenericMethod here.
4360
4361 2004-03-25  Martin Baulig  <martin@ximian.com>
4362
4363         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
4364         each time we create a new MonoGenericInst, we also create a new
4365         context which points back to us.
4366
4367         * class.c (inflate_method): Use `ginst->context' instead of
4368         creating a new context.
4369
4370         * loader.c (method_from_memberref): Use
4371         `klass->generic_inst->context' instead of creating a new context.
4372
4373 2004-03-25  Martin Baulig  <martin@ximian.com>
4374
4375         * class.h (MonoGenericContext): New struct.
4376         (MonoGenericMethod): Removed `generic_inst'.
4377
4378         * class.c (mono_class_inflate_generic_method): Take a
4379         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
4380
4381 2004-03-25  Martin Baulig  <martin@ximian.com>
4382
4383         * loader.h (MonoMethodInflated): New typedef.
4384
4385         * metadata.h (MonoMethodSignature): Removed `gen_method', make
4386         `generic_param_count' consume just 30 bits, added `is_inflated'
4387         and `has_type_parameters' flags (one bit each).
4388
4389         * class.c (mono_class_inflate_generic_method): Create a
4390         MonoMethodInflated instead of a MonoMethodNormal and set
4391         `is_inflated' in the method signature.
4392
4393         * class.h (MonoGenericMethod): Removed `generic_method'.
4394
4395 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
4396
4397         * image.c: Make sure the name of a MonoImage is always an absolute path.
4398           This fixes bug #54415.
4399
4400 2004-03-24  Martin Baulig  <martin@ximian.com>
4401
4402         * class.c (mono_class_setup_vtable): If we're a generic instance,
4403         use our generic type's vtable size.
4404
4405 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
4406
4407         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
4408         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
4409         problems.
4410
4411 2004-03-23  Martin Baulig  <martin@ximian.com>
4412
4413         * class.h (MonoDynamicGenericInst): Added `int count_events' and
4414         `MonoEvent *events'.
4415
4416         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
4417         (typebuilder_icalls): Added "get_event_info"; calls
4418         mono_reflection_event_builder_get_event_info(). 
4419
4420         * reflection.c (mono_reflection_generic_inst_initialize): Added
4421         `MonoArray *events'.
4422         (mono_reflection_event_builder_get_event_info): New function.
4423
4424 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
4425
4426         * object.h: add mono_type_initialization_init
4427
4428         * object.c (mono_runtime_class_init): 
4429         implement class constructor synchronization rules
4430         to cope with threading issues.  
4431         add mono_type_initialization_init
4432
4433         * appdomain.c (mono_runtime_init): call 
4434         mono_type_initialization_init
4435
4436         * class.h: removing initializing field from MonoVTable
4437
4438 2004-03-23  Martin Baulig  <martin@ximian.com>
4439
4440         * class.c (my_mono_class_from_generic_parameter): Use
4441         `param->name' if it's not NULL. 
4442
4443 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
4444
4445         * class.c: do not insert non-virtual methods in the vtable.
4446         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
4447         that means the method is non-virtual. This never would have
4448         happened before.
4449
4450 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
4451
4452         * profiler.c: Added lock for accessing coverage_hash.
4453
4454 2004-03-22  Martin Baulig  <martin@ximian.com>
4455
4456         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
4457         `method->method->signature->generic_param_count != 0' to make it
4458         work for interface methods.
4459
4460 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4461
4462         * process.c: quote the string passed to the shell using g_shell_quote.
4463
4464 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4465
4466         * threads.c:
4467         (mono_threads_manage): don't remove the finalizer thread and self
4468         from the threads hash table so that mono_thread_manage can be called
4469         more than once.
4470
4471 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4472
4473         * process.c: quote the arguments when UseShellExecute is true. Fixes
4474         bug #55790.
4475
4476 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4477
4478         * threads.c: set mono_thread_detach as a cleanup routine for every
4479         thread. This way it's always executed upon thread termination, either
4480         aborted or finished normally. No more xsp hangs!
4481
4482 2004-03-17  Martin Baulig  <martin@ximian.com>
4483
4484         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
4485         `int count_nested' and a `MonoType **nested'.
4486
4487         * reflection.c (mono_reflection_bind_generic_parameters): Moved
4488         most of the functionality into a new static
4489         do_mono_reflection_bind_generic_parameters() and don't take a
4490         `MonoType *nested_in' argument any more.  Don't compute nested
4491         types here.
4492         (mono_reflection_generic_inst_get_nested_types): New public method
4493         to get nested types.
4494
4495         * class.c (mono_class_create_generic): Set `klass->nested_in' if
4496         we're a nested class.
4497
4498         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
4499         mono_reflection_generic_inst_get_nested_types() to compute the
4500         nested types.
4501
4502 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4503
4504         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
4505         descriptive error message under windows.
4506         
4507 2004-03-17  Martin Baulig  <martin@ximian.com>
4508
4509         * class.c (dup_type): Added `const MonoType *original' argument;
4510         copy the attrs from the original type.
4511
4512 2004-03-17  Martin Baulig  <martin@ximian.com>
4513
4514         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
4515         `m->generic_inst_cache' here.
4516
4517 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
4518
4519         * exception.h exception.c: Add stack_overflow_exception.
4520
4521 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4522
4523         * threadpool.c:
4524         (overlapped_callback): call SetEvent *after* invoking the callback.
4525         No need to call CloseHandle.
4526
4527 2004-03-16  Martin Baulig  <martin@ximian.com>
4528
4529         * reflection.c (mono_image_get_fieldref_token): Take a
4530         `MonoReflectionField *' instead of a `MonoClassField *' and a
4531         `MonoClass *'; store the `MonoReflectionField *' in the hash.
4532
4533 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4534
4535         * appdomain.c: don't add the culture to the filename we're looking for
4536         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
4537
4538 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4539
4540         * locales.c: don't ignore symbols when doing case insensitive compares.
4541         Thanks Dick! Fixes bug #54046.
4542
4543         * threads.c: surround 'threads' usage with enter/leave in
4544         mono_thread_manage.
4545
4546 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
4547
4548         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
4549         implicitly marshalled as [Out]. Fixes #55450.
4550
4551         (mono_marshal_get_runtime_invoke): Zero out the result if there is
4552         an exception.
4553
4554 2004-03-16  Martin Baulig  <martin@ximian.com>
4555
4556         * class.c (mono_class_from_generic_parameter): Use the actual
4557         parameter name. 
4558
4559 2004-03-16  Martin Baulig  <martin@ximian.com>
4560
4561         * reflection.c (type_get_signature_size): New static function.
4562         Compues the size of the type in a method signature.
4563         (method_get_signature_size): New static function; calls
4564         type_get_signature_size() to compute the actual size of the
4565         method's signature.
4566         (method_encode_signature): Use method_get_signature_size() to get
4567         the signature's size rather than using `nparams * 10'.
4568
4569 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4570
4571         * file-io.h: define here WapiOverlapped on windows. I don't want the
4572         regular OVERLAPPED one.
4573
4574         * file-io.c:
4575         * threadpool.c: somehow, BindIoCompletionCallback is not found.
4576         Disabling AIO on windows.
4577
4578 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4579
4580         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
4581         bug #55385.
4582
4583 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4584
4585         * appdomain.c: upgraded corlib version.
4586
4587         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
4588         and BeginWrite. Allow opening files for asynchrnous operations.
4589
4590         * file-io.h: new struct that maps FileStreamAsyncResult.
4591         * icall.c: added new icalls.
4592         * process.[ch]: support setting child process environment variables
4593         and use the SHELL or COMSPEC when UseShellExecute is true.
4594
4595         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
4596         callback for async. IO is here and also BindHandle.
4597
4598         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
4599         from here.
4600
4601 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
4602
4603         * reflection.c (create_custom_attr): Allow len == 0.
4604
4605         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
4606         computation on big-endian machines.
4607
4608 2004-03-13  Martin Baulig  <martin@ximian.com>
4609
4610         * class.h (MonoGenericInst): Added `int count_ifaces'.
4611
4612         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
4613         `ginst->count_ifaces' instead `klass->interface_count' since we
4614         may get called before the vtable is created.
4615
4616         * loader.c (mono_method_get_param_names): If we're a generic
4617         instance, return and don't initialize the class.
4618
4619         * reflection.c (mono_reflection_setup_generic_class): Don't call
4620         ensure_runtime_vtable().
4621         (mono_reflection_bind_generic_parameters): Set
4622         `ginst->count_ifaces'.
4623
4624 2004-03-11  Jackson Harper <jackson@ximian.com>
4625
4626         * icall.c:
4627         * unicode.c:
4628         * unicode.h: Remove unused System.Char icalls.
4629         
4630 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
4631
4632         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
4633         code when we P/Invoke the first library in Windows.Forms, instead
4634         of when we first open the assembly.
4635
4636         * assembly.c: Drop the lookup from here.
4637
4638 2004-03-10  Martin Baulig  <martin@ximian.com>
4639
4640         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
4641         class for properties, fields and events.  Finally fixes #54945.
4642
4643 2004-03-10  Martin Baulig  <martin@ximian.com>
4644
4645         * metadata.c (mono_metadata_class_equal): New static function;
4646         checks whether two generic instances or two generic parameters are
4647         equal.
4648         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
4649         compare classes.        
4650
4651 2004-03-10  Martin Baulig  <martin@ximian.com>
4652
4653         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
4654
4655         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
4656         argument and write it into the `reflection_info' field.
4657
4658         * icall.c
4659         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
4660         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
4661
4662 2004-03-09  Jackson Harper  <jackson@ximian.com>
4663
4664         * char-conversions.h: use 8 bits for numeric data its all we need
4665         * icall.c: numeric data is only 8 bits now.
4666
4667 2004-03-09  Martin Baulig  <martin@ximian.com>
4668
4669         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
4670
4671         * class.c (init_properties, init_events): Initialize the new
4672         `parent' field.
4673
4674         * reflection.c (typebuilder_setup_properties): Likewise.
4675         (typebuilder_setup_events): Likewise.
4676
4677         * reflection.h (MonoEventInfo): Replaced `parent with
4678         `declaring_type' and `reflected_type'.
4679
4680         * icall.c (ves_icall_get_property_info): Distinguish between
4681         declaring and reflected type.
4682         (ves_icall_get_event_info): Likewise.
4683
4684 2004-03-09  Martin Baulig  <martin@ximian.com>
4685
4686         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
4687         (ves_icall_Type_GetField): Correctly set field->klass.
4688
4689 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
4690
4691         * loader.h: Fix warning.
4692
4693 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
4694
4695         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
4696         library routine if present.  Notice that it will still continue
4697         executing even if its missing, for those working on the Gtk#
4698         edition of Windows.Forms.
4699
4700         * assembly.c (do_mono_assembly_open): If loading the
4701         System.Windows.Forms call mono_loader_wini_init.
4702
4703 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
4704
4705         * class.h: Added MonoRemoteClass struct.
4706         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
4707         function for MonoStrings.
4708         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
4709         Added internal call for getting the proxy type.
4710         * marshal.c: Get the type of transparent proxies from its remote_class.
4711         Added methods that generate the IL for type checks and casts:
4712         mono_marshal_get_isinst, mono_marshal_get_castclass, 
4713         mono_marshal_get_proxy_cancast.
4714         * marshal.h: Declaration of the previous new methods.
4715         * object.c: Added new moethods for creating and updating MonoRemoteClass
4716         instances: mono_remote_class, mono_upgrade_remote_class, 
4717         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
4718         * verify.c: FIx transparent_proxy_fields layout.
4719         * appdomain.c: Bump corlib version.
4720
4721 2004-03-04  Jackson Harper  <jackson@ximian.com>
4722
4723         * icall.c: Add icall to access char conversion tables.
4724         * char-conversions.h: Character conversion tables.
4725         * Makefile.am: Add char-conversions.h private header file.
4726         
4727 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
4728
4729         * appdomain.c (unload_thread_main): Increase unloading timeout to
4730         10 sec as a temporary workaround for Nant problems.
4731
4732 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
4733
4734         * gc.c: Add checks for GC_enable and GC_disable.
4735
4736         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
4737         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
4738         (bug #54988).
4739         
4740 2004-02-27  Martin Baulig  <martin@ximian.com>
4741
4742         * reflection.c (mono_reflection_bind_generic_parameters): Take a
4743         `MonoReflectionType *' instead of a `MonoType *'.
4744
4745 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
4746
4747         * gc.c (run_finalize): Avoid finalizing the object representing the
4748         finalizer thread.
4749         (finalizer_thread): Fix warning.
4750
4751 2004-02-25  Martin Baulig  <martin@ximian.com>
4752
4753         * class.c (_mono_class_get_instantiation_name): Added `int offset'
4754         argument for nested types.
4755         (mono_class_create_generic): Added support for nested generictypes.
4756
4757         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
4758         `GList *nested'.
4759
4760         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
4761
4762         * reflection.c (method_encode_signature): Increase the minimum
4763         value of `size' from 10 to 11.
4764         (mono_reflection_bind_generic_parameters): Take `int type_argc'
4765         and `MonoType **types' arguments instead of the `MonoArray
4766         *types'; added `MonoType *nested_in'.  Recursively instantiate
4767         nested classes. 
4768
4769 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
4770
4771         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
4772         stack_overflow_ex members which are used by exception handling.
4773
4774         * appdomain.c (mono_runtime_init): Initialize the new members.
4775
4776         * gc.c (mono_gc_enable): New helper function.
4777         * gc.c (mono_gc_disable): New helper function.
4778
4779 2004-02-23  Martin Baulig  <martin@ximian.com>
4780
4781         * icall.c: I must have been really stupid - make it actually work
4782         this time ;-)
4783
4784 2004-02-23  Martin Baulig  <martin@ximian.com>
4785
4786         * loader.c (method_from_memberref): Only inflate the method if
4787         it's in another klass.
4788
4789 2004-02-23  Martin Baulig  <martin@ximian.com>
4790
4791         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
4792         (mono_class_init): If we're a generic instance and an interface,
4793         compute `class->interface_id'; also create `class->interfaces'
4794         here and inflate them.
4795
4796         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
4797         `ginst->is_open'.
4798         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
4799
4800         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
4801
4802 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
4803
4804         * reflection.c (method_encode_code): Improved the error message
4805         generated by the exception.
4806
4807 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4808
4809         * icall.c: Martin did not do what he said in the ChangeLog for
4810         2004-02-18, but put back the changes for properties and events.
4811         Commenting those changes out again and adding comment to bug #54518.
4812         
4813         * process.c: removed warning.
4814
4815 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
4816
4817         * marshal.c (emit_struct_conv): Print an error message instead of
4818         asserting when a type does not have the StructLayout attribute.
4819
4820 2004-02-20  Martin Baulig  <martin@ximian.com>
4821
4822         * reflection.c (mono_type_get_object): Also use the cache for
4823         generic instances.
4824         (mono_reflection_bind_generic_parameters): Always compute
4825         `ginst->ifaces'.        
4826
4827 2004-02-20  Martin Baulig  <martin@ximian.com>
4828
4829         * class.h (MonoGenericMethod): Removed `klass'.
4830
4831         * class.c (mono_class_inflate_generic_method): Added `MonoClass
4832         *klass' argument.
4833
4834 2004-02-20  Martin Baulig  <martin@ximian.com>
4835
4836         * reflection.c (method_encode_methodspec): Actually use the
4837         uninflated signature for the memberref.
4838
4839 2004-02-20  Martin Baulig  <martin@ximian.com>
4840
4841         * class.h (MonoGenericMethod): Removed `declaring'.
4842
4843         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
4844         is NULL, compute it here.
4845
4846 2004-02-20  Martin Baulig  <martin@ximian.com>
4847
4848         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
4849
4850         * metadata.c (mono_metadata_generic_inst_hash): New method.
4851         (mono_metadata_generic_inst_equal): New method.
4852
4853         * reflection.c (mono_reflection_bind_generic_parameters): Use the
4854         `klass->image->generic_inst_cache' cache to avoid creating
4855         duplicate MonoGenericInst's.
4856
4857         * class.c (mono_class_inflate_generic_type): Use the cache.
4858
4859 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
4860
4861         * object.c: fixed gc descriptor calculation for embedded valuetypes.
4862
4863 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4864
4865         * icall.c: added Socket.WSAIoctl icall.
4866
4867         * socket-io.[ch]: implemented
4868         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
4869
4870 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
4871
4872         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
4873
4874 2004-02-18  Urs C Muff  <umuff@quark.com>
4875
4876         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
4877         this work on PPC and other big-endian architectures.
4878
4879         * debug-mono-symfile.h: Prepended the names of all the `guint32'
4880         fields with an underscore to make sure they're only accessed by
4881         the read32() macro.
4882
4883 2004-02-18  Martin Baulig  <martin@ximian.com>
4884
4885         * icall.c: Put the klass->refclass changes back for methods and
4886         fields, but not for properties and events.  We're currently not
4887         distinguishing between DeclaringType and ReflectedType for
4888         properties and events, that's what caused the regressions.
4889
4890 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4891
4892         * object.c:
4893         (mono_async_result_new): the handle can be NULL.
4894
4895         * threadpool.c: Use an event instead of a semaphore, don't initialize
4896         it until needed. This saves quite a few semaphores from being created
4897         when using the threadpool.
4898
4899 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
4900
4901         * object.c (mono_string_is_interned_lookup): Fix interning of long
4902         strings. Fixes #54473.
4903
4904         * domain.c (ldstr_equal): Optimize if the two strings are equal.
4905
4906         * icall.c: Revert the klass->refclass changes since they introduce
4907         regressions (bug #54518).
4908
4909 2004-02-18  Martin Baulig  <martin@ximian.com>
4910
4911         * class.c (mono_class_init): If we're a generic instance and don't
4912         come from a TypeBuilder, inflate our members here.
4913         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
4914         (mono_class_create_generic): New public method.
4915         (mono_class_initialize_generic): Removed.
4916         (get_instantiation_name): Renamed to
4917         _mono_class_get_instantiation_name() and made it public.
4918
4919 2004-02-18  Martin Baulig  <martin@ximian.com>
4920
4921         * class.c (mono_class_inflate_generic_type): Clear the new
4922         instance's `nginst->klass' when inflating a generic instance.
4923         (mono_class_is_subclass_of): Added (basic) support for generic
4924         instances.
4925
4926 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
4927
4928         * appdomain.h, domain.c: use a MonoCodeManager instead of a
4929         MonoMempool to hold compiled native code.
4930
4931 2004-02-17  Martin Baulig  <martin@ximian.com>
4932
4933         * class.h (MonoDynamicGenericInst): Added `count_properties' and
4934         `properties'.
4935
4936         * reflection.c (mono_reflection_generic_inst_initialize): Added
4937         `MonoArray *properties' argument.
4938
4939         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
4940
4941 2004-02-17  Martin Baulig  <martin@ximian.com>
4942
4943         * icall.c (ves_icall_Type_GetFields): Renamed to
4944         ves_icall_Type_GetFields_internal() and added a
4945         `MonoReflectionType *rtype' argument; pass it to
4946         mono_field_get_object() to set the field's "reflected" type.
4947         (ves_icall_Type_GetConstructors): Likewise.
4948         (ves_icall_Type_GetEvents): Likewise.
4949         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
4950         argument; pass it to mono_method_get_object() to set the method's
4951         "reflected" type.       
4952
4953 2004-02-17  Martin Baulig  <martin@ximian.com>
4954
4955         * class.h (MonoDynamicGenericInst): New type.
4956         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
4957
4958         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
4959         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
4960         (ves_icall_MonoGenericInst_GetFields): New interncall.
4961
4962         * class.c (mono_class_from_generic): Don't call
4963         mono_class_initialize_generic() if this is a dynamic instance;
4964         ie. it's being created from a TypeBuilder.
4965         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
4966         `class->byval_arg.type'.
4967
4968         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
4969         to `inflate_method' and made static.
4970         (mono_reflection_inflate_field): Removed.
4971         (mono_reflection_generic_inst_initialize): New public method.
4972
4973         * reflection.h (MonoReflectionGenericInst): Removed `methods',
4974         `ctors' and `fields'; added `initialized'.
4975
4976 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
4977
4978         * debug-helpers.c (mono_method_full_name): Fix output for empty
4979         namespaces.
4980
4981 2004-02-12  Martin Baulig  <martin@ximian.com>
4982
4983         * class.h (MonoClassField): Added `MonoType *generic_type'.
4984
4985         * reflection.c (mono_image_get_fieldref_token): Added support for
4986         instantiated generic types.
4987         (field_encode_inflated_field): Removed.
4988         (mono_image_get_inflated_field_token): Removed.
4989         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
4990
4991         * reflection.h (MonoReflectionInflatedField): Removed.
4992
4993 2004-02-12  Martin Baulig  <martin@ximian.com>
4994
4995         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
4996         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
4997
4998         * reflection.c (mono_image_get_methodspec_token): Take a
4999         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
5000         (mono_image_create_token): Check whether we have a
5001         `method->signature->gen_method' and call
5002         mono_image_get_methodspec_token() if appropriate.
5003         (inflated_method_get_object): Removed.
5004         (mono_reflection_bind_generic_method_parameters): Return a
5005         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
5006         (mono_reflection_inflate_method_or_ctor): Likewise.
5007
5008         * reflection.h (MonoReflectionInflatedMethod): Removed.
5009
5010 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
5011
5012         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
5013         for custom valuetype marshalling.
5014
5015         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
5016
5017 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5018
5019         * icall.c: fixed WSAGetLastError_internal name.
5020
5021 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
5022
5023         * threads.c (mono_thread_attach): Allow this to be called multiple
5024         times for a thread.
5025         
5026         * threads.c (build_wait_tids): Do not wait for ourselves.
5027
5028         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
5029         appdomain list is empty.
5030
5031         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
5032         memory returned by mono_string_builder_to_utf16, since it points into
5033         managed memory. Thanks to Bernie Solomon for noticing this.
5034
5035         * icall.c: Add AppDomainSetup icalls.
5036
5037         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
5038
5039         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
5040         types.
5041
5042         * reflection.c (reflection_methodbuilder_to_mono_method): Save
5043         custom attributes to the method_aux struct. Also fix array indexes etc.
5044
5045         * loader.c (mono_method_get_param_names): Make dynamic case work again.
5046         
5047 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
5048
5049         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
5050         (both static and runtime) and reduce startup time.
5051
5052 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
5053
5054         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
5055         AsAny marshalling conversion instead of crashing.
5056
5057         * marshal.c: Fix warnings.
5058
5059 2004-02-09  Martin Baulig  <martin@ximian.com>
5060
5061         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
5062
5063         * reflection.h (MonoReflectionInflatedMethod): Removed the
5064         `declaring' field, it's now in the unmanaged MonoGenericMethod.
5065
5066         * reflection.c (method_encode_methodspec): Removed the `method'
5067         argument; we get it from `gmethod->declaring'.
5068         (inflated_method_get_object): Removed the `declaring' argument.
5069
5070 2004-02-09  Martin Baulig  <martin@ximian.com>
5071
5072         * class.h (MonoGenericMethod): New type.
5073         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
5074         `generic_method'.
5075
5076         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
5077         a `MonoGenericMethod *gen_method' one.
5078
5079         * class.c (mono_class_inflate_generic_type): Take an additional
5080         `MonoGenericMethod * argument.  This is only non-NULL if we're
5081         inflating types for a generic method.   
5082         (mono_class_inflate_generic_signature): Renamed to
5083         inflate_generic_signature() and made static; take a
5084         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5085         (inflate_generic_header): Take a `MonoGenericMethod *' argument
5086         instead of a `MonoGenericInst *' one.
5087         (mono_class_inflate_generic_method): Likewise.
5088
5089         * reflection.c (encode_generic_method_sig): Take a
5090         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
5091         (method_encode_methodspec): Likewise.
5092         (inflated_method_get_object): Likewise. 
5093
5094         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
5095         field with a `MonoGenericMethod *gmethod' one.  
5096
5097 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
5098
5099         * class.h (mono_class_has_parent): add parens to expansion
5100         so you can ! this.
5101
5102 2004-02-08  Martin Baulig  <martin@ximian.com>
5103
5104         * image.h (MonoImage): Removed `generics_cache'.
5105
5106         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
5107         instead of a `MonoType *' argument; removed the `inflate_methods'
5108         argument.  Don't inflate methods here.
5109
5110         * loader.c (find_method): If it's a generic instance, call
5111         mono_class_init() on the `sclass->generic_inst->generic_type'.
5112
5113         * metadata.c (mono_type_size): Make this work on uninitialized
5114         generic instances; call it on the `ginst->generic_type's class.
5115
5116         * reflection.c (mono_reflection_bind_generic_parameters): Call
5117         mono_class_from_generic() to create the `ginst->klass'.
5118
5119 2004-02-08  Martin Baulig  <martin@ximian.com>
5120
5121         * class.h (MonoClass): Changed type of `generic_inst' from
5122         `MonoType *' to `MonoGenericInst *'.
5123
5124 2004-02-08  Martin Baulig  <martin@ximian.com>
5125
5126         * icall.c (ves_icall_Type_BindGenericParameters): Just call
5127         mono_type_get_object(), this is now creating a `MonoGenericInst'
5128         for MONO_TYPE_GENERICINST.
5129         (ves_icall_MonoGenericInst_GetParentType): Likewise.
5130         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
5131
5132         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
5133         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
5134         (inflated_method_get_object): Added `MonoClass *refclass' argument.
5135         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
5136         and reflected type.
5137
5138         * reflection.h (MonoReflectionInflatedMethod): Removed
5139         `declaring_type' and `reflected_type'.
5140
5141 2004-02-08  Martin Baulig  <martin@ximian.com>
5142
5143         * class.h (MonoGenericInst): Added `MonoType *parent' and
5144         `MonoType **ifaces'.
5145
5146         * reflection.h (MonoReflectionGenericInst): Removed `klass',
5147         `parent' and `interfaces'.
5148
5149         * reflection.c (mono_reflection_bind_generic_parameters): Take a
5150         `MonoType *' argument and return a `MonoType *'.
5151
5152         * icall.c
5153         (ves_icall_MonoGenericInst_GetParentType): New interncall.
5154         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
5155
5156 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5157
5158         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
5159         valuetype marshalling.
5160
5161 2004-02-06  Martin Baulig  <martin@ximian.com>
5162
5163         * class.c
5164         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
5165         (my_mono_class_from_generic_parameter): Likewise.
5166
5167 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
5168
5169         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
5170         contents of the symbol files lazily.
5171
5172         * object.h (MonoThread): Add 'name' and 'name_len' fields.
5173
5174         * threads.h threads.c icall.c: New icalls for getting and setting the
5175         threads name.
5176
5177 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
5178
5179         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
5180         Raise an exception when the domain is not found.
5181
5182 2004-02-03  Martin Baulig  <martin@ximian.com>
5183
5184         * reflection.c (mono_image_get_methodspec_token): Use the
5185         uninflated signature; fixes gen-33.
5186
5187 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
5188
5189         * gc.c threads.c: Make the finalizer thread a normal managed thread so
5190         the finalizer code can use thread functionality.
5191
5192         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
5193         the finalizer thread.
5194
5195         * threads.c: Make some functions more robust.
5196
5197         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
5198
5199         * metadata.h: Add new marshalling conventions.
5200
5201         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
5202         stringbuilder marshalling. Fixes #53700.
5203
5204         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
5205
5206         * reflection.c (mono_image_get_type_info): Save declarative security
5207         info.
5208
5209         * reflection.c (mono_image_get_field_info): Handle uninitialized 
5210         unmanaged fields as well.
5211
5212         * appdomain.c: Bump corlib version.
5213
5214 2004-02-01  Martin Baulig  <martin@ximian.com>
5215
5216         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
5217         method type arguments.  
5218
5219 2004-01-30  Duncan Mak  <duncan@ximian.com>
5220
5221         * marshal.h: Add prototype for
5222         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
5223         and
5224         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
5225         fix the build.
5226
5227 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
5228
5229         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
5230         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
5231
5232 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5233
5234         * marshal.c (mono_marshal_get_native_wrapper): Add support for
5235         custom marshalling of valuetypes.
5236
5237         * marshal.c: Fix some warnings.
5238
5239 2004-01-29  Martin Baulig  <martin@ximian.com>
5240
5241         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
5242         for generic method parameters.
5243
5244         * reflection.c (method_encode_methodspec): Write the uninflated
5245         signature into the methodspec table.
5246         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
5247         is always the uninflated method.
5248         (reflection_methodbuilder_to_mono_method): Copy the generic
5249         parameters from the MethodBuilder into `header->gen_params'.
5250
5251 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
5252
5253         * class.c (mono_class_from_generic_parameter): Fix warning.
5254
5255 2004-01-27  Martin Baulig  <martin@ximian.com>
5256
5257         * class.c (mono_class_from_generic_parameter): Don't create
5258         `klass->methods' here.  
5259
5260 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
5261
5262         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
5263         extension since it does not work with libraries named lib<FOO>.dll.so.
5264
5265 2004-01-25  Martin Baulig  <martin@ximian.com>
5266
5267         * class.c (mono_class_inflate_generic_type): Added support for
5268         MONO_TYPE_GENERICINST.
5269
5270         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
5271         inflate methods on open constructed types.      
5272
5273 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5274
5275         * object.c: fire ProcessExit event in the root AppDomain after running
5276         Main. Fixes bug #53299.
5277
5278 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
5279
5280         * socket-io.c: include the new socket-wrappers.h header.
5281         Use the wrappers instead of the unix socket functions to make the code
5282         more clear.
5283
5284 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
5285
5286         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
5287
5288         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5289         Fixes #22532.
5290
5291 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
5292
5293         * reflection.c (mono_image_create_pefile): Handle the case when the
5294         entry point is not a MethodBuilder.
5295
5296         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5297         field to ReflectionMethod since it is not allways a builder.
5298
5299         * reflection.c (type_get_fully_qualified_name): New helper function to
5300         return the fully qualified name of a type.
5301
5302         * reflection.c (encode_marshal_blob): Always emit the fully qualified
5303         type name for custom marshallers.
5304
5305         * reflection.c (mono_marshal_spec_from_builder): Ditto.
5306
5307         * class.c (mono_class_setup_vtable): If a parent class already 
5308         implements an interface, use the implementing methods from that class.
5309         Fixes #53148.
5310
5311 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5312
5313         * threadpool.c: just return instead of ExitThread to allow for thread
5314         clean up earlier.
5315
5316 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
5317
5318         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
5319         when closing resource modules.
5320
5321         * reflection.c (mono_image_create_pefile): Handle the case when the
5322         entry point is not a MethodBuilder.
5323
5324         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
5325         field to ReflectionMethod since it is not allways a builder.
5326
5327 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5328
5329         * marshal.c (mono_marshal_get_managed_wrapper): 
5330         mono_marshal_alloc takes native int so CONV_I
5331         the arg for 64bits.
5332
5333 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
5334
5335         * reflection.c (fixup_cattrs): New function to fixup the methoddef
5336         tokens in the cattr table. Fixes #53108.
5337
5338 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5339
5340         * loader.c: don't trim ".dll" before looking up in the config file.
5341         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
5342
5343 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
5344
5345         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
5346         Return the module which contains the resource as well.
5347         (ves_icall_System_Reflection_Module_Close): New icall.
5348
5349         * appdomain.c: Bump corlib version number.
5350
5351         * image.c (mono_image_addref): New public function.
5352
5353         * assembly.c: Call mono_image_addref.
5354
5355         * reflection.c (mono_module_get_object): Increase reference count of 
5356         the image.
5357
5358         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
5359         Fixes #22532.
5360
5361         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
5362         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
5363         proper exceptions on DllImport problems.
5364
5365 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
5366
5367         * class.c, metadata.c: eliminate CSIZE macro.
5368
5369 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
5370
5371         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
5372         * object.h: Added async_callback field in MonoAsyncResult.
5373         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
5374         * verify.c: Added async_callback in MonoAsyncResult layout.
5375
5376 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
5377
5378         * reflection.c (mono_reflection_get_custom_attrs): Add support
5379         for Modules.
5380
5381 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5382
5383         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
5384         marshalling.
5385         (mono_marshal_method_from_wrapper): Add null pointer check.
5386
5387 2004-01-16  Martin Baulig  <martin@ximian.com>
5388
5389         * debug-mono-symfile.h: Set version number to 36 and reflect
5390         latest symbol writer changes.
5391
5392 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
5393
5394         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
5395         multi-dimensional arrays.
5396         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
5397         (mono_class_from_mono_type): Use bounded_array_class_get.
5398         
5399         * class.c (mono_bounded_array_class_get): New function which takes
5400         a 'bounded' bool argument to distinguish vectors from one dimensional
5401         arrays.
5402
5403         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
5404         bounded_array_class_get if the array has bounds.
5405
5406         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5407         Search modules loaded using AssemblyBuilder:AddModule as well.
5408
5409 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5410
5411         * appdomain.c: increased corlib version.
5412         * filewatcher.c: removed g_print.
5413         * icall.c:
5414         (get_property_info): only allocate what is actually requested.
5415         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
5416
5417 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5418
5419         * Makefile.am: added filewatcher.[ch]
5420         * filewatcher.[ch]: FileSystemWatcher runtime support.
5421         * icall.c: added new FSW icalls.
5422
5423 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
5424
5425         * string-icalls.c: fix stringbuilder regression as suggested by
5426         Iain McCoy <iain@mccoy.id.au>.
5427
5428 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
5429
5430         * process.c (process_read_stringtable_block): Recognize '007f' as
5431         a language neutral stringtable block.
5432
5433 2004-01-12  Patrik Torstensson
5434
5435         * object.h (MonoStringBuilder) : Changed layout to support our
5436         new stringbuilder class.
5437         * marshal.c: Change marshalling to support the new layout of 
5438         string builder.
5439         * appdomain.c: increased version number because new layout of
5440         string builder.
5441
5442 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
5443
5444         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
5445         assembly name as an string instead of an AssemblyName, since it is
5446         easier to extract info from it.
5447
5448         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
5449         the culture subdirectories too. Fixes #52231.
5450
5451 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5452
5453         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
5454         It takes 2 new parameters with an optional name for the method to look
5455         for and case ignoring info.
5456
5457         * threadpool.c: removed unused variable.
5458
5459 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5460
5461         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
5462         It takes 2 new parameters with an optional name for the property to look
5463         for and case ignoring info.
5464         Fixes bug #52753.
5465
5466 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
5467
5468         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
5469         Fix #52451.
5470
5471 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5472
5473         * appdomain.c:
5474         * assembly.c: escape the uri before passing it to g_filename_from_uri.
5475         Fixes bug #52630.
5476
5477 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
5478
5479         * reflection.c: Add support for more than one unmanaged resource.
5480
5481         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
5482         in field->def_value, as done in all other cases.
5483
5484         * reflection.c (mono_reflection_get_custom_attrs): Add support for
5485         TypeBuilders.
5486
5487         * reflection.c (mono_reflection_create_runtime_class): Remove 
5488         errorneous assignment to klass->element_class, since it is already
5489         done in mono_reflection_setup_internal_class.
5490
5491 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5492
5493         * gc.c: added missing LeaveCriticalSection.
5494         * icall.c: indented a couple of lines.
5495         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
5496         if we call EndInvoke inside a callback. Fixes bug #52601.
5497
5498 2004-01-07  Martin Baulig  <martin@ximian.com>
5499
5500         * mono-debug-debugger.h
5501         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
5502
5503 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
5504
5505         * appdomain.c: Use messages in NotImplementedException.
5506
5507         * exception.c (mono_get_exception_not_implemented): Now this takes
5508         a message argument.
5509
5510         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
5511         exception instead of g_asserting an aborting when something is not
5512         implemented.
5513
5514         Add some inline docs.
5515
5516 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
5517
5518         * reflection.h: Update after changes to object layout.
5519
5520         * reflection.c: Implement saving of unmanaged aka win32 resources.
5521
5522         * appdomain.c: Bump version number.
5523
5524         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
5525         Handle missing domains gracefully.
5526
5527 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
5528
5529         * file-io.c : On Windows, there are much more invalid_path_chars.
5530
5531 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
5532
5533         * class.h, object.c: prepare for GetType () speedup.
5534
5535 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
5536
5537         * profiler.c: workaround for --profile null reference exception on
5538           cygwin. Patch by Patrik Torstensson.
5539
5540 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
5541
5542         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
5543         make work for unaligned access.
5544
5545 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
5546
5547         * class.c: small cleanup (class->fields [i] -> field).
5548         * image.c: check address of metadata is valid.
5549
5550 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
5551
5552         * assembly.h assembly.c (mono_assembly_loaded): New public function to
5553         search the list of loaded assemblies.
5554
5555         * reflection.c (mono_reflection_type_from_name): Use 
5556         mono_assembly_loaded instead of mono_image_loaded.
5557
5558         * reflection.c: Fix warnings.
5559
5560 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
5561
5562         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
5563         is dynamic. This is needed since an assembly can contain both dynamic and
5564         non-dynamic images.
5565
5566         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
5567         assembly->dynamic.
5568
5569         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
5570
5571         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
5572         to store modules loaded using AddModule.
5573
5574         * reflection.c (mono_image_fill_file_table): Generalize this so it works
5575         on Modules.
5576
5577         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
5578
5579         * reflection.c (mono_image_fill_export_table_from_module): New function to
5580         fill out the EXPORTEDTYPES table from a module.
5581
5582         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
5583         into a separate function. Also handle loaded non-dynamic modules.
5584
5585         * reflection.c (mono_image_basic_init): Fix memory allocation.
5586
5587         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5588
5589         * assembly.c (mono_assembly_load_references): Make this public.
5590
5591 2003-12-19  Martin Baulig  <martin@ximian.com>
5592
5593         * class.c (mono_class_initialize_generic): Made this static, take
5594         a `MonoGenericInst *' instead of a `MonoClass *'.
5595         (mono_class_from_generic): Call mono_class_initialize_generic()
5596         unless we're already initialized or being called from
5597         do_mono_metadata_parse_generic_inst().
5598
5599         * class.h (MonoGenericInst): Added `initialized' and
5600         `init_pending' flags.
5601
5602         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
5603         `mono_class_init (gklass)' or mono_class_initialize_generic()
5604         here; set `generic_inst->init_pending' while parsing the
5605         `type_argv'.
5606
5607 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
5608
5609         * locales.c: include string.h for memxxx prototypes
5610
5611 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
5612
5613         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
5614         constructor when accessing literal fields.
5615
5616 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
5617
5618         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5619
5620         * reflection.c (assembly_add_resource_manifest): New function to fill
5621         the MANIFESTRESOURCE table.
5622
5623         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
5624
5625         * reflection.h: Update to changes in class layout.
5626
5627         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
5628         Reenable call to mono_runtime_is_shutting_down ().
5629
5630         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
5631         determine if the runtime is shutting down.
5632
5633 2003-12-16  Jackson Harper <jackson@ximian.com>
5634
5635         * icall.c: comment out call to mono_runtime_is_shutting_down to
5636         fix build.
5637         
5638 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
5639
5640         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
5641         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
5642
5643 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
5644
5645         * reflection.c: move definition of swap_with_size
5646         to before its first call
5647
5648 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
5649
5650         * appdomain.c (mono_runtime_is_shutting_down): New public function.
5651
5652         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
5653         icall.
5654
5655         * object.c: Fix warnings.
5656
5657         * icall.c (ves_icall_Type_Get...): Only consider inherited static
5658         members if FlattenHierarchy is set.
5659
5660         * reflection.c (mono_image_add_decl_security): New function to emit
5661         declarative security.
5662
5663         * reflection.h reflection.c: Add support for declarative security.
5664
5665         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5666         
5667 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
5668
5669         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
5670         
5671         * appdomain.c verify.c: Moved corlib version checking into its own
5672         function in appdomain.c since it needs to create vtables etc.
5673
5674 2003-12-13  Patrik Torstensson <p@rxc.se>
5675
5676         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
5677         instead of unwrapped server.
5678
5679 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
5680
5681         * verify.c (check_corlib): Fix field index.
5682
5683 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
5684
5685         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
5686         GetGacPath icall.
5687
5688 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
5689
5690         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
5691         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
5692         cope with sizeof(size_t) != sizeof(guint32).
5693
5694 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5695
5696         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
5697         in case of failure.
5698
5699 2003-12-10  Mark Crichton <crichton@gimp.org>
5700
5701         * icall.c: removed the GetNonZeroBytes.  We now handle this case
5702         in managed code.
5703
5704         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
5705
5706 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
5707
5708         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
5709         marked as deleted.
5710
5711 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
5712
5713         * verify.c (check_corlib): Handle the case when the version field is 
5714         initialized by a static constructor.
5715
5716 2003-12-08  Patrik Torstensson  <p@rxc.se>
5717
5718     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
5719
5720 2003-12-08  Martin Baulig  <martin@ximian.com>
5721
5722         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
5723         a MonoReflectionGenericParameter, also take the parameter index
5724         and name as arguments.
5725         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
5726         (ves_icall_MonoGenericParam_initialize): New interncall.
5727         (ves_icall_Type_make_byref_type): New interncall.
5728
5729         * reflection.h (MonoReflectionGenericParam): Derive from
5730         MonoReflectionType, not just from MonoObject.  Added `refobj' and
5731         `index' fields.
5732
5733         * reflection.c (mono_reflection_define_generic_parameter): Create
5734         and return a new MonoReflectionGenericParam; don't initialize the
5735         constraints here.
5736         (mono_reflection_initialize_generic_parameter): New public method;
5737         initializes the constraints and creates the `param->pklass'.
5738
5739 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
5740
5741         * reflection.h reflection.c: Use the new fields 'num_types', 
5742         'num_fields' and 'num_methods' to track the number of types etc.
5743
5744         * verify.c (check_corlib): Check corlib version number.
5745
5746 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
5747
5748         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
5749         function works on all methods.
5750
5751 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
5752
5753         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
5754         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
5755         the custom_type_info flag of the transparent proxy.
5756         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
5757         objects that supports IRemotingTypeInfo.
5758         * object.h: Added custom_type_info field in transparent proxy.
5759
5760 2003-12-06  Martin Baulig  <martin@ximian.com>
5761
5762         * class.c (mono_class_create_from_generic): Removed.
5763         (mono_class_from_generic): Check `ginst->klass' before doing
5764         anything else.  This is important to fully support "recursive"
5765         generic types.
5766
5767         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
5768         empty `generic_inst->klass' before doing anything else.
5769
5770 2003-12-06  Dick Porter  <dick@ximian.com>
5771
5772         * verify.c: 
5773         * object.h:
5774         * icall.c:
5775         * locales.c: Use C structs to access class fields.  Don't do a
5776         conversion between MonoString and UChar because both are
5777         platform-endian UTF-16.  Compare now takes startindex and count
5778         parameters.  Add a char overload for IndexOf.  Speed up the
5779         invariant string IndexOf.
5780
5781 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
5782
5783         * Makefile.am (monosn_LDADD): Fix parallel build.
5784
5785 2003-12-04  Martin Baulig  <martin@ximian.com>
5786
5787         * icall.c
5788         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
5789         (ves_icall_Type_make_array_type): New interncall.       
5790
5791 2003-12-04  Martin Baulig  <martin@ximian.com>
5792
5793         * locales.c: also change it in the !HAVE_ICU case.
5794
5795 2003-12-04  Dick Porter  <dick@ximian.com>
5796
5797         * icall.c:
5798         * locales.c: construct_compareinfo is now in CompareInfo, not
5799         CultureInfo.
5800
5801 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
5802
5803         * image.c (mono_image_load_file_for_image): Cache loaded images in the
5804         image->files array.
5805
5806         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
5807         table as well.
5808
5809         * assembly.c (mono_assembly_load_references): Only load references
5810         once.
5811
5812         * class.c (mono_class_from_name): Avoid linear search of the 
5813         EXPORTEDTYPE table.
5814
5815         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
5816
5817 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
5818
5819         * image.h (MonoImage): Add 'field_cache' field.
5820
5821         * loader.c (mono_field_from_token): Cache field lookups.
5822         
5823         * reflection.c (mono_module_get_object): Fix name property.
5824
5825         * icall.c (ves_icall_get_enum_info): Update after changes to 
5826         mono_metadata_get_constant_index ().
5827
5828         * icall.c: Get rid of get_type_info icall, use a separate icall for
5829         each type property to avoid needless memory allocations. Fixes #51514.
5830
5831         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
5832         to avoid needless binary searches.
5833
5834         * class.c (class_compute_field_layout): Move the initialization of
5835         field->def_value to mono_class_vtable ().
5836
5837         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
5838         non-corlib types.
5839
5840         * object.c (mono_object_allocate): Make it inline.
5841
5842         * object.c (mono_object_allocate_spec): Make it inline.
5843         
5844 2003-12-02  Dick Porter  <dick@ximian.com>
5845
5846         * locales.c (create_NumberFormat): NumberFormatInfo construction.
5847         Patch by Mohammad DAMT (mdamt@cdl2000.com).
5848
5849 2003-12-01  Dick Porter  <dick@ximian.com>
5850
5851         * threads.c: Fix signature and call in CreateMutex and
5852         CreateEvent.
5853
5854 2003-12-01  Dick Porter  <dick@ximian.com>
5855
5856         * icall.c: 
5857         * locales.c: Implement string compares and searching
5858
5859         * object.h: Add extra Thread field
5860
5861 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
5862
5863         * reflection.c (fixup_method): Add support for MonoCMethod.
5864
5865 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
5866
5867         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
5868
5869         * reflection.c (assembly_name_to_aname): Allow extra characters in
5870         assembly names. Fixes #51468.
5871
5872 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
5873
5874         * exception.c (mono_exception_from_name_domain): New helper function.
5875
5876         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
5877         exception object in the correct domain.
5878
5879         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
5880         formatting + make a copy a the input data.
5881
5882         * loader.c (mono_get_method_from_token): Methods which contain
5883         native code do not have entries in the ImplMap.
5884
5885         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
5886         Thanks to Gonzalo for spotting this.
5887         
5888         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
5889         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
5890
5891         * assembly.h (mono_assembly_load_from): Split the second part of 
5892         assembly loading into a new public function.
5893
5894         * exception.h (mono_get_exception_bad_image_format): New function.
5895
5896 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
5897
5898         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
5899         Enumerate all modules inside a dynamic assembly. Fixes #51293.
5900         
5901         * icall.c: Add new icall for creating dynamic methods.
5902
5903         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
5904
5905         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
5906
5907         * reflection.c (mono_reflection_create_dynamic_method): New icall to
5908         create a dynamic method.
5909
5910         * reflection.c (resolve_object): New helper function.
5911
5912         * reflection.c: Generalize ReflectionMethodBuilder and the functions
5913         which manipulate it so they can also work on dynamic methods.
5914
5915         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
5916         creating the MonoReflectionMethodAux structure if it is not needed.
5917         
5918         * reflection.h verify.c: Update after changes to object layout.
5919
5920         * reflection.c (method_builder_encode_signature): Fix compilation on
5921         gcc 2.95.x.
5922
5923 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
5924
5925         * appdomain.h: Added support for context static fields. Added static_data
5926           field to MonoAppContext and renamed thread_static_fields to a more
5927           generic special_static_fields in MonoAppDomain, since it can now contain
5928           context static fields.
5929         * domain.c: Updated hashtable name.
5930         * object.c: Replaced field_is_thread_static() for a more generic
5931           field_is_special_static() which also checks for context static attribute.
5932           In mono_class_vtable(), added support for static context fields.
5933         * threads.c: Changed methods that manage thread static fields to more
5934           generic methods so they can be reused both for thread and context static
5935           data.
5936         * threads.h: Declared some new methods.
5937
5938 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
5939
5940         * reflection.h: Update after changes to the managed types.
5941
5942         * reflection.c (encode_custom_modifiers): New helper function.
5943
5944         * reflection.c (method_encode_signature): Emit custom modifiers.
5945
5946         * reflection.c (field_encode_signature): Emit custom modifiers.
5947
5948 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
5949
5950         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
5951
5952         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
5953         implementation.
5954
5955         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
5956         icall.
5957
5958         * object.c (mono_field_get_value_object): New function.
5959
5960         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
5961         specific.
5962
5963 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
5964
5965         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
5966         return a preallocated out-of-memory exception instance.
5967
5968         * object.c (out_of_memory): Use the new function.
5969
5970         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
5971         flag is before the custom modifiers. Fixes #49802.
5972
5973 2003-11-16  Martin Baulig  <martin@ximian.com>
5974
5975         * class.c (mono_class_is_open_constructed_type): Implemented the
5976         MONO_TYPE_GENERICINST case.
5977
5978 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
5979
5980         * assembly.c (mono_assembly_fill_assembly_name): New function to
5981         fill out the MonoAssemblyName structure.
5982         (mono_assembly_open): Use the new function.
5983
5984         * icall.c (fill_reflection_assembly_name): New helper function.
5985
5986         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
5987         new function.
5988
5989         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
5990
5991 2003-11-15  Martin Baulig  <martin@ximian.com>
5992
5993         * class.c (mono_class_is_open_constructed_type): New public
5994         function; checks whether a type is an open constructed type,
5995         ie. whether it still contains type parameters.
5996         (mono_class_inflate_generic_type): If we're a type parameter and
5997         the inflated type is also a MONO_TYPE_(M)VAR, return the original
5998         type.
5999
6000         * class.h (MonoGenericInst): Added `guint32 is_open'.
6001
6002         * loader.c (method_from_methodspec): Check whether we're an open
6003         or closed constructed type and set `ginst->is_open'.
6004
6005         * reflection.c (mono_reflection_bind_generic_parameters): Check
6006         whether we're an open or closed constructed type and set
6007         `ginst->is_open'.
6008         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
6009         from open constructed types.
6010
6011 2003-11-15  Martin Baulig  <martin@ximian.com>
6012
6013         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6014         a generic instance (instead of a generic type declaration) with
6015         unbound generic parameters, bind them to our actual types.
6016
6017 2003-11-14  Martin Baulig  <martin@ximian.com>
6018
6019         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
6020
6021         * reflection.c (mono_reflection_bind_generic_parameters): If we're
6022         an interface type, populate `res->interfaces' with instantiated
6023         versions of all the interfaces we inherit.
6024
6025 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
6026
6027         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
6028         when MONO_PATH is set but doesn't contain the install dir.
6029
6030 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6031
6032         * icall.c:
6033         (ves_icall_Type_GetInterfaces): don't return an interface twice when
6034         it's also implemented in base classes. Fixes bug #50927.
6035
6036 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
6037
6038         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
6039         if this method is called from a finalizer. Fixes #50913.
6040
6041 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
6042
6043         * threads.c: Implement VolatileRead/VolatileWrite
6044
6045         * icall.c: Add new icalls for VolatileRead/VolatileWrite
6046
6047 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6048
6049         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
6050         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
6051         2.95.3.
6052
6053         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
6054         from Peter Ross (pro@missioncriticalit.com).
6055         
6056 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
6057
6058         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
6059
6060 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6061
6062         * assembly.c (mono_assembly_load_references): Disable check because it
6063         triggers on older corlibs which lots of people have.
6064
6065 2003-11-12  Jackson Harper  <jackson@ximian.com>
6066
6067         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
6068         load corlib.dll if mscorlib.dll is not found.
6069         * assembly.h: Remove corlib name define.
6070         * class.c:
6071         * domain.c:
6072         * image.c: Change corlib name to mscorlib.
6073         
6074 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
6075
6076         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
6077
6078 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
6079
6080         * appdomain.h: Added loader_optimization here to sync with the C#
6081         code, and add disallow_binding_redirects field.
6082
6083 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6084
6085         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
6086
6087         * reflection.c (mono_image_build_metadata): Fix crash on modules
6088         with no types.
6089
6090         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
6091
6092         * icall.c (ves_icall_get_method_info): Return callingConvention as
6093         well.
6094
6095         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
6096         namespaces from the EXPORTEDTYPE table as well.
6097
6098         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
6099         from all modules inside the assembly.
6100         
6101 2003-11-11  Martin Baulig  <martin@ximian.com>
6102
6103         * reflection.c (mono_reflection_bind_generic_parameters): Make
6104         this work for interfaces.
6105
6106 2003-11-11  Martin Baulig  <martin@ximian.com>
6107
6108         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
6109
6110 2003-11-11  Martin Baulig  <martin@ximian.com>
6111
6112         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
6113         "MonoInflatedMethod" and "MonoInflatedCtor".
6114
6115 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
6116
6117         * reflection.c (resolution_scope_from_image): Use the assembly table
6118         from the manifest module, since other modules don't have it.
6119
6120         * debug-helpers.c (mono_type_full_name): New helper function.
6121
6122         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
6123
6124         * image.c (mono_image_load_file_for_image): New public function which
6125         is a replacement for the load_file_for_image in class.c.
6126
6127         * assembly.c (mono_assembly_load_module): A wrapper for the function
6128         above which does assembly association and reference loading too.
6129
6130         * class.c (mono_class_from_name): Call mono_assembly_load_module.
6131
6132 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6133
6134         * appdomain.c: not all of the attributes for the full assembly name
6135         are required and the order doesn't matter. Fixes bug #50787.
6136
6137 2003-11-10  Dick Porter  <dick@ximian.com>
6138
6139         * locales.c: Use platform-endian UTF16
6140
6141 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6142
6143         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6144         
6145 2003-11-10  Martin Baulig  <martin@ximian.com>
6146
6147         * metadata.c
6148         (mono_metadata_load_generic_params): Make this actually work.
6149
6150         * reflection.c (mono_reflection_bind_generic_parameters): If our
6151         parent is a generic instance, pass all the `types' to it, no
6152         matter whether it has the same number of type parameters or not.
6153
6154 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
6155
6156         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
6157
6158         * assembly.c (mono_assembly_load_references): Move the image<->assembly
6159         assignment code to this function so it gets called recursively for all
6160         modules.
6161
6162         * image.c (load_modules): Remove the assembly assignment since it is
6163         now done by mono_assembly_load_references.
6164         
6165         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
6166         Add 'module' argument.
6167         (mono_module_get_types): New helper function.
6168         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
6169
6170 2003-11-08  Martin Baulig  <martin@ximian.com>
6171
6172         * class.c (mono_class_inflate_generic_method): Interface method
6173         don't have a header.
6174
6175         * reflection.c (mono_image_get_methodspec_token): Take an
6176         additional `MonoGenericInst *' argument instead of reading it from
6177         the header; this is necessary to support interfaces.
6178         (mono_image_create_token): Pass the `MonoGenericInst *' from the
6179         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
6180         (inflated_method_get_object): Take an additional `MonoGenericInst *'
6181         argument.
6182
6183         * reflection.h (MonoReflectionInflatedMethod): Added
6184         `MonoGenericInst *ginst'.
6185
6186 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
6187
6188         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
6189
6190 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
6191
6192         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
6193
6194 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
6195
6196         * reflection.c 
6197         (reflection_methodbuilder_from_method_builder):
6198         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
6199         initialize a ReflectionMethodBuilder structure.
6200         (mono_image_get_methodbuilder_token):
6201         (mono_image_get_ctorbuilder_token): New functions to emit memberref
6202         tokens which point to types in another module inside the same assembly.
6203
6204         * reflection.c: Use the new helper functions.
6205         
6206         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
6207
6208         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
6209         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
6210
6211         * reflection.c (resolution_scope_from_image): Emit a moduleref if
6212         neccesary.
6213
6214         * reflection.c (mono_image_build_metadata): Emit metadata only for the
6215         current module. Emit the manifest only for the main module.
6216
6217         * reflection.c (mono_image_create_token): Add assertion when a 
6218         memberref needs to be created.
6219
6220         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
6221
6222         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
6223         larger buffer for the custom attribute blob. Fixes #50637.
6224         
6225 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6226
6227         * threadpool.c: notify listener on async processing handles after
6228         invoking the async callback. Thanks to Zoltan.
6229
6230 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6231
6232         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
6233         avoid code duplication.
6234
6235         * reflection.h (MonoDynamicImage): New type which is currently unused,
6236         but will be used through the ref.emit code in place of 
6237         MonoDynamicAssembly.
6238
6239         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6240         object layout.
6241
6242         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
6243         a MonoDynamicImage instead of just a MonoImage.
6244         
6245         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
6246         icalls to ModuleBuilder but keep their semantics, so they will work
6247         with moduleb->assemblyb. This will change later.
6248         
6249 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6250
6251         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
6252         object layout.
6253
6254         * reflection.c (mono_image_build_metadata): Avoid creation of a default
6255         main module, since it is now done by the managed code.
6256
6257 2003-11-03  Martin Baulig  <martin@ximian.com>
6258
6259         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
6260         `ginst->klass' here.
6261         (method_encode_methodspec): Don't use the `ginst->generic_method's
6262         klass if it's a generic instance, use `ginst->klass' in this case.
6263
6264 2003-11-03  Martin Baulig  <martin@ximian.com>
6265
6266         * reflection.c (mono_image_get_generic_method_param_info):
6267         Removed, use mono_image_get_generic_param_info() instead.
6268         (mono_image_get_type_info): Write the GenericParam table before
6269         the Method table.  This is neccessary because in the GenericParam
6270         table, type parameters of the class (ie. '!0' etc.) must come
6271         before the ones from its generic methods (ie. '!!0' etc).
6272
6273 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
6274
6275         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
6276
6277 2003-11-02  Martin Baulig  <martin@ximian.com>
6278
6279         * reflection.c (create_generic_typespec): Take a
6280         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
6281         the generic parameters from it.
6282
6283 2003-11-02  Martin Baulig  <martin@ximian.com>
6284
6285         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
6286         instead of a `MonoClassField *' since we just need the type.
6287         (create_generic_typespec): New static function.  Creates a
6288         TypeSpec token for a generic type declaration.
6289         (mono_image_get_generic_field_token): New static function.
6290         (mono_image_create_token): If we're a FieldBuilder in a generic
6291         type declaration, call mono_image_get_generic_field_token() to get
6292         the token.
6293
6294 2003-11-02  Martin Baulig  <martin@ximian.com>
6295
6296         * reflection.h
6297         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
6298         `MonoReflectionGenericInst *declaring_type' and
6299         `MonoReflectionGenericInst *reflected_type' fields.
6300
6301         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
6302         `MonoReflectionGenericInst *declaring_type' and a
6303         `MonoReflectionGenericInst *reflected_type' argument instead of a
6304         single `MonoReflectionGenericInst *type' one.  Set
6305         `res->declaring_type' and `res->reflected_type' from them.
6306         (mono_reflection_inflate_field): Likewise.      
6307
6308 2003-11-02  Martin Baulig  <martin@ximian.com>
6309
6310         * class.c (mono_class_setup_vtable): Don't store generic methods
6311         in the vtable.  
6312
6313 2003-11-02  Martin Baulig  <martin@ximian.com>
6314
6315         * reflection.h (MonoReflectionGenericInst): Added
6316         `MonoReflectionType *declaring_type'.
6317
6318         * reflection.c (mono_reflection_bind_generic_parameters): Use
6319         `if (tb->parent)' instead of `klass->parent'.
6320
6321 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
6322
6323         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
6324         with an empty ASSEMBLY table.
6325
6326         * reflection.c (mono_image_build_metadata): Avoid using the same loop
6327         variable in the inner and outer loops.
6328
6329 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
6330
6331         * metadata.h (mono_metadata_make_token): Put parentheses around macro
6332         argument.
6333
6334         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
6335         
6336         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
6337         icalls. Instead, do everything in managed code. This is needed since
6338         it is hard to restore the original domain etc. in unmanaged code in the
6339         presence of undeniable exceptions.
6340
6341         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
6342         New icalls to push and pop appdomain refs.
6343
6344 2003-10-31  Martin Baulig  <martin@ximian.com>
6345
6346         * class.c (inflate_generic_type): Renamed to
6347         mono_class_inflate_generic_type() and made it public.
6348
6349         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
6350         New interncall.
6351
6352         * loader.c (mono_field_from_memberref): Also set the retklass for
6353         typespecs.
6354
6355         * fielder.c (mono_image_get_inflated_field_token): New static
6356         method; creates a metadata token for an inflated field.
6357         (mono_image_create_token, fixup_method): Added support for
6358         "MonoInflatedField".
6359         (fieldbuilder_to_mono_class_field): New static function.
6360         (mono_reflection_inflate_field): New public function.
6361
6362         * reflection.h
6363         (MonoReflectionGenericInst): Added `MonoArray *fields'.
6364         (MonoReflectionInflatedField): New typedef.     
6365
6366 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
6367
6368         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
6369         for Solaris and other platforms without s6_addr16
6370
6371 2003-10-30  Martin Baulig  <martin@ximian.com>
6372
6373         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
6374         argument instead of two.
6375         (mono_class_inflate_generic_signature): Likewise.
6376         (inflate_generic_header): Likewise.
6377         (mono_class_inflate_generic_method): Likewise.  In addition, if
6378         `ginst->klass' is set, it becomes the new `method->klass'.
6379
6380         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
6381         field.
6382
6383         * reflection.c (encode_generic_method_sig): Write a 0xa as the
6384         first byte. [FIXME]
6385         (method_encode_methodspec): If we have generic parameters, create
6386         a MethodSpec instead of a MethodRef.
6387         (fixup_method): Added support for "MonoInflatedMethod" and
6388         "MonoInflatedCtor".
6389         (mono_image_create_token): Added support for "MonoInflatedMethod"
6390         and "MonoInflatedCtor".
6391         (inflated_method_get_object): New static function; returns a
6392         managed "System.Reflection.MonoInflatedMethod" object.
6393         (mono_reflection_bind_generic_method_parameters): Return a
6394         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
6395         (mono_reflection_inflate_method_or_ctor): Likewise.
6396         (mono_image_get_generic_method_param_info): Initialize unused
6397         fields to zero.
6398         (mono_image_get_generic_param_info): Likewise.
6399
6400         * reflection.h (MonoReflectionInflatedMethod): New public
6401         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
6402         "S.R.MonoInflatedCtor" classes.
6403
6404         * loader.c (method_from_memberref): If we're a TypeSpec and it
6405         resolves to a generic instance, inflate the method.
6406
6407 2003-10-28  Dick Porter  <dick@ximian.com>
6408
6409         * object.c (mono_runtime_run_main): Convert command-line arguments
6410         into utf8, falling back to the user's locale encoding to do so.
6411
6412 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
6413
6414         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
6415         at this time.
6416
6417         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
6418
6419         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
6420         up icalls at method definition time. Partially fixes #33569.
6421
6422 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
6423
6424         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
6425         marshalling of arrays. Fixes #50116.
6426
6427         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
6428
6429         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
6430         points to a vtable in the dying appdomain.
6431
6432         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
6433         listeners into unmanaged code inside the lock.
6434
6435         * object.c (mono_class_vtable): Turn off typed allocation in non-root
6436         domains and add some comments.
6437
6438 2003-10-25  Martin Baulig  <martin@ximian.com>
6439
6440         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
6441
6442         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
6443
6444         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
6445         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
6446         currently parsing.  Create the generic class and store it in
6447         `generic_inst->klass' before parsing the type arguments.  This is
6448         required to support "recursive" definitions; see mcs/tests/gen-23.cs
6449         for an example.
6450         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
6451         to support recursive typespec entries.
6452
6453         * class.c (mono_class_setup_parent): If our parent is a generic
6454         instance, we may get called before it has its name set.
6455         (mono_class_from_generic): Splitted into
6456         mono_class_create_from_generic() and mono_class_initialize_generic().
6457
6458 2003-10-25  Martin Baulig  <martin@ximian.com>
6459
6460         * icall.c (ves_icall_Type_BindGenericParameters): Return a
6461         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
6462         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
6463         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
6464
6465         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
6466         (create_typespec): Likewise.
6467         (mono_reflection_bind_generic_parameters): Return a
6468         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
6469         (mono_reflection_inflate_method_or_ctor): New public function.
6470
6471         * reflection.h (MonoReflectionGenericInst): New typedef.        
6472
6473 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
6474
6475         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
6476         inside the domain lock. Fixes #49993.
6477         
6478         * object.c (mono_class_vtable): When typed allocation is used, 
6479         allocate vtables in the GC heap instead of in the mempool, since the
6480         vtables contain GC descriptors which are used by the collector even
6481         after the domain owning the mempool is unloaded.
6482
6483         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
6484
6485         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
6486         reflect what it does. Also invalidate mempools instead of freeing
6487         them if a define is set.
6488
6489         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
6490         of the appdomain.
6491         
6492         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
6493         hold the finalizable objects in this domain.
6494
6495         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
6496         appdomain.
6497
6498         * appdomain.c (mono_domain_set): New function to set the current
6499         appdomain, but only if it is not being unloaded.
6500
6501         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
6502         appdomain which is being unloaded.
6503         
6504         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
6505         unloading of the root appdomain.
6506
6507         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
6508         icall to execute a method in another appdomain. Intended as a 
6509         replacement for InternalSetDomain, which can confuse the code 
6510         generation in the JIT.
6511
6512         * appdomain.c (mono_domain_is_unloading): New function to determine
6513         whenever an appdomain is unloading.
6514
6515         * appdomain.c (mono_domain_unload): New function to correctly unload
6516         an appdomain.
6517
6518         * assembly.c (mono_assembly_load_references): Check that an assembly
6519         does not references itself.
6520
6521         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
6522         domain manually, it asks the finalizer thread to do it, then waits for
6523         the result. Also added a timeout.
6524
6525         * icall.c: Register the new icalls.
6526
6527         * threads.h threads.c: Export the mono_gc_stop_world and 
6528         mono_gc_start_world functions.
6529         
6530         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
6531         function to fill out the mempool with 0x2a.
6532
6533 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
6534
6535         * reflection.h (MonoReflectionMethodAux): New structure to store
6536         information which is rarely used, thus is not in the MonoMethod
6537         structure.
6538
6539         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
6540         store the aux info.
6541
6542         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
6543         and marshalling info into the aux structure.
6544
6545         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
6546         from the aux structure.
6547
6548         * loader.c (mono_method_get_param_names): Retrieve the param names from
6549         the aux structure.
6550         
6551 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
6552
6553         * exception.h exception.c: Add AppDomainUnloadedException && fix 
6554         warning.
6555
6556 2003-10-21  Dick Porter  <dick@ximian.com>
6557
6558         * socket-io.c
6559         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
6560         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
6561
6562 2003-10-21  Martin Baulig  <martin@ximian.com>
6563
6564         * reflection.c (mono_reflection_bind_generic_parameters):
6565         `klass->parent' is NULL for interfaces.
6566
6567 2003-10-21  Martin Baulig  <martin@ximian.com>
6568
6569         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
6570
6571 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * exception.c (mono_exception_from_name_msg): New helper function for
6574         creating exceptions and initializing their message field.
6575
6576         * exception.c: Simplify functions using the new helper.
6577
6578         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
6579         New function.
6580
6581         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
6582         mono_raise_exception, since otherwise gcc doesn't generate the function
6583         epilog for raise_exception, confusing the stack unwinding in the JIT.
6584         Fixes #45043.
6585
6586         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
6587         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
6588         Fixes #49499.
6589
6590 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6591
6592         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
6593         utf8.
6594
6595 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
6596
6597         * icall.c: Removed GetUninitializedObject method because
6598           AllocateUninitializedClassInstance does the same.
6599
6600 2003-10-18  Martin Baulig  <martin@ximian.com>
6601
6602         * class.c (inflate_generic_signature): Renamed to
6603         mono_class_inflate_generic_signature() and made it public.
6604         (my_mono_class_from_generic_parameter): New static function; if we
6605         don't already have the generic parameter's MonoClass, create a
6606         very simple one which is just used internally in the runtime and
6607         not passed back to managed code.
6608
6609         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
6610
6611         * metadata.h (MonoMethodSignature): Moved the
6612         `MonoGenericParam *gen_params' to the MonoMethodHeader.
6613         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
6614
6615         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
6616         ves_icall_MonoMethod_GetGenericArguments(); this is now an
6617         interncall on the MonoMethod class, not on MethodInfo.
6618         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
6619         calling mono_reflection_bind_generic_method_parameters() directly.
6620
6621         * loader.c (mono_method_get_signature): If this is a MethodSpec;
6622         return the already computed `method->signature'.
6623         (method_from_methodspec): New static function to load a method
6624         from a MethodSpec entry.
6625         (mono_get_method_from_token): Call the new method_from_methodspec()
6626         for MethodSpec tokens.  
6627         (mono_get_method_from_token): If we're a generic method, load the
6628         type parameters.
6629
6630         * reflection.c (mono_image_get_memberref_token): Allow
6631         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
6632         table.
6633         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
6634         (mono_image_create_token): First check whether it's a generic
6635         method (so we'd need to create a MethodSpec), then do the other
6636         two alternatives.
6637         (mono_reflection_bind_generic_method_parameters): Return a
6638         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
6639         called directly from the interncall.
6640
6641 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
6642
6643         * reflection.c (load_public_key): Move loading of the public key
6644         into managed code.
6645
6646         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
6647
6648         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
6649         fields.
6650
6651         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
6652         culture, hash_alg and public_key. Fixes #49555.
6653
6654 2003-10-17  Martin Baulig  <martin@ximian.com>
6655
6656         * class.h (MonoGenericInst): Moved this declaration here and added
6657         `MonoMethod *generic_method'.
6658
6659         * icall.c
6660         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
6661         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
6662
6663         * metadata.c (mono_metadata_type_equal): Two types of
6664         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
6665         index; ie. don't compare the address of the `MonoGenericParam'
6666         structure.
6667         (mono_metadata_load_generic_params): Removed the `MonoMethod
6668         *method' argument.
6669
6670         * metadata.h (MonoGenericInst): Moved declaration to class.h.
6671         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
6672
6673         * reflection.c (method_encode_signature): Encode the number of
6674         generic parameters.
6675         (encode_generic_method_sig): New static function.
6676         (method_encode_methodspec): New static function; creates an entry
6677         in the MethodSpec table for a generic method.
6678         (mono_image_get_methodspec_token): New static function.
6679         (mono_image_create_token): Call mono_image_get_methodspec_token()
6680         for generic methods.
6681         (mono_reflection_bind_generic_method_parameters): New public
6682         function.  Instantiates a generic method.
6683
6684 2003-10-16  Martin Baulig  <martin@ximian.com>
6685
6686         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
6687         *gen_params' here from MonoMethodHeader.
6688
6689         * metadata.c (mono_metadata_parse_method_signature): If we have
6690         generic parameters, initialize `method->gen_params' and then set
6691         the correct `type->data.generic_param' in all the parameters.
6692
6693 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
6694
6695         * threads.c (mono_threads_get_default_stacksize): New function to 
6696         return the default stacksize.
6697
6698         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
6699         termination of the finalizer thread, since the previous method had
6700         race conditions. Fixes #49628.
6701
6702         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
6703         as for the other managed threads.
6704
6705 2003-10-16  Martin Baulig  <martin@ximian.com>
6706
6707         * class.c (inflate_generic_signature): Copy `generic_param_count'
6708         and `gen_params'.
6709
6710         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
6711         New interncall.
6712
6713         * metadata.c (mono_metadata_parse_method_signature): Actually set
6714         the `method->generic_param_count' here.
6715         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
6716
6717 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
6718
6719         * object.h: Add a new field to TypedRef to simplify the implementation
6720         of the REFANY opcodes in the JIT.
6721
6722         * icall.c: Make use of the new field.
6723
6724         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
6725         dynamically.
6726
6727 2003-10-15  Martin Baulig  <martin@ximian.com>
6728
6729         * class.c (mono_class_from_gen_param): Renamed to
6730         mono_class_from_generic_parameter() and moved most of the
6731         functionality from mono_reflection_define_generic_parameter()
6732         here; ie. we create a "real" class here.
6733         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
6734         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
6735         previously been called.
6736
6737         * class.h (MonoGenericParam): Moved the declaration of this struct
6738         here from metadata.h and added `MonoMethod *method'.
6739
6740         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
6741         interncall.
6742
6743         * loader.c (mono_get_method_from_token): If we have any generic
6744         parameters, call mono_metadata_load_generic_params() to read them
6745         from the MONO_TABLE_GENERICPAR.
6746
6747         * metadata.c (mono_metadata_load_generic_params): Added
6748         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
6749
6750         * metadata.h (MonoMethodSignature): Replaced
6751         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
6752         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
6753
6754         * reflection.c (mono_reflection_define_generic_parameter): Moved
6755         most of the functionality into the new
6756         mono_class_from_generic_parameter(); set the `method' field if
6757         we're a method parameter.       
6758
6759 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
6760
6761         * marshal.c (emit_struct_conv): if native size is 0
6762         emit no code.
6763
6764 2003-10-14  Martin Baulig  <martin@ximian.com>
6765
6766         * icall.c: The generics API has changed in the spec since it was
6767         added to System.Type; these modifications make it match the spec
6768         again.
6769         (ves_icall_Type_GetGenericParameters): Renamed to
6770         `ves_icall_Type_GetGenericArguments'.
6771         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
6772         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
6773         `ves_icall_MonoType_get_HasGenericArguments'.
6774         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
6775         `ves_icall_MonoType_get_IsGenericParameter'.
6776         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
6777         this is no interncall anymore.
6778         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
6779         `ves_icall_TypeBuilder_get_IsGenericParameter'.
6780
6781 2003-10-14  Martin Baulig  <martin@ximian.com>
6782
6783         * reflection.c (mono_reflection_bind_generic_parameters): Also
6784         inflate generic methods if we're reading the class from IL.
6785
6786 2003-10-13  Martin Baulig  <martin@ximian.com>
6787
6788         * reflection.c (mono_reflection_define_generic_parameter): This
6789         method isn't called directly from the icall anymore; take a
6790         `MonoReflectionAssemblyBuilder *' so we can use this for type and
6791         method generic parameters.
6792         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
6793         (method_builder_encode_signature): Encode generic parameters.
6794         (mono_image_get_method_info): Write generic params to the
6795         MONO_TABLE_GENERICPARAM table.
6796
6797         * reflection.h (MonoReflectionMethodBuilder): Added
6798         `MonoArray *generic_params'.
6799
6800         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
6801
6802         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
6803         wrapper for mono_reflection_define_generic_parameter().
6804         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
6805
6806 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
6807
6808         * marshal.h: Add missing function to fix build.
6809
6810         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
6811         the SetLastError pinvoke attribute.
6812
6813         * marshal.c (mono_marshal_set_last_error): New helper function called
6814         by the generated code.
6815         
6816         * marshal.c (mono_mb_emit_branch): New helper function.
6817
6818         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
6819
6820         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
6821         classes as parameters and return values of delegates. Fixes #29256. 
6822
6823 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
6824
6825         * locales.c: use gint32 in non HAVE_ICU case
6826
6827 2003-10-11  Martin Baulig  <martin@ximian.com>
6828
6829         * mono-debug.c (mono_debug_add_method): Added a workaround for
6830         bug #48591.
6831
6832 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
6833
6834         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
6835         delegates passed to native code must use the STDCALL calling 
6836         convention. Fixes #35987.
6837
6838 2003-10-10  Martin Baulig  <martin@ximian.com>
6839
6840         * class.c (inflate_generic_type): If we're inflating for a generic
6841         type instance (and not for a generic method), return
6842         MONO_TYPE_MVAR unchanged.
6843
6844 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6845
6846         * string-icalls.c: Join ignores null strings in the source array.
6847         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
6848         * threads.c: GetAvailableTheads is slightly more accurate.
6849
6850 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
6851
6852         * threads.h threads.c : add mono_threads_set_default_stacksize
6853         and pass default to CreateThread calls.
6854
6855 2003-10-09  Dick Porter  <dick@ximian.com>
6856
6857         * icall.c:
6858         * locales.h:
6859         * locales.c: Internal calls for constructing CultureInfo and
6860         related objects from libicu (if its available.)
6861
6862 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
6863
6864         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
6865
6866 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6867
6868         * threadpool.c: added an argument to async_invoke_thread that is the
6869         item to process, pass the MonoAsyncResult to the thread start function
6870         when creating a new thread. This way we don't need to acquire any lock
6871         when we're creating a new thread. Readded a semaphore for faster
6872         response times (instead of that Sleep i added).
6873
6874 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
6875
6876         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
6877         get daylight change dates better on Windows, fix handling
6878         of platforms without tm_gmtoff.
6879
6880 2003-10-06  Martin Baulig  <martin@ximian.com>
6881
6882         * class.c (inflate_generic_method): Renamed to
6883         mono_class_inflate_generic_method() and made public.
6884         (mono_class_init): Don't inflate the generic methods here.
6885         (mono_class_from_generic): Added `gboolean inflate_methods'
6886         argument.  Inflate the methods here.
6887
6888         * loader.c (mono_method_get_param_names): Ignore instances of
6889         generic types for the moment.
6890
6891         * reflection.c (fixup_method): Added support for inflated methods.
6892         (mono_image_create_token): Use mono_image_get_methodref_token()
6893         for inflated methods.
6894         (mono_custom_attrs_from_param): Ignore instances of generic types
6895         for the moment.
6896         (mono_reflection_bind_generic_parameters): New public function.
6897         Moved all the functionality from
6898         ves_icall_Type_BindGenericParameters() here and added support for
6899         dynamic types.
6900         (mono_reflection_define_generic_parameter): Initialize
6901         `klass->methods' here.
6902
6903         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
6904         functionality into mono_reflection_define_generic_parameter().
6905         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
6906         TypeBuilder, return that TypeBuilder.
6907
6908 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6909
6910         * appdomain.c: removed mono_delegate_semaphore.
6911
6912         * threadpool.c:
6913         (mono_thread_pool_add): moved hash table creation inside and the thread 
6914         creation outside of the critical region.
6915         (mono_thread_pool_finish): removed obsolete code.
6916         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
6917         continue or exit the thread depending on the queue.
6918
6919 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
6920
6921         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
6922         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
6923         handle more bool marshalling options
6924
6925 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
6926
6927         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
6928         arrays of structs. Also add a more descriptive error message when
6929         a structure member is marshalled as LPArray.
6930
6931 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
6932
6933         * marshal.c (mono_marshal_get_native_wrapper): Add support for
6934         marshalling arrays of complex types. Fixes #29098. Also remove an
6935         usused and incomplete function.
6936
6937 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
6938
6939         * gc.c: report heap_size - free_bytes as total memory allocated
6940         (bug#49362).
6941
6942 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
6943
6944         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
6945         fix timezone handling problems on Windows.
6946         
6947         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
6948         asserts when the year is outside the range handled by ms the functions.
6949
6950         * class.c (setup_interface_offsets): If the class is an interface,
6951         fill out its interface_offsets slot.
6952
6953 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6954
6955         * threadpool.c: mark threadpool threads as background.
6956
6957 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
6958
6959         * decimal.c - define DECINLINE to nothing if not using GCC
6960
6961 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
6962
6963         * assembly.c: More refcount fixes.
6964
6965 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6966
6967         * string-icalls.c: if we're not trimming, return the same string.
6968         When not splitting, don't create a new string.
6969
6970 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6971
6972         * image.c:
6973         (mono_image_open): increment the ref_count inside the critical section.
6974
6975 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
6976
6977         * image.c (mono_image_open): Fix reference counting bug.
6978
6979 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
6980
6981         * marshal.c (mono_marshal_type_size) struct alignment changed for 
6982         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
6983         64bits. Avoid leak in mono_marshal_get_native_wrapper when
6984         mono_lookup_pinvoke_call throws.        
6985
6986 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
6987
6988         * reflection.c (mono_reflection_parse_type): Fix #49114.
6989
6990         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
6991         temporary workaround for cygwin header problem.
6992
6993         * object.c (mono_object_isinst): Synchronize this with the code
6994         generated by the JIT for casts.
6995
6996 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
6997
6998         * reflection.c (encode_type): Fix #38332.
6999
7000 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
7001
7002         * marshal.c (mono_marshal_method_from_wrapper): New function to return
7003         the original method from the wrapper method.
7004
7005 2003-09-25  Martin Baulig  <martin@ximian.com>
7006
7007         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
7008         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
7009         (ves_icall_Type_get_IsGenericInstance): New interncall.
7010
7011 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
7012
7013         * object.c: fix cast warning in big endian code.
7014
7015 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
7016
7017         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
7018         
7019 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7020
7021         * assembly.c: don't call check_env from mono_assembly_load. It's
7022         already done once in mono_assemblies_init and may cause headaches when
7023         multiple threads are loading assemblies.
7024
7025 2003-09-19  Martin Baulig  <martin@ximian.com>
7026
7027         * reflection.c (mono_reflection_define_generic_parameter): Don't
7028         allocate `klass->methods', set `klass->flags' to
7029         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
7030
7031 2003-09-18  Martin Baulig  <martin@ximian.com>
7032
7033         * class.c (mono_class_init): Don't create `class->methods' if it's
7034         already initialized.
7035
7036         * metadata.c (mono_metadata_load_generic_params): Make this
7037         actually work.
7038
7039         * reflection.c (mono_reflection_define_generic_parameter): Set
7040         parent class and interfaces from the constraints.
7041
7042         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
7043         to keep this struct in sync with the declaration in TypeBuilder.cs.
7044
7045 2003-09-17  Martin Baulig  <martin@ximian.com>
7046
7047         * metadata.h (MonoType): Replaced the data's `int type_param'
7048         field with `MonoGenericParam *generic_param'.
7049         (MonoGenericParam): Added `MonoClass *klass'.
7050
7051         * class.c (mono_class_from_gen_param): Removed the
7052         `MonoImage *image' and `int type_num' arguments.
7053
7054         * metadata.c (mono_metadata_parse_generic_param): New static
7055         method; creates a MonoGenericParam which just contains the index.
7056         (do_mono_metadata_parse_type): Call
7057         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
7058         MONO_TYPE_MVAR.
7059
7060         * reflection.c (mono_image_typedef_or_ref): Generic type
7061         parameters may be in the same assembly, but never use a typedef
7062         for them.
7063         (mono_reflection_define_generic_parameter): We're now creating a
7064         "real" class for the type parameter; it's now safe to call
7065         mono_class_from_mono_type() on the class'es type, it'll do the
7066         right thing.
7067
7068 2003-09-16  Martin Baulig  <martin@ximian.com>
7069
7070         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
7071         `symfile->range_entry_size' and `symfile->class_entry_size' here;
7072         the `symfile' data structure must be fully initialized before it
7073         gets added to the table.
7074
7075 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
7076
7077         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
7078
7079         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
7080         class init trampolines.
7081
7082 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
7083
7084         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
7085         to the built-in profiler to turn off time and allocation profiling
7086         respectively.
7087
7088 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
7089
7090         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
7091         g_direct_equal.
7092
7093         * debug-helpers.c (mono_method_full_name): Print the wrapper type
7094         in human readable form.
7095
7096 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
7097
7098         * reflection.c icall.c: Fixed warnings.
7099
7100         * image.c (load_class_names): Use a temporary hash table to hold the
7101         namespaces in order to avoid doing many string comparisons.
7102
7103         * image.h: Fix typo.
7104
7105         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
7106         Pass NULL instead of g_direct_equal to the GHashTable constructor 
7107         since the NULL case is short-circuited inside g_hash_table_lookup, 
7108         leading to better performance.  
7109
7110         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
7111         obtain the first custom attribute for a given index. Depends on the
7112         CustomAttribute table being sorted by the parent field.
7113
7114         * reflection.c (mono_custom_attrs_from_index): Use the new function 
7115         for better performance.
7116
7117 2003-09-07  Martin Baulig  <martin@ximian.com>
7118
7119         * class.c (mono_class_init): If we're a generic instance, inflate
7120         all our methods instead of loading them from the image.
7121         (mono_class_from_generic): Set `class->methods = gklass->methods'.
7122
7123 2003-09-07  Martin Baulig  <martin@ximian.com>
7124
7125         * mono-debug-debugger.c: Added support for constructors.
7126
7127 2003-09-06  Martin Baulig  <martin@ximian.com>
7128
7129         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
7130         New interncall.
7131
7132         * reflection.c (mono_reflection_setup_generic_class): Call
7133         ensure_runtime_vtable() to create the vtable.
7134
7135 2003-09-05  Martin Baulig  <martin@ximian.com>
7136
7137         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
7138         MONO_TYPE_MVAR.
7139
7140 2003-09-04  Martin Baulig  <martin@ximian.com>
7141
7142         * reflection.c (mono_reflection_define_generic_parameter): Generic
7143         parameters start with zero.
7144
7145 2003-09-04  Martin Baulig  <martin@ximian.com>
7146
7147         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7148
7149         * reflection.h (MonoReflectionGenericParam): New typedef.
7150         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
7151         the generic parameters from the managed TypeBuilder.
7152
7153         * reflection.c (mono_reflection_define_generic_parameter): New function.
7154         (mono_reflection_create_runtime_class): Encode generic parameters.
7155         (mono_reflection_setup_generic_class): New function; this is
7156         called after adding adding all generic params to the TypeBuilder.
7157         (encode_type): Added MONO_TYPE_VAR.
7158
7159 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
7160
7161         * class.h class.c (mono_class_needs_cctor_run): Moved this method
7162         here from the JIT.
7163
7164         * assembly.h assembly.c: Moved the AOT loading code into an assembly
7165         load hook.
7166
7167 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
7168
7169         * reflection.h reflection.c class.h class.c: Delete duplicate 
7170         definition of mono_type_get_name () from reflection.c and export the
7171         one in class.c.
7172
7173         * class.c: Class loading fixes from Bernie Solomon 
7174         (bernard@ugsolutions.com).
7175
7176         * reflection.c: Endianness fixes from Bernie Solomon 
7177         (bernard@ugsolutions.com).
7178         
7179 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
7180
7181         * assembly.h assembly.c: Define a file format version for AOT
7182         libraries.
7183         
7184         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
7185
7186         * appdomain.h (MonoJitInfo): New field to determine whenever the
7187         code is domain neutral.
7188         
7189 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
7190
7191         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
7192
7193 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
7194
7195         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
7196         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
7197         Avoid caching the result since strings must be domain specific. Fixes
7198         #48050.
7199
7200 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
7201
7202         * marshal.c (mono_marshal_init): Make this callable multiple times
7203         since it is hard to find a correct place to call it.
7204
7205         * object.c (mono_runtime_class_init): Execute static constructors in
7206         the correct appdomain.
7207
7208         * image.c (build_guid_table): Handle the case when multiple images have
7209         the same GUID.
7210
7211 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7212
7213         * icall.c: added a couple of icalls for System.Web.
7214
7215 2003-08-28  Martin Baulig  <martin@ximian.com>
7216
7217         * icall.c (ves_icall_Type_BindGenericParameters): Use
7218         `klass->generic_inst' instead of `&klass->byval_arg' in the
7219         mono_type_get_object() call.  The returned type must be
7220         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
7221
7222 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
7223
7224         * NOTES: New file.
7225
7226         * object.c (mono_class_proxy_vtable): Make it thread safe.
7227
7228         * pedump.c: Fix warning.
7229
7230         * object.c appdomain.h: Get rid of metadata_section. 
7231         It is no longer needed and it was causing deadlocks with domain->lock.
7232
7233         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
7234
7235 2003-08-26  Martin Baulig  <martin@ximian.com>
7236
7237         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
7238
7239 2003-08-26  Martin Baulig  <martin@ximian.com>
7240
7241         * pedump.c (main): Call mono_metadata_init(),
7242         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
7243         and mono_loader_init().
7244
7245 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
7246
7247         * loader.h: Add missing include to fix build.
7248
7249         * image.h: mono_image_load_references is no more.
7250
7251         * assembly.c: Reworked assembly loading to make it really thread safe.
7252         After these changes, the assembly returned by mono_assembly_open is
7253         fully initialized, i.e. all its references assemblies are loaded.
7254
7255         * assembly.c (mono_image_load_references): Renamed to 
7256         mono_assembly_load_references, and made private, since clients no
7257         longer need to call it.
7258
7259         * class.c: Removed calls to mono_assembly_load_references, since it was
7260         a source of deadlocks.
7261
7262         * loader.h loader.c class.h class.c: Protect data structures using a 
7263         new lock, the loader lock.
7264
7265         * class.c (mono_class_setup_vtable): Create temporary hash tables and
7266         GPtrArrays only when needed.
7267
7268         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
7269         into empty structures by mcs. Fixes pinvoke7.cs.
7270         
7271         * domain.c (mono_init): Call a new initialization function.
7272
7273         * appdomain.c (mono_runtime_init): Call the new initializer function
7274         of the marshal module.
7275
7276         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
7277         inserted into empty structures by mcs. Fixes pinvoke7.cs.
7278
7279         * marshal.h marshal.c: Added locks around the wrapper caches to make
7280         this module thread safe.
7281
7282         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
7283         this argument. Fixes pinvoke1.exe.
7284
7285 2003-08-25  Lluis Sanchez <lluis@ximian.com>
7286
7287         * object.h: Added call_type field to MonoMethodMessage and the corresponding
7288         enumeration of values. Removed fields to store remote call output values in
7289         MonoAsyncResult. Not needed any more.
7290         * object.c: Initialize call_type and async_result fields in mono_message_init.
7291         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
7292         dispatching the message.
7293         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
7294         async call to finish. To do it use a message with EndInvoke call type.
7295
7296 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
7297
7298         * loader.h loader.c (mono_method_hash_marhal_info): New function which
7299         determines whenever a method has marshalling info.
7300
7301 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7302
7303         * assembly.c: fix the build on windows.
7304
7305 2003-08-22 Lluis Sanchez <lluis@ximian.com>
7306
7307         * object.cs: Fixed bug #47785.
7308
7309 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
7310
7311         * string-icalls.c (StringReplace): If their are no occurances of
7312         the old string found return a reference to the supplied
7313         string. This saves some memory and matches MS behavoir.
7314         
7315 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7316
7317         * socket-io.c: fixed compilation for systems that define AF_INET6
7318         and don't define SOL_IP/SOL_IPV6.
7319
7320 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
7321
7322         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
7323         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
7324
7325         * rawbuffer.c rawbuffer.h: Make this module thread safe.
7326
7327         * domain.c: Make this module thread safe.
7328
7329         * domain.c (mono_init): Call new initialization function.
7330
7331         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
7332         reference types too. Fixes #38812.
7333
7334         * image.c (mono_image_init): Fixed warnings.
7335
7336         * class.c (mono_class_from_typeref): Handle assembly load failure
7337         correctly.
7338
7339         * appdomain.c (add_assemblies_to_domain): Handle the case when
7340         the references of an assembly are not yet loaded.
7341
7342         * metadata.c image.c assembly.c: Moved initialization of global
7343         variables to a separate function called at startup since lazy 
7344         initialization of these variables is not thread safe.
7345         
7346         * image.c assembly.c: Made this module thread safe by adding locks in 
7347         the appropriate places.
7348
7349         * domain.c (mono_init): Call the new initialization functions of the
7350         three modules.
7351
7352 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
7353
7354         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
7355           make a direct call. It is proxy's work to make the call asynchronous.
7356           mono_delegate_end_invoke(): If the targe is a proxy, just collect
7357           the return values.
7358         * object.cs: mono_method_call_message_new(): read AsyncResult and
7359           state object from parameters list, if this info is requested.
7360         * object.h: Added fields to store remote call output values in
7361           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
7362
7363 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7364
7365         * object.h: add needed fields to MonoThread.
7366         * threads.c, threads.h: allow registering a function to cleanup data
7367         allocated per thread by the JIT.
7368
7369 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7370
7371         * loader.h: portability fix by Bernie Solomon
7372         * <bernard@ugsolutions.com>.
7373
7374 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
7375
7376         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
7377         return a MonoArray. This simplifies the code and also ensures that
7378         the cache allways contains an object reference as a value.
7379
7380         * icall.c (ves_icall_get_parameter_info): Simplified using the new
7381         function.
7382
7383 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7384
7385         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
7386         fixes a problem with byte ordering when getting the address family for
7387         a socket.
7388
7389 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
7390
7391         * .cvsignore: Added monosn.
7392
7393         * reflection.h reflection.c loader.c: Added support for parameter
7394         marshalling to dynamically created types. Fixes #47295.
7395
7396 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
7397
7398         * rand.c: remove useless warnings.
7399
7400 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7401
7402         * class.c: implemented ldtoken for methods and fieldrefs.
7403
7404 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7405
7406         * threadpool.c: when mono_async_invoke was called, no one took care of
7407         monitoring the queue. So if the method invoked took some time and we
7408         got new async invoke requests after 500 ms (the thread created waited
7409         that long in WaitForSingleObject), the new async invoke was not called
7410         until the previous one finished.
7411
7412         This is fixed now. Thanks to Totte for helping with it.
7413
7414 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7415
7416         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
7417
7418 2003-08-11  Martin Baulig  <martin@ximian.com>
7419
7420         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
7421
7422 2003-08-06  Martin Baulig  <martin@ximian.com>
7423
7424         * mono-debug-debugger.c: Added support for static fields,
7425         properties and methods.
7426
7427 2003-08-06  Martin Baulig  <martin@ximian.com>
7428
7429         * mono-debug-debugger.c: Don't store the MonoString's vtable to
7430         make this work for applications with multiple application domains.
7431
7432 2003-08-04  Martin Baulig  <martin@ximian.com>
7433
7434         * mono-debug-debugger.c: Completely reworked the type support; the
7435         most important thing is that we're now just using one single
7436         `MonoType' instance per type.
7437
7438 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
7439
7440         * mono-endian.h, mono-endian.c, icall.c: Added icall
7441         ves_icall_System_Double_AssertEndianity to assert double word endianity
7442         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
7443
7444 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7445
7446         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
7447         support, icalls and fixes.
7448
7449 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
7450
7451         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
7452         classes that are a punctuation character in .NET is not the same a
7453         g_unichar_ispunct.
7454
7455 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
7456
7457         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
7458
7459 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
7460
7461         * icall.c: Add new MemCopy internalcall.
7462         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
7463         Simplified code; It is not necessary to handle all the cases here,
7464         as the C# code takes care of it.  Only handle the case of the name
7465         resource embedded into the assembly.
7466
7467         Changed signature to return the data pointer and the size of the
7468         data. 
7469
7470 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
7471
7472         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
7473         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
7474
7475 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7476
7477         * socket-io.c: ignore EINTR error in select.
7478
7479 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
7480
7481         * class.h, class.c: removed unused subclasses field in MonoClass.
7482
7483 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
7484
7485         * icall.c: improve fix of get_base_definition(). If the parent class
7486           doesn't have the mehod, look at the parent of the parent.
7487         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
7488           to check if a parameter is an in or out parameter
7489           (PARAM_ATTRIBUTE_IN is not set by default).
7490           mono_method_return_message_restore(): Use mono_class_value_size to
7491           get the size of a value type. mono_type_stack_size (parameterType)
7492           does not return the correct value if parameterType is byRef.
7493           mono_load_remote_field(), mono_load_remote_field_new(),
7494           mono_store_remote_field(), mono_store_remote_field_new():
7495           raise exception if the remote call returns an exception.
7496
7497 2003-07-28  Martin Baulig  <martin@ximian.com>
7498
7499         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
7500         method.  This is a wrapper around mono_runtime_invoke() which
7501         boxes the instance object if neccessary.
7502
7503 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7504
7505         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
7506         metadata.h, row-indexes.h, verify.c: first cut of generics support.
7507
7508 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7509
7510         * icall.c: disable mcs bug workaround.
7511
7512 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
7513
7514         * object.c (mono_runtime_class_init): Take the metadata_section
7515         mutex before obtaining the domain mutex.
7516
7517         * appdomain.h: Added definition of metadata_section mutex here. 
7518
7519         * object.c: define metadata_mutex here.
7520
7521 2003-07-24  Ravi Pratap  <ravi@ximian.com>
7522
7523         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
7524         fixed.
7525
7526 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
7527
7528         * reflection.c: Fix bug #46669
7529
7530 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7531
7532         * exception.c:
7533         * exception.h:
7534         * icall.c:
7535         * object.h: fill in the type name for TypeLoadException.
7536
7537 2003-07-23  Ravi Pratap  <ravi@ximian.com>
7538
7539         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
7540         relationship between TypeBuilders while compiling corlib) and bug
7541         45993 (Array types returned from the runtime while compiling
7542         corlib were from the loaded corlib).
7543
7544 2003-07-22  Martin Baulig  <martin@ximian.com>
7545
7546         * mono-debug-debugger.c: Reworked the type support a bit more;
7547         distinguish between types and classes.
7548
7549 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
7550
7551         * icall.c: add IsArrayImpl icall.
7552
7553 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
7554
7555         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
7556         initializing real_size only once. Also fix bug #46602.
7557
7558 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
7559
7560         * object.c: Renamed mono_metadata_section to metadata_section.
7561
7562 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
7563
7564         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
7565           empty array if the type is an array. Fixed.
7566           ves_icall_MonoMethod_get_base_definition: if the base method
7567           is abstract, get the MethodInfo from the list of methods of
7568           the class.
7569         * reflection.c: ParameterInfo.PositionImpl should be zero-based
7570           and it was 1-based. Fixed in mono_param_get_objects.
7571
7572 2003-07-20  Martin Baulig  <martin@ximian.com>
7573
7574         * mono-debug.h: Set version number to 31.
7575         (mono_debug_init): Added `MonoDomain *' argument.
7576
7577         * mono-debug-debugger.c: Reworked the type support; explicitly
7578         tell the debugger about builtin types; pass the `klass' address to
7579         the debugger.
7580
7581 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
7582
7583         * image.c: Allow new metadata tables to be loaded without a
7584         warning. Also update the warning message to give the new constant value.
7585                 
7586 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
7587
7588         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
7589         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
7590         array type representation changes.
7591
7592 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7593
7594         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
7595         on Environment.Exit () call.
7596
7597 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
7598
7599         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
7600         requires a matching corlib.
7601
7602 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7603
7604         * Changelog: My editor decided to add a CR to each line. Sorry about that.
7605           Committed again without the CRs.
7606         
7607 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
7608
7609         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
7610           getting it from the "this" socket instance. Did not work
7611           if the socket is a subclass of Socket.
7612           Also fixed bug #35371.
7613
7614 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7615
7616         * metadata.c: fixed size for TypedByRef.
7617         * loader.c: when searching for a method, consider the vararg amrker.
7618         * unicode.c, decimal.c: constify some arrays.
7619
7620 2003-07-15  Dick Porter  <dick@ximian.com>
7621
7622         * socket-io.c: Fixed compilation for gcc < 3.2.
7623
7624         Fixed compilation for machines that don't have AF_INET6 (thanks to
7625         Bernie Solomon <bernard@ugsolutions.com> for that part.)
7626
7627         Fixed compile warnings.
7628         
7629         Fixed formatting and line endings.
7630
7631 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
7632
7633         * socket-io.h:
7634         * socket-io.c: Added IPv6 support.
7635
7636 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
7637
7638         * class.c (mono_class_is_assignable_from): New function to implement
7639         the is_assignable_from logic. Used by mono_object_isinst, 
7640         Type::IsAssignableFrom () and the interpreter.
7641
7642         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
7643         Object, even interfaces.
7644         
7645         * object.c (mono_object_isinst): Implement in terms of 
7646         is_assignable_from.
7647
7648         * icall.c (ves_icall_type_is_assignable_from): New icall.
7649
7650 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
7651
7652         * domain.c (foreach_domain): fix compiler warning.
7653
7654 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
7655
7656         * image.c (load_metadata_ptrs): use g_strndup because strndup is
7657         not available on all plattforms
7658
7659 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
7660
7661         * image.h image.c: Store the metadata version string in MonoImage.
7662         * icall.c: New icall to retrieve the image version.
7663         * reflection.c (create_dynamic_image): Fill in the image version field
7664         * reflection.c (build_compressed_metadata): Use the image version
7665         from the image structure.
7666
7667 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7668
7669         * appdomain.c: modified comment.
7670         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
7671         That will be its last iteration when mono_gc_cleanup is called from
7672         mono_runtime_cleanup and before the domain is unloaded.
7673
7674         Fixes bug #45962.
7675
7676 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
7677
7678         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
7679         attributes.
7680
7681 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7682
7683         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
7684         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
7685         Bernie Solomon <bernard@ugsolutions.com>.
7686
7687 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7688
7689         * object.c, object.h: provide mono_object_new_fast() for faster
7690         allocation in some special cases.
7691
7692 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
7693
7694         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
7695         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
7696
7697 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
7698
7699         * threadpool.c: fix leaks.
7700
7701 2003-07-01  Dick Porter  <dick@ximian.com>
7702
7703         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
7704         using MonoGHashTables.  Fixes threadpool bug posted to list.
7705
7706 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
7707
7708         * image.h, image.c: added support to load an assembly from a byte array.
7709         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
7710         assembly bundle support.
7711
7712 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
7713
7714         * threadpool.c (mono_thread_pool_add): keep a reference to the
7715         AsyncResult to prevent GC
7716
7717 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
7718
7719         * class.c: leak fix.
7720
7721 2003-06-25  Dick Porter  <dick@ximian.com>
7722
7723         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
7724         for the async object, the WaitHandle object will close the handle.
7725         Fixes bug 45321.
7726
7727 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7728
7729         * class.c: in mono_array_class_get (), lookup from the hash with the
7730         same type we insert: this works around a bug in
7731         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
7732         lluis. The real fix will have to wait for after the release.
7733
7734 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
7735
7736         * icall.c: fix memory leak when getting type members.
7737
7738 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7739
7740         * reflection.c: added more pubtoken special cases.
7741
7742 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
7743
7744         * class.c: handle field offset correctly when class size
7745         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
7746
7747 2003-06-20  Martin Baulig  <martin@ximian.com>
7748
7749         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
7750         *image' field.
7751
7752 2003-06-20  Martin Baulig  <martin@ximian.com>
7753
7754         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
7755
7756 2003-06-20  Martin Baulig  <martin@ximian.com>
7757
7758         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
7759         just distinguish between variables in registers and variables at
7760         an offset relative to a register.
7761
7762 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7763
7764         * icall.c: #ifdef out latest changes until mcs is fixed.
7765
7766 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
7767
7768         * icall.c: return members in metadata order.
7769
7770 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
7771
7772         * icall.c: avoid infinite loop in GetTimeZoneData.
7773
7774 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
7775
7776         * icall.c: added Marshal.Prelink/All icalls.
7777
7778 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
7779
7780         * object.c, object.h: fix warnings and do some overflow checking
7781         when creating arrays.
7782
7783 2003-06-17  Dick Porter  <dick@ximian.com>
7784
7785         * file-io.h:
7786         * file-io.c: File attributes need to be tweaked slightly when
7787         passed from the managed to the w32 world.
7788
7789 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7790         * profiler.h profiler-private.h profiler.c: Rework last patch
7791         based on suggestion by Paolo.
7792         
7793 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
7794
7795         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
7796         instruction level coverage data collection.
7797         * profiler.h profiler.c (: Added new callback function which can be
7798         used by the profiler to limit which functions should have coverage
7799         instrumentation.
7800         * profiler.c (mono_profiler_load): Call g_module_build_path to
7801         generate the file name of the profiler library.
7802
7803 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
7804
7805         * profiler.c, profiler.h, profiler-private.h: added basic block 
7806         coverage profiling API.
7807
7808 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
7809
7810         * reflection.c (mono_reflection_create_runtime_class): Add support
7811         for events in dynamically generated code.
7812
7813         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
7814         not allocated.
7815
7816 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
7817
7818         * icall.c: when getting timezone info, return reasonable values if we
7819         can't get the actual data.
7820
7821 2003-06-14  Dick Porter  <dick@ximian.com>
7822
7823         * threads.c (start_wrapper): Remove the reference to the thread
7824         object in the TLS data, so the thread object can be finalized.
7825         This won't be reached if the thread threw an uncaught exception,
7826         so those thread handles will stay referenced :-( (This is due to
7827         missing support for scanning thread-specific data in the Boehm GC
7828         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
7829
7830 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
7831
7832         * reflection.c: ensure streams and tables are first allocated with
7833         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
7834
7835 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
7836
7837         * icall.c: fixed GetElementType for byrefs (bug# 44792).
7838
7839 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
7840
7841         * reflection.c (mono_reflection_create_runtime_class): Add support for
7842         properties to dynamically created classes.
7843         * reflection.c: Fix a few places where non-MonoObjects were inserted
7844         into the tokens hashtable.
7845
7846 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7847
7848         * object.c: some support to handle out of memory exceptions.
7849
7850 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
7851
7852         * marshal.c (mono_marshal_get_native_wrapper): support reference
7853         return types
7854
7855 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7856
7857         * object.h, object.c: more portability stuff from Bernie Solomon.
7858         Unexport mono_object_allocate(). Added mono_object_unbox ().
7859         Set exitcode when an unhandled exception is thrown.
7860
7861 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
7862
7863         * marshal.c (mono_marshal_get_native_wrapper): use custom
7864         marshaler for return types.
7865
7866 2003-06-10  Dick Porter  <dick@ximian.com>
7867
7868         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
7869         ip_mreq is available
7870
7871 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
7872
7873         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
7874         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
7875         by Bernie Solomon <bernard@ugsolutions.com>.
7876
7877 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
7878
7879         * gc.c (mono_gc_init): Avoid error message on shutdown when
7880         GC_DONT_GC=1 is used.
7881
7882         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
7883         New icall to return the GUID of a module.
7884
7885 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
7886
7887         * class.c: ensure instance size always includes the parent's size
7888         even whem class size is set explicitly (fixes bug#44294).
7889
7890 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
7891
7892         * profiler.h, profiler.c: made the simple profiler thread-safe,
7893         get more accurate timing info. Allow the loading of an
7894         externally-developed profiler module.
7895
7896 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
7897
7898         * marshal.c (mono_marshal_get_native_wrapper): improved
7899         class/byref arguments.
7900         (mono_marshal_get_native_wrapper): better string marshaling support.
7901
7902 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
7903
7904         * class.c: ensure .pack and .size are handled correctly and
7905         simplified layout of static fields.
7906
7907 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
7908
7909         * appdomain.c
7910         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
7911
7912         * loader.c (mono_lookup_pinvoke_call): look for modules in the
7913         current directory (fix bug 44008)
7914
7915 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
7916
7917         * marshal.c (mono_marshal_get_native_wrapper): started support for
7918         custom marshalers.
7919         (mono_delegate_to_ftnptr): consider marshalling specifications
7920
7921 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
7922
7923         * reflection.c, reflection.h: emit custom marshal info.
7924
7925 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7926
7927         * object.c: free the GError.
7928         * icall.c: added CloseEvent_internal.
7929         * threads.[ch]:
7930         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
7931         call.
7932
7933 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
7934
7935         * loader.c (mono_method_get_signature): Add support for dynamic
7936         assemblies.
7937
7938 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
7939
7940         * reflection.c: fixed bug #43905.
7941
7942 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
7943
7944         * class.c, domain.c, icall.c, metadata.h, object.h: support for
7945         handling TypedReference and ArgIterator.
7946         * loader.c, loader.h: added function to get signature at call site.
7947
7948 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
7949
7950         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
7951         data readonly. Buglets and warning fixes. Some MethodSpec support.
7952
7953 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
7954
7955         * class.h, class.c, object.c: remove relative numbering support.
7956
7957 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
7958
7959         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
7960         free the string, until we get a chance to fix Gtk#
7961
7962 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7963
7964         * marshal.c: revert last patch.
7965
7966 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
7967
7968         * icall.c: updates for new mono_class_vtable() not calling
7969         the type constructor anymore.
7970
7971 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
7972
7973         * object.h, object.c: separate vtable creation from type
7974         initialization. Make running the .cctor thread safe.
7975
7976 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
7977
7978         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
7979
7980 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
7981
7982         * loader.c (mono_get_method): consider calling convention
7983
7984 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
7987         to return the invisible global type for a module.
7988
7989         * reflection.c (mono_image_build_metadata): Emit global fields too.
7990
7991 2003-05-20  Peter Williams  <peterw@ximian.com>
7992
7993         * loader.c (mono_lookup_internal_call): Add a few newlines.
7994
7995 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
7996
7997         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
7998         literal strings.
7999
8000         * appdomain.c (set_domain_search_path): Recalculate search path when
8001         AppDomainSetup.PrivateBinPath changes.
8002
8003         * object.c (mono_class_compute_gc_descriptor): It turns out some
8004         parts of the class libs (like System.Thread) holds pointers to
8005         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
8006         to treat native int a pointer type here.
8007         
8008 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
8009
8010         * appdomain.h, domain.c: add hashtable for jump target resolution.
8011
8012 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
8013
8014         * reflection.h reflection.c icall.c: Added new icalls 
8015         GetManifestResourceInfoInternal, GetModulesInternal and support
8016         infrastructure.
8017
8018 2003-05-16  Dick Porter  <dick@ximian.com>
8019
8020         * icall.c:
8021         * file-io.h:
8022         * file-io.c: Implement System.IO.MonoIO::GetTempPath
8023
8024 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
8025
8026         * object.c: mono_store_remote_field: little fix to previous patch.
8027
8028 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
8029
8030         * class.c: add constructors to array classes.
8031         * icall.c: special case array construction for InternalInvoke (),
8032
8033 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
8034
8035         * class.h class.c reflection.c object.c: Added support for field
8036         defaults in dynamically generated classes.
8037
8038 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
8039
8040         * reflection.c: properly encode charset for ddlimport.
8041
8042 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
8043
8044         * threads.c: allow compiling without GC.
8045
8046 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
8047
8048         * appdomain.h, object.c, object.h, threads.c, threads.h: added
8049         handling of thread static data.
8050
8051 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
8052
8053         * reflection.h, reflection.c: added mono_custom_attrs_free ().
8054
8055 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
8056
8057         * class.c (mono_array_class_get): always set the serializable flags
8058         (mono_array_class_get): always set the SEALED attribute for array types
8059
8060 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
8061
8062         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
8063         attributes (fix for bug 42021).
8064
8065 2003-05-12  Dick Porter  <dick@ximian.com>
8066
8067         * gc.c: Don't run finalizers when the finalizer thread is
8068         finishing up, because the default domain has already been
8069         destroyed.
8070
8071 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
8072
8073         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
8074         value is null, we should throw an exception.   This is slightly
8075         different than the other conventions used for the constructor.
8076
8077 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8078
8079         * socket-io.c: fixed windows build.
8080
8081 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8082
8083         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
8084
8085 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
8086
8087         * object.c (mono_string_new_wrapper): Compatibility fix for MS
8088         compilers.
8089
8090 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
8091
8092         * class.c (mono_class_layout_fields): Add experimental GC aware
8093         auto layout facility. Requires class library changes to work correctly.
8094
8095         (mono_class_setup_vtable): Avoid overriding explicit interface
8096         method implementations. Fixes iface3.exe test.
8097
8098         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
8099         object reference.
8100         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
8101         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
8102
8103         * metadata.h: Add new type classification macro which determines
8104         whenever the type holds an object reference.
8105
8106 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
8107
8108         * marshal.c (mono_marshal_get_native_wrapper): cleanups
8109
8110 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
8111
8112         * gc.c (finalizer_thread): Work around a GC bug.
8113
8114 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
8115
8116         * marshal.c (emit_struct_conv): allow unions
8117
8118         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
8119
8120 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
8121
8122         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
8123
8124 2003-05-06  Martin Baulig  <martin@ximian.com>
8125
8126         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
8127
8128 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8129
8130         * socket-io.c:
8131         (Select_internal): allow NULLs, don't create arrays if not needed.
8132         Coupled with Socket.cs changes.
8133
8134         * threadpool.c:
8135         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
8136         register a finalizer for it that will close the semaphore handle. This
8137         fixes the leak and make Lupus' test run with > 4080 loops.
8138
8139 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
8140
8141         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
8142         Jerome Laban (bug #42287)
8143
8144 2003-05-02  Martin Baulig  <martin@ximian.com>
8145
8146         * debug-mono-symfile.h
8147         (MonoSymbolFile): Moved declaration into mono-debug.h.
8148         (MonoDebugMethodJitInfo): Likewise.
8149         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
8150         argument.
8151         (_mono_debug_address_from_il_offset): Take a
8152         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
8153
8154         * mono-debug.h
8155         (MonoDebugDomainData): New struct.
8156         (mono_debug_get_domain_data): New function.
8157         (mono_debug_add_method): Take an additional `MonoDomain *'
8158         argument.
8159         (mono_debug_source_location_from_address): Likewise.
8160         (mono_debug_il_offset_from_address): Likewise.
8161         (mono_debug_address_from_il_offset): Likewise.
8162
8163 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
8164
8165         * reflection.c: one more check for null type in custom attrs.
8166
8167 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8168
8169         * reflection.c: avoid warning (comparison is always false due to limited
8170         range of data type).
8171
8172 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8173
8174         * icall.c: throw an exception in Type.GetField if the argument 'name'
8175         is NULL.
8176
8177 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
8178
8179         * reflection.c: fixed handling of enums in named arguments to custom
8180         attributes (bug #42123).
8181
8182 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
8183
8184         * reflection.c: use the right array element type and handle
8185         a null for a Type argument, too.
8186
8187 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
8188
8189         * reflection.c: handle arrays as arguments to custom attributes.
8190
8191 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
8192
8193         * reflection.c: handle a string value in a custom attr
8194         ctor that takes an object.
8195
8196 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
8197
8198         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
8199         (fix bug #42063)
8200
8201 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
8202
8203         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
8204
8205 2003-04-27  Martin Baulig  <martin@ximian.com>
8206
8207         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
8208         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
8209         MONO_DEBUGGER_EVENT_BREAKPOINT.
8210         (mono_breakpoint_trampoline_code): Removed.
8211         (mono_debugger_event_handler): The last argument is now a
8212         `guint32'.
8213         (mono_debugger_insert_breakpoint_full): Removed the
8214         `use_trampoline' argument.
8215         (mono_debugger_method_has_breakpoint): Likewise.
8216         (mono_debugger_trampoline_breakpoint_callback): Renamed to
8217         mono_debugger_breakpoint_callback(); take the method and
8218         breakpoint number as arguments.
8219
8220 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
8221
8222         * metadata.c: fix off by one when loading parameters attributes.
8223
8224 2003-04-24  Martin Baulig  <martin@ximian.com>
8225
8226         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
8227
8228 2003-04-24  Martin Baulig  <martin@ximian.com>
8229
8230         * mono-debug-debugger.c: Moved all code which interacts with the
8231         Mono Debugger here.
8232
8233         * debug-mono-symfile.c: This code now just deals with the symbol
8234         file itself, the debugger code is now in mono-debug-debugger.c.
8235
8236 2003-04-23  Martin Baulig  <martin@ximian.com>
8237
8238         * mono-debug.c (mono_debug_source_location_from_il_offset):
8239         New method; like mono_debug_source_location_from_address(), but
8240         takes an IL offset instead of a machine address.
8241
8242 2003-04-23  Martin Baulig  <martin@ximian.com>
8243
8244         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
8245         `line' field; this is now computed by the debugger.
8246
8247 2003-04-23  Martin Baulig  <martin@ximian.com>
8248
8249         * mono-debug.[ch]: New files.  This is the new debugging interface.
8250
8251         * mono-debug-debugger.[ch]: New files.  Moved all code which
8252         interacts with the Mono Debugger here.
8253
8254 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
8255
8256         * domain.c (mono_init): initialize mono_defaults.monitor_class
8257
8258 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
8259
8260         * reflection.c (method_encode_code): Add a spicy exception to help
8261         future compiler authors.
8262
8263 2003-04-21  Martin Baulig  <martin@ximian.com>
8264
8265         * icall.c
8266         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8267         Make this work with relative pathnames; g_filename_to_uri() needs
8268         an absolute filename.
8269
8270 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
8271
8272         * icall.c: Track name changes in Object and ValueType.
8273
8274 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
8275
8276         * metadata.c (mono_type_stack_size): size should be a multiple of
8277         sizeof (gpointer)
8278
8279 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8280
8281         * gc.c:
8282         (internal_domain_finalize): moved into mono_domain_finalize. No need
8283         to create another thread because the finalizers will be run in the
8284         finalizer thread.
8285         
8286         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
8287         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
8288         to be run (MS does this too).
8289
8290 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
8291
8292         * object.c (mono_class_compute_gc_descriptor): Update comment.
8293
8294         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
8295
8296         * image.h: Add synchronized wrapper cache.
8297
8298         * image.c (do_mono_image_open): Initialize cache.
8299
8300         * reflection.c (create_dynamic_mono_image): Initialize cache.
8301
8302 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8303
8304         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
8305         ves_icall_System_Buffer_ByteLengthInternal.
8306
8307 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
8308
8309         * reflection.c: setup klass->nested_in earlier. Allow
8310         a dash in the assembly name.
8311
8312 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
8313
8314         * metadata.c (mono_type_to_unmanaged): dont access
8315         type->data.klass for MONO_TYPE_OBJECT
8316         (mono_type_to_unmanaged): consider System.Delegate class
8317
8318 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
8319
8320         * class.c: just setup supertypes in the proper place instead of
8321         initializing the full element class for arrays.
8322
8323 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
8324
8325         * class.c: ensure the element class of arrays is initialized.
8326         Setup the supertype info for array classes, too.
8327
8328 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
8329
8330         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
8331
8332 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8333
8334         * Makefile.am: re-added -m option when running cygpath. This way,
8335         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
8336         separator.
8337         * mono-config.c: same codepath for locating mono config file for WIN32
8338         and the rest.
8339         * assembly.c: if mono_assembly_setrootdir is called, don't override
8340         the value set.
8341
8342 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8343
8344         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
8345         MONO_ASSEMBLIES variable.
8346
8347 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
8348
8349         * icall.c: added Assembly::GetNamespaces() icall.
8350
8351 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8352
8353         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
8354
8355 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
8356
8357         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
8358         * object.c: fixed bug in the construction of vtable for proxies
8359
8360 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
8361
8362         * object.c (mono_array_new): Mark mono_array_new as an icall.
8363
8364 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8365
8366         * class.c: fixed test for public method when overriding interfaces.
8367         Closes bug #40970.
8368
8369 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
8370
8371         * appdomain.h, domain.c: added mono_domain_foreach() to
8372         be able to access the currently loaded appdomains.
8373         * object.c: make string interning work across sppdomains.
8374         Mark some functions for use as icalls.
8375
8376 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
8377
8378         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
8379
8380         * reflection.h reflection.c: Allocate long living data using 
8381         GC_MALLOC_ATOMIC so the collector does not need to scan it.
8382
8383         * reflection.c: Double the allocation size in streams instead of
8384         increasing it, to prevent unneccesary copying on large assemblies.
8385         
8386         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
8387         creation if the assembly does not have the Run flag set.
8388
8389 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
8390
8391         * class.h: avoid the C++ keywords in header files (Jerome Laban
8392         spotted and fixed this).
8393
8394 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8395
8396         * object.c:
8397         (mono_unhandled_exception): fill in the arguments for the
8398         UnhandledException event. Only trigger that event for the default
8399         domain (as MS does).
8400
8401 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
8402
8403         * object.c: Improve typed allocation stuff based on suggestions from
8404         Paolo. Also turn it on if the GC library supports it.
8405
8406 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8407
8408         * object.c object.h class.h: Added experimental typed allocation
8409         facility using the interfaces in gc_gcj.h.
8410
8411         * os/gc_wrapper.h: Added new include files.
8412         
8413 2003-04-03  Martin Baulig  <martin@ximian.com>
8414
8415         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
8416         which is not yet enabled by default.
8417
8418         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
8419         functions.
8420         (mono_gc_lock, mono_gc_unlock): New static functions.
8421
8422         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
8423         functions; stop/start the world for the garbage collector.  This
8424         is using the windows API; we need to complete the SuspendThread()/
8425         ResumeThread() implementation in the io-layer to make this work on Unix.
8426         (mono_gc_push_all_stacks): New public function; tells the garbage
8427         collector about the stack pointers from all managed threads.
8428
8429 2003-04-03  Martin Baulig  <martin@ximian.com>
8430
8431         * object.h (MonoThread): Added `gpointer stack_ptr'.
8432
8433         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
8434
8435 2003-04-03  Martin Baulig  <martin@ximian.com>
8436
8437         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
8438
8439 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
8440
8441         * reflection.c (typebuilder_setup_fields): Initialize field.first and
8442         field.last.
8443
8444 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
8445
8446         * loader.c (mono_lookup_internal_call): Report the corlib that is
8447         out of sync.
8448
8449 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
8450
8451         * icall.c (ves_icall_type_GetTypeCode): fixed check for
8452         System.DBNull (it's class not valuetype).
8453
8454 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
8455
8456         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
8457         if the array method was already assigned a token (fixes bug#40646).
8458
8459 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
8460
8461         * reflection.c (mono_reflection_get_type): Attempt type resolve even
8462         if no assembly is given.
8463
8464 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
8465
8466         * metadata.h: Added the new tables.
8467
8468         * row-indexes.h: Added definitions for new tables.
8469
8470         * metadata.c: Add schemas for new tables, and add support for
8471         computing the sizes of them.
8472
8473         * class.c: Update for handling the new type cases.
8474
8475 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
8476
8477         * metadata.h (MONO_TYPE_IS_VOID): new macro
8478
8479 2003-03-31  Martin Baulig  <martin@ximian.com>
8480
8481         * threads.h (MonoThreadCallbacks): Added `thread_created'.
8482
8483         * threads.c (mono_thread_new_init): Call `thread_created' in the
8484         mono_thread_callbacks.
8485
8486 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
8487
8488         * loader.h: added marshalbyrefobject_class to mono_defaults
8489         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
8490         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
8491           generation of output parameters.
8492           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
8493         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
8494           contextbound and the target object belongs to the context of the caller.
8495         * object.h: added context and unwrapped_server variables in MonoRealProxy.
8496         * object.c: Implemented support for interfaces and abstract classes
8497           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
8498           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
8499
8500 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
8501
8502         * class.h class.c (mono_class_is_subclass_of): New function.
8503         
8504         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
8505         routines for most common case (calls from ArrayList::ToArray).
8506
8507         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
8508         routine so programs which call Environment::Exit() can be profiled.
8509
8510         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
8511         Added MONO_ARCH_SAVE_REGS.
8512
8513         * icall.c (ves_icall_type_is_subtype_of): Use new function.
8514
8515 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
8516
8517         * blob.h: Add a couple of new MonoType types definitions.
8518
8519         * tabledefs.h: Add a couple of new call convs.
8520
8521 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
8522
8523         * reflection.h (MonoReflectionDynamicAssembly): track changes in
8524         the layout of the class.
8525
8526         * reflection.c (alloc_table): double the size on overflow to avoid
8527         unnecessary copying.
8528
8529         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
8530         avoid filling out metadata tables and blobs. Also set mb->ilgen to
8531         null so it can be garbage collected.
8532         
8533 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
8534
8535         * reflection.c (mono_reflection_get_type): Return the resolved type
8536         only if it is in the assembly we searched.
8537
8538         * reflection.c (ensure_runtime_vtable): Initialize method slots.
8539
8540         * class.c (mono_class_setup_vtable): Set the slot of the overriding
8541         method.
8542
8543 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8544
8545         * appdomain.c:
8546         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
8547         the right one is 'file:///blah', but MS allows it.
8548         * assembly.c:
8549         (mono_assembly_open): allow 'file://blah'
8550
8551         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
8552
8553 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
8554
8555         * socket-io.c: fixes bug #40310.
8556
8557 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
8558
8559         * reflection.c (mono_reflection_parse_type): handle deeply nested
8560         types correctly.
8561
8562         * reflection.c (mono_image_create_token): Use unique token values
8563         since they will be put into a hash table.
8564
8565         * class.c (mono_class_setup_vtable): If a method occurs in more than
8566         one place in the vtable, and it gets overriden, then change the
8567         other occurances too.
8568
8569         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8570         object as return type.
8571
8572 2003-03-22  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8573
8574         * icall.c: Deleted "ToString" implementation for double and float
8575         because they are full implemented in managed code.
8576
8577 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8578
8579         * reflection.c, reflection.h: implemented and exported functions
8580         to retrieve info about custom attributes.
8581
8582 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8583
8584         * appdomain.c: moved Uri handling to assembly.c
8585         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
8586         work when using a file Uri in *nix and windows.
8587
8588         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
8589         GetReferencedAssemblies.
8590
8591 2003-03-18  Dick Porter  <dick@ximian.com>
8592
8593         * icall.c: Rename a couple of internal calls
8594
8595         * threads.c: Set the thread state to Stopped when a thread exits.
8596         Fixes bug 39377.
8597
8598 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
8599
8600         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
8601         New icall.
8602
8603         * object.c (mono_class_vtable): fix warning.
8604
8605 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
8606
8607         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
8608
8609         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
8610         memory.
8611         (method_encode_clauses): Create exception info structures in the right
8612         order.
8613         (mono_reflection_setup_internal_class): Initialize supertypes field.
8614
8615         * class.c object.c: Handle interfaces which implement other interfaces 
8616         correctly.
8617
8618         * class.h class.c: Move the supertypes array initialization code into 
8619         a separate function so it can be used for dynamic types too. Also call
8620         it earlier, in mono_class_init(), since it can be used before the
8621         type is initialized.
8622
8623 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8624
8625         * Makefile.am:
8626         * assembly.c:
8627         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
8628
8629         * appdomain.c:
8630         * appdomain.h:
8631         * marshal.c:
8632         * object.c: remove warnings.
8633
8634 2003-03-13  Martin Baulig  <martin@ximian.com>
8635
8636         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
8637         (MonoDebugLexicalBlockEntry): New types.
8638
8639         * debug-mono-symfile.c
8640         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
8641
8642 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8643
8644         * process.c: ret can be any non-zero value accroding to MS doc.
8645
8646 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
8647
8648         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
8649         fixing a warning for a miss-used prototype, would have cause
8650         random memory corruption.
8651
8652 2003-03-07  Martin Baulig  <martin@ximian.com>
8653
8654         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
8655         getting really annoying ....
8656
8657 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
8658
8659         * reflection.c (fixup_method): added support for array methods.
8660
8661 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
8662
8663         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
8664         (pointed out by Michael Adams).
8665
8666 2003-03-04  Dick Porter  <dick@ximian.com>
8667
8668         * icall.c: Temporarily reverted the Double and Single ToString()
8669         change, because it broke nunit.
8670
8671 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
8672
8673         * object.h, threads.h: make include files compatible with C++
8674         (patch by Jerome Laban <jlaban@wanadoo.fr>).
8675
8676 2003-03-04  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8677
8678         * icall.c: Erased ToString helper functions for Double and Single.
8679         Now, that implementations ar all in managed code (Double and Single
8680         Formatters).
8681
8682 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
8683
8684         * appdomain.c: Added method for initializing the default context of
8685         a domain. Added internal call for getting the default context.
8686         * appdomain.h: Added context variable in MonoDomain struct.
8687         * domain.c: mono_domain_set also sets the default context of the domain
8688         * icall.c: Mapped internal method InternalGetDefaultContext.
8689         * object.c: mono_object_get_virtual_method returns always a remoting
8690         wrapper if the object is a transparent proxy.
8691         mono_runtime_invoke_array: when creating an object by calling the
8692         constructor, if the created object is a proxy, then the constructor should
8693         be called using the a remoting wrapper.
8694
8695 2003-03-03  Dick Porter  <dick@ximian.com>
8696
8697         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
8698         variable so it compiles on solaris.  Problem spotted by
8699         Christopher Taylor <ct@cs.clemson.edu>
8700
8701 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8702
8703         * appdomain.c:
8704         (get_info_from_assembly_name): don't leak value.
8705
8706         * icall.c:
8707         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
8708         result.
8709
8710 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
8711
8712         * assembly.c: export mono_image_load_references ().
8713         * class.c: handle function pointers. mono_class_from_name() now
8714         supports nested type names directly.
8715
8716 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
8717
8718         * reflection.h reflection.c: Encode already created dynamic methods 
8719         and fields correctly as a DEF instead of a REF.
8720
8721         * reflection.c: Get rid of the force_ref argument to 
8722         mono_image_typedef_or_ref since it was wrong in the first place.
8723
8724         * string-icalls.c: add error checking to string constructors according
8725         to the MSDN docs.
8726
8727         * reflection.c: Emit types in the order their TypeBuilders were 
8728         created. Previously, a new table index was assigned to each type before
8729         the tables were emitted. This was wrong because the signature blob
8730         might already refer to a type by its original table index.
8731
8732 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
8733
8734         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
8735         change.
8736         
8737 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8738
8739         * Makefile.am: make assemblies dir have \ instead of / on windows.
8740
8741 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
8742
8743         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
8744         iterate over the NESTEDCLASS table using a linear search since the
8745         table is not guaranteed to be sorted by the secondary key.
8746
8747         * class.c (mono_class_create_from_typedef): fixed up call to
8748         mono_metadata_nesting_typedef.
8749         
8750 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
8751
8752         * marshal.c (mono_string_to_byvalstr): clear the memory as
8753         suggested by Jerome Laban <jlaban@wanadoo.fr>
8754
8755 2003-02-26  Dick Porter  <dick@ximian.com>
8756
8757         * process.c: Cope with padding in .rsrc blocks
8758
8759 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8760
8761         * metadata.h: reverted the filter_len change, it breaks reflection
8762         
8763 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
8764
8765         * metadata.h: added a new field to store the filter_len
8766         
8767
8768 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
8769
8770         * reflection.c: handle custom attributes for types and members
8771         created with Reflection.Emit (bug#38422).
8772
8773 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
8774
8775         * reflection.c: define RTSpecialName automatically for constructors for
8776         compatibility with MS.NET.
8777
8778         * reflection.c (mono_reflection_create_runtime_class): initialize
8779         nested_in field of dynamically created classes.
8780
8781 2003-02-22  Martin Baulig  <martin@ximian.com>
8782
8783         * debug-mono-symfile.h: Incremented version number.
8784
8785 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8786
8787         * object.h icall.c process.c: fix warnings.
8788
8789 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
8790
8791         * appdomain.h appdomain.c:
8792         (mono_domain_try_type_resolve): split the 
8793         name_or_tb argument into a name and a tb argument.
8794         (mono_domain_has_type_resolve): new function to check whenever the
8795         application has registered a TypeResolve event handler.
8796         
8797         * icall.c reflection.h reflection.c: move the type resolve logic into
8798         mono_reflection_get_type () so it will be invoked when 
8799         Assembly::GetType () is called.
8800
8801         * reflection.c:
8802         (mono_reflection_get_type): renamed to get_type_internal.
8803         (mono_reflection_get_type): fixed type name generation so it works 
8804         for nested types too.
8805         (mono_reflection_get_type): call has_type_resolve () to avoid the 
8806         costly type name generation if there is no resolve event handler.
8807
8808 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
8809
8810         * class.c, image.c: load exported types from file references.
8811
8812 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
8813
8814         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
8815           used to cache the managed methods used to create proxies and make 
8816           remote invocation of methods.
8817         * class.h: Added in MonoVTable a flag to indicate that a class needs 
8818           to be remotely created.
8819         * object.c: Modified the method mono_class_vtable(). It now initializes 
8820           the remote flag of the vtable. Modified mono_object_new_specific(), 
8821           so now it checks the remote flag.
8822         * icall.c: Added a couple of internal methods, one for enabling instance 
8823           creation interception for a type, and one for creating objects bypassing
8824           the remote check.
8825
8826 2003-02-18  Martin Baulig  <martin@ximian.com>
8827
8828         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
8829         New interncall to get a method's metadata token.
8830
8831         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
8832         New interncall for the debugger.
8833
8834 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
8835
8836         * class.c (mono_class_setup_vtable): allocate supertype array
8837
8838 2003-02-18  Martin Baulig  <martin@ximian.com>
8839
8840         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
8841
8842 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8843
8844         * reflection.c:
8845         (assembly_name_to_aname): jump over unknown properties (i've found
8846         something like: 'type, assembly, version=xxx, custom=null, public...',
8847         so now will ignore custom=null and still get the rest of the values).
8848
8849 2003-02-17  Dick Porter  <dick@ximian.com>
8850
8851         * threads.c: Have Thread.Start() wait for a semaphore to signal
8852         that the thread has set up all its local data.  This fixes bug
8853         34323, where Abort() raced the new thread's TLS data.
8854
8855         Also removes the handle_store() call from start_wrapper, because
8856         threads are now always created suspended and there is no longer a
8857         race between the parent and child threads to store the info.
8858
8859 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
8860
8861         * image.c: explain the #- heap issue in a message, hopefully
8862         avoiding FAQs on mono-list.
8863
8864 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8865
8866         * icall.c:
8867         (GetEntryAssembly): if the domain has not invoked
8868         AppDomain.ExecuteAssembly yet, return the assembly of the default
8869         AppDomain.
8870
8871 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
8872
8873         * class.c (mono_ldtoken): make it work in dynamic assemblies.
8874
8875 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
8876
8877         * metadata.c, reflection.c: simple speedup to type hash
8878         and equals code.
8879
8880 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
8881
8882         * image.c, image.h, class.c, assembly.c: move module loading
8883         to MonoImage. When loading metadata, consider alignemnet from
8884         the start of metadata, not from the metadata address in memory.
8885
8886 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
8887
8888         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
8889         AssemblyBuilder objects. Factored out custom attribute creation into
8890         a separate function.
8891         (create_custom_attr): new function to create custom attributes.
8892
8893 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
8894
8895         * Makefile.am: Got tired of typing the full pathname to pedump.
8896         Until there is another option, am installing this.
8897
8898 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
8899
8900         * class.c (class_compute_field_layout): always set field->parent 
8901         (mono_ldtoken): use mono_defaults.fieldhandle_class;
8902
8903 2003-02-11  Dick Porter  <dick@ximian.com>
8904
8905         * threads-types.h:
8906         * monitor.c: Rewrote Monitor, making lock much faster and
8907         Pulse/Wait work as specified.  Also uses much fewer handles, and only
8908         creates them as needed.
8909
8910         * exception.c: Added SynchronizationLockException
8911
8912         * threads.c: Deleted old Monitor implementation.  The new one is
8913         in a new file.
8914
8915 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
8916
8917         * class.c: handled TypedReference type code. Set the correct size for
8918         class data. Setup interface_offsets for interface classes, too.
8919
8920 2003-02-09  Martin Baulig  <martin@ximian.com>
8921
8922         * debug-mono-symfile.h: Reflect latest symbol writer changes.
8923
8924 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
8925
8926         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
8927         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
8928         * object.c: fixed mono_object_get_virtual_method () for interfaces.
8929         * verify.c: check for code that runs after the end of the method.
8930
8931 2003-02-08  Pedro Mart�nez Juli�  <yoros@wanadoo.es>
8932
8933         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
8934         "System.Math::Round2".
8935         * sysmath.h: Added Floor, Round and Round2 definitions.
8936         * sysmath.c: Modified certain functions that were not 100% compliant
8937         with MS.NET (math precision) and added the implementation of Floor,
8938         Round and Round2.
8939
8940 2003-02-07  Martin Baulig  <martin@ximian.com>
8941
8942         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
8943
8944 2003-02-07  Martin Baulig  <martin@ximian.com>
8945
8946         * debug-mono-symfile.c: Reflected latest symwriter changes.
8947         (mono_debug_create_mono_symbol_file): Removed.
8948         (mono_debug_open_mono_symbol_file): Take an argument which
8949         specifies whether to create a dynamic symbol file.
8950
8951 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
8952
8953         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
8954
8955 2003-02-05  Martin Baulig  <martin@ximian.com>
8956
8957         * reflection.c (mono_image_build_metadata): Make this public,
8958         protect it against being called multiple times, don't create
8959         resources and don't build the compressed metadata here.
8960         (mono_image_create_pefile): Do this here.
8961
8962         * icall.c
8963         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
8964
8965 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8966
8967         * socket-io.c: fixed bug #36322.
8968
8969 2003-02-06  Piers Haken <piersh@friskit.com>
8970
8971         * appdomain.[ch]:
8972         * class.h:
8973         * debug-mono-symfile.c:
8974         * icall.c:
8975         * loader.c:
8976         * mono-config.c:
8977         * monosn.c:
8978         * reflection.c:
8979         * socket-io.c: warning cleanups
8980
8981 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
8982
8983         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
8984         function. works like remoting invoke, but does a check for the Proxy first.
8985
8986 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
8987
8988         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
8989
8990 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
8991
8992         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
8993         array of pointers.
8994         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
8995         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
8996
8997         * object.c (mono_store_remote_field_new): used by the new jit
8998         instead of mono_store_remote_field
8999         (mono_load_remote_field_new): used by the new jit
9000         instead of mono_load_remote_field
9001
9002 2003-02-05  Patrik Torstensson
9003
9004         * appdomain.c: changed unload to take the domain id instead
9005         of domain
9006         
9007         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
9008
9009
9010 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9011
9012         * appdomain.c: don't look for assemblies in ApplicationBase if
9013         PrivateBinPathProbe is set.
9014
9015 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9016
9017         * object.c: make the first argument in main_args contain the absolute
9018         path to the assembly. Fixes bug #37511.
9019
9020 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9021
9022         * icall.c: get correct UTC offset for countries not using daylight
9023         time saving. Fixes bug #30030.
9024
9025 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9026
9027         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
9028         and 1 are the family).
9029
9030 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
9031
9032         * icall.c (ves_icall_InternalExecute): removed wrong assertion
9033
9034         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
9035
9036 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
9037
9038         * reflection.c: added support for SignatureHelper tokens, which is
9039         needed by the Calli opcode.
9040
9041         * reflection.h: track changes to SignatureHelper class.
9042
9043         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
9044
9045 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9046
9047         * appdomain.c: fixed loading assemblies from PrivateBinPath.
9048
9049 2003-02-03  Patrik Torstensson
9050         * appdomain.[c|h], domain.c : 
9051          - Added support for getting a domain via domain id
9052          - Support for setting and getting domain from System.AppDomain 
9053            (used in cross appdomain channel)
9054          - Added support for get/set for a MonoAppContext on a thread 
9055            (Context class in System.Runtime.Remoting.Contexts),
9056          - Removed hack in Get/SetData and ExecuteAssembly.
9057         
9058         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
9059         the managed world to get control when a proxy is created.
9060
9061         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
9062         
9063 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
9064
9065         * icall.c
9066         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9067         Populate the codebase field as well.
9068
9069 2003-02-02  Martin Baulig  <martin@ximian.com>
9070
9071         * debug-mono-symfile.c
9072         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
9073         (mono_debug_symfile_add_method): Allow interncalls.
9074
9075 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9076
9077         * icall.c: throw parse exception if strtod fails or the string is empty.
9078
9079 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
9080
9081         * marshal.c: handle object type separately from defined
9082         class types.
9083
9084 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
9085
9086         * marshal.c: handle NATIVE_LPSTR for strings when it's
9087         explicitly specified.
9088
9089 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
9090
9091         * reflection.c, reflection.h, icall.c: setup the reflection
9092         handle cache for ModuleBuilders and AssemblyBuilders.
9093
9094 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
9095
9096         * reflection.c (reflection_methodbuilder_to_mono_method): set
9097         pinvoke flag
9098
9099 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9100
9101         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
9102
9103 2003-01-29  Dick Porter  <dick@ximian.com>
9104
9105         * threads.c: No need for the fake_thread kludge now that Thread
9106         doesn't run a class constructor
9107         
9108 2003-01-29  Dick Porter  <dick@ximian.com>
9109
9110         * threads.c: Use g_direct_hash instead of the rather bogus
9111         g_int_hash
9112
9113 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
9114
9115         * marshal.c (mono_marshal_get_native_wrapper): add check for null
9116         (fix pinvoke12.exe)
9117         (mono_marshal_get_struct_to_ptr): generate valid IL code
9118         (mono_marshal_get_ptr_to_struct): generate valid IL code
9119         (*): correctly set sig->pinvoke, we need to memdup the signature
9120         to do that
9121
9122 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
9123
9124         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
9125         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
9126
9127 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9128
9129         * profiler.c: provide more callers information.
9130
9131 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
9132
9133         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
9134
9135         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
9136
9137         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
9138
9139 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9140
9141         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
9142         exception instead of going into an infinite loop on dates which it 
9143         can't yet handle.
9144
9145         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
9146         out-of-range exception if needed.
9147
9148         * class.c (mono_class_setup_vtable): allow a virtual method to provide
9149         an implementation for an interface method and to override an inherited
9150         method at the same time. 
9151         Imagine a scenario when a virtual method is used to override a
9152         virtual abstract method in a parent class, and this same method 
9153         provides an implementation for an method inherited from an interface. 
9154         In this case, the interface resolution code will set im->slot, which 
9155         means that the virtual method override pass will skip this method 
9156         which means a pointer to the abstract method inherited from the parent
9157         will remain in the vtable of this non-abstract class.
9158
9159         * class.c: (mono_class_setup_vtable): continue search for a real 
9160         method if only an abstract method is found.     
9161
9162 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
9163
9164         * reflection.c: add size to encoding for ByValStr and ByValArray
9165         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
9166
9167 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9168
9169         * class.c (mono_class_setup_vtable): pass the override info as an
9170         argument.
9171
9172         * class.c (mono_class_setup_vtable): set the slot of overriding methods
9173         correctly.
9174         
9175         * reflection.c (ensure_runtime_vtable); add support for method 
9176         overrides.
9177         
9178 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9179
9180         * reflection.c (resolution_scope_from_image): Hack to work to work with
9181         dynamic assemblies.
9182
9183         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
9184         added a 'force_ref' argument to force this function to allways return 
9185         a TypeRef. This is needed by mono_image_get_memberref_token ().
9186         
9187 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9188
9189         * reflection.c (mono_image_get_type_info): interfaces really don't have
9190         a parent.
9191
9192         * reflection.c (mono_image_basic_init): fill out missing fields of
9193         image structure.
9194
9195         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
9196         dynamic assemblies. This is required so dynamic assemblies show up in
9197         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
9198         Type::GetType() etc. This is consistent with MS behaviour.
9199
9200         * image.c image.h reflection.c: add newly created classes to the name 
9201         cache so mono_class_get () will find them.      
9202
9203 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
9204
9205         First part of changes to get IKVM.NET running under mono.
9206         
9207         * appdomain.h, appdomain.c: added new function 
9208         mono_domain_try_type_resolve() which will emit TypeResolve events. 
9209         This function will call AppDomain::DoTypeResolve to do the actual work.
9210
9211         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
9212         moved existing code dealing with dynamic tokens to a new function 
9213         called mono_reflection_lookup_dynamic_token (). This function will 
9214         raise TypeResolve events when appropriate. Since reflection.c is not 
9215         part of libmetadata, a new hook function called 
9216         mono_lookup_dynamic_token() is added to class.c which will call this.
9217
9218         * assembly.h assembly.c: make the invoke_load_hook function public,
9219         so it can be called for dynamic assemblies.
9220
9221         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
9222
9223         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
9224         type isn't found.
9225
9226         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
9227         MonoGHashTable, since it contains pointers to objects which the GC 
9228         needs to track.
9229
9230         * assembly.c (search_loaded): remove unused variable.
9231         
9232 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
9233
9234         * object.c: fixed issue exposed by gcc-generated IL programs
9235         that use RVA data for pointers.
9236
9237 2003-01-25  Martin Baulig  <martin@ximian.com>
9238
9239         * threads.c (start_wrapper): Moved the initialization of
9240         `start_func' above the mono_new_thread_init() call to which we
9241         pass it as argument.
9242
9243 2003-01-24  Martin Baulig  <martin@ximian.com>
9244
9245         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
9246         the MonoThread pointer.
9247
9248 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
9249
9250         * icall.c: Rename `PowImpl' to Pow.
9251
9252 2003-01-23  Dick Porter  <dick@ximian.com>
9253
9254         * threads.c (start_wrapper): Create a Thread object if needed, so
9255         the Main() thread can do the class initialisation in a subthread
9256         that has been set up to allow managed code execution.
9257
9258         Pass the thread ID instead of the MonoThread pointer to the thread
9259         start and attach callbacks.  This change is required, because the
9260         jit thread start callback must be called _before_ the Thread
9261         object can be created.
9262         
9263         (mono_thread_init): Removed much object creation code that is no
9264         longer needed.  No managed code is called from here now.
9265
9266         * object.c (mono_runtime_exec_managed_code): Create a subthread
9267         for Main, and call back to the runtime to use it.
9268         Set the exit code when Main exits.
9269
9270         * gc.c: Make sure domain finalisation happens in a subthread.
9271         Re-enable threaded GC, fixing bug 31333 (again).
9272
9273         * environment.c: System.Environment internall calls (so far just
9274         ExitCode is here, the others are still in icall.c)
9275
9276         * appdomain.c (mono_runtime_cleanup): All threads running managed
9277         code should have finished before mono_runtime_cleanup() is
9278         reached, so no need to clean up threads.
9279
9280 2003-01-22  Martin Baulig  <martin@ximian.com>
9281
9282         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
9283         `gpointer func' arguments.      
9284         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
9285         but added `MonoThread *thread' argument.
9286         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
9287
9288         * threads.c (mono_new_thread_init): Added `gpointer func' argument
9289         and pass it to the mono_thread_start_cb callback.
9290         (mono_install_thread_callbacks): New public function to install a
9291         set of callbacks which are set by the debugger.
9292         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
9293
9294 2003-01-22  Martin Baulig  <martin@ximian.com>
9295
9296         * Makefile.am: Install debug-mono-symfile.h.
9297
9298 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
9299
9300         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
9301
9302 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
9303
9304         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
9305         * class.c (mono_ptr_class_get): correctly set access levels of pointers
9306         (mono_array_class_get): correctly set access levels of arrays
9307
9308 2003-01-20      Patrik Torstensson
9309         * image.h (MonoAssemblyName): changed major, minor, build, revision
9310         from signed to unsigned.
9311
9312 2003-01-20  sean kasun <skasun@azstarnet.com>
9313
9314         * reflection.c (load_cattr_value): Now this handles
9315         MONO_TYPE_SZARRAY.  Fixes bug #35629
9316
9317 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
9318
9319         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
9320         integer value
9321
9322 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9323
9324         * decimal.c: fixed bug #26056.
9325
9326 2003-01-17  Martin Baulig  <martin@ximian.com>
9327
9328         * gc.c: Raise an ExecutionEngineException instead of using g_error().
9329
9330 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9331
9332         * exception.[ch]:
9333         (mono_get_exception_type_initialization): new function.
9334
9335         * object.c: throw a TypeInitializationException when an exception is
9336         thrown invoking the class constructor.
9337
9338 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9339
9340         * reflection.c: fixed attribute reading.
9341
9342 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9343
9344         * icall.c:
9345         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
9346         provided, look for the type in the calling assembly and then in
9347         mscorlib; if the assembly name is provided, only try that one.
9348
9349 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
9350
9351         * object.c: register the vtable before there is a chance it's
9352         queried again recursively.
9353
9354 2003-01-13  Duncan Mak  <duncan@ximian.com>
9355
9356         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
9357         gc-internal.h. 
9358         
9359 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
9360
9361         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
9362
9363 2003-01-11  Martin Baulig  <martin@ximian.com>
9364
9365         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
9366         this to 20 for the release.
9367
9368 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
9369
9370         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
9371
9372         * loader.c (mono_method_get_marshal_info): bug fix
9373
9374         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
9375         structures with explicit layout
9376
9377 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9378
9379         * profiler.c: made the output more readable (and sorted). 
9380         Added caller information for the allocation profiler.
9381
9382 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
9383
9384         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
9385
9386 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9387
9388         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
9389         to get value types.
9390         
9391 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
9392
9393         * object.c, profiler.h, profiler.c, profiler-private.h:
9394         Added object allocation profiler.
9395
9396 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
9397
9398         * reflection.h, reflection.c: handle global methods.
9399         Compress blob entries.
9400
9401 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
9402
9403         * marshal.c: fix compilation.
9404
9405 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
9406
9407         * loader.c (mono_method_get_marshal_info): impl.
9408
9409         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
9410
9411 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9412
9413         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
9414         for reference types.
9415
9416 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
9417
9418         * loader.c: fixed off by one error in loaded parameter names.
9419
9420 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
9421
9422         * marshal.c (mono_marshal_get_icall_wrapper): like
9423         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
9424         instead of a MonoMethod.
9425
9426 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9427
9428         * decimal.c: fixed bug #36537.
9429
9430 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
9431
9432         * marshal.c: throw a missing method exception if a
9433         P/Invoke method is not found.
9434
9435 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
9436
9437         * icall.c: allow a null this for constructors.
9438
9439 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
9440
9441         * icall.c: raise the proper exceptions if the arguments to the
9442         internal Invoke are incorrect.
9443
9444 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
9445
9446         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
9447
9448 2003-01-03  Martin Baulig  <martin@ximian.com>
9449
9450         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9451
9452 2002-12-31  Martin Baulig  <martin@ximian.com>
9453
9454         * debug-mono-symfile.c: Completely rewrote the type section.
9455         Instead of using individual malloc()ed fields, we use one big
9456         continuous memory area and offsets into this area.
9457         See the comments in the source code for details.
9458
9459 2002-12-30  Martin Baulig  <martin@ximian.com>
9460
9461         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
9462
9463 2002-12-30  Martin Baulig  <martin@ximian.com>
9464
9465         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
9466         line number table in this data blob instead of using an external
9467         pointer.
9468
9469 2002-12-28  Martin Baulig  <martin@ximian.com>
9470
9471         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
9472
9473 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
9474
9475         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
9476         as a boxed return type.
9477
9478 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
9479
9480         * appdomain.c
9481         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
9482         g_build_filename to properly get separators on the filename created.
9483
9484         * object.h: Small change, introduce MonoMarshalByRefObject to
9485         track the layout of that structure in the C# universe as we make
9486         changes there.
9487
9488 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
9489
9490         * object.c: removed assert to allow static fields on interfaces.
9491         * loader.c: a TypeSpec may be used for any type, not just arrays.
9492
9493 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
9494
9495         * class.c, class.h: added mono_class_array_element_size ().
9496         Ignore static methods in interfaces.
9497
9498 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9499
9500         * threads.c: fixed the build under cygwin.
9501
9502 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
9503
9504         * reflection.c: handle nullref constants. Allocate keys for
9505         reflection handles with the GC.
9506
9507 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9508
9509         * threads.c, threads.h: added mono_thread_get_abort_signal()
9510         to get a suitable signal for thread abort.
9511
9512 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
9513
9514         * metadata.c: fix handling of ExportedType table.
9515
9516 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9517
9518         * icall.c: added WriteWindowsDebugString internal call.
9519
9520 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9521
9522         * reflection.h: added fields to match C# implementation.
9523
9524 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9525
9526         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
9527
9528 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
9529
9530         * gc.h, gc-internal.h: Rename header for GC internal calls to
9531         gc-internal.h from gc.h as to not clash with Boehm GC having its
9532         header installed as <gc.h> in outside include paths.
9533         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
9534         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
9535
9536 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9537
9538         * icall.c: assign minor, build and revision in FillName.
9539
9540 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
9541
9542         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
9543         Added support for running code generated by Reflection.Emit.
9544
9545 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9546
9547         * appdomain.c: check for NULL argument in LoadFrom.
9548
9549 2002-12-10  Dick Porter  <dick@ximian.com>
9550
9551         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
9552
9553 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9554
9555         * appdomain.c: fix buglet when building exe file name.  Handle full
9556         assembly name (needed after latest changes to AssemblyName).
9557         * image.c:
9558         (mono_image_close): free some hashtables.
9559
9560 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
9561
9562         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
9563         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
9564         on some systems (redhat 7.3) 
9565
9566 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
9567
9568         * threads.c: delete the critical section of a sync block,
9569         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
9570
9571 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
9572
9573         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
9574
9575 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9576
9577         * appdomain.[ch]: handle the assembly preload event to try loading the
9578         assemblies using the paths we have in the current domain.
9579
9580         * assembly.[ch]: created an assembly preload hook that is called to try
9581         loading the assembly by other means that the ones provided here.
9582
9583         * domain.c: initialize the domain search path.
9584
9585         From now on, assemblies (TODO: except corlib and System) are loaded
9586         according to these rules when using mono_assembly_load ():
9587
9588                 1. It tries to load the assembly from the ApplicationBase
9589                 of the current domain appending .dll and .exe (TODO: have to
9590                 try loading from name/name.dll and name/name.exe).
9591
9592                 2. It tries the search path specified in PrivateBinPath for the
9593                 current domain (if any).
9594
9595                 3. Previous behavior.
9596
9597 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
9598
9599         * icall.c: implemented GetInterfaceMap() related icall.
9600         * domain.c, loader.h: load MethodInfo in mono_defaults.
9601
9602 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
9603
9604         * gc.c: disable the finalizer thread for now, untill all the issues
9605         with it are resolved.
9606
9607 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
9608
9609         * string-icalls.c: handle embedded nulls in string ctor when the
9610         length is specified.
9611
9612 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
9613
9614         * class.c: look for explicit interface implementation in parent
9615         classes, too.
9616
9617 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
9618
9619         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
9620
9621 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
9622
9623         * gc.c: protect handles with a critical section.
9624
9625 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9626
9627         * icall.c:
9628         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
9629         parameters. If no assembly specified, try getting the type from all
9630         the assemblies in the current domain, else, load the assembly and get
9631         the type from it.
9632
9633 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9634
9635         * marshal.c: applied patch from Aleksey Demakov that fixes
9636         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
9637
9638 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9639
9640         * icall.c: fixed get_location.
9641
9642 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
9643
9644         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
9645         declarations to make it work with older gcc. 
9646
9647         * loader.c (mono_get_method): set signature->pinvoke for native calls
9648
9649 2002-11-20  Dick Porter  <dick@ximian.com>
9650
9651         * threads.c (mono_thread_init): Set the main thread's handle
9652
9653 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
9654
9655         * gc.c: allow compilation without GC support. Changed to match the
9656         mono coding style.
9657
9658 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
9659
9660         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
9661
9662 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
9663
9664         * reflection.c: set a public key token on the core assemblies.
9665
9666 2002-11-18  Dick Porter  <dick@ximian.com>
9667
9668         * threads.c: Split out some thread initialisation so that other
9669         files can set the start callback function.
9670
9671         * gc.c: Run finalisers in a separate thread, to avoid stack
9672         overflow.  Fixes bug 31333.
9673
9674         * appdomain.c: Set up GC finalisation thread.
9675
9676         * reflection.c: 
9677         * object.c: 
9678         * domain.c: Use gc.h macros for GC_malloc
9679         
9680 2002-11-15  Dick Porter  <dick@ximian.com>
9681
9682         * threadpool.c: 
9683         * threads.c:
9684         * appdomain.c: Removed mono_runtime_init_with_attach(),
9685         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
9686         merging the extra parameter with the existing function.  Removed
9687         unneeded code in mono_thread_attach().
9688
9689 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
9690
9691         * image.c (mono_image_loaded_by_guid): a method to get loaded
9692         images by guid. 
9693         (load_metadata_ptrs): we store the guid as string.
9694
9695 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
9696
9697         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
9698
9699         * metadata.c (mono_guid_to_string): imported method form Zoltan
9700         Varga (slightly modified)
9701
9702         * assembly.c (mono_assembly_open): load precompiled code
9703
9704         * loader.h (MonoMethod): we store the method token for use in the
9705         aot compiler. 
9706
9707 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9708
9709         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
9710         the hook function called when an assembly is loaded.
9711         
9712         * domain.c: Modified file.
9713         (mono_domain_assembly_load): removed hash table insertion of assemblies.
9714
9715         Fixes bug #33196.
9716
9717 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
9718
9719         * reflection.c: Map PEFileKind to the value expected by the WinNT
9720         image loader. 
9721
9722 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9723
9724         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
9725         Read until the buffer is filled completely.
9726
9727 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9728
9729         * icall.c: implemented MonoType.InternalGetEvent ().
9730
9731 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9732
9733         * appdomain.c: implemented InitAppDomainSetup. Delayed
9734         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
9735         the entry_assembly.
9736
9737         * assembly.c: base_dir is now an absolute path ending with
9738         G_DIR_SEPARATOR.
9739
9740         * icall.c: modified get_location according to the above changes.
9741
9742         * object.c: init AppDomain.SetupInformation for the default domain after
9743         we have the entry assembly.
9744
9745         * domain.c: when unloading a domain, setup = NULL.
9746
9747 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
9748
9749         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
9750
9751 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
9752
9753         * object.h, object.c: introduced mono_object_get_virtual_method ()
9754         to lookup the method invoked on an object when a callvirt is done on
9755         a method.
9756         * icall.c: make MethodInfo::Invoke() always do a virtual call.
9757
9758 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9759
9760         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
9761         current domain when loaded an assembly and failed to load it.
9762
9763         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
9764
9765 2002-10-31  Dick Porter  <dick@ximian.com>
9766
9767         * icall.c: 
9768         * file-io.h: 
9769         * file-io.c: Return the error status in a parameter, as the
9770         GetLastError() value has long since been blown away if we try and
9771         look it up in a subsequent internal call invocation.  Delete the
9772         GetLastError() internal call, because it's useless.
9773
9774 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
9775
9776         * class.[ch]: added cast_class to fix bug 29517
9777
9778 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
9779
9780         * marshal.c: create valid IL code in the filter clause:
9781         the new JIT is less forgiving:-)
9782
9783 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9784
9785         * icall.c: removed get_property internal call.
9786
9787 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
9788
9789         * appdomain.h domain.c: Added an ID to appdomains.
9790         
9791         * threads.c threads.h icall.c: Implement icall
9792         Thread:GetDomainID(), and remove unused icall 
9793         CurrentThreadDomain_internal.
9794
9795 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9796
9797         * icall.c: Don't recurse through the base types in GetConstructor.
9798         Fixes bug #32063. 
9799
9800 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
9801
9802         * mempool.h, mempool.c: added mono_mempool_empty() and
9803         mono_mempool_stats().
9804
9805 2002-10-23  Dick Porter  <dick@ximian.com>
9806
9807         * file-io.c: 
9808         * file-io.h: 
9809         * icall.c: Added MonoIO.GetFileType internal call
9810
9811 2002-10-17  Dick Porter  <dick@ximian.com>
9812
9813         * appdomain.c (mono_runtime_cleanup): Don't signal the async
9814         delegate semaphore before waiting for all threads to finish,
9815         because new threads can also call async delegates.  Fixes bug
9816         32004.
9817
9818         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
9819         of 3 seconds, in case another async job is queued.  (This part is
9820         needed because the bug fix reintroduced the 3s exit lag.)  This
9821         makes the mono_runtime_shutdown flag superfluous.
9822
9823 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
9824
9825         * reflection.c: include ehader size in method section headers.
9826         Really check for suplicated modules entries.
9827
9828 2002-10-17  Martin Baulig  <martin@gnome.org>
9829
9830         * debug-mono-symfile.c: Added back support for locals.
9831
9832 2002-10-14  Martin Baulig  <martin@gnome.org>
9833
9834         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
9835         MONO_TYPE_VOID.
9836
9837 2002-10-14  Martin Baulig  <martin@gnome.org>
9838
9839         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
9840         mono_class_get() instead of looking in the class cache. 
9841
9842 2002-10-13  Martin Baulig  <martin@gnome.org>
9843
9844         * debug-mono-symfile.c: Set version number to 28, include the
9845         signature in method names.
9846
9847 2002-10-13  Martin Baulig  <martin@gnome.org>
9848
9849         * debug-mono-symfile.h: Set version number to 27.
9850
9851 2002-10-11  Martin Baulig  <martin@gnome.org>
9852
9853         * gc.c: Don't register/unregister NULL pointers as disappearing links.
9854
9855 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
9856
9857         * metadata.c, metadata.h: added helper function to allocate signatures.
9858
9859 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9860
9861         * icall.c: added internal call to get the location of machine.config.
9862
9863 2002-10-08  Martin Baulig  <martin@gnome.org>
9864
9865         * debug-mono-symfile.c: Ignore classes with a pending init for the
9866         moment.
9867
9868 2002-10-03  Dick Porter  <dick@ximian.com>
9869
9870         * threads.c: Freebsd pthread_t is a pointer
9871
9872 2002-10-03  Dick Porter  <dick@ximian.com>
9873
9874         * socket-io.c: Implemented GetHostName_internal
9875
9876 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9877
9878         * mono-config.c:
9879         (mono_config_parse_file): don't leak the text.
9880
9881 2002-10-02  Martin Baulig  <martin@gnome.org>
9882
9883         * debug-mono-symfile.c: Added support for methods.
9884
9885 2002-10-01  Martin Baulig  <martin@gnome.org>
9886
9887         * debug-mono-symfile.c: Don't emit methods and line numbers for
9888         the dynamic symbol file, just write the type table.  We can easily
9889         have an external helper program which creates a symbol file for an
9890         IL file.        
9891
9892 2002-10-01  Dick Porter  <dick@ximian.com>
9893
9894         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
9895         Only add the handle to the cleanup array when we're about to
9896         launch the thread.  Bug 31425 deadlocked when the test was run on
9897         mono under w32.
9898
9899 2002-10-01  Martin Baulig  <martin@gnome.org>
9900
9901         * debug-mono-symfile.c: Added support for properties.
9902
9903 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
9904
9905         * reflection.c: unaligned store fix from Mark Crichton
9906         <crichton@gimp.org>.
9907
9908 2002-09-27  Martin Baulig  <martin@gnome.org>
9909
9910         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
9911         New interncall.
9912
9913 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
9914
9915         * assembly.h, assembly.c: use a sane API to hook into the assembly
9916         loading process instead of a useless special-purpouse hack
9917         (ngen needs a hook, too, for example).
9918
9919 2002-09-27  Dick Porter  <dick@ximian.com>
9920
9921         * threads.c (mono_thread_init): Call GetCurrentProcess() so
9922         io-layer can set up some process handle info.  Not needed on w32,
9923         but doesn't hurt either.
9924
9925         * process.c: Pass the program name in the second parameter to
9926         CreateProcess, so the path is searched.  Include the working
9927         directory. Implemented process name, process enumeration, and some
9928         process detail internal calls.
9929         
9930         * icall.c: Added internal calls for process lookup, and some
9931         process details
9932
9933 2002-09-26  Martin Baulig  <martin@gnome.org>
9934
9935         * assembly.c (mono_install_open_assembly_hook): New global
9936         function to install a function to be invoked each time a new
9937         assembly is loaded.
9938         (mono_assembly_open): Run this callback function if set.
9939
9940         * debug-mono-symfile.c: Put back line numbers for the dynamic
9941         symbol file and also record the .il file as source file.  This
9942         allows us to install the temporary symbol file as `file.dbg' just
9943         like a compiler-generated one.
9944
9945 2002-09-26  Nick Zigarovich <nick@chemlab.org>
9946
9947         * Corrected typo in gc.c (BOHEM vs BOEHM).
9948
9949 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9950
9951         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
9952         GetProperties. Also avoid calling g_slist_length in GetProperties and
9953         GetMethods.
9954
9955 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
9956
9957         * reflection.c: avoid unaligned stores (bug spotted by
9958         Mark Crichton  <crichton@gimp.org>).
9959
9960 2002-09-25  Martin Baulig  <martin@gnome.org>
9961
9962         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
9963         instead of guint64 for addresses and added prologue/epilogue info.
9964
9965 2002-09-25  Martin Baulig  <martin@gnome.org>
9966
9967         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
9968         store line number info.  For the dynamic symbol file, we only need
9969         to provide the JIT generated dynamic line number info for the dynamic
9970         symbol file.
9971
9972 2002-09-25  Martin Baulig  <martin@gnome.org>
9973
9974         * debug-mono-symfile.h: Incremented version number.
9975
9976 2002-09-24  Martin Baulig  <martin@gnome.org>
9977
9978         * class.c (mono_debugger_class_init_func): New global function
9979         pointer variable.
9980         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
9981         call it.
9982
9983         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
9984         function.  This is called via the mono_debugger_class_init_func
9985         hook to add all types to the dynamic type table.
9986         (ves_icall_MonoDebugger_GetType): New interncall to get a class
9987         from its metadata token.
9988
9989         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
9990         New interncall for the debugger.
9991
9992 2002-09-24  Nick Drochak <ndrochak@gol.com>
9993
9994         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
9995         before using it in case it is null.
9996         
9997 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
9998
9999         * metadata.c: allow custom modifiers in local var signatures
10000         (bug spotted by Zoltan Varga).
10001
10002 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
10003
10004         * class.c: deal with the <Module> class that may have a NULL vtable.
10005         Eliminate warnings.
10006
10007 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10008
10009         * image.c, image.h: more strong name helpers.
10010         * monosn.c: more work: convert pem keys to cryptoapi format.
10011
10012 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10013
10014         * string-icalls.c: speedup IndexOf.
10015
10016 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10017
10018         * icall.c: updates from Zoltan.2.Varga@nokia.com.
10019
10020 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10021
10022         * icall.c: cleanup: use mono_object_domain ().
10023
10024 2002-09-23  Martin Baulig  <martin@gnome.org>
10025
10026         * debug-mono-symfile.c: Improved type support.
10027
10028 2002-09-22  Martin Baulig  <martin@gnome.org>
10029
10030         * debug-mono-symfile.c: Added support for reference types and strings.
10031
10032 2002-09-22  Martin Baulig  <martin@gnome.org>
10033
10034         * debug-mono-symfile.c: Started to work on the type table.
10035
10036 2002-09-21  Martin Baulig  <martin@gnome.org>
10037
10038         * debug-mono-symfile.c: Largely reworked the symbol table format.
10039         The symbol table is now incrementally updated each time a new
10040         method is added.  We're now also using our own magic and version
10041         so that you don't need to recompile all your classes if the
10042         dynamic table changes.
10043         (mono_debug_update_mono_symbol_file): Removed.
10044         (mono_debug_symfile_add_method): New function to add a method.
10045
10046 2002-09-21  Martin Baulig  <martin@gnome.org>
10047
10048         * icall.c
10049         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
10050         New interncall.
10051
10052         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
10053         New interncall to get a method from its metadata token.
10054
10055 2002-09-21  Martin Baulig  <martin@gnome.org>
10056
10057         * debug-mono-symfile.c: Create type table.
10058
10059 2002-09-20  Martin Baulig  <martin@gnome.org>
10060
10061         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
10062
10063 2002-09-20  Martin Baulig  <martin@gnome.org>
10064
10065         * debug-mono-symfile.c: Provide information about params and locals.
10066
10067 2002-09-20  Martin Baulig  <martin@gnome.org>
10068
10069         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
10070         New interncall.
10071
10072         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
10073         interncall to get a method from its metadata token.
10074
10075 2002-09-20  Martin Baulig  <martin@gnome.org>
10076
10077         * debug-mono-symfile.c: Added a few checks for method->header
10078         being non-NULL.  This should never happen, but for the moment
10079         let's use a g_warning() rather than a g_assert().
10080
10081 2002-09-19  Mark Crichton  <crichton@gimp.org>
10082
10083         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
10084         even if support for it isn't present.  Added an #ifdef to fix this.
10085
10086         * socket-io.c: Added checks back for Solaris support.
10087
10088 2002-09-19  Martin Baulig  <martin@gnome.org>
10089
10090         * debug-mono-symfile.c (read_string, write_string): Reflect latest
10091         changes in the symbol file format.
10092
10093 2002-09-18  Martin Baulig  <martin@gnome.org>
10094
10095         * debug-mono-symfile.c: Set version number to 21.
10096
10097 2002-09-18  Dick Porter  <dick@ximian.com>
10098
10099         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
10100         on netbsd.  Fixes bug 30051.
10101
10102 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10103
10104         * reflection.c:
10105         (set_version_from_string): little fix.
10106
10107 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10108
10109         * monosn.c, Makefile.am: added strong name utility.
10110         * reflection.h, reflection.c: implemented delayed signing,
10111         locale, version and hash id assembly attributes.
10112
10113 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10114
10115         * loader.c, metadata.c: load param attributes in signatures.
10116
10117 2002-09-16  Martin Baulig  <martin@gnome.org>
10118
10119         * debug-mono-symfile.c: Added string table with all method names.
10120
10121 2002-09-14  Martin Baulig  <martin@gnome.org>
10122
10123         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
10124         fast method lookup.
10125
10126 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10127
10128         * reflection.c: record the public key token of referenced assemblies.
10129
10130 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10131
10132         * image.c, image.h: added functions to get the strong name and the
10133         public key of an assembly.
10134         * pedump.c: use them.
10135
10136 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
10137
10138         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
10139
10140 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
10141
10142         * marshal.c (mono_marshal_get_managed_wrapper): Added
10143         MONO_TYPE_BOOLEAN 
10144
10145 2002-09-11  Martin Baulig  <martin@gnome.org>
10146
10147         * gc.c: Call GC_unregister_disappearing_link() on all links when
10148         finalizing them, this is necessary to aviod a crash in boehm's
10149         finalize handler.
10150
10151 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10152
10153         * gc.c: handle GetTarget for finalized objects spotted and fixed by
10154         nick@chemlab.org.
10155
10156 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10157
10158         * icall.c: implemented MonoType::Module.
10159         * reflection.c, reflection.h: mono_module_get_object () from
10160         Tomi Pakarinen <tomi.pakarinen@welho.com>.
10161
10162 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
10163
10164         * icall.c: ignore overridden methods in GetMethods ().
10165         Fix for FieldInfo::SetValue().
10166         * object.c: handle float/double in runtime invoke.
10167
10168 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
10169
10170         * object.c: allow a constructor to be called again on an object.
10171
10172 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10173
10174         * class.h, class.c: move field layout code to it's own function and
10175         export it. Get an interface id earlier. Move fields in MonoClass
10176         so they are more cache friendly and align the bitfields.
10177         * loader.c: temporary handle get_param_names() for a runtime method.
10178         * reflection.c, reflection.h: more code to handle runtime creation of
10179         types.
10180
10181 2002-09-09  Martin Baulig  <martin@gnome.org>
10182
10183         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
10184         signature with the pinvoke field being set for the actual call.
10185
10186 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10187
10188         * icall.c: removed some unused icalls. Start of map of glib charsets
10189         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
10190
10191 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10192
10193         * debug-helpers.c: break infinite loop (found and fixed by
10194         Holger Arnold <harnold@gmx.de>).
10195
10196 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
10197
10198         * icall.c: target may be null in create_delegate.
10199
10200 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10201
10202         * marshal.c: handle a boolean return type.
10203
10204 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
10205
10206         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
10207
10208 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10209
10210         * gc.c: fix weakreferences.
10211
10212 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
10213
10214         * icall.c: added icall to get default codepage.
10215
10216 2002-09-03  Dick Porter  <dick@ximian.com>
10217
10218         * threads.h: 
10219         * threads.c: Use MonoThread instead of MonoObject where
10220         apropriate.
10221
10222         Store running thread objects in a hash table, so that we have all
10223         the info to hand when waiting for them to finish
10224         (means we don't need OpenThread() any more, so mingw builds should
10225         be fully functional again.)
10226
10227         * verify.c:
10228         * object.h: Added thread ID to MonoThread
10229
10230 2002-09-03  Martin Baulig  <martin@gnome.org>
10231
10232         * icall.c (System.Reflection.Assembly::get_location): New interncall.
10233
10234 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10235
10236         * icall.c: fixed leak in get_temp_path. Thanks lupus.
10237
10238 2002-09-03  Martin Baulig  <martin@gnome.org>
10239
10240         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
10241         argument to store the end address of the disassembled instruction.
10242
10243         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
10244         here from debug-symfile.h.
10245         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
10246         JIT into this struct.
10247         (MonoSymbolFile): Added `char *image_file' field.
10248         (MonoDebugGetMethodFunc): Removed.
10249         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
10250         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
10251         (mono_debug_find_method): New method.
10252
10253         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
10254         create a full symbol file.
10255         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
10256         and static symbol files.
10257         (mono_debug_find_method): The symbol file keeps an internal method hash,
10258         call this to get a MonoDebugMethodInfo from a MonoMethod.
10259
10260         * debug-symfile.[ch]: Removed.
10261
10262 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
10263
10264         * image.c (do_mono_image_open): Remove linker version check.
10265
10266 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
10267
10268         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
10269         wrappers for instance methods.
10270         
10271 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10272
10273         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
10274
10275 2002-08-28  Dick Porter  <dick@ximian.com>
10276
10277         * Makefile.am: Export HOST_CC for w32 builds
10278
10279 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
10280
10281         * file-io.c process.c: MonoString are null terminated, no
10282         need for mono_string_to_utf16() anymore.
10283
10284 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10285
10286         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
10287
10288 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
10289
10290         * icall.c, reflection.h: speedup System.MonoType.
10291
10292 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
10293
10294         * reflection.c: allow null as the value of a string argument in
10295         custom attributes constructors.
10296
10297 2002-08-27  Martin Baulig  <martin@gnome.org>
10298
10299         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
10300         `trampoline_address' field.
10301
10302 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
10303
10304         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
10305         check (fixes bug #29486) 
10306
10307 2002-08-27  Martin Baulig  <martin@gnome.org>
10308
10309         * debug-mono-symfile.c: Changed the file format in a way that allows us
10310         open it read-only and to use a specially malloced area for all the
10311         dynamic data.  We can now also generate a symbol file on-the-fly if we're
10312         debugging IL code and there is no MCS generated symbol file for it.
10313
10314 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
10315
10316         * object.c: added a define for a good string and array
10317         creation speedup (not enabled by default because we need to deal with
10318         the synch stuff).
10319
10320 2002-08-26  Martin Baulig  <martin@gnome.org>
10321
10322         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
10323         function to create a dynamic symbol file.  This is used by the
10324         debugger to create a symbol file for IL code on-the-fly.
10325
10326 2002-08-26  Martin Baulig  <martin@gnome.org>
10327
10328         * loader.c (mono_lookup_pinvoke_call): Include the error message
10329         from g_module_error() in the error message.
10330
10331 2002-08-24  Martin Baulig  <martin@gnome.org>
10332
10333         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
10334         function to update the symbol file.  The symbol file is mmap()ed
10335         writable, but private.  This allows us to install the symbol file
10336         together with the assembly.
10337
10338 2002-08-24  Martin Baulig  <martin@gnome.org>
10339
10340         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
10341         but they can read the new symbol file format which mcs is now creating.
10342
10343         * debug-symfile.c (mono_debug_find_source_location): Moved to
10344         debug-mono-symfile.c; this is now operating on the new symbol file.
10345
10346 2002-08-23  Martin Baulig  <martin@gnome.org>
10347
10348         * debug-helpers.c (mono_method_desc_from_method): New function to get
10349         a MonoMethodDesc from a MonoMethod.
10350
10351 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
10352
10353         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
10354         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
10355
10356 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
10357
10358         * string-icalls.[ch]: make helper methods static.
10359
10360 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10361
10362         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
10363         types to it and to SetValueInternal.
10364
10365         * object.c: Moved handle_enum label to its proper place. This was the
10366         f... bug! ;-)
10367
10368         This time i compiled mcs and gtk-sharp and they both work.
10369
10370 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10371
10372         * icall.c: reverted partially my previous patch until 
10373         object.c:set_value handles enums correcly.
10374
10375 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10376
10377         * icall.c:
10378         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
10379         (ves_icall_System_Environment_get_MachineName): removed warning when
10380         compiling under cygwin.
10381
10382 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10383
10384         * object.c: fixed field_get_value() for reference types.
10385
10386 2002-08-22  Dick Porter  <dick@ximian.com>
10387
10388         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
10389         Don't free a buffer while it's still needed.  Patch from Jonathan
10390         Liger <Jonathan.liger@wanadoo.fr>
10391
10392 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
10393
10394         * icall.c (ves_icall_System_Environment_get_Platform): Add new
10395         internal call.
10396
10397 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
10398
10399         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
10400         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
10401
10402         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
10403         we call unmanaged code which throws exceptions.
10404
10405 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10406
10407         * appdomain.h: added per-domain entry_assembly.
10408         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
10409         arguments.
10410         * icall.c: Assembly::GetEntryAssembly icall.
10411         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
10412         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
10413
10414 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10415
10416         * appdomain.h, gc.c: added mono_domain_finalize ().
10417
10418 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10419
10420         * object.c:
10421         (mono_print_unhandled_exception): changed g_warning by g_printerr
10422         because g_log has a 1024 characters limit (yeah, i got a big stack
10423         trace). Don't print exception name, that should be in ToString 
10424         returned string.
10425
10426 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10427
10428         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
10429         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
10430
10431 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10432
10433         * object.c:
10434         (mono_print_unhandled_exception): after previous commit, i realized
10435         that MS calls ToString on the exception. I changed this function to
10436         do that. This way we get stack_trace for free.
10437
10438 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10439
10440         * object.c:
10441         (mono_print_unhandled_exception): invoke Message property instead of
10442         getting 'message' field from Exception. Don't allocate memory for
10443         'trace' and 'message' if not needed.
10444
10445 2002-08-18  Dick Porter  <dick@ximian.com>
10446
10447         * unicode.c: Fix asserts to match Encoder.cs checks
10448
10449 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10450
10451         * marshal.c: fix unaligned store issue and a few wrong
10452         opcode argument types.
10453
10454 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10455
10456         * icall.c: added GetUninitializedObjectInternal internal call.
10457
10458 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
10459
10460         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
10461         to the right domain.
10462
10463 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
10464
10465         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
10466
10467         * class.c (class_compute_field_layout): set blittable to false for Strings
10468
10469         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
10470
10471 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10472
10473         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
10474         first chunk of code to create types at runtime. Code to
10475         handle ReflectedType/DeclaringType. Make reflection handles
10476         domain specific.
10477
10478 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
10479
10480         * class.c: set correct name in arrays.
10481
10482 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
10483
10484         * appdomain.c (mono_domain_transfer_object): make it work with
10485         valuetypes. bug fixes.
10486
10487 2002-08-12  Dick Porter  <dick@ximian.com>
10488
10489         * object.h: Rename some parameters to avoid c++ keywords (Patch
10490         from Joseph Wenninger <kde@jowenn.at>)
10491
10492 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
10493
10494         * icall.c: added icall to implement Assembly.GetFile*.
10495
10496 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10497
10498         * reflection.h, reflection.c: code to embed managed resources.
10499
10500 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
10501
10502         * class.c: move all the type size stuff into
10503         class_compute_field_layout().
10504
10505 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
10506
10507         * class.c: ensure enums have always the correct instance size.
10508         * unicode.c: remove wrong assert.
10509
10510 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
10511
10512         * assembly.c: fix mem corruption issue.
10513         * image.h, image.c: added mono_image_get_resource () to access
10514         managed resources.
10515         * icall.c: implemented Assembly.EntryPoint property and some
10516         Managed Resources related internalcalls.
10517
10518
10519 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
10520
10521         * image.c, image.h: impemented mono_image_get_entry_point ().
10522         * appdomain.c: use mono_image_get_entry_point.
10523
10524 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10525
10526         * reflection.c: support the object type argument when loading
10527         custom attributes.
10528
10529 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
10530
10531         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
10532         String as return type.
10533
10534 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
10535
10536         * reflection.c: fix encoding of named args for custom attrs to match
10537         the ms implementation. Read them back when instantiating custom
10538         attributes.
10539
10540 2002-08-02  Radek Doulik  <rodo@ximian.com>
10541
10542         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
10543         by Dietmar as quick fix
10544         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
10545         16 as stack size, used on more places as quick fix before Dietmar
10546         will fix it properly
10547
10548 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
10549
10550         * object.h, object.c: added accessors for fields and properties.
10551
10552 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
10553
10554         * class.c, class.h: made mono_class_get_field_from_name ()
10555         loop on parent types.
10556         Added mono_class_get_property_from_name ().
10557
10558 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10559
10560         * class.c, class.h: move the code to setup the type vtable in its own
10561         function so that it can be reused also for types created at runtime.
10562         Eliminate the "class" identifier from the header file.
10563         * reflection.c: setup the vtable for enums so that we can create
10564         objects for use in SetConstant ().
10565
10566 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
10567
10568         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
10569         instead of the delegate itself as this pointer (bug #28383)
10570
10571 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
10572
10573         * marshal.c (mono_marshal_get_managed_wrapper): added return type
10574         conversions.
10575
10576 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10577
10578         * loader.c: don't set the pinvoke bit on icalls.
10579
10580 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
10581
10582         * debug-helpers.c (mono_method_full_name): only print a number to
10583         indicate wrapper type (so that the output is more readable in traces).
10584
10585 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
10586
10587         * class.c (mono_class_init): include method override patch from Paolo
10588
10589 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
10590
10591         * icall.c: fixed GetTypeCode().
10592
10593 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
10594
10595         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
10596         use real delegate invoke function to make it work with multicast
10597         delegates (fix bug# 28291).
10598
10599 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
10600
10601         * object.c: load constant strings.
10602
10603 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
10604
10605         * reflection.c: no magic numbers.
10606         * tabledefs.h: security action enum.
10607
10608 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10609
10610         * assembly.c: fix possible memory corruption.
10611
10612 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
10613
10614         * reflection.h, reflection.c: added support for linking resources.
10615         * verify.c: check we have an updated corlib.
10616
10617 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
10618
10619         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
10620         string arrays.
10621         (mono_marshal_string_array): null terminate unmanaged string arrays.
10622         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
10623
10624 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
10625
10626         * icall.c: Type.GetType () can now return also types from the
10627         calling assembly.
10628
10629 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10630
10631         * loader.h, loader.c: stack walking support.
10632         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
10633         GetCallingAssembly.
10634
10635 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
10636
10637         * marshal.c: added optimisations for blittable types 
10638
10639         * class.c (mono_array_class_get): do not set blittable attribute on arrays
10640         (mono_class_setup_mono_type): set blittable attribute for single
10641         and double.
10642
10643         * marshal.c (mono_string_utf8_to_builder): impl.
10644         (mono_string_builder_to_utf8): impl.
10645         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
10646
10647 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
10648
10649         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
10650         (mono_marshal_get_managed_wrapper): impl. byref types
10651
10652 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10653
10654         * icall.c:
10655         (search_method): don't display debug message. 
10656
10657 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10658
10659         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
10660
10661 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
10662
10663         * appdomain.c: set the missing filename when throwing exception.
10664
10665 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
10666
10667         * metadata.c (mono_type_size): code cleanup
10668         (mono_type_stack_size): removed some test code
10669
10670 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
10671
10672         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
10673         mono_get_exception_file_not_found now.
10674
10675         * exception.c (mono_exception_from_name_two_strings): New version
10676         that will call a constructor with two string arguments. 
10677         (mono_get_exception_file_not_found): New helper routine, used to
10678         report file-not-found errors.
10679
10680 2002-07-20  Dick Porter  <dick@ximian.com>
10681
10682         * process.h:
10683         * process.c: Pass file handles to CreateProcess
10684         
10685         * icall.c:
10686         * file-io.h:
10687         * file-io.c: Implemented CreatePipe
10688
10689 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10690
10691         * metadata.c (mono_get_param_info): set alignment for value types
10692
10693 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
10694
10695         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
10696         Constify mono_domain_assembly_open().
10697         * loader.c: handle null namespace in icalls.
10698
10699 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
10700
10701         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
10702         (emit_str_to_ptr_conv): marshal object as structs
10703
10704         * metadata.c (mono_type_to_unmanaged): marshal object as structs
10705
10706         * marshal.c (mono_marshal_get_runtime_invoke): support value types
10707
10708 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
10709
10710         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
10711         (mono_marshal_get_native_wrapper): we an now return value types
10712
10713 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10714
10715         * verify.c: more checks implemented.
10716
10717 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
10718
10719         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
10720         (fix bug #27695)
10721         (mono_marshal_get_native_wrapper): allow byref arguments
10722         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
10723         impl. PtrToStringXXX methods
10724         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
10725         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
10726         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
10727         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
10728         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
10729
10730 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10731
10732         * reflection.c: fix buglet in parsing an assembly name.
10733
10734 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10735
10736         * marshal.c (emit_ptr_to_str_conv): first impl.
10737
10738 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
10739
10740         * object.c, class.h: cache the vtable in the class as suggested by
10741         vargaz@freemail.hu (Zoltan Varga).
10742
10743 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
10744
10745         * class.h, loader.c: added mono_field_from_token().
10746         * verify.c: first cut of type checking code.
10747
10748 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
10749
10750         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10751
10752 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
10753
10754         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
10755         (fix bug #27782)
10756         (mono_marshal_get_remoting_invoke): impl.
10757         (mono_delegate_begin_invoke): impl.
10758         (mono_mb_emit_save_args): impl.
10759         (mono_delegate_end_invoke): impl.
10760         (mono_marshal_get_delegate_begin_invoke):
10761         (mono_marshal_get_delegate_end_invoke):
10762         (mono_marshal_get_delegate_invoke): generate a special name for
10763         those methods (including the signature) and associate them whith
10764         the delegate class. 
10765
10766 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
10767
10768         * reflection.[ch]: 
10769         (mono_reflection_type_from_name): now it has a MonoImage parameter
10770         which is used as the default image to search the type in. If the image
10771         is NULL or getting the type from it fails, it defaults to corlib.
10772
10773         * icall.c: changed 1 call to mono_reflection_type_from_name to match
10774         new parameter.
10775
10776 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
10777
10778         * reflection.c: update the parameter table index.
10779
10780 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10781
10782         * domain.c: don't include the mark byte in the string hash.
10783
10784 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
10785
10786         * icall.cs: icall for Type.GetTypeCode ().
10787         * verify: a couple of fixes and disabled local initialization checks.
10788
10789 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
10790
10791         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
10792
10793         * debug-helpers.c (mono_method_full_name): print the type of the
10794         runtime wrapper
10795
10796         * metadata.c (mono_signature_hash): a hash function for signatures
10797         (mono_signature_hash): better hash algorithm
10798
10799         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
10800
10801         * debug-helpers.c (mono_method_full_name): this can now generate
10802         method names with signatures
10803
10804         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
10805         method dont have this pointers.
10806
10807 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
10808
10809         * reflection.c: fixup typebuilder tokens.
10810         * image.c: fix buglet.
10811         * marshal.h: remove whitespace.
10812         * metadata.h, metadata.c: reinstate code that was removed.
10813         * verify.c: handle catch directives and fix another couple of bugs.
10814
10815 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
10816
10817         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
10818         (mono_marshal_get_native_wrapper): make it comp. with the old code
10819         (mono_marshal_get_native_wrapper): support boolean
10820         (mono_marshal_get_managed_wrapper): support more types
10821
10822 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
10823
10824         * class.c (class_compute_field_layout): compute class->blittable attribute.
10825
10826 2002-07-09  Dick Porter  <dick@ximian.com>
10827
10828         * threads.c: Make the thread cleaning up cope with threads that
10829         call ExitThread()
10830
10831 2002-07-08  Radek Doulik  <rodo@ximian.com>
10832
10833         * reflection.c (method_encode_code): use non-translated values to
10834         compute finally_start, this fixes exception handling on ppc, yay!
10835
10836         * decimal.h (struct signscale): fix endianess
10837
10838 2002-07-07  Radek Doulik  <rodo@ximian.com>
10839
10840         * reflection.c: swap box_val and not val
10841
10842 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
10843
10844         * reflection.c, reflection.h: handle full assembly info in type name.
10845         Handle Type arguments when loading custom attributes.
10846         * icall.c: updated to use new mono_reflection_type_from_name () method.
10847
10848 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10849
10850         * loader.c:
10851         (method_from_memberref): also print assembly name when method not found.
10852
10853 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10854
10855         * icall.c:
10856         (ves_icall_TypeGetProperties): fixed bug #27473. 
10857
10858 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10859
10860         * reflection.c: display image name and token when cannot find the
10861         .ctor for an attribute.
10862
10863 2002-07-05  Martin Baulig  <martin@gnome.org>
10864
10865         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10866
10867 2002-07-04  Dick Porter  <dick@ximian.com>
10868
10869         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
10870         compile on mingw.  This will cause mingw builds to not wait for
10871         subthreads to terminate after the main thread does.  I've lodged a
10872         bug with the mingw developers for them to wrap OpenThread().
10873
10874 2002-07-03  Dick Porter  <dick@ximian.com>
10875
10876         * threads.c: Store thread IDs instead of handles, because
10877         GetCurrentThread() returns a pseudohandle and therefore stores
10878         useless values.  mono_thread_cleanup() continues checking the
10879         array of threads until it is empty, to cope with subthreads
10880         spawning new threads after the main thread has finished.
10881
10882         * profiler.h:
10883         * profiler.c:
10884         * profiler-private.h: Pass the thread ID to thread profiler
10885         functions, instead of a handle
10886
10887 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
10888
10889         * verify.c: fixes to make it more usable.
10890         * pedump.c: added --verify code to verify IL code in an assembly.
10891
10892 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
10893
10894         * reflection.c: turn errors into warnings to allow compiling corlib.
10895
10896 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
10897
10898         * reflection.c: add special cases to compile corlib.
10899
10900 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10901
10902         * reflection.c: handle properties with only a set method.
10903
10904 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
10905
10906         * opcodes.h: add enum with opcodes in opval order.
10907
10908 2002-07-01  Dick Porter  <dick@ximian.com>
10909         
10910         * object.h:
10911         * object.c (mono_runtime_run_main): Removed unneeded argument
10912
10913 2002-06-28  Martin Baulig  <martin@gnome.org>
10914
10915         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
10916
10917 2002-06-27  Dick Porter  <dick@ximian.com>
10918
10919         * threads.c: Store the handle in both the parent thread and in the
10920         subthread, to minimise the time between starting a new thread and
10921         storing its ID.
10922
10923 2002-06-26  Dick Porter  <dick@ximian.com>
10924
10925         * appdomain.c (mono_runtime_cleanup): Close the socket library
10926         after all the threads have finished, not before
10927
10928 2002-06-26  Martin Baulig  <martin@gnome.org>
10929
10930         * debug-symfile.c (mono_debug_find_source_location): Added
10931         `guint32 *line_number' argument.  If it's not NULL, store the line number
10932         there and return the file name without the line number.
10933
10934 2002-06-25  Dick Porter  <dick@ximian.com>
10935
10936         * icall.c:
10937         * process.h:
10938         * process.c: Process forking and other support functions
10939
10940 2002-06-25  Dick Porter  <dick@ximian.com>
10941
10942         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
10943         things dont happen when the image is closed.
10944         (mono_image_lookup_resource): Walk the resource section looking
10945         for a particular entry
10946
10947         * cil-coff.h: PE resource section decoding
10948
10949 2002-06-25  Dick Porter  <dick@ximian.com>
10950         
10951         * assembly.h:
10952         * assembly.c: 
10953         (mono_assembly_foreach): Accessor functions to walk the list of
10954         loaded assemblies
10955         (mono_assembly_set_main):
10956         (mono_assembly_get_main): Process methods need to know which
10957         assembly is the "main" one
10958
10959         * object.c (mono_runtime_run_main): Record the main assembly
10960
10961         * debug-helpers.c: Fix typo
10962
10963 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
10964
10965         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
10966         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
10967
10968 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
10969
10970         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
10971
10972 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
10973
10974         * image.c (do_mono_image_open): Initialize reference count,
10975         otherwise we leak the MonoImage.
10976
10977 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
10978
10979         * reflection.c: small tweak to handle self-hosting.
10980
10981 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
10982
10983         * reflection.c: fix type name parse code.
10984
10985 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
10986
10987         * reflection.c: break out of the loop.
10988         * image.c: special case corlib.
10989
10990 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
10991
10992         * reflection.c: add all the custom attrs at the end to ensure the
10993         ctors have been properly initialized when the attributes are defined
10994         in the current assembly.
10995
10996 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
10997
10998         * reflection.c: handle correctly multiple-nested types.
10999
11000 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11001
11002         * row-indexes.h: fix typos.
11003         * reflection.c: adjust for typos and fix method_def_or_ref
11004         encoding in MethodImpl table.
11005
11006 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11007
11008         * reflection.c: fix entry point patching (thanks Serge!).
11009
11010 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
11011
11012         * verify.c: add check for System.Exception
11013
11014 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
11015
11016         * image.c, class.c: minifix for code just c&p'ed.
11017         * reflection.c: warning fix.
11018         * object.h, loader.h, domain.c: load also StringBuilder.
11019
11020 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
11021
11022         * marshal.h, marshal.c: some support code to handle complex marshaling.
11023
11024 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11025
11026         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
11027         Better signatures with vtable error dump.
11028
11029 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
11030
11031         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
11032
11033 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
11034
11035         * icall.c (ves_icall_Type_GetField): impl.
11036
11037 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11038
11039         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
11040         to retrieve a marshal description blob for a field or param.
11041
11042 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11043
11044         * reflection.h, reflection.c: change order of nested type emission
11045         to avoid table corruption. The NestedTypes table is sorted.
11046         * icall.c: change order of GetConstructor results to workaround mcs bug.
11047
11048 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11049
11050         * reflection.h, reflection.c: handle field and param marshal
11051         information.
11052
11053 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11054
11055         * icall.c, marshal.c marshal.h: more Marshal class implementation.
11056
11057 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11058
11059         * reflection.c: fix call convention.
11060
11061 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11062
11063         * reflection.h, reflection.c: mono_image_get_memberref_token()
11064         takes a type instead of a class, now. Added
11065         mono_image_get_array_token() to create tokens for the special
11066         multi-dim array methods.
11067
11068 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11069
11070         * assembly.c: handle modules (no assembly table). Split
11071         loading references in its own function.
11072         * class.c: handle moduleref resolution scope.
11073         * image.c, image.h: cache module name in image.
11074
11075 2002-06-07  Martin Baulig  <martin@gnome.org>
11076
11077         * reflection.c (mono_image_get_type_info): Only add a class layout entry
11078         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
11079
11080 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11081
11082         * icall.c: more signature fixes that used uint instead of int.
11083
11084 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11085
11086         * reflection.c: fixed signature of field refs.
11087
11088 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11089
11090         * class.c, reflection.c: handle typerefs of nested types
11091         (both on read and when writing files).
11092
11093 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
11094
11095         * icall.c: fix method signatures that tried to workaround the previous
11096         typo, d'oh!
11097
11098 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11099
11100         * debug-helpers.c: fix typo.
11101
11102 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11103
11104         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
11105         rewrote the PE/COFF writing code (our programs are understood by the
11106         ms runtime, now).
11107
11108 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
11109
11110         * gc.c, gc.h, icall.c: weakreference support.
11111
11112 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
11113
11114         * Makefile.am, mono-config.c: use $(sysconfdir).
11115
11116 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11117
11118         * icall.c: changed default precision of Double.ToString() to 15.
11119         Fixed memory leak. Unified with Single.ToString.
11120
11121 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
11122
11123         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
11124
11125 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
11126
11127         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
11128         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
11129         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
11130         and myself.
11131
11132 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11133
11134         * debug-symfile.c, sysmath.c: yet more compilation fixes.
11135
11136 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11137
11138         * reflection.c, socket-io.c: more compilation fixes.
11139
11140 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11141
11142         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
11143         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
11144         unicode.c: warning and compiler compatibility fixes.
11145
11146 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11147
11148         * class.h, metadata.c: fixed warnings/compilation errors.
11149
11150 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
11151
11152         * Makefile.am, mono-config.c, mono-config.h: configuration file
11153         support routines.
11154         * loader.c, loader.h: make Dll mapping configurable at runtime in the
11155         config file. Export methods to insert and lookup mappings.
11156
11157 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11158
11159         * reflection.c: handle types and boxed objects in custom attr
11160         constructors.
11161
11162 2002-05-30  Martin Baulig  <martin@gnome.org>
11163
11164         * debug-symfile.c
11165         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
11166
11167 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
11168
11169         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
11170         to lookup the implmap row for a P/Invoke method.
11171         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
11172         P/Invoke method from the runtime on an as needed basis.
11173
11174 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
11175
11176         * metadata.c (mono_metadata_parse_signature): impl.
11177
11178 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11179
11180         * class.c: handle .pack directive.
11181
11182 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11183
11184         * object.c: initialize static fields with RVA data.
11185
11186 2002-05-25  Martin Baulig  <martin@gnome.org>
11187
11188         * debug-symfile.c
11189         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
11190
11191 2002-05-24  Martin Baulig  <martin@gnome.org>
11192
11193         * debug-symfile.c
11194         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
11195         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
11196         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
11197
11198 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11199
11200         * object.c: special case string ctros in invoke.
11201         * gc.c: silly whitespace changes.
11202
11203 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
11204
11205         * threadpool.[ch]: impl. a threadpool that can
11206         be used by mint and mono.
11207
11208 2002-05-22  Martin Baulig  <martin@gnome.org>
11209
11210         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
11211         The first argument is now a `MonoReflectionModuleBuilder *', the return
11212         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
11213         `methods' field to get the method builder.  The `token' argument is the
11214         unfixed token.
11215
11216         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
11217         invalid characters instead of g_assert_not_reached()ing.  This seems
11218         to be the behaviour of mscorlib.
11219
11220 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
11221
11222         * object.c (mono_runtime_invoke_array): applied patch from Rachel
11223         Hestilow to fix bug #25104
11224
11225 2002-05-21  Martin Baulig  <martin@gnome.org>
11226
11227         * debug-symfile.c (mono_debug_find_source_location): New function.
11228         Looks up an IL offset in the line number table and returns the source
11229         location as a string.
11230
11231 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11232
11233         * icall.c:
11234         (mono_double_ToStringImpl): changed %f by %g until we have something
11235         better.
11236
11237 2002-05-21  Nick Drochak  <ndrochak@gol.com>
11238
11239         * icall.c : Use different name for Math.Pow's icall.  Needed to check
11240         parameters first in C#.
11241
11242 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11243
11244         * icall.c, reflection.h: added icall to get info about an event.
11245
11246 2002-05-20  Radek Doulik  <rodo@ximian.com>
11247
11248         * object.c (mono_value_box): don't use memcpy for boxing on BIG
11249         endian
11250         (mono_value_box): don't use memcpy for small sizes on
11251         architectures with unaligned access
11252
11253 2002-05-20  Martin Baulig  <martin@gnome.org>
11254
11255         * reflection.c (mono_reflection_setup_internal_class): Don't crash
11256         if `tb->parent == NULL'.
11257         (mono_reflection_create_internal_class): New function.  This is
11258         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
11259         for enum types.
11260
11261         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
11262         New interncall.
11263
11264 2002-05-19  Martin Baulig  <martin@gnome.org>
11265
11266         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
11267         argument to get the length, don't default to the array length.
11268
11269 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
11270
11271         * assembly.c (mono_assembly_setrootdir): New function used to
11272         override the MONO_ASSEMBLIES directory.
11273
11274 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11275
11276         * icall.c: ValueType_GetHashCode() initialize local var.
11277
11278 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11279
11280         * reflection.c: sort custom attributes table.
11281
11282 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11283
11284         * reflection.c: support named args in custom attributes (write support).
11285
11286 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
11287
11288         * reflection.c: fix finally position calculation.
11289
11290 2002-05-15  Radek Doulik  <rodo@ximian.com>
11291
11292         * reflection.c: fixed endianess at many places
11293
11294         * icall.c (ves_icall_InitializeArray): comment out debug msg
11295
11296 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
11297
11298         * object.c (mono_unhandled_exception): new function to handle
11299         unhandled exceptions.
11300         (mono_unhandled_exception): call the UnhandledException event.
11301         (mono_runtime_delegate_invoke): impl.
11302
11303 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
11304
11305         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
11306         returns the RVA, not the direct pointer to the data. Handle the case
11307         when the class size is fixed.
11308
11309 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
11310
11311         * reflection.c: fix some endianess issues.
11312
11313 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
11314
11315         * object.c (mono_runtime_invoke): is now able to catch exceptions.
11316
11317         * threads.c (mono_thread_init): added a callback which is invoked
11318         at thread start.
11319
11320 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11321         
11322         * icall.c: make GetHashCode return non-negative values.
11323
11324 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
11325
11326         * object.c, icall.c, gc.c: revert to address-based hashcode.
11327
11328 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
11329
11330         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
11331
11332 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11333
11334         * icall.c, class.c: special case <Module>.
11335
11336 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
11337
11338         * icall.c: fix bug in GetNow().
11339
11340 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
11341
11342         * object.c (mono_runtime_class_init): make sure that we call all
11343         static class constructors.
11344
11345 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11346
11347         * reflection.c: sort methodsemantics table.
11348
11349 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
11350
11351         * reflection.h, reflection.c: honour init locals setting.
11352
11353 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
11354
11355         * icall.c: copied Double ToStringImpl for Single ToStringImpl
11356
11357 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11358
11359         * reflection.c: support ContructorBuilders in attribute blob creation.
11360
11361 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11362
11363         * reflection.c: some changes to build a binary that can be run
11364         directly in windows.
11365
11366 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11367
11368         * loader.c: print a big message when an icall can't be found.
11369
11370 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11371
11372         * string-icalls.c: fix bug 24248.
11373
11374 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
11375
11376         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
11377         icall.c, reflection.h: separate assembly loading by pathname and by
11378         assembly name. Use the MONO_PATH env var to search for assemblies.
11379
11380 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11381
11382         * assembly.c, image.h: add some support for assemblies
11383         with multiple modules.
11384         * class.c, class.h: export mono_class_from_typeref().
11385         * loader.c: remove duplicated code and use mono_class_from_typeref(),
11386         instead.
11387
11388 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11389
11390         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
11391         documentation says (the ECMA one is correct).
11392
11393 2002-05-02  Dick Porter  <dick@ximian.com>
11394
11395         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
11396         Don't name the synchronisation mutex.
11397
11398 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
11399
11400         * rand.c
11401         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
11402         Make the prototypes match.
11403         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
11404         Same.
11405
11406         * icall.c
11407         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
11408         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
11409         all systems have tm.tm_zone, so use strftime() with %Z to print
11410         the timezone abreviation into a temp string.
11411
11412         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
11413         rather than mono_array_addr() on a MonoString on Big Endian
11414         machines.
11415
11416 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
11417
11418         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
11419         fix bug 24041
11420
11421 2002-04-30  Dick Porter  <dick@ximian.com>
11422
11423         * socket-io.c: Cope with SOCKET being an integer rather than a
11424         pointer now.
11425
11426         * threads.c: Added Thread_free_internal, to deal with thread
11427         handle cleanup.  Moved calls to handle_store() and handle_remove()
11428         to start_wrapper(), so each can only be called once.  Allocate
11429         synchronisation blocks with GC_malloc(), and use GC finalisation
11430         to close the handles.
11431
11432         * icall.c: added System.Threading.Thread::Thread_free_internal
11433
11434 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11435
11436         * icall.c: support Environment.Exit, CommandLineArgs().
11437
11438 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
11439
11440         * object.c, object.h: added mono_runtime_run_main () and
11441         mono_runtime_get_main_args () for use in System.Environment.
11442
11443 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11444
11445         * gc.c: fix thinko, enable actual finalization since the jit is now
11446         fixed.
11447
11448 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11449
11450         * gc.c, object.c: take into account that an object may be offset wrt the address
11451         returned by GC_malloc().
11452
11453 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11454
11455         * image.c: handle files without entries in the assembly table (modules).
11456
11457 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
11458
11459         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
11460         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
11461         allowed to be null when it's System.Object class setup.
11462
11463 2002-04-27  Martin Baulig  <martin@gnome.org>
11464
11465         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
11466         if `tb->parent == NULL' rather than crashing.
11467
11468 2002-04-28  Nick Drochak  <ndrochak@gol.com>
11469
11470         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
11471         calling acos() where asin() should have been called.
11472
11473 2002-04-26  Martin Baulig  <martin@gnome.org>
11474
11475         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
11476         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
11477         there's a subdirectory called `System', but we don't want to read that
11478         subdirectory as an assembly.
11479
11480 2002-04-25  Martin Baulig  <martin@gnome.org>
11481
11482         * debug-symfile.c: Reflect latest MonoString changes.
11483
11484 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11485
11486         * rand.c, rand.h: instance method icalls need to have an explicit
11487         this pointer as first argument in the C implementation.
11488
11489 2002-04-25  Nick Drochak <ndrochak@gol.com>
11490
11491         * icall.c: Fix typo in map for GetNonZeroBytes
11492
11493 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11494
11495         * string-icalls.c : String does now passes unit tests without any 
11496         errors, the following changes has been made:
11497         
11498         Implemented replace methods.
11499         Renaming of methods to (try) follow the standard.
11500         Fixed compare ordinal
11501         Made all memory allocated directly to function instead of via icall function.
11502         Small performance fix in is_in_array function
11503                         
11504  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
11505
11506         c (mono_string_Internal_ctor_charp_int_int):
11507         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
11508         sindex < 0, throw ArgumentOutOfRangeException instead of
11509         ArgumentNullException.
11510
11511         Added new check for length == 0, however
11512         I need to make it return String.Empty from the C code.
11513         
11514         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
11515         that calculate the length for us here.
11516         
11517         (mono_string_Internal_ctor_sbytep_int_int): Replaced
11518         mono_string_new_utf16 with mono_string_new, since value is utf8.
11519
11520 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11521
11522         * object.c: register the object for finalization if needed.
11523         Allocate one more char in the string for the terminating 0 char.
11524
11525 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
11526
11527         * class.c, class.h, image.c: check if a type implemenst a destructor.
11528         Use the proper key for array class lookups.
11529         * icall.c: register the icalls in the System.GC class.
11530         * gc.c, gc.h: GC-related functions and icalls.
11531
11532 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11533
11534         * icall.c:
11535         * socket-io.c:
11536         * unicode.c: free some strings gotten from mono_string_to_utf8 and
11537         changed a couple of free () by g_free ().
11538
11539         * decimal.c: one-liner in the comments for decimal2string ().
11540
11541 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11542
11543         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
11544
11545 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
11546
11547         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
11548         * object.c (mono_runtime_invoke_array) : handle null in params
11549
11550 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11551
11552         * string-icalls.c: fixed bug in split (one off bug)
11553
11554 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11555
11556         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
11557         * icalls.c: added String::Equals as internal method
11558
11559 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
11560
11561         * threads.c: fixed bug in the double interlocked functions
11562
11563 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
11564
11565         * threads.c: implemented all of the new interlocked icalls.
11566         * string-icalls.c: fix a bug in insert.
11567         * icalls.c: added the icalls for interlocked, removed old string functions.
11568         
11569 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11570
11571         * loader.c: fix off-by-one error when reading argument names.
11572
11573 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11574
11575         * profiler.c: win32 counter implementation (untested).
11576         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
11577         (the latter needs testing and more complete impl. from win32 folks).
11578
11579 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
11580
11581         * object.c: mono_array_new_full workaround mono_array_class_get
11582         problem.
11583
11584 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11585
11586         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
11587         * object.h (mono_string_chars): Changed casting type.
11588
11589 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11590
11591         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
11592                            method signatures to use gunichar2 instead of gint16.
11593
11594 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
11595
11596         * object.h, object.c: domain-specific versions of mono_object_new and
11597         mono_array_new.
11598
11599 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
11600
11601         * object.c: changed String layout
11602
11603         * string-icalls.c (mono_string_Internal_ctor_chara): added
11604         internal string constructors.
11605
11606 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
11607
11608         * threads.c: pass 'this' to the thread start routine.
11609
11610 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11611
11612         * string-icalls.c: fix IndexOf and LastIndexOf. Now
11613         InternalCompareStr don't call twice mono_string_cmp_char for the last
11614         character. Improved performance in mono_string_cmp_char.
11615
11616 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
11617
11618         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
11619         code into its own library: libmonoruntime.
11620
11621 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
11622
11623         * object.h, object.c: changed array format so that szarrays do not
11624         require a bounds structure.
11625         * icall.c, appdomain.c: support for new szarray format.
11626
11627 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
11628
11629         * metadata.c: compare also the retuns type when comparing signatures:
11630         we didn't do this as an optimization since really overloaded methods
11631         must differ also in the arguments, but this doesn't work with
11632         low-level IL code (or when using explicit conversion operators: see
11633         bug#23498 for an example).
11634
11635 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
11636
11637         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
11638
11639 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
11640
11641         * icall.c: make MonoType::GetElementType its own icall.
11642
11643 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
11644
11645         * icall.c: remove MonoMethod_get_Name().
11646         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
11647         object.
11648
11649 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11650
11651         * string-icalls.c: optimized a few methods.
11652
11653 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
11654
11655         * icall.c: added all new string internal calls
11656         * string-icalls.c: added, new string internal call implementation.
11657         * object.c: added mono_string_new_size for allocating a string a size
11658
11659 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
11660
11661         * object.c (mono_object_isinst): use the same code as in the
11662         optimized x86 version.
11663
11664 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
11665
11666         * profiler.c: TSC-based timer code (faster and more accurate).
11667         Not hooked up in configure, yet (set USE_X86TSC to 1).
11668
11669 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
11670
11671         * profiler.c, profiler.h: track time spent compiling methods.
11672         * threads.c: track thread creation/destruction.
11673
11674 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
11675
11676         * profiler.c, profiler.h, profiler-private.h: profiling interface
11677         and sample implementation. Moved here so that it can be used also by
11678         the jit.
11679
11680 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
11681
11682         * reflection.c, reflection.h: keep types and other handles separate in
11683         the hash tables for referred tokens. Add guid for modules.
11684
11685 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
11686
11687         * assembly.c: fix bugs found with valgrind.
11688         * metadata.h, metadata.c: added mono_metadata_guid_heap().
11689
11690 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
11691
11692         * threads: added icall support for getting current domain for
11693                    the thread.
11694  
11695 2002-04-13  Martin Baulig  <martin@gnome.org>
11696
11697         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
11698         (MonoDebugVarInfo): Added `index' field for register based addresses.
11699         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
11700         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
11701         `MonoDebugVarInfo *params' and `guint32 this_offset' with
11702         `MonoDebugVarInfo *this_var'.
11703
11704         * debug-symfile.c (relocate_variable): New static function to write
11705         a location description for a local variable or method parameter.
11706
11707 2002-04-12  Martin Baulig  <martin@gnome.org>
11708
11709         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
11710         stack offset and begin/end scope address of a local variable.
11711         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
11712         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
11713         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
11714
11715         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
11716         Added new relocation types for start/end scope of a local variable.
11717
11718 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
11719
11720         * object.h: add mono_object_domain() macro.
11721         * reflection.c: handle typespecs.
11722         * icall.c: MonoMethod::get_Name() implementation.
11723
11724 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11725
11726         * icall.c: String::GetHashCode() icall implementation.
11727
11728 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11729
11730         * icall.c: String::IndexOfAny icall.
11731         * object.c, object.h: make array->max_length more useful.
11732         Intrduced mono_object_class() and mono_string_length() macros.
11733
11734 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11735
11736         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
11737         instead of g_unichar_isdigit.
11738
11739 2002-04-11  Nick Drochak  <ndrochak@gol.com>
11740
11741         * icall.c: Implement a simple Double.ToString().
11742
11743 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11744
11745         * appdomain.h: only io-layer.h is supposed to be included.
11746         * icall.c: explicitly import environ. Fix warning.
11747
11748 2002-04-10  Nick Drochak  <ndrochak@gol.com>
11749
11750         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
11751                 return true even if it's not Daylight Savings time.
11752                 Only return false for the case where the function isn't
11753                 implemented for a plaform (read Windows).
11754
11755 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11756
11757         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
11758         data with a mutex.
11759
11760 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
11761
11762         * mempool.c (mono_mempool_alloc): only use g_malloc when
11763         absolutely necessary.
11764
11765 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11766
11767         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
11768
11769         * class.c (mono_class_vtable): use domain mempool to allocate vtable
11770         (mono_class_proxy_vtable): use domain mempool
11771
11772 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
11773
11774         * appdomain.h, appdomain.c: split initialization that requires the
11775         execution engine support into mono_runtime_init().
11776
11777 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
11778
11779         * class.c (mono_class_init): don't include vtable inside MonoClass
11780         to save some memory, gather some statistics.
11781         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
11782
11783 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11784
11785         * icall.c: internalcall implementation for ValueType.Equals().
11786
11787 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
11788
11789         * object.c (mono_message_init): moved 
11790         (mono_runtime_exec_main): new arch. independent impl.
11791         (mono_runtime_invoke_array): new method - like
11792         mono_runtime_invoke, but you can pass an array of objects.
11793         (mono_remoting_invoke): new arch. independent impl.
11794         (mono_message_invoke): new arch. independent impl.
11795         (mono_runtime_class_init): new arch. independent impl.
11796         (mono_runtime_object_init): new arch. independent impl.
11797
11798 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
11799
11800         * metadata.c, object.c, reflection.c: documented the exported
11801         functions.
11802
11803 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11804
11805         * icall.c: simpler code to pass the assembly builder data to corlib.
11806         Implement GetNestedTypes() internalcall.
11807
11808 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
11809
11810         * class.c: warn if a type can't be loaded.
11811
11812 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
11813
11814         * image.h: typedef MonoImageOpenStatus
11815         * types.h: removed unused file
11816         
11817 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
11818
11819         * icall.c: Enum_ToObject accepts enum value arguments.
11820
11821 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
11822
11823         * class.c: move initialization of properties, events and nested
11824         classes, so that they happen for interfaces, too.
11825
11826 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
11827
11828         * icall.c: cleanup some ugly casts in Array_SetValue*.
11829
11830 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
11831
11832         * icall.c: the values array fro enums is of the correct type, now.
11833         Implement (correctly) getFullName instead of assQualifiedName for
11834         MonoType.
11835         * reflection.h, reflection.c: added mono_type_get_name ().
11836
11837 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
11838
11839         * assembly.c, image.h: for each MonoImage, record from wich assembly
11840         it was loaded.
11841         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
11842         Make Type.Assembly work.
11843
11844 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
11845
11846         * debug-symfile.h: use char* instead of gpointer to avoid
11847         unnecessary casts.
11848
11849         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
11850
11851         * icall.c (ves_icall_InternalExecute): impl. FielSetter
11852         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
11853
11854 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
11855
11856         * icall.c (mono_message_init): impl. (code cleanup)
11857         (ves_icall_InternalExecute): impl. FieldGetter
11858
11859         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
11860         defined we call all (non-static)methods through the vtable. 
11861
11862 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
11863
11864         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
11865         finalizer even though the memory is still referenced (and the chunk of
11866         memory is not freed).
11867
11868 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
11869
11870         * assembly.c: fix brokeness.
11871
11872 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
11873
11874         * class.c: kill some warnings. Check explicit interface method
11875         implementation also without considering the namespace.
11876         Load also literal strings in static class data.
11877
11878 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
11879
11880         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
11881         (default_assembly_name_resolver): Make the resolver take the
11882         "base" directory where the assembly was originally defined, so we
11883         can load DLLs that are in the same directory as the assembly that
11884         is being referenced.
11885
11886 2002-03-28  Dick Porter  <dick@ximian.com>
11887
11888         * file-io.h: 
11889         * file-io.c:
11890         * socket-io.c: 
11891         * unicode.h: 
11892         * unicode.c: Warning cleanups
11893
11894 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
11895
11896         * object.h, reflection.h: use the correct type instead of MonoObject.
11897
11898 2002-03-28  Martin Baulig  <martin@gnome.org>
11899
11900         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
11901         (mono_debug_update_symbol_file): Initialize classes if necessary.
11902
11903 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
11904
11905         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
11906         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
11907
11908 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
11909
11910         * assembly.h: fix function prototype.
11911         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
11912         * mono-endian.h: use const cast.
11913
11914 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11915
11916         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
11917
11918 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
11919
11920         * loader.c: don't assert when a typeref can't be loaded, give
11921         a chance to the runtime to trow an exception instead.
11922         * loader.h: fix warning.
11923
11924 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
11925
11926         * class.c (mono_class_proxy_vtable): added proxy support
11927
11928 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
11929
11930         * icall.c: removed last of PAL calls, added System.Environment
11931         * file-io.h, file-io.c: MonoIO implementation
11932         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
11933
11934 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
11935
11936         * appdomain.c: do not use the byte marker in ldstr table lookup.
11937         * debug-helpers.c: allow two ':' to separate class and method name.
11938         * object.c: allocate arrays bounds with the GC, too.
11939         * verify: add a few more checks.
11940
11941 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
11942
11943         * reflection.c: output also literal strings. Allocate parameter data
11944         with GC_malloc() (thanks, Martin, for catching this!).
11945
11946 2002-03-26  Martin Baulig  <martin@gnome.org>
11947
11948         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
11949         include the `this' offset in the `param_offsets'.
11950
11951 2002-03-25  Martin Baulig  <martin@gnome.org>
11952
11953         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
11954         mono_debug_get_class() function to get the classes. Added new
11955         relocation types for arrays and strings.
11956         (mono_debug_get_class): New static function to search in all
11957         referenced assemblies for a metadata token.
11958
11959         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
11960
11961 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11962
11963         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
11964         hold gc-allocated objects. Make the string heap a stream like the
11965         others. Removed duplicated code when writing stream info.
11966         Added asserts to catch possible buffer overflows. Set the sorted map
11967         for tables that need sorting. Added some documentation.
11968
11969 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
11970
11971         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
11972         for interned strings and vtables.
11973
11974 2002-03-24  Martin Baulig  <martin@gnome.org>
11975
11976         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
11977         it in the array since it was created with g_slist_prepend().
11978
11979 2002-03-24  Martin Baulig  <martin@gnome.org>
11980
11981         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
11982         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
11983         (mono_debug_method_from_token): Renamed to
11984         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
11985         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
11986
11987         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
11988         relocation types.
11989
11990         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
11991
11992 2002-03-24  Martin Baulig  <martin@gnome.org>
11993
11994         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
11995         (mono_debug_method_from_token): New func.
11996
11997         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
11998         New interncall, calls mono_debug_local_type_from_signature().
11999         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
12000         calls mono_debug_method_from_token().
12001
12002 2002-03-23  Martin Baulig  <martin@gnome.org>
12003
12004         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
12005         specifies the number of bytes to be converted, not the array size.
12006         Return the number of chars, not the number of bytes.
12007         (ves_icall_iconv_get_chars): The `byteCount' argument
12008         specifies the number of bytes to be converted, not the array size.
12009
12010 2002-03-23  Martin Baulig  <martin@gnome.org>
12011
12012         * reflection.h (MonoReflectionSigHelper): New type.
12013
12014         * reflection.c (mono_reflection_sighelper_get_signature_local),
12015         (mono_reflection_sighelper_get_signature_local): New functions.
12016
12017         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
12018         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
12019         interncalls.
12020
12021 2002-03-23  Martin Baulig  <martin@gnome.org>
12022
12023         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
12024         is_writeable is set.
12025         (mono_raw_buffer_update): New function to write the modified map
12026         back to disk.
12027
12028         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
12029
12030         * debug-symfile.c (mono_debug_update_symbol_file): Call
12031         mono_raw_buffer_update() when done writing.
12032
12033 2002-03-23  Martin Baulig  <martin@gnome.org>
12034
12035         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
12036
12037         * debug-symfile.c: Added support for arguments and local variables.
12038
12039 2002-03-23  Dick Porter  <dick@ximian.com>
12040
12041         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
12042         protected by ifdefs, hence breaking the w32 build.
12043
12044 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12045
12046         * object.c: implement is_interned() the right way.
12047
12048 2002-03-21  Martin Baulig  <martin@gnome.org>
12049
12050         * debug-symfile.[ch]: New files to handle debugging information
12051         files. There's also support to dynamically update these symbol
12052         files to include machine dependent information.
12053
12054 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
12055
12056         * threads.c (mono_thread_create): new function to create thread
12057         from C
12058
12059 2002-03-20  Martin Baulig  <martin@gnome.org>
12060
12061         * icall.c (ves_icall_InternalInvoke): Create a new object if the
12062         method is a constructor.
12063         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
12064         points to ves_icall_InternalInvoke().
12065
12066 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
12067
12068         * file-io.c: Flush shouldn't throw exceptions.
12069
12070 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
12071
12072         * file-io.c: FileStream flush support; FileSetLength now
12073         restores file pointer.
12074
12075 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12076
12077         * class.c: set image for pointer classes.
12078
12079 2002/03/19  Nick Drochak <ndrochak@gol.com>
12080
12081         * sysmath.c: Forgot one.
12082
12083 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
12084
12085         * sysmath.c: Avoid redefining existing names.
12086
12087 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
12088
12089         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
12090         handled by runtime as icall rather than dllimport from libm.so
12091         * file-io.c, file-io.h: fixed handle argument type.
12092
12093 2002-03-18  Dick Porter  <dick@ximian.com>
12094
12095         * reflection.c (mono_image_get_type_info): rename interface to
12096         iface, because of "#define interface struct" on windows.
12097
12098 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
12099
12100         * class.c, class.h: rename and export mono_ptr_class_get().
12101         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
12102         * reflection.c, reflection.h, icall.c: better/saner type name
12103         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
12104         method signatures.
12105
12106 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
12107
12108         * class.c (mono_class_init): removed hardcoded GHC_SLOT
12109
12110         * icall.c (ves_icall_InternalInvoke): impl.
12111
12112 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12113
12114         * reflection.c: output the interface map table, too.
12115
12116 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12117
12118         * class.c (class_compute_field_layout): separate computation of 
12119         static field layout
12120
12121 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
12122
12123         * icall.c: added System.Buffer support.
12124         * file-io.c: moved file icalls from PAL to FileStream.
12125
12126 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
12127
12128         * icall.c (ves_icall_System_Object_GetHashCode): impl.
12129
12130 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
12131
12132         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
12133
12134 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12135
12136         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
12137
12138 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12139
12140         * debug-helpers.{c,h}: moved here from monograph some useful functions
12141         to locate a method by name/signature in a class or image. Included
12142         also a small and flexible IL disassembler.
12143
12144 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12145
12146         * reflection.c: fixup tokens in methods with small header size, too.
12147
12148 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
12149
12150         * object.c (mono_string_to_utf8): remove assert(!error), instead
12151         print a warning. 
12152
12153 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
12154
12155         * icall.c: update to the new mono_Array_class_get interface.
12156
12157 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12158
12159         * appdomain.c, object.c: Boehm-GC enable.
12160         * icall.c: make get_data_chunk() support split data requests.
12161         Ensure a class is initialized in more cases. Return only the first
12162         property found in GetProperties() or the compiler gets confused. 
12163         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
12164         * reflection.h, reflection.c: add fixup mechanism for field and method
12165         tokens. Initialize assembly->typeref in a single place. Output
12166         properties after events. Support custom attributes for events, too.
12167         Typo fix for paramter custom attrs.
12168
12169 2002-03-07  Martin Baulig  <martin@gnome.org>
12170
12171         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
12172
12173 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
12174
12175         * class.c (mono_array_class_get): fix. for multi. dim. arrays
12176
12177 2002-03-06  Martin Baulig  <martin@gnome.org>
12178
12179         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
12180         non-zero lower bounds. See testcases #F10-#F13.
12181
12182 2002-03-05  Martin Baulig  <martin@gnome.org>
12183
12184         * exception.c (mono_get_exception_argument_out_of_range): New exception.
12185
12186         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
12187         ves_icall_System_Array_GetValue(), only calculate the absolute array position
12188         here.
12189         (ves_icall_System_Array_SetValue): Likewise.
12190         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
12191         as argument and does the actual work. This function is used when copying a
12192         multi-dimensional array.
12193         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
12194         now do all the widening conversions of value types.
12195         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
12196
12197 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12198
12199         * class.c: remove some magic numbers and use the smbolic names,
12200         instead. Added init_events() to load event info at class init time.
12201         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
12202         and mono_metadata_methods_from_event().
12203         * reflection.h, reflection.c: added support for writing out the evnets
12204         related information.
12205
12206 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
12207
12208         * reflection.h, icall.c: use a different method (GetInterfaces)
12209         to gather interface info and add isbyref, isprimitive and
12210         ispointer to the ves_icall_get_type_info() return value.
12211
12212 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
12213
12214         * class.h: stared adding support for events.
12215         * icall.c: split find_members implementation. Added debug icall to get
12216         the address of an object.
12217         * reflection.c: handle TypeBuilders in mono_type_get_object().
12218
12219 2002-03-01  Martin Baulig  <martin@gnome.org>
12220
12221         * icall.c (ves_icall_System_Array_GetLength): This must throw an
12222         ArgumentOutOfRangeException(), not an ArgumentException().
12223         (ves_icall_System_Array_GetLowerBound): Likewise.
12224         (ves_icall_System_Array_GetValue): Improved argument checking.
12225         (ves_icall_System_Array_SetValue): Improved argument checking.
12226
12227 2002-03-01  Martin Baulig  <martin@gnome.org>
12228
12229         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
12230         called with invalid arguments rather than just dying with g_assert().
12231         (ves_icall_System_Array_SetValue): Likewise.
12232         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
12233         raise a NotImplementedException instead.
12234         (ves_icall_System_Array_GetLength): Added argument checking.
12235         (ves_icall_System_Array_GetLowerBound): Added argument checking.
12236
12237 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
12238
12239         * object.h (mono_assert): new macros mono_assert and
12240         mono_assert_not_reached
12241
12242 2002-02-28  Martin Baulig  <martin@gnome.org>
12243
12244         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
12245         and "System::String::IsInterned" to "System::String::_IsInterned".
12246
12247 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
12248
12249         * icall.c: remove hacks for typebuilder. Added icall to create a
12250         modified type from a tybebuilder.
12251         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
12252         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
12253         to create a backing MonoClass for a TypeBuilder.
12254
12255 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12256
12257         * class.c, class.h: more refactoring of class init.
12258         Export mono_class_setup_mono_type() and mono_class_setup_parent().
12259
12260 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
12261
12262         * marshal.c, marshal.h: start of marshaling interface.
12263
12264 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12265
12266         * icall.c: fix order in assembly qualified name icall.
12267
12268 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12269
12270         * class.c: do not free str, since we store it in the hash table.
12271         * reflection.h: add label field to MonoILExceptionInfo.
12272         * reflection.c: handle references to more than one assembly. Handle
12273         case when there isn't a module created in the assembly.
12274
12275 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
12276
12277         * class.c: Fix typo. Start refactoring of class init code.
12278
12279 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
12280
12281         * appdomain.c: exit with 1 on error.
12282         * class.c: we already have the name in MonoClassField.
12283         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
12284         MonoStreamHeader instead of an offset of image->raw_metadata.
12285
12286 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
12287
12288         * appdomain.c (mono_init): Be even more descriptive about the error.
12289
12290 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
12291
12292         * appdomain.c: give the user an informative message when corlib can't
12293         be loaded.
12294
12295 2002-02-26  Martin Baulig  <martin@gnome.org>
12296
12297         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12298         New icall to get the time zone data.
12299
12300 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12301
12302         * reflection.c: set virtual and raw size of section correctly.
12303         * threads.c: transfer domain information to newly created threads.
12304
12305 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12306
12307         * class.c: when instancing a class in a domain, load the default
12308         vaules for static fields from the constant table. Fix System.Enum to
12309         not be an enum.
12310         * icall.c: implement Object::GetType() internalcall. Implemented
12311         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
12312         Fixed checking of binding flags in find_members().
12313         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
12314         * reflection.c: handle enumerations when writing to the constant
12315         table. Use a different object cache for types.
12316
12317
12318 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
12319
12320         * object.c (mono_object_isinst): fix for arrays
12321
12322         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
12323
12324 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12325
12326         * object.c: don't use mprotect ()  and fix intern pool hash table
12327         lookup for big endian systems.
12328
12329 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12330
12331         * icall.c: change type_is_subtype_of () signature.
12332
12333 2002-02-21  Mark Crichton  <crichton@gimp.org>
12334
12335         * rand.c, rand.h: Added random number generator for
12336         System.Security.Cryptography classes.
12337
12338         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
12339
12340         * icall.c: Added System.Security.Cryptography calls.
12341
12342 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
12343
12344         * class.c, icall.c, metadata.c: better support for pointer types.
12345         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
12346         * reflection.c: Add support for getting custom attrs for properties
12347         and simplify some code.
12348
12349 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
12350
12351         * icall.c: change getToken () and add custom attribute GetBlob()helper
12352         method.
12353         * reflection.h: add custom attrs array to the reflection builder structures.
12354         * reflection.c: encode and emit custom attributes for all the relevant
12355         reflection objects. Cache fieldref and methodref tokens. Change
12356         mono_image_create_token() interface to take a MonoDynamicAssembly.
12357         More complete custom attributes decoder. Load custom attributes for
12358         Assembly, Field, Method and Constructor objects, too. Make the
12359         returned array an Attribute[] one, not object[]. Added
12360         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
12361         custom attribute constructor.
12362
12363 2002-02-20  Dick Porter  <dick@ximian.com>
12364
12365         * icall.c:
12366         * rawbuffer.c:
12367         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
12368         problem code out for now).
12369
12370 2002-02-19  Radek Doulik  <rodo@ximian.com>
12371
12372         * object.c (mono_ldstr): use hash table to avoid multiple swapping
12373
12374 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
12375
12376         * icall.c: register the GetCustomAttributes method.
12377         * object.c, object.h: add mono_string_new_len ().
12378         * reflection.h, reflection.c: added mono_runtime_invoke(),
12379         mono_install_runtime_invoke(). Added
12380         mono_reflection_get_custom_attrs () to load custom attributes and
12381         create the attribute objects.
12382
12383 2002-02-19  Dick Porter  <dick@ximian.com>
12384         * threads-dummy-types.c:
12385         * threads-dummy-types.h:
12386         * threads-dummy.c:
12387         * threads-dummy.h:
12388         * threads-pthread-types.c:
12389         * threads-pthread-types.h:
12390         * threads-pthread.c:
12391         * threads-pthread.h:  Deleted obsolete files
12392
12393 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
12394
12395         * class.c (mono_class_vtable): runtime init the class when we
12396         allocate static class data.
12397
12398         * icall.c (ves_icall_System_Array_SetValue): check for null values.
12399
12400         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
12401         and String - but we will need generic marshalling support in the
12402         future. 
12403         (mono_init): set the domain name in a ms compatible way
12404
12405         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
12406         String[].
12407
12408 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
12409
12410         * object.c (mono_array_clone): use alloca() instead of g_malloc  
12411         for sizes
12412
12413         * appdomain.c (mono_domain_unload): impl.
12414
12415 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12416
12417         * appdomain.c, object.c: fix intern pool implementation.
12418         * class.c: fix alignment code.
12419
12420 2002-02-16  Radek Doulik  <rodo@ximian.com>
12421
12422         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
12423         and s2 > s1, just copy lower bytes to be compatible with little
12424         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
12425         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
12426
12427         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
12428         force big_endian to be 1 for big endian machines 
12429         (ves_icall_iconv_new_decoder): ditto
12430
12431 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
12432
12433         * socket-io.c (convert_sockopt_level_and_name): If the system
12434         doesn't define SOL_IP or SOL_TCP, get them by hand using
12435         getprotobyname() and caching the values (because this could be a
12436         slow operation).
12437         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
12438         Use the appropriate struct when the system does support it. Ie,
12439         not all systems have struct ip_mreqn so use struct ip_mreq when
12440         appropriate.
12441
12442 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
12443
12444         * reflection.c: handle finally clauses.
12445
12446 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
12447
12448         * socket-io.c: use g_snprintf() instead of snprintf.
12449
12450 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12451
12452         * reflection.c (mono_param_get_objects): Cast second argument to
12453         mono_method_get_param_names to a const char** to silence the
12454         compiler warning.
12455
12456         * appdomain.c (mono_domain_assembly_open): Put parens around the
12457         truth statement in the for-loop.
12458
12459         * unicode.c (iconv_convert): Got rid of a compiler warning about
12460         int i being unused when the system has a new iconv.
12461         (iconv_get_length): Same.
12462
12463         * image.c (load_class_names): Cast the second argument to
12464         g_hash_table_insert() to char* to hush compiler warnings about the
12465         arg being a const.
12466         (mono_image_open): Same here.
12467
12468         * socket-io.c: Don't conditionally include sys/filio.h or
12469         sys/sockio.h here anymore since we now get them from
12470         io-layer/io-layer.h
12471         (inet_pton): If the system doesn't support inet_aton, implement
12472         using inet_addr and also #define INADDR_NONE if it isn't defined
12473         by the system.
12474
12475 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
12476
12477         * metadata.c, metadata.h: added function to get packing and size info
12478         of a typedef.
12479         * reflection.h, reflection.c: handle field RVA data. Save info about
12480         the table layout if needed. Assign typedef indexes to all the types
12481         before dumping the info about them to avoid forward reference problems.
12482
12483 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
12484
12485         * socket-io.c (convert_sockopt_level_and_name): ifdef
12486         SO_ACCEPTCONN because it is not defined on my system (old debian)
12487
12488 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
12489
12490         * opcode.c: use stddef.h to get NULL.
12491
12492 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
12493
12494         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
12495         for FIONBIO, FIONREAD and SIOCATMARK.
12496         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
12497         define INADDR_NONE and besides, inet_addr() is deprecated and
12498         should not be used. Use inet_pton() instead - it also has the
12499         added bonus that it can easily handle IPv6 addresses as well.
12500         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
12501
12502 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
12503
12504         * decimal.c: remove _MSC_VER conditional.
12505
12506 2002-02-13  Dick Porter  <dick@ximian.com>
12507
12508         * socket-io.c: 
12509         * icall.c: Internal calls for Blocking, Select, Shutdown,
12510         GetSocketOption and SetSocketOption
12511
12512 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12513
12514         * assembly.cs: better resolver: use it instead of some kludgy
12515         code.
12516
12517 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
12518
12519         * reflection.c: the best way to speed-up the compiler is to avoid
12520         infinite loops.
12521
12522 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
12523
12524         * class.c (mono_class_vtable): changed the object layout
12525         (obj->vtable->class). 
12526         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
12527
12528 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
12529
12530         * assembly.c: look for assemblies in the assembly dir, too.
12531
12532 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12533
12534         * class.c: fix thinko in mono_class_from_type().
12535
12536 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
12537
12538         * exception.h, exception.c: added TypeLoadException.
12539         * object.h, object.c: added mono_array_clone ().
12540         * icall.c: handle throwOnError in AssemblyGetType().
12541         Added Array.Clone().
12542         * opcode.h, opcode.c: use a single value for the opcode val.
12543         Compile fix for non-gcc compilers.
12544
12545 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
12546
12547         * opcodes.c, opcodes.h: export interesting info about opcodes.
12548
12549 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
12550
12551         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
12552         icalls. 
12553
12554         * class.c (class_compute_field_layout): set element_class for enums
12555         (mono_class_create_from_typedef): set element_class for normal classes
12556
12557         * icall.c (ves_icall_System_Enum_get_value): impl.
12558
12559         * class.c (mono_class_create_from_typedef): do not set valuetype
12560         flag for System.ValueType and System.Enum
12561
12562 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
12563
12564         * unicode.c (iconv_convert): fix big endian problem.
12565
12566 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
12567
12568         * class.c: add asserts if we are ever going to scribble over memory.
12569         * socket-io.c: not all systems have AF_IRDA defined.
12570
12571 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
12572
12573         * class.c (class_compute_field_layout): do not consider static
12574         fields to compute alignment
12575
12576 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
12577
12578         * appdomain.c (mono_appdomain_get): impl.
12579         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
12580
12581 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
12582
12583         * icall.c: ignore "file://" prefix when loading an assembly.
12584
12585 2002-01-23  Dick Porter  <dick@ximian.com>
12586
12587         * socket-io.c:
12588         * icall.c:
12589         * Makefile.am: Added socket support
12590
12591 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12592
12593         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
12594         code back.  This should return the assemblies that are loaded by
12595         the runtime on behalf of an application domain. 
12596
12597         The current implementation is still broken, it just returns every
12598         assembly loaded, but until we get real applications domain this
12599         will do.
12600
12601 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
12602
12603         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
12604         AppDomain object.
12605
12606 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
12607
12608         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
12609         the mono_class_from_name lookup.
12610         (ves_icall_get_parameter_info): ditto.
12611         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
12612         method.
12613         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
12614
12615 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
12616
12617         * class.c: load also nested classes on class init.
12618         System.ValueType instance methods gets passed boxed
12619         values, unless methods in derived classed that get a pointer to the
12620         data.
12621         * icall.c: use better name parsing code in GetType().
12622         * image.c, image.h: add mono_image_loaded ().
12623         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
12624         * reflection.c, reflection.h: added mono_reflection_parse_type().
12625
12626 2002-01-22  Veronica De Santis <veron78@interfree.it>
12627
12628         * icall.c : Added mapping of internal calls for Manual and Auto reset events
12629         * threads.c : Added the implementation of internal calls for events
12630         * threads.h : Added prototypes of internal calls for events
12631         
12632 2002-01-21  Radek Doulik  <rodo@ximian.com>
12633
12634         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
12635
12636 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
12637
12638         * class.c (mono_class_init): set min_align to 1 (instead of 0)
12639         (mono_class_value_size): use min_align
12640
12641 2002-01-20  Dick Porter  <dick@ximian.com>
12642
12643         * threads.h:
12644         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
12645         so it compiles on w32.
12646
12647 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
12648
12649         * metadata.c (mono_type_stack_size): impl.
12650
12651         * class.c (mono_class_get_field): impl. memberref token
12652
12653 2002-01-16 Veronica De Santis <veron78@@interfree.it>
12654
12655         * icall.h : Added the internal calls mapping for CreateMutex_internal
12656                     and ReleaseMutex_internal.
12657         * threads.h : Added the prototype of mutexes internal calls.
12658         * threads.c : Added the implementations of mutexes internal calls.
12659
12660 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
12661
12662         * metaparse.h: removed unused file.
12663         * reflection.c, reflection.h: added stream_data_align () function 
12664         to align data in streams and keep stream aligned. Add support for
12665         exception support in method headers.
12666
12667 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
12668
12669         * unicode.c: make iconv_convert () return the number of bytess written
12670         in the output buffer.
12671
12672 2002-01-15  Dick Porter  <dick@ximian.com>
12673         * threads.c: Make the runtime's idea of infinite timeouts coincide
12674         with the class library's
12675
12676         Fix a particularly egregious bug in mono_thread_cleanup(). That
12677         code was so utterly bogus it must have been written on a Monday.
12678
12679 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
12680
12681         * reflection.h: add subtypes field to TypeBuilder.
12682         * reflection.c: encode constants for literal fields.
12683         Handle subtypes. Fix user string token (and add a zero byte)
12684         at the end.
12685         
12686 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
12687
12688         * class.c (mono_class_init): bug fix: assign slot numbers for
12689         abstract methods.
12690
12691 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
12692
12693         * reflection.c: don't try to output a code RVA for abstract methods.
12694         Small fixes for method header format. Output parameter info to the
12695         ParamDef table. Save method overriding info to MethodImpl table.
12696         Fix property support. Allow typedef.extends to be a type in the
12697         building assembly.
12698         * verify.c: fix off-by-one error.
12699
12700 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
12701
12702         * class.c: fix mono_class_from_mono_type () for szarray types.
12703         Remove unused cache check in mono_class_from_type_spec().
12704         * icall.c: *type_from_name () functions handle simple arrays and byref.
12705         * reflection.c: handle byref and szarray types. Handle methods without
12706         body (gets P/Invoke compilation working). Handle types and fields in
12707         get_token ().
12708         * reflection.h: add rank to MonoTypeInfo.
12709
12710 2002-01-10  Dick Porter  <dick@ximian.com>
12711
12712         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
12713         internal calls
12714
12715 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
12716
12717         * icall.c: initialize class in type_from_handle ().
12718         Loop also in parent classes for get_method ().
12719         * reflection.c: properly encode class and valuetype types.
12720         Start on encoding TypeBuilder types. Handle fieldrefs.
12721         Use correct length when registering a user string.
12722         Handle ConstructorBuilder and MonoMethod in get_token ().
12723         Make mono_type_get_object () aware of cached types.
12724         * object.c: back out change to mono_string_new ().
12725
12726 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
12727         * object.c: mono_string_new should return a NULL when the string 
12728         passed in is NULL -- not try to deference it.
12729         
12730 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
12731
12732         * icall.c: hack to make IsSubType work for TypeBuilders.
12733         * reflection.c: emit constructors before methods.
12734         Retrieve param names in mono_param_get_objects().
12735
12736 2002/01/05  Nick Drochak  <ndrochak@gol.com>
12737
12738         * Makefile.am: fix list of headers and sources so automake 1.5
12739         doesn't complain. Removed \# at end of list.
12740
12741 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
12742
12743         * reflection.c: get token for a method ref. Set return type of
12744         constructor to void.
12745         * loader.c: debug message.
12746         * class.c: typo fix.
12747
12748 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
12749
12750         * icall.c: fix array init with rank > 1. FindMembers
12751         loops in parent class as well.
12752         * image.c: do not insert nested types in name cache.
12753         * reflection.c: warning fix.
12754         * reflection.h: add override method (for interface impl).
12755
12756 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
12757
12758         * metadata.c: fix customattr decoding.
12759
12760 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
12761
12762         * rawbuffer.cs: Added native Win32 implementation, avoids using
12763         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
12764
12765 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
12766
12767         * class.c: make the low-level routines handle the cache.
12768
12769 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
12770
12771         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
12772
12773 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
12774
12775         * class.c: fix mono_array_element_size() for objects.
12776         * class.h, class.c: add properties to MonoClass and load them
12777         at init time.
12778         * icall.c: check with isinst() when assigning a value to an array
12779         instead of requiring the classes to match exactly.
12780         Implemented icall for System.Type::GetType().
12781         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
12782         enums. Handle bindingflags when looking for methods and fields.
12783         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
12784         and mono_metadata_methods_from_property().
12785         * reflection.h, reflection.c: added structures for propreties,
12786         parameters and enums. Implemented mono_property_get_object() and
12787         mono_param_get_objects().
12788
12789 2001-12-18  Dick Porter  <dick@ximian.com>
12790
12791         * file-io.c: Use mono_string_to_utf16() instead of
12792         mono_string_chars()
12793
12794         * object.c: Added mono_string_to_utf16(), which copies the non
12795         NULL-terminated MonoString into a new double-null-terminated
12796         buffer.
12797
12798 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
12799
12800         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
12801
12802 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
12803
12804         * file-io.c: raise exceptions if handle is invalid.
12805
12806 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
12807
12808         * assembly.c: yet another check for mscorlib.
12809         * class.c, class.h: load nesting info for classes.
12810         * icall.c: many new functions to support the Reflection classes.
12811         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
12812         * reflection.h, reflection.c: mono_image_create_token(),
12813         mono_assembly_get_object(), mono_type_get_object(),
12814         mono_method_get_object(), mono_field_get_object(): methods to return
12815         objects that parallel the C representation of assemblies, types,
12816         methods, fields.
12817
12818 2001-12-11  Dick Porter  <dick@ximian.com>
12819
12820         * icall.c:
12821         * file-io.c: Internal calls for file IO.
12822
12823 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
12824
12825         * tabledefs.h: missing FileAttributes.
12826         * verify.h, verify.c: use is_valid_string () to simplify and check for
12827         valid strings more correctly. Fix warnings and speeling.
12828         Check more tables: Filed, File, ModuleRef, StandAloneSig.
12829         Check code: branches, maxstack, method calls.
12830
12831 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
12832
12833         * object.c (mono_object_allocate): removed static, so that the jit
12834         can allocate value types.
12835
12836         * icall.c (ves_icall_System_DateTime_GetNow): impl.
12837
12838 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12839
12840         * class.c: init enum types right away and register the
12841         token->MonoClass map in mono_class_create_from_typedef ().
12842         * verify.h, verify.c: first cut of the verifier.
12843         * pedump.c: add --verify switch to verify metadata tables.
12844         * tabledefs.h: add some missing enums.
12845
12846 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
12847
12848         * class.c (mono_install_runtime_class_init): impl.
12849         (mono_class_init): renamed mono_class_metadata_init to
12850         mono_class_init, also removed the metadata_inited flag
12851
12852         * object.c (mono_object_isinst): use faster algorithm
12853
12854 2001-11-30  Radek Doulik  <rodo@ximian.com>
12855
12856         * mono-endian.h: reverted last change
12857         added function prototypes
12858
12859         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
12860         add mono-endian.c back
12861
12862         * mono-endian.c: returned back, as Paolo pointed out, it's needed
12863         for unaligned access, I've mistaked it with endianess. I am
12864         sorry.
12865         (mono_read16): fix reverted endianess
12866         (mono_read64): ditto
12867         (mono_read32): ditto
12868
12869 2001-11-30  Dick Porter  <dick@ximian.com>
12870
12871         * exception.c: Implement mono_exception_from_name()
12872
12873 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
12874
12875         * metadata.h, metadata.c: remove params_size and locals_size and their
12876         calculation from the metadata code: they are only usefult to the
12877         interp.
12878
12879 2001-11-29  Radek Doulik  <rodo@ximian.com>
12880
12881         * object.c (mono_ldstr): swap bytes here, it's probably not the
12882         best place, but works for me now, I'll redo it once I know mono
12883         better, also note that I add PROT_WRITE and don't reset back, also
12884         note that it's only affects big endians, so x86 should be OK
12885
12886         * mono-endian.h (read16): use just glib macros for both endians
12887
12888         * mono-endian.c: removed as glib macros are used in in
12889         mono-endian.h so we don't need to care about endianess for read
12890         macros as glib does that for us already
12891
12892 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
12893
12894         * class.h, class.h: take minimum alignment into consideration so
12895         that the fields of a class remain aligned also when in an array.
12896
12897 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
12898
12899         * loader.h, loader.c: add mono_method_get_param_names().
12900         * class.c: 0-init class fields.
12901
12902 2001-11-26  Dick Porter  <dick@ximian.com>
12903
12904         * icall.c:
12905         * threads-types.h:
12906         * threads.c: New file that handles System.Threading on all platforms
12907
12908         * object.c: 
12909         * object.h: Remove the synchronisation struct from MonoObject,
12910         replace it with a pointer that gets initialised on demand
12911
12912         * Makefile.am: Replace all the system-specific threading code with
12913         a single file that uses the new wrapper library
12914
12915 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
12916
12917         * class.c, class.h: add mono_install_trampoline() so that the runtime
12918         can register a function to create a trampoline: removes the ugly
12919         requirement that a runtime needed to export arch_create_jit_trampoline.
12920         * object.h, object.c: added mono_install_handler() so that the runtime
12921         can install an handler for exceptions generated in C code (with
12922         mono_raise_exception()). Added C struct for System.Delegate.
12923         * pedump.c: removed arch_create_jit_trampoline.
12924         * reflection.c: some cleanups to allow registering user strings and
12925         later getting a token for methodrefs and fieldrefs before the assembly
12926         is built.
12927         * row-indexes.h: updates and fixes from the new ECMA specs.
12928
12929 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
12930
12931         * class.h, class.c: add enum_basetype field to MonoClass.
12932         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
12933         to get index in the constant table reated to a field, param or
12934         property.
12935         * reflection.h, reflection.c: handle constructors. Set public-key and
12936         version number of the built assembly to 0.
12937         * row-indexes.h: update from new ECMA spec.
12938
12939 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
12940
12941         * class.h, class.c: add a max_interface_id to MonoClass.
12942         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
12943         since it's used to do that. Added mono_type_type_from_obj().
12944         Make GetType() return NULL instead of segfaulting if the type was not
12945         found. Handle simple arrays in assQualifiedName.
12946         * object.h: add a struct to represent an Exception.
12947         * reflection.c: output call convention in method signature.
12948         Add code to support P/Invoke methods and fixed offsets for fields.
12949
12950 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
12951
12952         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
12953         the value.
12954         * icall.c: use mono_array_addr instead of array->vector: fixes the
12955         reflection image writing.
12956         * reflection.c: init call convention byte to 0 in method signature.
12957         Encode the property signature. Don't output property-related methods
12958         twice. Really process the properties for a type (don't cast a field to
12959         a property, my mom always told me that).
12960         Fix 64 bit issues in pointer alignment in a different and more
12961         readable way.
12962
12963 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
12964
12965         * loader.h: Removed type class from MonoDefaults, added monotype
12966
12967         * loader.c: Loaded MonoType, removed loading of Type
12968
12969         * icall.c (my_mono_new_object): Now returns a System.MonoType,
12970         and fills in System.Type._impl with a RuntimeTypeHandle rather
12971         than the actual MonoClass *
12972
12973         (ves_icall_type_from_handle): change from type_class to
12974         monotype_class
12975
12976         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
12977         implemented
12978
12979         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
12980         implemented
12981
12982         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
12983
12984         (ves_icall_System_Reflection_Assembly_GetType): implemented
12985
12986         (ves_icall_System_MonoType_assQualifiedName): implemented
12987
12988         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
12989
12990 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
12991
12992         * assembly.c (mono_assembly_open): Implement a cache for the
12993         assemblies. 
12994
12995         (mono_assembly_close): only destroy the assembly when the last
12996         reference is gone.
12997         
12998 2001-11-09  Dick Porter  <dick@ximian.com>
12999
13000         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
13001
13002 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
13003
13004         * class.c (mono_class_metadata_init): bug fix: compute the right slot
13005
13006 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
13007
13008         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
13009         from Martin Weindel.
13010         * object.h: add mono_string_chars ().
13011
13012 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
13013
13014         * reflection.c (build_compressed_metadata): Eliminates warnings
13015         and uses 64-bit clean code.
13016
13017         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
13018         (mono_type_equal): Change signature to eliminate warnings.
13019
13020 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
13021
13022         * icall.c, loader.c: remove the internalcall array constructors.
13023         Changes to match the new MonoArray structure.
13024         * object.h, object.c: an array object doesn't allocate an extra
13025         vector. Add mono_array_new_full () to create jagged arrays easily.
13026
13027 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
13028
13029         * metadata.h, metadata.c: add mono_metadata_field_info () to
13030         retreive all the info about a field from vairous tables.
13031         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
13032         * class.h, class.c: augment MonoClassField with more info.
13033         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
13034         policy and load a field's RVA if needed.
13035
13036 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
13037
13038         * class.c (mono_class_metadata_init): create a trampoline for all
13039         virtual functions instead of actually compiling them.
13040
13041 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
13042
13043         * class.h, class.c: include name in MonoClassField.
13044         * class.c: fix fundamental type of System.Object and System.String.
13045         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
13046         tokens in ldtoken.
13047         * icall.c: remove internalcalls for the Reflection stuff that is now
13048         done in C# code.
13049         * loader.c: mono_field_from_memberref () implementation.
13050         * mono-endian.c: thinko (s/struct/union/g).
13051         * object.c, object.h: make the mono_string_* prototypes actually use
13052         MonoString instead of MonoObject.
13053         * reflection.c, reflection.h: updates for changes in the reflection
13054         code in corlib: we use C structures that map to the actual C# classes.
13055         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
13056         fat method header if needed and use the info from the ILGenerator for
13057         methods. Handle fields in types. Misc fixes.
13058
13059 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
13060
13061         * class.c (mono_class_metadata_init): bug fix: always allocate
13062         space for static class data
13063
13064 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
13065
13066         * class.c (mono_compute_relative_numbering): use relative
13067         numbering to support fast runtime type checks.
13068
13069 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
13070
13071         * class.c (mono_class_create_from_typeref): added debugging output
13072         to print class name when MonoDummy is returned instead of real class
13073
13074 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
13075
13076         * class.c (mono_class_metadata_init): interface offset table now
13077         contains pointers into the vtable - this is more efficient for the jit
13078
13079 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
13080
13081         * class.c (mono_class_metadata_init): use a temporary vtable (the
13082         old algorithm only worked for the interpreter, but not for the jit)
13083
13084 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
13085
13086         * loader.c (method_from_memberref): use mono_class_get to get the
13087         class of an array instead of using System.Array directly.
13088         (mono_get_method): also add MEMBERREF methods to the method cache
13089         which usefull for arrays.
13090
13091 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
13092
13093         * pedump.c (arch_compile_method): added to compute vtable entry
13094
13095         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
13096         number of interfaces.
13097         
13098         * class.h: merged MonoArrayClass into MonoClass
13099
13100         * class.c (mono_class_create_from_typedef): compute the vtable size and
13101         allocate space to include the vtable inside MonoClass
13102         (mono_class_metadata_init): initialize the vtable
13103
13104 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
13105
13106         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
13107         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
13108         * image.c: endian fixes by Laurent Rioux.
13109         * object.h, object.c: rename MonoStringObject to MonoString and
13110         MonoArrayObject to MonoArray. Change some function names to conform to
13111         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
13112         guint16* as first argument, so don't use char*.
13113         Provide macros to do the interesting things on arrays in a portable way.
13114         * threads-pthread.c: updates for the API changes and #include <sched.h>
13115         (required for sched_yield()).
13116         * icall.c: updates for the API changes above.
13117         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
13118         platforms that need them.
13119
13120 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13121
13122         * class.c: set the correct type for all the fundamental
13123         type when loading the class.
13124
13125 2001-10-05  Dick Porter  <dick@ximian.com>
13126
13127         * threads-pthread.c (pthread_mutex_timedlock): Simple
13128         compatibility version for C libraries that lack this call.
13129
13130 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13131
13132         * class.c: MonoTypes stored in MonoClass are stored as
13133         fundamental MonoTypes when the class represents a
13134         fundamental type (System.Int32, ...).
13135         The TypeHandle return by ldtoken is a MonoType*.
13136         * icall.c: ves_icall_get_data_chunk () write out all the
13137         PE/COFF stuff. Implement ves_icall_define_method (),
13138         ves_icall_set_method_body (), ves_icall_type_from_handle ().
13139         * image.c: properly skip unknown streams.
13140         * loader.h, loader.c: add type_class to mono_defaults.
13141         * metadata.c, metadata.h: export compute_size () as
13142         mono_metadata_compute_size () with a better interface.
13143         Typo and C&P fixes.
13144         * pedump.c: don't try to print the entry point RVA if there is no entry point.
13145         * reflection.c, reflection.h: many cleanups, fixes, output method
13146         signatures and headers, typedef and typeref info, compress the metadata
13147         tables, output all the heap streams, cli header etc.
13148         * row-indexes.h: typo fixes.
13149
13150 2001-10-04  Dick Porter  <dick@ximian.com>
13151
13152         * object.h: Add a synchronisation mutex struct to MonoObject
13153
13154         * object.c (mono_new_object): Initialise the object
13155         synchronisation mutexes
13156
13157         * icall.c: System.Threading.Monitor internal calls
13158         
13159         * threads-pthread.h:
13160         * threads-pthread.c: System.Threading.Monitor internal calls
13161
13162         * threads-types.h: New file, includes the system-specific thread
13163         structures
13164         
13165         * threads-pthread-types.h:
13166         * threads-pthread-types.c: New files, handle pthread-specific
13167         synchronisation types
13168
13169         * threads-dummy-types.h: 
13170         * threads-dummy-types.c: New files of dummy support for
13171         thread-specific types
13172
13173         * metadata.c:
13174         * image.c:
13175         * pedump.c: include mono-endian.h not endian.h
13176         
13177         * Makefile.am: More threads files.
13178         Name mono-endian.h not endian.h
13179
13180 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
13181
13182         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
13183         stuff and implement a few more bits.
13184         * icall.c: a field needs to be dereferenced twice. Do not use the same
13185         name for two variables in the same scope.
13186         * image.c, image.h: cleanups.
13187
13188 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
13189
13190         * class.c (mono_class_metadata_init): bug fix: compute the right size
13191
13192 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
13193
13194         * icall.c: implemented some of the Reflection internalcalls.
13195         * image.c, image.h: start writing out the PE/COFF image.
13196         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
13197         that does the reverse than decode_blob_size ().
13198         * object.c: use mono_metadata_encode_value (). Move here
13199         temporary implementation of mono_string_to_utf8 ().
13200         * rawbuffer.c: make malloc_map static.
13201
13202 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13203
13204         * metadata.c: fix type comparison for arrays.
13205         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
13206         Added a couple of new classes to monodefaults.
13207         * icall.c: added a couple of Reflection-related internalcalls.
13208         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
13209         Added a byval_arg MonoType to MonoClass.
13210
13211 2001-09-28  Dick Porter  <dick@ximian.com>
13212
13213         * icall.c:
13214         * threads-pthread.h: 
13215         * threads-pthread.c: Implemented internal calls for
13216         LocalDataStoreSlot operations.  Applied mutexes around all shared
13217         data.  Reworked the thread creation and Start() operations to
13218         avoid a race condition.
13219         
13220         * threads-dummy.h:
13221         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
13222
13223 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
13224
13225         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
13226
13227 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
13228
13229         * class.c, loader.c: warn and return NULL instead of erroring out.
13230         * icall.c: added System.AppDomain::getCurDomain().
13231         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
13232
13233 2001-09-25  Dick Porter  <dick@ximian.com>
13234
13235         * threads-pthread.h:
13236         * threads-pthread.c: Implemented timed thread joining and added
13237         System.Threading.Thread::Join_internal internal call
13238
13239         * icall.c: Added System.Threading.Thread::Join_internal internal call
13240
13241         * threads-dummy.h:
13242         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
13243
13244 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
13245
13246         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
13247         mono_string_intern () to implement the semantics of the ldstr opcode
13248         and the interning of System.Strings.
13249         * icall.c: provide hooks to make String::IsIntern and String::Intern
13250         internalcalls.
13251
13252 2001-09-23  Dick Porter  <dick@ximian.com>
13253
13254         * threads-dummy.c: 
13255         * threads-dummy.h: New files of dummy threading routines
13256
13257         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
13258         support code based on system specifics
13259
13260         Rename PTHREAD_LIBS to THREAD_LIBS
13261         
13262 2001-09-23  Dick Porter  <dick@ximian.com>
13263
13264         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
13265         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
13266         internal calls.
13267         (mono_thread_init): Set up a Thread object instance to return when
13268         the main thread calls Thread.CurrentThread
13269         (mono_thread_cleanup): Wait for all subthreads to exit
13270
13271         * icall.c: New internal calls for System.Threading.Thread::Sleep
13272         (including Schedule) and CurrentThread
13273
13274         * threads.h: New file, to insulate thread-specific stuff from the
13275         rest of the code
13276
13277 2001-09-21  Dick Porter  <dick@ximian.com>
13278
13279         * threads-pthread.h: 
13280         * threads-pthread.c: New file, for handling pthreads-style
13281         threading support.  Start() now starts a new thread and executes
13282         the ThreadStart delegate instance.
13283
13284         * icall.c: Added the internalcall for
13285         System.Threading.Thread::Start_internal
13286
13287         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
13288
13289 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
13290
13291         * loader.c: work around the different signatures for delegates
13292         constructors csc generates in compiled code vs the ones compiled in mscorlib.
13293
13294 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13295
13296         * class.h, class.c: add mono_class_get_field_from_name ().
13297         * *: Fix C comments and other ANSI C issues.
13298
13299 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
13300
13301         * endian.h, assembly.c: fix some endianness issues.
13302
13303 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
13304
13305         * loader.h, load.c: add delegate_class to mono_defaults.
13306         Handle runtime provided methods in mono_get_method ().
13307
13308 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
13309
13310         * loader.c (mono_get_method): use pinvoke for internal call
13311
13312         * icall.c: use pinvoke for internal call
13313
13314         * loader.c (method_from_memberref): set the method name
13315
13316 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
13317
13318         * metadata.c: help the compiler generate better code for
13319         mono_class_from_mono_type ().
13320
13321 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
13322
13323         * class.c (mono_class_metadata_init): delayed computing of the
13324         class size to mono_class_metadata_init ()
13325
13326 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
13327
13328         * class.c, class.h: add an interfaces member to MonoClass.
13329         * image.c, image.h: add assembly_name field to MonoImage
13330         from the assembly table.
13331         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
13332
13333 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13334
13335         * class.c: Handle Array in mono_class_from_mono_type ().
13336         * metadata.c, pedump.c: some endian fixes.
13337
13338 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
13339
13340         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
13341         * metadata.c: fix small problem introduced with the latest commit.
13342
13343 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
13344
13345         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
13346         We don't need a MonoMetadata pointer anymore to compare signatures in
13347         mono_metadata_signature_equal (), update callers.
13348         Reduced memory usage an number of allocations for MonoMethodHeader and
13349         MonoMethodSignature.
13350
13351 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
13352
13353         * metadata.c: added compare for szarray.
13354
13355 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
13356
13357         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
13358         and add a couple more types to it and mono_defaults. Give an hint on
13359         classes that need implementing in our corlib and are referenced
13360         in mscorlib.
13361
13362 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
13363
13364         * class.h, class.c: keep track if a class is also an Enum.
13365         * loader.c: Implement a couple more types for use in libffi
13366         marshalling. Gives better diagnostics when failing to dlopen
13367         a library. Set method->klass for P/Invoke methods, too.
13368
13369 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
13370
13371         * class.c, class.h: add a MonoType this_arg to MonoClass that
13372         represents a pointer to an object of the class' type that
13373         can be used by the interpreter and later the type cache.
13374         Add best guess alignment info for valuetype objects.
13375
13376 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
13377
13378         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
13379         into MonoType: one less level of indirection and allocation and
13380         simplifies quite a bit of code. Added cache for MonoTypes that are
13381         used frequently, so that we don't need to allocate them all the time.
13382
13383 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
13384
13385         * class.c (mono_class_create_from_typedef): System.Enum is also a
13386         value type, although it does not derive from System.ValueType
13387         (maybe a bug in the ms compiler?)
13388
13389         * metadata.c (mono_type_size): return the right size for value types
13390
13391         * loader.c (mono_get_method): only initialize method header if not abstract
13392
13393         * class.c (mono_class_from_mono_type): use mono_default values. 
13394
13395 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
13396
13397         * *: use MonoClass pointers instead of <type_tokens>
13398         
13399         * class.h: new flag: metadata_inited.
13400
13401         * class.c (mono_class_metadata_init): impl.
13402         (mono_class_instance_size): impl.
13403         (mono_class_data_size): impl.
13404
13405 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
13406
13407         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
13408         MonoClass now has the name and name_space fields. 
13409         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
13410         mono_get_method () takes and optional MonoClass as argument.
13411         Removed mono_typedef_from_name() and added mono_class_token_from_name()
13412         instead that takes advantage of a map from class names to typedef
13413         tokens in MonoImage.
13414
13415 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
13416
13417         * metadata.c: zero is not a valid alignment boundary.
13418         Merge MONO_TYPE_VOID in default decoding code.
13419
13420 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
13421
13422         * image.h: merged MonoMetadata into MonoImage
13423
13424         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
13425         identify the type of elements.
13426
13427 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
13428
13429         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
13430         * cil-coff.h: split MonoMSDOSHeader and add size info.
13431         * image.c: add some consistency checks.
13432         * metadata.c: fix row size computation: one programmer
13433         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
13434         add explanation for the locator routine.
13435         Fix decoding of size in method header.
13436         
13437 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
13438
13439         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
13440         (g_concat_dir_and_file): Bring g_concat_dir_and_file
13441         function from gnome-libs.  This uses the right path separator
13442         based on the OS, and also works around a bug in some systems where
13443         a double slash is not allowed. 
13444         (default_assembly_name_resolver): Use g_concat_dir_and_file
13445         (mono_assembly_open): ditto.
13446
13447 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
13448
13449         * metadata.c (mono_metadata_signature_equal): impl.
13450
13451         * *: void is now a realy MonoType (instead of using NULL)
13452         
13453         * metadata.c (do_mono_metadata_parse_type): use
13454         mono_metadata_parse_type to parse void value.
13455
13456 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
13457
13458         * metadata.c, metadata.h: in the signature and method header store
13459         only the space required for holding the loca vars and incoming arguments.
13460
13461 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
13462
13463         * metadata.c (do_mono_metadata_parse_type): treat void like any
13464         other type (instead of assigning NULL);
13465
13466 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
13467
13468         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
13469
13470 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
13471
13472         * image.c (do_mono_image_open): added a cache for arrays.
13473
13474 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13475
13476         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
13477         decode a single column from a row in a metadata table and changes
13478         to take advantage of it in the typedef locator (gives a nice speed up).
13479         Store offset info for function params.
13480
13481 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
13482
13483         * image.h (MONO_IMAGE_IS_CORLIB): removed 
13484
13485 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
13486
13487         * assembly.c: how could mono_assembly_close () had ever worked?
13488         * metadata.c, metadata.h: provide offset info for local vars.
13489         Implement mono_type_size () to take care of alignment as well
13490         as size (it was mono_field_type_size in cli/class.c before).
13491
13492 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
13493
13494         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
13495
13496         * assembly.h (CORLIB_NAME): set to corlib.dll
13497
13498         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
13499
13500 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
13501
13502         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
13503         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
13504         tokentype.h: massive namespace cleanup.
13505
13506 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
13507
13508         * metadata.h, metadata.c: decode exception clauses when parsing method header.
13509
13510 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
13511
13512         * metadata.c (mono_metadata_free_type): added check for type !=
13513         NULL (void) before calling mono_metadata_free_type()
13514
13515 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
13516
13517         * metadata.h, row_indexes.h: added header with enumerations to use
13518         to index in the columns from tables in metadata and to decode coded
13519         tokens: we should start using this instead of embedding magic numbers
13520         all over the code.
13521
13522 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
13523
13524         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
13525         Move metadata_t info from cli_image_info_t to MonoImage, where
13526         it's easily accessible. Changed all the uses accordingly.
13527         Added the method and class caches to MonoImage.
13528         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
13529         and mono_metadata_decode_value () signature to be more consistent
13530         with the other parse functions (and simplify code). Taken advantage
13531         of zero-length array allocation with GCC. Removed reduntant (and
13532         wrong) MonoFieldType struct and use MonoParam instead. Changed
13533         mono_metadata_parse_field_type () to use common code for parsing.
13534         Added mono_metadata_typedef_from_field () and
13535         mono_metadata_typedef_from_method () to lookup a typedef index from a
13536         field or method token.
13537         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
13538
13539 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
13540
13541         * metadata.c (mono_metadata_parse_field_type): Implement. 
13542         (do_mono_metadata_parse_type): Split engine from
13543         mono_metadata_parse_type, so that we can create smaller structures
13544         for things that just have one pointer to the MonoType (look at
13545         the MonoFieldType)
13546
13547 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
13548
13549         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
13550         as Jan Gray found out, it is incorrect. 
13551
13552 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
13553
13554         * assembly.c: Implement asssembly loading.  This loads an image
13555         and loads all the referenced assemblies.  Come to think of it, we
13556         could always do lazy loading of the assemblies. 
13557
13558         * image.c (mono_image_open): Keep loaded images in a hashtable.
13559
13560         * image.h (MonoImage): Add reference count.
13561
13562 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
13563
13564         * assembly.c (mono_assembly_open): Keep track of the file name in
13565         case the assembly has no ASSEMBLY table.
13566
13567         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
13568         from get.c here.
13569
13570 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
13571
13572         * metadata.c, metadata.h: decode local vars in method header
13573         parse function. Change callers accordingly.
13574
13575 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
13576
13577         * metadata.h, cil-coff.h: protect against multiple inclusion.
13578         Added some new structures to hold information decoded from metadata:
13579         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
13580         and relevant decoding/free functions.
13581         * metadata.c: implement decoding functions. Add warning for out of bounds
13582         index in mono_metadata_locate(). Implement mono_get_method () to retreive
13583         all the info about a method signature and invocation. Remove check on
13584         uninitialized local var in parse_mh() and fix memory leak.
13585
13586 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
13587
13588         * metadata.h: More macros.
13589
13590         * tokentype.h: New file.
13591
13592 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
13593
13594         * assembly.c: added a consistency check and initialize
13595         some structures with g_new0().
13596         * metadata.c: fixed a couple more bugs in table size computation
13597         and add other checks for out-of bound access to metadata.
13598
13599 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
13600
13601         * metatada.c: fix bugs computing table sizes. Spew a
13602         warning when index in string heap is out of bounds.
13603
13604 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
13605
13606         * metadata.h: Add a couple of macros to manipulate tokens. 
13607
13608 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
13609
13610         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
13611         cli_section_tables).
13612
13613 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
13614
13615         * metadata.c (mono_metadata_user_string): New function, provides
13616         access to the UserString heap. 
13617
13618 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
13619
13620         * metadata.c: Add inline documentation.
13621
13622 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
13623
13624         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
13625         files. 
13626
13627 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
13628
13629         * typeattr.h: New file, TypeAttribute flags. 
13630
13631 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
13632
13633         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
13634         mono_assembly_ensure_section): Section loading code.
13635         (load_section_tables): Load the sections.
13636
13637         * mono/metadata/metadata.c (mono_metadata_locate_token,
13638         mono_metadata_locate): Functions to locate the information
13639         definition given a token or a table and an index.
13640         (mono_metadata_compute_table_bases): New.
13641         (compute_size): New function to compute the sizes of the various
13642         tables.
13643
13644         * mono/metadata/metadata.h: Finish listing the different index
13645         types. 
13646
13647         * mono/metadata/pedump.c: Improve to dump new information.
13648
13649 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
13650
13651         * mono/metadata/metadata.c: Entered all the tables matching
13652         Beta2. 
13653
13654         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
13655