mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1637474 part 2: Disconnect accSelection IEnumVARIANT and IAccessibleRelation objects when their associated Accessible is shut down. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D75000
This commit is contained in:
parent
ca670d92d5
commit
535261ca3d
@ -104,6 +104,7 @@ ia2Accessible::get_relation(long aRelationIndex,
|
||||
new ia2AccessibleRelation(relationType, &rel);
|
||||
if (ia2Relation->HasTargets()) {
|
||||
if (relIdx == aRelationIndex) {
|
||||
acc->AssociateCOMObjectForDisconnection(ia2Relation);
|
||||
ia2Relation.forget(aRelation);
|
||||
return S_OK;
|
||||
}
|
||||
@ -137,6 +138,7 @@ ia2Accessible::get_relations(long aMaxRelations,
|
||||
RefPtr<ia2AccessibleRelation> ia2Rel =
|
||||
new ia2AccessibleRelation(relationType, &rel);
|
||||
if (ia2Rel->HasTargets()) {
|
||||
acc->AssociateCOMObjectForDisconnection(ia2Rel);
|
||||
ia2Rel.forget(aRelation + (*aNRelations));
|
||||
(*aNRelations)++;
|
||||
}
|
||||
|
@ -756,6 +756,7 @@ AccessibleWrap::get_accSelection(VARIANT __RPC_FAR* pvarChildren) {
|
||||
} else if (count > 1) {
|
||||
RefPtr<AccessibleEnumerator> pEnum =
|
||||
new AccessibleEnumerator(selectedItems);
|
||||
AssociateCOMObjectForDisconnection(pEnum);
|
||||
pvarChildren->vt =
|
||||
VT_UNKNOWN; // this must be VT_UNKNOWN for an IEnumVARIANT
|
||||
NS_ADDREF(pvarChildren->punkVal = pEnum);
|
||||
|
Loading…
Reference in New Issue
Block a user