summaryrefslogtreecommitdiff
path: root/girepository/gitypelib-internal.h
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-06-08 16:40:35 +0200
committerTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-06-08 17:35:12 +0200
commit22ae017ffd3052c0b81822b2ca6e41626b76b9c4 (patch)
treeb280bde67eaa4096bd8a83ad539a8fe9c7c14f5c /girepository/gitypelib-internal.h
parent862cdbe9ed2464c722e566238980895d08a48106 (diff)
downloadgobject-introspection-22ae017ffd3052c0b81822b2ca6e41626b76b9c4.tar.gz
Support the (transfer) annotation for properties.
* girepository/*: Add g_property_info_get_ownership_transfer() and write the transfer attribute of properties into the typelib. * giscanner/*: Parse the (transfer) annotation and write it into the .gir. * tools/generate.c: Read the transfer annotation for properties and write to the .tgir. https://bugzilla.gnome.org/show_bug.cgi?id=620484
Diffstat (limited to 'girepository/gitypelib-internal.h')
-rw-r--r--girepository/gitypelib-internal.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/girepository/gitypelib-internal.h b/girepository/gitypelib-internal.h
index 0524efa1..bb920ac6 100644
--- a/girepository/gitypelib-internal.h
+++ b/girepository/gitypelib-internal.h
@@ -815,17 +815,25 @@ typedef struct {
* @writable:
* @construct:
* @construct_only: The ParamFlags used when registering the property.
+ * @transfer_ownership: When writing, the type containing the property takes
+ * ownership of the value. When reading, the returned value needs to be released
+ * by the caller.
+ * @transfer_container_ownership: For container types indicates that the
+ * ownership of the container, but not of its contents, is transferred. This is
+ * typically the case when reading lists of statically allocated things.
* @type: Describes the type of the property.
*/
typedef struct {
guint32 name;
- guint32 deprecated : 1;
- guint32 readable : 1;
- guint32 writable : 1;
- guint32 construct : 1;
- guint32 construct_only : 1;
- guint32 reserved :27;
+ guint32 deprecated : 1;
+ guint32 readable : 1;
+ guint32 writable : 1;
+ guint32 construct : 1;
+ guint32 construct_only : 1;
+ guint32 transfer_ownership : 1;
+ guint32 transfer_container_ownership : 1;
+ guint32 reserved :25;
guint32 reserved2;