Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(660)

Unified Diff: src/objects-debug.cc

Issue 101413006: Implement in-heap backing store for typed arrays. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Self-review Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/objects-debug.cc
diff --git a/src/objects-debug.cc b/src/objects-debug.cc
index ed93e1dc9e188ae1beea1f8114cecdf6642f468d..e4a872116c98f43f2fa02a04fe53f95c2a92027a 100644
--- a/src/objects-debug.cc
+++ b/src/objects-debug.cc
@@ -132,6 +132,33 @@ void HeapObject::HeapObjectVerify() {
case EXTERNAL_DOUBLE_ARRAY_TYPE:
ExternalDoubleArray::cast(this)->ExternalDoubleArrayVerify();
break;
+ case FIXED_UINT8_ARRAY_TYPE:
+ FixedUint8Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_INT8_ARRAY_TYPE:
+ FixedInt8Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_UINT16_ARRAY_TYPE:
+ FixedUint16Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_INT16_ARRAY_TYPE:
+ FixedInt16Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_UINT32_ARRAY_TYPE:
+ FixedUint32Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_INT32_ARRAY_TYPE:
+ FixedInt32Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_FLOAT32_ARRAY_TYPE:
+ FixedFloat32Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_FLOAT64_ARRAY_TYPE:
+ FixedFloat64Array::cast(this)->FixedTypedArrayVerify();
+ break;
+ case FIXED_UINT8_CLAMPED_ARRAY_TYPE:
+ FixedUint8ClampedArray::cast(this)->FixedTypedArrayVerify();
+ break;
case CODE_TYPE:
Code::cast(this)->CodeVerify();
break;
@@ -307,6 +334,14 @@ void ExternalDoubleArray::ExternalDoubleArrayVerify() {
}
+template <class Traits>
+void FixedTypedArray<Traits>::FixedTypedArrayVerify() {
+ CHECK(IsHeapObject()
+ && HeapObject::cast(this)->map()->instance_type()
Toon Verwaest 2013/12/23 10:40:32 && on previous line. Also ==. Indent +4 spaces for
Dmitry Lomov (no reviews) 2014/01/07 15:48:43 Done.
+ == Traits::kInstanceType);
+}
+
+
bool JSObject::ElementsAreSafeToExamine() {
return (FLAG_use_gvn && FLAG_use_allocation_folding) ||
reinterpret_cast<Map*>(elements()) !=
@@ -1087,9 +1122,18 @@ void JSObject::IncrementSpillStatistics(SpillInformation* info) {
case EXTERNAL_UNSIGNED_INT_ELEMENTS:
case EXTERNAL_FLOAT_ELEMENTS:
case EXTERNAL_DOUBLE_ELEMENTS:
- case EXTERNAL_PIXEL_ELEMENTS: {
+ case EXTERNAL_PIXEL_ELEMENTS:
+ case UINT8_ELEMENTS:
+ case INT8_ELEMENTS:
+ case UINT16_ELEMENTS:
+ case INT16_ELEMENTS:
+ case UINT32_ELEMENTS:
+ case INT32_ELEMENTS:
+ case FLOAT32_ELEMENTS:
+ case FLOAT64_ELEMENTS:
+ case UINT8_CLAMPED_ELEMENTS: {
info->number_of_objects_with_fast_elements_++;
- ExternalPixelArray* e = ExternalPixelArray::cast(elements());
+ FixedArrayBase* e = FixedArrayBase::cast(elements());
info->number_of_fast_used_elements_ += e->length();
break;
}

Powered by Google App Engine
This is Rietveld 408576698