diff --git a/arc.mm b/arc.mm index 459a3fb8..10d4acb6 100644 --- a/arc.mm +++ b/arc.mm @@ -786,13 +786,12 @@ static inline id autorelease(id obj) release(obj); } -extern "C" OBJC_PUBLIC id objc_storeStrong(id *addr, id value) +extern "C" OBJC_PUBLIC void objc_storeStrong(id *addr, id value) { value = objc_retain(value); id oldValue = *addr; *addr = value; objc_release(oldValue); - return value; } //////////////////////////////////////////////////////////////////////////////// diff --git a/objc/objc-arc.h b/objc/objc-arc.h index 03b10be2..b9fadac7 100644 --- a/objc/objc-arc.h +++ b/objc/objc-arc.h @@ -67,7 +67,7 @@ OBJC_PUBLIC id objc_retainBlock(id b); * Stores value in addr. This first retains value, then releases the old value * at addr, and stores the retained value in the address. */ -OBJC_PUBLIC id objc_storeStrong(id *addr, id value); +OBJC_PUBLIC void objc_storeStrong(id *addr, id value); /** * Stores obj in zeroing weak pointer addr. If obj has begun deallocation, * then this stores nil.