diff --git a/ChangeLog b/ChangeLog index d5bb49b..fd40f65 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-08-29 Richard Frith-Macdonald + + * GSCache.m: Try to fool clang/llvm to avoid useless warning/error. + 2011-08-24 Richard Frith-Macdonald * GSFIFO.h: diff --git a/GSCache.m b/GSCache.m index 53b4917..1bd204b 100644 --- a/GSCache.m +++ b/GSCache.m @@ -96,6 +96,7 @@ static NSHashTable *allCaches = 0; static NSLock *allCachesLock = nil; +static int itemOffset = 0; typedef struct { id delegate; @@ -114,7 +115,7 @@ typedef struct { NSMutableSet *exclude; NSRecursiveLock *lock; } Item; -#define my ((Item*)&self[1]) +#define my ((Item*)((void*)self + itemOffset)) /* * Add item to linked list starting at *first @@ -201,6 +202,7 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first) { if (allCaches == 0) { + itemOffset = class_getInstanceSize(self); allCaches = NSCreateHashTable(NSNonRetainedObjectHashCallBacks, 0); if ([NSThread isMultiThreaded] == YES)