diff --git a/ios/Elements/RNSVGGroup.m b/ios/Elements/RNSVGGroup.m index 3cff5823..bc6cc56c 100644 --- a/ios/Elements/RNSVGGroup.m +++ b/ios/Elements/RNSVGGroup.m @@ -135,7 +135,7 @@ return YES; }]; - cached = CGPathRetain(path); + cached = CGPathRetain(CFAutorelease(path)); self.path = cached; return cached; } diff --git a/ios/RNSVGNode.m b/ios/RNSVGNode.m index 9d89e3fd..685e181c 100644 --- a/ios/RNSVGNode.m +++ b/ios/RNSVGNode.m @@ -78,6 +78,7 @@ CGFloat const RNSVG_DEFAULT_FONT_SIZE = 12; - (void)clearPath { + CGPathRelease(_path); self.path = nil; } @@ -546,6 +547,7 @@ CGFloat const RNSVG_DEFAULT_FONT_SIZE = 12; { CGPathRelease(_cachedClipPath); CGImageRelease(_clipMask); + CGPathRelease(_path); _clipMask = nil; } diff --git a/ios/RNSVGRenderable.m b/ios/RNSVGRenderable.m index 8f66f37b..c9b6925c 100644 --- a/ios/RNSVGRenderable.m +++ b/ios/RNSVGRenderable.m @@ -40,6 +40,7 @@ if (self.dirty || self.merging) { return; } + _srcHitPath = nil; [super invalidate]; self.dirty = true; } @@ -155,7 +156,6 @@ - (void)dealloc { - self.path = nil; CGPathRelease(_hitArea); CGPathRelease(_strokePath); _sourceStrokeDashArray = nil;