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:
Michael Stahl
2013-12-12 20:06:26 +01:00
parent 9e351edccf
commit b22e987113
@@ -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!
}
/**