Skip to content

Commit ce0c40e

Browse files
committed
[+0-all] Update more runtime files for +0 normal arguments.
This is NFC when --enable-guaranteed-normal-arguments isn't passed into build-script. rdar://34222540
1 parent af03c01 commit ce0c40e

File tree

8 files changed

+39
-36
lines changed

8 files changed

+39
-36
lines changed

stdlib/private/StdlibUnittestFoundationExtras/UnavailableFoundationMethodThunks.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
id *objects, NSUInteger rangeLocation,
2020
NSUInteger rangeLength) {
2121
[nsArray getObjects:objects range:NSMakeRange(rangeLocation, rangeLength)];
22-
[nsArray release];
22+
SWIFT_CC_PLUSONE_GUARD([nsArray release]);
2323
}
2424

2525
SWIFT_CC(swift) LLVM_LIBRARY_VISIBILITY
2626
extern "C" void
2727
NSDictionary_getObjects(NSDictionary *_Nonnull nsDictionary,
2828
id *objects, id *keys) {
2929
[nsDictionary getObjects:objects andKeys:keys];
30-
[nsDictionary release];
30+
SWIFT_CC_PLUSONE_GUARD([nsDictionary release]);
3131
}
3232

stdlib/public/SDK/Foundation/DataThunks.m

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ BOOL __NSDataWriteToURL(NSData *SWIFT_NS_RELEASES_ARGUMENT data, NSURL *SWIFT_NS
120120

121121
if (![path getFileSystemRepresentation:cpath maxLength:1024]) {
122122
if (errorPtr) *errorPtr = _NSErrorWithFilePath(NSFileWriteInvalidFileNameError, path);
123-
[data release];
124-
[url release];
123+
SWIFT_CC_PLUSONE_GUARD([data release]);
124+
SWIFT_CC_PLUSONE_GUARD([url release]);
125125
return NO;
126126
}
127127

@@ -137,8 +137,8 @@ BOOL __NSDataWriteToURL(NSData *SWIFT_NS_RELEASES_ARGUMENT data, NSURL *SWIFT_NS
137137
int32_t fd = _NSOpenFileDescriptor(cpath, flags, protectionClass, 0666);
138138
if (fd < 0) {
139139
if (errorPtr) *errorPtr = _NSErrorWithFilePathAndErrno(errno, path, NO);
140-
[url release];
141-
[data release];
140+
SWIFT_CC_PLUSONE_GUARD([url release]);
141+
SWIFT_CC_PLUSONE_GUARD([data release]);
142142
return NO;
143143
}
144144

@@ -172,12 +172,12 @@ BOOL __NSDataWriteToURL(NSData *SWIFT_NS_RELEASES_ARGUMENT data, NSURL *SWIFT_NS
172172
if (errorPtr) {
173173
*errorPtr = _NSErrorWithFilePathAndErrno(errno, path, NO);
174174
}
175-
[url release];
176-
[data release];
175+
SWIFT_CC_PLUSONE_GUARD([url release]);
176+
SWIFT_CC_PLUSONE_GUARD([data release]);
177177
return NO;
178178
}
179179
close(fd);
180-
[url release];
181-
[data release];
180+
SWIFT_CC_PLUSONE_GUARD([url release]);
181+
SWIFT_CC_PLUSONE_GUARD([data release]);
182182
return YES;
183183
}

stdlib/public/SDK/Foundation/TypePreservingNSNumber.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ - (Class)classForCoder {
325325
} else if (CFGetTypeID(self_) == CFBooleanGetTypeID()) {
326326
result = SwiftBool;
327327
}
328-
[self_ release];
328+
SWIFT_CC_PLUSONE_GUARD([self_ release]);
329329
return result;
330330
}
331331

@@ -339,7 +339,7 @@ - (Class)classForCoder {
339339
} \
340340
C_TYPE result; \
341341
memcpy(&result, self_->storage, sizeof(result)); \
342-
[self_ release]; \
342+
SWIFT_CC_PLUSONE_GUARD([self_ release]); \
343343
return result; \
344344
}
345345

stdlib/public/runtime/AnyHashableSupport.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ void _swift_makeAnyHashableUpcastingToHashableBaseType(
161161

162162
if (auto unboxedHashableWT =
163163
swift_conformsToProtocol(type, &HashableProtocolDescriptor)) {
164+
#ifndef SWIFT_RUNTIME_ENABLE_GUARANTEED_NORMAL_ARGUMENTS
164165
ValueBuffer unboxedCopyBuf;
165166
// Allocate buffer.
166167
OpaqueValue *unboxedValueCopy =
@@ -172,9 +173,15 @@ void _swift_makeAnyHashableUpcastingToHashableBaseType(
172173
_swift_makeAnyHashableUpcastingToHashableBaseType(
173174
unboxedValueCopy, anyHashableResultPointer, unboxedType,
174175
unboxedHashableWT);
176+
175177
// Deallocate buffer.
176178
unboxedType->deallocateBufferIn(&unboxedCopyBuf);
177179
type->vw_destroy(value);
180+
#else
181+
_swift_makeAnyHashableUpcastingToHashableBaseType(
182+
unboxedValue, anyHashableResultPointer, unboxedType,
183+
unboxedHashableWT);
184+
#endif
178185
return;
179186
}
180187
}

stdlib/public/runtime/ErrorObject.mm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,10 +382,13 @@ typedef SWIFT_CC(swift)
382382
reinterpret_cast<GetDefaultFn*> (dlsym(RTLD_DEFAULT,
383383
MANGLE_AS_STRING(MANGLE_SYM(10Foundation24_getErrorDefaultUserInfoyyXlSgxs0C0RzlF)))));
384384
if (!foundationGetDefaultUserInfo) {
385-
T->vw_destroy(error);
385+
SWIFT_CC_PLUSONE_GUARD(T->vw_destroy(error));
386386
return nullptr;
387387
}
388388

389+
// +0 Convention: In the case where we have the +1 convention, this will
390+
// destroy the error for us, otherwise, it will take the value guaranteed. The
391+
// conclusion is that we can leave this alone.
389392
return foundationGetDefaultUserInfo(error, T, Error);
390393
}
391394

stdlib/public/runtime/Reflection.mm

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -857,9 +857,7 @@ void swift_ObjCMirror_subscript(String *outString,
857857
swift_ClassMirror_quickLookObject(HeapObject *owner, const OpaqueValue *value,
858858
const Metadata *type) {
859859
id object = [*reinterpret_cast<const id *>(value) retain];
860-
#ifndef SWIFT_RUNTIME_ENABLE_GUARANTEED_NORMAL_ARGUMENTS
861-
swift_release(owner);
862-
#endif
860+
SWIFT_CC_PLUSONE_GUARD(swift_release(owner));
863861
if ([object respondsToSelector:@selector(debugQuickLookObject)]) {
864862
id quickLookObject = [object debugQuickLookObject];
865863
[quickLookObject retain];
@@ -1130,19 +1128,14 @@ static Mirror ObjC_getMirrorForSuperclass(Class sup,
11301128
Mirror result;
11311129
// Take the value, unless we projected a subvalue from it. We don't want to
11321130
// deal with partial value deinitialization.
1133-
bool take =
1134-
#ifndef SWIFT_RUNTIME_ENABLE_GUARANTEED_NORMAL_ARGUMENTS
1135-
mirrorValue == value;
1136-
#else
1137-
false;
1138-
#endif
1131+
bool take = false;
1132+
SWIFT_CC_PLUSONE_GUARD(take = (mirrorValue == value));
11391133
::new (&result) MagicMirror(mirrorValue, mirrorType, take);
11401134

1141-
#ifndef SWIFT_RUNTIME_ENABLE_GUARANTEED_NORMAL_ARGUMENTS
11421135
// Destroy the whole original value if we couldn't take it.
1143-
if (!take)
1136+
if (!take) {
11441137
T->vw_destroy(value);
1145-
#endif
1138+
}
11461139
return MirrorReturn(result);
11471140
}
11481141

stdlib/public/stubs/Reflection.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ bool _swift_stdlib_NSObject_isKindOfClass(
2121
id SWIFT_NS_RELEASES_ARGUMENT _Nonnull object,
2222
NSString *SWIFT_NS_RELEASES_ARGUMENT _Nonnull className) {
2323
bool result = [object isKindOfClass:NSClassFromString(className)];
24-
[object release];
25-
[className release];
24+
SWIFT_CC_PLUSONE_GUARD([object release]);
25+
SWIFT_CC_PLUSONE_GUARD([className release]);
2626

2727
return result;
2828
}

stdlib/public/stubs/SwiftNativeNSXXXBase.mm.gyb

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ bool
107107
swift_stdlib_NSObject_isEqual(NSObject *SWIFT_NS_RELEASES_ARGUMENT lhs,
108108
NSObject *SWIFT_NS_RELEASES_ARGUMENT rhs) {
109109
bool Result = (lhs == rhs) || [lhs isEqual:rhs];
110-
swift_unknownRelease(lhs);
111-
swift_unknownRelease(rhs);
110+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(lhs));
111+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(rhs));
112112
return Result;
113113
}
114114

@@ -118,8 +118,8 @@ int32_t swift_stdlib_compareNSStringDeterministicUnicodeCollation(
118118
// 'kCFCompareNonliteral' actually means "normalize to NFD".
119119
int Result = CFStringCompare((__bridge CFStringRef)lhs,
120120
(__bridge CFStringRef)rhs, kCFCompareNonliteral);
121-
swift_unknownRelease(lhs);
122-
swift_unknownRelease(rhs);
121+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(lhs));
122+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(rhs));
123123
return Result;
124124
}
125125

@@ -152,8 +152,8 @@ bool swift_stdlib_NSStringHasPrefixNFD(NSString *theString,
152152
(__bridge CFStringRef)theString, (__bridge CFStringRef)prefix,
153153
CFRangeMake(0, Length), kCFCompareAnchored | kCFCompareNonliteral,
154154
nullptr);
155-
swift_unknownRelease(theString);
156-
swift_unknownRelease(prefix);
155+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(theString));
156+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(prefix));
157157
return Result;
158158
}
159159

@@ -177,8 +177,8 @@ swift_stdlib_NSStringHasSuffixNFD(NSString *SWIFT_NS_RELEASES_ARGUMENT theString
177177
(__bridge CFStringRef)theString, (__bridge CFStringRef)suffix,
178178
CFRangeMake(0, Length),
179179
kCFCompareAnchored | kCFCompareBackwards | kCFCompareNonliteral, nullptr);
180-
swift_unknownRelease(theString);
181-
swift_unknownRelease(suffix);
180+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(theString));
181+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(suffix));
182182
return Result;
183183
}
184184

@@ -197,7 +197,7 @@ SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_INTERNAL
197197
void swift_stdlib_CFSetGetValues(NSSet *SWIFT_NS_RELEASES_ARGUMENT set,
198198
const void **values) {
199199
CFSetGetValues((__bridge CFSetRef)set, values);
200-
swift_unknownRelease(set);
200+
SWIFT_CC_PLUSONE_GUARD(swift_unknownRelease(set));
201201
}
202202
#endif
203203

0 commit comments

Comments
 (0)