mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
*** empty log message ***
This commit is contained in:
parent
f538ea5eaf
commit
e893ad14be
@ -686,12 +686,73 @@ unpack_skip() {
|
||||
void DCPacker::
|
||||
pack_object(PyObject *object) {
|
||||
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
|
||||
if (PyInt_Check(object)) {
|
||||
#else
|
||||
if (PyLong_Check(object)) {
|
||||
pack_uint(PyLong_AsUnsignedLong(object));
|
||||
pack_int(PyLong_AsLong(object));
|
||||
} else if (PyInt_Check(object)) {
|
||||
#endif
|
||||
pack_int(PyInt_AS_LONG(object));
|
||||
|
Loading…
x
Reference in New Issue
Block a user