Loading core/java/android/hardware/usb/UsbRequest.java +8 −4 Original line number Diff line number Diff line Loading @@ -150,6 +150,11 @@ public class UsbRequest { */ public boolean queue(ByteBuffer buffer, int length) { boolean out = (mEndpoint.getDirection() == UsbConstants.USB_DIR_OUT); // save our buffer for when the request has completed mBuffer = buffer; mLength = length; boolean result; if (buffer.isDirect()) { result = native_queue_direct(buffer, length, out); Loading @@ -158,10 +163,9 @@ public class UsbRequest { } else { throw new IllegalArgumentException("buffer is not direct and has no array"); } if (result) { // save our buffer for when the request has completed mBuffer = buffer; mLength = length; if (!result) { mBuffer = null; mLength = 0; } return result; } Loading core/jni/android_hardware_UsbRequest.cpp +10 −10 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ android_hardware_UsbRequest_init(JNIEnv *env, jobject thiz, jobject java_device, struct usb_device* device = get_device_from_object(env, java_device); if (!device) { ALOGE("device null in native_init"); return false; return JNI_FALSE; } // construct an endpoint descriptor from the Java object fields Loading Loading @@ -83,13 +83,13 @@ android_hardware_UsbRequest_queue_array(JNIEnv *env, jobject thiz, struct usb_request* request = get_request_from_object(env, thiz); if (!request) { ALOGE("request is closed in native_queue"); return false; return JNI_FALSE; } if (buffer && length) { request->buffer = malloc(length); if (!request->buffer) return false; return JNI_FALSE; memset(request->buffer, 0, length); if (out) { // copy data from Java buffer to native buffer Loading @@ -110,9 +110,9 @@ android_hardware_UsbRequest_queue_array(JNIEnv *env, jobject thiz, request->buffer = NULL; } env->DeleteGlobalRef((jobject)request->client_data); return false; return JNI_FALSE; } return true; return JNI_TRUE; } static jint Loading Loading @@ -141,13 +141,13 @@ android_hardware_UsbRequest_queue_direct(JNIEnv *env, jobject thiz, struct usb_request* request = get_request_from_object(env, thiz); if (!request) { ALOGE("request is closed in native_queue"); return false; return JNI_FALSE; } if (buffer && length) { request->buffer = env->GetDirectBufferAddress(buffer); if (!request->buffer) return false; return JNI_FALSE; } else { request->buffer = NULL; } Loading @@ -161,9 +161,9 @@ android_hardware_UsbRequest_queue_direct(JNIEnv *env, jobject thiz, if (usb_request_queue(request)) { request->buffer = NULL; env->DeleteGlobalRef((jobject)request->client_data); return false; return JNI_FALSE; } return true; return JNI_TRUE; } static jint Loading @@ -185,7 +185,7 @@ android_hardware_UsbRequest_cancel(JNIEnv *env, jobject thiz) struct usb_request* request = get_request_from_object(env, thiz); if (!request) { ALOGE("request is closed in native_cancel"); return false; return JNI_FALSE; } return (usb_request_cancel(request) == 0); } Loading Loading
core/java/android/hardware/usb/UsbRequest.java +8 −4 Original line number Diff line number Diff line Loading @@ -150,6 +150,11 @@ public class UsbRequest { */ public boolean queue(ByteBuffer buffer, int length) { boolean out = (mEndpoint.getDirection() == UsbConstants.USB_DIR_OUT); // save our buffer for when the request has completed mBuffer = buffer; mLength = length; boolean result; if (buffer.isDirect()) { result = native_queue_direct(buffer, length, out); Loading @@ -158,10 +163,9 @@ public class UsbRequest { } else { throw new IllegalArgumentException("buffer is not direct and has no array"); } if (result) { // save our buffer for when the request has completed mBuffer = buffer; mLength = length; if (!result) { mBuffer = null; mLength = 0; } return result; } Loading
core/jni/android_hardware_UsbRequest.cpp +10 −10 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ android_hardware_UsbRequest_init(JNIEnv *env, jobject thiz, jobject java_device, struct usb_device* device = get_device_from_object(env, java_device); if (!device) { ALOGE("device null in native_init"); return false; return JNI_FALSE; } // construct an endpoint descriptor from the Java object fields Loading Loading @@ -83,13 +83,13 @@ android_hardware_UsbRequest_queue_array(JNIEnv *env, jobject thiz, struct usb_request* request = get_request_from_object(env, thiz); if (!request) { ALOGE("request is closed in native_queue"); return false; return JNI_FALSE; } if (buffer && length) { request->buffer = malloc(length); if (!request->buffer) return false; return JNI_FALSE; memset(request->buffer, 0, length); if (out) { // copy data from Java buffer to native buffer Loading @@ -110,9 +110,9 @@ android_hardware_UsbRequest_queue_array(JNIEnv *env, jobject thiz, request->buffer = NULL; } env->DeleteGlobalRef((jobject)request->client_data); return false; return JNI_FALSE; } return true; return JNI_TRUE; } static jint Loading Loading @@ -141,13 +141,13 @@ android_hardware_UsbRequest_queue_direct(JNIEnv *env, jobject thiz, struct usb_request* request = get_request_from_object(env, thiz); if (!request) { ALOGE("request is closed in native_queue"); return false; return JNI_FALSE; } if (buffer && length) { request->buffer = env->GetDirectBufferAddress(buffer); if (!request->buffer) return false; return JNI_FALSE; } else { request->buffer = NULL; } Loading @@ -161,9 +161,9 @@ android_hardware_UsbRequest_queue_direct(JNIEnv *env, jobject thiz, if (usb_request_queue(request)) { request->buffer = NULL; env->DeleteGlobalRef((jobject)request->client_data); return false; return JNI_FALSE; } return true; return JNI_TRUE; } static jint Loading @@ -185,7 +185,7 @@ android_hardware_UsbRequest_cancel(JNIEnv *env, jobject thiz) struct usb_request* request = get_request_from_object(env, thiz); if (!request) { ALOGE("request is closed in native_cancel"); return false; return JNI_FALSE; } return (usb_request_cancel(request) == 0); } Loading