[pygobject/invoke-rewrite] [gi] fix container object reffing
- From: John Palmieri <johnp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pygobject/invoke-rewrite] [gi] fix container object reffing
- Date: Thu, 3 Feb 2011 00:28:02 +0000 (UTC)
commit 99d6e6c8d806e6f9e48c3c2380024fb3511d110a
Author: John (J5) Palmieri <johnp redhat com>
Date: Wed Feb 2 19:27:40 2011 -0500
[gi] fix container object reffing
gi/pygi-argument.c | 7 +++----
gi/pygi-cache.c | 12 ++++--------
2 files changed, 7 insertions(+), 12 deletions(-)
---
diff --git a/gi/pygi-argument.c b/gi/pygi-argument.c
index e69acf4..fa744f3 100644
--- a/gi/pygi-argument.c
+++ b/gi/pygi-argument.c
@@ -3240,9 +3240,9 @@ _pygi_marshal_in_interface_object (PyGIInvokeState *state,
return FALSE;
}
- arg->v_pointer = pygobject_get (py_arg);
+ arg->v_pointer = pygobject_get(py_arg);
if (arg_cache->transfer == GI_TRANSFER_EVERYTHING)
- g_object_ref (arg->v_pointer);
+ g_object_ref(arg->v_pointer);
return TRUE;
}
@@ -3895,10 +3895,9 @@ _pygi_marshal_out_interface_object (PyGIInvokeState *state,
{
PyObject *py_obj = pygobject_new (arg->v_pointer);
- /* The new wrapper increased the reference count, so decrease it. */
if (arg_cache->transfer == GI_TRANSFER_EVERYTHING)
g_object_unref (arg->v_pointer);
-
+
return py_obj;
}
diff --git a/gi/pygi-cache.c b/gi/pygi-cache.c
index 58b5530..cbc54f4 100644
--- a/gi/pygi-cache.c
+++ b/gi/pygi-cache.c
@@ -181,10 +181,8 @@ _sequence_cache_new_from_type_info(GITypeInfo *type_info,
item_type_info = g_type_info_get_param_type (type_info, 0);
item_type_tag = g_type_info_get_tag (item_type_info);
- item_transfer = GI_TRANSFER_NOTHING;
- if (transfer == GI_TRANSFER_EVERYTHING ||
- transfer == GI_TRANSFER_CONTAINER)
- item_transfer = GI_TRANSFER_EVERYTHING;
+ item_transfer =
+ transfer == GI_TRANSFER_CONTAINER ? GI_TRANSFER_NOTHING : transfer;
sc->item_cache = _arg_cache_new_from_type_info(item_type_info,
NULL,
@@ -225,10 +223,8 @@ _hash_cache_new_from_type_info(GITypeInfo *type_info,
value_type_info = g_type_info_get_param_type (type_info, 1);
value_type_tag = g_type_info_get_tag (value_type_info);
- item_transfer = GI_TRANSFER_NOTHING;
- if (transfer == GI_TRANSFER_EVERYTHING ||
- transfer == GI_TRANSFER_CONTAINER)
- item_transfer = GI_TRANSFER_EVERYTHING;
+ item_transfer =
+ transfer == GI_TRANSFER_CONTAINER ? GI_TRANSFER_NOTHING : transfer;
hc->key_cache = _arg_cache_new_from_type_info(key_type_info,
NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]