< prev index next >

src/share/vm/opto/graphKit.cpp

Print this page
rev 10517 : Tobias' flattened array
rev 10520 : zeroing elimination fix

@@ -3393,11 +3393,11 @@
     assert(minit_out->is_Proj() && minit_out->in(0) == init, "");
     if (oop_type->isa_aryptr()) {
       const TypePtr* telemref = oop_type->add_offset(Type::OffsetBot);
       int            elemidx  = C->get_alias_index(telemref);
       hook_memory_on_init(*this, elemidx, minit_in, minit_out);
-    } else if (oop_type->isa_instptr()) {
+    } else if (oop_type->isa_instptr() || oop_type->isa_valuetypeptr()) {
       ciInstanceKlass* ik = oop_type->klass()->as_instance_klass();
       for (int i = 0, len = ik->nof_nonstatic_fields(); i < len; i++) {
         ciField* field = ik->nonstatic_field_at(i);
         if (field->offset() >= TrackedInitializationLimit * HeapWordSize)
           continue;  // do not bother to track really large numbers of fields
< prev index next >