2001-08-28 Dietmar Maurer <dietmar@ximian.com>
[mono.git] / mono / metadata / ChangeLog
index b3828e112755f90332e2d51a3abfe8e829f06fa5..d9121f015046abc596aa35abea5169888f167b59 100644 (file)
@@ -1,3 +1,281 @@
+2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_class_metadata_init): delayed computing of the
+       class size to mono_class_metadata_init ()
+
+Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c, class.h: add an interfaces member to MonoClass.
+       * image.c, image.h: add assembly_name field to MonoImage
+       from the assembly table.
+       * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
+
+Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: Handle Array in mono_class_from_mono_type ().
+       * metadata.c, pedump.c: some endian fixes.
+
+Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
+       * metadata.c: fix small problem introduced with the latest commit.
+
+Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
+       We don't need a MonoMetadata pointer anymore to compare signatures in
+       mono_metadata_signature_equal (), update callers.
+       Reduced memory usage an number of allocations for MonoMethodHeader and
+       MonoMethodSignature.
+
+Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.c: added compare for szarray.
+
+Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
+       and add a couple more types to it and mono_defaults. Give an hint on
+       classes that need implementing in our corlib and are referenced
+       in mscorlib.
+
+Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.h, class.c: keep track if a class is also an Enum.
+       * loader.c: Implement a couple more types for use in libffi
+       marshalling. Gives better diagnostics when failing to dlopen
+       a library. Set method->klass for P/Invoke methods, too.
+
+Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * class.c, class.h: add a MonoType this_arg to MonoClass that
+       represents a pointer to an object of the class' type that
+       can be used by the interpreter and later the type cache.
+       Add best guess alignment info for valuetype objects.
+
+Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
+       into MonoType: one less level of indirection and allocation and
+       simplifies quite a bit of code. Added cache for MonoTypes that are
+       used frequently, so that we don't need to allocate them all the time.
+
+2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
+
+       * class.c (mono_class_create_from_typedef): System.Enum is also a
+       value type, although it does not derive from System.ValueType
+       (maybe a bug in the ms compiler?)
+
+       * metadata.c (mono_type_size): return the right size for value types
+
+       * loader.c (mono_get_method): only initialize method header if not abstract
+
+       * class.c (mono_class_from_mono_type): use mono_default values. 
+
+2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * *: use MonoClass pointers instead of <type_tokens>
+       
+       * class.h: new flag: metadata_inited.
+
+       * class.c (mono_class_metadata_init): impl.
+       (mono_class_instance_size): impl.
+       (mono_class_data_size): impl.
+
+Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
+       MonoClass now has the name and name_space fields. 
+       MonoMethod has a pointer to its MonoClass, instead of MonoImage.
+       mono_get_method () takes and optional MonoClass as argument.
+       Removed mono_typedef_from_name() and added mono_class_token_from_name()
+       instead that takes advantage of a map from class names to typedef
+       tokens in MonoImage.
+
+Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.c: zero is not a valid alignment boundary.
+       Merge MONO_TYPE_VOID in default decoding code.
+
+2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
+
+       * image.h: merged MonoMetadata into MonoImage
+
+       * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
+       identify the type of elements.
+
+Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * blob.h: fix MONO_TYPE_TYPEDBYREF value.
+       * cil-coff.h: split MonoMSDOSHeader and add size info.
+       * image.c: add some consistency checks.
+       * metadata.c: fix row size computation: one programmer
+       error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
+       add explanation for the locator routine.
+       Fix decoding of size in method header.
+       
+2001-08-20  Miguel de Icaza  <miguel@ximian.com>
+
+       * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
+       (g_concat_dir_and_file): Bring g_concat_dir_and_file
+       function from gnome-libs.  This uses the right path separator
+       based on the OS, and also works around a bug in some systems where
+       a double slash is not allowed. 
+       (default_assembly_name_resolver): Use g_concat_dir_and_file
+       (mono_assembly_open): ditto.
+
+2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
+
+       * metadata.c (mono_metadata_signature_equal): impl.
+
+       * *: void is now a realy MonoType (instead of using NULL)
+       
+       * metadata.c (do_mono_metadata_parse_type): use
+       mono_metadata_parse_type to parse void value.
+
+Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.c, metadata.h: in the signature and method header store
+       only the space required for holding the loca vars and incoming arguments.
+
+2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
+
+       * metadata.c (do_mono_metadata_parse_type): treat void like any
+       other type (instead of assigning NULL);
+
+2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
+
+       * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
+
+2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
+
+       * image.c (do_mono_image_open): added a cache for arrays.
+
+Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
+       decode a single column from a row in a metadata table and changes
+       to take advantage of it in the typedef locator (gives a nice speed up).
+       Store offset info for function params.
+
+2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
+
+       * image.h (MONO_IMAGE_IS_CORLIB): removed 
+
+Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * assembly.c: how could mono_assembly_close () had ever worked?
+       * metadata.c, metadata.h: provide offset info for local vars.
+       Implement mono_type_size () to take care of alignment as well
+       as size (it was mono_field_type_size in cli/class.c before).
+
+2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
+
+       * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
+
+       * assembly.h (CORLIB_NAME): set to corlib.dll
+
+       * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
+
+Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
+       cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
+       tokentype.h: massive namespace cleanup.
+
+Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, metadata.c: decode exception clauses when parsing method header.
+
+2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
+
+       * metadata.c (mono_metadata_free_type): added check for type !=
+       NULL (void) before calling mono_metadata_free_type()
+
+Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, row_indexes.h: added header with enumerations to use
+       to index in the columns from tables in metadata and to decode coded
+       tokens: we should start using this instead of embedding magic numbers
+       all over the code.
+
+Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
+       Move metadata_t info from cli_image_info_t to MonoImage, where
+       it's easily accessible. Changed all the uses accordingly.
+       Added the method and class caches to MonoImage.
+       * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
+       and mono_metadata_decode_value () signature to be more consistent
+       with the other parse functions (and simplify code). Taken advantage
+       of zero-length array allocation with GCC. Removed reduntant (and
+       wrong) MonoFieldType struct and use MonoParam instead. Changed
+       mono_metadata_parse_field_type () to use common code for parsing.
+       Added mono_metadata_typedef_from_field () and
+       mono_metadata_typedef_from_method () to lookup a typedef index from a
+       field or method token.
+       Pack the MonoRetType structure more tightly (fits in 8 bytes now).
+
+2001-07-23  Miguel de Icaza  <miguel@ximian.com>
+
+       * metadata.c (mono_metadata_parse_field_type): Implement. 
+       (do_mono_metadata_parse_type): Split engine from
+       mono_metadata_parse_type, so that we can create smaller structures
+       for things that just have one pointer to the MonoType (look at
+       the MonoFieldType)
+
+2001-07-20  Miguel de Icaza  <miguel@ximian.com>
+
+       * metadata.c (mono_metadata_parse_mh): Correct the implementation,
+       as Jan Gray found out, it is incorrect. 
+
+2001-07-18  Miguel de Icaza  <miguel@ximian.com>
+
+       * assembly.c: Implement asssembly loading.  This loads an image
+       and loads all the referenced assemblies.  Come to think of it, we
+       could always do lazy loading of the assemblies. 
+
+       * image.c (mono_image_open): Keep loaded images in a hashtable.
+
+       * image.h (MonoImage): Add reference count.
+
+2001-07-17  Miguel de Icaza  <miguel@ximian.com>
+
+       * assembly.c (mono_assembly_open): Keep track of the file name in
+       case the assembly has no ASSEMBLY table.
+
+       * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
+       from get.c here.
+
+Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.c, metadata.h: decode local vars in method header
+       parse function. Change callers accordingly.
+
+Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * metadata.h, cil-coff.h: protect against multiple inclusion.
+       Added some new structures to hold information decoded from metadata:
+       MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
+       and relevant decoding/free functions.
+       * metadata.c: implement decoding functions. Add warning for out of bounds
+       index in mono_metadata_locate(). Implement mono_get_method () to retreive
+       all the info about a method signature and invocation. Remove check on
+       uninitialized local var in parse_mh() and fix memory leak.
+
+2001-07-12  Miguel de Icaza  <miguel@ximian.com>
+
+       * metadata.h: More macros.
+
+       * tokentype.h: New file.
+
+Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+       * assembly.c: added a consistency check and initialize
+       some structures with g_new0().
+       * metadata.c: fixed a couple more bugs in table size computation
+       and add other checks for out-of bound access to metadata.
+
 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
 
        * metatada.c: fix bugs computing table sizes. Spew a