diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
commit | a4e969f4965059196ca948db781e52f7cfebf19e (patch) | |
tree | 6ca352808c8fdc52006a0f33f6ae3c593b23867d /Source/JavaScriptCore/runtime/JSArrayBufferView.h | |
parent | 41386e9cb918eed93b3f13648cbef387e371e451 (diff) | |
download | WebKitGtk-tarball-a4e969f4965059196ca948db781e52f7cfebf19e.tar.gz |
webkitgtk-2.12.3webkitgtk-2.12.3
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSArrayBufferView.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/JSArrayBufferView.h | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/Source/JavaScriptCore/runtime/JSArrayBufferView.h b/Source/JavaScriptCore/runtime/JSArrayBufferView.h index 3feb03b72..769150b36 100644 --- a/Source/JavaScriptCore/runtime/JSArrayBufferView.h +++ b/Source/JavaScriptCore/runtime/JSArrayBufferView.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013, 2016 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -93,6 +93,7 @@ inline bool hasArrayBuffer(TypedArrayMode mode) class JSArrayBufferView : public JSNonFinalObject { public: typedef JSNonFinalObject Base; + static const unsigned StructureFlags = Base::StructureFlags | OverridesGetPropertyNames | OverridesGetOwnPropertySlot; static const unsigned fastSizeLimit = 1000; @@ -158,9 +159,18 @@ public: ArrayBuffer* buffer(); PassRefPtr<ArrayBufferView> impl(); + bool isNeutered() { return hasArrayBuffer() && !vector(); } void neuter(); - void* vector() { return m_vector; } + void* vector() + { + return m_vector.getPredicated( + this, + [this] () -> bool { + return mode() == FastTypedArray; + }); + } + unsigned byteOffset(); unsigned length() const { return m_length; } @@ -174,16 +184,20 @@ private: static void finalize(JSCell*); protected: - static const unsigned StructureFlags = OverridesGetPropertyNames | OverridesGetOwnPropertySlot | Base::StructureFlags; - ArrayBuffer* existingBufferInButterfly(); - void* m_vector; + CopyBarrier<char> m_vector; // this is really a void*, but void would not work here. uint32_t m_length; TypedArrayMode m_mode; }; } // namespace JSC +namespace WTF { + +void printInternal(PrintStream&, JSC::TypedArrayMode); + +} // namespace WTF + #endif // JSArrayBufferView_h |