kickoff/ui/launcher.cpp:272
void registerUrlHandlers() { UrlItemLauncher::addGlobalHandler(UrlItemLauncher::ExtensionHandler, "desktop", new ServiceItemHandler); UrlItemLauncher::addGlobalHandler(UrlItemLauncher::ProtocolHandler, "leave", new LeaveItemHandler); } Both ItemHandler instantiated above leak because noone will ever delete them (see below for memcheck output). Solution 1: Make the qobjects and parent/reparent them. One already inherits from QObject. Solution 2: In UrlItemLauncher::~UrlItemLauncher() delete content of UrlItemLauncher::Private::globalHandlers.insert(name, info); Solution 3: ?? ==26061== 8 bytes in 1 blocks are definitely lost in loss record 4 of 302 ==26061== at 0x4C2535C: operator new(unsigned long) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==26061== by 0x237E39E0: Kickoff::Launcher::Private::registerUrlHandlers() (launcher.cpp:274) ==26061== by 0x237E1280: Kickoff::Launcher::init() (launcher.cpp:511) ==26061== by 0x237E16DB: Kickoff::Launcher::Launcher(Plasma::Applet*) (launcher.cpp:478) ==26061== by 0x237EC968: LauncherApplet::Private::createLauncher() (applet.cpp:75) ==26061== by 0x237ECA3C: LauncherApplet::widget() (applet.cpp:239) ==26061== by 0x54255BB: Plasma::PopupAppletPrivate::popupConstraintsEvent(QFlags<Plasma::Constraint>) (popupapplet.cpp:178) ==26061== by 0x53DF936: Plasma::Applet::flushPendingConstraintsEvents() (applet.cpp:1165) ==26061== by 0x5401603: Plasma::Corona::loadLayout(QString const&) (corona.cpp:379) ==26061== by 0x540182D: Plasma::Corona::initializeLayout(QString const&) (corona.cpp:324) ==26061== by 0x4E7CEDE: PlasmaApp::corona() (plasmaapp.cpp:540) ==26061== by 0x4E7E7ED: PlasmaApp::setupDesktop() (plasmaapp.cpp:252) ==26061== by 0x4E7E9BC: PlasmaApp::qt_metacall(QMetaObject::Call, int, void**) (plasmaapp.moc:115) ==26061== by 0x9AAA7C7: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3115) ==26061== by 0x9AABB88: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3192) ==26061== by 0x9AB28E3: QSingleShotTimer::timeout() (qtimer.moc:76) ==26061== by 0x9AB29DA: QSingleShotTimer::timerEvent(QTimerEvent*) (qtimer.cpp:298) ==26061== by 0x9AA68CB: QObject::event(QEvent*) (qobject.cpp:1065) ==26061== by 0x8B7786C: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4106) ==26061== by 0x8B8050B: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3632) ==26061== by 0x68A417D: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==26061== by 0x9A94480: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:620) ==26061== by 0x8B741E4: QCoreApplication::sendEvent(QObject*, QEvent*) (qcoreapplication.h:213) ==26061== by 0x9AC5D58: QTimerInfoList::activateTimers() (qeventdispatcher_unix.cpp:580) ==26061== by 0x9AC3541: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:165) ==26061== by 0xDA370FA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.1800.2) ==26061== by 0xDA3A8CC: (within /usr/lib64/libglib-2.0.so.0.1800.2) ==26061== by 0xDA3AA8A: g_main_context_iteration (in /usr/lib64/libglib-2.0.so.0.1800.2) ==26061== by 0x9AC2719: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:327) ==26061== by 0x8C30042: QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qguieventdispatcher_glib.cpp:202) _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel