summaryrefslogtreecommitdiff
path: root/winaccessibility
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-12-12 15:22:57 +0100
committerMichael Stahl <mstahl@redhat.com>2013-12-13 19:47:43 +0100
commitb36050801acd727d1993123877663a7d61a6294f (patch)
treee221ac9087f483250b02e87c72b5d43239b48c6c /winaccessibility
parentfebd4d9d3c97d0dccf4dc4c5217f4db668f1e9ce (diff)
winaccessibility: clear entires from XHWNDDocList too
... in DeleteAccObj(). Otherwise pointers to deleted documents will be used. Change-Id: Ia807dc3a2c782019cf7fc874d264058219956d74 (cherry picked from commit 975e1d293d6f702c81647449fd28560b6d00e4a0)
Diffstat (limited to 'winaccessibility')
-rw-r--r--winaccessibility/source/service/AccObjectWinManager.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index bb9434a40508..b3aaf4c0fda6 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -559,6 +559,10 @@ void AccObjectWinManager::DeleteAccObj( XAccessible* pXAcc )
size_t i = XResIdAccList.erase(accObj.GetResID());
assert(i != 0);
DeleteFromHwndXAcc(pXAcc);
+ if (DOCUMENT == accObj.GetRole())
+ {
+ XHWNDDocList.erase(accObj.GetParentHWND());
+ }
XIdAccList.erase(pXAcc); // note: this invalidates accObj so do it last!
}