Add "storage type" to the typelib data for enums
authorOwen Taylor <otaylor@src.gnome.org>
Tue, 18 Nov 2008 12:29:10 +0000 (12:29 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Tue, 18 Nov 2008 12:29:10 +0000 (12:29 +0000)
commita26517953e7fefedc8a450f8c727f787296d8823
tree4e5b83362f094e7288ed7c45934275e17db8343b
parent6cea68fc58343509c7012ef7b5fec86a115e6fb4
Add "storage type" to the typelib data for enums

In order to set and get enum and flag fields in structures, we need
to know the integral type that the enumeration is stored as. We are already
computing that at compile time in order to compute struct offsets, so the
easiest thing to do is to save that in the typelib.

* docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c
girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob
and compute and save it at compile time.

* girepository/girepository.h girepository/ginfo.c:
Add g_enum_info_get_storage_type().

* girepository/gfield.c: Implement reading and writing enum and flags fields
based on the storage type.

http://bugzilla.gnome.org/show_bug.cgi?id=561296

svn path=/trunk/; revision=944
ChangeLog
docs/typelib-format.txt
girepository/gfield.c
girepository/ginfo.c
girepository/girepository.h
girepository/girnode.c
girepository/girnode.h
girepository/giroffsets.c
girepository/gtypelib.h