protected final @ IndexOrLow ( "stack_map_table" ) int find_stack_map_index_after ( int offset ) { running_offset = - 1 ; // no +1 on first entry for ( int i = 0 ; i < stack_map_table . length ; i ++ ) { running_offset = running_offset + stack_map_table [ i ] . getByteCodeOffset ( ) + 1 ; if ( running_offset > offset ) { return i ; } // try next map entry } // no such entry found return - 1 ; }
Find the index of the StackMap entry whose offset is the first one after the input argument . Return - 1 if there isn t one . Also sets running_offset .