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

Unified Diff: src/elements.cc

Issue 140793003: Revert "Implement in-heap backing store for typed arrays." (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 11 months 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
« no previous file with comments | « src/code-stubs.cc ('k') | src/elements-kind.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/elements.cc
diff --git a/src/elements.cc b/src/elements.cc
index 5bce3b99bd961fe0f3aa1e20b71fc2965cb3ef2d..0b745c4505fc2fa40b32bc472eb2f405f4eefed5 100644
--- a/src/elements.cc
+++ b/src/elements.cc
@@ -48,7 +48,7 @@
// - FastDoubleElementsAccessor
// - FastPackedDoubleElementsAccessor
// - FastHoleyDoubleElementsAccessor
-// - TypedElementsAccessor (abstract)
+// - ExternalElementsAccessor (abstract)
// - ExternalByteElementsAccessor
// - ExternalUnsignedByteElementsAccessor
// - ExternalShortElementsAccessor
@@ -58,15 +58,6 @@
// - ExternalFloatElementsAccessor
// - ExternalDoubleElementsAccessor
// - PixelElementsAccessor
-// - FixedUint8ArrayAccessor
-// - FixedInt8ArrayAccessor
-// - FixedUint16ArrayAccessor
-// - FixedInt16ArrayAccessor
-// - FixedUint32ArrayAccessor
-// - FixedInt32ArrayAccessor
-// - FixedFloat32ArrayAccessor
-// - FixedFloat64ArrayAccessor
-// - FixedUint8ClampedArrayAccessor
// - DictionaryElementsAccessor
// - NonStrictArgumentsElementsAccessor
@@ -113,17 +104,7 @@ static const int kPackedSizeNotKnown = -1;
EXTERNAL_FLOAT_ELEMENTS, ExternalFloatArray) \
V(ExternalDoubleElementsAccessor, \
EXTERNAL_DOUBLE_ELEMENTS, ExternalDoubleArray) \
- V(PixelElementsAccessor, EXTERNAL_PIXEL_ELEMENTS, ExternalPixelArray) \
- V(FixedUint8ArrayAccessor, UINT8_ELEMENTS, FixedUint8Array) \
- V(FixedInt8ArrayAccessor, INT8_ELEMENTS, FixedInt8Array) \
- V(FixedUint16ArrayAccessor, UINT16_ELEMENTS, FixedUint16Array) \
- V(FixedInt16ArrayAccessor, INT16_ELEMENTS, FixedInt16Array) \
- V(FixedUint32ArrayAccessor, UINT32_ELEMENTS, FixedUint32Array) \
- V(FixedInt32ArrayAccessor, INT32_ELEMENTS, FixedInt32Array) \
- V(FixedFloat32ArrayAccessor, FLOAT32_ELEMENTS, FixedFloat32Array) \
- V(FixedFloat64ArrayAccessor, FLOAT64_ELEMENTS, FixedFloat64Array) \
- V(FixedUint8ClampedArrayAccessor, UINT8_CLAMPED_ELEMENTS, \
- FixedUint8ClampedArray)
+ V(PixelElementsAccessor, EXTERNAL_PIXEL_ELEMENTS, ExternalPixelArray)
template<ElementsKind Kind> class ElementsKindTraits {
@@ -1115,26 +1096,6 @@ static inline ElementsKind ElementsKindForArray(FixedArrayBase* array) {
return EXTERNAL_DOUBLE_ELEMENTS;
case EXTERNAL_PIXEL_ARRAY_TYPE:
return EXTERNAL_PIXEL_ELEMENTS;
-
- case FIXED_UINT8_ARRAY_TYPE:
- return UINT8_ELEMENTS;
- case FIXED_INT8_ARRAY_TYPE:
- return INT8_ELEMENTS;
- case FIXED_UINT16_ARRAY_TYPE:
- return UINT16_ELEMENTS;
- case FIXED_INT16_ARRAY_TYPE:
- return INT16_ELEMENTS;
- case FIXED_UINT32_ARRAY_TYPE:
- return UINT32_ELEMENTS;
- case FIXED_INT32_ARRAY_TYPE:
- return INT32_ELEMENTS;
- case FIXED_FLOAT32_ARRAY_TYPE:
- return FLOAT32_ELEMENTS;
- case FIXED_FLOAT64_ARRAY_TYPE:
- return FLOAT64_ELEMENTS;
- case FIXED_UINT8_CLAMPED_ARRAY_TYPE:
- return UINT8_CLAMPED_ELEMENTS;
-
default:
UNREACHABLE();
}
@@ -1197,15 +1158,6 @@ class FastSmiOrObjectElementsAccessor
case EXTERNAL_FLOAT_ELEMENTS:
case EXTERNAL_DOUBLE_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:
UNREACHABLE();
}
return NULL;
@@ -1331,15 +1283,6 @@ class FastDoubleElementsAccessor
case EXTERNAL_FLOAT_ELEMENTS:
case EXTERNAL_DOUBLE_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:
UNREACHABLE();
}
return to->GetHeap()->undefined_value();
@@ -1377,20 +1320,20 @@ class FastHoleyDoubleElementsAccessor
// Super class for all external element arrays.
-template<typename AccessorSubclass,
+template<typename ExternalElementsAccessorSubclass,
ElementsKind Kind>
-class TypedElementsAccessor
- : public ElementsAccessorBase<AccessorSubclass,
+class ExternalElementsAccessor
+ : public ElementsAccessorBase<ExternalElementsAccessorSubclass,
ElementsKindTraits<Kind> > {
public:
- explicit TypedElementsAccessor(const char* name)
- : ElementsAccessorBase<AccessorSubclass,
+ explicit ExternalElementsAccessor(const char* name)
+ : ElementsAccessorBase<ExternalElementsAccessorSubclass,
ElementsKindTraits<Kind> >(name) {}
protected:
typedef typename ElementsKindTraits<Kind>::BackingStore BackingStore;
- friend class ElementsAccessorBase<AccessorSubclass,
+ friend class ElementsAccessorBase<ExternalElementsAccessorSubclass,
ElementsKindTraits<Kind> >;
MUST_USE_RESULT static MaybeObject* GetImpl(Object* receiver,
@@ -1398,7 +1341,7 @@ class TypedElementsAccessor
uint32_t key,
FixedArrayBase* backing_store) {
return
- key < AccessorSubclass::GetCapacityImpl(backing_store)
+ key < ExternalElementsAccessorSubclass::GetCapacityImpl(backing_store)
? BackingStore::cast(backing_store)->get(key)
: backing_store->GetHeap()->undefined_value();
}
@@ -1409,7 +1352,7 @@ class TypedElementsAccessor
uint32_t key,
FixedArrayBase* backing_store) {
return
- key < AccessorSubclass::GetCapacityImpl(backing_store)
+ key < ExternalElementsAccessorSubclass::GetCapacityImpl(backing_store)
? NONE : ABSENT;
}
@@ -1419,7 +1362,7 @@ class TypedElementsAccessor
uint32_t key,
FixedArrayBase* backing_store) {
return
- key < AccessorSubclass::GetCapacityImpl(backing_store)
+ key < ExternalElementsAccessorSubclass::GetCapacityImpl(backing_store)
? FIELD : NONEXISTENT;
}
@@ -1444,175 +1387,101 @@ class TypedElementsAccessor
uint32_t key,
FixedArrayBase* backing_store) {
uint32_t capacity =
- AccessorSubclass::GetCapacityImpl(backing_store);
+ ExternalElementsAccessorSubclass::GetCapacityImpl(backing_store);
return key < capacity;
}
};
class ExternalByteElementsAccessor
- : public TypedElementsAccessor<ExternalByteElementsAccessor,
- EXTERNAL_BYTE_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalByteElementsAccessor,
+ EXTERNAL_BYTE_ELEMENTS> {
public:
explicit ExternalByteElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalByteElementsAccessor,
- EXTERNAL_BYTE_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<ExternalByteElementsAccessor,
+ EXTERNAL_BYTE_ELEMENTS>(name) {}
};
class ExternalUnsignedByteElementsAccessor
- : public TypedElementsAccessor<ExternalUnsignedByteElementsAccessor,
- EXTERNAL_UNSIGNED_BYTE_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalUnsignedByteElementsAccessor,
+ EXTERNAL_UNSIGNED_BYTE_ELEMENTS> {
public:
explicit ExternalUnsignedByteElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalUnsignedByteElementsAccessor,
- EXTERNAL_UNSIGNED_BYTE_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<ExternalUnsignedByteElementsAccessor,
+ EXTERNAL_UNSIGNED_BYTE_ELEMENTS>(name) {}
};
class ExternalShortElementsAccessor
- : public TypedElementsAccessor<ExternalShortElementsAccessor,
- EXTERNAL_SHORT_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalShortElementsAccessor,
+ EXTERNAL_SHORT_ELEMENTS> {
public:
explicit ExternalShortElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalShortElementsAccessor,
- EXTERNAL_SHORT_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<ExternalShortElementsAccessor,
+ EXTERNAL_SHORT_ELEMENTS>(name) {}
};
class ExternalUnsignedShortElementsAccessor
- : public TypedElementsAccessor<ExternalUnsignedShortElementsAccessor,
- EXTERNAL_UNSIGNED_SHORT_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalUnsignedShortElementsAccessor,
+ EXTERNAL_UNSIGNED_SHORT_ELEMENTS> {
public:
explicit ExternalUnsignedShortElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalUnsignedShortElementsAccessor,
- EXTERNAL_UNSIGNED_SHORT_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<ExternalUnsignedShortElementsAccessor,
+ EXTERNAL_UNSIGNED_SHORT_ELEMENTS>(name) {}
};
class ExternalIntElementsAccessor
- : public TypedElementsAccessor<ExternalIntElementsAccessor,
- EXTERNAL_INT_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalIntElementsAccessor,
+ EXTERNAL_INT_ELEMENTS> {
public:
explicit ExternalIntElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalIntElementsAccessor,
- EXTERNAL_INT_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<ExternalIntElementsAccessor,
+ EXTERNAL_INT_ELEMENTS>(name) {}
};
class ExternalUnsignedIntElementsAccessor
- : public TypedElementsAccessor<ExternalUnsignedIntElementsAccessor,
- EXTERNAL_UNSIGNED_INT_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalUnsignedIntElementsAccessor,
+ EXTERNAL_UNSIGNED_INT_ELEMENTS> {
public:
explicit ExternalUnsignedIntElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalUnsignedIntElementsAccessor,
+ : ExternalElementsAccessor<ExternalUnsignedIntElementsAccessor,
EXTERNAL_UNSIGNED_INT_ELEMENTS>(name) {}
};
class ExternalFloatElementsAccessor
- : public TypedElementsAccessor<ExternalFloatElementsAccessor,
- EXTERNAL_FLOAT_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalFloatElementsAccessor,
+ EXTERNAL_FLOAT_ELEMENTS> {
public:
explicit ExternalFloatElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalFloatElementsAccessor,
- EXTERNAL_FLOAT_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<ExternalFloatElementsAccessor,
+ EXTERNAL_FLOAT_ELEMENTS>(name) {}
};
class ExternalDoubleElementsAccessor
- : public TypedElementsAccessor<ExternalDoubleElementsAccessor,
- EXTERNAL_DOUBLE_ELEMENTS> {
+ : public ExternalElementsAccessor<ExternalDoubleElementsAccessor,
+ EXTERNAL_DOUBLE_ELEMENTS> {
public:
explicit ExternalDoubleElementsAccessor(const char* name)
- : TypedElementsAccessor<ExternalDoubleElementsAccessor,
- EXTERNAL_DOUBLE_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<ExternalDoubleElementsAccessor,
+ EXTERNAL_DOUBLE_ELEMENTS>(name) {}
};
class PixelElementsAccessor
- : public TypedElementsAccessor<PixelElementsAccessor,
- EXTERNAL_PIXEL_ELEMENTS> {
+ : public ExternalElementsAccessor<PixelElementsAccessor,
+ EXTERNAL_PIXEL_ELEMENTS> {
public:
explicit PixelElementsAccessor(const char* name)
- : TypedElementsAccessor<PixelElementsAccessor,
- EXTERNAL_PIXEL_ELEMENTS>(name) {}
-};
-
-
-class FixedUint8ArrayAccessor
- : public TypedElementsAccessor<FixedUint8ArrayAccessor,
- UINT8_ELEMENTS> {
- public:
- explicit FixedUint8ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedUint8ArrayAccessor,
- UINT8_ELEMENTS>(name) {}
-};
-class FixedUint8ClampedArrayAccessor
- : public TypedElementsAccessor<FixedUint8ClampedArrayAccessor,
- UINT8_CLAMPED_ELEMENTS> {
- public:
- explicit FixedUint8ClampedArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedUint8ClampedArrayAccessor,
- UINT8_CLAMPED_ELEMENTS>(name) {}
-};
-class FixedInt8ArrayAccessor
- : public TypedElementsAccessor<FixedInt8ArrayAccessor,
- INT8_ELEMENTS> {
- public:
- explicit FixedInt8ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedInt8ArrayAccessor,
- INT8_ELEMENTS>(name) {}
-};
-class FixedUint16ArrayAccessor
- : public TypedElementsAccessor<FixedUint16ArrayAccessor,
- UINT16_ELEMENTS> {
- public:
- explicit FixedUint16ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedUint16ArrayAccessor,
- UINT16_ELEMENTS>(name) {}
-};
-class FixedInt16ArrayAccessor
- : public TypedElementsAccessor<FixedInt16ArrayAccessor,
- INT16_ELEMENTS> {
- public:
- explicit FixedInt16ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedInt16ArrayAccessor,
- INT16_ELEMENTS>(name) {}
-};
-class FixedUint32ArrayAccessor
- : public TypedElementsAccessor<FixedUint32ArrayAccessor,
- UINT32_ELEMENTS> {
- public:
- explicit FixedUint32ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedUint32ArrayAccessor,
- UINT32_ELEMENTS>(name) {}
-};
-class FixedInt32ArrayAccessor
- : public TypedElementsAccessor<FixedInt32ArrayAccessor,
- INT32_ELEMENTS> {
- public:
- explicit FixedInt32ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedInt32ArrayAccessor,
- INT32_ELEMENTS>(name) {}
+ : ExternalElementsAccessor<PixelElementsAccessor,
+ EXTERNAL_PIXEL_ELEMENTS>(name) {}
};
-class FixedFloat32ArrayAccessor
- : public TypedElementsAccessor<FixedFloat32ArrayAccessor,
- FLOAT32_ELEMENTS> {
- public:
- explicit FixedFloat32ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedFloat32ArrayAccessor,
- FLOAT32_ELEMENTS>(name) {}
-};
-class FixedFloat64ArrayAccessor
- : public TypedElementsAccessor<FixedFloat64ArrayAccessor,
- FLOAT64_ELEMENTS> {
- public:
- explicit FixedFloat64ArrayAccessor(const char* name)
- : TypedElementsAccessor<FixedFloat64ArrayAccessor,
- FLOAT64_ELEMENTS>(name) {}
-};
class DictionaryElementsAccessor
: public ElementsAccessorBase<DictionaryElementsAccessor,
« no previous file with comments | « src/code-stubs.cc ('k') | src/elements-kind.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698