Minor code cleanup in retain/release checker in preparation for some
other changes. Instead of repeatedly checking for GC mode when getting the return effect, just do this computation once. llvm-svn: 71193
This commit is contained in:
parent
5bcbf1ccbd
commit
9157fbb6a6
|
@ -585,6 +585,10 @@ class VISIBILITY_HIDDEN RetainSummaryManager {
|
|||
/// ScratchArgs - A holding buffer for construct ArgEffects.
|
||||
ArgEffects ScratchArgs;
|
||||
|
||||
/// ObjCAllocRetE - Default return effect for methods returning Objective-C
|
||||
/// objects.
|
||||
RetEffect ObjCAllocRetE;
|
||||
|
||||
RetainSummary DefaultSummary;
|
||||
RetainSummary* StopSummary;
|
||||
|
||||
|
@ -720,6 +724,8 @@ public:
|
|||
: Ctx(ctx),
|
||||
CFDictionaryCreateII(&ctx.Idents.get("CFDictionaryCreate")),
|
||||
GCEnabled(gcenabled), AF(BPAlloc), ScratchArgs(AF.GetEmptyMap()),
|
||||
ObjCAllocRetE(gcenabled ? RetEffect::MakeGCNotOwned()
|
||||
: RetEffect::MakeOwned(RetEffect::ObjC, true)),
|
||||
DefaultSummary(AF.GetEmptyMap() /* per-argument effects (none) */,
|
||||
RetEffect::MakeNoRet() /* return effect */,
|
||||
DoNothing /* receiver effect */,
|
||||
|
@ -1134,9 +1140,7 @@ RetainSummaryManager::updateSummaryFromAnnotations(RetainSummary &Summ,
|
|||
// Determine if there is a special return effect for this method.
|
||||
if (isTrackedObjCObjectType(FD->getResultType())) {
|
||||
if (FD->getAttr<NSOwnershipReturnsAttr>()) {
|
||||
Summ.setRetEffect(isGCEnabled()
|
||||
? RetEffect::MakeGCNotOwned()
|
||||
: RetEffect::MakeOwned(RetEffect::ObjC, true));
|
||||
Summ.setRetEffect(ObjCAllocRetE);
|
||||
}
|
||||
else if (FD->getAttr<CFOwnershipReturnsAttr>()) {
|
||||
Summ.setRetEffect(RetEffect::MakeOwned(RetEffect::CF, true));
|
||||
|
@ -1159,9 +1163,7 @@ RetainSummaryManager::updateSummaryFromAnnotations(RetainSummary &Summ,
|
|||
// Determine if there is a special return effect for this method.
|
||||
if (isTrackedObjCObjectType(MD->getResultType())) {
|
||||
if (MD->getAttr<NSOwnershipReturnsAttr>()) {
|
||||
Summ.setRetEffect(isGCEnabled()
|
||||
? RetEffect::MakeGCNotOwned()
|
||||
: RetEffect::MakeOwned(RetEffect::ObjC, true));
|
||||
Summ.setRetEffect(ObjCAllocRetE);
|
||||
}
|
||||
else if (MD->getAttr<CFOwnershipReturnsAttr>()) {
|
||||
Summ.setRetEffect(RetEffect::MakeOwned(RetEffect::CF, true));
|
||||
|
@ -1216,9 +1218,7 @@ RetainSummaryManager::getCommonMethodSummary(const ObjCMethodDecl* MD,
|
|||
// by instance methods.
|
||||
RetEffect E =
|
||||
followsFundamentalRule(S.getIdentifierInfoForSlot(0)->getName())
|
||||
? (isGCEnabled() ? RetEffect::MakeGCNotOwned()
|
||||
: RetEffect::MakeOwned(RetEffect::ObjC, true))
|
||||
: RetEffect::MakeNotOwned(RetEffect::ObjC);
|
||||
? ObjCAllocRetE : RetEffect::MakeNotOwned(RetEffect::ObjC);
|
||||
|
||||
return getPersistentSummary(E, ReceiverEff, MayEscape);
|
||||
}
|
||||
|
@ -1293,14 +1293,9 @@ RetainSummaryManager::getClassMethodSummary(Selector S, IdentifierInfo *ClsName,
|
|||
return Summ;
|
||||
}
|
||||
|
||||
void RetainSummaryManager::InitializeClassMethodSummaries() {
|
||||
|
||||
assert (ScratchArgs.isEmpty());
|
||||
|
||||
RetEffect E = isGCEnabled() ? RetEffect::MakeGCNotOwned()
|
||||
: RetEffect::MakeOwned(RetEffect::ObjC, true);
|
||||
|
||||
RetainSummary* Summ = getPersistentSummary(E);
|
||||
void RetainSummaryManager::InitializeClassMethodSummaries() {
|
||||
assert(ScratchArgs.isEmpty());
|
||||
RetainSummary* Summ = getPersistentSummary(ObjCAllocRetE);
|
||||
|
||||
// Create the summaries for "alloc", "new", and "allocWithZone:" for
|
||||
// NSObject and its derivatives.
|
||||
|
@ -1354,10 +1349,7 @@ void RetainSummaryManager::InitializeMethodSummaries() {
|
|||
addNSObjectMethSummary(GetNullarySelector("init", Ctx), InitSumm);
|
||||
|
||||
// The next methods are allocators.
|
||||
RetEffect E = isGCEnabled() ? RetEffect::MakeGCNotOwned()
|
||||
: RetEffect::MakeOwned(RetEffect::ObjC, true);
|
||||
|
||||
RetainSummary* Summ = getPersistentSummary(E);
|
||||
RetainSummary* Summ = getPersistentSummary(ObjCAllocRetE);
|
||||
|
||||
// Create the "copy" selector.
|
||||
addNSObjectMethSummary(GetNullarySelector("copy", Ctx), Summ);
|
||||
|
@ -1366,7 +1358,7 @@ void RetainSummaryManager::InitializeMethodSummaries() {
|
|||
addNSObjectMethSummary(GetNullarySelector("mutableCopy", Ctx), Summ);
|
||||
|
||||
// Create the "retain" selector.
|
||||
E = RetEffect::MakeReceiverAlias();
|
||||
RetEffect E = RetEffect::MakeReceiverAlias();
|
||||
Summ = getPersistentSummary(E, IncRefMsg);
|
||||
addNSObjectMethSummary(GetNullarySelector("retain", Ctx), Summ);
|
||||
|
||||
|
|
Loading…
Reference in New Issue