TEncoding: fix base convert functions for empty inputs

git-svn-id: trunk@46430 -
This commit is contained in:
ondrej 2020-08-14 14:59:05 +00:00
parent 56613723b9
commit 38c7659d07

View File

@ -38,6 +38,9 @@ end;
function TEncoding.GetAnsiBytes(const S: string): TBytes;
begin
if S='' then
Result := nil
else
Result := GetAnsiBytes(S, 1, Length(S));
end;
@ -49,6 +52,9 @@ end;
function TEncoding.GetAnsiString(const Bytes: TBytes): string;
begin
if Length(Bytes)=0 then
Result := ''
else
Result := GetAnsiString(Bytes, 0, Length(Bytes));
end;
@ -294,6 +300,9 @@ end;
function TEncoding.GetByteCount(const Chars: TUnicodeCharArray): Integer;
begin
if Length(Chars)=0 then
Result := 0
else
Result := GetByteCount(Chars, 0, Length(Chars));
end;
@ -309,6 +318,9 @@ end;
function TEncoding.GetByteCount(const S: UnicodeString): Integer;
begin
if S='' then
Result := 0
else
Result := GetByteCount(PUnicodeChar(S), Length(S));
end;
@ -324,6 +336,7 @@ end;
function TEncoding.GetBytes(const Chars: TUnicodeCharArray): TBytes;
begin
SetLength(Result, GetByteCount(Chars));
if Length(Result)>0 then
GetBytes(@Chars[0], Length(Chars), @Result[0], Length(Result));
end;
@ -358,6 +371,7 @@ end;
function TEncoding.GetBytes(const S: UnicodeString): TBytes;
begin
SetLength(Result, GetByteCount(S));
if Length(Result)>0 then
GetBytes(@S[1], Length(S), @Result[0], Length(Result));
end;
@ -380,6 +394,9 @@ end;
function TEncoding.GetCharCount(const Bytes: TBytes): Integer;
begin
if Length(Bytes)=0 then
Result := 0
else
Result := GetCharCount(@Bytes[0], Length(Bytes));
end;
@ -394,6 +411,7 @@ end;
function TEncoding.GetChars(const Bytes: TBytes): TUnicodeCharArray;
begin
SetLength(Result, GetCharCount(Bytes));
if Length(Result)>0 then
GetChars(@Bytes[0], Length(Bytes), @Result[0], Length(Result));
end;
@ -444,8 +462,13 @@ function TEncoding.GetString(const Bytes: TBytes): UnicodeString;
var
Chars: TUnicodeCharArray;
begin
if Length(Bytes)=0 then
Result := ''
else
begin
Chars := GetChars(Bytes);
SetString(Result, PUnicodeChar(Chars), Length(Chars));
end;
end;
function TEncoding.GetString(const Bytes: TBytes; ByteIndex, ByteCount: Integer): UnicodeString;