summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-11-28 18:48:19 +0000
committerTomeu Vizoso <tomeu@sugarlabs.org>2009-11-28 18:49:13 +0000
commit05a2ed55f3e5d2620de8b3b6b0d99e928ef3b041 (patch)
treee84fcab5ff058118d5bef2ac854c35da504a8b3a
parent96f6c638709636d7e2ddf560b877879691da3314 (diff)
downloadpygi-05a2ed55f3e5d2620de8b3b6b0d99e928ef3b041.tar.gz
pygi-05a2ed55f3e5d2620de8b3b6b0d99e928ef3b041.tar.xz
pygi-05a2ed55f3e5d2620de8b3b6b0d99e928ef3b041.zip
Use the limit constants from glib and interpret G_MAXUINT32 as PyLong_FromLongLong
https://bugzilla.gnome.org/show_bug.cgi?id=602384
-rw-r--r--gi/pygi-argument.c14
-rw-r--r--tests/test_gi.py18
2 files changed, 16 insertions, 16 deletions
diff --git a/gi/pygi-argument.c b/gi/pygi-argument.c
index 8411b62..feae974 100644
--- a/gi/pygi-argument.c
+++ b/gi/pygi-argument.c
@@ -52,21 +52,21 @@ _pygi_g_type_tag_py_bounds (GITypeTag type_tag,
*lower = PyInt_FromLong(0);
break;
case GI_TYPE_TAG_INT32:
- *lower = PyInt_FromLong(-2147483648);
- *upper = PyInt_FromLong(2147483647);
+ *lower = PyInt_FromLong(G_MININT32);
+ *upper = PyInt_FromLong(G_MAXINT32);
break;
case GI_TYPE_TAG_UINT32:
/* Note: On 32-bit archs, this number doesn't fit in a long. */
- *upper = PyLong_FromLongLong(4294967295);
+ *upper = PyLong_FromLongLong(G_MAXUINT32);
*lower = PyInt_FromLong(0);
break;
case GI_TYPE_TAG_INT64:
/* Note: On 32-bit archs, these numbers don't fit in a long. */
- *lower = PyLong_FromLongLong(-9223372036854775808u);
- *upper = PyLong_FromLongLong(9223372036854775807);
+ *lower = PyLong_FromLongLong(G_MININT64);
+ *upper = PyLong_FromLongLong(G_MAXINT64);
break;
case GI_TYPE_TAG_UINT64:
- *upper = PyLong_FromUnsignedLongLong(18446744073709551615u);
+ *upper = PyLong_FromUnsignedLongLong(G_MAXUINT64);
*lower = PyInt_FromLong(0);
break;
case GI_TYPE_TAG_SHORT:
@@ -1342,7 +1342,7 @@ _pygi_argument_to_object (GArgument *arg,
{
guint32 value;
value = is_pointer ? *(guint32 *)arg->v_pointer : arg->v_uint32;
- object = PyInt_FromLong(value);
+ object = PyLong_FromLongLong(value);
break;
}
case GI_TYPE_TAG_INT64:
diff --git a/tests/test_gi.py b/tests/test_gi.py
index 4503d62..bfbeeed 100644
--- a/tests/test_gi.py
+++ b/tests/test_gi.py
@@ -83,8 +83,8 @@ class TestBoolean(unittest.TestCase):
class TestInt8(unittest.TestCase):
- MAX = 2 ** 7 - 1
- MIN = - (2 ** 7)
+ MAX = gobject.G_MAXINT8
+ MIN = gobject.G_MININT8
def test_int8_return(self):
self.assertEquals(self.MAX, TestGI.int8_return_max())
@@ -125,7 +125,7 @@ class TestInt8(unittest.TestCase):
class TestUInt8(unittest.TestCase):
- MAX = 2 ** 8 - 1
+ MAX = gobject.G_MAXUINT8
def test_uint8_return(self):
self.assertEquals(self.MAX, TestGI.uint8_return())
@@ -155,8 +155,8 @@ class TestUInt8(unittest.TestCase):
class TestInt16(unittest.TestCase):
- MAX = 2 ** 15 - 1
- MIN = - (2 ** 15)
+ MAX = gobject.G_MAXINT16
+ MIN = gobject.G_MININT16
def test_int16_return(self):
self.assertEquals(self.MAX, TestGI.int16_return_max())
@@ -197,7 +197,7 @@ class TestInt16(unittest.TestCase):
class TestUInt16(unittest.TestCase):
- MAX = 2 ** 16 - 1
+ MAX = gobject.G_MAXUINT16
def test_uint16_return(self):
self.assertEquals(self.MAX, TestGI.uint16_return())
@@ -226,8 +226,8 @@ class TestUInt16(unittest.TestCase):
class TestInt32(unittest.TestCase):
- MAX = 2 ** 31 - 1
- MIN = - (2 ** 31)
+ MAX = gobject.G_MAXINT32
+ MIN = gobject.G_MININT32
def test_int32_return(self):
self.assertEquals(self.MAX, TestGI.int32_return_max())
@@ -268,7 +268,7 @@ class TestInt32(unittest.TestCase):
class TestUInt32(unittest.TestCase):
- MAX = 2 ** 32 - 1
+ MAX = gobject.G_MAXUINT32
def test_uint32_return(self):
self.assertEquals(self.MAX, TestGI.uint32_return())