~ps-jenkins/unity-scopes-shell/ubuntu-vivid-proposed

« back to all changes in this revision

Viewing changes to src/Unity/scope.cpp

  • Committer: CI bot
  • Author(s): Pete Woods
  • Date: 2014-11-28 08:52:01 UTC
  • mfrom: (165.1.9 today-scope-crash)
  • Revision ID: ps-jenkins@lists.canonical.com-20141128085201-agykz8pxf5k9n60e
Fix crash exposed by today scope Fixes: #1396526
Approved by: Pawel Stolowski

Show diffs side-by-side

added added

removed removed

Lines of Context:
486
486
 
487
487
    // department has been removed (not reported by scope); make sure it's only treated as such when
488
488
    // we're examining children of *current* department, othwerwise it would break on partial trees when visiting a leaf.
489
 
    if (firstMismatchingChild == nullptr && scopeNode->subdepartments().size() < cachedChildrenIds.size() &&
 
489
    if (firstMismatchingChild == nullptr && (int) scopeNode->subdepartments().size() < cachedChildrenIds.size() &&
490
490
            m_currentNavigationId.toStdString() == scopeNode->id()) {
491
491
        return scopeNode;
492
492
    }
529
529
    }
530
530
 
531
531
    Q_FOREACH(scopes::Category::SCPtr const& category, categories) {
532
 
        ResultsModel* category_model = m_categories->lookupCategory(category->id());
 
532
        QSharedPointer<ResultsModel> category_model = m_categories->lookupCategory(category->id());
533
533
        if (category_model == nullptr) {
534
 
            category_model = new ResultsModel(m_categories.data());
 
534
            category_model.reset(new ResultsModel(m_categories.data()));
535
535
            category_model->setCategoryId(QString::fromStdString(category->id()));
536
536
            category_model->addResults(category_results[category->id()]);
537
537
            m_categories->registerCategory(category, category_model);
538
538
        } else {
539
539
            // FIXME: only update when we know it's necessary
540
 
            m_categories->registerCategory(category, nullptr);
 
540
            m_categories->registerCategory(category, QSharedPointer<ResultsModel>());
541
541
            category_model->addResults(category_results[category->id()]);
542
542
            m_categories->updateResultCount(category_model);
543
543
        }