src/share/vm/classfile/stackMapTable.cpp

changeset 8703
02a3d0dcbedd
parent 8080
e36fd279a207
child 8856
ac27a9c85bea
     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);

mercurial