Pedro Pedro - 1 year ago 416
C++ Question

JNI: converting unsigned int to jint

How do I convert an unsigned int to jint? Do I have to convert it at all, or can I just return it without any special treatment? This is basically my code right now, but I can't test it, as I haven't setup JNI locally.

Java_test_test(JNIEnv* env, jobject obj, jlong ptr)
MyObject* m = (MyObject*) ptr;
unsigned int i = m->get();
return i;

Answer Source

In the general case, jint is equivalent to int, and so can hold about half the values of unsigned int. Conversion will work silently, but if a jint value is negative or if an unsigned int value is larger than the maximum value a jint can hold, the result will not be what you are expecting.