winaccessibility/source/UAccCOM/MAccessible.cxx |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit 0d60b7914f4026cedf3455b79636fa108b05d432
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Tue Mar 7 10:35:38 2023 +0000
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Wed Mar 8 08:57:03 2023 +0000

    tdf#154039 wina11y: Increase refcount for returned COM interface
    
    The reference counter for the IUnknown interface
    of the COM object needs to be increased in
    `CMAccessible::get_accSelection` as well,
    not just in the called `CEnumVariant::Next`,
    because calling VariantClear` on the temporary
    variant afterwards decreases the ref count again.
    
    Regression from
    
        commit 00c0ee8cf0fac0c933c5ae600e99a64b1c7d4397
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Mon Jan 31 07:41:14 2022 +0000
    
            tdf#147083 wina11y: Return a11y object instead of child ID
    
    Change-Id: Id968c3d80b38961b836fbb1a9bd6dfeefdff813f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148393
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    (cherry picked from commit 38e2dde00da0207c5f7157bb427a006d32dfeb5b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148400
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx 
b/winaccessibility/source/UAccCOM/MAccessible.cxx
index f2f616980157..848960ff784a 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.cxx
+++ b/winaccessibility/source/UAccCOM/MAccessible.cxx
@@ -854,6 +854,7 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CMAccessible::get_accSelection(VARIANT *pvarCh
                 return S_FALSE;
             pvarChildren->vt = VT_DISPATCH;
             pvarChildren->pdispVal = varTmp[0].pdispVal;
+            pvarChildren->pdispVal->AddRef();
             VariantClear(&varTmp[0]);
             m_pEnumVar->Reset();
             break;

Reply via email to