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

Commit cba7eed

Browse files
committed
[[ ExternalsApiV5 ]] Fixed parameter list generation for indirect return types.
[[ ExternalsApiV5 ]] Fixed revtestexternal lcidl for Android (one method wasn't being declared as Java).
1 parent ef1d9d5 commit cba7eed

File tree

2 files changed

+22
-20
lines changed

2 files changed

+22
-20
lines changed

lcidlc/src/InterfaceGenerate.cpp

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,7 @@ static int64_t InterfaceResolveEnumElement(InterfaceRef self, NameRef p_name, Va
687687
return 0;
688688
}
689689

690+
#if NOT_USED
690691
static void InterfaceGenerateMethodStubContext(InterfaceRef self, CoderRef p_coder, Handler *p_handler, bool p_in)
691692
{
692693
NameRef t_name;
@@ -831,7 +832,6 @@ static void InterfaceGenerateJavaMethodStub(InterfaceRef self, CoderRef p_coder,
831832
CoderWriteLine(p_coder, "}");
832833
}
833834

834-
#ifdef NOT_READY
835835
static void InterfaceGenerateNativeMethodStub(InterfaceRef self, CoderRef p_coder, Handler *p_handler)
836836
{
837837
NameRef t_name;
@@ -918,7 +918,6 @@ static void InterfaceGenerateNativeMethodStub(InterfaceRef self, CoderRef p_code
918918

919919
MCCStringFree(t_native_name);
920920
}
921-
#endif
922921

923922
static void InterfaceGenerateJavaHandlerStubParameters(InterfaceRef self, CoderRef p_coder, Handler *p_handler, HandlerVariant *p_variant)
924923
{
@@ -934,18 +933,6 @@ static void InterfaceGenerateJavaHandlerStubParameters(InterfaceRef self, CoderR
934933
}
935934
}
936935

937-
static char *InterfaceGenerateJavaHandlerStubSignature(InterfaceRef self, Handler *p_handler, HandlerVariant *p_variant)
938-
{
939-
char *t_signature;
940-
t_signature = nil;
941-
MCCStringAppend(t_signature, "(");
942-
for(uindex_t i = 0; i < p_variant -> parameter_count; i++)
943-
MCCStringAppend(t_signature, native_type_to_java_sig(NativeTypeFromName(p_variant -> parameters[i] . type)));
944-
MCCStringAppend(t_signature, ")");
945-
MCCStringAppend(t_signature, p_variant -> return_type != nil ? native_type_to_java_sig(NativeTypeFromName(p_variant -> return_type)) : "V");
946-
return t_signature;
947-
}
948-
949936
static void InterfaceGenerateJavaHandlerStub(InterfaceRef self, CoderRef p_coder, Handler *p_handler, HandlerVariant *p_variant)
950937
{
951938
// Compute the return types for various contexts.
@@ -1027,6 +1014,20 @@ static void InterfaceGenerateJavaHandlerStub(InterfaceRef self, CoderRef p_coder
10271014

10281015
}
10291016

1017+
#endif
1018+
1019+
static char *InterfaceGenerateJavaHandlerStubSignature(InterfaceRef self, Handler *p_handler, HandlerVariant *p_variant)
1020+
{
1021+
char *t_signature;
1022+
t_signature = nil;
1023+
MCCStringAppend(t_signature, "(");
1024+
for(uindex_t i = 0; i < p_variant -> parameter_count; i++)
1025+
MCCStringAppend(t_signature, native_type_to_java_sig(NativeTypeFromName(p_variant -> parameters[i] . type)));
1026+
MCCStringAppend(t_signature, ")");
1027+
MCCStringAppend(t_signature, p_variant -> return_type != nil ? native_type_to_java_sig(NativeTypeFromName(p_variant -> return_type)) : "V");
1028+
return t_signature;
1029+
}
1030+
10301031
////////////////////////////////////////////////////////////////////////////////
10311032

10321033
struct MappedParameter
@@ -1251,7 +1252,11 @@ static void InterfaceGenerateVariant(InterfaceRef self, CoderRef p_coder, Handle
12511252
CoderWrite(p_coder, "%s(", NameGetCString(t_variant -> binding));
12521253

12531254
for(uint32_t k = 0; k < p_variant -> parameter_count; k++)
1254-
CoderWrite(p_coder, ", %s", t_mapped_params[k] . var_name);
1255+
{
1256+
if (k > 0 || t_variant -> return_type_indirect)
1257+
CoderWrite(p_coder, ", ");
1258+
CoderWrite(p_coder, "%s", t_mapped_params[k] . var_name);
1259+
}
12551260

12561261
CoderWrite(p_coder, ")");
12571262

@@ -1297,11 +1302,7 @@ static void InterfaceGenerateVariant(InterfaceRef self, CoderRef p_coder, Handle
12971302
CoderWrite(p_coder, "__java_env -> CallStaticVoidMethod(s_java_class, s_method");
12981303

12991304
for(uint32_t k = 0; k < p_variant -> parameter_count; k++)
1300-
{
1301-
HandlerParameter *t_parameter;
1302-
t_parameter = &p_variant -> parameters[k];
1303-
CoderWrite(p_coder, ", param__%s", NameGetCString(t_parameter -> name));
1304-
}
1305+
CoderWrite(p_coder, ", %s", t_mapped_params[k] . var_name);
13051306

13061307
CoderWrite(p_coder, ")");
13071308
CoderEndStatement(p_coder);

revtestexternal/revtestexternal.lcidl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ command revTestExternalTestWait
3333

3434
command revTestExternalTestArrays
3535

36+
use java on android
3637
command revTestExternalTestPostAndSend
3738

3839
use none on linux, windows, android

0 commit comments

Comments
 (0)