| 44 | #define RJB_FIND_CLASS(var, name) \ |
| 45 | var = (*jenv)->FindClass(jenv, name); \ |
| 46 | rjb_check_exception(jenv, 1) |
| 47 | #define RJB_HOLD_CLASS(var, name) \ |
| 48 | var = (*jenv)->FindClass(jenv, name); \ |
| 49 | rjb_check_exception(jenv, 1); \ |
| 50 | var = (*jenv)->NewGlobalRef(jenv, var) |
| 51 | #define RJB_LOAD_METHOD(var, obj, name, sig) \ |
| 52 | var = (*jenv)->GetMethodID(jenv, obj, name, sig); \ |
| 53 | rjb_check_exception(jenv, 1) |
| 54 | #define RJB_LOAD_STATIC_METHOD(var, obj, name, sig) \ |
| 55 | var = (*jenv)->GetStaticMethodID(jenv, obj, name, sig); \ |
| 56 | rjb_check_exception(jenv, 1) |
| 57 | |
| 1676 | | jconstructor = (*jenv)->FindClass(jenv, "java/lang/reflect/Constructor"); |
| 1677 | | rjb_check_exception(jenv, 1); |
| 1678 | | ctrGetParameterTypes = (*jenv)->GetMethodID(jenv, jconstructor, "getParameterTypes", "()[Ljava/lang/Class;"); |
| 1679 | | rjb_check_exception(jenv, 1); |
| 1680 | | jmethod = (*jenv)->FindClass(jenv, "java/lang/reflect/Method"); |
| 1681 | | method_getModifiers = (*jenv)->GetMethodID(jenv, jmethod, "getModifiers", "()I"); |
| 1682 | | rjb_check_exception(jenv, 1); |
| 1683 | | method_getName = (*jenv)->GetMethodID(jenv, jmethod, "getName", "()Ljava/lang/String;"); |
| 1684 | | rjb_check_exception(jenv, 1); |
| 1685 | | getParameterTypes = (*jenv)->GetMethodID(jenv, jmethod, "getParameterTypes", "()[Ljava/lang/Class;"); |
| 1686 | | rjb_check_exception(jenv, 1); |
| 1687 | | getReturnType = (*jenv)->GetMethodID(jenv, jmethod, "getReturnType", "()Ljava/lang/Class;"); |
| 1688 | | rjb_check_exception(jenv, 1); |
| 1690 | RJB_FIND_CLASS(jconstructor, "java/lang/reflect/Constructor"); |
| 1691 | RJB_LOAD_METHOD(ctrGetParameterTypes, jconstructor, "getParameterTypes", "()[Ljava/lang/Class;"); |
| 1692 | RJB_FIND_CLASS(jmethod, "java/lang/reflect/Method"); |
| 1693 | RJB_LOAD_METHOD(method_getModifiers, jmethod, "getModifiers", "()I"); |
| 1694 | RJB_LOAD_METHOD(method_getName, jmethod, "getName", "()Ljava/lang/String;"); |
| 1695 | RJB_LOAD_METHOD(getParameterTypes, jmethod, "getParameterTypes", "()[Ljava/lang/Class;"); |
| 1696 | RJB_LOAD_METHOD(getReturnType, jmethod, "getReturnType", "()Ljava/lang/Class;"); |
| 1697 | |
| 1698 | RJB_FIND_CLASS(jfield, "java/lang/reflect/Field"); |
| 1699 | RJB_LOAD_METHOD(field_getModifiers, jfield, "getModifiers", "()I"); |
| 1700 | RJB_LOAD_METHOD(field_getName, jfield, "getName", "()Ljava/lang/String;"); |
| 1701 | RJB_LOAD_METHOD(field_getType, jfield, "getType", "()Ljava/lang/Class;"); |
| 1702 | |
| 1703 | RJB_HOLD_CLASS(j_class, "java/lang/Class"); |
| 1704 | RJB_LOAD_METHOD(rjb_class_getName, j_class, "getName", "()Ljava/lang/String;"); |
| 1690 | | jfield = (*jenv)->FindClass(jenv, "java/lang/reflect/Field"); |
| 1691 | | field_getModifiers = (*jenv)->GetMethodID(jenv, jfield, "getModifiers", "()I"); |
| 1692 | | rjb_check_exception(jenv, 1); |
| 1693 | | field_getName = (*jenv)->GetMethodID(jenv, jfield, "getName", "()Ljava/lang/String;"); |
| 1694 | | rjb_check_exception(jenv, 1); |
| 1695 | | field_getType = (*jenv)->GetMethodID(jenv, jfield, "getType", "()Ljava/lang/Class;"); |
| 1696 | | rjb_check_exception(jenv, 1); |
| 1706 | RJB_HOLD_CLASS(rjb_j_throwable, "java/lang/Throwable"); |
| 1707 | RJB_LOAD_METHOD(rjb_throwable_getMessage, rjb_j_throwable, "getMessage", "()Ljava/lang/String;"); |
| 1698 | | j_class = (*jenv)->FindClass(jenv, "java/lang/Class"); |
| 1699 | | rjb_check_exception(jenv, 1); |
| 1700 | | rjb_class_getName = (*jenv)->GetMethodID(jenv, j_class, "getName", "()Ljava/lang/String;"); |
| 1701 | | rjb_check_exception(jenv, 1); |
| 1702 | | j_class = (*jenv)->NewGlobalRef(jenv, j_class); |
| 1709 | RJB_HOLD_CLASS(j_string, "java/lang/String"); |
| 1710 | RJB_LOAD_METHOD(str_tostring, j_string, "toString", "()Ljava/lang/String;"); |
| 1704 | | rjb_j_throwable = (*jenv)->FindClass(jenv, "java/lang/Throwable"); |
| 1705 | | rjb_check_exception(jenv, 1); |
| 1706 | | rjb_throwable_getMessage = (*jenv)->GetMethodID(jenv, rjb_j_throwable, "getMessage", "()Ljava/lang/String;"); |
| 1707 | | rjb_check_exception(jenv, 1); |
| 1708 | | |
| 1709 | | j_string = (*jenv)->FindClass(jenv, "java/lang/String"); |
| 1710 | | rjb_check_exception(jenv, 1); |
| 1711 | | str_tostring = (*jenv)->GetMethodID(jenv, j_string, "toString", "()Ljava/lang/String;"); |
| 1712 | | rjb_check_exception(jenv, 1); |
| 1713 | | j_string = (*jenv)->NewGlobalRef(jenv, j_string); |
| 1714 | | |
| 1715 | | j_object = (*jenv)->FindClass(jenv, "java/lang/Object"); |
| 1716 | | rjb_check_exception(jenv, 1); |
| 1717 | | j_object = (*jenv)->NewGlobalRef(jenv, j_object); |
| 1712 | RJB_HOLD_CLASS(j_object, "java/lang/Object"); |