1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
560 // For classes, this returns the name with the package separators
561 // turned into '.'s.
562 const char* external_name() const;
563 // Returns the name for a class (Resource allocated) as the class
564 // would appear in a signature.
565 // For arrays, this returns the name of the element with a leading '['.
566 // For classes, this returns the name with a leading 'L' and a trailing ';'
567 // and the package separators as '/'.
568 virtual const char* signature_name() const;
569
570 // garbage collection support
571 virtual void oop_follow_contents(oop obj) = 0;
572 virtual int oop_adjust_pointers(oop obj) = 0;
573
574 // Parallel Scavenge and Parallel Old
575 PARALLEL_GC_DECLS_PV
576
577 public:
578 // type testing operations
579 virtual bool oop_is_instance_slow() const { return false; }
580 virtual bool oop_is_instanceRef() const { return false; }
581 virtual bool oop_is_array() const { return false; }
582 virtual bool oop_is_objArray_slow() const { return false; }
583 virtual bool oop_is_klass() const { return false; }
584 virtual bool oop_is_thread() const { return false; }
585 virtual bool oop_is_method() const { return false; }
586 virtual bool oop_is_constMethod() const { return false; }
587 virtual bool oop_is_methodData() const { return false; }
588 virtual bool oop_is_constantPool() const { return false; }
589 virtual bool oop_is_constantPoolCache() const { return false; }
590 virtual bool oop_is_typeArray_slow() const { return false; }
591 virtual bool oop_is_arrayKlass() const { return false; }
592 virtual bool oop_is_objArrayKlass() const { return false; }
593 virtual bool oop_is_typeArrayKlass() const { return false; }
594 virtual bool oop_is_compiledICHolder() const { return false; }
595 virtual bool oop_is_instanceKlass() const { return false; }
596
597 bool oop_is_javaArray_slow() const {
598 return oop_is_objArray_slow() || oop_is_typeArray_slow();
599 }
794 virtual jint jvmti_class_status() const;
795
796 // Printing
797 virtual void oop_print_value_on(oop obj, outputStream* st);
798 virtual void oop_print_on (oop obj, outputStream* st);
799
800 // Verification
801 virtual const char* internal_name() const = 0;
802 virtual void oop_verify_on(oop obj, outputStream* st);
803 virtual void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty);
804 virtual void oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty);
805 // tells whether obj is partially constructed (gc during class loading)
806 virtual bool oop_partially_loaded(oop obj) const { return false; }
807 virtual void oop_set_partially_loaded(oop obj) {};
808
809 #ifndef PRODUCT
810 void verify_vtable_index(int index);
811 #endif
812 };
813
814 #endif // SHARE_VM_OOPS_KLASS_HPP
|
1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
560 // For classes, this returns the name with the package separators
561 // turned into '.'s.
562 const char* external_name() const;
563 // Returns the name for a class (Resource allocated) as the class
564 // would appear in a signature.
565 // For arrays, this returns the name of the element with a leading '['.
566 // For classes, this returns the name with a leading 'L' and a trailing ';'
567 // and the package separators as '/'.
568 virtual const char* signature_name() const;
569
570 // garbage collection support
571 virtual void oop_follow_contents(oop obj) = 0;
572 virtual int oop_adjust_pointers(oop obj) = 0;
573
574 // Parallel Scavenge and Parallel Old
575 PARALLEL_GC_DECLS_PV
576
577 public:
578 // type testing operations
579 virtual bool oop_is_instance_slow() const { return false; }
580 virtual bool oop_is_instanceMirror() const { return false; }
581 virtual bool oop_is_instanceRef() const { return false; }
582 virtual bool oop_is_array() const { return false; }
583 virtual bool oop_is_objArray_slow() const { return false; }
584 virtual bool oop_is_klass() const { return false; }
585 virtual bool oop_is_thread() const { return false; }
586 virtual bool oop_is_method() const { return false; }
587 virtual bool oop_is_constMethod() const { return false; }
588 virtual bool oop_is_methodData() const { return false; }
589 virtual bool oop_is_constantPool() const { return false; }
590 virtual bool oop_is_constantPoolCache() const { return false; }
591 virtual bool oop_is_typeArray_slow() const { return false; }
592 virtual bool oop_is_arrayKlass() const { return false; }
593 virtual bool oop_is_objArrayKlass() const { return false; }
594 virtual bool oop_is_typeArrayKlass() const { return false; }
595 virtual bool oop_is_compiledICHolder() const { return false; }
596 virtual bool oop_is_instanceKlass() const { return false; }
597
598 bool oop_is_javaArray_slow() const {
599 return oop_is_objArray_slow() || oop_is_typeArray_slow();
600 }
795 virtual jint jvmti_class_status() const;
796
797 // Printing
798 virtual void oop_print_value_on(oop obj, outputStream* st);
799 virtual void oop_print_on (oop obj, outputStream* st);
800
801 // Verification
802 virtual const char* internal_name() const = 0;
803 virtual void oop_verify_on(oop obj, outputStream* st);
804 virtual void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty);
805 virtual void oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty);
806 // tells whether obj is partially constructed (gc during class loading)
807 virtual bool oop_partially_loaded(oop obj) const { return false; }
808 virtual void oop_set_partially_loaded(oop obj) {};
809
810 #ifndef PRODUCT
811 void verify_vtable_index(int index);
812 #endif
813 };
814
815
816 inline oop klassOopDesc::java_mirror() const { return klass_part()->java_mirror(); }
817
818
819 #endif // SHARE_VM_OOPS_KLASS_HPP
|