< prev index next >

src/share/vm/interpreter/linkResolver.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 133,156 **** Symbol* _name; // extracted from JVM_CONSTANT_NameAndType Symbol* _signature; KlassHandle _resolved_klass; // class that the constant pool entry points to KlassHandle _current_klass; // class that owns the constant pool bool _check_access; public: LinkInfo(const constantPoolHandle& pool, int index, TRAPS); // Condensed information from other call sites within the vm. ! LinkInfo(KlassHandle resolved_klass, Symbol* name, Symbol* signature, ! KlassHandle current_klass, bool check_access = true) : _resolved_klass(resolved_klass), _name(name), _signature(signature), _current_klass(current_klass), ! _check_access(check_access) {} // accessors Symbol* name() const { return _name; } Symbol* signature() const { return _signature; } KlassHandle resolved_klass() const { return _resolved_klass; } KlassHandle current_klass() const { return _current_klass; } bool check_access() const { return _check_access; } char* method_string() const; void print() PRODUCT_RETURN; }; --- 133,171 ---- Symbol* _name; // extracted from JVM_CONSTANT_NameAndType Symbol* _signature; KlassHandle _resolved_klass; // class that the constant pool entry points to KlassHandle _current_klass; // class that owns the constant pool bool _check_access; + constantTag _tag; public: + enum AccessCheck { + needs_access_check, + skip_access_check + }; + LinkInfo(const constantPoolHandle& pool, int index, TRAPS); + // Condensed information from other call sites within the vm. ! LinkInfo(KlassHandle resolved_klass, Symbol* name, Symbol* signature, KlassHandle current_klass, ! AccessCheck check_access = needs_access_check, ! constantTag tag = JVM_CONSTANT_Invalid) : _resolved_klass(resolved_klass), _name(name), _signature(signature), _current_klass(current_klass), ! _check_access(check_access == needs_access_check && current_klass.not_null()), _tag(tag) {} ! ! // Case where we just find the method and don't check access against the current class ! LinkInfo(KlassHandle resolved_klass, Symbol*name, Symbol* signature) : ! _resolved_klass(resolved_klass), ! _name(name), _signature(signature), _current_klass(NULL), ! _check_access(false), _tag(JVM_CONSTANT_Invalid) {} // accessors Symbol* name() const { return _name; } Symbol* signature() const { return _signature; } KlassHandle resolved_klass() const { return _resolved_klass; } KlassHandle current_klass() const { return _current_klass; } + constantTag tag() const { return _tag; } bool check_access() const { return _check_access; } char* method_string() const; void print() PRODUCT_RETURN; };
< prev index next >