WebKit Bugzilla
Attachment 341704 Details for
Bug 186159
: JSImmutableButterfly should align its variable storage
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
c-backup.diff (text/plain), 2.57 KB, created by
Saam Barati
on 2018-05-31 16:43:36 PDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Saam Barati
Created:
2018-05-31 16:43:36 PDT
Size:
2.57 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 232374) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,19 @@ >+2018-05-31 Saam Barati <sbarati@apple.com> >+ >+ JSImmutableButterfly should align its variable storage >+ https://bugs.webkit.org/show_bug.cgi?id=186159 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ I'm also making the use of reinterpret_cast and bitwise_cast consistent >+ inside of JSImmutableButterfly. I switched everything to use bitwise_cast. >+ >+ * runtime/JSImmutableButterfly.h: >+ (JSC::JSImmutableButterfly::toButterfly const): >+ (JSC::JSImmutableButterfly::fromButterfly): >+ (JSC::JSImmutableButterfly::offsetOfData): >+ (JSC::JSImmutableButterfly::allocationSize): >+ > 2018-05-30 Yusuke Suzuki <utatane.tea@gmail.com> > > [JSC] Pass VM& parameter as much as possible >Index: Source/JavaScriptCore/runtime/JSImmutableButterfly.h >=================================================================== >--- Source/JavaScriptCore/runtime/JSImmutableButterfly.h (revision 232374) >+++ Source/JavaScriptCore/runtime/JSImmutableButterfly.h (working copy) >@@ -68,8 +68,8 @@ public: > unsigned vectorLength() const { return m_header.vectorLength(); } > unsigned length() const { return m_header.publicLength(); } > >- Butterfly* toButterfly() const { return reinterpret_cast<Butterfly*>(bitwise_cast<char*>(this) + sizeof(JSImmutableButterfly)); } >- static JSImmutableButterfly* fromButterfly(Butterfly* butterfly) { return reinterpret_cast<JSImmutableButterfly*>(reinterpret_cast<char*>(butterfly) - sizeof(JSImmutableButterfly)); } >+ Butterfly* toButterfly() const { return bitwise_cast<Butterfly*>(bitwise_cast<char*>(this) + offsetOfData()); } >+ static JSImmutableButterfly* fromButterfly(Butterfly* butterfly) { return bitwise_cast<JSImmutableButterfly*>(bitwise_cast<char*>(butterfly) - offsetOfData()); } > > JSValue get(unsigned index) const > { >@@ -102,10 +102,14 @@ public: > } > > private: >+ static constexpr size_t offsetOfData() >+ { >+ return WTF::roundUpToMultipleOf<sizeof(WriteBarrier<Unknown>)>(sizeof(JSImmutableButterfly)); >+ } > > static Checked<size_t, RecordOverflow> allocationSize(Checked<size_t, RecordOverflow> numItems) > { >- return sizeof(JSImmutableButterfly) + numItems * sizeof(WriteBarrier<Unknown>); >+ return offsetOfData() + numItems * sizeof(WriteBarrier<Unknown>); > } > > JSImmutableButterfly(VM& vm, Structure* structure, unsigned length)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186159
: 341704