Sfoglia il codice sorgente

core/vm: Rename + updated doc on jumpdest analysis

Martin Holst Swende 8 anni fa
parent
commit
d6681ed360
2 ha cambiato i file con 5 aggiunte e 5 eliminazioni
  1. 4 4
      core/vm/analysis.go
  2. 1 1
      core/vm/analysis_test.go

+ 4 - 4
core/vm/analysis.go

@@ -38,7 +38,7 @@ func (d destinations) has(codehash common.Hash, code []byte, dest *big.Int) bool
 
 	m, analysed := d[codehash]
 	if !analysed {
-		m = jumpdests(code)
+		m = codeBitmap(code)
 		d[codehash] = m
 	}
 	return OpCode(code[udest]) == JUMPDEST && m.codeSegment(udest)
@@ -61,9 +61,9 @@ func (bits *bitvec) codeSegment(pos uint64) bool {
 	return ((*bits)[pos/8] & (0x80 >> (pos % 8))) == 0
 }
 
-// jumpdests creates a map that contains an entry for each
-// PC location that is a JUMPDEST instruction.
-func jumpdests(code []byte) []byte {
+// jumpdests creates a bitmap of the code, where 1 represents a DATA-segment,
+// and 0 represents code-segment
+func codeBitmap(code []byte) []byte {
 	//The map is 4 bytes longer than necessary, in case the code
 	// ends with a PUSH32, the algorithm will push zeroes onto the
 	// bitvector outside the bounds of the actual code.

+ 1 - 1
core/vm/analysis_test.go

@@ -28,7 +28,7 @@ func TestJumpDestAnalysis(t *testing.T) {
 		{[]byte{byte(PUSH32)}, 0xFF, 2},
 	}
 	for _, test := range tests {
-		ret := jumpdests(test.code)
+		ret := codeBitmap(test.code)
 		if ret[test.which] != test.exp {
 			t.Fatalf("expected %x, got %02x", test.exp, ret[test.which])
 		}