1.1 --- a/src/share/vm/classfile/stackMapTable.cpp Tue Nov 01 16:13:45 2016 -0700 1.2 +++ b/src/share/vm/classfile/stackMapTable.cpp Wed Nov 02 14:54:53 2016 -0700 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -70,26 +70,25 @@ 1.11 1.12 bool StackMapTable::match_stackmap( 1.13 StackMapFrame* frame, int32_t target, 1.14 - bool match, bool update, bool handler, ErrorContext* ctx, TRAPS) const { 1.15 + bool match, bool update, ErrorContext* ctx, TRAPS) const { 1.16 int index = get_index_from_offset(target); 1.17 - return match_stackmap(frame, target, index, match, update, handler, ctx, THREAD); 1.18 + return match_stackmap(frame, target, index, match, update, ctx, THREAD); 1.19 } 1.20 1.21 // Match and/or update current_frame to the frame in stackmap table with 1.22 // specified offset and frame index. Return true if the two frames match. 1.23 -// handler is true if the frame in stackmap_table is for an exception handler. 1.24 // 1.25 -// The values of match and update are: _match__update__handler 1.26 +// The values of match and update are: _match__update 1.27 // 1.28 -// checking a branch target: true false false 1.29 -// checking an exception handler: true false true 1.30 +// checking a branch target: true false 1.31 +// checking an exception handler: true false 1.32 // linear bytecode verification following an 1.33 -// unconditional branch: false true false 1.34 +// unconditional branch: false true 1.35 // linear bytecode verification not following an 1.36 -// unconditional branch: true true false 1.37 +// unconditional branch: true true 1.38 bool StackMapTable::match_stackmap( 1.39 StackMapFrame* frame, int32_t target, int32_t frame_index, 1.40 - bool match, bool update, bool handler, ErrorContext* ctx, TRAPS) const { 1.41 + bool match, bool update, ErrorContext* ctx, TRAPS) const { 1.42 if (frame_index < 0 || frame_index >= _frame_count) { 1.43 *ctx = ErrorContext::missing_stackmap(frame->offset()); 1.44 frame->verifier()->verify_error( 1.45 @@ -102,7 +101,7 @@ 1.46 if (match) { 1.47 // Has direct control flow from last instruction, need to match the two 1.48 // frames. 1.49 - result = frame->is_assignable_to(stackmap_frame, handler, 1.50 + result = frame->is_assignable_to(stackmap_frame, 1.51 ctx, CHECK_VERIFY_(frame->verifier(), result)); 1.52 } 1.53 if (update) { 1.54 @@ -126,7 +125,7 @@ 1.55 StackMapFrame* frame, int32_t target, TRAPS) const { 1.56 ErrorContext ctx; 1.57 bool match = match_stackmap( 1.58 - frame, target, true, false, false, &ctx, CHECK_VERIFY(frame->verifier())); 1.59 + frame, target, true, false, &ctx, CHECK_VERIFY(frame->verifier())); 1.60 if (!match || (target < 0 || target >= _code_length)) { 1.61 frame->verifier()->verify_error(ctx, 1.62 "Inconsistent stackmap frames at branch target %d", target);