For now, do not track NSWindow objects and it's subclasses.

llvm-svn: 66107
This commit is contained in:
Ted Kremenek 2009-03-04 23:30:42 +00:00
parent 458b6982d4
commit 00dfe30409
2 changed files with 15 additions and 1 deletions

View File

@ -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.

View File

@ -84,5 +84,6 @@ void f2b() {
void f3() {
NSWindow *window = [NSWindow alloc]; // expected-warning{{never read}} expected-warning{{leak}}
// FIXME: For now we don't track NSWindow.
NSWindow *window = [NSWindow alloc]; // expected-warning{{never read}}
}