Browse Source

handling empty return values

JNI-44
Volker Birk 10 years ago
parent
commit
aa35dc10a7
  1. 44
      src/gen_cpp_Engine.ysl2

44
src/gen_cpp_Engine.ysl2

@ -99,8 +99,16 @@ tstylesheet {
const "name", "name(*[3])";
||
jfieldID «$name»_field = getFieldID(env, "«$jtype»",
"«$name»", "«$sig»");
env->SetObjectField(result_, «$name»_field, «$name»_);
"«$name»", "«$sig»");
if («$name»_)
env->SetObjectField(result_, «$name»_field, «$name»_);
||
if "$name = 'dst'"
||
else
env->SetObjectField(result_, «$name»_field, src);
||
||
||
}
@ -126,20 +134,32 @@ tstylesheet {
choose {
when "$jnitype = 'jbyteArray'"
||
jobject «$name»_ = from_stringlist(env, _«$retname»);
jobject «$name»_ = NULL;
if (_«$retname»)
«$name»_ = from_stringlist(env, _«$retname»);
||
otherwise {
||
jclass clazz_«$name»_ = findClass(env, "org/pEp/jniadapter/«$jtype»");
jmethodID constructor_«$name»_ = env->GetMethodID(clazz_«$name»_, "<init>", "«$sig»");
assert(constructor_«$name»_);
||
indent(0);
> jobject «$name»_ = env->NewObject(clazz_«$name»_, constructor_«$name»_
if "$jnitype != ''" > , («$jnitype») _«$retname»
> );\n\n
| jobject «$name»_ = NULL;
indent(0);
if "$retname != 'result'" > if (_«$retname»)
> {\n
||
jclass clazz_«$name»_ = findClass(env, "org/pEp/jniadapter/«$jtype»");
jmethodID constructor_«$name»_ = env->GetMethodID(clazz_«$name»_, "<init>", "«$sig»");
assert(constructor_«$name»_);
||
indent(1);
> «$name»_ = env->NewObject(clazz_«$name»_, constructor_«$name»_
if "$jnitype != ''" > , («$jnitype») _«$retname»
> );\n
||
}
||
}
}
}

Loading…
Cancel
Save