summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2005-05-17 19:11:43 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2005-05-17 19:11:43 +0000
commitb1e787eb259dc6cacae3b1ef3abc7fea693f7bbe (patch)
tree5288500900a0eff2bd86959e6aeb0709a009835f
parent5a3f679bb92078eda38c0855f4ea056d0a072447 (diff)
downloadgobject-introspection-b1e787eb259dc6cacae3b1ef3abc7fea693f7bbe.tar.gz
Cleanups
-rw-r--r--ChangeLog4
-rw-r--r--metadata-format.txt28
2 files changed, 20 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index fd6992c4..c30df289 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-05-17 Matthias Clasen <mclasen@redhat.com>
+
+ * metadata-format.txt: Cleanups by Maciej Katafiasz.
+
2005-05-15 Matthias Clasen <mclasen@redhat.com>
* src/*.c: Change the directory to be addressed by
diff --git a/metadata-format.txt b/metadata-format.txt
index 4d4ac3c6..5b00fca4 100644
--- a/metadata-format.txt
+++ b/metadata-format.txt
@@ -51,9 +51,10 @@ Some of the differences to XPCOM include:
16 bits of type information for each parameter, which is enough to encode
simple types inline. Complex (e.g. recursive) types are stored out of line
in a separate list of types.
-- String and complex type data is stored outside of interface blobs, references
- are stored as offsets relative to the start of the metadata. One possibility
- is to store the strings and types in a pools at the end of the metadata.
+- String and complex type data is stored outside of metadata entry blobs,
+ references are stored as offsets relative to the start of the metadata.
+ One possibility is to store the strings and types in a pools at the end
+ of the metadata.
Overview
--------
@@ -171,8 +172,11 @@ interface_blob_size:
adding new fields before the first flexible array member in
variable-size blobs.
+
Directory entry (12 bytes)
+References to directory entries are stored as 1-based 16-bit indexes.
+
struct DirectoryEntry
{
guint16 blob_type;
@@ -207,7 +211,7 @@ offset: If is_local is set, this is the offset of the blob in the metadata.
All blobs pointed to by a directory entry start with the same layout for
-the first 8 bytes (the reserved flags may be used by some interface types)
+the first 8 bytes (the reserved flags may be used by some blob types)
struct InterfacePrefix
{
@@ -649,7 +653,7 @@ true_stops_emit:
class_closure:
The index of the class closure in the list of virtual functions
- of the interface on which the signal is defined.
+ of the object or interface on which the signal is defined.
signature:
Offset of the SignatureBlob describing the parameter types and the
@@ -690,8 +694,8 @@ is_class_closure:
Set if this virtual function is the class closure of a signal.
signal:
- The index of the signal in the list of signals of the interface
- to which this virtual function belongs.
+ The index of the signal in the list of signals of the object or
+ interface to which this virtual function belongs.
struct_offset:
The offset of the function pointer in the class struct.
@@ -756,7 +760,7 @@ struct GTypeBlob
}
gtype_name:
- The name under which the interface is registered with GType.
+ The name under which the type is registered with GType.
gtype_init:
The symbol name of the get_type() function which registers the type.
@@ -861,8 +865,8 @@ struct ObjectBlob
gtype: Contains the information about the GType.
-parent: The directory index of the parent interface. This is only set for
- objects.
+parent: The directory index of the parent type. This is only set for
+ objects. If an object does not have a parent, it is zero.
n_interfaces:
n_fields:
@@ -984,9 +988,9 @@ struct AnnotationBlob
guint32 value;
}
-offset: The offset of the interface to which this annotation refers.
+offset: The offset of the metadata entry to which this annotation refers.
Annotations are kept sorted by offset, so that the annotations
- of an interface can be found by a binary search.
+ of an entry can be found by a binary search.
name: The name of the annotation, a string.