You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
741 B
Objective-C
46 lines
741 B
Objective-C
#include "Test.h"
|
|
|
|
#define SIZE 5000
|
|
|
|
int main(int argc, const char * argv[])
|
|
{
|
|
@autoreleasepool {
|
|
id __weak refs[SIZE];
|
|
id values[SIZE];
|
|
|
|
// Setup
|
|
for (int i=0; i<SIZE; i++)
|
|
{
|
|
values[i] = [Test new];
|
|
refs[i] = values[i];
|
|
}
|
|
|
|
// Sanity check
|
|
for (int i=0; i<SIZE; i++)
|
|
{
|
|
assert(refs[i] != nil);
|
|
assert(refs[i] == values[i]);
|
|
}
|
|
|
|
// Release the value, one by one
|
|
for (int indexToRelease=0; indexToRelease<SIZE; indexToRelease++)
|
|
{
|
|
values[indexToRelease] = nil;
|
|
// Check all refs
|
|
for (int i=0; i<SIZE; i++)
|
|
{
|
|
if (i <= indexToRelease)
|
|
{
|
|
assert(refs[i] == nil);
|
|
}
|
|
else
|
|
{
|
|
assert(refs[i] != nil);
|
|
assert(refs[i] == values[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|