src/hotspot/share/ci/ciInstanceKlass.hpp
changeset 51444 3e5d28e6de32
parent 47216 71c04702a3d5
child 52311 274ba8fbd96d
equal deleted inserted replaced
51443:cdffba164671 51444:3e5d28e6de32
     1 /*
     1 /*
     2  * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1999, 2018, 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.
    51   bool                   _is_shared;
    51   bool                   _is_shared;
    52   bool                   _has_finalizer;
    52   bool                   _has_finalizer;
    53   bool                   _has_subklass;
    53   bool                   _has_subklass;
    54   bool                   _has_nonstatic_fields;
    54   bool                   _has_nonstatic_fields;
    55   bool                   _has_nonstatic_concrete_methods;
    55   bool                   _has_nonstatic_concrete_methods;
    56   bool                   _is_anonymous;
    56   bool                   _is_unsafe_anonymous;
    57 
    57 
    58   ciFlags                _flags;
    58   ciFlags                _flags;
    59   jint                   _nonstatic_field_size;
    59   jint                   _nonstatic_field_size;
    60   jint                   _nonstatic_oop_map_size;
    60   jint                   _nonstatic_oop_map_size;
    61 
    61 
   177   bool has_nonstatic_concrete_methods()  {
   177   bool has_nonstatic_concrete_methods()  {
   178     assert(is_loaded(), "must be loaded");
   178     assert(is_loaded(), "must be loaded");
   179     return _has_nonstatic_concrete_methods;
   179     return _has_nonstatic_concrete_methods;
   180   }
   180   }
   181 
   181 
   182   bool is_anonymous() {
   182   bool is_unsafe_anonymous() {
   183     return _is_anonymous;
   183     return _is_unsafe_anonymous;
   184   }
   184   }
   185 
   185 
   186   ciInstanceKlass* get_canonical_holder(int offset);
   186   ciInstanceKlass* get_canonical_holder(int offset);
   187   ciField* get_field_by_offset(int field_offset, bool is_static);
   187   ciField* get_field_by_offset(int field_offset, bool is_static);
   188   ciField* get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static);
   188   ciField* get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static);
   258       return this;
   258       return this;
   259     }
   259     }
   260     return NULL;
   260     return NULL;
   261   }
   261   }
   262 
   262 
   263   ciInstanceKlass* host_klass();
   263   ciInstanceKlass* unsafe_anonymous_host();
   264 
   264 
   265   bool can_be_instantiated() {
   265   bool can_be_instantiated() {
   266     assert(is_loaded(), "must be loaded");
   266     assert(is_loaded(), "must be loaded");
   267     return !is_interface() && !is_abstract();
   267     return !is_interface() && !is_abstract();
   268   }
   268   }