mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 20:46:04 +02:00
+ cstring_to_pchar type conversion support
* fixed AnsiCharArrayClass.CreateFromLiteralStringBytes() declaration (no maxlength parameter) git-svn-id: branches/jvmbackend@18760 -
This commit is contained in:
parent
4647aa3f15
commit
dd32efa9ff
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user