From aefac8c5f64bf059dd6652f8a843d17b34fa0854 Mon Sep 17 00:00:00 2001 From: Simon van der Linden Date: Fri, 22 Jan 2010 22:22:37 +0100 Subject: Remove support for pointers to basic types as input-only argument and return value There is no reason for an API to use such things, and g_function_info_invoke broke such features. https://bugzilla.gnome.org/show_bug.cgi?id=607759 --- gi/pygi-argument.c | 586 ++++------------------------------------------- gi/pygi-argument.h | 1 - gi/pygi-info.c | 8 +- tests/libtestgi.c | 660 ----------------------------------------------------- tests/libtestgi.h | 86 ------- tests/test_gi.py | 144 ------------ 6 files changed, 47 insertions(+), 1438 deletions(-) diff --git a/gi/pygi-argument.c b/gi/pygi-argument.c index 359e4fc..edbb31f 100644 --- a/gi/pygi-argument.c +++ b/gi/pygi-argument.c @@ -181,7 +181,6 @@ _pygi_g_registered_type_info_check_object (GIRegisteredTypeInfo *info, gint _pygi_g_type_info_check_object (GITypeInfo *type_info, - gboolean may_be_null, PyObject *object) { GITypeTag type_tag; @@ -217,10 +216,6 @@ _pygi_g_type_info_check_object (GITypeInfo *type_info, { PyObject *number, *lower, *upper; - if (g_type_info_is_pointer(type_info) && may_be_null && object == Py_None) { - break; - } - if (!PyNumber_Check(object)) { PyErr_Format(PyExc_TypeError, "Must be number, not %s", object->ob_type->tp_name); @@ -277,9 +272,6 @@ check_number_release: break; } case GI_TYPE_TAG_TIME_T: - if (g_type_info_is_pointer(type_info) && may_be_null && object == Py_None) { - break; - } if (!PyDateTime_Check(object)) { PyErr_Format(PyExc_TypeError, "Must be datetime.datetime, not %s", object->ob_type->tp_name); @@ -290,10 +282,6 @@ check_number_release: { gint is_instance; - if (g_type_info_is_pointer(type_info) && may_be_null && object == Py_None) { - break; - } - is_instance = PyObject_IsInstance(object, (PyObject *)&PyGTypeWrapper_Type); if (is_instance < 0) { retval = -1; @@ -309,7 +297,7 @@ check_number_release: } case GI_TYPE_TAG_UTF8: case GI_TYPE_TAG_FILENAME: - if (!PyString_Check(object) && (!may_be_null || object != Py_None)) { + if (!PyString_Check(object)) { PyErr_Format(PyExc_TypeError, "Must be string, not %s", object->ob_type->tp_name); retval = 0; @@ -322,7 +310,7 @@ check_number_release: GITypeInfo *item_type_info; Py_ssize_t i; - if (!PySequence_Check(object) && (!may_be_null || object != Py_None)) { + if (!PySequence_Check(object)) { PyErr_Format(PyExc_TypeError, "Must be sequence, not %s", object->ob_type->tp_name); retval = 0; @@ -355,7 +343,7 @@ check_number_release: break; } - retval = _pygi_g_type_info_check_object(item_type_info, FALSE, item); + retval = _pygi_g_type_info_check_object(item_type_info, item); Py_DECREF(item); @@ -388,16 +376,10 @@ check_number_release: PyErr_SetString(PyExc_NotImplementedError, "callback marshalling is not supported yet"); break; case GI_INFO_TYPE_ENUM: - if (g_type_info_is_pointer(type_info) && may_be_null && object == Py_None) { - break; - } retval = _pygi_g_registered_type_info_check_object( (GIRegisteredTypeInfo *)info, TRUE, object); break; case GI_INFO_TYPE_FLAGS: - if (g_type_info_is_pointer(type_info) && may_be_null && object == Py_None) { - break; - } if (PyNumber_Check(object)) { /* Accept 0 as a valid flag value */ PyObject *number = PyNumber_Int(object); @@ -418,10 +400,6 @@ check_number_release: { GType type; - if (g_type_info_is_pointer(type_info) && may_be_null && object == Py_None) { - break; - } - /* Handle special cases. */ type = g_registered_type_info_get_g_type((GIRegisteredTypeInfo *)info); if (g_type_is_a(type, G_TYPE_VALUE)) { @@ -447,9 +425,6 @@ check_number_release: case GI_INFO_TYPE_BOXED: case GI_INFO_TYPE_INTERFACE: 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: @@ -470,7 +445,7 @@ check_number_release: GITypeInfo *item_type_info; Py_ssize_t i; - if (!PySequence_Check(object) && (!may_be_null || object != Py_None)) { + if (!PySequence_Check(object)) { PyErr_Format(PyExc_TypeError, "Must be sequence, not %s", object->ob_type->tp_name); retval = 0; @@ -495,7 +470,7 @@ check_number_release: break; } - retval = _pygi_g_type_info_check_object(item_type_info, FALSE, item); + retval = _pygi_g_type_info_check_object(item_type_info, item); Py_DECREF(item); @@ -520,7 +495,7 @@ check_number_release: GITypeInfo *value_type_info; Py_ssize_t i; - if (!PyMapping_Check(object) && (!may_be_null || object != Py_None)) { + if (!PyMapping_Check(object)) { PyErr_Format(PyExc_TypeError, "Must be mapping, not %s", object->ob_type->tp_name); retval = 0; @@ -559,7 +534,7 @@ check_number_release: key = PyList_GET_ITEM(keys, i); value = PyList_GET_ITEM(values, i); - retval = _pygi_g_type_info_check_object(key_type_info, FALSE, key); + retval = _pygi_g_type_info_check_object(key_type_info, key); if (retval < 0) { break; } @@ -568,7 +543,7 @@ check_number_release: break; } - retval = _pygi_g_type_info_check_object(value_type_info, FALSE, value); + retval = _pygi_g_type_info_check_object(value_type_info, value); if (retval < 0) { break; } @@ -660,22 +635,7 @@ _pygi_argument_from_object (PyObject *object, break; case GI_TYPE_TAG_BOOLEAN: { - gboolean value; - - value = PyObject_IsTrue(object); - - if (g_type_info_is_pointer(type_info)) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(gboolean, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(gboolean *)arg.v_pointer = value; - } else { - arg.v_boolean = value; - } - + arg.v_boolean = PyObject_IsTrue(object); break; } case GI_TYPE_TAG_INT8: @@ -690,35 +650,15 @@ _pygi_argument_from_object (PyObject *object, case GI_TYPE_TAG_SSIZE: { PyObject *int_; - glong value; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } int_ = PyNumber_Int(object); if (int_ == NULL) { break; } - value = PyInt_AsLong(int_); - Py_DECREF(int_); + arg.v_long = PyInt_AsLong(int_); - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(glong, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(glong *)arg.v_pointer = value; - } else { - arg.v_long = value; - } + Py_DECREF(int_); break; } @@ -730,14 +670,6 @@ _pygi_argument_from_object (PyObject *object, { PyObject *number; guint64 value; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } number = PyNumber_Int(object); if (number == NULL) { @@ -750,19 +682,9 @@ _pygi_argument_from_object (PyObject *object, value = PyLong_AsUnsignedLongLong(number); } - Py_DECREF(number); + arg.v_uint64 = value; - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(guint64, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(guint64 *)arg.v_pointer = value; - } else { - arg.v_uint64 = value; - } + Py_DECREF(number); break; } @@ -770,14 +692,6 @@ _pygi_argument_from_object (PyObject *object, { PyObject *number; gint64 value; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } number = PyNumber_Int(object); if (number == NULL) { @@ -790,105 +704,44 @@ _pygi_argument_from_object (PyObject *object, value = PyLong_AsLongLong(number); } - Py_DECREF(number); + arg.v_int64 = value; - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(gint64, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(gint64 *)arg.v_pointer = value; - } else { - arg.v_int64 = value; - } + Py_DECREF(number); break; } case GI_TYPE_TAG_FLOAT: { PyObject *float_; - gfloat value; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } float_ = PyNumber_Float(object); if (float_ == NULL) { break; } - value = (float)PyFloat_AsDouble(float_); + arg.v_float = (float)PyFloat_AsDouble(float_); Py_DECREF(float_); - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(gfloat, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(gfloat *)arg.v_pointer = value; - } else { - arg.v_float = value; - } - break; } case GI_TYPE_TAG_DOUBLE: { PyObject *float_; - gdouble value; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } float_ = PyNumber_Float(object); if (float_ == NULL) { break; } - value = PyFloat_AsDouble(float_); + arg.v_double = PyFloat_AsDouble(float_); Py_DECREF(float_); - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(gdouble, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(gdouble *)arg.v_pointer = value; - } else { - arg.v_double = value; - } - break; } case GI_TYPE_TAG_TIME_T: { PyDateTime_DateTime *py_datetime; struct tm datetime; - time_t time_; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } py_datetime = (PyDateTime_DateTime *)object; @@ -906,51 +759,17 @@ _pygi_argument_from_object (PyObject *object, datetime.tm_year = PyDateTime_GET_YEAR(py_datetime) - 1900; datetime.tm_isdst = -1; - time_ = mktime(&datetime); - if (time_ == -1) { + arg.v_long = mktime(&datetime); + if (arg.v_long == -1) { PyErr_SetString(PyExc_RuntimeError, "datetime conversion failed"); break; } - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(time_t, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(time_t *)arg.v_pointer = time_; - } else { - arg.v_long = time_; - } - break; } case GI_TYPE_TAG_GTYPE: { - GType type; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } - - type = pyg_type_from_object(object); - - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(GType, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(GType *)arg.v_pointer = type; - } else { - arg.v_long = type; - } + arg.v_long = pyg_type_from_object(object); break; } @@ -1126,35 +945,15 @@ array_item_error: case GI_INFO_TYPE_FLAGS: { PyObject *int_; - glong value; - gboolean is_pointer; - - is_pointer = g_type_info_is_pointer(type_info); - - if (is_pointer && object == Py_None) { - arg.v_pointer = NULL; - break; - } int_ = PyNumber_Int(object); if (int_ == NULL) { break; } - value = PyInt_AsLong(int_); - Py_DECREF(int_); + arg.v_long = PyInt_AsLong(int_); - if (is_pointer) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - arg.v_pointer = g_try_new(glong, 1); - if (arg.v_pointer == NULL) { - PyErr_NoMemory(); - break; - } - *(glong *)arg.v_pointer = value; - } else { - arg.v_long = value; - } + Py_DECREF(int_); break; } @@ -1366,344 +1165,97 @@ _pygi_argument_to_object (GArgument *arg, break; case GI_TYPE_TAG_BOOLEAN: { - gboolean value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gboolean *)arg->v_pointer; - } else { - value = arg->v_boolean; - } - - object = PyBool_FromLong(value); + object = PyBool_FromLong(arg->v_boolean); break; } case GI_TYPE_TAG_INT8: { - gint8 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gint8 *)arg->v_pointer; - } else { - value = arg->v_int8; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_int8); break; } case GI_TYPE_TAG_UINT8: { - guint8 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(guint8 *)arg->v_pointer; - } else { - value = arg->v_uint8; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_uint8); break; } case GI_TYPE_TAG_INT16: { - gint16 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gint16 *)arg->v_pointer; - } else { - value = arg->v_int16; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_int16); break; } case GI_TYPE_TAG_UINT16: { - guint16 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(guint16 *)arg->v_pointer; - } else { - value = arg->v_uint16; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_uint16); break; } case GI_TYPE_TAG_INT32: { - gint32 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gint32 *)arg->v_pointer; - } else { - value = arg->v_int32; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_int32); break; } case GI_TYPE_TAG_UINT32: { - guint32 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(guint32 *)arg->v_pointer; - } else { - value = arg->v_uint32; - } - - object = PyLong_FromLongLong(value); + object = PyLong_FromLongLong(arg->v_uint32); break; } case GI_TYPE_TAG_INT64: { - gint64 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gint64 *)arg->v_pointer; - } else { - value = arg->v_int64; - } - - object = PyLong_FromLongLong(value); + object = PyLong_FromLongLong(arg->v_int64); break; } case GI_TYPE_TAG_UINT64: { - guint64 value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(guint64 *)arg->v_pointer; - } else { - value = arg->v_uint64; - } - - object = PyLong_FromUnsignedLongLong(value); + object = PyLong_FromUnsignedLongLong(arg->v_uint64); break; } case GI_TYPE_TAG_SHORT: { - gshort value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gshort *)arg->v_pointer; - } else { - value = arg->v_short; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_short); break; } case GI_TYPE_TAG_USHORT: { - gushort value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gushort *)arg->v_pointer; - } else { - value = arg->v_ushort; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_ushort); break; } case GI_TYPE_TAG_INT: { - gint value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gint *)arg->v_pointer; - } else { - value = arg->v_int; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_int); break; } case GI_TYPE_TAG_UINT: { - guint value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(guint *)arg->v_pointer; - } else { - value = arg->v_uint; - } - - object = PyLong_FromLongLong(value); + object = PyLong_FromLongLong(arg->v_uint); break; } case GI_TYPE_TAG_LONG: { - glong value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(glong *)arg->v_pointer; - } else { - value = arg->v_long; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_long); break; } case GI_TYPE_TAG_ULONG: { - gulong value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gulong *)arg->v_pointer; - } else { - value = arg->v_ulong; - } - - object = PyLong_FromUnsignedLongLong(value); + object = PyLong_FromUnsignedLongLong(arg->v_ulong); break; } case GI_TYPE_TAG_SSIZE: { - gssize value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gssize *)arg->v_pointer; - } else { - value = arg->v_ssize; - } - - object = PyInt_FromLong(value); + object = PyInt_FromLong(arg->v_ssize); break; } case GI_TYPE_TAG_SIZE: { - gsize value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gsize *)arg->v_pointer; - } else { - value = arg->v_size; - } - - object = PyLong_FromUnsignedLongLong(value); + object = PyLong_FromUnsignedLongLong(arg->v_size); break; } case GI_TYPE_TAG_FLOAT: { - gfloat value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gfloat *)arg->v_pointer; - } else { - value = arg->v_float; - } - - object = PyFloat_FromDouble(value); + object = PyFloat_FromDouble(arg->v_float); break; } case GI_TYPE_TAG_DOUBLE: { - gdouble value; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(gdouble *)arg->v_pointer; - } else { - value = arg->v_double; - } - - object = PyFloat_FromDouble(value); + object = PyFloat_FromDouble(arg->v_double); break; } case GI_TYPE_TAG_TIME_T: @@ -1711,16 +1263,7 @@ _pygi_argument_to_object (GArgument *arg, time_t *time_; struct tm *datetime; - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - time_ = arg->v_pointer; - } else { - time_ = (time_t *)&arg->v_long; - } + time_ = (time_t *)&arg->v_long; datetime = localtime(time_); object = PyDateTime_FromDateAndTime( @@ -1735,20 +1278,7 @@ _pygi_argument_to_object (GArgument *arg, } case GI_TYPE_TAG_GTYPE: { - GType type; - - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - type = *(GType *)arg->v_pointer; - } else { - type = (GType)arg->v_long; - } - - object = pyg_type_wrapper_new(type); + object = pyg_type_wrapper_new((GType)arg->v_long); break; } case GI_TYPE_TAG_UTF8: @@ -1924,26 +1454,14 @@ _pygi_argument_to_object (GArgument *arg, case GI_INFO_TYPE_ENUM: case GI_INFO_TYPE_FLAGS: { - glong value; GType type; - if (g_type_info_is_pointer(type_info)) { - if (arg->v_pointer == NULL) { - object = Py_None; - Py_INCREF(object); - break; - } - value = *(glong *)arg->v_pointer; - } else { - value = arg->v_long; - } - type = g_registered_type_info_get_g_type((GIRegisteredTypeInfo *)info); if (info_type == GI_INFO_TYPE_ENUM) { - object = pyg_enum_from_gtype(type, value); + object = pyg_enum_from_gtype(type, arg->v_long); } else { - object = pyg_flags_from_gtype(type, value); + object = pyg_flags_from_gtype(type, arg->v_long); } break; @@ -2117,13 +1635,6 @@ _pygi_argument_release (GArgument *arg, case GI_TYPE_TAG_DOUBLE: case GI_TYPE_TAG_TIME_T: case GI_TYPE_TAG_GTYPE: - if (g_type_info_is_pointer(type_info)) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - if ((direction == GI_DIRECTION_IN && transfer == GI_TRANSFER_NOTHING) - || (direction == GI_DIRECTION_OUT && transfer == GI_TRANSFER_EVERYTHING)) { - g_free(arg->v_pointer); - } - } break; case GI_TYPE_TAG_FILENAME: case GI_TYPE_TAG_UTF8: @@ -2219,13 +1730,6 @@ _pygi_argument_release (GArgument *arg, } case GI_INFO_TYPE_ENUM: case GI_INFO_TYPE_FLAGS: - if (g_type_info_is_pointer(type_info)) { - g_warn_if_fail(transfer == GI_TRANSFER_NOTHING); - if ((direction == GI_DIRECTION_IN && transfer == GI_TRANSFER_NOTHING) - || (direction == GI_DIRECTION_OUT && transfer == GI_TRANSFER_EVERYTHING)) { - g_free(arg->v_pointer); - } - } break; case GI_INFO_TYPE_INTERFACE: case GI_INFO_TYPE_OBJECT: diff --git a/gi/pygi-argument.h b/gi/pygi-argument.h index eef61a2..c162f2f 100644 --- a/gi/pygi-argument.h +++ b/gi/pygi-argument.h @@ -32,7 +32,6 @@ G_BEGIN_DECLS /* Private */ gint _pygi_g_type_info_check_object (GITypeInfo *type_info, - gboolean may_be_null, PyObject *object); gint _pygi_g_registered_type_info_check_object (GIRegisteredTypeInfo *info, diff --git a/gi/pygi-info.c b/gi/pygi-info.c index 6e2b938..18981a2 100644 --- a/gi/pygi-info.c +++ b/gi/pygi-info.c @@ -664,7 +664,6 @@ _wrap_g_function_info_invoke (PyGIBaseInfo *self, for (i = 0; i < n_args; i++) { GIDirection direction; GITypeTag type_tag; - gboolean may_be_null; PyObject *py_arg; gint retval; @@ -680,10 +679,7 @@ _wrap_g_function_info_invoke (PyGIBaseInfo *self, g_assert(py_args_pos < n_py_args); py_arg = PyTuple_GET_ITEM(py_args, py_args_pos); - may_be_null = g_arg_info_may_be_null(arg_infos[i]); - - retval = _pygi_g_type_info_check_object(arg_type_infos[i], - may_be_null, py_arg); + retval = _pygi_g_type_info_check_object(arg_type_infos[i], py_arg); if (retval < 0) { goto out; @@ -1955,7 +1951,7 @@ _wrap_g_field_info_set_value (PyGIBaseInfo *self, { gboolean retval; - retval = _pygi_g_type_info_check_object(field_type_info, TRUE, py_value); + retval = _pygi_g_type_info_check_object(field_type_info, py_value); if (retval < 0) { goto out; } diff --git a/tests/libtestgi.c b/tests/libtestgi.c index c3899a6..a9edf21 100644 --- a/tests/libtestgi.c +++ b/tests/libtestgi.c @@ -21,28 +21,6 @@ test_gi_boolean_return_false (void) return FALSE; } -/** - * test_gi_boolean_return_ptr_true: - * Returns: (transfer none): - */ -gboolean * -test_gi_boolean_return_ptr_true (void) -{ - static gboolean bool_ = TRUE; - return &bool_; -} - -/** - * test_gi_boolean_return_ptr_false: - * Returns: (transfer none): - */ -gboolean * -test_gi_boolean_return_ptr_false (void) -{ - static gboolean bool_ = FALSE; - return &bool_; -} - void test_gi_boolean_in_true (gboolean bool_) { @@ -55,26 +33,6 @@ test_gi_boolean_in_false (gboolean bool_) g_assert (bool_ == FALSE); } -/** - * test_gi_boolean_in_ptr_true: - * bool_: (in): - */ -void -test_gi_boolean_in_ptr_true (gboolean *bool_) -{ - g_assert (*bool_ == TRUE); -} - -/** - * test_gi_boolean_in_ptr_false: - * bool_: (in): - */ -void -test_gi_boolean_in_ptr_false (gboolean *bool_) -{ - g_assert (*bool_ == FALSE); -} - /** * test_gi_boolean_out_true: * bool_: (out): @@ -132,28 +90,6 @@ test_gi_int8_return_min (void) return G_MININT8; } -/** - * test_gi_int8_return_ptr_max: - * Returns: (transfer none): - */ -gint8 * -test_gi_int8_return_ptr_max (void) -{ - static gint8 int8 = G_MAXINT8; - return &int8; -} - -/** - * test_gi_int8_return_ptr_min: - * Returns: (transfer none): - */ -gint8 * -test_gi_int8_return_ptr_min (void) -{ - static gint8 int8 = G_MININT8; - return &int8; -} - void test_gi_int8_in_max (gint8 int8) { @@ -166,26 +102,6 @@ test_gi_int8_in_min (gint8 int8) g_assert(int8 == G_MININT8); } -/** - * test_gi_int8_in_ptr_max: - * int8: (in): - */ -void -test_gi_int8_in_ptr_max (gint8 *int8) -{ - g_assert(*int8 == G_MAXINT8); -} - -/** - * test_gi_int8_in_ptr_min: - * int8: (in): - */ -void -test_gi_int8_in_ptr_min (gint8 *int8) -{ - g_assert(*int8 == G_MININT8); -} - /** * test_gi_int8_out_max: * int8: (out): @@ -235,33 +151,12 @@ test_gi_uint8_return (void) return G_MAXUINT8; } -/** - * test_gi_uint8_return_ptr: - * Returns: (transfer none): - */ -guint8 * -test_gi_uint8_return_ptr (void) -{ - static guint8 uint8 = G_MAXUINT8; - return &uint8; -} - void test_gi_uint8_in (guint8 uint8) { g_assert(uint8 == G_MAXUINT8); } -/** - * test_gi_uint8_in_ptr: - * uint8: (in): - */ -void -test_gi_uint8_in_ptr (guint8 *uint8) -{ - g_assert(*uint8 == G_MAXUINT8); -} - /** * test_gi_uint8_out: * uint8: (out): @@ -296,28 +191,6 @@ test_gi_int16_return_min (void) return G_MININT16; } -/** - * test_gi_int16_return_ptr_max: - * Returns: (transfer none): - */ -gint16 * -test_gi_int16_return_ptr_max (void) -{ - static gint16 int16 = G_MAXINT16; - return &int16; -} - -/** - * test_gi_int16_return_ptr_min: - * Returns: (transfer none): - */ -gint16 * -test_gi_int16_return_ptr_min (void) -{ - static gint16 int16 = G_MININT16; - return &int16; -} - void test_gi_int16_in_max (gint16 int16) { @@ -330,26 +203,6 @@ test_gi_int16_in_min (gint16 int16) g_assert(int16 == G_MININT16); } -/** - * test_gi_int16_in_ptr_max: - * int16: (in): - */ -void -test_gi_int16_in_ptr_max (gint16 *int16) -{ - g_assert(*int16 == G_MAXINT16); -} - -/** - * test_gi_int16_in_ptr_min: - * int16: (in): - */ -void -test_gi_int16_in_ptr_min (gint16 *int16) -{ - g_assert(*int16 == G_MININT16); -} - /** * test_gi_int16_out_max: * int16: (out): @@ -399,33 +252,12 @@ test_gi_uint16_return (void) return G_MAXUINT16; } -/** - * test_gi_uint16_return_ptr: - * Returns: (transfer none): - */ -guint16 * -test_gi_uint16_return_ptr (void) -{ - static guint16 uint16 = G_MAXUINT16; - return &uint16; -} - void test_gi_uint16_in (guint16 uint16) { g_assert(uint16 == G_MAXUINT16); } -/** - * test_gi_uint16_in_ptr: - * uint16: (in): - */ -void -test_gi_uint16_in_ptr (guint16 *uint16) -{ - g_assert(*uint16 == G_MAXUINT16); -} - /** * test_gi_uint16_out: * uint16: (out): @@ -460,28 +292,6 @@ test_gi_int32_return_min (void) return G_MININT32; } -/** - * test_gi_int32_return_ptr_max: - * Returns: (transfer none): - */ -gint32 * -test_gi_int32_return_ptr_max (void) -{ - static gint32 int32 = G_MAXINT32; - return &int32; -} - -/** - * test_gi_int32_return_ptr_min: - * Returns: (transfer none): - */ -gint32 * -test_gi_int32_return_ptr_min (void) -{ - static gint32 int32 = G_MININT32; - return &int32; -} - void test_gi_int32_in_max (gint32 int32) { @@ -494,26 +304,6 @@ test_gi_int32_in_min (gint32 int32) g_assert(int32 == G_MININT32); } -/** - * test_gi_int32_in_ptr_max: - * int32: (in): - */ -void -test_gi_int32_in_ptr_max (gint32 *int32) -{ - g_assert(*int32 == G_MAXINT32); -} - -/** - * test_gi_int32_in_ptr_min: - * int32: (in): - */ -void -test_gi_int32_in_ptr_min (gint32 *int32) -{ - g_assert(*int32 == G_MININT32); -} - /** * test_gi_int32_out_max: * int32: (out): @@ -563,33 +353,12 @@ test_gi_uint32_return (void) return G_MAXUINT32; } -/** - * test_gi_uint32_return_ptr: - * Returns: (transfer none): - */ -guint32 * -test_gi_uint32_return_ptr (void) -{ - static guint32 uint32 = G_MAXUINT32; - return &uint32; -} - void test_gi_uint32_in (guint32 uint32) { g_assert(uint32 == G_MAXUINT32); } -/** - * test_gi_uint32_in_ptr: - * uint32: (in): - */ -void -test_gi_uint32_in_ptr (guint32 *uint32) -{ - g_assert(*uint32 == G_MAXUINT32); -} - /** * test_gi_uint32_out: * uint32: (out): @@ -624,28 +393,6 @@ test_gi_int64_return_min (void) return G_MININT64; } -/** - * test_gi_int64_return_ptr_max: - * Returns: (transfer none): - */ -gint64 * -test_gi_int64_return_ptr_max (void) -{ - static gint64 int64 = G_MAXINT64; - return &int64; -} - -/** - * test_gi_int64_return_ptr_min: - * Returns: (transfer none): - */ -gint64 * -test_gi_int64_return_ptr_min (void) -{ - static gint64 int64 = G_MININT64; - return &int64; -} - void test_gi_int64_in_max (gint64 int64) { @@ -658,26 +405,6 @@ test_gi_int64_in_min (gint64 int64) g_assert(int64 == G_MININT64); } -/** - * test_gi_int64_in_ptr_max: - * int64: (in): - */ -void -test_gi_int64_in_ptr_max (gint64 *int64) -{ - g_assert(*int64 == G_MAXINT64); -} - -/** - * test_gi_int64_in_ptr_min: - * int64: (in): - */ -void -test_gi_int64_in_ptr_min (gint64 *int64) -{ - g_assert(*int64 == G_MININT64); -} - /** * test_gi_int64_out_max: * int64: (out): @@ -727,33 +454,12 @@ test_gi_uint64_return (void) return G_MAXUINT64; } -/** - * test_gi_uint64_return_ptr: - * Returns: (transfer none): - */ -guint64 * -test_gi_uint64_return_ptr (void) -{ - static guint64 uint64 = G_MAXUINT64; - return &uint64; -} - void test_gi_uint64_in (guint64 uint64) { g_assert(uint64 == G_MAXUINT64); } -/** - * test_gi_uint64_in_ptr: - * uint64: (in): - */ -void -test_gi_uint64_in_ptr (guint64 *uint64) -{ - g_assert(*uint64 == G_MAXUINT64); -} - /** * test_gi_uint64_out: * uint64: (out): @@ -788,28 +494,6 @@ test_gi_short_return_min (void) return G_MINSHORT; } -/** - * test_gi_short_return_ptr_max: - * Returns: (transfer none): - */ -gshort * -test_gi_short_return_ptr_max (void) -{ - static gshort short_ = G_MAXSHORT; - return &short_; -} - -/** - * test_gi_short_return_ptr_min: - * Returns: (transfer none): - */ -gshort * -test_gi_short_return_ptr_min (void) -{ - static gshort short_ = G_MINSHORT; - return &short_; -} - void test_gi_short_in_max (gshort short_) { @@ -822,26 +506,6 @@ test_gi_short_in_min (gshort short_) g_assert(short_ == G_MINSHORT); } -/** - * test_gi_short_in_ptr_max: - * short_: (in): - */ -void -test_gi_short_in_ptr_max (gshort *short_) -{ - g_assert(*short_ == G_MAXSHORT); -} - -/** - * test_gi_short_in_ptr_min: - * short_: (in): - */ -void -test_gi_short_in_ptr_min (gshort *short_) -{ - g_assert(*short_ == G_MINSHORT); -} - /** * test_gi_short_out_max: * short_: (out): @@ -891,33 +555,12 @@ test_gi_ushort_return (void) return G_MAXUSHORT; } -/** - * test_gi_ushort_return_ptr: - * Returns: (transfer none): - */ -gushort * -test_gi_ushort_return_ptr (void) -{ - static gushort ushort = G_MAXUSHORT; - return &ushort; -} - void test_gi_ushort_in (gushort ushort) { g_assert(ushort == G_MAXUSHORT); } -/** - * test_gi_ushort_in_ptr: - * ushort: (in): - */ -void -test_gi_ushort_in_ptr (gushort *ushort) -{ - g_assert(*ushort == G_MAXUSHORT); -} - /** * test_gi_ushort_out: * ushort: (out): @@ -952,28 +595,6 @@ test_gi_int_return_min (void) return G_MININT; } -/** - * test_gi_int_return_ptr_max: - * Returns: (transfer none): - */ -gint * -test_gi_int_return_ptr_max (void) -{ - static gint int_ = G_MAXINT; - return &int_; -} - -/** - * test_gi_int_return_ptr_min: - * Returns: (transfer none): - */ -gint * -test_gi_int_return_ptr_min (void) -{ - static gint int_ = G_MININT; - return &int_; -} - void test_gi_int_in_max (gint int_) { @@ -986,26 +607,6 @@ test_gi_int_in_min (gint int_) g_assert(int_ == G_MININT); } -/** - * test_gi_int_in_ptr_max: - * int_: (in): - */ -void -test_gi_int_in_ptr_max (gint *int_) -{ - g_assert(*int_ == G_MAXINT); -} - -/** - * test_gi_int_in_ptr_min: - * int_: (in): - */ -void -test_gi_int_in_ptr_min (gint *int_) -{ - g_assert(*int_ == G_MININT); -} - /** * test_gi_int_out_max: * int_: (out): @@ -1055,33 +656,12 @@ test_gi_uint_return (void) return G_MAXUINT; } -/** - * test_gi_uint_return_ptr: - * Returns: (transfer none): - */ -guint * -test_gi_uint_return_ptr (void) -{ - static guint uint = G_MAXUINT; - return &uint; -} - void test_gi_uint_in (guint uint) { g_assert(uint == G_MAXUINT); } -/** - * test_gi_uint_in_ptr: - * uint: (in): - */ -void -test_gi_uint_in_ptr (guint *uint) -{ - g_assert(*uint == G_MAXUINT); -} - /** * test_gi_uint_out: * uint: (out): @@ -1116,28 +696,6 @@ test_gi_long_return_min (void) return G_MINLONG; } -/** - * test_gi_long_return_ptr_max: - * Returns: (transfer none): - */ -glong * -test_gi_long_return_ptr_max (void) -{ - static glong long_ = G_MAXLONG; - return &long_; -} - -/** - * test_gi_long_return_ptr_min: - * Returns: (transfer none): - */ -glong * -test_gi_long_return_ptr_min (void) -{ - static glong long_ = G_MINLONG; - return &long_; -} - void test_gi_long_in_max (glong long_) { @@ -1150,26 +708,6 @@ test_gi_long_in_min (glong long_) g_assert(long_ == G_MINLONG); } -/** - * test_gi_long_in_ptr_max: - * long_: (in): - */ -void -test_gi_long_in_ptr_max (glong *long_) -{ - g_assert(*long_ == G_MAXLONG); -} - -/** - * test_gi_long_in_ptr_min: - * long_: (in): - */ -void -test_gi_long_in_ptr_min (glong *long_) -{ - g_assert(*long_ == G_MINLONG); -} - /** * test_gi_long_out_max: * long_: (out): @@ -1219,33 +757,12 @@ test_gi_ulong_return (void) return G_MAXULONG; } -/** - * test_gi_ulong_return_ptr: - * Returns: (transfer none): - */ -gulong * -test_gi_ulong_return_ptr (void) -{ - static gulong ulong = G_MAXULONG; - return &ulong; -} - void test_gi_ulong_in (gulong ulong) { g_assert(ulong == G_MAXULONG); } -/** - * test_gi_ulong_in_ptr: - * ulong: (in): - */ -void -test_gi_ulong_in_ptr (gulong *ulong) -{ - g_assert(*ulong == G_MAXULONG); -} - /** * test_gi_ulong_out: * ulong: (out): @@ -1280,28 +797,6 @@ test_gi_ssize_return_min (void) return G_MINSSIZE; } -/** - * test_gi_ssize_return_ptr_max: - * Returns: (transfer none): - */ -gssize * -test_gi_ssize_return_ptr_max (void) -{ - static gssize ssize = G_MAXSSIZE; - return &ssize; -} - -/** - * test_gi_ssize_return_ptr_min: - * Returns: (transfer none): - */ -gssize * -test_gi_ssize_return_ptr_min (void) -{ - static gssize ssize = G_MINSSIZE; - return &ssize; -} - void test_gi_ssize_in_max (gssize ssize) { @@ -1314,26 +809,6 @@ test_gi_ssize_in_min (gssize ssize) g_assert(ssize == G_MINSSIZE); } -/** - * test_gi_ssize_in_ptr_max: - * ssize: (in): - */ -void -test_gi_ssize_in_ptr_max (gssize *ssize) -{ - g_assert(*ssize == G_MAXSSIZE); -} - -/** - * test_gi_ssize_in_ptr_min: - * ssize: (in): - */ -void -test_gi_ssize_in_ptr_min (gssize *ssize) -{ - g_assert(*ssize == G_MINSSIZE); -} - /** * test_gi_ssize_out_max: * ssize: (out): @@ -1383,33 +858,12 @@ test_gi_size_return (void) return G_MAXSIZE; } -/** - * test_gi_size_return_ptr: - * Returns: (transfer none): - */ -gsize * -test_gi_size_return_ptr (void) -{ - static gsize size = G_MAXSIZE; - return &size; -} - void test_gi_size_in (gsize size) { g_assert(size == G_MAXSIZE); } -/** - * test_gi_size_in_ptr: - * size: (in): - */ -void -test_gi_size_in_ptr (gsize *size) -{ - g_assert(*size == G_MAXSIZE); -} - /** * test_gi_size_out: * size: (out): @@ -1438,33 +892,12 @@ test_gi_float_return (void) return G_MAXFLOAT; } -/** - * test_gi_float_return_ptr: - * Returns: (transfer none): - */ -gfloat * -test_gi_float_return_ptr (void) -{ - static gfloat float_ = G_MAXFLOAT; - return &float_; -} - void test_gi_float_in (gfloat float_) { g_assert(float_ == G_MAXFLOAT); } -/** - * test_gi_float_in_ptr: - * float_: (in): - */ -void -test_gi_float_in_ptr (gfloat *float_) -{ - g_assert(*float_ == G_MAXFLOAT); -} - /** * test_gi_float_out: * float_: (out): @@ -1493,33 +926,12 @@ test_gi_double_return (void) return G_MAXDOUBLE; } -/** - * test_gi_double_return_ptr: - * Returns: (transfer none): - */ -gdouble * -test_gi_double_return_ptr (void) -{ - static gdouble double_ = G_MAXDOUBLE; - return &double_; -} - void test_gi_double_in (gdouble double_) { g_assert(double_ == G_MAXDOUBLE); } -/** - * test_gi_double_in_ptr: - * double_: (in): - */ -void -test_gi_double_in_ptr (gdouble *double_) -{ - g_assert(*double_ == G_MAXDOUBLE); -} - /** * test_gi_double_out: * double_: (out): @@ -1548,33 +960,12 @@ test_gi_time_t_return (void) return 1234567890; } -/** - * test_gi_time_t_return_ptr: - * Returns: (transfer none): - */ -time_t * -test_gi_time_t_return_ptr (void) -{ - static time_t time_t_ = 1234567890; - return &time_t_; -} - void test_gi_time_t_in (time_t time_t_) { g_assert(time_t_ == 1234567890); } -/** - * test_gi_time_t_in_ptr: - * time_t_: (in): - */ -void -test_gi_time_t_in_ptr (time_t *time_t_) -{ - g_assert(*time_t_ == 1234567890); -} - /** * test_gi_time_t_out: * time_t_: (out): @@ -1603,33 +994,12 @@ test_gi_gtype_return (void) return G_TYPE_NONE; } -/** - * test_gi_gtype_return_ptr: - * Returns: (transfer none): - */ -GType * -test_gi_gtype_return_ptr (void) -{ - static GType gtype = G_TYPE_NONE; - return >ype; -} - void test_gi_gtype_in (GType gtype) { g_assert(gtype == G_TYPE_NONE); } -/** - * test_gi_gtype_in_ptr: - * gtype: (in): - */ -void -test_gi_gtype_in_ptr (GType *gtype) -{ - g_assert(*gtype == G_TYPE_NONE); -} - /** * test_gi_gtype_out: * gtype: (out): @@ -2782,16 +2152,6 @@ test_gi_enum_in (TestGIEnum enum_) g_assert(enum_ == TESTGI_ENUM_VALUE3); } -/** - * test_gi_enum_in_ptr: - * @enum_: (in) (transfer none): - */ -void -test_gi_enum_in_ptr (TestGIEnum *enum_) -{ - g_assert(*enum_ == TESTGI_ENUM_VALUE3); -} - /** * test_gi_enum_out: * @enum_: (out): @@ -2849,16 +2209,6 @@ test_gi_flags_in_zero (TestGIFlags flags) g_assert(flags == 0); } -/** - * test_gi_flags_in_ptr: - * @flags_: (in) (transfer none): - */ -void -test_gi_flags_in_ptr (TestGIFlags *flags_) -{ - g_assert(*flags_ == TESTGI_FLAGS_VALUE2); -} - /** * test_gi_flags_out: * @flags_: (out): @@ -3467,16 +2817,6 @@ test_gi_int_return_out (gint *int_) return 6; } -/** - * test_gi_ptr_return_null: - * Returns: (allow-none): - */ -gint * -test_gi_int_return_ptr_null (void) -{ - return NULL; -} - TestGIOverridesStruct * test_gi_overrides_struct_copy (TestGIOverridesStruct *struct_) diff --git a/tests/libtestgi.h b/tests/libtestgi.h index 970d01b..a08a7fc 100644 --- a/tests/libtestgi.h +++ b/tests/libtestgi.h @@ -20,9 +20,6 @@ typedef struct _TestGISimpleStruct TestGISimpleStruct; gboolean test_gi_boolean_return_true (void); gboolean test_gi_boolean_return_false (void); -gboolean *test_gi_boolean_return_ptr_true (void); -gboolean *test_gi_boolean_return_ptr_false (void); - void test_gi_boolean_in_true (gboolean bool_); void test_gi_boolean_in_false (gboolean bool_); @@ -32,24 +29,15 @@ void test_gi_boolean_out_false (gboolean *bool_); void test_gi_boolean_inout_true_false (gboolean *bool_); void test_gi_boolean_inout_false_true (gboolean *bool_); -void test_gi_boolean_in_ptr_true (gboolean *bool_); -void test_gi_boolean_in_ptr_false (gboolean *bool_); - /* Integers */ gint8 test_gi_int8_return_max (void); gint8 test_gi_int8_return_min (void); -gint8 *test_gi_int8_return_ptr_max (void); -gint8 *test_gi_int8_return_ptr_min (void); - void test_gi_int8_in_max (gint8 int8); void test_gi_int8_in_min (gint8 int8); -void test_gi_int8_in_ptr_max (gint8 *int8); -void test_gi_int8_in_ptr_min (gint8 *int8); - void test_gi_int8_out_max (gint8 *int8); void test_gi_int8_out_min (gint8 *int8); @@ -58,10 +46,8 @@ void test_gi_int8_inout_min_max (gint8 *int8); guint8 test_gi_uint8_return (void); -guint8 *test_gi_uint8_return_ptr (void); void test_gi_uint8_in (guint8 uint8); -void test_gi_uint8_in_ptr (guint8 *uint8); void test_gi_uint8_out (guint8 *uint8); void test_gi_uint8_inout (guint8 *uint8); @@ -70,15 +56,9 @@ void test_gi_uint8_inout (guint8 *uint8); gint16 test_gi_int16_return_max (void); gint16 test_gi_int16_return_min (void); -gint16 *test_gi_int16_return_ptr_max (void); -gint16 *test_gi_int16_return_ptr_min (void); - void test_gi_int16_in_max (gint16 int16); void test_gi_int16_in_min (gint16 int16); -void test_gi_int16_in_ptr_max (gint16 *int16); -void test_gi_int16_in_ptr_min (gint16 *int16); - void test_gi_int16_out_max (gint16 *int16); void test_gi_int16_out_min (gint16 *int16); @@ -87,10 +67,8 @@ void test_gi_int16_inout_min_max (gint16 *int16); guint16 test_gi_uint16_return (void); -guint16 *test_gi_uint16_return_ptr (void); void test_gi_uint16_in (guint16 uint16); -void test_gi_uint16_in_ptr (guint16 *uint16); void test_gi_uint16_out (guint16 *uint16); void test_gi_uint16_inout (guint16 *uint16); @@ -99,15 +77,9 @@ void test_gi_uint16_inout (guint16 *uint16); gint32 test_gi_int32_return_max (void); gint32 test_gi_int32_return_min (void); -gint32 *test_gi_int32_return_ptr_max (void); -gint32 *test_gi_int32_return_ptr_min (void); - void test_gi_int32_in_max (gint32 int32); void test_gi_int32_in_min (gint32 int32); -void test_gi_int32_in_ptr_max (gint32 *int32); -void test_gi_int32_in_ptr_min (gint32 *int32); - void test_gi_int32_out_max (gint32 *int32); void test_gi_int32_out_min (gint32 *int32); @@ -116,10 +88,8 @@ void test_gi_int32_inout_min_max (gint32 *int32); guint32 test_gi_uint32_return (void); -guint32 *test_gi_uint32_return_ptr (void); void test_gi_uint32_in (guint32 uint32); -void test_gi_uint32_in_ptr (guint32 *uint32); void test_gi_uint32_out (guint32 *uint32); void test_gi_uint32_inout (guint32 *uint32); @@ -128,15 +98,9 @@ void test_gi_uint32_inout (guint32 *uint32); gint64 test_gi_int64_return_max (void); gint64 test_gi_int64_return_min (void); -gint64 *test_gi_int64_return_ptr_max (void); -gint64 *test_gi_int64_return_ptr_min (void); - void test_gi_int64_in_max (gint64 int64); void test_gi_int64_in_min (gint64 int64); -void test_gi_int64_in_ptr_max (gint64 *int64); -void test_gi_int64_in_ptr_min (gint64 *int64); - void test_gi_int64_out_max (gint64 *int64); void test_gi_int64_out_min (gint64 *int64); @@ -145,10 +109,8 @@ void test_gi_int64_inout_min_max (gint64 *int64); guint64 test_gi_uint64_return (void); -guint64 *test_gi_uint64_return_ptr (void); void test_gi_uint64_in (guint64 uint64); -void test_gi_uint64_in_ptr (guint64 *uint64); void test_gi_uint64_out (guint64 *uint64); void test_gi_uint64_inout (guint64 *uint64); @@ -157,15 +119,9 @@ void test_gi_uint64_inout (guint64 *uint64); gshort test_gi_short_return_max (void); gshort test_gi_short_return_min (void); -gshort *test_gi_short_return_ptr_max (void); -gshort *test_gi_short_return_ptr_min (void); - void test_gi_short_in_max (gshort short_); void test_gi_short_in_min (gshort short_); -void test_gi_short_in_ptr_max (gshort *short_); -void test_gi_short_in_ptr_min (gshort *short_); - void test_gi_short_out_max (gshort *short_); void test_gi_short_out_min (gshort *short_); @@ -174,10 +130,8 @@ void test_gi_short_inout_min_max (gshort *short_); gushort test_gi_ushort_return (void); -gushort *test_gi_ushort_return_ptr (void); void test_gi_ushort_in (gushort ushort); -void test_gi_ushort_in_ptr (gushort *ushort); void test_gi_ushort_out (gushort *ushort); void test_gi_ushort_inout (gushort *ushort); @@ -186,15 +140,9 @@ void test_gi_ushort_inout (gushort *ushort); gint test_gi_int_return_max (void); gint test_gi_int_return_min (void); -gint *test_gi_int_return_ptr_max (void); -gint *test_gi_int_return_ptr_min (void); - void test_gi_int_in_max (gint int_); void test_gi_int_in_min (gint int_); -void test_gi_int_in_ptr_max (gint *int_); -void test_gi_int_in_ptr_min (gint *int_); - void test_gi_int_out_max (gint *int_); void test_gi_int_out_min (gint *int_); @@ -203,10 +151,8 @@ void test_gi_int_inout_min_max (gint *int_); guint test_gi_uint_return (void); -guint *test_gi_uint_return_ptr (void); void test_gi_uint_in (guint uint); -void test_gi_uint_in_ptr (guint *uint); void test_gi_uint_out (guint *uint); void test_gi_uint_inout (guint *uint); @@ -215,15 +161,9 @@ void test_gi_uint_inout (guint *uint); glong test_gi_long_return_max (void); glong test_gi_long_return_min (void); -glong *test_gi_long_return_ptr_max (void); -glong *test_gi_long_return_ptr_min (void); - void test_gi_long_in_max (glong long_); void test_gi_long_in_min (glong long_); -void test_gi_long_in_ptr_max (glong *long_); -void test_gi_long_in_ptr_min (glong *long_); - void test_gi_long_out_max (glong *long_); void test_gi_long_out_min (glong *long_); @@ -232,10 +172,8 @@ void test_gi_long_inout_min_max (glong *long_); gulong test_gi_ulong_return (void); -gulong *test_gi_ulong_return_ptr (void); void test_gi_ulong_in (gulong ulong); -void test_gi_ulong_in_ptr (gulong *ulong); void test_gi_ulong_out (gulong *ulong); void test_gi_ulong_inout (gulong *ulong); @@ -244,15 +182,9 @@ void test_gi_ulong_inout (gulong *ulong); gssize test_gi_ssize_return_max (void); gssize test_gi_ssize_return_min (void); -gssize *test_gi_ssize_return_ptr_max (void); -gssize *test_gi_ssize_return_ptr_min (void); - void test_gi_ssize_in_max (gssize ssize); void test_gi_ssize_in_min (gssize ssize); -void test_gi_ssize_in_ptr_max (gssize *ssize); -void test_gi_ssize_in_ptr_min (gssize *ssize); - void test_gi_ssize_out_max (gssize *ssize); void test_gi_ssize_out_min (gssize *ssize); @@ -261,10 +193,8 @@ void test_gi_ssize_inout_min_max (gssize *ssize); gsize test_gi_size_return (void); -gsize *test_gi_size_return_ptr (void); void test_gi_size_in (gsize size); -void test_gi_size_in_ptr (gsize *size); void test_gi_size_out (gsize *size); void test_gi_size_inout (gsize *size); @@ -273,10 +203,8 @@ void test_gi_size_inout (gsize *size); /* Floating-point */ gfloat test_gi_float_return (void); -gfloat *test_gi_float_return_ptr (void); void test_gi_float_in (gfloat float_); -void test_gi_float_in_ptr (gfloat *float_); void test_gi_float_out (gfloat *float_); @@ -284,10 +212,8 @@ void test_gi_float_inout (gfloat *float_); gdouble test_gi_double_return (void); -gdouble *test_gi_double_return_ptr (void); void test_gi_double_in (gdouble double_); -void test_gi_double_in_ptr (gdouble *double_); void test_gi_double_out (gdouble *double_); @@ -297,10 +223,8 @@ void test_gi_double_inout (gdouble *double_); /* Timestamps */ time_t test_gi_time_t_return (void); -time_t *test_gi_time_t_return_ptr (void); void test_gi_time_t_in (time_t time_t_); -void test_gi_time_t_in_ptr (time_t *time_t_); void test_gi_time_t_out (time_t *time_t_); @@ -310,10 +234,8 @@ void test_gi_time_t_inout (time_t *time_t_); /* GType */ GType test_gi_gtype_return (void); -GType *test_gi_gtype_return_ptr (void); void test_gi_gtype_in (GType gtype); -void test_gi_gtype_in_ptr (GType *gtype); void test_gi_gtype_out (GType *gtype); @@ -470,7 +392,6 @@ GType test_gi_enum_get_type (void) G_GNUC_CONST; TestGIEnum test_gi_enum_return (void); void test_gi_enum_in (TestGIEnum enum_); -void test_gi_enum_in_ptr (TestGIEnum *enum_); void test_gi_enum_out (TestGIEnum *enum_); @@ -493,7 +414,6 @@ TestGIFlags test_gi_flags_return (void); void test_gi_flags_in (TestGIFlags flags_); void test_gi_flags_in_zero (TestGIFlags flags); -void test_gi_flags_in_ptr (TestGIFlags *flags_); void test_gi_flags_out (TestGIFlags *flags_); @@ -656,12 +576,6 @@ void test_gi_int_out_out (gint *int0, gint *int1); gint test_gi_int_return_out (gint *int_); -/* Nullable arguments */ - -gint *test_gi_int_return_ptr_null (void); -void test_gi_int_in_ptr_null (gint *int_); - - /* Overrides */ #define TESTGI_OVERRIDES_CONSTANT 42 diff --git a/tests/test_gi.py b/tests/test_gi.py index 0d97915..36337ed 100644 --- a/tests/test_gi.py +++ b/tests/test_gi.py @@ -59,10 +59,6 @@ class TestBoolean(unittest.TestCase): self.assertEquals(True, TestGI.boolean_return_true()) self.assertEquals(False, TestGI.boolean_return_false()) - def test_boolean_return_ptr(self): - self.assertEquals(True, TestGI.boolean_return_ptr_true()) - self.assertEquals(False, TestGI.boolean_return_ptr_false()) - def test_boolean_in(self): TestGI.boolean_in_true(True) TestGI.boolean_in_false(False) @@ -70,11 +66,6 @@ class TestBoolean(unittest.TestCase): TestGI.boolean_in_true(1) TestGI.boolean_in_false(0) - def test_boolean_in_ptr(self): - TestGI.boolean_in_ptr_true(True) - TestGI.boolean_in_ptr_false(False) - TestGI.boolean_in_ptr_false(None) - def test_boolean_out(self): self.assertEquals(True, TestGI.boolean_out_true()) self.assertEquals(False, TestGI.boolean_out_false()) @@ -93,10 +84,6 @@ class TestInt8(unittest.TestCase): self.assertEquals(self.MAX, TestGI.int8_return_max()) self.assertEquals(self.MIN, TestGI.int8_return_min()) - def test_int8_return_ptr(self): - self.assertEquals(self.MAX, TestGI.int8_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.int8_return_ptr_min()) - def test_int8_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -112,11 +99,6 @@ class TestInt8(unittest.TestCase): self.assertRaises(TypeError, TestGI.int8_in_max, "self.MAX") - def test_int8_in_ptr(self): - TestGI.int8_in_ptr_max(Number(self.MAX)) - TestGI.int8_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.int8_in_ptr_max, None) - def test_int8_out(self): self.assertEquals(self.MAX, TestGI.int8_out_max()) self.assertEquals(self.MIN, TestGI.int8_out_min()) @@ -133,10 +115,6 @@ class TestUInt8(unittest.TestCase): def test_uint8_return(self): self.assertEquals(self.MAX, TestGI.uint8_return()) -# Blocked by https://bugzilla.gnome.org/show_bug.cgi?id=596420 -# def test_uint8_return_ptr(self): -# self.assertEquals(self.MAX, TestGI.uint8_return_ptr()) - def test_uint8_in(self): number = Number(self.MAX) @@ -165,10 +143,6 @@ class TestInt16(unittest.TestCase): self.assertEquals(self.MAX, TestGI.int16_return_max()) self.assertEquals(self.MIN, TestGI.int16_return_min()) - def test_int16_return_ptr(self): - self.assertEquals(self.MAX, TestGI.int16_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.int16_return_ptr_min()) - def test_int16_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -184,11 +158,6 @@ class TestInt16(unittest.TestCase): self.assertRaises(TypeError, TestGI.int16_in_max, "self.MAX") - def test_int16_in_ptr(self): - TestGI.int16_in_ptr_max(Number(self.MAX)) - TestGI.int16_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.int16_in_ptr_max, None) - def test_int16_out(self): self.assertEquals(self.MAX, TestGI.int16_out_max()) self.assertEquals(self.MIN, TestGI.int16_out_min()) @@ -205,9 +174,6 @@ class TestUInt16(unittest.TestCase): def test_uint16_return(self): self.assertEquals(self.MAX, TestGI.uint16_return()) - def test_uint16_return_ptr(self): - self.assertEquals(self.MAX, TestGI.uint16_return_ptr()) - def test_uint16_in(self): number = Number(self.MAX) @@ -236,10 +202,6 @@ class TestInt32(unittest.TestCase): self.assertEquals(self.MAX, TestGI.int32_return_max()) self.assertEquals(self.MIN, TestGI.int32_return_min()) - def test_int32_return_ptr(self): - self.assertEquals(self.MAX, TestGI.int32_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.int32_return_ptr_min()) - def test_int32_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -255,11 +217,6 @@ class TestInt32(unittest.TestCase): self.assertRaises(TypeError, TestGI.int32_in_max, "self.MAX") - def test_int32_in_ptr(self): - TestGI.int32_in_ptr_max(Number(self.MAX)) - TestGI.int32_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.int32_in_ptr_max, None) - def test_int32_out(self): self.assertEquals(self.MAX, TestGI.int32_out_max()) self.assertEquals(self.MIN, TestGI.int32_out_min()) @@ -276,9 +233,6 @@ class TestUInt32(unittest.TestCase): def test_uint32_return(self): self.assertEquals(self.MAX, TestGI.uint32_return()) - def test_uint32_return_ptr(self): - self.assertEquals(self.MAX, TestGI.uint32_return_ptr()) - def test_uint32_in(self): number = Number(self.MAX) @@ -307,10 +261,6 @@ class TestInt64(unittest.TestCase): self.assertEquals(self.MAX, TestGI.int64_return_max()) self.assertEquals(self.MIN, TestGI.int64_return_min()) - def test_int64_return_ptr(self): - self.assertEquals(self.MAX, TestGI.int64_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.int64_return_ptr_min()) - def test_int64_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -326,11 +276,6 @@ class TestInt64(unittest.TestCase): self.assertRaises(TypeError, TestGI.int64_in_max, "self.MAX") - def test_int64_in_ptr(self): - TestGI.int64_in_ptr_max(Number(self.MAX)) - TestGI.int64_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.int64_in_ptr_max, None) - def test_int64_out(self): self.assertEquals(self.MAX, TestGI.int64_out_max()) self.assertEquals(self.MIN, TestGI.int64_out_min()) @@ -347,9 +292,6 @@ class TestUInt64(unittest.TestCase): def test_uint64_return(self): self.assertEquals(self.MAX, TestGI.uint64_return()) - def test_uint64_return_ptr(self): - self.assertEquals(self.MAX, TestGI.uint64_return_ptr()) - def test_uint64_in(self): number = Number(self.MAX) @@ -378,10 +320,6 @@ class TestShort(unittest.TestCase): self.assertEquals(self.MAX, TestGI.short_return_max()) self.assertEquals(self.MIN, TestGI.short_return_min()) - def test_short_return_ptr(self): - self.assertEquals(self.MAX, TestGI.short_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.short_return_ptr_min()) - def test_short_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -397,11 +335,6 @@ class TestShort(unittest.TestCase): self.assertRaises(TypeError, TestGI.short_in_max, "self.MAX") - def test_short_in_ptr(self): - TestGI.short_in_ptr_max(Number(self.MAX)) - TestGI.short_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.short_in_ptr_max, None) - def test_short_out(self): self.assertEquals(self.MAX, TestGI.short_out_max()) self.assertEquals(self.MIN, TestGI.short_out_min()) @@ -418,9 +351,6 @@ class TestUShort(unittest.TestCase): def test_ushort_return(self): self.assertEquals(self.MAX, TestGI.ushort_return()) - def test_ushort_return_ptr(self): - self.assertEquals(self.MAX, TestGI.ushort_return_ptr()) - def test_ushort_in(self): number = Number(self.MAX) @@ -449,10 +379,6 @@ class TestInt(unittest.TestCase): self.assertEquals(self.MAX, TestGI.int_return_max()) self.assertEquals(self.MIN, TestGI.int_return_min()) - def test_int_return_ptr(self): - self.assertEquals(self.MAX, TestGI.int_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.int_return_ptr_min()) - def test_int_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -468,11 +394,6 @@ class TestInt(unittest.TestCase): self.assertRaises(TypeError, TestGI.int_in_max, "self.MAX") - def test_int_in_ptr(self): - TestGI.int_in_ptr_max(Number(self.MAX)) - TestGI.int_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.int_in_ptr_max, None) - def test_int_out(self): self.assertEquals(self.MAX, TestGI.int_out_max()) self.assertEquals(self.MIN, TestGI.int_out_min()) @@ -489,9 +410,6 @@ class TestUInt(unittest.TestCase): def test_uint_return(self): self.assertEquals(self.MAX, TestGI.uint_return()) - def test_uint_return_ptr(self): - self.assertEquals(self.MAX, TestGI.uint_return_ptr()) - def test_uint_in(self): number = Number(self.MAX) @@ -520,10 +438,6 @@ class TestLong(unittest.TestCase): self.assertEquals(self.MAX, TestGI.long_return_max()) self.assertEquals(self.MIN, TestGI.long_return_min()) - def test_long_return_ptr(self): - self.assertEquals(self.MAX, TestGI.long_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.long_return_ptr_min()) - def test_long_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -539,11 +453,6 @@ class TestLong(unittest.TestCase): self.assertRaises(TypeError, TestGI.long_in_max, "self.MAX") - def test_long_in_ptr(self): - TestGI.long_in_ptr_max(Number(self.MAX)) - TestGI.long_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.long_in_ptr_max, None) - def test_long_out(self): self.assertEquals(self.MAX, TestGI.long_out_max()) self.assertEquals(self.MIN, TestGI.long_out_min()) @@ -560,9 +469,6 @@ class TestULong(unittest.TestCase): def test_ulong_return(self): self.assertEquals(self.MAX, TestGI.ulong_return()) - def test_ulong_return_ptr(self): - self.assertEquals(self.MAX, TestGI.ulong_return_ptr()) - def test_ulong_in(self): number = Number(self.MAX) @@ -591,10 +497,6 @@ class TestSSize(unittest.TestCase): self.assertEquals(self.MAX, TestGI.ssize_return_max()) self.assertEquals(self.MIN, TestGI.ssize_return_min()) - def test_ssize_return_ptr(self): - self.assertEquals(self.MAX, TestGI.ssize_return_ptr_max()) - self.assertEquals(self.MIN, TestGI.ssize_return_ptr_min()) - def test_ssize_in(self): max = Number(self.MAX) min = Number(self.MIN) @@ -610,11 +512,6 @@ class TestSSize(unittest.TestCase): self.assertRaises(TypeError, TestGI.ssize_in_max, "self.MAX") - def test_ssize_in_ptr(self): - TestGI.ssize_in_ptr_max(Number(self.MAX)) - TestGI.ssize_in_ptr_min(Number(self.MIN)) - self.assertRaises(TypeError, TestGI.ssize_in_ptr_max, None) - def test_ssize_out(self): self.assertEquals(self.MAX, TestGI.ssize_out_max()) self.assertEquals(self.MIN, TestGI.ssize_out_min()) @@ -631,9 +528,6 @@ class TestSize(unittest.TestCase): def test_size_return(self): self.assertEquals(self.MAX, TestGI.size_return()) - def test_size_return_ptr(self): - self.assertEquals(self.MAX, TestGI.size_return_ptr()) - def test_size_in(self): number = Number(self.MAX) @@ -661,18 +555,11 @@ class TestFloat(unittest.TestCase): def test_float_return(self): self.assertAlmostEquals(self.MAX, TestGI.float_return()) - def test_float_return_ptr(self): - self.assertAlmostEquals(self.MAX, TestGI.float_return_ptr()) - def test_float_in(self): TestGI.float_in(Number(self.MAX)) self.assertRaises(TypeError, TestGI.float_in, "self.MAX") - def test_float_in_ptr(self): - TestGI.float_in_ptr(Number(self.MAX)) - self.assertRaises(TypeError, TestGI.float_in_ptr, None) - def test_float_out(self): self.assertAlmostEquals(self.MAX, TestGI.float_out()) @@ -688,18 +575,11 @@ class TestDouble(unittest.TestCase): def test_double_return(self): self.assertAlmostEquals(self.MAX, TestGI.double_return()) - def test_double_return_ptr(self): - self.assertAlmostEquals(self.MAX, TestGI.double_return_ptr()) - def test_double_in(self): TestGI.double_in(Number(self.MAX)) self.assertRaises(TypeError, TestGI.double_in, "self.MAX") - def test_double_in_ptr(self): - TestGI.double_in_ptr(Number(self.MAX)) - self.assertRaises(TypeError, TestGI.double_in_ptr, None) - def test_double_out(self): self.assertAlmostEquals(self.MAX, TestGI.double_out()) @@ -714,18 +594,11 @@ class TestTimeT(unittest.TestCase): def test_time_t_return(self): self.assertEquals(self.DATETIME, TestGI.time_t_return()) - def test_time_t_return_ptr(self): - self.assertEquals(self.DATETIME, TestGI.time_t_return_ptr()) - def test_time_t_in(self): TestGI.time_t_in(self.DATETIME) self.assertRaises(TypeError, TestGI.time_t_in, "self.DATETIME") - def test_time_t_in_ptr(self): - TestGI.time_t_in_ptr(self.DATETIME) - self.assertRaises(TypeError, TestGI.time_t_in_ptr, None) - def test_time_t_out(self): self.assertEquals(self.DATETIME, TestGI.time_t_out()) @@ -738,18 +611,11 @@ class TestGType(unittest.TestCase): def test_gtype_return(self): self.assertEquals(gobject.TYPE_NONE, TestGI.gtype_return()) - def test_gtype_return_ptr(self): - self.assertEquals(gobject.TYPE_NONE, TestGI.gtype_return_ptr()) - def test_gtype_in(self): TestGI.gtype_in(gobject.TYPE_NONE) self.assertRaises(TypeError, TestGI.gtype_in, "gobject.TYPE_NONE") - def test_gtype_in_ptr(self): - TestGI.gtype_in_ptr(gobject.TYPE_NONE) - self.assertRaises(TypeError, TestGI.gtype_in_ptr, None) - def test_gtype_out(self): self.assertEquals(gobject.TYPE_NONE, TestGI.gtype_out()) @@ -1064,11 +930,6 @@ class TestGEnum(unittest.TestCase): self.assertRaises(TypeError, TestGI.enum_in, 42) self.assertRaises(TypeError, TestGI.enum_in, 'TestGI.Enum.VALUE3') - def test_enum_in_ptr(self): - TestGI.enum_in_ptr(TestGI.Enum.VALUE3) - - self.assertRaises(TypeError, TestGI.enum_in_ptr, None) - def test_enum_out(self): enum = TestGI.enum_out() self.assertTrue(isinstance(enum, TestGI.Enum)) @@ -1096,11 +957,6 @@ class TestGFlags(unittest.TestCase): self.assertRaises(TypeError, TestGI.flags_in, 1 << 1) self.assertRaises(TypeError, TestGI.flags_in, 'TestGI.Flags.VALUE2') - def test_flags_in_ptr(self): - TestGI.flags_in_ptr(TestGI.Flags.VALUE2) - - self.assertRaises(TypeError, TestGI.flags_in_ptr, None) - def test_flags_out(self): flags = TestGI.flags_out() self.assertTrue(isinstance(flags, TestGI.Flags)) -- cgit