Fix workerAutoreleasePool test on macos_arm64 using __autoreleasing

Also merge `createAutorelease` and `create. There is no need in
such separation since it was originally added to prevent
optimization `result`'s lifetime.
Turned out, it was still happening on Apple Silicon,
and only addition of __autoreleasing attribute solves the problem.
This commit is contained in:
Sergey Bogolepov
2021-03-17 20:50:24 +07:00
committed by TeamCityServer
parent 4826e3278f
commit ec23ebd1c5
@@ -6,14 +6,12 @@
@implementation CreateAutorelease {
CreateAutoreleaseDeallocated* deallocated;
}
+(instancetype)create:(CreateAutoreleaseDeallocated*)deallocated {
CreateAutorelease* result = [self new];
result->deallocated = deallocated;
return result;
}
+(void)createAutorelease:(CreateAutoreleaseDeallocated*)deallocated {
[self create:deallocated];
// __autoreleasing attribute prevents from early deallocation
// and thus makes test behaviour identical on Intel and ARM CPUs.
__autoreleasing CreateAutorelease* result = [self new];
result->deallocated = deallocated;
}
-(void)dealloc {