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

Unified Diff: chrome/browser/android/tab_state.cc

Issue 1288183004: jni_generator: Make all object-returning natives return ScopedJavaLocalRef. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add some newlines for readability Created 5 years, 4 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/tab_state.cc
diff --git a/chrome/browser/android/tab_state.cc b/chrome/browser/android/tab_state.cc
index f7266437c365ebfcb3f7ebb13de798b9370ca0a1..11c090fd85436c50f9e14dedd6dd05857a6eb33f 100644
--- a/chrome/browser/android/tab_state.cc
+++ b/chrome/browser/android/tab_state.cc
@@ -442,7 +442,7 @@ WebContents* WebContentsState::RestoreContentsFromByteBuffer(
return web_contents.release();
}
-jobject WebContentsState::RestoreContentsFromByteBuffer(
+ScopedJavaLocalRef<jobject> WebContentsState::RestoreContentsFromByteBuffer(
JNIEnv* env,
jclass clazz,
jobject state,
@@ -457,7 +457,10 @@ jobject WebContentsState::RestoreContentsFromByteBuffer(
saved_state_version,
initially_hidden);
- return web_contents ? web_contents->GetJavaWebContents().Release() : nullptr;
+ if (web_contents)
+ return web_contents->GetJavaWebContents();
+ else
+ return ScopedJavaLocalRef<jobject>();
}
ScopedJavaLocalRef<jobject>
@@ -498,11 +501,12 @@ static void FreeWebContentsStateBuffer(JNIEnv* env, jclass clazz, jobject obj) {
free(data);
}
-static jobject RestoreContentsFromByteBuffer(JNIEnv* env,
- jclass clazz,
- jobject state,
- jint saved_state_version,
- jboolean initially_hidden) {
+static ScopedJavaLocalRef<jobject> RestoreContentsFromByteBuffer(
+ JNIEnv* env,
+ jclass clazz,
+ jobject state,
+ jint saved_state_version,
+ jboolean initially_hidden) {
return WebContentsState::RestoreContentsFromByteBuffer(env,
clazz,
state,
@@ -510,14 +514,14 @@ static jobject RestoreContentsFromByteBuffer(JNIEnv* env,
initially_hidden);
}
-static jobject GetContentsStateAsByteBuffer(
- JNIEnv* env, jclass clazz, jobject jtab) {
+static ScopedJavaLocalRef<jobject> GetContentsStateAsByteBuffer(JNIEnv* env,
+ jclass clazz,
+ jobject jtab) {
TabAndroid* tab_android = TabAndroid::GetNativeTab(env, jtab);
- return WebContentsState::GetContentsStateAsByteBuffer(
- env, tab_android).Release();
+ return WebContentsState::GetContentsStateAsByteBuffer(env, tab_android);
}
-static jobject CreateSingleNavigationStateAsByteBuffer(
+static ScopedJavaLocalRef<jobject> CreateSingleNavigationStateAsByteBuffer(
JNIEnv* env,
jclass clazz,
jstring url,
@@ -525,32 +529,34 @@ static jobject CreateSingleNavigationStateAsByteBuffer(
jint referrer_policy,
jboolean is_off_the_record) {
return WebContentsState::CreateSingleNavigationStateAsByteBuffer(
- env, url, referrer_url, referrer_policy, is_off_the_record).Release();
+ env, url, referrer_url, referrer_policy, is_off_the_record);
}
-static jstring GetDisplayTitleFromByteBuffer(JNIEnv* env,
- jclass clazz,
- jobject state,
- jint saved_state_version) {
+static ScopedJavaLocalRef<jstring> GetDisplayTitleFromByteBuffer(
+ JNIEnv* env,
+ jclass clazz,
+ jobject state,
+ jint saved_state_version) {
void* data = env->GetDirectBufferAddress(state);
int size = env->GetDirectBufferCapacity(state);
ScopedJavaLocalRef<jstring> result =
WebContentsState::GetDisplayTitleFromByteBuffer(
env, data, size, saved_state_version);
- return result.Release();
+ return result;
}
-static jstring GetVirtualUrlFromByteBuffer(JNIEnv* env,
- jclass clazz,
- jobject state,
- jint saved_state_version) {
+static ScopedJavaLocalRef<jstring> GetVirtualUrlFromByteBuffer(
+ JNIEnv* env,
+ jclass clazz,
+ jobject state,
+ jint saved_state_version) {
void* data = env->GetDirectBufferAddress(state);
int size = env->GetDirectBufferCapacity(state);
ScopedJavaLocalRef<jstring> result =
WebContentsState::GetVirtualUrlFromByteBuffer(
env, data, size, saved_state_version);
- return result.Release();
+ return result;
}
// Creates a historical tab entry from the serialized tab contents contained
@@ -559,13 +565,10 @@ static void CreateHistoricalTab(JNIEnv* env,
jclass clazz,
jobject state,
jint saved_state_version) {
- scoped_ptr<WebContents> web_contents(
- WebContents::FromJavaWebContents(
- WebContentsState::RestoreContentsFromByteBuffer(env,
- clazz,
- state,
- saved_state_version,
- true)));
+ scoped_ptr<WebContents> web_contents(WebContents::FromJavaWebContents(
+ WebContentsState::RestoreContentsFromByteBuffer(env, clazz, state,
+ saved_state_version, true)
+ .obj()));
if (web_contents.get())
TabAndroid::CreateHistoricalTabFromContents(web_contents.get());
}

Powered by Google App Engine
This is Rietveld 408576698