diff options
author | Michael Stahl <mstahl@redhat.com> | 2018-01-31 14:34:31 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2018-02-01 16:46:58 +0100 |
commit | b5440ce23b17d84f7971cb7ea35512d5cac69c9f (patch) | |
tree | 2b026ec289b891853ab1308f712b0ea905b9ba85 /compilerplugins | |
parent | b3fbecc13e416463ea1637e7801a470a21c6da97 (diff) |
tdf#114596 dbaccess: fix mysterious dataloss bug
OBookmarkContainer actually re-uses the reference count of
ODatabaseSource, so converting ODatabaseSource::m_aBookmark to Reference
created a cycle, which somehow causes the dataloss, because evidently
something as important as storing the data must be done in the
destructor.
(regression from 2660d24a07866e083c5135ea263030f3e3a2e729)
(cherry picked from commit 96ae2a3300811897c24cccb20f8c2faf382483df)
tdf#114596 compilerplugins: add exception to [loplugin:refcounting]
(cherry picked from commit e80da60895b45309fa1d018760d5f11cca4367f4)
Change-Id: I4cad01dc9cdaf405c1eb31d6c0e161eb6712b78f
Reviewed-on: https://gerrit.libreoffice.org/49026
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'compilerplugins')
-rw-r--r-- | compilerplugins/clang/refcounting.cxx | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compilerplugins/clang/refcounting.cxx b/compilerplugins/clang/refcounting.cxx index e008a9e501dd..5a4a40a37d3c 100644 --- a/compilerplugins/clang/refcounting.cxx +++ b/compilerplugins/clang/refcounting.cxx @@ -146,6 +146,10 @@ bool containsXInterfaceSubclass(const Type* pType0) { if (isDerivedFrom(pRecordDecl, "XPropertyList")) { // module svx return false; } + // tdf#114596 + if (isDerivedFrom(pRecordDecl, "dbaccess::OBookmarkContainer")) { // module dbaccess + return false; + } } if (pRecordDecl) { const ClassTemplateSpecializationDecl* pTemplate = dyn_cast<ClassTemplateSpecializationDecl>(pRecordDecl); |