aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/CFRefCount.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-03-04 23:30:42 +0000
committerTed Kremenek <kremenek@apple.com>2009-03-04 23:30:42 +0000
commit3aa7ecd53f8e4965188fbbf33a82380c798f309c (patch)
treebf858a711a90a90d5141bfbcc07d8a1bb8d482e6 /lib/Analysis/CFRefCount.cpp
parentbbf842bb27c6e964359111b6a72a5f948c56fc41 (diff)
For now, do not track NSWindow objects and it's subclasses.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66107 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/CFRefCount.cpp')
-rw-r--r--lib/Analysis/CFRefCount.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp
index 7e6507cbe5..08f4b64f76 100644
--- a/lib/Analysis/CFRefCount.cpp
+++ b/lib/Analysis/CFRefCount.cpp
@@ -645,6 +645,13 @@ private:
void addNSObjectMethSummary(Selector S, RetainSummary *Summ) {
ObjCMethodSummaries[S] = Summ;
}
+
+ void addClassMethSummary(const char* Cls, const char* nullaryName,
+ RetainSummary *Summ) {
+ IdentifierInfo* ClsII = &Ctx.Idents.get(Cls);
+ Selector S = GetNullarySelector(nullaryName, Ctx);
+ ObjCClassMethodSummaries[ObjCSummaryKey(ClsII, S)] = Summ;
+ }
void addInstMethSummary(const char* Cls, const char* nullaryName,
RetainSummary *Summ) {
@@ -1150,6 +1157,11 @@ void RetainSummaryManager::InitializeMethodSummaries() {
// self-own themselves. However, they only do this once they are displayed.
// Thus, we need to track an NSWindow's display status.
// This is tracked in <rdar://problem/6062711>.
+ // See also http://llvm.org/bugs/show_bug.cgi?id=3714.
+ addClassMethSummary("NSWindow", "alloc",
+ getPersistentSummary(RetEffect::MakeNoRet()));
+
+#if 0
RetainSummary *NSWindowSumm =
getPersistentSummary(RetEffect::MakeReceiverAlias(), StopTracking);
@@ -1158,6 +1170,7 @@ void RetainSummaryManager::InitializeMethodSummaries() {
addInstMethSummary("NSWindow", NSWindowSumm, "initWithContentRect",
"styleMask", "backing", "defer", "screen", NULL);
+#endif
// For NSPanel (which subclasses NSWindow), allocated objects are not
// self-owned.