mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
78 lines
1.4 KiB
C++
78 lines
1.4 KiB
C++
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "sky/engine/wtf/ArrayPiece.h"
|
|
|
|
#include "sky/engine/wtf/ArrayBuffer.h"
|
|
#include "sky/engine/wtf/ArrayBufferView.h"
|
|
#include "sky/engine/wtf/Assertions.h"
|
|
|
|
namespace WTF {
|
|
|
|
ArrayPiece::ArrayPiece()
|
|
{
|
|
initNull();
|
|
}
|
|
|
|
ArrayPiece::ArrayPiece(void* data, unsigned byteLength)
|
|
{
|
|
initWithData(data, byteLength);
|
|
}
|
|
|
|
ArrayPiece::ArrayPiece(ArrayBuffer* buffer)
|
|
{
|
|
if (buffer) {
|
|
initWithData(buffer->data(), buffer->byteLength());
|
|
} else {
|
|
initNull();
|
|
}
|
|
}
|
|
|
|
ArrayPiece::ArrayPiece(ArrayBufferView* buffer)
|
|
{
|
|
if (buffer) {
|
|
initWithData(buffer->baseAddress(), buffer->byteLength());
|
|
} else {
|
|
initNull();
|
|
}
|
|
}
|
|
|
|
bool ArrayPiece::isNull() const
|
|
{
|
|
return m_isNull;
|
|
}
|
|
|
|
void* ArrayPiece::data() const
|
|
{
|
|
ASSERT(!isNull());
|
|
return m_data;
|
|
}
|
|
|
|
unsigned char* ArrayPiece::bytes() const
|
|
{
|
|
return static_cast<unsigned char*>(data());
|
|
}
|
|
|
|
unsigned ArrayPiece::byteLength() const
|
|
{
|
|
ASSERT(!isNull());
|
|
return m_byteLength;
|
|
}
|
|
|
|
void ArrayPiece::initWithData(void* data, unsigned byteLength)
|
|
{
|
|
m_byteLength = byteLength;
|
|
m_data = data;
|
|
m_isNull = false;
|
|
}
|
|
|
|
void ArrayPiece::initNull()
|
|
{
|
|
m_byteLength = 0;
|
|
m_data = 0;
|
|
m_isNull = true;
|
|
}
|
|
|
|
} // namespace WTF
|