equal
deleted
inserted
replaced
982 ConstantPoolCacheEntry *cp_entry)) |
982 ConstantPoolCacheEntry *cp_entry)) |
983 |
983 |
984 // check the access_flags for the field in the klass |
984 // check the access_flags for the field in the klass |
985 |
985 |
986 instanceKlass* ik = instanceKlass::cast(java_lang_Class::as_klassOop(cp_entry->f1())); |
986 instanceKlass* ik = instanceKlass::cast(java_lang_Class::as_klassOop(cp_entry->f1())); |
987 typeArrayOop fields = ik->fields(); |
|
988 int index = cp_entry->field_index(); |
987 int index = cp_entry->field_index(); |
989 assert(index < fields->length(), "holders field index is out of range"); |
988 if ((ik->field_access_flags(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return; |
990 // bail out if field accesses are not watched |
|
991 if ((fields->ushort_at(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return; |
|
992 |
989 |
993 switch(cp_entry->flag_state()) { |
990 switch(cp_entry->flag_state()) { |
994 case btos: // fall through |
991 case btos: // fall through |
995 case ctos: // fall through |
992 case ctos: // fall through |
996 case stos: // fall through |
993 case stos: // fall through |
1019 |
1016 |
1020 klassOop k = java_lang_Class::as_klassOop(cp_entry->f1()); |
1017 klassOop k = java_lang_Class::as_klassOop(cp_entry->f1()); |
1021 |
1018 |
1022 // check the access_flags for the field in the klass |
1019 // check the access_flags for the field in the klass |
1023 instanceKlass* ik = instanceKlass::cast(k); |
1020 instanceKlass* ik = instanceKlass::cast(k); |
1024 typeArrayOop fields = ik->fields(); |
|
1025 int index = cp_entry->field_index(); |
1021 int index = cp_entry->field_index(); |
1026 assert(index < fields->length(), "holders field index is out of range"); |
|
1027 // bail out if field modifications are not watched |
1022 // bail out if field modifications are not watched |
1028 if ((fields->ushort_at(index) & JVM_ACC_FIELD_MODIFICATION_WATCHED) == 0) return; |
1023 if ((ik->field_access_flags(index) & JVM_ACC_FIELD_MODIFICATION_WATCHED) == 0) return; |
1029 |
1024 |
1030 char sig_type = '\0'; |
1025 char sig_type = '\0'; |
1031 |
1026 |
1032 switch(cp_entry->flag_state()) { |
1027 switch(cp_entry->flag_state()) { |
1033 case btos: sig_type = 'Z'; break; |
1028 case btos: sig_type = 'Z'; break; |