src/share/vm/classfile/stackMapFrame.hpp

changeset 6824
2373a1f4987c
parent 4942
f36e073d56a4
child 6872
c77d5db18942
equal deleted inserted replaced
6823:21444610cb92 6824:2373a1f4987c
1 /* 1 /*
2 * Copyright (c) 2003, 2013, 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.
236 // is assignable to type. 236 // is assignable to type.
237 inline VerificationType pop_stack(VerificationType type, TRAPS) { 237 inline VerificationType pop_stack(VerificationType type, TRAPS) {
238 if (_stack_size != 0) { 238 if (_stack_size != 0) {
239 VerificationType top = _stack[_stack_size - 1]; 239 VerificationType top = _stack[_stack_size - 1];
240 bool subtype = type.is_assignable_from( 240 bool subtype = type.is_assignable_from(
241 top, verifier(), CHECK_(VerificationType::bogus_type())); 241 top, verifier(), false, CHECK_(VerificationType::bogus_type()));
242 if (subtype) { 242 if (subtype) {
243 --_stack_size; 243 --_stack_size;
244 return top; 244 return top;
245 } 245 }
246 } 246 }
251 VerificationType type1, VerificationType type2, TRAPS) { 251 VerificationType type1, VerificationType type2, TRAPS) {
252 assert(type1.is_long2() || type1.is_double2(), "must be long/double"); 252 assert(type1.is_long2() || type1.is_double2(), "must be long/double");
253 assert(type2.is_long() || type2.is_double(), "must be long/double_2"); 253 assert(type2.is_long() || type2.is_double(), "must be long/double_2");
254 if (_stack_size >= 2) { 254 if (_stack_size >= 2) {
255 VerificationType top1 = _stack[_stack_size - 1]; 255 VerificationType top1 = _stack[_stack_size - 1];
256 bool subtype1 = type1.is_assignable_from(top1, verifier(), CHECK); 256 bool subtype1 = type1.is_assignable_from(top1, verifier(), false, CHECK);
257 VerificationType top2 = _stack[_stack_size - 2]; 257 VerificationType top2 = _stack[_stack_size - 2];
258 bool subtype2 = type2.is_assignable_from(top2, verifier(), CHECK); 258 bool subtype2 = type2.is_assignable_from(top2, verifier(), false, CHECK);
259 if (subtype1 && subtype2) { 259 if (subtype1 && subtype2) {
260 _stack_size -= 2; 260 _stack_size -= 2;
261 return; 261 return;
262 } 262 }
263 } 263 }

mercurial