Skip to content

Commit 5376deb

Browse files
author
Roberto De Ioris
committed
reintroduced memory debug
1 parent e71d405 commit 5376deb

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

Source/UnrealEnginePython/Private/UEPyUScriptStruct.cpp

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

109113
static 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
202209
static 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+
277295
static 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

315324
void 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

Source/UnrealEnginePython/Private/UnrealEnginePythonPrivatePCH.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#pragma once
44

5-
//#define UEPY_MEMORY_DEBUG 1
5+
#define UEPY_MEMORY_DEBUG 1
66
//#define UEPY_THREADING 1
77

88
#include "UnrealEnginePython.h"

0 commit comments

Comments
 (0)