Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
3
4         * class.h, loader.c: added mono_field_from_token().
5         * verify.c: first cut of type checking code.
6
7 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
8
9         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
10
11 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
12
13         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
14         (fix bug #27782)
15         (mono_marshal_get_remoting_invoke): impl.
16         (mono_delegate_begin_invoke): impl.
17         (mono_mb_emit_save_args): impl.
18         (mono_delegate_end_invoke): impl.
19         (mono_marshal_get_delegate_begin_invoke):
20         (mono_marshal_get_delegate_end_invoke):
21         (mono_marshal_get_delegate_invoke): generate a special name for
22         those methods (including the signature) and associate them whith
23         the delegate class. 
24
25 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
26
27         * reflection.[ch]: 
28         (mono_reflection_type_from_name): now it has a MonoImage parameter
29         which is used as the default image to search the type in. If the image
30         is NULL or getting the type from it fails, it defaults to corlib.
31
32         * icall.c: changed 1 call to mono_reflection_type_from_name to match
33         new parameter.
34
35 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
36
37         * reflection.c: update the parameter table index.
38
39 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
40
41         * domain.c: don't include the mark byte in the string hash.
42
43 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
44
45         * icall.cs: icall for Type.GetTypeCode ().
46         * verify: a couple of fixes and disabled local initialization checks.
47
48 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
49
50         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
51
52         * debug-helpers.c (mono_method_full_name): print the type of the
53         runtime wrapper
54
55         * metadata.c (mono_signature_hash): a hash function for signatures
56         (mono_signature_hash): better hash algorithm
57
58         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
59
60         * debug-helpers.c (mono_method_full_name): this can now generate
61         method names with signatures
62
63         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
64         method dont have this pointers.
65
66 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
67
68         * reflection.c: fixup typebuilder tokens.
69         * image.c: fix buglet.
70         * marshal.h: remove whitespace.
71         * metadata.h, metadata.c: reinstate code that was removed.
72         * verify.c: handle catch directives and fix another couple of bugs.
73
74 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
75
76         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
77         (mono_marshal_get_native_wrapper): make it comp. with the old code
78         (mono_marshal_get_native_wrapper): support boolean
79         (mono_marshal_get_managed_wrapper): support more types
80
81 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
82
83         * class.c (class_compute_field_layout): compute class->blittable attribute.
84
85 2002-07-09  Dick Porter  <dick@ximian.com>
86
87         * threads.c: Make the thread cleaning up cope with threads that
88         call ExitThread()
89
90 2002-07-08  Radek Doulik  <rodo@ximian.com>
91
92         * reflection.c (method_encode_code): use non-translated values to
93         compute finally_start, this fixes exception handling on ppc, yay!
94
95         * decimal.h (struct signscale): fix endianess
96
97 2002-07-07  Radek Doulik  <rodo@ximian.com>
98
99         * reflection.c: swap box_val and not val
100
101 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
102
103         * reflection.c, reflection.h: handle full assembly info in type name.
104         Handle Type arguments when loading custom attributes.
105         * icall.c: updated to use new mono_reflection_type_from_name () method.
106
107 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
108
109         * loader.c:
110         (method_from_memberref): also print assembly name when method not found.
111
112 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
113
114         * icall.c:
115         (ves_icall_TypeGetProperties): fixed bug #27473. 
116
117 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
118
119         * reflection.c: display image name and token when cannot find the
120         .ctor for an attribute.
121
122 2002-07-05  Martin Baulig  <martin@gnome.org>
123
124         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
125
126 2002-07-04  Dick Porter  <dick@ximian.com>
127
128         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
129         compile on mingw.  This will cause mingw builds to not wait for
130         subthreads to terminate after the main thread does.  I've lodged a
131         bug with the mingw developers for them to wrap OpenThread().
132
133 2002-07-03  Dick Porter  <dick@ximian.com>
134
135         * threads.c: Store thread IDs instead of handles, because
136         GetCurrentThread() returns a pseudohandle and therefore stores
137         useless values.  mono_thread_cleanup() continues checking the
138         array of threads until it is empty, to cope with subthreads
139         spawning new threads after the main thread has finished.
140
141         * profiler.h:
142         * profiler.c:
143         * profiler-private.h: Pass the thread ID to thread profiler
144         functions, instead of a handle
145
146 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
147
148         * verify.c: fixes to make it more usable.
149         * pedump.c: added --verify code to verify IL code in an assembly.
150
151 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
152
153         * reflection.c: turn errors into warnings to allow compiling corlib.
154
155 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
156
157         * reflection.c: add special cases to compile corlib.
158
159 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
160
161         * reflection.c: handle properties with only a set method.
162
163 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
164
165         * opcodes.h: add enum with opcodes in opval order.
166
167 2002-07-01  Dick Porter  <dick@ximian.com>
168         
169         * object.h:
170         * object.c (mono_runtime_run_main): Removed unneeded argument
171
172 2002-06-28  Martin Baulig  <martin@gnome.org>
173
174         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
175
176 2002-06-27  Dick Porter  <dick@ximian.com>
177
178         * threads.c: Store the handle in both the parent thread and in the
179         subthread, to minimise the time between starting a new thread and
180         storing its ID.
181
182 2002-06-26  Dick Porter  <dick@ximian.com>
183
184         * appdomain.c (mono_runtime_cleanup): Close the socket library
185         after all the threads have finished, not before
186
187 2002-06-26  Martin Baulig  <martin@gnome.org>
188
189         * debug-symfile.c (mono_debug_find_source_location): Added
190         `guint32 *line_number' argument.  If it's not NULL, store the line number
191         there and return the file name without the line number.
192
193 2002-06-25  Dick Porter  <dick@ximian.com>
194
195         * icall.c:
196         * process.h:
197         * process.c: Process forking and other support functions
198
199 2002-06-25  Dick Porter  <dick@ximian.com>
200
201         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
202         things dont happen when the image is closed.
203         (mono_image_lookup_resource): Walk the resource section looking
204         for a particular entry
205
206         * cil-coff.h: PE resource section decoding
207
208 2002-06-25  Dick Porter  <dick@ximian.com>
209         
210         * assembly.h:
211         * assembly.c: 
212         (mono_assembly_foreach): Accessor functions to walk the list of
213         loaded assemblies
214         (mono_assembly_set_main):
215         (mono_assembly_get_main): Process methods need to know which
216         assembly is the "main" one
217
218         * object.c (mono_runtime_run_main): Record the main assembly
219
220         * debug-helpers.c: Fix typo
221
222 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
223
224         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
225         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
226
227 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
228
229         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
230
231 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
232
233         * image.c (do_mono_image_open): Initialize reference count,
234         otherwise we leak the MonoImage.
235
236 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
237
238         * reflection.c: small tweak to handle self-hosting.
239
240 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
241
242         * reflection.c: fix type name parse code.
243
244 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
245
246         * reflection.c: break out of the loop.
247         * image.c: special case corlib.
248
249 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
250
251         * reflection.c: add all the custom attrs at the end to ensure the
252         ctors have been properly initialized when the attributes are defined
253         in the current assembly.
254
255 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
256
257         * reflection.c: handle correctly multiple-nested types.
258
259 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
260
261         * row-indexes.h: fix typos.
262         * reflection.c: adjust for typos and fix method_def_or_ref
263         encoding in MethodImpl table.
264
265 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
266
267         * reflection.c: fix entry point patching (thanks Serge!).
268
269 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
270
271         * verify.c: add check for System.Exception
272
273 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
274
275         * image.c, class.c: minifix for code just c&p'ed.
276         * reflection.c: warning fix.
277         * object.h, loader.h, domain.c: load also StringBuilder.
278
279 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
280
281         * marshal.h, marshal.c: some support code to handle complex marshaling.
282
283 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
284
285         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
286         Better signatures with vtable error dump.
287
288 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
289
290         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
291
292 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
293
294         * icall.c (ves_icall_Type_GetField): impl.
295
296 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
297
298         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
299         to retrieve a marshal description blob for a field or param.
300
301 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
302
303         * reflection.h, reflection.c: change order of nested type emission
304         to avoid table corruption. The NestedTypes table is sorted.
305         * icall.c: change order of GetConstructor results to workaround mcs bug.
306
307 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
308
309         * reflection.h, reflection.c: handle field and param marshal
310         information.
311
312 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
313
314         * icall.c, marshal.c marshal.h: more Marshal class implementation.
315
316 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
317
318         * reflection.c: fix call convention.
319
320 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
321
322         * reflection.h, reflection.c: mono_image_get_memberref_token()
323         takes a type instead of a class, now. Added
324         mono_image_get_array_token() to create tokens for the special
325         multi-dim array methods.
326
327 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
328
329         * assembly.c: handle modules (no assembly table). Split
330         loading references in its own function.
331         * class.c: handle moduleref resolution scope.
332         * image.c, image.h: cache module name in image.
333
334 2002-06-07  Martin Baulig  <martin@gnome.org>
335
336         * reflection.c (mono_image_get_type_info): Only add a class layout entry
337         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
338
339 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
340
341         * icall.c: more signature fixes that used uint instead of int.
342
343 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
344
345         * reflection.c: fixed signature of field refs.
346
347 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
348
349         * class.c, reflection.c: handle typerefs of nested types
350         (both on read and when writing files).
351
352 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
353
354         * icall.c: fix method signatures that tried to workaround the previous
355         typo, d'oh!
356
357 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
358
359         * debug-helpers.c: fix typo.
360
361 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
362
363         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
364         rewrote the PE/COFF writing code (our programs are understood by the
365         ms runtime, now).
366
367 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
368
369         * gc.c, gc.h, icall.c: weakreference support.
370
371 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
372
373         * Makefile.am, mono-config.c: use $(sysconfdir).
374
375 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
376
377         * icall.c: changed default precision of Double.ToString() to 15.
378         Fixed memory leak. Unified with Single.ToString.
379
380 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
381
382         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
383
384 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
385
386         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
387         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
388         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
389         and myself.
390
391 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
392
393         * debug-symfile.c, sysmath.c: yet more compilation fixes.
394
395 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
396
397         * reflection.c, socket-io.c: more compilation fixes.
398
399 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
400
401         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
402         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
403         unicode.c: warning and compiler compatibility fixes.
404
405 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
406
407         * class.h, metadata.c: fixed warnings/compilation errors.
408
409 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
410
411         * Makefile.am, mono-config.c, mono-config.h: configuration file
412         support routines.
413         * loader.c, loader.h: make Dll mapping configurable at runtime in the
414         config file. Export methods to insert and lookup mappings.
415
416 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
417
418         * reflection.c: handle types and boxed objects in custom attr
419         constructors.
420
421 2002-05-30  Martin Baulig  <martin@gnome.org>
422
423         * debug-symfile.c
424         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
425
426 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
427
428         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
429         to lookup the implmap row for a P/Invoke method.
430         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
431         P/Invoke method from the runtime on an as needed basis.
432
433 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
434
435         * metadata.c (mono_metadata_parse_signature): impl.
436
437 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
438
439         * class.c: handle .pack directive.
440
441 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
442
443         * object.c: initialize static fields with RVA data.
444
445 2002-05-25  Martin Baulig  <martin@gnome.org>
446
447         * debug-symfile.c
448         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
449
450 2002-05-24  Martin Baulig  <martin@gnome.org>
451
452         * debug-symfile.c
453         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
454         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
455         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
456
457 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
458
459         * object.c: special case string ctros in invoke.
460         * gc.c: silly whitespace changes.
461
462 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
463
464         * threadpool.[ch]: impl. a threadpool that can
465         be used by mint and mono.
466
467 2002-05-22  Martin Baulig  <martin@gnome.org>
468
469         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
470         The first argument is now a `MonoReflectionModuleBuilder *', the return
471         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
472         `methods' field to get the method builder.  The `token' argument is the
473         unfixed token.
474
475         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
476         invalid characters instead of g_assert_not_reached()ing.  This seems
477         to be the behaviour of mscorlib.
478
479 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
480
481         * object.c (mono_runtime_invoke_array): applied patch from Rachel
482         Hestilow to fix bug #25104
483
484 2002-05-21  Martin Baulig  <martin@gnome.org>
485
486         * debug-symfile.c (mono_debug_find_source_location): New function.
487         Looks up an IL offset in the line number table and returns the source
488         location as a string.
489
490 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
491
492         * icall.c:
493         (mono_double_ToStringImpl): changed %f by %g until we have something
494         better.
495
496 2002-05-21  Nick Drochak  <ndrochak@gol.com>
497
498         * icall.c : Use different name for Math.Pow's icall.  Needed to check
499         parameters first in C#.
500
501 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
502
503         * icall.c, reflection.h: added icall to get info about an event.
504
505 2002-05-20  Radek Doulik  <rodo@ximian.com>
506
507         * object.c (mono_value_box): don't use memcpy for boxing on BIG
508         endian
509         (mono_value_box): don't use memcpy for small sizes on
510         architectures with unaligned access
511
512 2002-05-20  Martin Baulig  <martin@gnome.org>
513
514         * reflection.c (mono_reflection_setup_internal_class): Don't crash
515         if `tb->parent == NULL'.
516         (mono_reflection_create_internal_class): New function.  This is
517         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
518         for enum types.
519
520         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
521         New interncall.
522
523 2002-05-19  Martin Baulig  <martin@gnome.org>
524
525         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
526         argument to get the length, don't default to the array length.
527
528 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
529
530         * assembly.c (mono_assembly_setrootdir): New function used to
531         override the MONO_ASSEMBLIES directory.
532
533 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
534
535         * icall.c: ValueType_GetHashCode() initialize local var.
536
537 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
538
539         * reflection.c: sort custom attributes table.
540
541 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
542
543         * reflection.c: support named args in custom attributes (write support).
544
545 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
546
547         * reflection.c: fix finally position calculation.
548
549 2002-05-15  Radek Doulik  <rodo@ximian.com>
550
551         * reflection.c: fixed endianess at many places
552
553         * icall.c (ves_icall_InitializeArray): comment out debug msg
554
555 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
556
557         * object.c (mono_unhandled_exception): new function to handle
558         unhandled exceptions.
559         (mono_unhandled_exception): call the UnhandledException event.
560         (mono_runtime_delegate_invoke): impl.
561
562 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
563
564         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
565         returns the RVA, not the direct pointer to the data. Handle the case
566         when the class size is fixed.
567
568 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
569
570         * reflection.c: fix some endianess issues.
571
572 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
573
574         * object.c (mono_runtime_invoke): is now able to catch exceptions.
575
576         * threads.c (mono_thread_init): added a callback which is invoked
577         at thread start.
578
579 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
580         
581         * icall.c: make GetHashCode return non-negative values.
582
583 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
584
585         * object.c, icall.c, gc.c: revert to address-based hashcode.
586
587 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
588
589         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
590
591 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
592
593         * icall.c, class.c: special case <Module>.
594
595 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
596
597         * icall.c: fix bug in GetNow().
598
599 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
600
601         * object.c (mono_runtime_class_init): make sure that we call all
602         static class constructors.
603
604 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
605
606         * reflection.c: sort methodsemantics table.
607
608 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
609
610         * reflection.h, reflection.c: honour init locals setting.
611
612 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
613
614         * icall.c: copied Double ToStringImpl for Single ToStringImpl
615
616 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
617
618         * reflection.c: support ContructorBuilders in attribute blob creation.
619
620 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
621
622         * reflection.c: some changes to build a binary that can be run
623         directly in windows.
624
625 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
626
627         * loader.c: print a big message when an icall can't be found.
628
629 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
630
631         * string-icalls.c: fix bug 24248.
632
633 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
634
635         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
636         icall.c, reflection.h: separate assembly loading by pathname and by
637         assembly name. Use the MONO_PATH env var to search for assemblies.
638
639 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
640
641         * assembly.c, image.h: add some support for assemblies
642         with multiple modules.
643         * class.c, class.h: export mono_class_from_typeref().
644         * loader.c: remove duplicated code and use mono_class_from_typeref(),
645         instead.
646
647 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
648
649         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
650         documentation says (the ECMA one is correct).
651
652 2002-05-02  Dick Porter  <dick@ximian.com>
653
654         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
655         Don't name the synchronisation mutex.
656
657 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
658
659         * rand.c
660         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
661         Make the prototypes match.
662         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
663         Same.
664
665         * icall.c
666         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
667         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
668         all systems have tm.tm_zone, so use strftime() with %Z to print
669         the timezone abreviation into a temp string.
670
671         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
672         rather than mono_array_addr() on a MonoString on Big Endian
673         machines.
674
675 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
676
677         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
678         fix bug 24041
679
680 2002-04-30  Dick Porter  <dick@ximian.com>
681
682         * socket-io.c: Cope with SOCKET being an integer rather than a
683         pointer now.
684
685         * threads.c: Added Thread_free_internal, to deal with thread
686         handle cleanup.  Moved calls to handle_store() and handle_remove()
687         to start_wrapper(), so each can only be called once.  Allocate
688         synchronisation blocks with GC_malloc(), and use GC finalisation
689         to close the handles.
690
691         * icall.c: added System.Threading.Thread::Thread_free_internal
692
693 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
694
695         * icall.c: support Environment.Exit, CommandLineArgs().
696
697 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
698
699         * object.c, object.h: added mono_runtime_run_main () and
700         mono_runtime_get_main_args () for use in System.Environment.
701
702 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
703
704         * gc.c: fix thinko, enable actual finalization since the jit is now
705         fixed.
706
707 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
708
709         * gc.c, object.c: take into account that an object may be offset wrt the address
710         returned by GC_malloc().
711
712 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
713
714         * image.c: handle files without entries in the assembly table (modules).
715
716 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
717
718         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
719         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
720         allowed to be null when it's System.Object class setup.
721
722 2002-04-27  Martin Baulig  <martin@gnome.org>
723
724         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
725         if `tb->parent == NULL' rather than crashing.
726
727 2002-04-28  Nick Drochak  <ndrochak@gol.com>
728
729         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
730         calling acos() where asin() should have been called.
731
732 2002-04-26  Martin Baulig  <martin@gnome.org>
733
734         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
735         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
736         there's a subdirectory called `System', but we don't want to read that
737         subdirectory as an assembly.
738
739 2002-04-25  Martin Baulig  <martin@gnome.org>
740
741         * debug-symfile.c: Reflect latest MonoString changes.
742
743 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
744
745         * rand.c, rand.h: instance method icalls need to have an explicit
746         this pointer as first argument in the C implementation.
747
748 2002-04-25  Nick Drochak <ndrochak@gol.com>
749
750         * icall.c: Fix typo in map for GetNonZeroBytes
751
752 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
753
754         * string-icalls.c : String does now passes unit tests without any 
755         errors, the following changes has been made:
756         
757         Implemented replace methods.
758         Renaming of methods to (try) follow the standard.
759         Fixed compare ordinal
760         Made all memory allocated directly to function instead of via icall function.
761         Small performance fix in is_in_array function
762                         
763  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
764
765         c (mono_string_Internal_ctor_charp_int_int):
766         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
767         sindex < 0, throw ArgumentOutOfRangeException instead of
768         ArgumentNullException.
769
770         Added new check for length == 0, however
771         I need to make it return String.Empty from the C code.
772         
773         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
774         that calculate the length for us here.
775         
776         (mono_string_Internal_ctor_sbytep_int_int): Replaced
777         mono_string_new_utf16 with mono_string_new, since value is utf8.
778
779 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
780
781         * object.c: register the object for finalization if needed.
782         Allocate one more char in the string for the terminating 0 char.
783
784 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
785
786         * class.c, class.h, image.c: check if a type implemenst a destructor.
787         Use the proper key for array class lookups.
788         * icall.c: register the icalls in the System.GC class.
789         * gc.c, gc.h: GC-related functions and icalls.
790
791 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
792
793         * icall.c:
794         * socket-io.c:
795         * unicode.c: free some strings gotten from mono_string_to_utf8 and
796         changed a couple of free () by g_free ().
797
798         * decimal.c: one-liner in the comments for decimal2string ().
799
800 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
801
802         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
803
804 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
805
806         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
807         * object.c (mono_runtime_invoke_array) : handle null in params
808
809 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
810
811         * string-icalls.c: fixed bug in split (one off bug)
812
813 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
814
815         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
816         * icalls.c: added String::Equals as internal method
817
818 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
819
820         * threads.c: fixed bug in the double interlocked functions
821
822 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
823
824         * threads.c: implemented all of the new interlocked icalls.
825         * string-icalls.c: fix a bug in insert.
826         * icalls.c: added the icalls for interlocked, removed old string functions.
827         
828 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
829
830         * loader.c: fix off-by-one error when reading argument names.
831
832 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
833
834         * profiler.c: win32 counter implementation (untested).
835         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
836         (the latter needs testing and more complete impl. from win32 folks).
837
838 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
839
840         * object.c: mono_array_new_full workaround mono_array_class_get
841         problem.
842
843 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
844
845         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
846         * object.h (mono_string_chars): Changed casting type.
847
848 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
849
850         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
851                            method signatures to use gunichar2 instead of gint16.
852
853 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
854
855         * object.h, object.c: domain-specific versions of mono_object_new and
856         mono_array_new.
857
858 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
859
860         * object.c: changed String layout
861
862         * string-icalls.c (mono_string_Internal_ctor_chara): added
863         internal string constructors.
864
865 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
866
867         * threads.c: pass 'this' to the thread start routine.
868
869 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
870
871         * string-icalls.c: fix IndexOf and LastIndexOf. Now
872         InternalCompareStr don't call twice mono_string_cmp_char for the last
873         character. Improved performance in mono_string_cmp_char.
874
875 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
876
877         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
878         code into its own library: libmonoruntime.
879
880 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
881
882         * object.h, object.c: changed array format so that szarrays do not
883         require a bounds structure.
884         * icall.c, appdomain.c: support for new szarray format.
885
886 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
887
888         * metadata.c: compare also the retuns type when comparing signatures:
889         we didn't do this as an optimization since really overloaded methods
890         must differ also in the arguments, but this doesn't work with
891         low-level IL code (or when using explicit conversion operators: see
892         bug#23498 for an example).
893
894 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
895
896         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
897
898 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
899
900         * icall.c: make MonoType::GetElementType its own icall.
901
902 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
903
904         * icall.c: remove MonoMethod_get_Name().
905         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
906         object.
907
908 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
909
910         * string-icalls.c: optimized a few methods.
911
912 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
913
914         * icall.c: added all new string internal calls
915         * string-icalls.c: added, new string internal call implementation.
916         * object.c: added mono_string_new_size for allocating a string a size
917
918 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
919
920         * object.c (mono_object_isinst): use the same code as in the
921         optimized x86 version.
922
923 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
924
925         * profiler.c: TSC-based timer code (faster and more accurate).
926         Not hooked up in configure, yet (set USE_X86TSC to 1).
927
928 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
929
930         * profiler.c, profiler.h: track time spent compiling methods.
931         * threads.c: track thread creation/destruction.
932
933 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
934
935         * profiler.c, profiler.h, profiler-private.h: profiling interface
936         and sample implementation. Moved here so that it can be used also by
937         the jit.
938
939 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
940
941         * reflection.c, reflection.h: keep types and other handles separate in
942         the hash tables for referred tokens. Add guid for modules.
943
944 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
945
946         * assembly.c: fix bugs found with valgrind.
947         * metadata.h, metadata.c: added mono_metadata_guid_heap().
948
949 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
950
951         * threads: added icall support for getting current domain for
952                    the thread.
953  
954 2002-04-13  Martin Baulig  <martin@gnome.org>
955
956         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
957         (MonoDebugVarInfo): Added `index' field for register based addresses.
958         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
959         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
960         `MonoDebugVarInfo *params' and `guint32 this_offset' with
961         `MonoDebugVarInfo *this_var'.
962
963         * debug-symfile.c (relocate_variable): New static function to write
964         a location description for a local variable or method parameter.
965
966 2002-04-12  Martin Baulig  <martin@gnome.org>
967
968         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
969         stack offset and begin/end scope address of a local variable.
970         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
971         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
972         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
973
974         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
975         Added new relocation types for start/end scope of a local variable.
976
977 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
978
979         * object.h: add mono_object_domain() macro.
980         * reflection.c: handle typespecs.
981         * icall.c: MonoMethod::get_Name() implementation.
982
983 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
984
985         * icall.c: String::GetHashCode() icall implementation.
986
987 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
988
989         * icall.c: String::IndexOfAny icall.
990         * object.c, object.h: make array->max_length more useful.
991         Intrduced mono_object_class() and mono_string_length() macros.
992
993 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
994
995         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
996         instead of g_unichar_isdigit.
997
998 2002-04-11  Nick Drochak  <ndrochak@gol.com>
999
1000         * icall.c: Implement a simple Double.ToString().
1001
1002 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
1003
1004         * appdomain.h: only io-layer.h is supposed to be included.
1005         * icall.c: explicitly import environ. Fix warning.
1006
1007 2002-04-10  Nick Drochak  <ndrochak@gol.com>
1008
1009         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
1010                 return true even if it's not Daylight Savings time.
1011                 Only return false for the case where the function isn't
1012                 implemented for a plaform (read Windows).
1013
1014 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
1015
1016         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
1017         data with a mutex.
1018
1019 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
1020
1021         * mempool.c (mono_mempool_alloc): only use g_malloc when
1022         absolutely necessary.
1023
1024 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
1025
1026         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
1027
1028         * class.c (mono_class_vtable): use domain mempool to allocate vtable
1029         (mono_class_proxy_vtable): use domain mempool
1030
1031 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
1032
1033         * appdomain.h, appdomain.c: split initialization that requires the
1034         execution engine support into mono_runtime_init().
1035
1036 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
1037
1038         * class.c (mono_class_init): don't include vtable inside MonoClass
1039         to save some memory, gather some statistics.
1040         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
1041
1042 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
1043
1044         * icall.c: internalcall implementation for ValueType.Equals().
1045
1046 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
1047
1048         * object.c (mono_message_init): moved 
1049         (mono_runtime_exec_main): new arch. independent impl.
1050         (mono_runtime_invoke_array): new method - like
1051         mono_runtime_invoke, but you can pass an array of objects.
1052         (mono_remoting_invoke): new arch. independent impl.
1053         (mono_message_invoke): new arch. independent impl.
1054         (mono_runtime_class_init): new arch. independent impl.
1055         (mono_runtime_object_init): new arch. independent impl.
1056
1057 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
1058
1059         * metadata.c, object.c, reflection.c: documented the exported
1060         functions.
1061
1062 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
1063
1064         * icall.c: simpler code to pass the assembly builder data to corlib.
1065         Implement GetNestedTypes() internalcall.
1066
1067 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
1068
1069         * class.c: warn if a type can't be loaded.
1070
1071 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
1072
1073         * image.h: typedef MonoImageOpenStatus
1074         * types.h: removed unused file
1075         
1076 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
1077
1078         * icall.c: Enum_ToObject accepts enum value arguments.
1079
1080 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
1081
1082         * class.c: move initialization of properties, events and nested
1083         classes, so that they happen for interfaces, too.
1084
1085 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
1086
1087         * icall.c: cleanup some ugly casts in Array_SetValue*.
1088
1089 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
1090
1091         * icall.c: the values array fro enums is of the correct type, now.
1092         Implement (correctly) getFullName instead of assQualifiedName for
1093         MonoType.
1094         * reflection.h, reflection.c: added mono_type_get_name ().
1095
1096 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
1097
1098         * assembly.c, image.h: for each MonoImage, record from wich assembly
1099         it was loaded.
1100         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
1101         Make Type.Assembly work.
1102
1103 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
1104
1105         * debug-symfile.h: use char* instead of gpointer to avoid
1106         unnecessary casts.
1107
1108         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
1109
1110         * icall.c (ves_icall_InternalExecute): impl. FielSetter
1111         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
1112
1113 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
1114
1115         * icall.c (mono_message_init): impl. (code cleanup)
1116         (ves_icall_InternalExecute): impl. FieldGetter
1117
1118         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
1119         defined we call all (non-static)methods through the vtable. 
1120
1121 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
1122
1123         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
1124         finalizer even though the memory is still referenced (and the chunk of
1125         memory is not freed).
1126
1127 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1128
1129         * assembly.c: fix brokeness.
1130
1131 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
1132
1133         * class.c: kill some warnings. Check explicit interface method
1134         implementation also without considering the namespace.
1135         Load also literal strings in static class data.
1136
1137 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
1138
1139         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
1140         (default_assembly_name_resolver): Make the resolver take the
1141         "base" directory where the assembly was originally defined, so we
1142         can load DLLs that are in the same directory as the assembly that
1143         is being referenced.
1144
1145 2002-03-28  Dick Porter  <dick@ximian.com>
1146
1147         * file-io.h: 
1148         * file-io.c:
1149         * socket-io.c: 
1150         * unicode.h: 
1151         * unicode.c: Warning cleanups
1152
1153 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
1154
1155         * object.h, reflection.h: use the correct type instead of MonoObject.
1156
1157 2002-03-28  Martin Baulig  <martin@gnome.org>
1158
1159         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
1160         (mono_debug_update_symbol_file): Initialize classes if necessary.
1161
1162 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
1163
1164         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
1165         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
1166
1167 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
1168
1169         * assembly.h: fix function prototype.
1170         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
1171         * mono-endian.h: use const cast.
1172
1173 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
1174
1175         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
1176
1177 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
1178
1179         * loader.c: don't assert when a typeref can't be loaded, give
1180         a chance to the runtime to trow an exception instead.
1181         * loader.h: fix warning.
1182
1183 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
1184
1185         * class.c (mono_class_proxy_vtable): added proxy support
1186
1187 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
1188
1189         * icall.c: removed last of PAL calls, added System.Environment
1190         * file-io.h, file-io.c: MonoIO implementation
1191         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
1192
1193 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
1194
1195         * appdomain.c: do not use the byte marker in ldstr table lookup.
1196         * debug-helpers.c: allow two ':' to separate class and method name.
1197         * object.c: allocate arrays bounds with the GC, too.
1198         * verify: add a few more checks.
1199
1200 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
1201
1202         * reflection.c: output also literal strings. Allocate parameter data
1203         with GC_malloc() (thanks, Martin, for catching this!).
1204
1205 2002-03-26  Martin Baulig  <martin@gnome.org>
1206
1207         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
1208         include the `this' offset in the `param_offsets'.
1209
1210 2002-03-25  Martin Baulig  <martin@gnome.org>
1211
1212         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
1213         mono_debug_get_class() function to get the classes. Added new
1214         relocation types for arrays and strings.
1215         (mono_debug_get_class): New static function to search in all
1216         referenced assemblies for a metadata token.
1217
1218         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
1219
1220 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
1221
1222         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
1223         hold gc-allocated objects. Make the string heap a stream like the
1224         others. Removed duplicated code when writing stream info.
1225         Added asserts to catch possible buffer overflows. Set the sorted map
1226         for tables that need sorting. Added some documentation.
1227
1228 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
1229
1230         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
1231         for interned strings and vtables.
1232
1233 2002-03-24  Martin Baulig  <martin@gnome.org>
1234
1235         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
1236         it in the array since it was created with g_slist_prepend().
1237
1238 2002-03-24  Martin Baulig  <martin@gnome.org>
1239
1240         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
1241         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
1242         (mono_debug_method_from_token): Renamed to
1243         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
1244         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
1245
1246         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
1247         relocation types.
1248
1249         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
1250
1251 2002-03-24  Martin Baulig  <martin@gnome.org>
1252
1253         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
1254         (mono_debug_method_from_token): New func.
1255
1256         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
1257         New interncall, calls mono_debug_local_type_from_signature().
1258         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
1259         calls mono_debug_method_from_token().
1260
1261 2002-03-23  Martin Baulig  <martin@gnome.org>
1262
1263         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
1264         specifies the number of bytes to be converted, not the array size.
1265         Return the number of chars, not the number of bytes.
1266         (ves_icall_iconv_get_chars): The `byteCount' argument
1267         specifies the number of bytes to be converted, not the array size.
1268
1269 2002-03-23  Martin Baulig  <martin@gnome.org>
1270
1271         * reflection.h (MonoReflectionSigHelper): New type.
1272
1273         * reflection.c (mono_reflection_sighelper_get_signature_local),
1274         (mono_reflection_sighelper_get_signature_local): New functions.
1275
1276         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
1277         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
1278         interncalls.
1279
1280 2002-03-23  Martin Baulig  <martin@gnome.org>
1281
1282         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
1283         is_writeable is set.
1284         (mono_raw_buffer_update): New function to write the modified map
1285         back to disk.
1286
1287         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
1288
1289         * debug-symfile.c (mono_debug_update_symbol_file): Call
1290         mono_raw_buffer_update() when done writing.
1291
1292 2002-03-23  Martin Baulig  <martin@gnome.org>
1293
1294         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
1295
1296         * debug-symfile.c: Added support for arguments and local variables.
1297
1298 2002-03-23  Dick Porter  <dick@ximian.com>
1299
1300         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
1301         protected by ifdefs, hence breaking the w32 build.
1302
1303 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1304
1305         * object.c: implement is_interned() the right way.
1306
1307 2002-03-21  Martin Baulig  <martin@gnome.org>
1308
1309         * debug-symfile.[ch]: New files to handle debugging information
1310         files. There's also support to dynamically update these symbol
1311         files to include machine dependent information.
1312
1313 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
1314
1315         * threads.c (mono_thread_create): new function to create thread
1316         from C
1317
1318 2002-03-20  Martin Baulig  <martin@gnome.org>
1319
1320         * icall.c (ves_icall_InternalInvoke): Create a new object if the
1321         method is a constructor.
1322         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
1323         points to ves_icall_InternalInvoke().
1324
1325 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
1326
1327         * file-io.c: Flush shouldn't throw exceptions.
1328
1329 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
1330
1331         * file-io.c: FileStream flush support; FileSetLength now
1332         restores file pointer.
1333
1334 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1335
1336         * class.c: set image for pointer classes.
1337
1338 2002/03/19  Nick Drochak <ndrochak@gol.com>
1339
1340         * sysmath.c: Forgot one.
1341
1342 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
1343
1344         * sysmath.c: Avoid redefining existing names.
1345
1346 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
1347
1348         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
1349         handled by runtime as icall rather than dllimport from libm.so
1350         * file-io.c, file-io.h: fixed handle argument type.
1351
1352 2002-03-18  Dick Porter  <dick@ximian.com>
1353
1354         * reflection.c (mono_image_get_type_info): rename interface to
1355         iface, because of "#define interface struct" on windows.
1356
1357 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
1358
1359         * class.c, class.h: rename and export mono_ptr_class_get().
1360         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
1361         * reflection.c, reflection.h, icall.c: better/saner type name
1362         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
1363         method signatures.
1364
1365 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
1366
1367         * class.c (mono_class_init): removed hardcoded GHC_SLOT
1368
1369         * icall.c (ves_icall_InternalInvoke): impl.
1370
1371 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
1372
1373         * reflection.c: output the interface map table, too.
1374
1375 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
1376
1377         * class.c (class_compute_field_layout): separate computation of 
1378         static field layout
1379
1380 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
1381
1382         * icall.c: added System.Buffer support.
1383         * file-io.c: moved file icalls from PAL to FileStream.
1384
1385 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
1386
1387         * icall.c (ves_icall_System_Object_GetHashCode): impl.
1388
1389 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
1390
1391         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
1392
1393 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1394
1395         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
1396
1397 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
1398
1399         * debug-helpers.{c,h}: moved here from monograph some useful functions
1400         to locate a method by name/signature in a class or image. Included
1401         also a small and flexible IL disassembler.
1402
1403 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
1404
1405         * reflection.c: fixup tokens in methods with small header size, too.
1406
1407 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
1408
1409         * object.c (mono_string_to_utf8): remove assert(!error), instead
1410         print a warning. 
1411
1412 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
1413
1414         * icall.c: update to the new mono_Array_class_get interface.
1415
1416 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
1417
1418         * appdomain.c, object.c: Boehm-GC enable.
1419         * icall.c: make get_data_chunk() support split data requests.
1420         Ensure a class is initialized in more cases. Return only the first
1421         property found in GetProperties() or the compiler gets confused. 
1422         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
1423         * reflection.h, reflection.c: add fixup mechanism for field and method
1424         tokens. Initialize assembly->typeref in a single place. Output
1425         properties after events. Support custom attributes for events, too.
1426         Typo fix for paramter custom attrs.
1427
1428 2002-03-07  Martin Baulig  <martin@gnome.org>
1429
1430         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
1431
1432 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
1433
1434         * class.c (mono_array_class_get): fix. for multi. dim. arrays
1435
1436 2002-03-06  Martin Baulig  <martin@gnome.org>
1437
1438         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
1439         non-zero lower bounds. See testcases #F10-#F13.
1440
1441 2002-03-05  Martin Baulig  <martin@gnome.org>
1442
1443         * exception.c (mono_get_exception_argument_out_of_range): New exception.
1444
1445         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
1446         ves_icall_System_Array_GetValue(), only calculate the absolute array position
1447         here.
1448         (ves_icall_System_Array_SetValue): Likewise.
1449         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
1450         as argument and does the actual work. This function is used when copying a
1451         multi-dimensional array.
1452         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
1453         now do all the widening conversions of value types.
1454         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
1455
1456 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1457
1458         * class.c: remove some magic numbers and use the smbolic names,
1459         instead. Added init_events() to load event info at class init time.
1460         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
1461         and mono_metadata_methods_from_event().
1462         * reflection.h, reflection.c: added support for writing out the evnets
1463         related information.
1464
1465 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
1466
1467         * reflection.h, icall.c: use a different method (GetInterfaces)
1468         to gather interface info and add isbyref, isprimitive and
1469         ispointer to the ves_icall_get_type_info() return value.
1470
1471 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
1472
1473         * class.h: stared adding support for events.
1474         * icall.c: split find_members implementation. Added debug icall to get
1475         the address of an object.
1476         * reflection.c: handle TypeBuilders in mono_type_get_object().
1477
1478 2002-03-01  Martin Baulig  <martin@gnome.org>
1479
1480         * icall.c (ves_icall_System_Array_GetLength): This must throw an
1481         ArgumentOutOfRangeException(), not an ArgumentException().
1482         (ves_icall_System_Array_GetLowerBound): Likewise.
1483         (ves_icall_System_Array_GetValue): Improved argument checking.
1484         (ves_icall_System_Array_SetValue): Improved argument checking.
1485
1486 2002-03-01  Martin Baulig  <martin@gnome.org>
1487
1488         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
1489         called with invalid arguments rather than just dying with g_assert().
1490         (ves_icall_System_Array_SetValue): Likewise.
1491         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
1492         raise a NotImplementedException instead.
1493         (ves_icall_System_Array_GetLength): Added argument checking.
1494         (ves_icall_System_Array_GetLowerBound): Added argument checking.
1495
1496 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
1497
1498         * object.h (mono_assert): new macros mono_assert and
1499         mono_assert_not_reached
1500
1501 2002-02-28  Martin Baulig  <martin@gnome.org>
1502
1503         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
1504         and "System::String::IsInterned" to "System::String::_IsInterned".
1505
1506 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
1507
1508         * icall.c: remove hacks for typebuilder. Added icall to create a
1509         modified type from a tybebuilder.
1510         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
1511         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
1512         to create a backing MonoClass for a TypeBuilder.
1513
1514 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
1515
1516         * class.c, class.h: more refactoring of class init.
1517         Export mono_class_setup_mono_type() and mono_class_setup_parent().
1518
1519 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
1520
1521         * marshal.c, marshal.h: start of marshaling interface.
1522
1523 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
1524
1525         * icall.c: fix order in assembly qualified name icall.
1526
1527 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
1528
1529         * class.c: do not free str, since we store it in the hash table.
1530         * reflection.h: add label field to MonoILExceptionInfo.
1531         * reflection.c: handle references to more than one assembly. Handle
1532         case when there isn't a module created in the assembly.
1533
1534 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
1535
1536         * class.c: Fix typo. Start refactoring of class init code.
1537
1538 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
1539
1540         * appdomain.c: exit with 1 on error.
1541         * class.c: we already have the name in MonoClassField.
1542         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
1543         MonoStreamHeader instead of an offset of image->raw_metadata.
1544
1545 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
1546
1547         * appdomain.c (mono_init): Be even more descriptive about the error.
1548
1549 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
1550
1551         * appdomain.c: give the user an informative message when corlib can't
1552         be loaded.
1553
1554 2002-02-26  Martin Baulig  <martin@gnome.org>
1555
1556         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
1557         New icall to get the time zone data.
1558
1559 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
1560
1561         * reflection.c: set virtual and raw size of section correctly.
1562         * threads.c: transfer domain information to newly created threads.
1563
1564 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
1565
1566         * class.c: when instancing a class in a domain, load the default
1567         vaules for static fields from the constant table. Fix System.Enum to
1568         not be an enum.
1569         * icall.c: implement Object::GetType() internalcall. Implemented
1570         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
1571         Fixed checking of binding flags in find_members().
1572         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
1573         * reflection.c: handle enumerations when writing to the constant
1574         table. Use a different object cache for types.
1575
1576
1577 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
1578
1579         * object.c (mono_object_isinst): fix for arrays
1580
1581         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
1582
1583 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
1584
1585         * object.c: don't use mprotect ()  and fix intern pool hash table
1586         lookup for big endian systems.
1587
1588 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
1589
1590         * icall.c: change type_is_subtype_of () signature.
1591
1592 2002-02-21  Mark Crichton  <crichton@gimp.org>
1593
1594         * rand.c, rand.h: Added random number generator for
1595         System.Security.Cryptography classes.
1596
1597         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
1598
1599         * icall.c: Added System.Security.Cryptography calls.
1600
1601 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
1602
1603         * class.c, icall.c, metadata.c: better support for pointer types.
1604         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
1605         * reflection.c: Add support for getting custom attrs for properties
1606         and simplify some code.
1607
1608 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
1609
1610         * icall.c: change getToken () and add custom attribute GetBlob()helper
1611         method.
1612         * reflection.h: add custom attrs array to the reflection builder structures.
1613         * reflection.c: encode and emit custom attributes for all the relevant
1614         reflection objects. Cache fieldref and methodref tokens. Change
1615         mono_image_create_token() interface to take a MonoDynamicAssembly.
1616         More complete custom attributes decoder. Load custom attributes for
1617         Assembly, Field, Method and Constructor objects, too. Make the
1618         returned array an Attribute[] one, not object[]. Added
1619         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
1620         custom attribute constructor.
1621
1622 2002-02-20  Dick Porter  <dick@ximian.com>
1623
1624         * icall.c:
1625         * rawbuffer.c:
1626         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
1627         problem code out for now).
1628
1629 2002-02-19  Radek Doulik  <rodo@ximian.com>
1630
1631         * object.c (mono_ldstr): use hash table to avoid multiple swapping
1632
1633 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
1634
1635         * icall.c: register the GetCustomAttributes method.
1636         * object.c, object.h: add mono_string_new_len ().
1637         * reflection.h, reflection.c: added mono_runtime_invoke(),
1638         mono_install_runtime_invoke(). Added
1639         mono_reflection_get_custom_attrs () to load custom attributes and
1640         create the attribute objects.
1641
1642 2002-02-19  Dick Porter  <dick@ximian.com>
1643         * threads-dummy-types.c:
1644         * threads-dummy-types.h:
1645         * threads-dummy.c:
1646         * threads-dummy.h:
1647         * threads-pthread-types.c:
1648         * threads-pthread-types.h:
1649         * threads-pthread.c:
1650         * threads-pthread.h:  Deleted obsolete files
1651
1652 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
1653
1654         * class.c (mono_class_vtable): runtime init the class when we
1655         allocate static class data.
1656
1657         * icall.c (ves_icall_System_Array_SetValue): check for null values.
1658
1659         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
1660         and String - but we will need generic marshalling support in the
1661         future. 
1662         (mono_init): set the domain name in a ms compatible way
1663
1664         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
1665         String[].
1666
1667 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
1668
1669         * object.c (mono_array_clone): use alloca() instead of g_malloc  
1670         for sizes
1671
1672         * appdomain.c (mono_domain_unload): impl.
1673
1674 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
1675
1676         * appdomain.c, object.c: fix intern pool implementation.
1677         * class.c: fix alignment code.
1678
1679 2002-02-16  Radek Doulik  <rodo@ximian.com>
1680
1681         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
1682         and s2 > s1, just copy lower bytes to be compatible with little
1683         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
1684         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
1685
1686         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
1687         force big_endian to be 1 for big endian machines 
1688         (ves_icall_iconv_new_decoder): ditto
1689
1690 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
1691
1692         * socket-io.c (convert_sockopt_level_and_name): If the system
1693         doesn't define SOL_IP or SOL_TCP, get them by hand using
1694         getprotobyname() and caching the values (because this could be a
1695         slow operation).
1696         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
1697         Use the appropriate struct when the system does support it. Ie,
1698         not all systems have struct ip_mreqn so use struct ip_mreq when
1699         appropriate.
1700
1701 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
1702
1703         * reflection.c: handle finally clauses.
1704
1705 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
1706
1707         * socket-io.c: use g_snprintf() instead of snprintf.
1708
1709 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
1710
1711         * reflection.c (mono_param_get_objects): Cast second argument to
1712         mono_method_get_param_names to a const char** to silence the
1713         compiler warning.
1714
1715         * appdomain.c (mono_domain_assembly_open): Put parens around the
1716         truth statement in the for-loop.
1717
1718         * unicode.c (iconv_convert): Got rid of a compiler warning about
1719         int i being unused when the system has a new iconv.
1720         (iconv_get_length): Same.
1721
1722         * image.c (load_class_names): Cast the second argument to
1723         g_hash_table_insert() to char* to hush compiler warnings about the
1724         arg being a const.
1725         (mono_image_open): Same here.
1726
1727         * socket-io.c: Don't conditionally include sys/filio.h or
1728         sys/sockio.h here anymore since we now get them from
1729         io-layer/io-layer.h
1730         (inet_pton): If the system doesn't support inet_aton, implement
1731         using inet_addr and also #define INADDR_NONE if it isn't defined
1732         by the system.
1733
1734 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
1735
1736         * metadata.c, metadata.h: added function to get packing and size info
1737         of a typedef.
1738         * reflection.h, reflection.c: handle field RVA data. Save info about
1739         the table layout if needed. Assign typedef indexes to all the types
1740         before dumping the info about them to avoid forward reference problems.
1741
1742 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
1743
1744         * socket-io.c (convert_sockopt_level_and_name): ifdef
1745         SO_ACCEPTCONN because it is not defined on my system (old debian)
1746
1747 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
1748
1749         * opcode.c: use stddef.h to get NULL.
1750
1751 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
1752
1753         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
1754         for FIONBIO, FIONREAD and SIOCATMARK.
1755         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
1756         define INADDR_NONE and besides, inet_addr() is deprecated and
1757         should not be used. Use inet_pton() instead - it also has the
1758         added bonus that it can easily handle IPv6 addresses as well.
1759         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
1760
1761 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1762
1763         * decimal.c: remove _MSC_VER conditional.
1764
1765 2002-02-13  Dick Porter  <dick@ximian.com>
1766
1767         * socket-io.c: 
1768         * icall.c: Internal calls for Blocking, Select, Shutdown,
1769         GetSocketOption and SetSocketOption
1770
1771 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1772
1773         * assembly.cs: better resolver: use it instead of some kludgy
1774         code.
1775
1776 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
1777
1778         * reflection.c: the best way to speed-up the compiler is to avoid
1779         infinite loops.
1780
1781 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
1782
1783         * class.c (mono_class_vtable): changed the object layout
1784         (obj->vtable->class). 
1785         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
1786
1787 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1788
1789         * assembly.c: look for assemblies in the assembly dir, too.
1790
1791 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1792
1793         * class.c: fix thinko in mono_class_from_type().
1794
1795 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
1796
1797         * exception.h, exception.c: added TypeLoadException.
1798         * object.h, object.c: added mono_array_clone ().
1799         * icall.c: handle throwOnError in AssemblyGetType().
1800         Added Array.Clone().
1801         * opcode.h, opcode.c: use a single value for the opcode val.
1802         Compile fix for non-gcc compilers.
1803
1804 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
1805
1806         * opcodes.c, opcodes.h: export interesting info about opcodes.
1807
1808 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
1809
1810         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
1811         icalls. 
1812
1813         * class.c (class_compute_field_layout): set element_class for enums
1814         (mono_class_create_from_typedef): set element_class for normal classes
1815
1816         * icall.c (ves_icall_System_Enum_get_value): impl.
1817
1818         * class.c (mono_class_create_from_typedef): do not set valuetype
1819         flag for System.ValueType and System.Enum
1820
1821 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
1822
1823         * unicode.c (iconv_convert): fix big endian problem.
1824
1825 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
1826
1827         * class.c: add asserts if we are ever going to scribble over memory.
1828         * socket-io.c: not all systems have AF_IRDA defined.
1829
1830 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
1831
1832         * class.c (class_compute_field_layout): do not consider static
1833         fields to compute alignment
1834
1835 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
1836
1837         * appdomain.c (mono_appdomain_get): impl.
1838         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
1839
1840 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
1841
1842         * icall.c: ignore "file://" prefix when loading an assembly.
1843
1844 2002-01-23  Dick Porter  <dick@ximian.com>
1845
1846         * socket-io.c:
1847         * icall.c:
1848         * Makefile.am: Added socket support
1849
1850 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1851
1852         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
1853         code back.  This should return the assemblies that are loaded by
1854         the runtime on behalf of an application domain. 
1855
1856         The current implementation is still broken, it just returns every
1857         assembly loaded, but until we get real applications domain this
1858         will do.
1859
1860 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
1861
1862         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
1863         AppDomain object.
1864
1865 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1866
1867         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
1868         the mono_class_from_name lookup.
1869         (ves_icall_get_parameter_info): ditto.
1870         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
1871         method.
1872         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
1873
1874 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
1875
1876         * class.c: load also nested classes on class init.
1877         System.ValueType instance methods gets passed boxed
1878         values, unless methods in derived classed that get a pointer to the
1879         data.
1880         * icall.c: use better name parsing code in GetType().
1881         * image.c, image.h: add mono_image_loaded ().
1882         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
1883         * reflection.c, reflection.h: added mono_reflection_parse_type().
1884
1885 2002-01-22  Veronica De Santis <veron78@interfree.it>
1886
1887         * icall.c : Added mapping of internal calls for Manual and Auto reset events
1888         * threads.c : Added the implementation of internal calls for events
1889         * threads.h : Added prototypes of internal calls for events
1890         
1891 2002-01-21  Radek Doulik  <rodo@ximian.com>
1892
1893         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
1894
1895 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
1896
1897         * class.c (mono_class_init): set min_align to 1 (instead of 0)
1898         (mono_class_value_size): use min_align
1899
1900 2002-01-20  Dick Porter  <dick@ximian.com>
1901
1902         * threads.h:
1903         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
1904         so it compiles on w32.
1905
1906 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
1907
1908         * metadata.c (mono_type_stack_size): impl.
1909
1910         * class.c (mono_class_get_field): impl. memberref token
1911
1912 2002-01-16 Veronica De Santis <veron78@@interfree.it>
1913
1914         * icall.h : Added the internal calls mapping for CreateMutex_internal
1915                     and ReleaseMutex_internal.
1916         * threads.h : Added the prototype of mutexes internal calls.
1917         * threads.c : Added the implementations of mutexes internal calls.
1918
1919 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
1920
1921         * metaparse.h: removed unused file.
1922         * reflection.c, reflection.h: added stream_data_align () function 
1923         to align data in streams and keep stream aligned. Add support for
1924         exception support in method headers.
1925
1926 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
1927
1928         * unicode.c: make iconv_convert () return the number of bytess written
1929         in the output buffer.
1930
1931 2002-01-15  Dick Porter  <dick@ximian.com>
1932         * threads.c: Make the runtime's idea of infinite timeouts coincide
1933         with the class library's
1934
1935         Fix a particularly egregious bug in mono_thread_cleanup(). That
1936         code was so utterly bogus it must have been written on a Monday.
1937
1938 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
1939
1940         * reflection.h: add subtypes field to TypeBuilder.
1941         * reflection.c: encode constants for literal fields.
1942         Handle subtypes. Fix user string token (and add a zero byte)
1943         at the end.
1944         
1945 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
1946
1947         * class.c (mono_class_init): bug fix: assign slot numbers for
1948         abstract methods.
1949
1950 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1951
1952         * reflection.c: don't try to output a code RVA for abstract methods.
1953         Small fixes for method header format. Output parameter info to the
1954         ParamDef table. Save method overriding info to MethodImpl table.
1955         Fix property support. Allow typedef.extends to be a type in the
1956         building assembly.
1957         * verify.c: fix off-by-one error.
1958
1959 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
1960
1961         * class.c: fix mono_class_from_mono_type () for szarray types.
1962         Remove unused cache check in mono_class_from_type_spec().
1963         * icall.c: *type_from_name () functions handle simple arrays and byref.
1964         * reflection.c: handle byref and szarray types. Handle methods without
1965         body (gets P/Invoke compilation working). Handle types and fields in
1966         get_token ().
1967         * reflection.h: add rank to MonoTypeInfo.
1968
1969 2002-01-10  Dick Porter  <dick@ximian.com>
1970
1971         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
1972         internal calls
1973
1974 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
1975
1976         * icall.c: initialize class in type_from_handle ().
1977         Loop also in parent classes for get_method ().
1978         * reflection.c: properly encode class and valuetype types.
1979         Start on encoding TypeBuilder types. Handle fieldrefs.
1980         Use correct length when registering a user string.
1981         Handle ConstructorBuilder and MonoMethod in get_token ().
1982         Make mono_type_get_object () aware of cached types.
1983         * object.c: back out change to mono_string_new ().
1984
1985 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
1986         * object.c: mono_string_new should return a NULL when the string 
1987         passed in is NULL -- not try to deference it.
1988         
1989 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1990
1991         * icall.c: hack to make IsSubType work for TypeBuilders.
1992         * reflection.c: emit constructors before methods.
1993         Retrieve param names in mono_param_get_objects().
1994
1995 2002/01/05  Nick Drochak  <ndrochak@gol.com>
1996
1997         * Makefile.am: fix list of headers and sources so automake 1.5
1998         doesn't complain. Removed \# at end of list.
1999
2000 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
2001
2002         * reflection.c: get token for a method ref. Set return type of
2003         constructor to void.
2004         * loader.c: debug message.
2005         * class.c: typo fix.
2006
2007 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
2008
2009         * icall.c: fix array init with rank > 1. FindMembers
2010         loops in parent class as well.
2011         * image.c: do not insert nested types in name cache.
2012         * reflection.c: warning fix.
2013         * reflection.h: add override method (for interface impl).
2014
2015 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
2016
2017         * metadata.c: fix customattr decoding.
2018
2019 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
2020
2021         * rawbuffer.cs: Added native Win32 implementation, avoids using
2022         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
2023
2024 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
2025
2026         * class.c: make the low-level routines handle the cache.
2027
2028 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
2029
2030         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
2031
2032 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
2033
2034         * class.c: fix mono_array_element_size() for objects.
2035         * class.h, class.c: add properties to MonoClass and load them
2036         at init time.
2037         * icall.c: check with isinst() when assigning a value to an array
2038         instead of requiring the classes to match exactly.
2039         Implemented icall for System.Type::GetType().
2040         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
2041         enums. Handle bindingflags when looking for methods and fields.
2042         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
2043         and mono_metadata_methods_from_property().
2044         * reflection.h, reflection.c: added structures for propreties,
2045         parameters and enums. Implemented mono_property_get_object() and
2046         mono_param_get_objects().
2047
2048 2001-12-18  Dick Porter  <dick@ximian.com>
2049
2050         * file-io.c: Use mono_string_to_utf16() instead of
2051         mono_string_chars()
2052
2053         * object.c: Added mono_string_to_utf16(), which copies the non
2054         NULL-terminated MonoString into a new double-null-terminated
2055         buffer.
2056
2057 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
2058
2059         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
2060
2061 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
2062
2063         * file-io.c: raise exceptions if handle is invalid.
2064
2065 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
2066
2067         * assembly.c: yet another check for mscorlib.
2068         * class.c, class.h: load nesting info for classes.
2069         * icall.c: many new functions to support the Reflection classes.
2070         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
2071         * reflection.h, reflection.c: mono_image_create_token(),
2072         mono_assembly_get_object(), mono_type_get_object(),
2073         mono_method_get_object(), mono_field_get_object(): methods to return
2074         objects that parallel the C representation of assemblies, types,
2075         methods, fields.
2076
2077 2001-12-11  Dick Porter  <dick@ximian.com>
2078
2079         * icall.c:
2080         * file-io.c: Internal calls for file IO.
2081
2082 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
2083
2084         * tabledefs.h: missing FileAttributes.
2085         * verify.h, verify.c: use is_valid_string () to simplify and check for
2086         valid strings more correctly. Fix warnings and speeling.
2087         Check more tables: Filed, File, ModuleRef, StandAloneSig.
2088         Check code: branches, maxstack, method calls.
2089
2090 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
2091
2092         * object.c (mono_object_allocate): removed static, so that the jit
2093         can allocate value types.
2094
2095         * icall.c (ves_icall_System_DateTime_GetNow): impl.
2096
2097 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2098
2099         * class.c: init enum types right away and register the
2100         token->MonoClass map in mono_class_create_from_typedef ().
2101         * verify.h, verify.c: first cut of the verifier.
2102         * pedump.c: add --verify switch to verify metadata tables.
2103         * tabledefs.h: add some missing enums.
2104
2105 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
2106
2107         * class.c (mono_install_runtime_class_init): impl.
2108         (mono_class_init): renamed mono_class_metadata_init to
2109         mono_class_init, also removed the metadata_inited flag
2110
2111         * object.c (mono_object_isinst): use faster algorithm
2112
2113 2001-11-30  Radek Doulik  <rodo@ximian.com>
2114
2115         * mono-endian.h: reverted last change
2116         added function prototypes
2117
2118         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
2119         add mono-endian.c back
2120
2121         * mono-endian.c: returned back, as Paolo pointed out, it's needed
2122         for unaligned access, I've mistaked it with endianess. I am
2123         sorry.
2124         (mono_read16): fix reverted endianess
2125         (mono_read64): ditto
2126         (mono_read32): ditto
2127
2128 2001-11-30  Dick Porter  <dick@ximian.com>
2129
2130         * exception.c: Implement mono_exception_from_name()
2131
2132 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
2133
2134         * metadata.h, metadata.c: remove params_size and locals_size and their
2135         calculation from the metadata code: they are only usefult to the
2136         interp.
2137
2138 2001-11-29  Radek Doulik  <rodo@ximian.com>
2139
2140         * object.c (mono_ldstr): swap bytes here, it's probably not the
2141         best place, but works for me now, I'll redo it once I know mono
2142         better, also note that I add PROT_WRITE and don't reset back, also
2143         note that it's only affects big endians, so x86 should be OK
2144
2145         * mono-endian.h (read16): use just glib macros for both endians
2146
2147         * mono-endian.c: removed as glib macros are used in in
2148         mono-endian.h so we don't need to care about endianess for read
2149         macros as glib does that for us already
2150
2151 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
2152
2153         * class.h, class.h: take minimum alignment into consideration so
2154         that the fields of a class remain aligned also when in an array.
2155
2156 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2157
2158         * loader.h, loader.c: add mono_method_get_param_names().
2159         * class.c: 0-init class fields.
2160
2161 2001-11-26  Dick Porter  <dick@ximian.com>
2162
2163         * icall.c:
2164         * threads-types.h:
2165         * threads.c: New file that handles System.Threading on all platforms
2166
2167         * object.c: 
2168         * object.h: Remove the synchronisation struct from MonoObject,
2169         replace it with a pointer that gets initialised on demand
2170
2171         * Makefile.am: Replace all the system-specific threading code with
2172         a single file that uses the new wrapper library
2173
2174 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
2175
2176         * class.c, class.h: add mono_install_trampoline() so that the runtime
2177         can register a function to create a trampoline: removes the ugly
2178         requirement that a runtime needed to export arch_create_jit_trampoline.
2179         * object.h, object.c: added mono_install_handler() so that the runtime
2180         can install an handler for exceptions generated in C code (with
2181         mono_raise_exception()). Added C struct for System.Delegate.
2182         * pedump.c: removed arch_create_jit_trampoline.
2183         * reflection.c: some cleanups to allow registering user strings and
2184         later getting a token for methodrefs and fieldrefs before the assembly
2185         is built.
2186         * row-indexes.h: updates and fixes from the new ECMA specs.
2187
2188 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
2189
2190         * class.h, class.c: add enum_basetype field to MonoClass.
2191         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
2192         to get index in the constant table reated to a field, param or
2193         property.
2194         * reflection.h, reflection.c: handle constructors. Set public-key and
2195         version number of the built assembly to 0.
2196         * row-indexes.h: update from new ECMA spec.
2197
2198 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
2199
2200         * class.h, class.c: add a max_interface_id to MonoClass.
2201         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
2202         since it's used to do that. Added mono_type_type_from_obj().
2203         Make GetType() return NULL instead of segfaulting if the type was not
2204         found. Handle simple arrays in assQualifiedName.
2205         * object.h: add a struct to represent an Exception.
2206         * reflection.c: output call convention in method signature.
2207         Add code to support P/Invoke methods and fixed offsets for fields.
2208
2209 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
2210
2211         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
2212         the value.
2213         * icall.c: use mono_array_addr instead of array->vector: fixes the
2214         reflection image writing.
2215         * reflection.c: init call convention byte to 0 in method signature.
2216         Encode the property signature. Don't output property-related methods
2217         twice. Really process the properties for a type (don't cast a field to
2218         a property, my mom always told me that).
2219         Fix 64 bit issues in pointer alignment in a different and more
2220         readable way.
2221
2222 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
2223
2224         * loader.h: Removed type class from MonoDefaults, added monotype
2225
2226         * loader.c: Loaded MonoType, removed loading of Type
2227
2228         * icall.c (my_mono_new_object): Now returns a System.MonoType,
2229         and fills in System.Type._impl with a RuntimeTypeHandle rather
2230         than the actual MonoClass *
2231
2232         (ves_icall_type_from_handle): change from type_class to
2233         monotype_class
2234
2235         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
2236         implemented
2237
2238         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
2239         implemented
2240
2241         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
2242
2243         (ves_icall_System_Reflection_Assembly_GetType): implemented
2244
2245         (ves_icall_System_MonoType_assQualifiedName): implemented
2246
2247         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
2248
2249 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
2250
2251         * assembly.c (mono_assembly_open): Implement a cache for the
2252         assemblies. 
2253
2254         (mono_assembly_close): only destroy the assembly when the last
2255         reference is gone.
2256         
2257 2001-11-09  Dick Porter  <dick@ximian.com>
2258
2259         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
2260
2261 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
2262
2263         * class.c (mono_class_metadata_init): bug fix: compute the right slot
2264
2265 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
2266
2267         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
2268         from Martin Weindel.
2269         * object.h: add mono_string_chars ().
2270
2271 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
2272
2273         * reflection.c (build_compressed_metadata): Eliminates warnings
2274         and uses 64-bit clean code.
2275
2276         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
2277         (mono_type_equal): Change signature to eliminate warnings.
2278
2279 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2280
2281         * icall.c, loader.c: remove the internalcall array constructors.
2282         Changes to match the new MonoArray structure.
2283         * object.h, object.c: an array object doesn't allocate an extra
2284         vector. Add mono_array_new_full () to create jagged arrays easily.
2285
2286 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
2287
2288         * metadata.h, metadata.c: add mono_metadata_field_info () to
2289         retreive all the info about a field from vairous tables.
2290         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
2291         * class.h, class.c: augment MonoClassField with more info.
2292         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
2293         policy and load a field's RVA if needed.
2294
2295 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
2296
2297         * class.c (mono_class_metadata_init): create a trampoline for all
2298         virtual functions instead of actually compiling them.
2299
2300 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
2301
2302         * class.h, class.c: include name in MonoClassField.
2303         * class.c: fix fundamental type of System.Object and System.String.
2304         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
2305         tokens in ldtoken.
2306         * icall.c: remove internalcalls for the Reflection stuff that is now
2307         done in C# code.
2308         * loader.c: mono_field_from_memberref () implementation.
2309         * mono-endian.c: thinko (s/struct/union/g).
2310         * object.c, object.h: make the mono_string_* prototypes actually use
2311         MonoString instead of MonoObject.
2312         * reflection.c, reflection.h: updates for changes in the reflection
2313         code in corlib: we use C structures that map to the actual C# classes.
2314         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
2315         fat method header if needed and use the info from the ILGenerator for
2316         methods. Handle fields in types. Misc fixes.
2317
2318 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
2319
2320         * class.c (mono_class_metadata_init): bug fix: always allocate
2321         space for static class data
2322
2323 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
2324
2325         * class.c (mono_compute_relative_numbering): use relative
2326         numbering to support fast runtime type checks.
2327
2328 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
2329
2330         * class.c (mono_class_create_from_typeref): added debugging output
2331         to print class name when MonoDummy is returned instead of real class
2332
2333 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
2334
2335         * class.c (mono_class_metadata_init): interface offset table now
2336         contains pointers into the vtable - this is more efficient for the jit
2337
2338 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
2339
2340         * class.c (mono_class_metadata_init): use a temporary vtable (the
2341         old algorithm only worked for the interpreter, but not for the jit)
2342
2343 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
2344
2345         * loader.c (method_from_memberref): use mono_class_get to get the
2346         class of an array instead of using System.Array directly.
2347         (mono_get_method): also add MEMBERREF methods to the method cache
2348         which usefull for arrays.
2349
2350 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
2351
2352         * pedump.c (arch_compile_method): added to compute vtable entry
2353
2354         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
2355         number of interfaces.
2356         
2357         * class.h: merged MonoArrayClass into MonoClass
2358
2359         * class.c (mono_class_create_from_typedef): compute the vtable size and
2360         allocate space to include the vtable inside MonoClass
2361         (mono_class_metadata_init): initialize the vtable
2362
2363 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
2364
2365         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
2366         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
2367         * image.c: endian fixes by Laurent Rioux.
2368         * object.h, object.c: rename MonoStringObject to MonoString and
2369         MonoArrayObject to MonoArray. Change some function names to conform to
2370         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
2371         guint16* as first argument, so don't use char*.
2372         Provide macros to do the interesting things on arrays in a portable way.
2373         * threads-pthread.c: updates for the API changes and #include <sched.h>
2374         (required for sched_yield()).
2375         * icall.c: updates for the API changes above.
2376         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
2377         platforms that need them.
2378
2379 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
2380
2381         * class.c: set the correct type for all the fundamental
2382         type when loading the class.
2383
2384 2001-10-05  Dick Porter  <dick@ximian.com>
2385
2386         * threads-pthread.c (pthread_mutex_timedlock): Simple
2387         compatibility version for C libraries that lack this call.
2388
2389 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
2390
2391         * class.c: MonoTypes stored in MonoClass are stored as
2392         fundamental MonoTypes when the class represents a
2393         fundamental type (System.Int32, ...).
2394         The TypeHandle return by ldtoken is a MonoType*.
2395         * icall.c: ves_icall_get_data_chunk () write out all the
2396         PE/COFF stuff. Implement ves_icall_define_method (),
2397         ves_icall_set_method_body (), ves_icall_type_from_handle ().
2398         * image.c: properly skip unknown streams.
2399         * loader.h, loader.c: add type_class to mono_defaults.
2400         * metadata.c, metadata.h: export compute_size () as
2401         mono_metadata_compute_size () with a better interface.
2402         Typo and C&P fixes.
2403         * pedump.c: don't try to print the entry point RVA if there is no entry point.
2404         * reflection.c, reflection.h: many cleanups, fixes, output method
2405         signatures and headers, typedef and typeref info, compress the metadata
2406         tables, output all the heap streams, cli header etc.
2407         * row-indexes.h: typo fixes.
2408
2409 2001-10-04  Dick Porter  <dick@ximian.com>
2410
2411         * object.h: Add a synchronisation mutex struct to MonoObject
2412
2413         * object.c (mono_new_object): Initialise the object
2414         synchronisation mutexes
2415
2416         * icall.c: System.Threading.Monitor internal calls
2417         
2418         * threads-pthread.h:
2419         * threads-pthread.c: System.Threading.Monitor internal calls
2420
2421         * threads-types.h: New file, includes the system-specific thread
2422         structures
2423         
2424         * threads-pthread-types.h:
2425         * threads-pthread-types.c: New files, handle pthread-specific
2426         synchronisation types
2427
2428         * threads-dummy-types.h: 
2429         * threads-dummy-types.c: New files of dummy support for
2430         thread-specific types
2431
2432         * metadata.c:
2433         * image.c:
2434         * pedump.c: include mono-endian.h not endian.h
2435         
2436         * Makefile.am: More threads files.
2437         Name mono-endian.h not endian.h
2438
2439 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
2440
2441         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
2442         stuff and implement a few more bits.
2443         * icall.c: a field needs to be dereferenced twice. Do not use the same
2444         name for two variables in the same scope.
2445         * image.c, image.h: cleanups.
2446
2447 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
2448
2449         * class.c (mono_class_metadata_init): bug fix: compute the right size
2450
2451 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
2452
2453         * icall.c: implemented some of the Reflection internalcalls.
2454         * image.c, image.h: start writing out the PE/COFF image.
2455         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
2456         that does the reverse than decode_blob_size ().
2457         * object.c: use mono_metadata_encode_value (). Move here
2458         temporary implementation of mono_string_to_utf8 ().
2459         * rawbuffer.c: make malloc_map static.
2460
2461 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
2462
2463         * metadata.c: fix type comparison for arrays.
2464         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
2465         Added a couple of new classes to monodefaults.
2466         * icall.c: added a couple of Reflection-related internalcalls.
2467         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
2468         Added a byval_arg MonoType to MonoClass.
2469
2470 2001-09-28  Dick Porter  <dick@ximian.com>
2471
2472         * icall.c:
2473         * threads-pthread.h: 
2474         * threads-pthread.c: Implemented internal calls for
2475         LocalDataStoreSlot operations.  Applied mutexes around all shared
2476         data.  Reworked the thread creation and Start() operations to
2477         avoid a race condition.
2478         
2479         * threads-dummy.h:
2480         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
2481
2482 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
2483
2484         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
2485
2486 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
2487
2488         * class.c, loader.c: warn and return NULL instead of erroring out.
2489         * icall.c: added System.AppDomain::getCurDomain().
2490         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
2491
2492 2001-09-25  Dick Porter  <dick@ximian.com>
2493
2494         * threads-pthread.h:
2495         * threads-pthread.c: Implemented timed thread joining and added
2496         System.Threading.Thread::Join_internal internal call
2497
2498         * icall.c: Added System.Threading.Thread::Join_internal internal call
2499
2500         * threads-dummy.h:
2501         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
2502
2503 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
2504
2505         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
2506         mono_string_intern () to implement the semantics of the ldstr opcode
2507         and the interning of System.Strings.
2508         * icall.c: provide hooks to make String::IsIntern and String::Intern
2509         internalcalls.
2510
2511 2001-09-23  Dick Porter  <dick@ximian.com>
2512
2513         * threads-dummy.c: 
2514         * threads-dummy.h: New files of dummy threading routines
2515
2516         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
2517         support code based on system specifics
2518
2519         Rename PTHREAD_LIBS to THREAD_LIBS
2520         
2521 2001-09-23  Dick Porter  <dick@ximian.com>
2522
2523         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
2524         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
2525         internal calls.
2526         (mono_thread_init): Set up a Thread object instance to return when
2527         the main thread calls Thread.CurrentThread
2528         (mono_thread_cleanup): Wait for all subthreads to exit
2529
2530         * icall.c: New internal calls for System.Threading.Thread::Sleep
2531         (including Schedule) and CurrentThread
2532
2533         * threads.h: New file, to insulate thread-specific stuff from the
2534         rest of the code
2535
2536 2001-09-21  Dick Porter  <dick@ximian.com>
2537
2538         * threads-pthread.h: 
2539         * threads-pthread.c: New file, for handling pthreads-style
2540         threading support.  Start() now starts a new thread and executes
2541         the ThreadStart delegate instance.
2542
2543         * icall.c: Added the internalcall for
2544         System.Threading.Thread::Start_internal
2545
2546         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
2547
2548 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
2549
2550         * loader.c: work around the different signatures for delegates
2551         constructors csc generates in compiled code vs the ones compiled in mscorlib.
2552
2553 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
2554
2555         * class.h, class.c: add mono_class_get_field_from_name ().
2556         * *: Fix C comments and other ANSI C issues.
2557
2558 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
2559
2560         * endian.h, assembly.c: fix some endianness issues.
2561
2562 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
2563
2564         * loader.h, load.c: add delegate_class to mono_defaults.
2565         Handle runtime provided methods in mono_get_method ().
2566
2567 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
2568
2569         * loader.c (mono_get_method): use pinvoke for internal call
2570
2571         * icall.c: use pinvoke for internal call
2572
2573         * loader.c (method_from_memberref): set the method name
2574
2575 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
2576
2577         * metadata.c: help the compiler generate better code for
2578         mono_class_from_mono_type ().
2579
2580 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
2581
2582         * class.c (mono_class_metadata_init): delayed computing of the
2583         class size to mono_class_metadata_init ()
2584
2585 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
2586
2587         * class.c, class.h: add an interfaces member to MonoClass.
2588         * image.c, image.h: add assembly_name field to MonoImage
2589         from the assembly table.
2590         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
2591
2592 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
2593
2594         * class.c: Handle Array in mono_class_from_mono_type ().
2595         * metadata.c, pedump.c: some endian fixes.
2596
2597 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
2598
2599         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
2600         * metadata.c: fix small problem introduced with the latest commit.
2601
2602 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
2603
2604         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
2605         We don't need a MonoMetadata pointer anymore to compare signatures in
2606         mono_metadata_signature_equal (), update callers.
2607         Reduced memory usage an number of allocations for MonoMethodHeader and
2608         MonoMethodSignature.
2609
2610 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
2611
2612         * metadata.c: added compare for szarray.
2613
2614 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
2615
2616         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
2617         and add a couple more types to it and mono_defaults. Give an hint on
2618         classes that need implementing in our corlib and are referenced
2619         in mscorlib.
2620
2621 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
2622
2623         * class.h, class.c: keep track if a class is also an Enum.
2624         * loader.c: Implement a couple more types for use in libffi
2625         marshalling. Gives better diagnostics when failing to dlopen
2626         a library. Set method->klass for P/Invoke methods, too.
2627
2628 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
2629
2630         * class.c, class.h: add a MonoType this_arg to MonoClass that
2631         represents a pointer to an object of the class' type that
2632         can be used by the interpreter and later the type cache.
2633         Add best guess alignment info for valuetype objects.
2634
2635 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
2636
2637         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
2638         into MonoType: one less level of indirection and allocation and
2639         simplifies quite a bit of code. Added cache for MonoTypes that are
2640         used frequently, so that we don't need to allocate them all the time.
2641
2642 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
2643
2644         * class.c (mono_class_create_from_typedef): System.Enum is also a
2645         value type, although it does not derive from System.ValueType
2646         (maybe a bug in the ms compiler?)
2647
2648         * metadata.c (mono_type_size): return the right size for value types
2649
2650         * loader.c (mono_get_method): only initialize method header if not abstract
2651
2652         * class.c (mono_class_from_mono_type): use mono_default values. 
2653
2654 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
2655
2656         * *: use MonoClass pointers instead of <type_tokens>
2657         
2658         * class.h: new flag: metadata_inited.
2659
2660         * class.c (mono_class_metadata_init): impl.
2661         (mono_class_instance_size): impl.
2662         (mono_class_data_size): impl.
2663
2664 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
2665
2666         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
2667         MonoClass now has the name and name_space fields. 
2668         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
2669         mono_get_method () takes and optional MonoClass as argument.
2670         Removed mono_typedef_from_name() and added mono_class_token_from_name()
2671         instead that takes advantage of a map from class names to typedef
2672         tokens in MonoImage.
2673
2674 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
2675
2676         * metadata.c: zero is not a valid alignment boundary.
2677         Merge MONO_TYPE_VOID in default decoding code.
2678
2679 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
2680
2681         * image.h: merged MonoMetadata into MonoImage
2682
2683         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
2684         identify the type of elements.
2685
2686 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
2687
2688         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
2689         * cil-coff.h: split MonoMSDOSHeader and add size info.
2690         * image.c: add some consistency checks.
2691         * metadata.c: fix row size computation: one programmer
2692         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
2693         add explanation for the locator routine.
2694         Fix decoding of size in method header.
2695         
2696 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
2697
2698         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
2699         (g_concat_dir_and_file): Bring g_concat_dir_and_file
2700         function from gnome-libs.  This uses the right path separator
2701         based on the OS, and also works around a bug in some systems where
2702         a double slash is not allowed. 
2703         (default_assembly_name_resolver): Use g_concat_dir_and_file
2704         (mono_assembly_open): ditto.
2705
2706 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
2707
2708         * metadata.c (mono_metadata_signature_equal): impl.
2709
2710         * *: void is now a realy MonoType (instead of using NULL)
2711         
2712         * metadata.c (do_mono_metadata_parse_type): use
2713         mono_metadata_parse_type to parse void value.
2714
2715 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
2716
2717         * metadata.c, metadata.h: in the signature and method header store
2718         only the space required for holding the loca vars and incoming arguments.
2719
2720 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
2721
2722         * metadata.c (do_mono_metadata_parse_type): treat void like any
2723         other type (instead of assigning NULL);
2724
2725 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
2726
2727         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
2728
2729 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
2730
2731         * image.c (do_mono_image_open): added a cache for arrays.
2732
2733 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
2734
2735         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
2736         decode a single column from a row in a metadata table and changes
2737         to take advantage of it in the typedef locator (gives a nice speed up).
2738         Store offset info for function params.
2739
2740 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
2741
2742         * image.h (MONO_IMAGE_IS_CORLIB): removed 
2743
2744 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
2745
2746         * assembly.c: how could mono_assembly_close () had ever worked?
2747         * metadata.c, metadata.h: provide offset info for local vars.
2748         Implement mono_type_size () to take care of alignment as well
2749         as size (it was mono_field_type_size in cli/class.c before).
2750
2751 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
2752
2753         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
2754
2755         * assembly.h (CORLIB_NAME): set to corlib.dll
2756
2757         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
2758
2759 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
2760
2761         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
2762         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
2763         tokentype.h: massive namespace cleanup.
2764
2765 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
2766
2767         * metadata.h, metadata.c: decode exception clauses when parsing method header.
2768
2769 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
2770
2771         * metadata.c (mono_metadata_free_type): added check for type !=
2772         NULL (void) before calling mono_metadata_free_type()
2773
2774 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
2775
2776         * metadata.h, row_indexes.h: added header with enumerations to use
2777         to index in the columns from tables in metadata and to decode coded
2778         tokens: we should start using this instead of embedding magic numbers
2779         all over the code.
2780
2781 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
2782
2783         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
2784         Move metadata_t info from cli_image_info_t to MonoImage, where
2785         it's easily accessible. Changed all the uses accordingly.
2786         Added the method and class caches to MonoImage.
2787         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
2788         and mono_metadata_decode_value () signature to be more consistent
2789         with the other parse functions (and simplify code). Taken advantage
2790         of zero-length array allocation with GCC. Removed reduntant (and
2791         wrong) MonoFieldType struct and use MonoParam instead. Changed
2792         mono_metadata_parse_field_type () to use common code for parsing.
2793         Added mono_metadata_typedef_from_field () and
2794         mono_metadata_typedef_from_method () to lookup a typedef index from a
2795         field or method token.
2796         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
2797
2798 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
2799
2800         * metadata.c (mono_metadata_parse_field_type): Implement. 
2801         (do_mono_metadata_parse_type): Split engine from
2802         mono_metadata_parse_type, so that we can create smaller structures
2803         for things that just have one pointer to the MonoType (look at
2804         the MonoFieldType)
2805
2806 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
2807
2808         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
2809         as Jan Gray found out, it is incorrect. 
2810
2811 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
2812
2813         * assembly.c: Implement asssembly loading.  This loads an image
2814         and loads all the referenced assemblies.  Come to think of it, we
2815         could always do lazy loading of the assemblies. 
2816
2817         * image.c (mono_image_open): Keep loaded images in a hashtable.
2818
2819         * image.h (MonoImage): Add reference count.
2820
2821 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
2822
2823         * assembly.c (mono_assembly_open): Keep track of the file name in
2824         case the assembly has no ASSEMBLY table.
2825
2826         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
2827         from get.c here.
2828
2829 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
2830
2831         * metadata.c, metadata.h: decode local vars in method header
2832         parse function. Change callers accordingly.
2833
2834 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
2835
2836         * metadata.h, cil-coff.h: protect against multiple inclusion.
2837         Added some new structures to hold information decoded from metadata:
2838         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
2839         and relevant decoding/free functions.
2840         * metadata.c: implement decoding functions. Add warning for out of bounds
2841         index in mono_metadata_locate(). Implement mono_get_method () to retreive
2842         all the info about a method signature and invocation. Remove check on
2843         uninitialized local var in parse_mh() and fix memory leak.
2844
2845 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
2846
2847         * metadata.h: More macros.
2848
2849         * tokentype.h: New file.
2850
2851 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
2852
2853         * assembly.c: added a consistency check and initialize
2854         some structures with g_new0().
2855         * metadata.c: fixed a couple more bugs in table size computation
2856         and add other checks for out-of bound access to metadata.
2857
2858 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
2859
2860         * metatada.c: fix bugs computing table sizes. Spew a
2861         warning when index in string heap is out of bounds.
2862
2863 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
2864
2865         * metadata.h: Add a couple of macros to manipulate tokens. 
2866
2867 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
2868
2869         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
2870         cli_section_tables).
2871
2872 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
2873
2874         * metadata.c (mono_metadata_user_string): New function, provides
2875         access to the UserString heap. 
2876
2877 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
2878
2879         * metadata.c: Add inline documentation.
2880
2881 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
2882
2883         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
2884         files. 
2885
2886 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
2887
2888         * typeattr.h: New file, TypeAttribute flags. 
2889
2890 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
2891
2892         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
2893         mono_assembly_ensure_section): Section loading code.
2894         (load_section_tables): Load the sections.
2895
2896         * mono/metadata/metadata.c (mono_metadata_locate_token,
2897         mono_metadata_locate): Functions to locate the information
2898         definition given a token or a table and an index.
2899         (mono_metadata_compute_table_bases): New.
2900         (compute_size): New function to compute the sizes of the various
2901         tables.
2902
2903         * mono/metadata/metadata.h: Finish listing the different index
2904         types. 
2905
2906         * mono/metadata/pedump.c: Improve to dump new information.
2907
2908 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
2909
2910         * mono/metadata/metadata.c: Entered all the tables matching
2911         Beta2. 
2912
2913         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
2914