From 1c767462072164e1ac2e73c36d3ab81b4f366f72 Mon Sep 17 00:00:00 2001 From: Martok Date: Tue, 18 Nov 2014 07:06:24 +0100 Subject: [PATCH] utlStreamHelper: FIFOStream.Clear added --- uutlStreamHelper.pas | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/uutlStreamHelper.pas b/uutlStreamHelper.pas index 88034ca..e8c63b7 100644 --- a/uutlStreamHelper.pas +++ b/uutlStreamHelper.pas @@ -120,6 +120,7 @@ type function Seek(const {%H-}Offset: Int64; {%H-}Origin: TSeekOrigin): Int64; override; overload; procedure BeginOperation; procedure EndOperation; + procedure Clear; property LockFree: boolean read fLockFree; end; @@ -479,23 +480,9 @@ begin end; destructor TutlFIFOStream.Destroy; -var - p,q: PPage; begin - BeginOperation; - try - fTotalSize:= 0; - fReadPtr:= 0; - fWritePtr:= 0; - p:= fPageFirst; - while p<>nil do begin - q:= p; - p:= p^.Next; - Dispose(q); - end; - finally - EndOperation; - end; + Clear; + Dispose(fPageFirst); FreeAndNil(fDataLock); inherited Destroy; end; @@ -627,6 +614,25 @@ begin fDataLock.Release; end; +procedure TutlFIFOStream.Clear; +var + p: PPage; +begin + BeginOperation; + try + while fPageFirst<>fPageLast do begin + p:= fPageFirst; + fPageFirst:= fPageFirst^.Next; + Dispose(p); + end; + fTotalSize:= 0; + fReadPtr:= 0; + fWritePtr:= 0; + finally + EndOperation; + end; +end; + { TutlBase64Decoder } function TutlBase64Decoder.{%H-}Read(var Buffer; Count: Longint): Longint;