+ cstring_to_pchar type conversion support

* fixed AnsiCharArrayClass.CreateFromLiteralStringBytes() declaration
    (no maxlength parameter)

git-svn-id: branches/jvmbackend@18760 -
This commit is contained in:
Jonas Maebe 2011-08-20 08:33:35 +00:00
parent 4647aa3f15
commit dd32efa9ff
3 changed files with 15 additions and 4 deletions

View File

@ -42,7 +42,7 @@ interface
procedure second_int_to_int;override;
{ procedure second_string_to_string;override; }
{ procedure second_cstring_to_pchar;override; }
procedure second_cstring_to_pchar;override;
{ procedure second_string_to_chararray;override; }
{ procedure second_array_to_pointer;override; }
function first_int_to_real: tnode; override;
@ -514,6 +514,17 @@ implementation
end;
procedure tjvmtypeconvnode.second_cstring_to_pchar;
begin
{ don't use is_chararray because it doesn't support special arrays }
if (left.resultdef.typ<>arraydef) or
(tarraydef(left.resultdef).elementdef.typ<>orddef) or
(torddef(tarraydef(left.resultdef).elementdef).ordtype<>uchar) then
internalerror(2011081304);
location_copy(location,left.location);
end;
procedure tjvmtypeconvnode.second_int_to_real;
var
srcsize, ressize: longint;

View File

@ -47,7 +47,7 @@ type
end;
AnsiCharArrayClass = class sealed (JLObject)
class function CreateFromLiteralStringBytes(const u: unicodestring; maxlen: byte): TAnsiCharArray; static;
class function CreateFromLiteralStringBytes(const u: unicodestring): TAnsiCharArray; static;
end;
//Function Pos (Const Substr : Ansistring; Const Source : Ansistring) : SizeInt;

View File

@ -184,12 +184,12 @@ begin
end;
class function AnsiCharArrayClass.CreateFromLiteralStringBytes(const u: unicodestring; maxlen: byte): TAnsiCharArray;
class function AnsiCharArrayClass.CreateFromLiteralStringBytes(const u: unicodestring): TAnsiCharArray;
var
i: longint;
begin
{ used to construct constant chararrays from Java string constants }
setlength(result,maxlen);
setlength(result,length(u));
for i:=1 to system.length(u) do
result[i-1]:=ansichar(ord(u[i]));
end;