From 248067931a2a8eeee86ea343bddf96d2bd727dbf Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Tue, 5 Nov 2002 21:26:35 +0000 Subject: [PATCH] pytdbpack_pack_data: Allow first argument to be any kind of Number, not just an Integer. Coerce appropriately. --- source/python/py_tdbpack.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/source/python/py_tdbpack.c b/source/python/py_tdbpack.c index 1b3cbbceea3..d29ada67414 100644 --- a/source/python/py_tdbpack.c +++ b/source/python/py_tdbpack.c @@ -661,14 +661,20 @@ pytdbpack_pack_data(const char *format_str, long size; char *sval; - if (!PyInt_Check(val_obj)) { - pytdbpack_bad_type(ch, "Integer", val_obj); + if (!PyNumber_Check(val_obj)) { + pytdbpack_bad_type(ch, "Number", val_obj); return NULL; } - size = PyInt_AsLong(val_obj); + if (!(val_obj = PyNumber_Long(val_obj))) + return NULL; + + size = PyLong_AsLong(val_obj); pack_uint32(size, &packed); + /* Release the new reference created by the cast */ + Py_DECREF(val_obj); + val_obj = PySequence_GetItem(val_seq, val_i++); if (!val_obj) return NULL;