Listing 2
JNIEXPORT jboolean JNICALL Java_jni_eperl_PerlInterpreter_eval
(JNIEnv *env, jobject object, jint interpreterId,
jstring statementBlock, jint blockSize)
{
assert(env != NULL);
assert(object != NULL);
assert(statementBlock != NULL);
try {
if (statementBlock == NULL || blockSize == 0) {
throw CInterpreterException(
"Null or empty Perl statement block reference passed in",
__FILE__, __LINE__, "Java_jni_eperl_PerlInterpreter_eval()");
}
string statement = CopyJString(env, statementBlock, blockSize);
GetPerlInterpreter(interpreterId)->Eval(statement);
} catch(CInterpreterException& perlException) {
ThrowInterpreterException(env, perlException, g_debugOn);
return JNI_FALSE;
}
return JNI_TRUE;
}