mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
*** empty log message ***
This commit is contained in:
parent
f538ea5eaf
commit
e893ad14be
@ -686,12 +686,73 @@ unpack_skip() {
|
|||||||
void DCPacker::
|
void DCPacker::
|
||||||
pack_object(PyObject *object) {
|
pack_object(PyObject *object) {
|
||||||
nassertv(_mode == M_pack || _mode == M_repack);
|
nassertv(_mode == M_pack || _mode == M_repack);
|
||||||
|
DCPackType pack_type = get_pack_type();
|
||||||
|
|
||||||
|
// had to add this for basic 64 and unsigned data to get packed right ..
|
||||||
|
// Not sure if we can just do the rest this way..
|
||||||
|
|
||||||
|
switch(pack_type)
|
||||||
|
{
|
||||||
|
case PT_int64:
|
||||||
|
if(PyLong_Check(object))
|
||||||
|
{
|
||||||
|
pack_int64(PyLong_AsLongLong(object));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (PyInt_Check(object))
|
||||||
|
{
|
||||||
|
pack_int64(PyInt_AsLong(object));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PT_uint64:
|
||||||
|
if(PyLong_Check(object))
|
||||||
|
{
|
||||||
|
pack_uint64(PyLong_AsUnsignedLongLong(object));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if(PyInt_Check(object))
|
||||||
|
{
|
||||||
|
PyObject *obj1 = PyNumber_Long(object);
|
||||||
|
pack_int(PyLong_AsUnsignedLongLong(obj1));
|
||||||
|
Py_DECREF(obj1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PT_int:
|
||||||
|
if(PyLong_Check(object))
|
||||||
|
{
|
||||||
|
pack_int(PyLong_AsLong(object));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (PyInt_Check(object))
|
||||||
|
{
|
||||||
|
pack_int(PyInt_AsLong(object));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PT_uint:
|
||||||
|
if(PyLong_Check(object))
|
||||||
|
{
|
||||||
|
pack_uint(PyLong_AsUnsignedLong(object));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (PyInt_Check(object))
|
||||||
|
{
|
||||||
|
PyObject *obj1 = PyNumber_Long(object);
|
||||||
|
pack_uint(PyLong_AsUnsignedLong(obj1));
|
||||||
|
Py_DECREF(obj1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
#ifdef USE_PYTHON_2_2_OR_EARLIER
|
#ifdef USE_PYTHON_2_2_OR_EARLIER
|
||||||
if (PyInt_Check(object)) {
|
if (PyInt_Check(object)) {
|
||||||
#else
|
#else
|
||||||
if (PyLong_Check(object)) {
|
if (PyLong_Check(object)) {
|
||||||
pack_uint(PyLong_AsUnsignedLong(object));
|
pack_int(PyLong_AsLong(object));
|
||||||
} else if (PyInt_Check(object)) {
|
} else if (PyInt_Check(object)) {
|
||||||
#endif
|
#endif
|
||||||
pack_int(PyInt_AS_LONG(object));
|
pack_int(PyInt_AS_LONG(object));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user