Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
3
4         * class.c, class.h: add mono_install_trampoline() so that the runtime
5         can register a function to create a trampoline: removes the ugly
6         requirement that a runtime needed to export arch_create_jit_trampoline.
7         * object.h, object.c: added mono_install_handler() so that the runtime
8         can install an handler for exceptions generated in C code (with
9         mono_raise_exception()). Added C struct for System.Delegate.
10         * pedump.c: removed arch_create_jit_trampoline.
11         * reflection.c: some cleanups to allow registering user strings and
12         later getting a token for methodrefs and fieldrefs before the assembly
13         is built.
14         * row-indexes.h: updates and fixes from the new ECMA specs.
15
16 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
17
18         * class.h, class.c: add enum_basetype field to MonoClass.
19         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
20         to get index in the constant table reated to a field, param or
21         property.
22         * reflection.h, reflection.c: handle constructors. Set public-key and
23         version number of the built assembly to 0.
24         * row-indexes.h: update from new ECMA spec.
25
26 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27
28         * class.h, class.c: add a max_interface_id to MonoClass.
29         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
30         since it's used to do that. Added mono_type_type_from_obj().
31         Make GetType() return NULL instead of segfaulting if the type was not
32         found. Handle simple arrays in assQualifiedName.
33         * object.h: add a struct to represent an Exception.
34         * reflection.c: output call convention in method signature.
35         Add code to support P/Invoke methods and fixed offsets for fields.
36
37 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
38
39         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
40         the value.
41         * icall.c: use mono_array_addr instead of array->vector: fixes the
42         reflection image writing.
43         * reflection.c: init call convention byte to 0 in method signature.
44         Encode the property signature. Don't output property-related methods
45         twice. Really process the properties for a type (don't cast a field to
46         a property, my mom always told me that).
47         Fix 64 bit issues in pointer alignment in a different and more
48         readable way.
49
50 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
51
52         * loader.h: Removed type class from MonoDefaults, added monotype
53
54         * loader.c: Loaded MonoType, removed loading of Type
55
56         * icall.c (my_mono_new_object): Now returns a System.MonoType,
57         and fills in System.Type._impl with a RuntimeTypeHandle rather
58         than the actual MonoClass *
59
60         (ves_icall_type_from_handle): change from type_class to
61         monotype_class
62
63         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
64         implemented
65
66         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
67         implemented
68
69         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
70
71         (ves_icall_System_Reflection_Assembly_GetType): implemented
72
73         (ves_icall_System_MonoType_assQualifiedName): implemented
74
75         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
76
77 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
78
79         * assembly.c (mono_assembly_open): Implement a cache for the
80         assemblies. 
81
82         (mono_assembly_close): only destroy the assembly when the last
83         reference is gone.
84         
85 2001-11-09  Dick Porter  <dick@ximian.com>
86
87         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
88
89 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
90
91         * class.c (mono_class_metadata_init): bug fix: compute the right slot
92
93 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
94
95         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
96         from Martin Weindel.
97         * object.h: add mono_string_chars ().
98
99 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
100
101         * reflection.c (build_compressed_metadata): Eliminates warnings
102         and uses 64-bit clean code.
103
104         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
105         (mono_type_equal): Change signature to eliminate warnings.
106
107 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
108
109         * icall.c, loader.c: remove the internalcall array constructors.
110         Changes to match the new MonoArray structure.
111         * object.h, object.c: an array object doesn't allocate an extra
112         vector. Add mono_array_new_full () to create jagged arrays easily.
113
114 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
115
116         * metadata.h, metadata.c: add mono_metadata_field_info () to
117         retreive all the info about a field from vairous tables.
118         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
119         * class.h, class.c: augment MonoClassField with more info.
120         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
121         policy and load a field's RVA if needed.
122
123 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
124
125         * class.c (mono_class_metadata_init): create a trampoline for all
126         virtual functions instead of actually compiling them.
127
128 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
129
130         * class.h, class.c: include name in MonoClassField.
131         * class.c: fix fundamental type of System.Object and System.String.
132         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
133         tokens in ldtoken.
134         * icall.c: remove internalcalls for the Reflection stuff that is now
135         done in C# code.
136         * loader.c: mono_field_from_memberref () implementation.
137         * mono-endian.c: thinko (s/struct/union/g).
138         * object.c, object.h: make the mono_string_* prototypes actually use
139         MonoString instead of MonoObject.
140         * reflection.c, reflection.h: updates for changes in the reflection
141         code in corlib: we use C structures that map to the actual C# classes.
142         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
143         fat method header if needed and use the info from the ILGenerator for
144         methods. Handle fields in types. Misc fixes.
145
146 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
147
148         * class.c (mono_class_metadata_init): bug fix: always allocate
149         space for static class data
150
151 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
152
153         * class.c (mono_compute_relative_numbering): use relative
154         numbering to support fast runtime type checks.
155
156 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
157
158         * class.c (mono_class_create_from_typeref): added debugging output
159         to print class name when MonoDummy is returned instead of real class
160
161 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
162
163         * class.c (mono_class_metadata_init): interface offset table now
164         contains pointers into the vtable - this is more efficient for the jit
165
166 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
167
168         * class.c (mono_class_metadata_init): use a temporary vtable (the
169         old algorithm only worked for the interpreter, but not for the jit)
170
171 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
172
173         * loader.c (method_from_memberref): use mono_class_get to get the
174         class of an array instead of using System.Array directly.
175         (mono_get_method): also add MEMBERREF methods to the method cache
176         which usefull for arrays.
177
178 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
179
180         * pedump.c (arch_compile_method): added to compute vtable entry
181
182         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
183         number of interfaces.
184         
185         * class.h: merged MonoArrayClass into MonoClass
186
187         * class.c (mono_class_create_from_typedef): compute the vtable size and
188         allocate space to include the vtable inside MonoClass
189         (mono_class_metadata_init): initialize the vtable
190
191 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
192
193         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
194         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
195         * image.c: endian fixes by Laurent Rioux.
196         * object.h, object.c: rename MonoStringObject to MonoString and
197         MonoArrayObject to MonoArray. Change some function names to conform to
198         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
199         guint16* as first argument, so don't use char*.
200         Provide macros to do the interesting things on arrays in a portable way.
201         * threads-pthread.c: updates for the API changes and #include <sched.h>
202         (required for sched_yield()).
203         * icall.c: updates for the API changes above.
204         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
205         platforms that need them.
206
207 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
208
209         * class.c: set the correct type for all the fundamental
210         type when loading the class.
211
212 2001-10-05  Dick Porter  <dick@ximian.com>
213
214         * threads-pthread.c (pthread_mutex_timedlock): Simple
215         compatibility version for C libraries that lack this call.
216
217 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
218
219         * class.c: MonoTypes stored in MonoClass are stored as
220         fundamental MonoTypes when the class represents a
221         fundamental type (System.Int32, ...).
222         The TypeHandle return by ldtoken is a MonoType*.
223         * icall.c: ves_icall_get_data_chunk () write out all the
224         PE/COFF stuff. Implement ves_icall_define_method (),
225         ves_icall_set_method_body (), ves_icall_type_from_handle ().
226         * image.c: properly skip unknown streams.
227         * loader.h, loader.c: add type_class to mono_defaults.
228         * metadata.c, metadata.h: export compute_size () as
229         mono_metadata_compute_size () with a better interface.
230         Typo and C&P fixes.
231         * pedump.c: don't try to print the entry point RVA if there is no entry point.
232         * reflection.c, reflection.h: many cleanups, fixes, output method
233         signatures and headers, typedef and typeref info, compress the metadata
234         tables, output all the heap streams, cli header etc.
235         * row-indexes.h: typo fixes.
236
237 2001-10-04  Dick Porter  <dick@ximian.com>
238
239         * object.h: Add a synchronisation mutex struct to MonoObject
240
241         * object.c (mono_new_object): Initialise the object
242         synchronisation mutexes
243
244         * icall.c: System.Threading.Monitor internal calls
245         
246         * threads-pthread.h:
247         * threads-pthread.c: System.Threading.Monitor internal calls
248
249         * threads-types.h: New file, includes the system-specific thread
250         structures
251         
252         * threads-pthread-types.h:
253         * threads-pthread-types.c: New files, handle pthread-specific
254         synchronisation types
255
256         * threads-dummy-types.h: 
257         * threads-dummy-types.c: New files of dummy support for
258         thread-specific types
259
260         * metadata.c:
261         * image.c:
262         * pedump.c: include mono-endian.h not endian.h
263         
264         * Makefile.am: More threads files.
265         Name mono-endian.h not endian.h
266
267 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
268
269         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
270         stuff and implement a few more bits.
271         * icall.c: a field needs to be dereferenced twice. Do not use the same
272         name for two variables in the same scope.
273         * image.c, image.h: cleanups.
274
275 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
276
277         * class.c (mono_class_metadata_init): bug fix: compute the right size
278
279 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
280
281         * icall.c: implemented some of the Reflection internalcalls.
282         * image.c, image.h: start writing out the PE/COFF image.
283         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
284         that does the reverse than decode_blob_size ().
285         * object.c: use mono_metadata_encode_value (). Move here
286         temporary implementation of mono_string_to_utf8 ().
287         * rawbuffer.c: make malloc_map static.
288
289 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
290
291         * metadata.c: fix type comparison for arrays.
292         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
293         Added a couple of new classes to monodefaults.
294         * icall.c: added a couple of Reflection-related internalcalls.
295         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
296         Added a byval_arg MonoType to MonoClass.
297
298 2001-09-28  Dick Porter  <dick@ximian.com>
299
300         * icall.c:
301         * threads-pthread.h: 
302         * threads-pthread.c: Implemented internal calls for
303         LocalDataStoreSlot operations.  Applied mutexes around all shared
304         data.  Reworked the thread creation and Start() operations to
305         avoid a race condition.
306         
307         * threads-dummy.h:
308         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
309
310 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
311
312         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
313
314 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
315
316         * class.c, loader.c: warn and return NULL instead of erroring out.
317         * icall.c: added System.AppDomain::getCurDomain().
318         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
319
320 2001-09-25  Dick Porter  <dick@ximian.com>
321
322         * threads-pthread.h:
323         * threads-pthread.c: Implemented timed thread joining and added
324         System.Threading.Thread::Join_internal internal call
325
326         * icall.c: Added System.Threading.Thread::Join_internal internal call
327
328         * threads-dummy.h:
329         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
330
331 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
332
333         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
334         mono_string_intern () to implement the semantics of the ldstr opcode
335         and the interning of System.Strings.
336         * icall.c: provide hooks to make String::IsIntern and String::Intern
337         internalcalls.
338
339 2001-09-23  Dick Porter  <dick@ximian.com>
340
341         * threads-dummy.c: 
342         * threads-dummy.h: New files of dummy threading routines
343
344         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
345         support code based on system specifics
346
347         Rename PTHREAD_LIBS to THREAD_LIBS
348         
349 2001-09-23  Dick Porter  <dick@ximian.com>
350
351         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
352         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
353         internal calls.
354         (mono_thread_init): Set up a Thread object instance to return when
355         the main thread calls Thread.CurrentThread
356         (mono_thread_cleanup): Wait for all subthreads to exit
357
358         * icall.c: New internal calls for System.Threading.Thread::Sleep
359         (including Schedule) and CurrentThread
360
361         * threads.h: New file, to insulate thread-specific stuff from the
362         rest of the code
363
364 2001-09-21  Dick Porter  <dick@ximian.com>
365
366         * threads-pthread.h: 
367         * threads-pthread.c: New file, for handling pthreads-style
368         threading support.  Start() now starts a new thread and executes
369         the ThreadStart delegate instance.
370
371         * icall.c: Added the internalcall for
372         System.Threading.Thread::Start_internal
373
374         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
375
376 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
377
378         * loader.c: work around the different signatures for delegates
379         constructors csc generates in compiled code vs the ones compiled in mscorlib.
380
381 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
382
383         * class.h, class.c: add mono_class_get_field_from_name ().
384         * *: Fix C comments and other ANSI C issues.
385
386 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
387
388         * endian.h, assembly.c: fix some endianness issues.
389
390 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
391
392         * loader.h, load.c: add delegate_class to mono_defaults.
393         Handle runtime provided methods in mono_get_method ().
394
395 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
396
397         * loader.c (mono_get_method): use pinvoke for internal call
398
399         * icall.c: use pinvoke for internal call
400
401         * loader.c (method_from_memberref): set the method name
402
403 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
404
405         * metadata.c: help the compiler generate better code for
406         mono_class_from_mono_type ().
407
408 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
409
410         * class.c (mono_class_metadata_init): delayed computing of the
411         class size to mono_class_metadata_init ()
412
413 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
414
415         * class.c, class.h: add an interfaces member to MonoClass.
416         * image.c, image.h: add assembly_name field to MonoImage
417         from the assembly table.
418         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
419
420 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
421
422         * class.c: Handle Array in mono_class_from_mono_type ().
423         * metadata.c, pedump.c: some endian fixes.
424
425 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
426
427         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
428         * metadata.c: fix small problem introduced with the latest commit.
429
430 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
431
432         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
433         We don't need a MonoMetadata pointer anymore to compare signatures in
434         mono_metadata_signature_equal (), update callers.
435         Reduced memory usage an number of allocations for MonoMethodHeader and
436         MonoMethodSignature.
437
438 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
439
440         * metadata.c: added compare for szarray.
441
442 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
443
444         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
445         and add a couple more types to it and mono_defaults. Give an hint on
446         classes that need implementing in our corlib and are referenced
447         in mscorlib.
448
449 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
450
451         * class.h, class.c: keep track if a class is also an Enum.
452         * loader.c: Implement a couple more types for use in libffi
453         marshalling. Gives better diagnostics when failing to dlopen
454         a library. Set method->klass for P/Invoke methods, too.
455
456 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
457
458         * class.c, class.h: add a MonoType this_arg to MonoClass that
459         represents a pointer to an object of the class' type that
460         can be used by the interpreter and later the type cache.
461         Add best guess alignment info for valuetype objects.
462
463 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
464
465         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
466         into MonoType: one less level of indirection and allocation and
467         simplifies quite a bit of code. Added cache for MonoTypes that are
468         used frequently, so that we don't need to allocate them all the time.
469
470 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
471
472         * class.c (mono_class_create_from_typedef): System.Enum is also a
473         value type, although it does not derive from System.ValueType
474         (maybe a bug in the ms compiler?)
475
476         * metadata.c (mono_type_size): return the right size for value types
477
478         * loader.c (mono_get_method): only initialize method header if not abstract
479
480         * class.c (mono_class_from_mono_type): use mono_default values. 
481
482 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
483
484         * *: use MonoClass pointers instead of <type_tokens>
485         
486         * class.h: new flag: metadata_inited.
487
488         * class.c (mono_class_metadata_init): impl.
489         (mono_class_instance_size): impl.
490         (mono_class_data_size): impl.
491
492 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
493
494         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
495         MonoClass now has the name and name_space fields. 
496         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
497         mono_get_method () takes and optional MonoClass as argument.
498         Removed mono_typedef_from_name() and added mono_class_token_from_name()
499         instead that takes advantage of a map from class names to typedef
500         tokens in MonoImage.
501
502 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
503
504         * metadata.c: zero is not a valid alignment boundary.
505         Merge MONO_TYPE_VOID in default decoding code.
506
507 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
508
509         * image.h: merged MonoMetadata into MonoImage
510
511         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
512         identify the type of elements.
513
514 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
515
516         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
517         * cil-coff.h: split MonoMSDOSHeader and add size info.
518         * image.c: add some consistency checks.
519         * metadata.c: fix row size computation: one programmer
520         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
521         add explanation for the locator routine.
522         Fix decoding of size in method header.
523         
524 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
525
526         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
527         (g_concat_dir_and_file): Bring g_concat_dir_and_file
528         function from gnome-libs.  This uses the right path separator
529         based on the OS, and also works around a bug in some systems where
530         a double slash is not allowed. 
531         (default_assembly_name_resolver): Use g_concat_dir_and_file
532         (mono_assembly_open): ditto.
533
534 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
535
536         * metadata.c (mono_metadata_signature_equal): impl.
537
538         * *: void is now a realy MonoType (instead of using NULL)
539         
540         * metadata.c (do_mono_metadata_parse_type): use
541         mono_metadata_parse_type to parse void value.
542
543 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
544
545         * metadata.c, metadata.h: in the signature and method header store
546         only the space required for holding the loca vars and incoming arguments.
547
548 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
549
550         * metadata.c (do_mono_metadata_parse_type): treat void like any
551         other type (instead of assigning NULL);
552
553 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
554
555         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
556
557 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
558
559         * image.c (do_mono_image_open): added a cache for arrays.
560
561 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
562
563         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
564         decode a single column from a row in a metadata table and changes
565         to take advantage of it in the typedef locator (gives a nice speed up).
566         Store offset info for function params.
567
568 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
569
570         * image.h (MONO_IMAGE_IS_CORLIB): removed 
571
572 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
573
574         * assembly.c: how could mono_assembly_close () had ever worked?
575         * metadata.c, metadata.h: provide offset info for local vars.
576         Implement mono_type_size () to take care of alignment as well
577         as size (it was mono_field_type_size in cli/class.c before).
578
579 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
580
581         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
582
583         * assembly.h (CORLIB_NAME): set to corlib.dll
584
585         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
586
587 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
588
589         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
590         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
591         tokentype.h: massive namespace cleanup.
592
593 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
594
595         * metadata.h, metadata.c: decode exception clauses when parsing method header.
596
597 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
598
599         * metadata.c (mono_metadata_free_type): added check for type !=
600         NULL (void) before calling mono_metadata_free_type()
601
602 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
603
604         * metadata.h, row_indexes.h: added header with enumerations to use
605         to index in the columns from tables in metadata and to decode coded
606         tokens: we should start using this instead of embedding magic numbers
607         all over the code.
608
609 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
610
611         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
612         Move metadata_t info from cli_image_info_t to MonoImage, where
613         it's easily accessible. Changed all the uses accordingly.
614         Added the method and class caches to MonoImage.
615         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
616         and mono_metadata_decode_value () signature to be more consistent
617         with the other parse functions (and simplify code). Taken advantage
618         of zero-length array allocation with GCC. Removed reduntant (and
619         wrong) MonoFieldType struct and use MonoParam instead. Changed
620         mono_metadata_parse_field_type () to use common code for parsing.
621         Added mono_metadata_typedef_from_field () and
622         mono_metadata_typedef_from_method () to lookup a typedef index from a
623         field or method token.
624         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
625
626 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
627
628         * metadata.c (mono_metadata_parse_field_type): Implement. 
629         (do_mono_metadata_parse_type): Split engine from
630         mono_metadata_parse_type, so that we can create smaller structures
631         for things that just have one pointer to the MonoType (look at
632         the MonoFieldType)
633
634 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
635
636         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
637         as Jan Gray found out, it is incorrect. 
638
639 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
640
641         * assembly.c: Implement asssembly loading.  This loads an image
642         and loads all the referenced assemblies.  Come to think of it, we
643         could always do lazy loading of the assemblies. 
644
645         * image.c (mono_image_open): Keep loaded images in a hashtable.
646
647         * image.h (MonoImage): Add reference count.
648
649 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
650
651         * assembly.c (mono_assembly_open): Keep track of the file name in
652         case the assembly has no ASSEMBLY table.
653
654         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
655         from get.c here.
656
657 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
658
659         * metadata.c, metadata.h: decode local vars in method header
660         parse function. Change callers accordingly.
661
662 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
663
664         * metadata.h, cil-coff.h: protect against multiple inclusion.
665         Added some new structures to hold information decoded from metadata:
666         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
667         and relevant decoding/free functions.
668         * metadata.c: implement decoding functions. Add warning for out of bounds
669         index in mono_metadata_locate(). Implement mono_get_method () to retreive
670         all the info about a method signature and invocation. Remove check on
671         uninitialized local var in parse_mh() and fix memory leak.
672
673 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
674
675         * metadata.h: More macros.
676
677         * tokentype.h: New file.
678
679 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
680
681         * assembly.c: added a consistency check and initialize
682         some structures with g_new0().
683         * metadata.c: fixed a couple more bugs in table size computation
684         and add other checks for out-of bound access to metadata.
685
686 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
687
688         * metatada.c: fix bugs computing table sizes. Spew a
689         warning when index in string heap is out of bounds.
690
691 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
692
693         * metadata.h: Add a couple of macros to manipulate tokens. 
694
695 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
696
697         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
698         cli_section_tables).
699
700 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
701
702         * metadata.c (mono_metadata_user_string): New function, provides
703         access to the UserString heap. 
704
705 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
706
707         * metadata.c: Add inline documentation.
708
709 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
710
711         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
712         files. 
713
714 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
715
716         * typeattr.h: New file, TypeAttribute flags. 
717
718 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
719
720         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
721         mono_assembly_ensure_section): Section loading code.
722         (load_section_tables): Load the sections.
723
724         * mono/metadata/metadata.c (mono_metadata_locate_token,
725         mono_metadata_locate): Functions to locate the information
726         definition given a token or a table and an index.
727         (mono_metadata_compute_table_bases): New.
728         (compute_size): New function to compute the sizes of the various
729         tables.
730
731         * mono/metadata/metadata.h: Finish listing the different index
732         types. 
733
734         * mono/metadata/pedump.c: Improve to dump new information.
735
736 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
737
738         * mono/metadata/metadata.c: Entered all the tables matching
739         Beta2. 
740
741         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
742