From 2cc26e5dfb7202a7dfd4ee1c6a160021439e8afb Mon Sep 17 00:00:00 2001 From: Curtis Hard Date: Mon, 2 Feb 2015 21:01:33 +0000 Subject: [PATCH] Now uses lstat to calcuate the cost of memory for the image cache --- .../UserInterfaceState.xcuserstate | Bin 41205 -> 41712 bytes source/IJSVGCache.h | 1 + source/IJSVGCache.m | 8 +++++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/IJSVGExample/IJSVGExample.xcodeproj/project.xcworkspace/xcuserdata/curtishard.xcuserdatad/UserInterfaceState.xcuserstate b/IJSVGExample/IJSVGExample.xcodeproj/project.xcworkspace/xcuserdata/curtishard.xcuserdatad/UserInterfaceState.xcuserstate index eb0ff943b750b5e430c0a50d83110a833bd3c79d..81be11a8f2504d38b9d9928b19791875c68bc4c8 100644 GIT binary patch delta 22072 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μ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 Mt@+*ibL{W`4{1mAW&i*H delta 21984 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 +#import #import "IJSVG.h" @interface IJSVGCache : NSObject { diff --git a/source/IJSVGCache.m b/source/IJSVGCache.m index ece4f62..f9c8f55 100644 --- a/source/IJSVGCache.m +++ b/source/IJSVGCache.m @@ -36,10 +36,16 @@ static BOOL _enabled = YES; fileURL:(NSURL *)aURL { // use the malloc size for the object size, + // actually bad idea, use the file size // is this correct? + struct stat st; + long cost = 0; + if( lstat( [[aURL path] cStringUsingEncoding:NSUTF8StringEncoding], &st ) != -1 ) + cost = st.st_size; + [_cache setObject:svg forKey:aURL - cost:malloc_size(svg)]; + cost:cost]; } + (void)setEnabled:(BOOL)flag