2
3
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-14 10:37:41 -04:00

Also handle Python long integers in addVarNumber.

This commit is contained in:
Christian Walther
2012-04-09 10:59:29 +02:00
committed by Bartek Bok
parent 82e4c81303
commit 89ec0aa33b

View File

@ -207,7 +207,22 @@ PYTHON_METHOD_DEFINITION(ptNotify, addVarNumber, args)
self->fThis->AddVarNull(name);
else if (PyInt_Check(number))
self->fThis->AddVarNumber(name, PyInt_AsLong(number));
else if (PyNumber_Check(number))
else if (PyLong_Check(number))
{
// try as int first
long i = PyLong_AsLong(number);
if (!PyErr_Occurred())
{
self->fThis->AddVarNumber(name, i);
}
else
{
// OverflowError, try float
PyErr_Clear();
self->fThis->AddVarNumber(name, (float)PyLong_AsDouble(number));
}
}
else if (PyNumber_Check(number))
{
PyObject* f = PyNumber_Float(number);
self->fThis->AddVarNumber(name, (float)PyFloat_AsDouble(f));
@ -215,7 +230,7 @@ PYTHON_METHOD_DEFINITION(ptNotify, addVarNumber, args)
}
else
{
PyErr_SetString(PyExc_TypeError, "addVarNumber expects a string and a number");
PyErr_SetString(PyExc_TypeError, "addVarNumber expects a string and optional number");
PYTHON_RETURN_ERROR;
}
PYTHON_RETURN_NONE;