diff --git a/pxSVG/pxSVGLayer.m b/pxSVG/pxSVGLayer.m index b8d2390..a8c26d2 100644 --- a/pxSVG/pxSVGLayer.m +++ b/pxSVG/pxSVGLayer.m @@ -60,6 +60,7 @@ - (void)loadURL:(NSURL *)url if ([op isCancelled]) return; if (!weakself) return; weakself.loadOperation = nil; + op = nil; NSError *error = err; if (!error && [resp isKindOfClass:[NSHTTPURLResponse class]] && (((NSHTTPURLResponse*)resp).statusCode != 200)) error = [NSError errorWithDomain:@"pxSVGLoader.httpStatus" code:((NSHTTPURLResponse*)resp).statusCode userInfo:nil]; @@ -91,6 +92,7 @@ - (void)loadString:(NSString *)string if ([op isCancelled]) return; if (!weakself) return; weakself.parseOperation = nil; + op = nil; if (!img) return [weakself loadError:[NSError errorWithDomain:@"pxSVGParser.parseError" code:0 userInfo:nil]]; [weakself loadImage:img]; }]; @@ -112,6 +114,7 @@ - (void)loadImage:(pxSVGImage*)image if (!weakself) return; [weakself addSublayer:img]; weakself.parseOperation = nil; + op = nil; weakself.contentRect = image.bounds; if ([weakself.svgDelegate respondsToSelector:@selector(svgLayerDidLoadImage:)]) [weakself.svgDelegate svgLayerDidLoadImage:weakself]; diff --git a/pxSVG/pxSVGRenderPath.m b/pxSVG/pxSVGRenderPath.m index 47f6c78..9d4fa98 100644 --- a/pxSVG/pxSVGRenderPath.m +++ b/pxSVG/pxSVGRenderPath.m @@ -11,7 +11,6 @@ #import "pxSVGPath.h" @interface pxSVGGradient : NSObject -@property CGGradientRef gradient; @property NSArray *colors; @property NSArray *locations; @property CGPoint startPoint, endPoint; @@ -195,21 +194,18 @@ - (pxSVGGradient*)parseLinearGradient:(pxXMLNode*)node if (!gid) return nil; NSString *href = [node.attributes objectForKey:@"xlink:href"]; if (!href) href = [node.attributes objectForKey:@"href"]; - CGGradientRef gr; CGPoint sp = CGPointZero, ep = (CGPoint){INFINITY,INFINITY}; NSMutableArray *cls, *locs; if (href) { href = [href substringFromIndex:1]; pxSVGGradient *g = (id)[self findDef:href]; if (![g isKindOfClass:[pxSVGGradient class]]) return nil; - gr = g.gradient; sp = g.startPoint; ep = g.endPoint; cls = (id)g.colors; locs = (id)g.locations; } else { cls = [NSMutableArray new], locs = [NSMutableArray new]; - CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB(); for (pxXMLNode *s in node.childNodes) { if (![s.tagName isEqualToString:@"stop"]) { NSLog(@"Unknown gradient node: %@",s); @@ -232,21 +228,13 @@ - (pxSVGGradient*)parseLinearGradient:(pxXMLNode*)node [locs addObject:@([[ma objectForKey:@"offset"] doubleValue])]; } } - CGFloat *locs_a = CFAllocatorAllocate(CFAllocatorGetDefault(), (sizeof(CGFloat)*locs.count), 0); - for (NSUInteger i=0; i