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

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

Issue 61873005: Fix a small bug in bookmarks_bridge.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove log Created 7 years, 1 month 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/bookmarks_bridge.cc
diff --git a/chrome/browser/android/bookmarks/bookmarks_bridge.cc b/chrome/browser/android/bookmarks/bookmarks_bridge.cc
index c355b497a1cf6273b1685f19aab782411da27172..9c018802fcf58cdeeec890817d1452a2221fa344 100644
--- a/chrome/browser/android/bookmarks/bookmarks_bridge.cc
+++ b/chrome/browser/android/bookmarks/bookmarks_bridge.cc
@@ -84,9 +84,12 @@ void BookmarksBridge::GetBookmarksForFolder(JNIEnv* env,
jobject j_callback_obj,
jobject j_result_obj) {
DCHECK(bookmark_model_->loaded());
- long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj);
- int type = Java_BookmarkId_getType(env, j_folder_id_obj);
- const BookmarkNode* folder = GetFolderWithFallback(folder_id, type);
+ const BookmarkNode* folder = GetFolderWithFallback(j_folder_id_obj);
+ // Recreate the java bookmarkId object due to fallback.
newt (away) 2013/11/08 01:54:06 An idea: you could modify GetFolderWithFallback()
+ ScopedJavaLocalRef<jobject> folder_id_obj =
+ Java_BookmarksBridge_getBookmarkId(
+ env, folder->id(), GetBookmarkType(folder));
+ j_folder_id_obj = folder_id_obj.obj();
// If this is the Mobile bookmarks folder then add the "Managed bookmarks"
// folder first, so that it's the first entry.
if (folder == bookmark_model_->mobile_node() &&
@@ -111,16 +114,18 @@ void BookmarksBridge::GetCurrentFolderHierarchy(JNIEnv* env,
jobject j_callback_obj,
jobject j_result_obj) {
DCHECK(bookmark_model_->loaded());
- long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj);
- int type = Java_BookmarkId_getType(env, j_folder_id_obj);
- const BookmarkNode* folder = GetFolderWithFallback(folder_id, type);
+ const BookmarkNode* folder = GetFolderWithFallback(j_folder_id_obj);
+ // Recreate the java bookmarkId object due to fallback.
+ ScopedJavaLocalRef<jobject> folder_id_obj =
+ Java_BookmarksBridge_getBookmarkId(
+ env, folder->id(), GetBookmarkType(folder));
+ j_folder_id_obj = folder_id_obj.obj();
// Get the folder heirarchy
const BookmarkNode* node = folder;
while (node) {
ExtractBookmarkNodeInformation(node, j_result_obj);
node = GetParentNode(node);
}
-
Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable(
env, j_callback_obj, j_folder_id_obj, j_result_obj);
}
@@ -131,9 +136,7 @@ void BookmarksBridge::DeleteBookmark(JNIEnv* env,
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(bookmark_model_->loaded());
- long bookmark_id = Java_BookmarkId_getId(env, j_bookmark_id_obj);
- int type = Java_BookmarkId_getType(env, j_bookmark_id_obj);
- const BookmarkNode* node = GetNodeByID(bookmark_id, type);
+ const BookmarkNode* node = GetNodeByID(j_bookmark_id_obj);
if (!IsEditable(node)) {
NOTREACHED();
return;
@@ -188,6 +191,13 @@ const BookmarkNode* BookmarksBridge::GetNodeByID(long node_id,
return node;
}
+const BookmarkNode* BookmarksBridge::GetNodeByID(jobject j_node_id_obj) {
newt (away) 2013/11/08 01:54:06 I'm not sure how much work AttachCurrentThread() i
+ JNIEnv* env = AttachCurrentThread();
+ long node_id = Java_BookmarkId_getId(env, j_node_id_obj);
+ int type = Java_BookmarkId_getType(env, j_node_id_obj);
+ return GetNodeByID(node_id, type);
+}
+
const BookmarkNode* BookmarksBridge::GetFolderWithFallback(
long folder_id, int type) {
const BookmarkNode* folder = GetNodeByID(folder_id, type);
@@ -196,6 +206,15 @@ const BookmarkNode* BookmarksBridge::GetFolderWithFallback(
return folder;
}
+const BookmarkNode* BookmarksBridge::GetFolderWithFallback(
Ted C 2013/11/08 01:28:27 I wouldn't add new methods for this or GetNodeByID
Ramya 2013/11/11 18:34:16 Done.
+ jobject j_folder_id_obj) {
+ JNIEnv* env = AttachCurrentThread();
+ long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj);
+ int type = Java_BookmarkId_getType(env, j_folder_id_obj);
+ const BookmarkNode* folder = GetFolderWithFallback(folder_id, type);
+ return folder;
+}
+
bool BookmarksBridge::IsEditable(const BookmarkNode* node) const {
return node &&
(node->type() == BookmarkNode::FOLDER ||

Powered by Google App Engine
This is Rietveld 408576698