winaccessibility: do not access freed AccObject
The AccObject is stored by value in XIdAccList, so don't call GetResID() after it has been erased. Change-Id: I391aad1e3ab71d443cc6e6b92381f74918e0bcfb
This commit is contained in:
@@ -554,9 +554,10 @@ void AccObjectWinManager::DeleteAccObj( XAccessible* pXAcc )
|
||||
{
|
||||
accObj.GetIMAccessible()->Release();
|
||||
}
|
||||
XIdAccList.erase( pXAcc );
|
||||
XResIdAccList.erase( accObj.GetResID() );
|
||||
size_t i = XResIdAccList.erase(accObj.GetResID());
|
||||
assert(i != 0);
|
||||
DeleteFromHwndXAcc(pXAcc);
|
||||
XIdAccList.erase(pXAcc); // note: this invalidates accObj so do it last!
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user