File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -112,7 +112,13 @@ func (c *Contract) validJumpSubdest(udest uint64) bool {
112
112
// isCode returns true if the provided PC location is an actual opcode, as
113
113
// opposed to a data-segment following a PUSHN operation.
114
114
func (c * Contract ) isCode (udest uint64 ) bool {
115
+ // Do we already have an analysis laying around?
116
+ if c .analysis != nil {
117
+ return c .analysis .codeSegment (udest )
118
+ }
115
119
// Do we have a contract hash already?
120
+ // If we do have a hash, that means it's a 'regular' contract. For regular
121
+ // contracts ( not temporary initcode), we store the analysis in a map
116
122
if c .CodeHash != (common.Hash {}) {
117
123
// Does parent context have the analysis?
118
124
analysis , exist := c .jumpdests [c .CodeHash ]
You can’t perform that action at this time.
0 commit comments