Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1025)

Side by Side Diff: chrome/browser/sync/glue/bookmark_model_associator.cc

Issue 1105413002: Avoid conversion of index to BookmarkNode pointer unnacessarily. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes as per review comments. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync/glue/bookmark_model_associator.h" 5 #include "chrome/browser/sync/glue/bookmark_model_associator.h"
6 6
7 #include <stack> 7 #include <stack>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 BookmarkNodeFinder::NodeMatches( 698 BookmarkNodeFinder::NodeMatches(
699 child, GURL(delete_entry.specifics.bookmark().url()), 699 child, GURL(delete_entry.specifics.bookmark().url()),
700 delete_entry.specifics.bookmark().title(), 700 delete_entry.specifics.bookmark().title(),
701 delete_entry.is_folder)) { 701 delete_entry.is_folder)) {
702 if (child->is_folder()) { 702 if (child->is_folder()) {
703 // Remember matched folder without removing and delete only empty 703 // Remember matched folder without removing and delete only empty
704 // ones later. 704 // ones later.
705 folders_matched.push_back( 705 folders_matched.push_back(
706 FolderInfo(child, parent, delete_entry.id)); 706 FolderInfo(child, parent, delete_entry.id));
707 } else { 707 } else {
708 bookmark_model_->Remove(parent, child_index); 708 bookmark_model_->Remove(child);
709 ++num_bookmark_deleted; 709 ++num_bookmark_deleted;
710 } 710 }
711 // Move unmatched journal here and decrement counter. 711 // Move unmatched journal here and decrement counter.
712 bk_delete_journals[journal_index] = 712 bk_delete_journals[journal_index] =
713 bk_delete_journals[--num_journals_unmatched]; 713 bk_delete_journals[--num_journals_unmatched];
714 break; 714 break;
715 } 715 }
716 } 716 }
717 } 717 }
718 } 718 }
719 719
720 // Ids of sync nodes not found in bookmark model, meaning the deletions are 720 // Ids of sync nodes not found in bookmark model, meaning the deletions are
721 // persisted and correponding delete journals can be dropped. 721 // persisted and correponding delete journals can be dropped.
722 std::set<int64> journals_to_purge; 722 std::set<int64> journals_to_purge;
723 723
724 // Remove empty folders from bottom to top. 724 // Remove empty folders from bottom to top.
725 for (FolderInfoList::reverse_iterator it = folders_matched.rbegin(); 725 for (FolderInfoList::reverse_iterator it = folders_matched.rbegin();
726 it != folders_matched.rend(); ++it) { 726 it != folders_matched.rend(); ++it) {
727 if (it->folder->child_count() == 0) { 727 if (it->folder->child_count() == 0) {
728 bookmark_model_->Remove(it->parent, it->parent->GetIndexOf(it->folder)); 728 bookmark_model_->Remove(it->folder);
729 ++num_bookmark_deleted; 729 ++num_bookmark_deleted;
730 } else { 730 } else {
731 // Keep non-empty folder and remove its journal so that it won't match 731 // Keep non-empty folder and remove its journal so that it won't match
732 // again in the future. 732 // again in the future.
733 journals_to_purge.insert(it->sync_id); 733 journals_to_purge.insert(it->sync_id);
734 } 734 }
735 } 735 }
736 736
737 // Purge unmatched journals. 737 // Purge unmatched journals.
738 for (size_t i = 0; i < num_journals_unmatched; ++i) 738 for (size_t i = 0; i < num_journals_unmatched; ++i)
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 syncer::SyncError::PERSISTENCE_ERROR, 838 syncer::SyncError::PERSISTENCE_ERROR,
839 message, 839 message,
840 syncer::BOOKMARKS); 840 syncer::BOOKMARKS);
841 } 841 }
842 } 842 }
843 } 843 }
844 return syncer::SyncError(); 844 return syncer::SyncError();
845 } 845 }
846 846
847 } // namespace browser_sync 847 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698