27 while (*where !=
NULL) {
28 where = &((*where)->next);
35 while (*where !=
NULL) {
36 where = &((*where)->next);
42 jobject obj = (*env)->NewObjectV(env, ptr->
jclass, ptr->
jinit, ap);
43 if ((*env)->ExceptionCheck(env)) {
44 (*env)->ExceptionDescribe(env);
56 for (cwlk = class_head; cwlk !=
NULL; cwlk = cwlk->
next) {
60 cls = (*env)->FindClass(env, cwlk->
fqcn);
61 if ((*env)->ExceptionCheck(env)) {
62 (*env)->ExceptionDescribe(env);
67 method = (*env)->GetMethodID(env, cls,
"<init>", cwlk->
init_sig);
68 if ((*env)->ExceptionCheck(env)) {
69 (*env)->ExceptionDescribe(env);
74 cwlk->
jclass = (*env)->NewGlobalRef(env, cls);
82 for (fwlk = field_head; fwlk !=
NULL; fwlk = fwlk->
next) {
84 if ((*env)->ExceptionCheck(env)) {
85 (*env)->ExceptionDescribe(env);
98 for (fwlk = field_head; fwlk !=
NULL; fwlk = fwlk->
next) {
102 for (cwlk = class_head; cwlk !=
NULL; cwlk = cwlk->
next) {
104 (*env)->DeleteGlobalRef(env, cwlk->
jclass);
jobject vppjni_new_object(JNIEnv *env, const vppjni_class_t *ptr, va_list ap)
int vppjni_init(JNIEnv *env)
static vppjni_class_t * class_head
const vppjni_class_t * clsref
void vppjni_uninit(JNIEnv *env)
void vppjni_register_field(vppjni_field_t *ptr)
void vppjni_register_class(vppjni_class_t *ptr)
struct vppjni_class * next
static vppjni_field_t * field_head