Mercurial > hg > truffle
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()) { |