From d83a9eed395ce76f2c9b074dfb275e5f9826274d Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Sun, 21 Dec 2014 16:44:53 -0800 Subject: [PATCH] Don't set self.string or self.stream = nil in dealloc if they are already nil. There are custom setters in PKReader that assert that the counterpart field is nil. This means that we're guaranteed to assert if PKTokenizer.dealloc is ever called because one or other of these fields will be set during init. I don't understand why I'm the only one who's hitting this. Is no-one else freeing their parsers? --- src/PKTokenizer.m | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/PKTokenizer.m b/src/PKTokenizer.m index 1d1cafd..63c1eb2 100644 --- a/src/PKTokenizer.m +++ b/src/PKTokenizer.m @@ -145,8 +145,12 @@ - (instancetype)initWithString:(NSString *)str stream:(NSInputStream *)stm { - (void)dealloc { - self.string = nil; - self.stream = nil; + if (self.string != nil) { + self.string = nil; + } + if (self.stream != nil) { + self.stream = nil; + } self.reader = nil; self.tokenizerStates = nil; self.numberState = nil;