diff --git a/src/kde/kioslave/kio_recoll-kde4/kio_recoll.cpp b/src/kde/kioslave/kio_recoll-kde4/kio_recoll.cpp index 31a57c3c..d66012cc 100644 --- a/src/kde/kioslave/kio_recoll-kde4/kio_recoll.cpp +++ b/src/kde/kioslave/kio_recoll-kde4/kio_recoll.cpp @@ -51,8 +51,7 @@ using namespace KIO; RclConfig *RecollProtocol::o_rclconfig; RecollProtocol::RecollProtocol(const QByteArray &pool, const QByteArray &app) - : SlaveBase("recoll", pool, app), m_initok(false), m_rcldb(0), - m_alwaysdir(false) + : SlaveBase("recoll", pool, app), m_initok(false), m_alwaysdir(false) { kDebug() << endl; if (o_rclconfig == 0) { @@ -71,7 +70,7 @@ RecollProtocol::RecollProtocol(const QByteArray &pool, const QByteArray &app) } rwSettings(false); - m_rcldb = new Rcl::Db(o_rclconfig); + m_rcldb = std::shared_ptr(new Rcl::Db(o_rclconfig)); if (!m_rcldb) { m_reason = "Could not build database object. (out of memory ?)"; return; @@ -103,7 +102,6 @@ RecollProtocol::RecollProtocol(const QByteArray &pool, const QByteArray &app) RecollProtocol::~RecollProtocol() { kDebug(); - delete m_rcldb; } bool RecollProtocol::maybeOpenDb(string &reason) @@ -333,7 +331,7 @@ bool RecollProtocol::doSearch(const QueryDesc& qd) } std::shared_ptr sdata(sd); - std::shared_ptrquery(new Rcl::Query(m_rcldb)); + std::shared_ptrquery(new Rcl::Query(m_rcldb.get())); query->setCollapseDuplicates(prefs.collapseDuplicates); if (!query->setQuery(sdata)) { m_reason = "Query execute failed. Invalid query or syntax error?"; @@ -342,7 +340,8 @@ bool RecollProtocol::doSearch(const QueryDesc& qd) } DocSequenceDb *src = - new DocSequenceDb(std::shared_ptr(query), "Query results", sdata); + new DocSequenceDb(m_rcldb, std::shared_ptr(query), + "Query results", sdata); if (src == 0) { error(KIO::ERR_SLAVE_DEFINED, "Can't build result sequence"); return false; diff --git a/src/kde/kioslave/kio_recoll-kde4/kio_recoll.h b/src/kde/kioslave/kio_recoll-kde4/kio_recoll.h index 40cc5e03..26283112 100644 --- a/src/kde/kioslave/kio_recoll-kde4/kio_recoll.h +++ b/src/kde/kioslave/kio_recoll-kde4/kio_recoll.h @@ -168,7 +168,7 @@ class RecollProtocol : public KIO::SlaveBase { bool isRecollResult(const KUrl &url, int *num, QString* q); bool m_initok; - Rcl::Db *m_rcldb; + std::shared_ptr m_rcldb; string m_reason; bool m_alwaysdir; string m_stemlang; // english by default else env[RECOLL_KIO_STEMLANG]