Status: New
Owner: ----

New issue 822 by dannycoates: Clusterizer::CalculateNetworkSize may fail cast assertion
http://code.google.com/p/v8/issues/detail?id=822

According JSObject::elements(), array can be a fixed, pixel, or external array, but is cast to FixedArray in Clusterizer::CalculateNetworkSize. It may fail the cast assertion on debug builds.


in objects-inl.h around line 1159

  HeapObject* JSObject::elements() {
    Object* array = READ_FIELD(this, kElementsOffset);
    // In the assert below Dictionary is covered under FixedArray.
    ASSERT(array->IsFixedArray() || array->IsPixelArray() ||
           array->IsExternalArray());
    return reinterpret_cast<HeapObject*>(array);
  }

in heap-profiler.cc around line 117

  if (FixedArray::cast(obj->elements())->length() != 0) {
    size += obj->elements()->Size();
  }

in objects-inl.h around line 63

  #define CAST_ACCESSOR(type)                     \
    type* type::cast(Object* object) {            \
      ASSERT(object->Is##type());                 \
      return reinterpret_cast<type*>(object);     \
    }

--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev

Reply via email to