src/share/vm/ci/ciInstanceKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/ci/ciInstanceKlass.cpp	Mon Sep 15 12:52:24 2014
--- new/src/share/vm/ci/ciInstanceKlass.cpp	Mon Sep 15 12:52:24 2014

*** 42,52 **** --- 42,52 ---- // ------------------------------------------------------------------ // ciInstanceKlass::ciInstanceKlass // // Loaded instance klass. ciInstanceKlass::ciInstanceKlass(KlassHandle h_k) : - ciKlass(h_k), _non_static_fields(NULL) { assert(get_Klass()->oop_is_instance(), "wrong type"); assert(get_instanceKlass()->is_loaded(), "must be at least loaded"); InstanceKlass* ik = get_instanceKlass();
*** 405,445 **** --- 405,414 ---- } ciField* field = new (CURRENT_THREAD_ENV->arena()) ciField(&fd); return field; } // ------------------------------------------------------------------ // ciInstanceKlass::non_static_fields. class NonStaticFieldFiller: public FieldClosure { GrowableArray<ciField*>* _arr; ciEnv* _curEnv; public: NonStaticFieldFiller(ciEnv* curEnv, GrowableArray<ciField*>* arr) : _curEnv(curEnv), _arr(arr) {} void do_field(fieldDescriptor* fd) { ciField* field = new (_curEnv->arena()) ciField(fd); _arr->append(field); } }; GrowableArray<ciField*>* ciInstanceKlass::non_static_fields() { if (_non_static_fields == NULL) { VM_ENTRY_MARK; ciEnv* curEnv = ciEnv::current(); InstanceKlass* ik = get_instanceKlass(); int max_n_fields = ik->java_fields_count(); Arena* arena = curEnv->arena(); _non_static_fields = new (arena) GrowableArray<ciField*>(arena, max_n_fields, 0, NULL); NonStaticFieldFiller filler(curEnv, _non_static_fields); ik->do_nonstatic_fields(&filler); } return _non_static_fields; } static int sort_field_by_offset(ciField** a, ciField** b) { return (*a)->offset_in_bytes() - (*b)->offset_in_bytes(); // (no worries about 32-bit overflow...) }

src/share/vm/ci/ciInstanceKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File