Fix destructor order for _MessageReader

This commit is contained in:
John Emhoff
2015-02-23 15:03:50 +00:00
parent 9d14c95670
commit 6389708701

View File

@@ -3229,8 +3229,7 @@ cdef class _MessageReader:
"""
cdef public object _parent
cdef schema_cpp.MessageReader * thisptr
def __dealloc__(self):
del self.thisptr
def __init__(self):
raise NotImplementedError("This is an abstract base class")
@@ -3290,6 +3289,10 @@ cdef class _StreamFdMessageReader(_MessageReader):
self.thisptr = new schema_cpp.StreamFdMessageReader(fd, opts)
def __dealloc__(self):
del self.thisptr
cdef class _PackedMessageReader(_MessageReader):
"""Read a Cap'n Proto message from a file descriptor in a packed manner
@@ -3318,6 +3321,10 @@ cdef class _PackedMessageReader(_MessageReader):
self.thisptr = new schema_cpp.PackedMessageReader(stream, opts)
return self
def __dealloc__(self):
del self.thisptr
cdef class _PackedMessageReaderBytes(_MessageReader):
cdef schema_cpp.ArrayInputStream * stream
@@ -3340,6 +3347,7 @@ cdef class _PackedMessageReaderBytes(_MessageReader):
self.thisptr = new schema_cpp.PackedMessageReader(deref(self.stream), opts)
def __dealloc__(self):
del self.thisptr
del self.stream
cdef class _InputMessageReader(_MessageReader):
@@ -3370,6 +3378,10 @@ cdef class _InputMessageReader(_MessageReader):
self.thisptr = new schema_cpp.InputStreamMessageReader(stream, opts)
return self
def __dealloc__(self):
del self.thisptr
cdef class _PackedFdMessageReader(_MessageReader):
"""Read a Cap'n Proto message from a file descriptor in a packed manner
@@ -3392,6 +3404,10 @@ cdef class _PackedFdMessageReader(_MessageReader):
self.thisptr = new schema_cpp.PackedFdMessageReader(fd, opts)
def __dealloc__(self):
del self.thisptr
cdef class _MultipleMessageReader:
cdef schema_cpp.FdInputStream * stream
cdef schema_cpp.BufferedInputStream * buffered_stream
@@ -3574,6 +3590,10 @@ cdef class _FlatArrayMessageReader(_MessageReader):
self.thisptr = new schema_cpp.FlatArrayMessageReader(schema_cpp.WordArrayPtr(<schema_cpp.word*>ptr, sz//8))
def __dealloc__(self):
del self.thisptr
@cython.internal
cdef class _FlatMessageBuilder(_MessageBuilder):
cdef object _object_to_pin