sfx2/source/control/itemdel.cxx | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-)
New commits: commit 22c75d86db9351ab271942a755a2a75a76920943 Author: Michael Stahl <mst...@redhat.com> Date: Wed Jul 27 20:55:45 2016 +0200 sfx2: just use Idle in SfxItemDisruptor_Impl This Application::InsertIdleHdl() stuff is ancient and now obsolete. Change-Id: I082870328711b2159b05d8cb077c0e439b7ee94c Reviewed-on: https://gerrit.libreoffice.org/27597 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> diff --git a/sfx2/source/control/itemdel.cxx b/sfx2/source/control/itemdel.cxx index d29f5fd..1ac8ab8 100644 --- a/sfx2/source/control/itemdel.cxx +++ b/sfx2/source/control/itemdel.cxx @@ -20,20 +20,17 @@ #include <sal/config.h> #include "itemdel.hxx" -#include <vcl/svapp.hxx> -#include <tools/errcode.hxx> -#include <limits.h> -#include <vector> +#include <vcl/idle.hxx> #include <svl/itempool.hxx> class SfxItemDisruptor_Impl { SfxPoolItem * pItem; - Link<Application*,void> aLink; + Idle m_Idle; private: - DECL_LINK_TYPED( Delete, Application*, void ); + DECL_LINK_TYPED( Delete, Idle*, void ); public: explicit SfxItemDisruptor_Impl(SfxPoolItem *pItemToDesrupt); @@ -43,10 +40,12 @@ public: SfxItemDisruptor_Impl& operator=(const SfxItemDisruptor_Impl&) = delete; }; -SfxItemDisruptor_Impl::SfxItemDisruptor_Impl( SfxPoolItem *pItemToDesrupt ): - pItem(pItemToDesrupt), - aLink( LINK(this, SfxItemDisruptor_Impl, Delete) ) +SfxItemDisruptor_Impl::SfxItemDisruptor_Impl(SfxPoolItem *const pItemToDisrupt) + : pItem(pItemToDisrupt) + , m_Idle("SfxItemDisruptor_Impl") { + m_Idle.SetIdleHdl(LINK(this, SfxItemDisruptor_Impl, Delete)); + m_Idle.SetPriority(SchedulerPriority::DEFAULT_IDLE); DBG_ASSERT( 0 == pItem->GetRefCount(), "disrupting pooled item" ); pItem->SetKind( SFX_ITEMS_DELETEONIDLE ); @@ -54,15 +53,12 @@ SfxItemDisruptor_Impl::SfxItemDisruptor_Impl( SfxPoolItem *pItemToDesrupt ): void SfxItemDisruptor_Impl::LaunchDeleteOnIdle() { - // process in Idle - Application::InsertIdleHdl( aLink, 1 ); + m_Idle.Start(); } SfxItemDisruptor_Impl::~SfxItemDisruptor_Impl() { - - // remove from Idle-Handler - Application::RemoveIdleHdl( aLink ); + m_Idle.Stop(); // reset RefCount (was set to SFX_ITEMS_SPECIAL before!) pItem->SetRefCount( 0 ); @@ -70,7 +66,7 @@ SfxItemDisruptor_Impl::~SfxItemDisruptor_Impl() delete pItem; } -IMPL_LINK_NOARG_TYPED(SfxItemDisruptor_Impl, Delete, Application*, void) +IMPL_LINK_NOARG_TYPED(SfxItemDisruptor_Impl, Delete, Idle*, void) { delete this; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits