X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/ba379fdc102753d6be2c4d937058fe40257329fe..14957cd040308e3eeec43d26bae5d76da13fcd85:/wtf/ByteArray.h diff --git a/wtf/ByteArray.h b/wtf/ByteArray.h index 33f0877..bdec630 100644 --- a/wtf/ByteArray.h +++ b/wtf/ByteArray.h @@ -26,8 +26,10 @@ #ifndef ByteArray_h #define ByteArray_h -#include "wtf/PassRefPtr.h" -#include "wtf/RefCounted.h" +#include +#include +#include +#include namespace WTF { class ByteArray : public RefCountedBase { @@ -45,6 +47,13 @@ namespace WTF { m_data[index] = static_cast(value + 0.5); } + void set(unsigned index, unsigned char value) + { + if (index >= m_size) + return; + m_data[index] = value; + } + bool get(unsigned index, unsigned char& result) const { if (index >= m_size) @@ -53,6 +62,12 @@ namespace WTF { return true; } + unsigned char get(unsigned index) const + { + ASSERT(index < m_size); + return m_data[index]; + } + unsigned char* data() { return m_data; } void deref() @@ -73,8 +88,17 @@ namespace WTF { { } size_t m_size; - unsigned char m_data[sizeof(size_t)]; +// MSVC can't handle correctly unsized array. +// warning C4200: nonstandard extension used : zero-sized array in struct/union +// Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array +#if COMPILER(MSVC) + unsigned char m_data[INT_MAX]; +#else + unsigned char m_data[]; +#endif }; -} +} // namespace WTF + +using WTF::ByteArray; #endif