2 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
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
14 * row-indexes.h: updates and fixes from the new ECMA specs.
16 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
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
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.
26 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
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.
37 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
39 * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
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
50 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
52 * loader.h: Removed type class from MonoDefaults, added monotype
54 * loader.c: Loaded MonoType, removed loading of Type
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 *
60 (ves_icall_type_from_handle): change from type_class to
63 (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
66 (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
69 (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
71 (ves_icall_System_Reflection_Assembly_GetType): implemented
73 (ves_icall_System_MonoType_assQualifiedName): implemented
75 (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
77 2001-11-09 Miguel de Icaza <miguel@ximian.com>
79 * assembly.c (mono_assembly_open): Implement a cache for the
82 (mono_assembly_close): only destroy the assembly when the last
85 2001-11-09 Dick Porter <dick@ximian.com>
87 * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
89 2001-11-09 Dietmar Maurer <dietmar@ximian.com>
91 * class.c (mono_class_metadata_init): bug fix: compute the right slot
93 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
95 * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
97 * object.h: add mono_string_chars ().
99 2001-11-07 Miguel de Icaza <miguel@ximian.com>
101 * reflection.c (build_compressed_metadata): Eliminates warnings
102 and uses 64-bit clean code.
104 * metadata.c (mono_type_hash): Change signature to eliminate warnings.
105 (mono_type_equal): Change signature to eliminate warnings.
107 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
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.
114 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
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.
123 2001-11-05 Dietmar Maurer <dietmar@ximian.com>
125 * class.c (mono_class_metadata_init): create a trampoline for all
126 virtual functions instead of actually compiling them.
128 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
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
134 * icall.c: remove internalcalls for the Reflection stuff that is now
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.
146 2001-10-17 Dietmar Maurer <dietmar@ximian.com>
148 * class.c (mono_class_metadata_init): bug fix: always allocate
149 space for static class data
151 2001-10-25 Dietmar Maurer <dietmar@ximian.com>
153 * class.c (mono_compute_relative_numbering): use relative
154 numbering to support fast runtime type checks.
156 2001-10-17 Sean MacIsaac <macisaac@ximian.com>
158 * class.c (mono_class_create_from_typeref): added debugging output
159 to print class name when MonoDummy is returned instead of real class
161 2001-10-15 Dietmar Maurer <dietmar@ximian.com>
163 * class.c (mono_class_metadata_init): interface offset table now
164 contains pointers into the vtable - this is more efficient for the jit
166 2001-10-12 Dietmar Maurer <dietmar@ximian.com>
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)
171 2001-10-11 Dietmar Maurer <dietmar@ximian.com>
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.
178 2001-10-10 Dietmar Maurer <dietmar@ximian.com>
180 * pedump.c (arch_compile_method): added to compute vtable entry
182 * metadata.c (mono_metadata_interfaces_from_typedef): also return the
183 number of interfaces.
185 * class.h: merged MonoArrayClass into MonoClass
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
191 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
207 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
209 * class.c: set the correct type for all the fundamental
210 type when loading the class.
212 2001-10-05 Dick Porter <dick@ximian.com>
214 * threads-pthread.c (pthread_mutex_timedlock): Simple
215 compatibility version for C libraries that lack this call.
217 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
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.
237 2001-10-04 Dick Porter <dick@ximian.com>
239 * object.h: Add a synchronisation mutex struct to MonoObject
241 * object.c (mono_new_object): Initialise the object
242 synchronisation mutexes
244 * icall.c: System.Threading.Monitor internal calls
247 * threads-pthread.c: System.Threading.Monitor internal calls
249 * threads-types.h: New file, includes the system-specific thread
252 * threads-pthread-types.h:
253 * threads-pthread-types.c: New files, handle pthread-specific
254 synchronisation types
256 * threads-dummy-types.h:
257 * threads-dummy-types.c: New files of dummy support for
258 thread-specific types
262 * pedump.c: include mono-endian.h not endian.h
264 * Makefile.am: More threads files.
265 Name mono-endian.h not endian.h
267 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
275 2001-10-02 Dietmar Maurer <dietmar@ximian.com>
277 * class.c (mono_class_metadata_init): bug fix: compute the right size
279 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
289 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
298 2001-09-28 Dick Porter <dick@ximian.com>
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.
308 * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
310 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
312 * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
314 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
320 2001-09-25 Dick Porter <dick@ximian.com>
323 * threads-pthread.c: Implemented timed thread joining and added
324 System.Threading.Thread::Join_internal internal call
326 * icall.c: Added System.Threading.Thread::Join_internal internal call
329 * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
331 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
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
339 2001-09-23 Dick Porter <dick@ximian.com>
342 * threads-dummy.h: New files of dummy threading routines
344 * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
345 support code based on system specifics
347 Rename PTHREAD_LIBS to THREAD_LIBS
349 2001-09-23 Dick Porter <dick@ximian.com>
351 * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
352 Schedule (called when asked to Sleep for 0 ms) and CurrentThread
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
358 * icall.c: New internal calls for System.Threading.Thread::Sleep
359 (including Schedule) and CurrentThread
361 * threads.h: New file, to insulate thread-specific stuff from the
364 2001-09-21 Dick Porter <dick@ximian.com>
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.
371 * icall.c: Added the internalcall for
372 System.Threading.Thread::Start_internal
374 * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
376 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
378 * loader.c: work around the different signatures for delegates
379 constructors csc generates in compiled code vs the ones compiled in mscorlib.
381 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
383 * class.h, class.c: add mono_class_get_field_from_name ().
384 * *: Fix C comments and other ANSI C issues.
386 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
388 * endian.h, assembly.c: fix some endianness issues.
390 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
392 * loader.h, load.c: add delegate_class to mono_defaults.
393 Handle runtime provided methods in mono_get_method ().
395 2001-08-29 Dietmar Maurer <dietmar@ximian.com>
397 * loader.c (mono_get_method): use pinvoke for internal call
399 * icall.c: use pinvoke for internal call
401 * loader.c (method_from_memberref): set the method name
403 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
405 * metadata.c: help the compiler generate better code for
406 mono_class_from_mono_type ().
408 2001-08-28 Dietmar Maurer <dietmar@ximian.com>
410 * class.c (mono_class_metadata_init): delayed computing of the
411 class size to mono_class_metadata_init ()
413 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
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 ().
420 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
422 * class.c: Handle Array in mono_class_from_mono_type ().
423 * metadata.c, pedump.c: some endian fixes.
425 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
430 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
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
438 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
440 * metadata.c: added compare for szarray.
442 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
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
449 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
456 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
463 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
470 2001-08-24 Dietmar Maurer <dietmar@ximian.com>
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?)
476 * metadata.c (mono_type_size): return the right size for value types
478 * loader.c (mono_get_method): only initialize method header if not abstract
480 * class.c (mono_class_from_mono_type): use mono_default values.
482 2001-08-23 Dietmar Maurer <dietmar@ximian.com>
484 * *: use MonoClass pointers instead of <type_tokens>
486 * class.h: new flag: metadata_inited.
488 * class.c (mono_class_metadata_init): impl.
489 (mono_class_instance_size): impl.
490 (mono_class_data_size): impl.
492 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
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
502 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
504 * metadata.c: zero is not a valid alignment boundary.
505 Merge MONO_TYPE_VOID in default decoding code.
507 2001-08-21 Dietmar Maurer <dietmar@ximian.com>
509 * image.h: merged MonoMetadata into MonoImage
511 * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
512 identify the type of elements.
514 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
524 2001-08-20 Miguel de Icaza <miguel@ximian.com>
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.
534 2001-08-20 Dietmar Maurer <dietmar@ximian.com>
536 * metadata.c (mono_metadata_signature_equal): impl.
538 * *: void is now a realy MonoType (instead of using NULL)
540 * metadata.c (do_mono_metadata_parse_type): use
541 mono_metadata_parse_type to parse void value.
543 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
548 2001-08-15 Dietmar Maurer <dietmar@ximian.com>
550 * metadata.c (do_mono_metadata_parse_type): treat void like any
551 other type (instead of assigning NULL);
553 2001-08-14 Dietmar Maurer <dietmar@ximian.com>
555 * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
557 2001-08-09 Dietmar Maurer <dietmar@ximian.com>
559 * image.c (do_mono_image_open): added a cache for arrays.
561 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
568 2001-08-02 Dietmar Maurer <dietmar@ximian.com>
570 * image.h (MONO_IMAGE_IS_CORLIB): removed
572 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
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).
579 2001-08-01 Dietmar Maurer <dietmar@ximian.com>
581 * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
583 * assembly.h (CORLIB_NAME): set to corlib.dll
585 * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
587 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
593 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
595 * metadata.h, metadata.c: decode exception clauses when parsing method header.
597 2001-07-27 Dietmar Maurer <dietmar@ximian.com>
599 * metadata.c (mono_metadata_free_type): added check for type !=
600 NULL (void) before calling mono_metadata_free_type()
602 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
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
609 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
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).
626 2001-07-23 Miguel de Icaza <miguel@ximian.com>
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
634 2001-07-20 Miguel de Icaza <miguel@ximian.com>
636 * metadata.c (mono_metadata_parse_mh): Correct the implementation,
637 as Jan Gray found out, it is incorrect.
639 2001-07-18 Miguel de Icaza <miguel@ximian.com>
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.
645 * image.c (mono_image_open): Keep loaded images in a hashtable.
647 * image.h (MonoImage): Add reference count.
649 2001-07-17 Miguel de Icaza <miguel@ximian.com>
651 * assembly.c (mono_assembly_open): Keep track of the file name in
652 case the assembly has no ASSEMBLY table.
654 * metadata.h: Fixed Paolo's quick hack. Put the documnentation
657 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
659 * metadata.c, metadata.h: decode local vars in method header
660 parse function. Change callers accordingly.
662 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
673 2001-07-12 Miguel de Icaza <miguel@ximian.com>
675 * metadata.h: More macros.
677 * tokentype.h: New file.
679 Fri Jul 6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
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.
686 Thu Jul 5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
688 * metatada.c: fix bugs computing table sizes. Spew a
689 warning when index in string heap is out of bounds.
691 2001-07-04 Miguel de Icaza <miguel@ximian.com>
693 * metadata.h: Add a couple of macros to manipulate tokens.
695 Tue Jul 3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
697 * assembly.c: g_free(ii->cli_sections) (and avoid double free of
700 2001-07-01 Miguel de Icaza <miguel@ximian.com>
702 * metadata.c (mono_metadata_user_string): New function, provides
703 access to the UserString heap.
705 2001-06-27 Miguel de Icaza <miguel@ximian.com>
707 * metadata.c: Add inline documentation.
709 2001-06-26 Miguel de Icaza <miguel@ximian.com>
711 * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
714 2001-06-22 Miguel de Icaza <miguel@ximian.com>
716 * typeattr.h: New file, TypeAttribute flags.
718 2001-06-21 Miguel de Icaza <miguel@ximian.com>
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.
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
731 * mono/metadata/metadata.h: Finish listing the different index
734 * mono/metadata/pedump.c: Improve to dump new information.
736 2001-06-19 Miguel de Icaza <miguel@ximian.com>
738 * mono/metadata/metadata.c: Entered all the tables matching
741 * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2