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

Unified Diff: components/bookmarks/browser/bookmark_storage.cc

Issue 379643002: Revert of Fixed use-after-free in LoadCallback in bookmark_storage.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/bookmarks/browser/bookmark_storage.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/bookmarks/browser/bookmark_storage.cc
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
index 50e066920be9f80122b59500ead61e71d4c75aaf..f2f1f1bc588801387823b30692d5582b82e21c7f 100644
--- a/components/bookmarks/browser/bookmark_storage.cc
+++ b/components/bookmarks/browser/bookmark_storage.cc
@@ -49,7 +49,7 @@
void LoadCallback(const base::FilePath& path,
const base::WeakPtr<BookmarkStorage>& storage,
- scoped_ptr<BookmarkLoadDetails> details,
+ BookmarkLoadDetails* details,
base::SequencedTaskRunner* task_runner) {
startup_metric_utils::ScopedSlowStartupUMA
scoped_timer("Startup.SlowStartupBookmarksLoad");
@@ -96,18 +96,17 @@
if (load_index) {
TimeTicks start_time = TimeTicks::Now();
- AddBookmarksToIndex(details.get(), details->bb_node());
- AddBookmarksToIndex(details.get(), details->other_folder_node());
- AddBookmarksToIndex(details.get(), details->mobile_folder_node());
+ AddBookmarksToIndex(details, details->bb_node());
+ AddBookmarksToIndex(details, details->other_folder_node());
+ AddBookmarksToIndex(details, details->mobile_folder_node());
for (size_t i = 0; i < extra_nodes.size(); ++i)
- AddBookmarksToIndex(details.get(), extra_nodes[i]);
+ AddBookmarksToIndex(details, extra_nodes[i]);
UMA_HISTOGRAM_TIMES("Bookmarks.CreateBookmarkIndexTime",
TimeTicks::Now() - start_time);
}
task_runner->PostTask(FROM_HERE,
- base::Bind(&BookmarkStorage::OnLoadFinished, storage,
- base::Passed(&details)));
+ base::Bind(&BookmarkStorage::OnLoadFinished, storage));
}
} // namespace
@@ -163,11 +162,14 @@
void BookmarkStorage::LoadBookmarks(
scoped_ptr<BookmarkLoadDetails> details,
const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
+ DCHECK(!details_.get());
+ DCHECK(details);
+ details_ = details.Pass();
sequenced_task_runner_->PostTask(FROM_HERE,
base::Bind(&LoadCallback,
writer_.path(),
weak_factory_.GetWeakPtr(),
- base::Passed(&details),
+ details_.get(),
task_runner));
}
@@ -191,11 +193,11 @@
return serializer.Serialize(*(value.get()));
}
-void BookmarkStorage::OnLoadFinished(scoped_ptr<BookmarkLoadDetails> details) {
+void BookmarkStorage::OnLoadFinished() {
if (!model_)
return;
- model_->DoneLoading(details.Pass());
+ model_->DoneLoading(details_.Pass());
}
bool BookmarkStorage::SaveNow() {
« no previous file with comments | « components/bookmarks/browser/bookmark_storage.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698