Kaydet (Commit) 637538a9 authored tarafından Miklos Vajna's avatar Miklos Vajna

Related: tdf#107976 SwView_Impl::AddTransferable: remove dead weak references

So that the vector doesn't grow till document close without a reason.

Change-Id: Iec06e47e39274df7de46c971692054f4f0bcbc96
Reviewed-on: https://gerrit.libreoffice.org/39840Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
Tested-by: 's avatarJenkins <ci@libreoffice.org>
üst a1aa4f84
......@@ -226,6 +226,16 @@ void SwView_Impl::AddTransferable(SwTransferable& rTransferable)
//prevent removing of the non-referenced SwTransferable
rTransferable.m_refCount++;
{
// Remove previously added, but no longer existing weak references.
for (auto it = mxTransferables.begin(); it != mxTransferables.end();)
{
uno::Reference<lang::XUnoTunnel> xTunnel(it->get(), uno::UNO_QUERY);
if (!xTunnel.is())
it = mxTransferables.erase(it);
else
++it;
}
mxTransferables.push_back(uno::WeakReference<lang::XUnoTunnel>(uno::Reference<lang::XUnoTunnel>(&rTransferable)));
}
rTransferable.m_refCount--;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment