diff options
Diffstat (limited to 'winaccessibility')
-rw-r--r-- | winaccessibility/source/UAccCOM/MAccessible.cxx | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx index bc911953b19d..f3c0dbf09493 100644 --- a/winaccessibility/source/UAccCOM/MAccessible.cxx +++ b/winaccessibility/source/UAccCOM/MAccessible.cxx @@ -2584,8 +2584,7 @@ static AggMapEntry g_CMAccessible_AggMap[] = { { &IID_IAccessibleAction, &createAggInstance<CAccAction>, XI_ACTION }, { &IID_IAccessibleValue, &createAggInstance<CAccValue>, XI_VALUE }, { &IID_IAccessibleHypertext, &createAggInstance<CAccHypertext>, XI_HYPERTEXT }, - { &IID_IAccessibleHyperlink, &createAggInstance<CAccHyperLink>, XI_HYPERLINK }, - { nullptr, nullptr, 0 }, + { &IID_IAccessibleHyperlink, &createAggInstance<CAccHyperLink>, XI_HYPERLINK } }; @@ -2603,16 +2602,15 @@ HRESULT WINAPI CMAccessible::SmartQI(void* /*pv*/, REFIID iid, void** ppvObject) return E_FAIL; } - AggMapEntry * pMap = &g_CMAccessible_AggMap[0]; - while(pMap && pMap->piid) + for (const AggMapEntry& rEntry : g_CMAccessible_AggMap) { - if (InlineIsEqualGUID(iid, *pMap->piid)) + if (InlineIsEqualGUID(iid, *rEntry.piid)) { SolarMutexGuard g; XInterface* pXI = nullptr; bool bFound = GetXInterfaceFromXAccessible(m_xAccessible.get(), - &pXI, pMap->XIFIndex); + &pXI, rEntry.XIFIndex); if(!bFound) { return E_FAIL; @@ -2625,11 +2623,11 @@ HRESULT WINAPI CMAccessible::SmartQI(void* /*pv*/, REFIID iid, void** ppvObject) } else { - HRESULT hr = pMap->pfnCreateInstance(*this, ppvObject); + HRESULT hr = rEntry.pfnCreateInstance(*this, ppvObject); assert(hr == S_OK); if(hr == S_OK) { - m_containedObjects.emplace(*pMap->piid, static_cast<IUnknown*>(*ppvObject)); + m_containedObjects.emplace(*rEntry.piid, static_cast<IUnknown*>(*ppvObject)); IUNOXWrapper* wrapper = nullptr; static_cast<IUnknown*>(*ppvObject)->QueryInterface(IID_IUNOXWrapper, reinterpret_cast<void**>(&wrapper)); if(wrapper) @@ -2643,7 +2641,6 @@ HRESULT WINAPI CMAccessible::SmartQI(void* /*pv*/, REFIID iid, void** ppvObject) } return E_FAIL; } - pMap++; } return E_FAIL; |