Selaa lähdekoodia

* 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: trunk@33157 -

Jonas Maebe 9 vuotta sitten
vanhempi
commit
599426f2f0
1 muutettua tiedostoa jossa 3 lisäystä ja 6 poistoa
  1. 3 6
      rtl/java/justrings.inc

+ 3 - 6
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;