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

Side by Side Diff: chrome/browser/sync/glue/bookmark_change_processor.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_change_processor.h" 5 #include "chrome/browser/sync/glue/bookmark_change_processor.h"
6 6
7 #include <map> 7 #include <map>
8 #include <stack> 8 #include <stack>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 foster_parent->child_count()); 600 foster_parent->child_count());
601 } 601 }
602 } 602 }
603 DCHECK_EQ(dst->child_count(), 0) << "Node being deleted has children"; 603 DCHECK_EQ(dst->child_count(), 0) << "Node being deleted has children";
604 604
605 model_associator_->Disassociate(it->id); 605 model_associator_->Disassociate(it->id);
606 606
607 const BookmarkNode* parent = dst->parent(); 607 const BookmarkNode* parent = dst->parent();
608 int index = parent->GetIndexOf(dst); 608 int index = parent->GetIndexOf(dst);
609 if (index > -1) 609 if (index > -1)
610 model->Remove(parent, index); 610 model->Remove(parent->GetChild(index));
611 } 611 }
612 612
613 // A map to keep track of some reordering work we defer until later. 613 // A map to keep track of some reordering work we defer until later.
614 std::multimap<int, const BookmarkNode*> to_reposition; 614 std::multimap<int, const BookmarkNode*> to_reposition;
615 615
616 syncer::ReadNode synced_bookmarks(trans); 616 syncer::ReadNode synced_bookmarks(trans);
617 int64 synced_bookmarks_id = syncer::kInvalidId; 617 int64 synced_bookmarks_id = syncer::kInvalidId;
618 if (synced_bookmarks.InitByTagLookupForBookmarks(kMobileBookmarksTag) == 618 if (synced_bookmarks.InitByTagLookupForBookmarks(kMobileBookmarksTag) ==
619 syncer::BaseNode::INIT_OK) { 619 syncer::BaseNode::INIT_OK) {
620 synced_bookmarks_id = synced_bookmarks.GetId(); 620 synced_bookmarks_id = synced_bookmarks.GetId();
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 for (std::multimap<int, const BookmarkNode*>::iterator it = 702 for (std::multimap<int, const BookmarkNode*>::iterator it =
703 to_reposition.begin(); it != to_reposition.end(); ++it) { 703 to_reposition.begin(); it != to_reposition.end(); ++it) {
704 const BookmarkNode* parent = it->second->parent(); 704 const BookmarkNode* parent = it->second->parent();
705 model->Move(it->second, parent, it->first); 705 model->Move(it->second, parent, it->first);
706 } 706 }
707 707
708 // Clean up the temporary node. 708 // Clean up the temporary node.
709 if (foster_parent) { 709 if (foster_parent) {
710 // There should be no nodes left under the foster parent. 710 // There should be no nodes left under the foster parent.
711 DCHECK_EQ(foster_parent->child_count(), 0); 711 DCHECK_EQ(foster_parent->child_count(), 0);
712 model->Remove(foster_parent->parent(), 712 model->Remove(foster_parent);
713 foster_parent->parent()->GetIndexOf(foster_parent));
714 foster_parent = NULL; 713 foster_parent = NULL;
715 } 714 }
716 715
717 // The visibility of the mobile node may need to change. 716 // The visibility of the mobile node may need to change.
718 model_associator_->UpdatePermanentNodeVisibility(); 717 model_associator_->UpdatePermanentNodeVisibility();
719 718
720 // Notify UI intensive observers of BookmarkModel that all updates have been 719 // Notify UI intensive observers of BookmarkModel that all updates have been
721 // applied, and that they may now be consumed. This prevents issues like the 720 // applied, and that they may now be consumed. This prevents issues like the
722 // one described in crbug.com/281562, where old and new items on the bookmarks 721 // one described in crbug.com/281562, where old and new items on the bookmarks
723 // bar would overlap. 722 // bar would overlap.
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 updated_specifics.set_icon_url(bookmark_node->icon_url().spec()); 937 updated_specifics.set_icon_url(bookmark_node->icon_url().spec());
939 sync_node->SetBookmarkSpecifics(updated_specifics); 938 sync_node->SetBookmarkSpecifics(updated_specifics);
940 } 939 }
941 } 940 }
942 941
943 bool BookmarkChangeProcessor::CanSyncNode(const BookmarkNode* node) { 942 bool BookmarkChangeProcessor::CanSyncNode(const BookmarkNode* node) {
944 return bookmark_model_->client()->CanSyncNode(node); 943 return bookmark_model_->client()->CanSyncNode(node);
945 } 944 }
946 945
947 } // namespace browser_sync 946 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698