34 //
35 // This class represents klass or method flags.
36 class ciFlags VALUE_OBJ_CLASS_SPEC {
37 private:
38 friend class ciInstanceKlass;
39 friend class ciField;
40 friend class ciMethod;
41
42 jint _flags;
43
44 ciFlags() { _flags = 0; }
45 ciFlags(AccessFlags flags) { _flags = flags.as_int(); }
46
47 public:
48 // Java access flags
49 bool is_public () const { return (_flags & JVM_ACC_PUBLIC ) != 0; }
50 bool is_private () const { return (_flags & JVM_ACC_PRIVATE ) != 0; }
51 bool is_protected () const { return (_flags & JVM_ACC_PROTECTED ) != 0; }
52 bool is_static () const { return (_flags & JVM_ACC_STATIC ) != 0; }
53 bool is_final () const { return (_flags & JVM_ACC_FINAL ) != 0; }
54 bool is_synchronized() const { return (_flags & JVM_ACC_SYNCHRONIZED) != 0; }
55 bool is_super () const { return (_flags & JVM_ACC_SUPER ) != 0; }
56 bool is_volatile () const { return (_flags & JVM_ACC_VOLATILE ) != 0; }
57 bool is_transient () const { return (_flags & JVM_ACC_TRANSIENT ) != 0; }
58 bool is_native () const { return (_flags & JVM_ACC_NATIVE ) != 0; }
59 bool is_interface () const { return (_flags & JVM_ACC_INTERFACE ) != 0; }
60 bool is_abstract () const { return (_flags & JVM_ACC_ABSTRACT ) != 0; }
61 bool is_strict () const { return (_flags & JVM_ACC_STRICT ) != 0; }
62 bool is_stable () const { return (_flags & JVM_ACC_FIELD_STABLE) != 0; }
63
64 // Conversion
65 jint as_int() { return _flags; }
66
67 void print_klass_flags(outputStream* st = tty);
68 void print_member_flags(outputStream* st = tty);
69 void print(outputStream* st = tty);
70 };
71
72 #endif // SHARE_VM_CI_CIFLAGS_HPP
|
34 //
35 // This class represents klass or method flags.
36 class ciFlags VALUE_OBJ_CLASS_SPEC {
37 private:
38 friend class ciInstanceKlass;
39 friend class ciField;
40 friend class ciMethod;
41
42 jint _flags;
43
44 ciFlags() { _flags = 0; }
45 ciFlags(AccessFlags flags) { _flags = flags.as_int(); }
46
47 public:
48 // Java access flags
49 bool is_public () const { return (_flags & JVM_ACC_PUBLIC ) != 0; }
50 bool is_private () const { return (_flags & JVM_ACC_PRIVATE ) != 0; }
51 bool is_protected () const { return (_flags & JVM_ACC_PROTECTED ) != 0; }
52 bool is_static () const { return (_flags & JVM_ACC_STATIC ) != 0; }
53 bool is_final () const { return (_flags & JVM_ACC_FINAL ) != 0; }
54 bool is_synchronized () const { return (_flags & JVM_ACC_SYNCHRONIZED ) != 0; }
55 bool is_super () const { return (_flags & JVM_ACC_SUPER ) != 0; }
56 bool is_volatile () const { return (_flags & JVM_ACC_VOLATILE ) != 0; }
57 bool is_transient () const { return (_flags & JVM_ACC_TRANSIENT ) != 0; }
58 bool is_native () const { return (_flags & JVM_ACC_NATIVE ) != 0; }
59 bool is_interface () const { return (_flags & JVM_ACC_INTERFACE ) != 0; }
60 bool is_abstract () const { return (_flags & JVM_ACC_ABSTRACT ) != 0; }
61 bool is_strict () const { return (_flags & JVM_ACC_STRICT ) != 0; }
62 bool is_stable () const { return (_flags & JVM_ACC_FIELD_STABLE ) != 0; }
63 // In case the current object represents a field, return true if
64 // the field is modified outside of instance initializer methods
65 // (or class/initializer methods if the field is static) and false
66 // otherwise.
67 bool has_initialized_final_update() const { return (_flags & JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE) != 0; };
68
69 // Conversion
70 jint as_int() { return _flags; }
71
72 void print_klass_flags(outputStream* st = tty);
73 void print_member_flags(outputStream* st = tty);
74 void print(outputStream* st = tty);
75 };
76
77 #endif // SHARE_VM_CI_CIFLAGS_HPP
|