@@ -90,6 +90,7 @@ android_hardware_UsbRequest_queue_array(JNIEnv *env, jobject thiz,
9090 request->buffer = malloc (length);
9191 if (!request->buffer )
9292 return false ;
93+ memset (request->buffer , 0 , length);
9394 if (out) {
9495 // copy data from Java buffer to native buffer
9596 env->GetByteArrayRegion (buffer, 0 , length, (jbyte *)request->buffer );
@@ -113,14 +114,14 @@ android_hardware_UsbRequest_queue_array(JNIEnv *env, jobject thiz,
113114 }
114115}
115116
116- static void
117+ static int
117118android_hardware_UsbRequest_dequeue_array (JNIEnv *env, jobject thiz,
118119 jbyteArray buffer, jint length, jboolean out)
119120{
120121 struct usb_request * request = get_request_from_object (env, thiz);
121122 if (!request) {
122123 ALOGE (" request is closed in native_dequeue" );
123- return ;
124+ return - 1 ;
124125 }
125126
126127 if (buffer && length && request->buffer && !out) {
@@ -129,7 +130,7 @@ android_hardware_UsbRequest_dequeue_array(JNIEnv *env, jobject thiz,
129130 }
130131 free (request->buffer );
131132 env->DeleteGlobalRef ((jobject)request->client_data );
132-
133+ return request-> actual_length ;
133134}
134135
135136static jboolean
@@ -163,16 +164,17 @@ android_hardware_UsbRequest_queue_direct(JNIEnv *env, jobject thiz,
163164 }
164165}
165166
166- static void
167+ static int
167168android_hardware_UsbRequest_dequeue_direct (JNIEnv *env, jobject thiz)
168169{
169170 struct usb_request * request = get_request_from_object (env, thiz);
170171 if (!request) {
171172 ALOGE (" request is closed in native_dequeue" );
172- return ;
173+ return - 1 ;
173174 }
174175 // all we need to do is delete our global ref
175176 env->DeleteGlobalRef ((jobject)request->client_data );
177+ return request->actual_length ;
176178}
177179
178180static jboolean
@@ -191,10 +193,10 @@ static JNINativeMethod method_table[] = {
191193 (void *)android_hardware_UsbRequest_init},
192194 {" native_close" , " ()V" , (void *)android_hardware_UsbRequest_close},
193195 {" native_queue_array" , " ([BIZ)Z" , (void *)android_hardware_UsbRequest_queue_array},
194- {" native_dequeue_array" , " ([BIZ)V " , (void *)android_hardware_UsbRequest_dequeue_array},
196+ {" native_dequeue_array" , " ([BIZ)I " , (void *)android_hardware_UsbRequest_dequeue_array},
195197 {" native_queue_direct" , " (Ljava/nio/ByteBuffer;IZ)Z" ,
196198 (void *)android_hardware_UsbRequest_queue_direct},
197- {" native_dequeue_direct" , " ()V " , (void *)android_hardware_UsbRequest_dequeue_direct},
199+ {" native_dequeue_direct" , " ()I " , (void *)android_hardware_UsbRequest_dequeue_direct},
198200 {" native_cancel" , " ()Z" , (void *)android_hardware_UsbRequest_cancel},
199201};
200202
0 commit comments