Skip to content

Commit fa7f5a7

Browse files
committed
Avoid leaking the memory for the name.
1 parent 4ae5971 commit fa7f5a7

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

pygpu/_elemwise.pyx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ cdef class arg:
4949
memset(&self.a, 0, sizeof(gpuelemwise_arg))
5050

5151
def __init__(self, name, type, read=False, write=False, scalar=False):
52+
# Make sure to clear previous storage
53+
# __init__ may be called more than once
54+
free(self.a.name)
5255
self.a.name = strdup(to_bytes(name))
5356
if self.a.name is NULL:
5457
raise MemoryError
@@ -63,6 +66,9 @@ cdef class arg:
6366
if self.a.flags == 0:
6467
raise ValueError('no flags specified for arg %s' % (name,))
6568

69+
def __dealloc__(self):
70+
free(self.a.name)
71+
6672
property name:
6773
def __get__(self):
6874
return self.a.name.decode('ascii')

0 commit comments

Comments
 (0)