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

Unified Diff: chrome/browser/android/bookmarks/partner_bookmarks_reader.cc

Issue 2379863002: Fix object ownership in ui/base/models. (Closed)
Patch Set: fix Created 4 years, 3 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
Index: chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
diff --git a/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc b/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
index c0b724b6ea9237251d9de21b4596afff12ce4d12..b4509e31448bd39a196f8241b80475e8314629b9 100644
--- a/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
+++ b/chrome/browser/android/bookmarks/partner_bookmarks_reader.cc
@@ -7,6 +7,7 @@
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "base/logging.h"
+#include "base/memory/ptr_util.h"
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/favicon/favicon_service_factory.h"
@@ -121,7 +122,7 @@ void PartnerBookmarksReader::PartnerBookmarksCreationComplete(
const JavaParamRef<jobject>&) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
partner_bookmarks_shim_->SetPartnerBookmarksRoot(
- wip_partner_bookmarks_root_.release());
+ std::move(wip_partner_bookmarks_root_));
wip_next_available_id_ = 0;
}
@@ -153,22 +154,23 @@ jlong PartnerBookmarksReader::AddPartnerBookmark(
if (jtitle)
title = ConvertJavaStringToUTF16(env, jtitle);
- BookmarkNode* node = NULL;
+ jlong node_id = 0;
if (wip_partner_bookmarks_root_.get()) {
- node = new BookmarkNode(wip_next_available_id_++, GURL(url));
+ std::unique_ptr<BookmarkNode> node =
+ base::MakeUnique<BookmarkNode>(wip_next_available_id_++, GURL(url));
node->set_type(is_folder ? BookmarkNode::FOLDER : BookmarkNode::URL);
node->SetTitle(title);
// Handle favicon and touchicon
- if (profile_ != NULL && (favicon != NULL || touchicon != NULL)) {
- jbyteArray icon = (touchicon != NULL) ? touchicon : favicon;
+ if (profile_ != nullptr && (favicon != nullptr || touchicon != nullptr)) {
+ jbyteArray icon = (touchicon != nullptr) ? touchicon : favicon;
const favicon_base::IconType icon_type =
touchicon ? favicon_base::TOUCH_ICON : favicon_base::FAVICON;
const int icon_len = env->GetArrayLength(icon);
- jbyte* icon_bytes = env->GetByteArrayElements(icon, NULL);
+ jbyte* icon_bytes = env->GetByteArrayElements(icon, nullptr);
if (icon_bytes)
- PrepareAndSetFavicon(env, icon_bytes, icon_len,
- node, profile_, icon_type);
+ PrepareAndSetFavicon(env, icon_bytes, icon_len, node.get(), profile_,
+ icon_type);
env->ReleaseByteArrayElements(icon, icon_bytes, JNI_ABORT);
}
@@ -179,13 +181,17 @@ jlong PartnerBookmarksReader::AddPartnerBookmark(
<< parent_id << ": adding to the root";
parent = wip_partner_bookmarks_root_.get();
}
- const_cast<BookmarkNode*>(parent)->Add(node, parent->child_count());
+ node_id = node->id();
+ const_cast<BookmarkNode*>(parent)->Add(std::move(node),
+ parent->child_count());
} else {
- node = new BookmarkPermanentNode(wip_next_available_id_++);
+ std::unique_ptr<BookmarkPermanentNode> node =
+ base::MakeUnique<BookmarkPermanentNode>(wip_next_available_id_++);
+ node_id = node->id();
node->SetTitle(title);
- wip_partner_bookmarks_root_.reset(node);
+ wip_partner_bookmarks_root_ = std::move(node);
}
- return node->id();
+ return node_id;
}
// static
« no previous file with comments | « chrome/browser/android/bookmarks/bookmark_bridge.cc ('k') | chrome/browser/android/bookmarks/partner_bookmarks_shim.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698