diff options
author | Kevin Greenan <kmg@box.com> | 2015-08-11 09:32:12 -0700 |
---|---|---|
committer | Kevin Greenan <kmg@box.com> | 2015-08-11 09:32:12 -0700 |
commit | 8c825a8e2a39beefc4a73116f381de45e3615638 (patch) | |
tree | c618f910c0cb82941c69c3b62e3b4bb4879441d6 | |
parent | 4116b81e769617c79482feb8ff8a227b3d527044 (diff) | |
download | pyeclib-8c825a8e2a39beefc4a73116f381de45e3615638.tar.gz |
Fix integer truncation issue with PyBuildValue on Big Endian systems by explicitly
casting the size argument passed in to Py_ssize_t.
Also fix import issue with the API test where older versions of Python fail to
import.
-rw-r--r-- | src/c/pyeclib_c/pyeclib_c.c | 4 | ||||
-rw-r--r-- | test/test_pyeclib_api.py | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/c/pyeclib_c/pyeclib_c.c b/src/c/pyeclib_c/pyeclib_c.c index 6ba83a9..e2d98c3 100644 --- a/src/c/pyeclib_c/pyeclib_c.c +++ b/src/c/pyeclib_c/pyeclib_c.c @@ -46,7 +46,7 @@ PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \ ob = PyModule_Create(&moduledef); #define PY_BUILDVALUE_OBJ_LEN(obj, objlen) \ - Py_BuildValue("y#", obj, objlen) + Py_BuildValue("y#", obj, (Py_ssize_t)objlen) #define PyInt_FromLong PyLong_FromLong #define PyString_FromString PyUnicode_FromString #define ENCODE_ARGS "Oy#" @@ -58,7 +58,7 @@ #define MOD_DEF(ob, name, doc, methods) \ ob = Py_InitModule3(name, methods, doc); #define PY_BUILDVALUE_OBJ_LEN(obj, objlen) \ - Py_BuildValue("s#", obj, objlen) + Py_BuildValue("s#", obj, (Py_ssize_t)objlen) #define ENCODE_ARGS "Os#" #define GET_METADATA_ARGS "Os#i" #endif diff --git a/test/test_pyeclib_api.py b/test/test_pyeclib_api.py index 45d7d5b..78c482e 100644 --- a/test/test_pyeclib_api.py +++ b/test/test_pyeclib_api.py @@ -31,7 +31,10 @@ from pyeclib.ec_iface import ECDriverError from pyeclib.ec_iface import ECInsufficientFragments from pyeclib.ec_iface import ECDriver, PyECLib_EC_Types -from .test_pyeclib_c import _available_backends +if sys.version < '3': + from test_pyeclib_c import _available_backends +else: + from .test_pyeclib_c import _available_backends if sys.version < '3': def b2i(b): |