fix bug 36805 - was leaking xptiInterfaceGuts by unconditionally overwriting a union
git-svn-id: svn://10.0.0.236/trunk@66844 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -82,6 +82,19 @@ xptiInterfaceInfo::~xptiInterfaceInfo()
|
||||
delete mInterface;
|
||||
}
|
||||
|
||||
void
|
||||
xptiInterfaceInfo::Invalidate()
|
||||
{
|
||||
if(IsValid())
|
||||
{
|
||||
// The order of operations here is important!
|
||||
xptiTypelib typelib = GetTypelibRecord();
|
||||
if(HasInterfaceRecord())
|
||||
delete mInterface;
|
||||
mTypelib = typelib;
|
||||
mName = nsnull;
|
||||
}
|
||||
}
|
||||
|
||||
PRBool
|
||||
xptiInterfaceInfo::Resolve(xptiWorkingSet* aWorkingSet /* = nsnull */)
|
||||
|
||||
@@ -487,15 +487,7 @@ public:
|
||||
PRBool PartiallyResolveLocked(XPTInterfaceDescriptor* aDescriptor,
|
||||
xptiWorkingSet* aWorkingSet);
|
||||
|
||||
void Invalidate()
|
||||
{
|
||||
if(IsValid())
|
||||
{
|
||||
xptiTypelib typelib = GetTypelibRecord();
|
||||
mTypelib = typelib;
|
||||
mName = nsnull;
|
||||
}
|
||||
}
|
||||
void Invalidate();
|
||||
|
||||
private:
|
||||
void CopyName(const char* name,
|
||||
|
||||
Reference in New Issue
Block a user