comparison src/share/vm/classfile/stackMapFrame.hpp @ 8202:02a3d0dcbedd

8167104: Additional class construction refinements Reviewed-by: hseigel
author kevinw
date Wed, 02 Nov 2016 14:54:53 -0700
parents 8cb56c8cb30d
children
comparison
equal deleted inserted replaced
15:60a65b473597 16:78aa78016ce7
1 /* 1 /*
2 * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2003, 2016, 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.
165 // Copy stack type array in src into this stack type array. 165 // Copy stack type array in src into this stack type array.
166 void copy_stack(const StackMapFrame* src); 166 void copy_stack(const StackMapFrame* src);
167 167
168 // Return true if this stack map frame is assignable to target. 168 // Return true if this stack map frame is assignable to target.
169 bool is_assignable_to( 169 bool is_assignable_to(
170 const StackMapFrame* target, bool is_exception_handler, 170 const StackMapFrame* target, ErrorContext* ctx, TRAPS) const;
171 ErrorContext* ctx, TRAPS) const;
172 171
173 inline void set_mark() { 172 inline void set_mark() {
174 #ifdef ASSERT 173 #ifdef ASSERT
175 // Put bogus type to indicate it's no longer valid. 174 // Put bogus type to indicate it's no longer valid.
176 if (_stack_mark != -1) { 175 if (_stack_mark != -1) {
288 // Private auxiliary method used only in is_assignable_to(StackMapFrame). 287 // Private auxiliary method used only in is_assignable_to(StackMapFrame).
289 // Returns true if src is assignable to target. 288 // Returns true if src is assignable to target.
290 int is_assignable_to( 289 int is_assignable_to(
291 VerificationType* src, VerificationType* target, int32_t len, TRAPS) const; 290 VerificationType* src, VerificationType* target, int32_t len, TRAPS) const;
292 291
293 bool has_flag_match_exception(const StackMapFrame* target) const;
294
295 TypeOrigin stack_top_ctx(); 292 TypeOrigin stack_top_ctx();
296 293
297 void print_on(outputStream* str) const; 294 void print_on(outputStream* str) const;
298 }; 295 };
299 296