From 31205a2ddc5d5e5bb9febbe2809bc57cb42dd3aa Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Tue, 3 Oct 2023 20:40:56 +0000 Subject: [PATCH] fpspreadsheet: Size property cannot be changed (public in ancestor). Raise an exception now if new size is <> 0. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8931 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/fpspreadsheet/source/common/fpsstreams.pas | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/components/fpspreadsheet/source/common/fpsstreams.pas b/components/fpspreadsheet/source/common/fpsstreams.pas index d9ab11b10..7e9a103dc 100644 --- a/components/fpspreadsheet/source/common/fpsstreams.pas +++ b/components/fpspreadsheet/source/common/fpsstreams.pas @@ -30,6 +30,7 @@ type function GetPosition: Int64; override; function GetSize: Int64; override; class function IsWritingMode(AMode: Word): Boolean; + procedure SetSize64(const NewValue: Int64); override; public constructor Create(AFileName: String; AMode: Word; ABufSize: Cardinal = Cardinal(-1)); overload; @@ -43,7 +44,6 @@ type function Read(var Buffer; Count: Longint): Longint; override; function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override; function Write(const ABuffer; ACount: Longint): Longint; override; - property Size64: Int64 read GetSize; end; procedure ResetStream(var AStream: TStream); @@ -327,6 +327,14 @@ begin FillBuffer; end; +procedure TBufStream.SetSize64(const NewValue: Int64); +begin + if NewValue = 0 then + Clear + else + raise Exception.Create('Setting the TBufStream.Size is not allowed.'); +end; + procedure TBufStream.Clear; begin FMemoryStream.Clear;