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

Unified Diff: Source/core/dom/DOMDataView.cpp

Issue 1178273002: Remove dead DataView IDL and C++ code (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 6 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 | « Source/core/dom/DOMDataView.h ('k') | Source/core/dom/DataView.idl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/DOMDataView.cpp
diff --git a/Source/core/dom/DOMDataView.cpp b/Source/core/dom/DOMDataView.cpp
index 617554f25de71809d97fe09a86ec9ee6f49d05a4..4398e8ce97c6a7c40db9de7c0ef8f36e84354e80 100644
--- a/Source/core/dom/DOMDataView.cpp
+++ b/Source/core/dom/DOMDataView.cpp
@@ -8,9 +8,46 @@
#include "bindings/core/v8/DOMDataStore.h"
#include "bindings/core/v8/V8ArrayBuffer.h"
#include "bindings/core/v8/V8DOMWrapper.h"
+#include "platform/CheckedInt.h"
+#include "wtf/ArrayBufferView.h"
namespace blink {
+namespace {
+
+class DataView final : public ArrayBufferView {
+public:
+ static PassRefPtr<DataView> create(PassRefPtr<ArrayBuffer> buffer, unsigned byteOffset, unsigned byteLength)
+ {
+ RELEASE_ASSERT(byteOffset <= buffer->byteLength());
+ CheckedInt<uint32_t> checkedOffset(byteOffset);
+ CheckedInt<uint32_t> checkedLength(byteLength);
+ CheckedInt<uint32_t> checkedMax = checkedOffset + checkedLength;
+ RELEASE_ASSERT(checkedMax.isValid());
+ RELEASE_ASSERT(checkedMax.value() <= buffer->byteLength());
+ return adoptRef(new DataView(buffer, byteOffset, byteLength));
+ }
+
+ virtual unsigned byteLength() const override { return m_byteLength; }
+ virtual ViewType type() const override { return TypeDataView; }
+
+protected:
+ virtual void neuter() override
+ {
+ ArrayBufferView::neuter();
+ m_byteLength = 0;
+ }
+
+private:
+ DataView(PassRefPtr<ArrayBuffer> buffer, unsigned byteOffset, unsigned byteLength)
+ : ArrayBufferView(buffer, byteOffset)
+ , m_byteLength(byteLength) { }
+
+ unsigned m_byteLength;
+};
+
+} // anonymous namespace
+
PassRefPtr<DOMDataView> DOMDataView::create(PassRefPtr<DOMArrayBuffer> prpBuffer, unsigned byteOffset, unsigned byteLength)
{
RefPtr<DOMArrayBuffer> buffer = prpBuffer;
« no previous file with comments | « Source/core/dom/DOMDataView.h ('k') | Source/core/dom/DataView.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698