58 // ------------------------------------------------------------------ |
58 // ------------------------------------------------------------------ |
59 // ciInstance::field_value |
59 // ciInstance::field_value |
60 // |
60 // |
61 // Constant value of a field. |
61 // Constant value of a field. |
62 ciConstant ciInstance::field_value(ciField* field) { |
62 ciConstant ciInstance::field_value(ciField* field) { |
63 assert(is_loaded() && |
63 assert(is_loaded(), "invalid access - must be loaded"); |
64 field->holder()->is_loaded() && |
64 assert(field->holder()->is_loaded(), "invalid access - holder must be loaded"); |
65 klass()->is_subclass_of(field->holder()), |
65 assert(klass()->is_subclass_of(field->holder()), "invalid access - must be subclass"); |
66 "invalid access"); |
66 |
67 VM_ENTRY_MARK; |
67 VM_ENTRY_MARK; |
68 ciConstant result; |
68 ciConstant result; |
69 Handle obj = get_oop(); |
69 Handle obj = get_oop(); |
70 assert(!obj.is_null(), "bad oop"); |
70 assert(!obj.is_null(), "bad oop"); |
71 BasicType field_btype = field->type()->basic_type(); |
71 BasicType field_btype = field->type()->basic_type(); |