#include #include #include #include "../src/mlp_priv.h" #include "mlp_java_priv.h" void *_mlp_java_new_class(mlp_context *ctx, const char *name){ JavaVM *jvm = mlp_context_get_runtime(ctx)->runtime ; JNIEnv *env = mlp_java_get_env(jvm) ; char *pname = strdup(name) ; int i ; for (i = 0 ; i < strlen(pname) ; i++){ if (pname[i] == '.'){ pname[i] = '/' ; } } jclass class_ = (*env)->FindClass(env, pname) ; free(pname) ; if (mlp_java_check_exception(env)){ mlp_java_set_error_from_exception(env, ctx, MLP_NO_SUCH_CLASS, "Can't find class '%s'", name) ; return NULL ; } class_ = (*env)->NewGlobalRef(env, class_) ; return (void *)class_ ; } /* void _mlp_java_detach_class(mlp_context *ctx, const mlp_class *class_){ PerlInterpreter *my_perl = mlp_context_get_runtime(ctx)->runtime ; SvREFCNT_dec((SV *)class_->class) ; } void _mlp_java_delete_class(mlp_context *ctx, void *class_){ PerlInterpreter *my_perl = mlp_context_get_runtime(ctx)->runtime ; SvREFCNT_dec((SV *)class_) ; } */