Skip to content

Commit

Permalink
[nemo-qml-plugin-calendar] Avoid unnecessary instantiation of calenda…
Browse files Browse the repository at this point in the history
…r manager. Contributes to JB#43886

Avoids recreating NemoCalendarManager in invitation query dtor,
which can happen if the query instance was never really used for anything.
  • Loading branch information
pvuorela committed Nov 20, 2018
1 parent 0e30efe commit b8a0a69
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/calendarinvitationquery.cpp
Expand Up @@ -44,7 +44,10 @@ NemoCalendarInvitationQuery::NemoCalendarInvitationQuery()

NemoCalendarInvitationQuery::~NemoCalendarInvitationQuery()
{
NemoCalendarManager::instance()->unRegisterInvitationQuery(this);
NemoCalendarManager *manager = NemoCalendarManager::instance(false);
if (manager) {
manager->unRegisterInvitationQuery(this);
}
}

QString NemoCalendarInvitationQuery::notebookUid() const
Expand Down
4 changes: 2 additions & 2 deletions src/calendarmanager.cpp
Expand Up @@ -98,10 +98,10 @@ NemoCalendarManager::NemoCalendarManager() :
connect(mTimer, SIGNAL(timeout()), this, SLOT(timeout()));
}

NemoCalendarManager *NemoCalendarManager::instance()
NemoCalendarManager *NemoCalendarManager::instance(bool createIfNeeded)
{
static NemoCalendarManager *managerInstance;
if (!managerInstance)
if (!managerInstance && createIfNeeded)
managerInstance = new NemoCalendarManager;

return managerInstance;
Expand Down
2 changes: 1 addition & 1 deletion src/calendarmanager.h
Expand Up @@ -59,7 +59,7 @@ class NemoCalendarManager : public QObject
NemoCalendarManager();

public:
static NemoCalendarManager *instance();
static NemoCalendarManager *instance(bool createIfNeeded = true);
~NemoCalendarManager();

NemoCalendarEvent* eventObject(const QString &eventUid, const KDateTime &recurrenceId);
Expand Down

0 comments on commit b8a0a69

Please sign in to comment.