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

Loading…
Cancel
Save