[pygobject/gsoc2009: 158/160] Allow None for pointers that can be NULL



commit 65470816f5180edcbcefecf38a5eac4ae1c79099
Author: Simon van der Linden <svdlinden src gnome org>
Date:   Fri Aug 14 12:14:03 2009 +0200

    Allow None for pointers that can be NULL

 gi/pygi-argument.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/gi/pygi-argument.c b/gi/pygi-argument.c
index fa4f7a8..ee2b242 100644
--- a/gi/pygi-argument.c
+++ b/gi/pygi-argument.c
@@ -351,9 +351,15 @@ _pygi_g_type_info_check_object (GITypeInfo *type_info,
                                 PyObject   *object)
 {
     GITypeTag type_tag;
+    gboolean is_pointer;
     gint retval = 1;
 
     type_tag = g_type_info_get_tag(type_info);
+    is_pointer = g_type_info_is_pointer(type_info);
+
+    if (is_pointer && may_be_null && object == Py_None) {
+        return retval;
+    }
 
     switch(type_tag) {
         case GI_TYPE_TAG_VOID:
@@ -565,9 +571,6 @@ check_number_release:
                 }
                 case GI_INFO_TYPE_BOXED:
                 case GI_INFO_TYPE_OBJECT:
-                    if (may_be_null && object == Py_None) {
-                        break;
-                    }
                     retval = _pygi_g_registered_type_info_check_object((GIRegisteredTypeInfo *)info, TRUE, object);
                     break;
                 case GI_INFO_TYPE_UNION:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]