Skip to content

Commit 482e152

Browse files
committed
Fix mem leak struct desctructor
1 parent 9418355 commit 482e152

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

pyzed/camera.pyx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ cdef class PyInitParameters:
7676
else:
7777
raise TypeError("Argument is not of right type.")
7878

79+
def __dealloc__(self):
80+
del self.init
81+
7982
def save(self, str filename):
8083
filename_save = filename.encode()
8184
return self.init.save(types.String(<char*> filename_save))
@@ -255,6 +258,9 @@ cdef class PyRuntimeParameters:
255258
else:
256259
raise TypeError()
257260

261+
def __dealloc__(self):
262+
del self.runtime
263+
258264
def save(self, str filename):
259265
filename_save = filename.encode()
260266
return self.runtime.save(types.String(<char*> filename_save))
@@ -301,6 +307,9 @@ cdef class PyTrackingParameters:
301307
self.tracking = new TrackingParameters(init_pos.transform, _enable_memory, types.String())
302308
else:
303309
raise TypeError("Argument init_pos must be initialized first with PyTransform().")
310+
311+
def __dealloc__(self):
312+
del self.tracking
304313

305314
def save(self, str filename):
306315
filename_save = filename.encode()
@@ -350,6 +359,9 @@ cdef class PySpatialMappingParameters:
350359
else:
351360
raise TypeError()
352361

362+
def __dealloc__(self):
363+
del self.spatial
364+
353365
def set_resolution(self, resolution=PyRESOLUTION.PyRESOLUTION_HIGH):
354366
if isinstance(resolution, PyRESOLUTION):
355367
self.spatial.set(<MAPPING_RESOLUTION> resolution.value)

pyzed/mesh.pyx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ cdef class PyMeshFilterParameters:
5252
def __cinit__(self):
5353
self.meshFilter = new MeshFilterParameters(MESH_FILTER_LOW)
5454

55+
def __dealloc__(self):
56+
del self.meshFilter
57+
5558
def set(self, filter=PyFILTER.PyFILTER_LOW):
5659
if isinstance(filter, PyFILTER):
5760
self.meshFilter.set(filter.value)
@@ -147,6 +150,9 @@ cdef class PyChunk:
147150
cdef class PyMesh:
148151
def __cinit__(self):
149152
self.mesh = new Mesh()
153+
154+
def __dealloc__(self):
155+
del self.mesh
150156

151157
@property
152158
def chunks(self):

0 commit comments

Comments
 (0)