comparison src/share/vm/classfile/stackMapTable.cpp @ 17573:aff11567504c

8035119: Fix exceptions to bytecode verification Summary: Prevent ctor calls to super() and this() from avoidable code (try blocks, if stmts, etc.) Reviewed-by: coleenp, acorn, mschoene
author hseigel
date Mon, 17 Mar 2014 10:17:55 -0400
parents 4ee06e614636
children 2993491d47df
comparison
equal deleted inserted replaced
17572:cc7a96a360d0 17573:aff11567504c
1 /* 1 /*
2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
132 "Inconsistent stackmap frames at branch target %d", target); 132 "Inconsistent stackmap frames at branch target %d", target);
133 return; 133 return;
134 } 134 }
135 // check if uninitialized objects exist on backward branches 135 // check if uninitialized objects exist on backward branches
136 check_new_object(frame, target, CHECK_VERIFY(frame->verifier())); 136 check_new_object(frame, target, CHECK_VERIFY(frame->verifier()));
137 frame->verifier()->update_furthest_jump(target);
137 } 138 }
138 139
139 void StackMapTable::check_new_object( 140 void StackMapTable::check_new_object(
140 const StackMapFrame* frame, int32_t target, TRAPS) const { 141 const StackMapFrame* frame, int32_t target, TRAPS) const {
141 if (frame->offset() > target && frame->has_new_object()) { 142 if (frame->offset() > target && frame->has_new_object()) {