Pārlūkot izejas kodu

Added static flag.

woollybah 8 gadi atpakaļ
vecāks
revīzija
1f6e54544d
1 mainītis faili ar 11 papildinājumiem un 3 dzēšanām
  1. 11 3
      bank.mod/bank.bmx

+ 11 - 3
bank.mod/bank.bmx

@@ -25,7 +25,7 @@ end rem
 Type TBank
 Type TBank
 
 
 	Field _buf:Byte Ptr
 	Field _buf:Byte Ptr
-	Field _size:Size_T,_capacity:Size_T
+	Field _size:Size_T,_capacity:Size_T,_static:Int
 	Field _locked
 	Field _locked
 	
 	
 	Method _pad()
 	Method _pad()
@@ -85,13 +85,20 @@ Type TBank
 	Method Capacity:Size_T()
 	Method Capacity:Size_T()
 		Return _capacity
 		Return _capacity
 	End Method
 	End Method
+	
+	Rem
+	bbdoc: Returns True if the bank is static.
+	End Rem
+	Method IsStatic:Int()
+		Return _static
+	End Method
 
 
 	Rem
 	Rem
 	bbdoc: Resize a bank
 	bbdoc: Resize a bank
 	End Rem
 	End Rem
 	Method Resize( size:Size_T )
 	Method Resize( size:Size_T )
 		Assert _locked=0 Else "Locked banks cannot be resize"
 		Assert _locked=0 Else "Locked banks cannot be resize"
-		Assert _capacity>=0 Else "Static banks cannot be resized"
+		Assert _static=0 Else "Static banks cannot be resized"
 		If size>_capacity
 		If size>_capacity
 			Local n:Size_T=_capacity*3/2
 			Local n:Size_T=_capacity*3/2
 			If n<size n=size
 			If n<size n=size
@@ -279,7 +286,8 @@ Type TBank
 		Local bank:TBank=New TBank
 		Local bank:TBank=New TBank
 		bank._buf=buf
 		bank._buf=buf
 		bank._size=size
 		bank._size=size
-		bank._capacity=-1
+		bank._capacity=size
+		bank._static=True
 		Return bank
 		Return bank
 	End Function
 	End Function