| Index: components/cronet/android/org_chromium_net_UrlRequest.cc
|
| diff --git a/components/cronet/android/org_chromium_net_UrlRequest.cc b/components/cronet/android/org_chromium_net_UrlRequest.cc
|
| index 746d8b5b53200a1d5c1bd39db1e69ed7cb1fff4f..0f9ea6433bc4508385c6028396d0e00e5cd8b0ee 100644
|
| --- a/components/cronet/android/org_chromium_net_UrlRequest.cc
|
| +++ b/components/cronet/android/org_chromium_net_UrlRequest.cc
|
| @@ -70,9 +70,9 @@ class JniURLRequestPeerDelegate
|
| int bytes_read = request->bytes_read();
|
| if (bytes_read != 0) {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| - jobject bytebuf = env->NewDirectByteBuffer(request->Data(), bytes_read);
|
| - cronet::Java_UrlRequest_onBytesRead(env, owner_, bytebuf);
|
| - env->DeleteLocalRef(bytebuf);
|
| + base::android::ScopedJavaLocalRef<jobject> java_buffer(
|
| + env, env->NewDirectByteBuffer(request->Data(), bytes_read));
|
| + cronet::Java_UrlRequest_onBytesRead(env, owner_, java_buffer.obj());
|
| }
|
| }
|
|
|
| @@ -81,6 +81,16 @@ class JniURLRequestPeerDelegate
|
| cronet::Java_UrlRequest_finish(env, owner_);
|
| }
|
|
|
| + virtual int ReadFromUploadChannel(net::IOBuffer* buf,
|
| + int buf_length) OVERRIDE {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + base::android::ScopedJavaLocalRef<jobject> java_buffer(
|
| + env, env->NewDirectByteBuffer(buf->data(), buf_length));
|
| + jint bytes_read = cronet::Java_UrlRequest_readFromUploadChannel(
|
| + env, owner_, java_buffer.obj());
|
| + return bytes_read;
|
| + }
|
| +
|
| protected:
|
| virtual ~JniURLRequestPeerDelegate() {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| @@ -175,12 +185,11 @@ static void SetUploadChannel(JNIEnv* env,
|
| jobject object,
|
| jlong urlRequestPeer,
|
| jstring content_type,
|
| - jobject content,
|
| jlong content_length) {
|
| URLRequestPeer* request = reinterpret_cast<URLRequestPeer*>(urlRequestPeer);
|
| SetPostContentType(env, request, content_type);
|
|
|
| - request->SetUploadChannel(env, content, content_length);
|
| + request->SetUploadChannel(env, content_length);
|
| }
|
|
|
|
|
|
|