src/share/vm/ci/ciField.cpp

changeset 6812
00cf2b6f51b9
parent 5732
b2e698d2276c
child 6876
710a3c8b516e
child 8176
714096aec397
equal deleted inserted replaced
6811:90b2ae0b131d 6812:00cf2b6f51b9
136 _offset = -1; 136 _offset = -1;
137 _is_constant = false; 137 _is_constant = false;
138 return; 138 return;
139 } 139 }
140 140
141 // Access check based on declared_holder. canonical_holder should not be used
142 // to check access because it can erroneously succeed. If this check fails,
143 // propagate the declared holder to will_link() which in turn will bail out
144 // compilation for this field access.
145 if (!Reflection::verify_field_access(klass->get_Klass(), declared_holder->get_Klass(), canonical_holder, field_desc.access_flags(), true)) {
146 _holder = declared_holder;
147 _offset = -1;
148 _is_constant = false;
149 return;
150 }
151
141 assert(canonical_holder == field_desc.field_holder(), "just checking"); 152 assert(canonical_holder == field_desc.field_holder(), "just checking");
142 initialize_from(&field_desc); 153 initialize_from(&field_desc);
143 } 154 }
144 155
145 ciField::ciField(fieldDescriptor *fd): _known_to_link_with_put(NULL), _known_to_link_with_get(NULL) { 156 ciField::ciField(fieldDescriptor *fd): _known_to_link_with_put(NULL), _known_to_link_with_get(NULL) {

mercurial