From d99f9138367dc318967a68410b3c6196ce928e1d Mon Sep 17 00:00:00 2001 From: yury Date: Thu, 11 Aug 2016 12:41:13 +0000 Subject: [PATCH] * pas2jni: Fixed string constant handling after recent changes in FPC. git-svn-id: trunk@34275 - --- utils/pas2jni/writer.pas | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/utils/pas2jni/writer.pas b/utils/pas2jni/writer.pas index c7e4993390..8d024a3866 100644 --- a/utils/pas2jni/writer.pas +++ b/utils/pas2jni/writer.pas @@ -1170,19 +1170,30 @@ begin s:='double'; end else begin - s:=DefToJavaType(d.VarType); - if d.VarType.DefType = dtType then - case TTypeDef(d.VarType).BasicType of - btLongWord, btInt64: - v:=v + 'L'; - btBoolean: - if v = '1' then - v:='true' - else - v:='false'; - end; + s:=''; + case d.VarType.DefType of + dtType: + case TTypeDef(d.VarType).BasicType of + btLongWord, btInt64: + v:=v + 'L'; + btBoolean: + if v = '1' then + v:='true' + else + v:='false'; + end; + dtArray: + with TArrayDef(d.VarType) do + if (ElType.DefType = dtType) and (TTypeDef(ElType).BasicType in [btChar, btWideChar]) then + s:='String'; + end; + if s = '' then + s:=DefToJavaType(d.VarType); end; - Fjs.WriteLn(Format('public static final %s %s = %s;', [s, d.Name, v])); + v:=Format('public static final %s %s = %s;', [s, d.Name, v]); + if s = SUnsupportedType then + v:='// ' + v; + Fjs.WriteLn(v); end; procedure TWriter.WriteEnum(d: TDef);