summaryrefslogtreecommitdiff
path: root/rtl/objpas/classes
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-07 10:15:13 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-07 10:15:13 +0000
commit9a1d896fd92f5b3f0a8144abc71f2f029515ea0d (patch)
treefd9d9f410beb1f7c93f5031da3146018723a9b44 /rtl/objpas/classes
parent46392508bfaada83f2fbed0081a9abfb74f3732b (diff)
downloadfpc-9a1d896fd92f5b3f0a8144abc71f2f029515ea0d.tar.gz
* Fix bug where position is not advanced when calling ReadAnsiString/ReadString
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47061 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/objpas/classes')
-rw-r--r--rtl/objpas/classes/classesh.inc8
-rw-r--r--rtl/objpas/classes/streams.inc2
2 files changed, 6 insertions, 4 deletions
diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc
index 785766ac67..6d9c45d55a 100644
--- a/rtl/objpas/classes/classesh.inc
+++ b/rtl/objpas/classes/classesh.inc
@@ -1124,7 +1124,7 @@ type
procedure WriteWord(w : Word);
procedure WriteDWord(d : Cardinal);
procedure WriteQWord(q : QWord);
- Procedure WriteAnsiString (const S : String);
+ Procedure WriteAnsiString (const S : String); virtual;
property Position: Int64 read GetPosition write SetPosition;
property Size: Int64 read GetSize write SetSize64;
end;
@@ -1260,9 +1260,9 @@ type
Destructor Destroy; override;
function ReadUnicodeString(Count: Longint): UnicodeString;
procedure WriteUnicodeString(const AString: UnicodeString);
- function ReadAnsiString(Count: Longint): AnsiString;
- procedure WriteAnsiString(const AString: AnsiString);
- function ReadString(Count: Longint): string;
+ function ReadAnsiString(Count: Longint): AnsiString; overload;
+ procedure WriteAnsiString(const AString: AnsiString); override;
+ function ReadString(Count: Longint): string;
procedure WriteString(const AString: string);
property DataString: string read GetDataString;
Property UnicodeDataString : UnicodeString Read GetUnicodeDataString;
diff --git a/rtl/objpas/classes/streams.inc b/rtl/objpas/classes/streams.inc
index 29b65a0914..cd7419254c 100644
--- a/rtl/objpas/classes/streams.inc
+++ b/rtl/objpas/classes/streams.inc
@@ -1655,6 +1655,7 @@ begin
NewLen:=Size-FPosition;
If NewLen>Count then NewLen:=Count;
Result:=FEncoding.GetAnsiString(FBytes,FPosition,NewLen);
+ Inc(FPosition,NewLen);
end;
procedure TStringStream.WriteAnsiString(const AString: AnsiString);
@@ -1704,6 +1705,7 @@ begin
begin
SetLength(Result, NewLen);
Move(FBytes[FPosition],Result[1],NewLen);
+ inc(FPosition,Newlen);
end;
end;