fix errors for 32bit arch.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8523 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
c18f0bd237
commit
ce94984b71
3 changed files with 60 additions and 71 deletions
|
|
@ -161,7 +161,7 @@ if s.type != "void *":
|
||||||
|
|
||||||
# unsigned long long
|
# unsigned long long
|
||||||
ullmax = 9223372036854775807 #0xffffffffffffffff
|
ullmax = 9223372036854775807 #0xffffffffffffffff
|
||||||
ullmaxd = 922337203685477580.0
|
ullmaxd = 9007199254740992.0
|
||||||
ullmin = 0
|
ullmin = 0
|
||||||
ullmind = 0.0
|
ullmind = 0.0
|
||||||
if ull(ullmin) != ullmin:
|
if ull(ullmin) != ullmin:
|
||||||
|
|
@ -177,8 +177,8 @@ if ull(ullmaxd) != ullmaxd:
|
||||||
llmax = 9223372036854775807 #0x7fffffffffffffff
|
llmax = 9223372036854775807 #0x7fffffffffffffff
|
||||||
llmin = -9223372036854775808
|
llmin = -9223372036854775808
|
||||||
# these are near the largest floats we can still convert into long long
|
# these are near the largest floats we can still convert into long long
|
||||||
llmaxd = 922337203685477580.0
|
llmaxd = 9007199254740992.0
|
||||||
llmind = -922337203685477580.0
|
llmind = -9007199254740992.0
|
||||||
if ll(llmin) != llmin:
|
if ll(llmin) != llmin:
|
||||||
raise runtimeerror, "ll(llmin)"
|
raise runtimeerror, "ll(llmin)"
|
||||||
if ll(llmax) != llmax:
|
if ll(llmax) != llmax:
|
||||||
|
|
|
||||||
|
|
@ -118,14 +118,10 @@ SWIG_AsVal_dec(unsigned long)(PyObject *obj, unsigned long *val)
|
||||||
%#ifdef SWIG_PYTHON_CAST_MODE
|
%#ifdef SWIG_PYTHON_CAST_MODE
|
||||||
{
|
{
|
||||||
int dispatch = 0;
|
int dispatch = 0;
|
||||||
long v = PyInt_AsLong(obj);
|
unsigned long v = PyLong_AsUnsignedLong(obj);
|
||||||
if (!PyErr_Occurred()) {
|
if (!PyErr_Occurred()) {
|
||||||
if (v >= 0) {
|
if (val) *val = v;
|
||||||
if (val) *val = v;
|
return SWIG_AddCast(SWIG_OK);
|
||||||
return SWIG_AddCast(SWIG_OK);
|
|
||||||
} else {
|
|
||||||
return SWIG_OverflowError;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
}
|
}
|
||||||
|
|
@ -157,15 +153,14 @@ SWIG_From_dec(long long)(long long value)
|
||||||
}
|
}
|
||||||
|
|
||||||
%fragment(SWIG_AsVal_frag(long long),"header",
|
%fragment(SWIG_AsVal_frag(long long),"header",
|
||||||
|
fragment=SWIG_AsVal_frag(long),
|
||||||
fragment="SWIG_CanCastAsInteger",
|
fragment="SWIG_CanCastAsInteger",
|
||||||
fragment="<limits.h>") {
|
fragment="<limits.h>") {
|
||||||
SWIGINTERN int
|
SWIGINTERN int
|
||||||
SWIG_AsVal_dec(long long)(PyObject *obj, long long *val)
|
SWIG_AsVal_dec(long long)(PyObject *obj, long long *val)
|
||||||
{
|
{
|
||||||
if (PyInt_Check(obj)) {
|
int res = SWIG_TypeError;
|
||||||
if (val) *val = PyInt_AsLong(obj);
|
if (PyLong_Check(obj)) {
|
||||||
return SWIG_OK;
|
|
||||||
} else if (PyLong_Check(obj)) {
|
|
||||||
long long v = PyLong_AsLongLong(obj);
|
long long v = PyLong_AsLongLong(obj);
|
||||||
if (!PyErr_Occurred()) {
|
if (!PyErr_Occurred()) {
|
||||||
if (val) *val = v;
|
if (val) *val = v;
|
||||||
|
|
@ -173,30 +168,28 @@ SWIG_AsVal_dec(long long)(PyObject *obj, long long *val)
|
||||||
} else {
|
} else {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
%#ifdef SWIG_PYTHON_CAST_MODE
|
long v;
|
||||||
{
|
res = SWIG_AsVal(long)(obj,&v);
|
||||||
int dispatch = 0;
|
if (SWIG_IsOK(res)) {
|
||||||
long v = PyInt_AsLong(obj);
|
|
||||||
if (!PyErr_Occurred()) {
|
|
||||||
if (val) *val = v;
|
if (val) *val = v;
|
||||||
return SWIG_AddCast(SWIG_OK);
|
return res;
|
||||||
} else {
|
|
||||||
PyErr_Clear();
|
|
||||||
}
|
|
||||||
if (!dispatch) {
|
|
||||||
const double mant_max = 1LL << DBL_MANT_DIG;
|
|
||||||
const double mant_min = -mant_max;
|
|
||||||
double d;
|
|
||||||
int res = SWIG_AddCast(SWIG_AsVal(double)(obj,&d));
|
|
||||||
if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) {
|
|
||||||
if (val) *val = (long long)(d);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
%#ifdef SWIG_PYTHON_CAST_MODE
|
||||||
|
{
|
||||||
|
const double mant_max = 1LL << DBL_MANT_DIG;
|
||||||
|
const double mant_min = -mant_max;
|
||||||
|
double d;
|
||||||
|
res = SWIG_AsVal(double)(obj,&d);
|
||||||
|
if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) {
|
||||||
|
if (val) *val = (long long)(d);
|
||||||
|
return SWIG_AddCast(res);
|
||||||
|
}
|
||||||
|
res = SWIG_TypeError;
|
||||||
|
}
|
||||||
%#endif
|
%#endif
|
||||||
return SWIG_TypeError;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -220,6 +213,7 @@ SWIG_From_dec(unsigned long long)(unsigned long long value)
|
||||||
SWIGINTERN int
|
SWIGINTERN int
|
||||||
SWIG_AsVal_dec(unsigned long long)(PyObject *obj, unsigned long long *val)
|
SWIG_AsVal_dec(unsigned long long)(PyObject *obj, unsigned long long *val)
|
||||||
{
|
{
|
||||||
|
int res = SWIG_TypeError;
|
||||||
if (PyLong_Check(obj)) {
|
if (PyLong_Check(obj)) {
|
||||||
unsigned long long v = PyLong_AsUnsignedLongLong(obj);
|
unsigned long long v = PyLong_AsUnsignedLongLong(obj);
|
||||||
if (!PyErr_Occurred()) {
|
if (!PyErr_Occurred()) {
|
||||||
|
|
@ -230,36 +224,25 @@ SWIG_AsVal_dec(unsigned long long)(PyObject *obj, unsigned long long *val)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
unsigned long v;
|
unsigned long v;
|
||||||
int res = SWIG_AsVal(unsigned long)(obj,&v);
|
res = SWIG_AsVal(unsigned long)(obj,&v);
|
||||||
if (SWIG_IsOK(res) && val) *val = v;
|
if (SWIG_IsOK(res)) {
|
||||||
return res;
|
if (val) *val = v;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
%#ifdef SWIG_PYTHON_CAST_MODE
|
%#ifdef SWIG_PYTHON_CAST_MODE
|
||||||
{
|
{
|
||||||
int dispatch = 0;
|
const double mant_max = 1LL << DBL_MANT_DIG;
|
||||||
long v = PyInt_AsLong(obj);
|
double d;
|
||||||
if (!PyErr_Occurred()) {
|
res = SWIG_AsVal(double)(obj,&d);
|
||||||
if (v >= 0) {
|
if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) {
|
||||||
if (val) *val = v;
|
if (val) *val = (unsigned long long)(d);
|
||||||
return SWIG_AddCast(SWIG_OK);
|
return SWIG_AddCast(res);
|
||||||
} else {
|
|
||||||
return SWIG_OverflowError;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
PyErr_Clear();
|
|
||||||
}
|
|
||||||
if (!dispatch) {
|
|
||||||
const double mant_max = 1LL << DBL_MANT_DIG;
|
|
||||||
double d;
|
|
||||||
int res = SWIG_AddCast(SWIG_AsVal(double)(obj,&d));
|
|
||||||
if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) {
|
|
||||||
if (val) *val = (unsigned long long)(d);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
res = SWIG_TypeError;
|
||||||
}
|
}
|
||||||
%#endif
|
%#endif
|
||||||
return SWIG_TypeError;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -273,6 +256,7 @@ SWIG_AsVal_dec(unsigned long long)(PyObject *obj, unsigned long long *val)
|
||||||
SWIGINTERN int
|
SWIGINTERN int
|
||||||
SWIG_AsVal_dec(double)(PyObject *obj, double *val)
|
SWIG_AsVal_dec(double)(PyObject *obj, double *val)
|
||||||
{
|
{
|
||||||
|
int res = SWIG_TypeError;
|
||||||
if (PyFloat_Check(obj)) {
|
if (PyFloat_Check(obj)) {
|
||||||
if (val) *val = PyFloat_AsDouble(obj);
|
if (val) *val = PyFloat_AsDouble(obj);
|
||||||
return SWIG_OK;
|
return SWIG_OK;
|
||||||
|
|
@ -299,7 +283,7 @@ SWIG_AsVal_dec(double)(PyObject *obj, double *val)
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
}
|
}
|
||||||
if (!dispatch) {
|
if (!dispatch) {
|
||||||
long v = PyInt_AsLong(obj);
|
long v = PyLong_AsLong(obj);
|
||||||
if (!PyErr_Occurred()) {
|
if (!PyErr_Occurred()) {
|
||||||
if (val) *val = v;
|
if (val) *val = v;
|
||||||
return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
|
return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
|
||||||
|
|
@ -309,7 +293,7 @@ SWIG_AsVal_dec(double)(PyObject *obj, double *val)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%#endif
|
%#endif
|
||||||
return SWIG_TypeError;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,7 @@ SWIG_AsVal_dec(ptrdiff_t)(SWIG_Object obj, ptrdiff_t *val)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
%fragment("SWIG_CanCastAsInteger","header",
|
%fragment("SWIG_CanCastAsInteger","header",
|
||||||
fragment=SWIG_AsVal_frag(double),
|
fragment=SWIG_AsVal_frag(double),
|
||||||
fragment="<float.h>",
|
fragment="<float.h>",
|
||||||
|
|
@ -205,21 +206,25 @@ SWIGINTERNINLINE int
|
||||||
SWIG_CanCastAsInteger(double *d, double min, double max) {
|
SWIG_CanCastAsInteger(double *d, double min, double max) {
|
||||||
double x = *d;
|
double x = *d;
|
||||||
if ((min <= x && x <= max)) {
|
if ((min <= x && x <= max)) {
|
||||||
double fx = floor(x);
|
double fx = floor(x);
|
||||||
double rd = ((x - fx) < 0.5) ? fx : ceil(x); /* simple rint */
|
double cx = ceil(x);
|
||||||
|
double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */
|
||||||
if ((errno == EDOM) || (errno == ERANGE)) {
|
if ((errno == EDOM) || (errno == ERANGE)) {
|
||||||
errno = 0;
|
errno = 0;
|
||||||
} else {
|
} else {
|
||||||
if (rd == x) {
|
double summ, reps, diff;
|
||||||
return 1;
|
if (rd < x) {
|
||||||
|
diff = x - rd;
|
||||||
|
} else if (rd > x) {
|
||||||
|
diff = rd - x;
|
||||||
} else {
|
} else {
|
||||||
double diff = rd - x;
|
return 1;
|
||||||
double summ = rd + x;
|
}
|
||||||
double reps = diff/summ;
|
summ = rd + x;
|
||||||
if (fabs(reps) < 8*DBL_EPSILON) {
|
reps = diff/summ;
|
||||||
*d = rd;
|
if (reps < 8*DBL_EPSILON) {
|
||||||
return 1;
|
*d = rd;
|
||||||
}
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue