ソースを参照

allow to reinitialize a pipe without buffer reallocation

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7976 8c9fc860-2736-0410-a75d-ab315db34111
eth.morozova 7 年 前
コミット
4999e834ac
1 ファイル変更5 行追加1 行削除
  1. 5 1
      source/Pipes.Mod

+ 5 - 1
source/Pipes.Mod

@@ -61,7 +61,11 @@ TYPE
 
 
 		PROCEDURE &Init*(size: LONGINT);
 		PROCEDURE &Init*(size: LONGINT);
 		BEGIN
 		BEGIN
-			head := 0; num := 0; NEW(buffer, size); closed := FALSE
+			head := 0; num := 0;
+			IF (buffer = NIL) OR (LEN(buffer) # size) THEN
+				NEW( buffer, size );
+			END;
+			closed := FALSE
 		END Init;
 		END Init;
 
 
 		PROCEDURE Close*;
 		PROCEDURE Close*;