42
43 // Do not add new ACC flags here.
44 };
45
46
47 class AccessFlags {
48 friend class VMStructs;
49 private:
50 jint _flags; // TODO: move 4 access flags above to Klass and change to u2
51
52 public:
53 AccessFlags() : _flags(0) {}
54 explicit AccessFlags(jint flags) : _flags(flags) {}
55
56 // Java access flags
57 bool is_public () const { return (_flags & JVM_ACC_PUBLIC ) != 0; }
58 bool is_private () const { return (_flags & JVM_ACC_PRIVATE ) != 0; }
59 bool is_protected () const { return (_flags & JVM_ACC_PROTECTED ) != 0; }
60 bool is_static () const { return (_flags & JVM_ACC_STATIC ) != 0; }
61 bool is_final () const { return (_flags & JVM_ACC_FINAL ) != 0; }
62 bool is_synchronized() const { return (_flags & JVM_ACC_SYNCHRONIZED) != 0; }
63 bool is_super () const { return (_flags & JVM_ACC_SUPER ) != 0; }
64 bool is_volatile () const { return (_flags & JVM_ACC_VOLATILE ) != 0; }
65 bool is_transient () const { return (_flags & JVM_ACC_TRANSIENT ) != 0; }
66 bool is_native () const { return (_flags & JVM_ACC_NATIVE ) != 0; }
67 bool is_interface () const { return (_flags & JVM_ACC_INTERFACE ) != 0; }
68 bool is_abstract () const { return (_flags & JVM_ACC_ABSTRACT ) != 0; }
69
70 // Attribute flags
71 bool is_synthetic () const { return (_flags & JVM_ACC_SYNTHETIC ) != 0; }
72
73 // get .class file flags
74 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); }
75
76 // Initialization
77 void set_field_flags(jint flags) {
78 assert((flags & JVM_RECOGNIZED_FIELD_MODIFIERS) == flags, "only recognized flags");
79 _flags = (flags & JVM_RECOGNIZED_FIELD_MODIFIERS);
80 }
81 void set_flags(jint flags) { _flags = (flags & JVM_ACC_WRITTEN_FLAGS); }
82
83 private:
84 friend class Klass;
85 friend class ClassFileParser;
86 // the functions below should only be called on the _access_flags inst var directly,
87 // otherwise they are just changing a copy of the flags
88
|
42
43 // Do not add new ACC flags here.
44 };
45
46
47 class AccessFlags {
48 friend class VMStructs;
49 private:
50 jint _flags; // TODO: move 4 access flags above to Klass and change to u2
51
52 public:
53 AccessFlags() : _flags(0) {}
54 explicit AccessFlags(jint flags) : _flags(flags) {}
55
56 // Java access flags
57 bool is_public () const { return (_flags & JVM_ACC_PUBLIC ) != 0; }
58 bool is_private () const { return (_flags & JVM_ACC_PRIVATE ) != 0; }
59 bool is_protected () const { return (_flags & JVM_ACC_PROTECTED ) != 0; }
60 bool is_static () const { return (_flags & JVM_ACC_STATIC ) != 0; }
61 bool is_final () const { return (_flags & JVM_ACC_FINAL ) != 0; }
62 bool is_strict () const { return (_flags & JVM_ACC_STRICT ) != 0; }
63 bool is_synchronized() const { return (_flags & JVM_ACC_SYNCHRONIZED) != 0; }
64 bool is_volatile () const { return (_flags & JVM_ACC_VOLATILE ) != 0; }
65 bool is_transient () const { return (_flags & JVM_ACC_TRANSIENT ) != 0; }
66 bool is_native () const { return (_flags & JVM_ACC_NATIVE ) != 0; }
67 bool is_interface () const { return (_flags & JVM_ACC_INTERFACE ) != 0; }
68 bool is_abstract () const { return (_flags & JVM_ACC_ABSTRACT ) != 0; }
69 bool is_identity_class () const { return (_flags & JVM_ACC_IDENTITY ) != 0; }
70
71 // Attribute flags
72 bool is_synthetic () const { return (_flags & JVM_ACC_SYNTHETIC ) != 0; }
73
74 // get .class file flags
75 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); }
76
77 // Initialization
78 void set_field_flags(jint flags) {
79 assert((flags & JVM_RECOGNIZED_FIELD_MODIFIERS) == flags, "only recognized flags");
80 _flags = (flags & JVM_RECOGNIZED_FIELD_MODIFIERS);
81 }
82 void set_flags(jint flags) { _flags = (flags & JVM_ACC_WRITTEN_FLAGS); }
83
84 private:
85 friend class Klass;
86 friend class ClassFileParser;
87 // the functions below should only be called on the _access_flags inst var directly,
88 // otherwise they are just changing a copy of the flags
89
|