Fixed wrong size in interface descriptor.

Splitted function calls for easier debugging.
This commit is contained in:
Klaus Reimer 2011-02-08 22:20:01 +01:00 committed by k
parent d2877ad4e9
commit a61e0be5eb
2 changed files with 11 additions and 5 deletions

View File

@ -63,8 +63,11 @@ jobjectArray wrap_usb_endpoint_descriptors(JNIEnv *env, uint8_t num_descriptors,
num_descriptors, (*env)->FindClass(env,
PACKAGE_DIR"/USB_Endpoint_Descriptor"), NULL);
for (i = 0; i < num_descriptors; i++)
(*env)->SetObjectArrayElement(env, array, i,
wrap_usb_endpoint_descriptor(env, &descriptors[i]));
{
struct usb_endpoint_descriptor *descriptor = &descriptors[0];
(*env)->SetObjectArrayElement(env, array, i,
wrap_usb_endpoint_descriptor(env, descriptor));
}
return array;
}

View File

@ -39,7 +39,7 @@ jobject wrap_usb_interface_descriptor(JNIEnv *env,
"(Ljava/nio/ByteBuffer;)V");
if (constructor == NULL) return NULL;
jobject buffer = (*env)->NewDirectByteBuffer(env, descriptor,
sizeof(struct usb_endpoint_descriptor));
sizeof(struct usb_interface_descriptor));
return (*env)->NewObject(env, cls, constructor, buffer);
}
@ -65,8 +65,11 @@ jobjectArray wrap_usb_interface_descriptors(JNIEnv *env, uint8_t num_descriptors
num_descriptors, (*env)->FindClass(env,
PACKAGE_DIR"/USB_Interface_Descriptor"), NULL);
for (i = 0; i < num_descriptors; i++)
(*env)->SetObjectArrayElement(env, array, i,
wrap_usb_interface_descriptor(env, &descriptors[i]));
{
struct usb_interface_descriptor *descriptor = &descriptors[i];
(*env)->SetObjectArrayElement(env, array, i,
wrap_usb_interface_descriptor(env, descriptor));
}
return array;
}