Skip to content

Commit 2471db9

Browse files
committed
TypeTreeHelper CPP - fix some issues
1 parent 3104b67 commit 2471db9

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

UnityPyBoost/TypeTreeHelper.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -543,8 +543,9 @@ inline PyObject *parse_class(PyObject *kwargs, TypeTreeNodeObject *node, TypeTre
543543
pos = 0;
544544
while (PyDict_Next(extras, &pos, &key, &value))
545545
{
546-
PyObject_SetItem(instance, key, value);
546+
PyObject_GenericSetAttr(instance, key, value);
547547
}
548+
goto PARSE_CLASS_CLEANUP;
548549
}
549550
PyErr_Clear();
550551

@@ -556,7 +557,7 @@ inline PyObject *parse_class(PyObject *kwargs, TypeTreeNodeObject *node, TypeTre
556557
pos = 0;
557558
while (PyDict_Next(extras, &pos, &key, &value))
558559
{
559-
PyObject_SetItem(kwargs, key, value);
560+
PyDict_SetItem(kwargs, key, value);
560561
}
561562
instance = PyObject_Call(clz, args, kwargs);
562563

@@ -778,14 +779,14 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre
778779
}
779780
if (!config->as_dict)
780781
{
781-
PyObject *clz = PyObject_GetAttrString(config->classes, "Object");
782+
PyObject *clz = PyObject_GetAttrString(config->classes, "UnknownObject");
782783
if (clz == NULL)
783784
{
784785
PyErr_SetString(PyExc_ValueError, "Failed to get class");
785786
Py_DECREF(value);
786787
return NULL;
787788
}
788-
PyObject *args = PyTuple_New(0);
789+
PyObject *args = PyTuple_Pack(1, (PyObject *)node);
789790
PyObject *instance = PyObject_Call(clz, args, value);
790791
Py_DECREF(clz);
791792
Py_DECREF(args);
@@ -943,7 +944,7 @@ PyObject *read_typetree(PyObject *self, PyObject *args, PyObject *kwargs)
943944
char endian;
944945
bool swap;
945946

946-
int parse_result = PyArg_ParseTupleAndKeywords(args, kwargs, "y*OC|pOO", (char **)kwlist, &view, &node, &endian, &as_dict, &config.assetfile, &config.classes);
947+
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*OC|pOO", (char **)kwlist, &view, &node, &endian, &as_dict, &config.assetfile, &config.classes))
947948
{
948949
goto READ_TYPETREE_CLEANUP;
949950
}
@@ -1018,7 +1019,6 @@ PyObject *read_typetree(PyObject *self, PyObject *args, PyObject *kwargs)
10181019
PyBuffer_Release(&view);
10191020
Py_DECREF(config.assetfile);
10201021
Py_DECREF(config.classes);
1021-
10221022
return value;
10231023
}
10241024

0 commit comments

Comments
 (0)