diff --git a/direct/src/dcparser/dcPacker.cxx b/direct/src/dcparser/dcPacker.cxx index 3aa2a11c98..5bce76ec3e 100755 --- a/direct/src/dcparser/dcPacker.cxx +++ b/direct/src/dcparser/dcPacker.cxx @@ -685,13 +685,10 @@ pack_object(PyObject *object) { if (PyInt_Check(object)) { pack_int(PyInt_AS_LONG(object)); - } else if (PyFloat_Check(object)) { pack_double(PyFloat_AS_DOUBLE(object)); - } else if (PyLong_Check(object)) { pack_int64(PyLong_AsLongLong(object)); - } else if (PyString_Check(object) || PyUnicode_Check(object)) { char *buffer; int length; @@ -699,9 +696,7 @@ pack_object(PyObject *object) { if (buffer) { pack_string(string(buffer, length)); } - } else { - // For some reason, PySequence_Check() is incorrectly reporting // that a class instance is a sequence, even if it doesn't provide // __len__, so we double-check by testing for __len__ explicitly. @@ -747,13 +742,12 @@ pack_object(PyObject *object) { // class object, or it is not a sequence--this is case (1) or // (3). pack_class_object(dclass, object); - } else if (is_sequence) { // The supplied object is not an instance of the expected class // object, but it is a sequence. This is case (2). push(); int size = PySequence_Size(object); - for (int i = 0; i < size; i++) { + for (int i = 0; i < size; ++i) { PyObject *element = PySequence_GetItem(object, i); if (element != (PyObject *)NULL) { pack_object(element); @@ -763,7 +757,6 @@ pack_object(PyObject *object) { } } pop(); - } else { // The supplied object is not a sequence, and we weren't // expecting a class parameter. This is none of the above, an