diff options
| author | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-07 10:15:13 +0000 |
|---|---|---|
| committer | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-07 10:15:13 +0000 |
| commit | 9a1d896fd92f5b3f0a8144abc71f2f029515ea0d (patch) | |
| tree | fd9d9f410beb1f7c93f5031da3146018723a9b44 /rtl/objpas/classes | |
| parent | 46392508bfaada83f2fbed0081a9abfb74f3732b (diff) | |
| download | fpc-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.inc | 8 | ||||
| -rw-r--r-- | rtl/objpas/classes/streams.inc | 2 |
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; |
