Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
3
4         * loader.c: don't assert when a typeref can't be loaded, give
5         a chance to the runtime to trow an exception instead.
6         * loader.h: fix warning.
7
8 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
9
10         * class.c (mono_class_proxy_vtable): added proxy support
11
12 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
13
14         * icall.c: removed last of PAL calls, added System.Environment
15         * file-io.h, file-io.c: MonoIO implementation
16         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17
18 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
19
20         * appdomain.c: do not use the byte marker in ldstr table lookup.
21         * debug-helpers.c: allow two ':' to separate class and method name.
22         * object.c: allocate arrays bounds with the GC, too.
23         * verify: add a few more checks.
24
25 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
26
27         * reflection.c: output also literal strings. Allocate parameter data
28         with GC_malloc() (thanks, Martin, for catching this!).
29
30 2002-03-26  Martin Baulig  <martin@gnome.org>
31
32         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
33         include the `this' offset in the `param_offsets'.
34
35 2002-03-25  Martin Baulig  <martin@gnome.org>
36
37         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
38         mono_debug_get_class() function to get the classes. Added new
39         relocation types for arrays and strings.
40         (mono_debug_get_class): New static function to search in all
41         referenced assemblies for a metadata token.
42
43         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
44
45 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
46
47         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
48         hold gc-allocated objects. Make the string heap a stream like the
49         others. Removed duplicated code when writing stream info.
50         Added asserts to catch possible buffer overflows. Set the sorted map
51         for tables that need sorting. Added some documentation.
52
53 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
54
55         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
56         for interned strings and vtables.
57
58 2002-03-24  Martin Baulig  <martin@gnome.org>
59
60         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
61         it in the array since it was created with g_slist_prepend().
62
63 2002-03-24  Martin Baulig  <martin@gnome.org>
64
65         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
66         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
67         (mono_debug_method_from_token): Renamed to
68         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
69         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
70
71         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
72         relocation types.
73
74         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
75
76 2002-03-24  Martin Baulig  <martin@gnome.org>
77
78         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
79         (mono_debug_method_from_token): New func.
80
81         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
82         New interncall, calls mono_debug_local_type_from_signature().
83         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
84         calls mono_debug_method_from_token().
85
86 2002-03-23  Martin Baulig  <martin@gnome.org>
87
88         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
89         specifies the number of bytes to be converted, not the array size.
90         Return the number of chars, not the number of bytes.
91         (ves_icall_iconv_get_chars): The `byteCount' argument
92         specifies the number of bytes to be converted, not the array size.
93
94 2002-03-23  Martin Baulig  <martin@gnome.org>
95
96         * reflection.h (MonoReflectionSigHelper): New type.
97
98         * reflection.c (mono_reflection_sighelper_get_signature_local),
99         (mono_reflection_sighelper_get_signature_local): New functions.
100
101         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
102         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
103         interncalls.
104
105 2002-03-23  Martin Baulig  <martin@gnome.org>
106
107         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
108         is_writeable is set.
109         (mono_raw_buffer_update): New function to write the modified map
110         back to disk.
111
112         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
113
114         * debug-symfile.c (mono_debug_update_symbol_file): Call
115         mono_raw_buffer_update() when done writing.
116
117 2002-03-23  Martin Baulig  <martin@gnome.org>
118
119         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
120
121         * debug-symfile.c: Added support for arguments and local variables.
122
123 2002-03-23  Dick Porter  <dick@ximian.com>
124
125         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
126         protected by ifdefs, hence breaking the w32 build.
127
128 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
129
130         * object.c: implement is_interned() the right way.
131
132 2002-03-21  Martin Baulig  <martin@gnome.org>
133
134         * debug-symfile.[ch]: New files to handle debugging information
135         files. There's also support to dynamically update these symbol
136         files to include machine dependent information.
137
138 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
139
140         * threads.c (mono_thread_create): new function to create thread
141         from C
142
143 2002-03-20  Martin Baulig  <martin@gnome.org>
144
145         * icall.c (ves_icall_InternalInvoke): Create a new object if the
146         method is a constructor.
147         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
148         points to ves_icall_InternalInvoke().
149
150 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
151
152         * file-io.c: Flush shouldn't throw exceptions.
153
154 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
155
156         * file-io.c: FileStream flush support; FileSetLength now
157         restores file pointer.
158
159 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
160
161         * class.c: set image for pointer classes.
162
163 2002/03/19  Nick Drochak <ndrochak@gol.com>
164
165         * sysmath.c: Forgot one.
166
167 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
168
169         * sysmath.c: Avoid redefining existing names.
170
171 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
172
173         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
174         handled by runtime as icall rather than dllimport from libm.so
175         * file-io.c, file-io.h: fixed handle argument type.
176
177 2002-03-18  Dick Porter  <dick@ximian.com>
178
179         * reflection.c (mono_image_get_type_info): rename interface to
180         iface, because of "#define interface struct" on windows.
181
182 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
183
184         * class.c, class.h: rename and export mono_ptr_class_get().
185         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
186         * reflection.c, reflection.h, icall.c: better/saner type name
187         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
188         method signatures.
189
190 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
191
192         * class.c (mono_class_init): removed hardcoded GHC_SLOT
193
194         * icall.c (ves_icall_InternalInvoke): impl.
195
196 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
197
198         * reflection.c: output the interface map table, too.
199
200 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
201
202         * class.c (class_compute_field_layout): separate computation of 
203         static field layout
204
205 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
206
207         * icall.c: added System.Buffer support.
208         * file-io.c: moved file icalls from PAL to FileStream.
209
210 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
211
212         * icall.c (ves_icall_System_Object_GetHashCode): impl.
213
214 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
215
216         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
217
218 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
219
220         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
221
222 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
223
224         * debug-helpers.{c,h}: moved here from monograph some useful functions
225         to locate a method by name/signature in a class or image. Included
226         also a small and flexible IL disassembler.
227
228 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
229
230         * reflection.c: fixup tokens in methods with small header size, too.
231
232 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
233
234         * object.c (mono_string_to_utf8): remove assert(!error), instead
235         print a warning. 
236
237 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
238
239         * icall.c: update to the new mono_Array_class_get interface.
240
241 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
242
243         * appdomain.c, object.c: Boehm-GC enable.
244         * icall.c: make get_data_chunk() support split data requests.
245         Ensure a class is initialized in more cases. Return only the first
246         property found in GetProperties() or the compiler gets confused. 
247         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
248         * reflection.h, reflection.c: add fixup mechanism for field and method
249         tokens. Initialize assembly->typeref in a single place. Output
250         properties after events. Support custom attributes for events, too.
251         Typo fix for paramter custom attrs.
252
253 2002-03-07  Martin Baulig  <martin@gnome.org>
254
255         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
256
257 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
258
259         * class.c (mono_array_class_get): fix. for multi. dim. arrays
260
261 2002-03-06  Martin Baulig  <martin@gnome.org>
262
263         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
264         non-zero lower bounds. See testcases #F10-#F13.
265
266 2002-03-05  Martin Baulig  <martin@gnome.org>
267
268         * exception.c (mono_get_exception_argument_out_of_range): New exception.
269
270         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
271         ves_icall_System_Array_GetValue(), only calculate the absolute array position
272         here.
273         (ves_icall_System_Array_SetValue): Likewise.
274         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
275         as argument and does the actual work. This function is used when copying a
276         multi-dimensional array.
277         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
278         now do all the widening conversions of value types.
279         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
280
281 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
282
283         * class.c: remove some magic numbers and use the smbolic names,
284         instead. Added init_events() to load event info at class init time.
285         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
286         and mono_metadata_methods_from_event().
287         * reflection.h, reflection.c: added support for writing out the evnets
288         related information.
289
290 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
291
292         * reflection.h, icall.c: use a different method (GetInterfaces)
293         to gather interface info and add isbyref, isprimitive and
294         ispointer to the ves_icall_get_type_info() return value.
295
296 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
297
298         * class.h: stared adding support for events.
299         * icall.c: split find_members implementation. Added debug icall to get
300         the address of an object.
301         * reflection.c: handle TypeBuilders in mono_type_get_object().
302
303 2002-03-01  Martin Baulig  <martin@gnome.org>
304
305         * icall.c (ves_icall_System_Array_GetLength): This must throw an
306         ArgumentOutOfRangeException(), not an ArgumentException().
307         (ves_icall_System_Array_GetLowerBound): Likewise.
308         (ves_icall_System_Array_GetValue): Improved argument checking.
309         (ves_icall_System_Array_SetValue): Improved argument checking.
310
311 2002-03-01  Martin Baulig  <martin@gnome.org>
312
313         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
314         called with invalid arguments rather than just dying with g_assert().
315         (ves_icall_System_Array_SetValue): Likewise.
316         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
317         raise a NotImplementedException instead.
318         (ves_icall_System_Array_GetLength): Added argument checking.
319         (ves_icall_System_Array_GetLowerBound): Added argument checking.
320
321 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
322
323         * object.h (mono_assert): new macros mono_assert and
324         mono_assert_not_reached
325
326 2002-02-28  Martin Baulig  <martin@gnome.org>
327
328         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
329         and "System::String::IsInterned" to "System::String::_IsInterned".
330
331 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
332
333         * icall.c: remove hacks for typebuilder. Added icall to create a
334         modified type from a tybebuilder.
335         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
336         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
337         to create a backing MonoClass for a TypeBuilder.
338
339 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
340
341         * class.c, class.h: more refactoring of class init.
342         Export mono_class_setup_mono_type() and mono_class_setup_parent().
343
344 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
345
346         * marshal.c, marshal.h: start of marshaling interface.
347
348 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
349
350         * icall.c: fix order in assembly qualified name icall.
351
352 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
353
354         * class.c: do not free str, since we store it in the hash table.
355         * reflection.h: add label field to MonoILExceptionInfo.
356         * reflection.c: handle references to more than one assembly. Handle
357         case when there isn't a module created in the assembly.
358
359 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
360
361         * class.c: Fix typo. Start refactoring of class init code.
362
363 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
364
365         * appdomain.c: exit with 1 on error.
366         * class.c: we already have the name in MonoClassField.
367         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
368         MonoStreamHeader instead of an offset of image->raw_metadata.
369
370 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
371
372         * appdomain.c (mono_init): Be even more descriptive about the error.
373
374 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
375
376         * appdomain.c: give the user an informative message when corlib can't
377         be loaded.
378
379 2002-02-26  Martin Baulig  <martin@gnome.org>
380
381         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
382         New icall to get the time zone data.
383
384 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
385
386         * reflection.c: set virtual and raw size of section correctly.
387         * threads.c: transfer domain information to newly created threads.
388
389 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
390
391         * class.c: when instancing a class in a domain, load the default
392         vaules for static fields from the constant table. Fix System.Enum to
393         not be an enum.
394         * icall.c: implement Object::GetType() internalcall. Implemented
395         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
396         Fixed checking of binding flags in find_members().
397         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
398         * reflection.c: handle enumerations when writing to the constant
399         table. Use a different object cache for types.
400
401
402 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
403
404         * object.c (mono_object_isinst): fix for arrays
405
406         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
407
408 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
409
410         * object.c: don't use mprotect ()  and fix intern pool hash table
411         lookup for big endian systems.
412
413 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
414
415         * icall.c: change type_is_subtype_of () signature.
416
417 2002-02-21  Mark Crichton  <crichton@gimp.org>
418
419         * rand.c, rand.h: Added random number generator for
420         System.Security.Cryptography classes.
421
422         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
423
424         * icall.c: Added System.Security.Cryptography calls.
425
426 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
427
428         * class.c, icall.c, metadata.c: better support for pointer types.
429         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
430         * reflection.c: Add support for getting custom attrs for properties
431         and simplify some code.
432
433 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
434
435         * icall.c: change getToken () and add custom attribute GetBlob()helper
436         method.
437         * reflection.h: add custom attrs array to the reflection builder structures.
438         * reflection.c: encode and emit custom attributes for all the relevant
439         reflection objects. Cache fieldref and methodref tokens. Change
440         mono_image_create_token() interface to take a MonoDynamicAssembly.
441         More complete custom attributes decoder. Load custom attributes for
442         Assembly, Field, Method and Constructor objects, too. Make the
443         returned array an Attribute[] one, not object[]. Added
444         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
445         custom attribute constructor.
446
447 2002-02-20  Dick Porter  <dick@ximian.com>
448
449         * icall.c:
450         * rawbuffer.c:
451         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
452         problem code out for now).
453
454 2002-02-19  Radek Doulik  <rodo@ximian.com>
455
456         * object.c (mono_ldstr): use hash table to avoid multiple swapping
457
458 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
459
460         * icall.c: register the GetCustomAttributes method.
461         * object.c, object.h: add mono_string_new_len ().
462         * reflection.h, reflection.c: added mono_runtime_invoke(),
463         mono_install_runtime_invoke(). Added
464         mono_reflection_get_custom_attrs () to load custom attributes and
465         create the attribute objects.
466
467 2002-02-19  Dick Porter  <dick@ximian.com>
468         * threads-dummy-types.c:
469         * threads-dummy-types.h:
470         * threads-dummy.c:
471         * threads-dummy.h:
472         * threads-pthread-types.c:
473         * threads-pthread-types.h:
474         * threads-pthread.c:
475         * threads-pthread.h:  Deleted obsolete files
476
477 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
478
479         * class.c (mono_class_vtable): runtime init the class when we
480         allocate static class data.
481
482         * icall.c (ves_icall_System_Array_SetValue): check for null values.
483
484         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
485         and String - but we will need generic marshalling support in the
486         future. 
487         (mono_init): set the domain name in a ms compatible way
488
489         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
490         String[].
491
492 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
493
494         * object.c (mono_array_clone): use alloca() instead of g_malloc  
495         for sizes
496
497         * appdomain.c (mono_domain_unload): impl.
498
499 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
500
501         * appdomain.c, object.c: fix intern pool implementation.
502         * class.c: fix alignment code.
503
504 2002-02-16  Radek Doulik  <rodo@ximian.com>
505
506         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
507         and s2 > s1, just copy lower bytes to be compatible with little
508         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
509         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
510
511         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
512         force big_endian to be 1 for big endian machines 
513         (ves_icall_iconv_new_decoder): ditto
514
515 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
516
517         * socket-io.c (convert_sockopt_level_and_name): If the system
518         doesn't define SOL_IP or SOL_TCP, get them by hand using
519         getprotobyname() and caching the values (because this could be a
520         slow operation).
521         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
522         Use the appropriate struct when the system does support it. Ie,
523         not all systems have struct ip_mreqn so use struct ip_mreq when
524         appropriate.
525
526 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
527
528         * reflection.c: handle finally clauses.
529
530 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
531
532         * socket-io.c: use g_snprintf() instead of snprintf.
533
534 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
535
536         * reflection.c (mono_param_get_objects): Cast second argument to
537         mono_method_get_param_names to a const char** to silence the
538         compiler warning.
539
540         * appdomain.c (mono_domain_assembly_open): Put parens around the
541         truth statement in the for-loop.
542
543         * unicode.c (iconv_convert): Got rid of a compiler warning about
544         int i being unused when the system has a new iconv.
545         (iconv_get_length): Same.
546
547         * image.c (load_class_names): Cast the second argument to
548         g_hash_table_insert() to char* to hush compiler warnings about the
549         arg being a const.
550         (mono_image_open): Same here.
551
552         * socket-io.c: Don't conditionally include sys/filio.h or
553         sys/sockio.h here anymore since we now get them from
554         io-layer/io-layer.h
555         (inet_pton): If the system doesn't support inet_aton, implement
556         using inet_addr and also #define INADDR_NONE if it isn't defined
557         by the system.
558
559 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
560
561         * metadata.c, metadata.h: added function to get packing and size info
562         of a typedef.
563         * reflection.h, reflection.c: handle field RVA data. Save info about
564         the table layout if needed. Assign typedef indexes to all the types
565         before dumping the info about them to avoid forward reference problems.
566
567 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
568
569         * socket-io.c (convert_sockopt_level_and_name): ifdef
570         SO_ACCEPTCONN because it is not defined on my system (old debian)
571
572 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
573
574         * opcode.c: use stddef.h to get NULL.
575
576 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
577
578         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
579         for FIONBIO, FIONREAD and SIOCATMARK.
580         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
581         define INADDR_NONE and besides, inet_addr() is deprecated and
582         should not be used. Use inet_pton() instead - it also has the
583         added bonus that it can easily handle IPv6 addresses as well.
584         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
585
586 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
587
588         * decimal.c: remove _MSC_VER conditional.
589
590 2002-02-13  Dick Porter  <dick@ximian.com>
591
592         * socket-io.c: 
593         * icall.c: Internal calls for Blocking, Select, Shutdown,
594         GetSocketOption and SetSocketOption
595
596 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
597
598         * assembly.cs: better resolver: use it instead of some kludgy
599         code.
600
601 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
602
603         * reflection.c: the best way to speed-up the compiler is to avoid
604         infinite loops.
605
606 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
607
608         * class.c (mono_class_vtable): changed the object layout
609         (obj->vtable->class). 
610         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
611
612 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
613
614         * assembly.c: look for assemblies in the assembly dir, too.
615
616 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
617
618         * class.c: fix thinko in mono_class_from_type().
619
620 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
621
622         * exception.h, exception.c: added TypeLoadException.
623         * object.h, object.c: added mono_array_clone ().
624         * icall.c: handle throwOnError in AssemblyGetType().
625         Added Array.Clone().
626         * opcode.h, opcode.c: use a single value for the opcode val.
627         Compile fix for non-gcc compilers.
628
629 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
630
631         * opcodes.c, opcodes.h: export interesting info about opcodes.
632
633 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
634
635         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
636         icalls. 
637
638         * class.c (class_compute_field_layout): set element_class for enums
639         (mono_class_create_from_typedef): set element_class for normal classes
640
641         * icall.c (ves_icall_System_Enum_get_value): impl.
642
643         * class.c (mono_class_create_from_typedef): do not set valuetype
644         flag for System.ValueType and System.Enum
645
646 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
647
648         * unicode.c (iconv_convert): fix big endian problem.
649
650 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
651
652         * class.c: add asserts if we are ever going to scribble over memory.
653         * socket-io.c: not all systems have AF_IRDA defined.
654
655 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
656
657         * class.c (class_compute_field_layout): do not consider static
658         fields to compute alignment
659
660 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
661
662         * appdomain.c (mono_appdomain_get): impl.
663         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
664
665 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
666
667         * icall.c: ignore "file://" prefix when loading an assembly.
668
669 2002-01-23  Dick Porter  <dick@ximian.com>
670
671         * socket-io.c:
672         * icall.c:
673         * Makefile.am: Added socket support
674
675 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
676
677         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
678         code back.  This should return the assemblies that are loaded by
679         the runtime on behalf of an application domain. 
680
681         The current implementation is still broken, it just returns every
682         assembly loaded, but until we get real applications domain this
683         will do.
684
685 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
686
687         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
688         AppDomain object.
689
690 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
691
692         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
693         the mono_class_from_name lookup.
694         (ves_icall_get_parameter_info): ditto.
695         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
696         method.
697         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
698
699 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
700
701         * class.c: load also nested classes on class init.
702         System.ValueType instance methods gets passed boxed
703         values, unless methods in derived classed that get a pointer to the
704         data.
705         * icall.c: use better name parsing code in GetType().
706         * image.c, image.h: add mono_image_loaded ().
707         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
708         * reflection.c, reflection.h: added mono_reflection_parse_type().
709
710 2002-01-22  Veronica De Santis <veron78@interfree.it>
711
712         * icall.c : Added mapping of internal calls for Manual and Auto reset events
713         * threads.c : Added the implementation of internal calls for events
714         * threads.h : Added prototypes of internal calls for events
715         
716 2002-01-21  Radek Doulik  <rodo@ximian.com>
717
718         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
719
720 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
721
722         * class.c (mono_class_init): set min_align to 1 (instead of 0)
723         (mono_class_value_size): use min_align
724
725 2002-01-20  Dick Porter  <dick@ximian.com>
726
727         * threads.h:
728         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
729         so it compiles on w32.
730
731 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
732
733         * metadata.c (mono_type_stack_size): impl.
734
735         * class.c (mono_class_get_field): impl. memberref token
736
737 2002-01-16 Veronica De Santis <veron78@@interfree.it>
738
739         * icall.h : Added the internal calls mapping for CreateMutex_internal
740                     and ReleaseMutex_internal.
741         * threads.h : Added the prototype of mutexes internal calls.
742         * threads.c : Added the implementations of mutexes internal calls.
743
744 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
745
746         * metaparse.h: removed unused file.
747         * reflection.c, reflection.h: added stream_data_align () function 
748         to align data in streams and keep stream aligned. Add support for
749         exception support in method headers.
750
751 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
752
753         * unicode.c: make iconv_convert () return the number of bytess written
754         in the output buffer.
755
756 2002-01-15  Dick Porter  <dick@ximian.com>
757         * threads.c: Make the runtime's idea of infinite timeouts coincide
758         with the class library's
759
760         Fix a particularly egregious bug in mono_thread_cleanup(). That
761         code was so utterly bogus it must have been written on a Monday.
762
763 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
764
765         * reflection.h: add subtypes field to TypeBuilder.
766         * reflection.c: encode constants for literal fields.
767         Handle subtypes. Fix user string token (and add a zero byte)
768         at the end.
769         
770 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
771
772         * class.c (mono_class_init): bug fix: assign slot numbers for
773         abstract methods.
774
775 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
776
777         * reflection.c: don't try to output a code RVA for abstract methods.
778         Small fixes for method header format. Output parameter info to the
779         ParamDef table. Save method overriding info to MethodImpl table.
780         Fix property support. Allow typedef.extends to be a type in the
781         building assembly.
782         * verify.c: fix off-by-one error.
783
784 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
785
786         * class.c: fix mono_class_from_mono_type () for szarray types.
787         Remove unused cache check in mono_class_from_type_spec().
788         * icall.c: *type_from_name () functions handle simple arrays and byref.
789         * reflection.c: handle byref and szarray types. Handle methods without
790         body (gets P/Invoke compilation working). Handle types and fields in
791         get_token ().
792         * reflection.h: add rank to MonoTypeInfo.
793
794 2002-01-10  Dick Porter  <dick@ximian.com>
795
796         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
797         internal calls
798
799 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
800
801         * icall.c: initialize class in type_from_handle ().
802         Loop also in parent classes for get_method ().
803         * reflection.c: properly encode class and valuetype types.
804         Start on encoding TypeBuilder types. Handle fieldrefs.
805         Use correct length when registering a user string.
806         Handle ConstructorBuilder and MonoMethod in get_token ().
807         Make mono_type_get_object () aware of cached types.
808         * object.c: back out change to mono_string_new ().
809
810 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
811         * object.c: mono_string_new should return a NULL when the string 
812         passed in is NULL -- not try to deference it.
813         
814 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
815
816         * icall.c: hack to make IsSubType work for TypeBuilders.
817         * reflection.c: emit constructors before methods.
818         Retrieve param names in mono_param_get_objects().
819
820 2002/01/05  Nick Drochak  <ndrochak@gol.com>
821
822         * Makefile.am: fix list of headers and sources so automake 1.5
823         doesn't complain. Removed \# at end of list.
824
825 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
826
827         * reflection.c: get token for a method ref. Set return type of
828         constructor to void.
829         * loader.c: debug message.
830         * class.c: typo fix.
831
832 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
833
834         * icall.c: fix array init with rank > 1. FindMembers
835         loops in parent class as well.
836         * image.c: do not insert nested types in name cache.
837         * reflection.c: warning fix.
838         * reflection.h: add override method (for interface impl).
839
840 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
841
842         * metadata.c: fix customattr decoding.
843
844 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
845
846         * rawbuffer.cs: Added native Win32 implementation, avoids using
847         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
848
849 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
850
851         * class.c: make the low-level routines handle the cache.
852
853 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
854
855         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
856
857 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
858
859         * class.c: fix mono_array_element_size() for objects.
860         * class.h, class.c: add properties to MonoClass and load them
861         at init time.
862         * icall.c: check with isinst() when assigning a value to an array
863         instead of requiring the classes to match exactly.
864         Implemented icall for System.Type::GetType().
865         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
866         enums. Handle bindingflags when looking for methods and fields.
867         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
868         and mono_metadata_methods_from_property().
869         * reflection.h, reflection.c: added structures for propreties,
870         parameters and enums. Implemented mono_property_get_object() and
871         mono_param_get_objects().
872
873 2001-12-18  Dick Porter  <dick@ximian.com>
874
875         * file-io.c: Use mono_string_to_utf16() instead of
876         mono_string_chars()
877
878         * object.c: Added mono_string_to_utf16(), which copies the non
879         NULL-terminated MonoString into a new double-null-terminated
880         buffer.
881
882 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
883
884         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
885
886 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
887
888         * file-io.c: raise exceptions if handle is invalid.
889
890 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
891
892         * assembly.c: yet another check for mscorlib.
893         * class.c, class.h: load nesting info for classes.
894         * icall.c: many new functions to support the Reflection classes.
895         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
896         * reflection.h, reflection.c: mono_image_create_token(),
897         mono_assembly_get_object(), mono_type_get_object(),
898         mono_method_get_object(), mono_field_get_object(): methods to return
899         objects that parallel the C representation of assemblies, types,
900         methods, fields.
901
902 2001-12-11  Dick Porter  <dick@ximian.com>
903
904         * icall.c:
905         * file-io.c: Internal calls for file IO.
906
907 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
908
909         * tabledefs.h: missing FileAttributes.
910         * verify.h, verify.c: use is_valid_string () to simplify and check for
911         valid strings more correctly. Fix warnings and speeling.
912         Check more tables: Filed, File, ModuleRef, StandAloneSig.
913         Check code: branches, maxstack, method calls.
914
915 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
916
917         * object.c (mono_object_allocate): removed static, so that the jit
918         can allocate value types.
919
920         * icall.c (ves_icall_System_DateTime_GetNow): impl.
921
922 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
923
924         * class.c: init enum types right away and register the
925         token->MonoClass map in mono_class_create_from_typedef ().
926         * verify.h, verify.c: first cut of the verifier.
927         * pedump.c: add --verify switch to verify metadata tables.
928         * tabledefs.h: add some missing enums.
929
930 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
931
932         * class.c (mono_install_runtime_class_init): impl.
933         (mono_class_init): renamed mono_class_metadata_init to
934         mono_class_init, also removed the metadata_inited flag
935
936         * object.c (mono_object_isinst): use faster algorithm
937
938 2001-11-30  Radek Doulik  <rodo@ximian.com>
939
940         * mono-endian.h: reverted last change
941         added function prototypes
942
943         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
944         add mono-endian.c back
945
946         * mono-endian.c: returned back, as Paolo pointed out, it's needed
947         for unaligned access, I've mistaked it with endianess. I am
948         sorry.
949         (mono_read16): fix reverted endianess
950         (mono_read64): ditto
951         (mono_read32): ditto
952
953 2001-11-30  Dick Porter  <dick@ximian.com>
954
955         * exception.c: Implement mono_exception_from_name()
956
957 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
958
959         * metadata.h, metadata.c: remove params_size and locals_size and their
960         calculation from the metadata code: they are only usefult to the
961         interp.
962
963 2001-11-29  Radek Doulik  <rodo@ximian.com>
964
965         * object.c (mono_ldstr): swap bytes here, it's probably not the
966         best place, but works for me now, I'll redo it once I know mono
967         better, also note that I add PROT_WRITE and don't reset back, also
968         note that it's only affects big endians, so x86 should be OK
969
970         * mono-endian.h (read16): use just glib macros for both endians
971
972         * mono-endian.c: removed as glib macros are used in in
973         mono-endian.h so we don't need to care about endianess for read
974         macros as glib does that for us already
975
976 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
977
978         * class.h, class.h: take minimum alignment into consideration so
979         that the fields of a class remain aligned also when in an array.
980
981 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
982
983         * loader.h, loader.c: add mono_method_get_param_names().
984         * class.c: 0-init class fields.
985
986 2001-11-26  Dick Porter  <dick@ximian.com>
987
988         * icall.c:
989         * threads-types.h:
990         * threads.c: New file that handles System.Threading on all platforms
991
992         * object.c: 
993         * object.h: Remove the synchronisation struct from MonoObject,
994         replace it with a pointer that gets initialised on demand
995
996         * Makefile.am: Replace all the system-specific threading code with
997         a single file that uses the new wrapper library
998
999 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
1000
1001         * class.c, class.h: add mono_install_trampoline() so that the runtime
1002         can register a function to create a trampoline: removes the ugly
1003         requirement that a runtime needed to export arch_create_jit_trampoline.
1004         * object.h, object.c: added mono_install_handler() so that the runtime
1005         can install an handler for exceptions generated in C code (with
1006         mono_raise_exception()). Added C struct for System.Delegate.
1007         * pedump.c: removed arch_create_jit_trampoline.
1008         * reflection.c: some cleanups to allow registering user strings and
1009         later getting a token for methodrefs and fieldrefs before the assembly
1010         is built.
1011         * row-indexes.h: updates and fixes from the new ECMA specs.
1012
1013 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
1014
1015         * class.h, class.c: add enum_basetype field to MonoClass.
1016         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
1017         to get index in the constant table reated to a field, param or
1018         property.
1019         * reflection.h, reflection.c: handle constructors. Set public-key and
1020         version number of the built assembly to 0.
1021         * row-indexes.h: update from new ECMA spec.
1022
1023 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
1024
1025         * class.h, class.c: add a max_interface_id to MonoClass.
1026         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
1027         since it's used to do that. Added mono_type_type_from_obj().
1028         Make GetType() return NULL instead of segfaulting if the type was not
1029         found. Handle simple arrays in assQualifiedName.
1030         * object.h: add a struct to represent an Exception.
1031         * reflection.c: output call convention in method signature.
1032         Add code to support P/Invoke methods and fixed offsets for fields.
1033
1034 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
1035
1036         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
1037         the value.
1038         * icall.c: use mono_array_addr instead of array->vector: fixes the
1039         reflection image writing.
1040         * reflection.c: init call convention byte to 0 in method signature.
1041         Encode the property signature. Don't output property-related methods
1042         twice. Really process the properties for a type (don't cast a field to
1043         a property, my mom always told me that).
1044         Fix 64 bit issues in pointer alignment in a different and more
1045         readable way.
1046
1047 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
1048
1049         * loader.h: Removed type class from MonoDefaults, added monotype
1050
1051         * loader.c: Loaded MonoType, removed loading of Type
1052
1053         * icall.c (my_mono_new_object): Now returns a System.MonoType,
1054         and fills in System.Type._impl with a RuntimeTypeHandle rather
1055         than the actual MonoClass *
1056
1057         (ves_icall_type_from_handle): change from type_class to
1058         monotype_class
1059
1060         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
1061         implemented
1062
1063         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
1064         implemented
1065
1066         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
1067
1068         (ves_icall_System_Reflection_Assembly_GetType): implemented
1069
1070         (ves_icall_System_MonoType_assQualifiedName): implemented
1071
1072         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
1073
1074 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
1075
1076         * assembly.c (mono_assembly_open): Implement a cache for the
1077         assemblies. 
1078
1079         (mono_assembly_close): only destroy the assembly when the last
1080         reference is gone.
1081         
1082 2001-11-09  Dick Porter  <dick@ximian.com>
1083
1084         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
1085
1086 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
1087
1088         * class.c (mono_class_metadata_init): bug fix: compute the right slot
1089
1090 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
1091
1092         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
1093         from Martin Weindel.
1094         * object.h: add mono_string_chars ().
1095
1096 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
1097
1098         * reflection.c (build_compressed_metadata): Eliminates warnings
1099         and uses 64-bit clean code.
1100
1101         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
1102         (mono_type_equal): Change signature to eliminate warnings.
1103
1104 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1105
1106         * icall.c, loader.c: remove the internalcall array constructors.
1107         Changes to match the new MonoArray structure.
1108         * object.h, object.c: an array object doesn't allocate an extra
1109         vector. Add mono_array_new_full () to create jagged arrays easily.
1110
1111 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
1112
1113         * metadata.h, metadata.c: add mono_metadata_field_info () to
1114         retreive all the info about a field from vairous tables.
1115         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
1116         * class.h, class.c: augment MonoClassField with more info.
1117         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
1118         policy and load a field's RVA if needed.
1119
1120 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
1121
1122         * class.c (mono_class_metadata_init): create a trampoline for all
1123         virtual functions instead of actually compiling them.
1124
1125 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
1126
1127         * class.h, class.c: include name in MonoClassField.
1128         * class.c: fix fundamental type of System.Object and System.String.
1129         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
1130         tokens in ldtoken.
1131         * icall.c: remove internalcalls for the Reflection stuff that is now
1132         done in C# code.
1133         * loader.c: mono_field_from_memberref () implementation.
1134         * mono-endian.c: thinko (s/struct/union/g).
1135         * object.c, object.h: make the mono_string_* prototypes actually use
1136         MonoString instead of MonoObject.
1137         * reflection.c, reflection.h: updates for changes in the reflection
1138         code in corlib: we use C structures that map to the actual C# classes.
1139         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
1140         fat method header if needed and use the info from the ILGenerator for
1141         methods. Handle fields in types. Misc fixes.
1142
1143 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
1144
1145         * class.c (mono_class_metadata_init): bug fix: always allocate
1146         space for static class data
1147
1148 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
1149
1150         * class.c (mono_compute_relative_numbering): use relative
1151         numbering to support fast runtime type checks.
1152
1153 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
1154
1155         * class.c (mono_class_create_from_typeref): added debugging output
1156         to print class name when MonoDummy is returned instead of real class
1157
1158 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
1159
1160         * class.c (mono_class_metadata_init): interface offset table now
1161         contains pointers into the vtable - this is more efficient for the jit
1162
1163 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
1164
1165         * class.c (mono_class_metadata_init): use a temporary vtable (the
1166         old algorithm only worked for the interpreter, but not for the jit)
1167
1168 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
1169
1170         * loader.c (method_from_memberref): use mono_class_get to get the
1171         class of an array instead of using System.Array directly.
1172         (mono_get_method): also add MEMBERREF methods to the method cache
1173         which usefull for arrays.
1174
1175 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
1176
1177         * pedump.c (arch_compile_method): added to compute vtable entry
1178
1179         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
1180         number of interfaces.
1181         
1182         * class.h: merged MonoArrayClass into MonoClass
1183
1184         * class.c (mono_class_create_from_typedef): compute the vtable size and
1185         allocate space to include the vtable inside MonoClass
1186         (mono_class_metadata_init): initialize the vtable
1187
1188 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
1189
1190         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
1191         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
1192         * image.c: endian fixes by Laurent Rioux.
1193         * object.h, object.c: rename MonoStringObject to MonoString and
1194         MonoArrayObject to MonoArray. Change some function names to conform to
1195         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
1196         guint16* as first argument, so don't use char*.
1197         Provide macros to do the interesting things on arrays in a portable way.
1198         * threads-pthread.c: updates for the API changes and #include <sched.h>
1199         (required for sched_yield()).
1200         * icall.c: updates for the API changes above.
1201         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
1202         platforms that need them.
1203
1204 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1205
1206         * class.c: set the correct type for all the fundamental
1207         type when loading the class.
1208
1209 2001-10-05  Dick Porter  <dick@ximian.com>
1210
1211         * threads-pthread.c (pthread_mutex_timedlock): Simple
1212         compatibility version for C libraries that lack this call.
1213
1214 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1215
1216         * class.c: MonoTypes stored in MonoClass are stored as
1217         fundamental MonoTypes when the class represents a
1218         fundamental type (System.Int32, ...).
1219         The TypeHandle return by ldtoken is a MonoType*.
1220         * icall.c: ves_icall_get_data_chunk () write out all the
1221         PE/COFF stuff. Implement ves_icall_define_method (),
1222         ves_icall_set_method_body (), ves_icall_type_from_handle ().
1223         * image.c: properly skip unknown streams.
1224         * loader.h, loader.c: add type_class to mono_defaults.
1225         * metadata.c, metadata.h: export compute_size () as
1226         mono_metadata_compute_size () with a better interface.
1227         Typo and C&P fixes.
1228         * pedump.c: don't try to print the entry point RVA if there is no entry point.
1229         * reflection.c, reflection.h: many cleanups, fixes, output method
1230         signatures and headers, typedef and typeref info, compress the metadata
1231         tables, output all the heap streams, cli header etc.
1232         * row-indexes.h: typo fixes.
1233
1234 2001-10-04  Dick Porter  <dick@ximian.com>
1235
1236         * object.h: Add a synchronisation mutex struct to MonoObject
1237
1238         * object.c (mono_new_object): Initialise the object
1239         synchronisation mutexes
1240
1241         * icall.c: System.Threading.Monitor internal calls
1242         
1243         * threads-pthread.h:
1244         * threads-pthread.c: System.Threading.Monitor internal calls
1245
1246         * threads-types.h: New file, includes the system-specific thread
1247         structures
1248         
1249         * threads-pthread-types.h:
1250         * threads-pthread-types.c: New files, handle pthread-specific
1251         synchronisation types
1252
1253         * threads-dummy-types.h: 
1254         * threads-dummy-types.c: New files of dummy support for
1255         thread-specific types
1256
1257         * metadata.c:
1258         * image.c:
1259         * pedump.c: include mono-endian.h not endian.h
1260         
1261         * Makefile.am: More threads files.
1262         Name mono-endian.h not endian.h
1263
1264 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
1265
1266         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
1267         stuff and implement a few more bits.
1268         * icall.c: a field needs to be dereferenced twice. Do not use the same
1269         name for two variables in the same scope.
1270         * image.c, image.h: cleanups.
1271
1272 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
1273
1274         * class.c (mono_class_metadata_init): bug fix: compute the right size
1275
1276 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
1277
1278         * icall.c: implemented some of the Reflection internalcalls.
1279         * image.c, image.h: start writing out the PE/COFF image.
1280         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
1281         that does the reverse than decode_blob_size ().
1282         * object.c: use mono_metadata_encode_value (). Move here
1283         temporary implementation of mono_string_to_utf8 ().
1284         * rawbuffer.c: make malloc_map static.
1285
1286 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1287
1288         * metadata.c: fix type comparison for arrays.
1289         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
1290         Added a couple of new classes to monodefaults.
1291         * icall.c: added a couple of Reflection-related internalcalls.
1292         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
1293         Added a byval_arg MonoType to MonoClass.
1294
1295 2001-09-28  Dick Porter  <dick@ximian.com>
1296
1297         * icall.c:
1298         * threads-pthread.h: 
1299         * threads-pthread.c: Implemented internal calls for
1300         LocalDataStoreSlot operations.  Applied mutexes around all shared
1301         data.  Reworked the thread creation and Start() operations to
1302         avoid a race condition.
1303         
1304         * threads-dummy.h:
1305         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
1306
1307 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
1308
1309         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
1310
1311 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
1312
1313         * class.c, loader.c: warn and return NULL instead of erroring out.
1314         * icall.c: added System.AppDomain::getCurDomain().
1315         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
1316
1317 2001-09-25  Dick Porter  <dick@ximian.com>
1318
1319         * threads-pthread.h:
1320         * threads-pthread.c: Implemented timed thread joining and added
1321         System.Threading.Thread::Join_internal internal call
1322
1323         * icall.c: Added System.Threading.Thread::Join_internal internal call
1324
1325         * threads-dummy.h:
1326         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
1327
1328 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
1329
1330         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
1331         mono_string_intern () to implement the semantics of the ldstr opcode
1332         and the interning of System.Strings.
1333         * icall.c: provide hooks to make String::IsIntern and String::Intern
1334         internalcalls.
1335
1336 2001-09-23  Dick Porter  <dick@ximian.com>
1337
1338         * threads-dummy.c: 
1339         * threads-dummy.h: New files of dummy threading routines
1340
1341         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
1342         support code based on system specifics
1343
1344         Rename PTHREAD_LIBS to THREAD_LIBS
1345         
1346 2001-09-23  Dick Porter  <dick@ximian.com>
1347
1348         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
1349         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
1350         internal calls.
1351         (mono_thread_init): Set up a Thread object instance to return when
1352         the main thread calls Thread.CurrentThread
1353         (mono_thread_cleanup): Wait for all subthreads to exit
1354
1355         * icall.c: New internal calls for System.Threading.Thread::Sleep
1356         (including Schedule) and CurrentThread
1357
1358         * threads.h: New file, to insulate thread-specific stuff from the
1359         rest of the code
1360
1361 2001-09-21  Dick Porter  <dick@ximian.com>
1362
1363         * threads-pthread.h: 
1364         * threads-pthread.c: New file, for handling pthreads-style
1365         threading support.  Start() now starts a new thread and executes
1366         the ThreadStart delegate instance.
1367
1368         * icall.c: Added the internalcall for
1369         System.Threading.Thread::Start_internal
1370
1371         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
1372
1373 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
1374
1375         * loader.c: work around the different signatures for delegates
1376         constructors csc generates in compiled code vs the ones compiled in mscorlib.
1377
1378 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1379
1380         * class.h, class.c: add mono_class_get_field_from_name ().
1381         * *: Fix C comments and other ANSI C issues.
1382
1383 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
1384
1385         * endian.h, assembly.c: fix some endianness issues.
1386
1387 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
1388
1389         * loader.h, load.c: add delegate_class to mono_defaults.
1390         Handle runtime provided methods in mono_get_method ().
1391
1392 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
1393
1394         * loader.c (mono_get_method): use pinvoke for internal call
1395
1396         * icall.c: use pinvoke for internal call
1397
1398         * loader.c (method_from_memberref): set the method name
1399
1400 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
1401
1402         * metadata.c: help the compiler generate better code for
1403         mono_class_from_mono_type ().
1404
1405 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
1406
1407         * class.c (mono_class_metadata_init): delayed computing of the
1408         class size to mono_class_metadata_init ()
1409
1410 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
1411
1412         * class.c, class.h: add an interfaces member to MonoClass.
1413         * image.c, image.h: add assembly_name field to MonoImage
1414         from the assembly table.
1415         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
1416
1417 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1418
1419         * class.c: Handle Array in mono_class_from_mono_type ().
1420         * metadata.c, pedump.c: some endian fixes.
1421
1422 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1423
1424         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
1425         * metadata.c: fix small problem introduced with the latest commit.
1426
1427 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
1428
1429         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
1430         We don't need a MonoMetadata pointer anymore to compare signatures in
1431         mono_metadata_signature_equal (), update callers.
1432         Reduced memory usage an number of allocations for MonoMethodHeader and
1433         MonoMethodSignature.
1434
1435 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
1436
1437         * metadata.c: added compare for szarray.
1438
1439 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
1440
1441         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
1442         and add a couple more types to it and mono_defaults. Give an hint on
1443         classes that need implementing in our corlib and are referenced
1444         in mscorlib.
1445
1446 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
1447
1448         * class.h, class.c: keep track if a class is also an Enum.
1449         * loader.c: Implement a couple more types for use in libffi
1450         marshalling. Gives better diagnostics when failing to dlopen
1451         a library. Set method->klass for P/Invoke methods, too.
1452
1453 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
1454
1455         * class.c, class.h: add a MonoType this_arg to MonoClass that
1456         represents a pointer to an object of the class' type that
1457         can be used by the interpreter and later the type cache.
1458         Add best guess alignment info for valuetype objects.
1459
1460 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
1461
1462         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
1463         into MonoType: one less level of indirection and allocation and
1464         simplifies quite a bit of code. Added cache for MonoTypes that are
1465         used frequently, so that we don't need to allocate them all the time.
1466
1467 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
1468
1469         * class.c (mono_class_create_from_typedef): System.Enum is also a
1470         value type, although it does not derive from System.ValueType
1471         (maybe a bug in the ms compiler?)
1472
1473         * metadata.c (mono_type_size): return the right size for value types
1474
1475         * loader.c (mono_get_method): only initialize method header if not abstract
1476
1477         * class.c (mono_class_from_mono_type): use mono_default values. 
1478
1479 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
1480
1481         * *: use MonoClass pointers instead of <type_tokens>
1482         
1483         * class.h: new flag: metadata_inited.
1484
1485         * class.c (mono_class_metadata_init): impl.
1486         (mono_class_instance_size): impl.
1487         (mono_class_data_size): impl.
1488
1489 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1490
1491         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
1492         MonoClass now has the name and name_space fields. 
1493         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
1494         mono_get_method () takes and optional MonoClass as argument.
1495         Removed mono_typedef_from_name() and added mono_class_token_from_name()
1496         instead that takes advantage of a map from class names to typedef
1497         tokens in MonoImage.
1498
1499 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
1500
1501         * metadata.c: zero is not a valid alignment boundary.
1502         Merge MONO_TYPE_VOID in default decoding code.
1503
1504 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
1505
1506         * image.h: merged MonoMetadata into MonoImage
1507
1508         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
1509         identify the type of elements.
1510
1511 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1512
1513         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
1514         * cil-coff.h: split MonoMSDOSHeader and add size info.
1515         * image.c: add some consistency checks.
1516         * metadata.c: fix row size computation: one programmer
1517         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
1518         add explanation for the locator routine.
1519         Fix decoding of size in method header.
1520         
1521 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
1522
1523         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
1524         (g_concat_dir_and_file): Bring g_concat_dir_and_file
1525         function from gnome-libs.  This uses the right path separator
1526         based on the OS, and also works around a bug in some systems where
1527         a double slash is not allowed. 
1528         (default_assembly_name_resolver): Use g_concat_dir_and_file
1529         (mono_assembly_open): ditto.
1530
1531 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
1532
1533         * metadata.c (mono_metadata_signature_equal): impl.
1534
1535         * *: void is now a realy MonoType (instead of using NULL)
1536         
1537         * metadata.c (do_mono_metadata_parse_type): use
1538         mono_metadata_parse_type to parse void value.
1539
1540 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
1541
1542         * metadata.c, metadata.h: in the signature and method header store
1543         only the space required for holding the loca vars and incoming arguments.
1544
1545 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
1546
1547         * metadata.c (do_mono_metadata_parse_type): treat void like any
1548         other type (instead of assigning NULL);
1549
1550 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
1551
1552         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
1553
1554 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
1555
1556         * image.c (do_mono_image_open): added a cache for arrays.
1557
1558 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
1559
1560         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
1561         decode a single column from a row in a metadata table and changes
1562         to take advantage of it in the typedef locator (gives a nice speed up).
1563         Store offset info for function params.
1564
1565 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
1566
1567         * image.h (MONO_IMAGE_IS_CORLIB): removed 
1568
1569 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
1570
1571         * assembly.c: how could mono_assembly_close () had ever worked?
1572         * metadata.c, metadata.h: provide offset info for local vars.
1573         Implement mono_type_size () to take care of alignment as well
1574         as size (it was mono_field_type_size in cli/class.c before).
1575
1576 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
1577
1578         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
1579
1580         * assembly.h (CORLIB_NAME): set to corlib.dll
1581
1582         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
1583
1584 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
1585
1586         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
1587         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
1588         tokentype.h: massive namespace cleanup.
1589
1590 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1591
1592         * metadata.h, metadata.c: decode exception clauses when parsing method header.
1593
1594 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
1595
1596         * metadata.c (mono_metadata_free_type): added check for type !=
1597         NULL (void) before calling mono_metadata_free_type()
1598
1599 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
1600
1601         * metadata.h, row_indexes.h: added header with enumerations to use
1602         to index in the columns from tables in metadata and to decode coded
1603         tokens: we should start using this instead of embedding magic numbers
1604         all over the code.
1605
1606 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
1607
1608         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
1609         Move metadata_t info from cli_image_info_t to MonoImage, where
1610         it's easily accessible. Changed all the uses accordingly.
1611         Added the method and class caches to MonoImage.
1612         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
1613         and mono_metadata_decode_value () signature to be more consistent
1614         with the other parse functions (and simplify code). Taken advantage
1615         of zero-length array allocation with GCC. Removed reduntant (and
1616         wrong) MonoFieldType struct and use MonoParam instead. Changed
1617         mono_metadata_parse_field_type () to use common code for parsing.
1618         Added mono_metadata_typedef_from_field () and
1619         mono_metadata_typedef_from_method () to lookup a typedef index from a
1620         field or method token.
1621         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
1622
1623 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
1624
1625         * metadata.c (mono_metadata_parse_field_type): Implement. 
1626         (do_mono_metadata_parse_type): Split engine from
1627         mono_metadata_parse_type, so that we can create smaller structures
1628         for things that just have one pointer to the MonoType (look at
1629         the MonoFieldType)
1630
1631 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
1632
1633         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
1634         as Jan Gray found out, it is incorrect. 
1635
1636 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
1637
1638         * assembly.c: Implement asssembly loading.  This loads an image
1639         and loads all the referenced assemblies.  Come to think of it, we
1640         could always do lazy loading of the assemblies. 
1641
1642         * image.c (mono_image_open): Keep loaded images in a hashtable.
1643
1644         * image.h (MonoImage): Add reference count.
1645
1646 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
1647
1648         * assembly.c (mono_assembly_open): Keep track of the file name in
1649         case the assembly has no ASSEMBLY table.
1650
1651         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
1652         from get.c here.
1653
1654 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1655
1656         * metadata.c, metadata.h: decode local vars in method header
1657         parse function. Change callers accordingly.
1658
1659 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
1660
1661         * metadata.h, cil-coff.h: protect against multiple inclusion.
1662         Added some new structures to hold information decoded from metadata:
1663         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
1664         and relevant decoding/free functions.
1665         * metadata.c: implement decoding functions. Add warning for out of bounds
1666         index in mono_metadata_locate(). Implement mono_get_method () to retreive
1667         all the info about a method signature and invocation. Remove check on
1668         uninitialized local var in parse_mh() and fix memory leak.
1669
1670 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
1671
1672         * metadata.h: More macros.
1673
1674         * tokentype.h: New file.
1675
1676 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
1677
1678         * assembly.c: added a consistency check and initialize
1679         some structures with g_new0().
1680         * metadata.c: fixed a couple more bugs in table size computation
1681         and add other checks for out-of bound access to metadata.
1682
1683 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
1684
1685         * metatada.c: fix bugs computing table sizes. Spew a
1686         warning when index in string heap is out of bounds.
1687
1688 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
1689
1690         * metadata.h: Add a couple of macros to manipulate tokens. 
1691
1692 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1693
1694         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
1695         cli_section_tables).
1696
1697 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
1698
1699         * metadata.c (mono_metadata_user_string): New function, provides
1700         access to the UserString heap. 
1701
1702 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
1703
1704         * metadata.c: Add inline documentation.
1705
1706 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
1707
1708         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
1709         files. 
1710
1711 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
1712
1713         * typeattr.h: New file, TypeAttribute flags. 
1714
1715 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
1716
1717         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
1718         mono_assembly_ensure_section): Section loading code.
1719         (load_section_tables): Load the sections.
1720
1721         * mono/metadata/metadata.c (mono_metadata_locate_token,
1722         mono_metadata_locate): Functions to locate the information
1723         definition given a token or a table and an index.
1724         (mono_metadata_compute_table_bases): New.
1725         (compute_size): New function to compute the sizes of the various
1726         tables.
1727
1728         * mono/metadata/metadata.h: Finish listing the different index
1729         types. 
1730
1731         * mono/metadata/pedump.c: Improve to dump new information.
1732
1733 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
1734
1735         * mono/metadata/metadata.c: Entered all the tables matching
1736         Beta2. 
1737
1738         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
1739