summaryrefslogtreecommitdiff
path: root/rtl/java
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-03-05 15:32:15 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-03-05 15:32:15 +0000
commit2d52fca3243fbf034fe1d8fe466fc8a2e46d150d (patch)
tree83524ad6ed89666b0f53ec9afb92deb08ed30901 /rtl/java
parenteb08d5ff4742776ad33065549ba1d043e4406564 (diff)
downloadfpc-2d52fca3243fbf034fe1d8fe466fc8a2e46d150d.tar.gz
* fixed UTF8Decode for JVM:
o pass length of result array as maximum length instead of that of an empty string o the returned length of Utf8ToUnicode() includes a terminating #0 char, subtract that again when creating a new unicode string with the characters git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@33157 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/java')
-rw-r--r--rtl/java/justrings.inc9
1 files changed, 3 insertions, 6 deletions
diff --git a/rtl/java/justrings.inc b/rtl/java/justrings.inc
index e3f3ff1c4a..bc40e03e54 100644
--- a/rtl/java/justrings.inc
+++ b/rtl/java/justrings.inc
@@ -794,18 +794,15 @@ function UTF8Encode(const s : UnicodeString) : RawByteString;
function UTF8Decode(const s : RawByteString): UnicodeString;
var
i : SizeInt;
- hs : UnicodeString;
chars: array of widechar;
begin
result:='';
if s='' then
exit;
- SetLength(chars,length(s));
- i:=Utf8ToUnicode(pwidechar(chars),length(hs)+1,pchar(s),length(s));
+ SetLength(chars,length(s)+1);
+ i:=Utf8ToUnicode(pwidechar(chars),length(s)+1,pchar(s),length(s));
if i>0 then
- begin
- result:=JLString.Create(chars,0,i);
- end;
+ result:=JLString.Create(chars,0,i-1);
end;