summaryrefslogtreecommitdiff
path: root/giscanner/maintransformer.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/maintransformer.py')
-rw-r--r--giscanner/maintransformer.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/giscanner/maintransformer.py b/giscanner/maintransformer.py
index 5b1ffb79..73586004 100644
--- a/giscanner/maintransformer.py
+++ b/giscanner/maintransformer.py
@@ -32,7 +32,8 @@ from .annotationparser import (OPT_ALLOW_NONE, OPT_ARRAY, OPT_ATTRIBUTE,
OPT_TYPE, OPT_CLOSURE, OPT_DESTROY, OPT_TRANSFER, OPT_SKIP,
OPT_FOREIGN, OPT_ARRAY_FIXED_SIZE,
OPT_ARRAY_LENGTH, OPT_ARRAY_ZERO_TERMINATED,
- OPT_CONSTRUCTOR, OPT_METHOD)
+ OPT_CONSTRUCTOR, OPT_METHOD,
+ OPT_TRANSFER_NONE, OPT_TRANSFER_FLOATING)
from .annotationparser import AnnotationParser
from .transformer import TransformerException
from .utils import to_underscores, to_underscores_noprefix
@@ -569,7 +570,10 @@ usage is void (*_gtk_reserved1)(void);"""
transfer_tag = options.get(OPT_TRANSFER)
if transfer_tag and transfer_tag.length() == 1:
- node.transfer = transfer_tag.one()
+ transfer = transfer_tag.one()
+ if transfer == OPT_TRANSFER_FLOATING:
+ transfer = OPT_TRANSFER_NONE
+ node.transfer = transfer
self._adjust_container_type(parent, node, options)
@@ -755,7 +759,10 @@ usage is void (*_gtk_reserved1)(void);"""
return
transfer_tag = block.get(OPT_TRANSFER)
if transfer_tag is not None:
- prop.transfer = transfer_tag.value
+ transfer = transfer_tag.value
+ if transfer == OPT_TRANSFER_FLOATING:
+ transfer = OPT_TRANSFER_NONE
+ prop.transfer = transfer
else:
prop.transfer = self._get_transfer_default(parent, prop)
type_tag = block.get(TAG_TYPE)