@@ -105,6 +105,10 @@ PyObject *py_ue_uscriptstruct_as_dict(ue_PyUScriptStruct * self, PyObject * args
105105 return py_struct_dict;
106106}
107107
108+ static PyObject *py_ue_uscriptstruct_ref (ue_PyUScriptStruct *, PyObject *);
109+
110+
111+
108112
109113static PyMethodDef ue_PyUScriptStruct_methods[] = {
110114 { " get_field" , (PyCFunction)py_ue_uscriptstruct_get_field, METH_VARARGS, " " },
@@ -113,6 +117,7 @@ static PyMethodDef ue_PyUScriptStruct_methods[] = {
113117 { " get_struct" , (PyCFunction)py_ue_uscriptstruct_get_struct, METH_VARARGS, " " },
114118 { " clone" , (PyCFunction)py_ue_uscriptstruct_clone, METH_VARARGS, " " },
115119 { " as_dict" , (PyCFunction)py_ue_uscriptstruct_as_dict, METH_VARARGS, " " },
120+ { " ref" , (PyCFunction)py_ue_uscriptstruct_ref, METH_VARARGS, " " },
116121 { NULL } /* Sentinel */
117122};
118123
@@ -198,6 +203,8 @@ static int ue_PyUScriptStruct_setattro(ue_PyUScriptStruct *self, PyObject *attr_
198203 return PyObject_GenericSetAttr ((PyObject *)self, attr_name, value);
199204}
200205
206+
207+
201208// destructor
202209static void ue_PyUScriptStruct_dealloc (ue_PyUScriptStruct *self)
203210{
@@ -274,6 +281,17 @@ static int ue_py_uscriptstruct_init(ue_PyUScriptStruct *self, PyObject *args, Py
274281 return 0 ;
275282}
276283
284+ // get the original pointer of a struct
285+ static PyObject *py_ue_uscriptstruct_ref (ue_PyUScriptStruct *self, PyObject * args)
286+ {
287+ ue_PyUScriptStruct *ret = (ue_PyUScriptStruct *)PyObject_New (ue_PyUScriptStruct, &ue_PyUScriptStructType);
288+ ret->u_struct = self->u_struct ;
289+ ret->data = self->original_data ;
290+ ret->original_data = ret->data ;
291+ ret->is_ptr = 1 ;
292+ return (PyObject *)ret;
293+ }
294+
277295static PyObject *ue_py_uscriptstruct_richcompare (ue_PyUScriptStruct *u_struct1, PyObject *py_obj, int op)
278296{
279297 ue_PyUScriptStruct *u_struct2 = py_ue_is_uscriptstruct (py_obj);
@@ -300,16 +318,7 @@ static PyObject *ue_py_uscriptstruct_richcompare(ue_PyUScriptStruct *u_struct1,
300318 Py_RETURN_TRUE;
301319}
302320
303- // get the original pointer of a struct
304- static PyObject *ue_py_uscriptstruct_get_ptr (ue_PyUScriptStruct *self, PyObject * args)
305- {
306- ue_PyUScriptStruct *ret = (ue_PyUScriptStruct *)PyObject_New (ue_PyUScriptStruct, &ue_PyUScriptStructType);
307- ret->u_struct = self->u_struct ;
308- ret->data = self->original_data ;
309- ret->original_data = ret->data ;
310- ret->is_ptr = 1 ;
311- return (PyObject *)ret;
312- }
321+
313322
314323
315324void ue_python_init_uscriptstruct (PyObject *ue_module)
@@ -320,8 +329,6 @@ void ue_python_init_uscriptstruct(PyObject *ue_module)
320329
321330 ue_PyUScriptStructType.tp_init = (initproc)ue_py_uscriptstruct_init;
322331
323- ue_PyUScriptStructType.tp_call = (ternaryfunc)ue_py_uscriptstruct_get_ptr;
324-
325332 if (PyType_Ready (&ue_PyUScriptStructType) < 0 )
326333 return ;
327334
0 commit comments