File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change 15
15
class CodeStream (object ):
16
16
stream = None
17
17
depth_processed = None
18
+ _len = None
19
+ _value = None
18
20
19
21
logger = logging .getLogger ('eth.vm.CodeStream' )
20
22
21
23
def __init__ (self , code_bytes : bytes ) -> None :
22
24
validate_is_bytes (code_bytes , title = "CodeStream bytes" )
23
25
self .stream = io .BytesIO (code_bytes )
26
+ self ._value = code_bytes
27
+ self ._len = len (code_bytes )
24
28
self .invalid_positions = set () # type: Set[int]
25
29
self .depth_processed = 0
26
30
27
31
def read (self , size : int ) -> bytes :
28
32
return self .stream .read (size )
29
33
30
34
def __len__ (self ) -> int :
31
- return len ( self .stream . getvalue ())
35
+ return self ._len
32
36
33
37
def __iter__ (self ) -> 'CodeStream' :
34
38
return self
@@ -37,7 +41,7 @@ def __next__(self) -> int:
37
41
return self .next ()
38
42
39
43
def __getitem__ (self , i : int ) -> int :
40
- return self .stream . getvalue () [i ]
44
+ return self ._value [i ]
41
45
42
46
def next (self ) -> int :
43
47
next_opcode_as_byte = self .read (1 )
You can’t perform that action at this time.
0 commit comments