Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit 93a6278

Browse files
author
Monte Goulding
committed
changes to parameter handling as discussed
1 parent b29b5bc commit 93a6278

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

lcidlc/src/InterfaceGenerate.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ class JavaStringTypeMapper: public TypeMapper
496496

497497
virtual void Default(CoderRef p_coder, ParameterType p_mode, const char *p_name, ValueRef p_value)
498498
{
499-
CoderWriteStatement(p_coder, "success = java_from__cstring(__java_env, \"%s\", %s) == kLCErrorNone", StringGetCStringPtr(p_value), p_name);
499+
CoderWriteStatement(p_coder, "success = default__java_string(__java_env, \"%s\", %s)", StringGetCStringPtr(p_value), p_name);
500500
}
501501

502502
virtual void Store(CoderRef p_coder, ParameterType p_mode, const char *p_name, const char *p_target)
@@ -1249,17 +1249,11 @@ static bool InterfaceGenerateVariant(InterfaceRef self, CoderRef p_coder, Handle
12491249
}
12501250
else
12511251
CoderWrite(p_coder, "%s(", NameGetCString(t_variant -> binding));
1252+
1253+
for(uint32_t k = 0; k < p_variant -> parameter_count; k++)
1254+
CoderWrite(p_coder, ", %s", t_mapped_params[k] . var_name);
12521255

1253-
for(uint32_t k = 0; k < t_variant -> parameter_count; k++)
1254-
{
1255-
HandlerParameter *t_parameter;
1256-
t_parameter = &t_variant -> parameters[k];
1257-
if (k > 0 || t_variant -> return_type_indirect)
1258-
CoderWrite(p_coder, ", ");
1259-
CoderWrite(p_coder, "%sparam__%s", t_parameter -> mode == kParameterTypeInOut || t_parameter -> mode == kParameterTypeOut ? t_ref_char : "", NameGetCString(t_parameter -> name));
1260-
}
1261-
1262-
CoderWrite(p_coder, ")");
1256+
CoderWrite(p_coder, ")");
12631257

12641258
CoderEndStatement(p_coder);
12651259

lcidlc/src/Support.mm

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2913,6 +2913,7 @@ static jobject java__get_engine(void)
29132913
}
29142914

29152915
//////////
2916+
29162917

29172918
static LCError java_from__cstring(JNIEnv *env, const char* p_value, jobject& r_value)
29182919
{
@@ -2955,7 +2956,13 @@ static LCError java_from__cstring(JNIEnv *env, const char* p_value, jobject& r_v
29552956
return err;
29562957
}
29572958

2958-
2959+
static bool default__java_string(JNIEnv *env, const char *p_value, jobject& r_java_value)
2960+
{
2961+
if (java_from__cstring(env, p_value, r_java_value))
2962+
return true;
2963+
return error__out_of_memory();
2964+
}
2965+
29592966
static bool fetch__java_string(JNIEnv *env, const char *arg, MCVariableRef var, jobject& r_value)
29602967
{
29612968
LCError err;

0 commit comments

Comments
 (0)