bytebuffer.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "bytebuffer.h"
  2. static void
  3. test_buffer (JNIEnv *env, jobject buffer, const char *name)
  4. {
  5. void *tmp = (*env)->GetDirectBufferAddress (env, buffer);
  6. if (tmp == NULL)
  7. printf ("PASS: address of %s\n", name);
  8. else
  9. printf ("FAIL: address of %s\n", name);
  10. int tmplen = (*env)->GetDirectBufferCapacity (env, buffer);
  11. if (tmplen == -1)
  12. printf ("PASS: length of %s\n", name);
  13. else
  14. printf ("FAIL: length of %s\n", name);
  15. }
  16. JNIEXPORT void JNICALL
  17. Java_bytebuffer_testByteBuffer (JNIEnv *env, jclass k, jobject buffer)
  18. {
  19. test_buffer (env, buffer, "java.nio.ByteBuffer");
  20. }
  21. JNIEXPORT void JNICALL
  22. Java_bytebuffer_testCharBuffer (JNIEnv *env, jclass k, jobject buffer)
  23. {
  24. test_buffer (env, buffer, "java.nio.CharBuffer");
  25. }
  26. JNIEXPORT void JNICALL
  27. Java_bytebuffer_testDoubleBuffer (JNIEnv *env, jclass k, jobject buffer)
  28. {
  29. test_buffer (env, buffer, "java.nio.DoubleBuffer");
  30. }
  31. JNIEXPORT void JNICALL
  32. Java_bytebuffer_testFloatBuffer (JNIEnv *env, jclass k, jobject buffer)
  33. {
  34. test_buffer (env, buffer, "java.nio.FloatBuffer");
  35. }
  36. JNIEXPORT void JNICALL
  37. Java_bytebuffer_testIntBuffer (JNIEnv *env, jclass k, jobject buffer)
  38. {
  39. test_buffer (env, buffer, "java.nio.IntBuffer");
  40. }
  41. JNIEXPORT void JNICALL
  42. Java_bytebuffer_testLongBuffer (JNIEnv *env, jclass k, jobject buffer)
  43. {
  44. test_buffer (env, buffer, "java.nio.LongBuffer");
  45. }
  46. JNIEXPORT void JNICALL
  47. Java_bytebuffer_testShortBuffer (JNIEnv *env, jclass k, jobject buffer)
  48. {
  49. test_buffer (env, buffer, "java.nio.ShortBuffer");
  50. }