WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
287777
[WebCore] Reduce size of CustomPaintCanvas, HTMLCanvasElement, OffscreenCanvas by 8 bytes each
https://bugs.webkit.org/show_bug.cgi?id=287777
Summary
[WebCore] Reduce size of CustomPaintCanvas, HTMLCanvasElement, OffscreenCanva...
David Kilzer (:ddkilzer)
Reported
2025-02-16 13:45:41 PST
Summary: Reduce WebCore::CustomPaintCanvas, WebCore::HTMLCanvasElement, and WebCore::OffscreenCanvas by 8 bytes each: WebCore::CanvasBase 120 bytes (no change) WebCore::CustomPaintCanvas 168->160 bytes WebCore::HTMLCanvasElement 304->296 bytes WebCore::OffscreenCanvas 224 -> 216 bytes
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2025-02-16 13:45:57 PST
<
rdar://problem/144952951
>
David Kilzer (:ddkilzer)
Comment 2
2025-02-16 13:50:36 PST
Before (note that dump-class-layout miscalculates padding for WebCore::CustomPaintCanvas): $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::CanvasBase +0 <120> WebCore::CanvasBase +0 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +0 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +0 < 8> __vtbl_ptr_type * _vptr +8 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +8 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +8 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +8 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +16 < 8> WebCore::IntSize m_size +16 < 4> int m_width +20 < 4> int m_height +24 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +24 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +32 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +32 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +32 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +32 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +32 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +32 < 8> _Atomic(unsigned long) __a_value +40 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +40 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +40 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +40 < 8> WebCore::GraphicsContextStateSaver * __value_ +40 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +40 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +48 < 8> WTF::String m_lastFillText +48 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +48 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +56 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +56 < 16> WebCore::IntRect m_postProcessDirtyRect +56 < 8> WebCore::IntPoint m_location +56 < 4> int m_x +60 < 4> int m_y +64 < 8> WebCore::IntSize m_size +64 < 4> int m_width +68 < 4> int m_height +72 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +72 < 8> unsigned long long m_value +80 < 1> bool m_originClean +81 < 1> bool m_hasCreatedImageBuffer +82 < 6> <PADDING: 6 bytes> +88 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +88 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +88 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +88 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +96 < 4> unsigned int m_operationCountSinceLastCleanup +100 < 4> unsigned int m_maxOperationCountWithoutCleanup +104 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +104 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +104 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +104 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +112 < 4> unsigned int m_operationCountSinceLastCleanup +116 < 4> unsigned int m_maxOperationCountWithoutCleanup Total byte size: 120 Total pad bytes: 6 Padding percentage: 5.00 % $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::OffscreenCanvas +0 <224> WebCore::OffscreenCanvas +0 < 32> WebCore::ActiveDOMObject WebCore::ActiveDOMObject +0 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +0 < 8> __vtbl_ptr_type * _vptr +8 < 16> WebCore::ContextDestructionObserver WebCore::ContextDestructionObserver +8 < 8> __vtbl_ptr_type * _vptr +16 < 8> WTF::WeakPtr<WebCore::ScriptExecutionContext, WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl> > m_scriptExecutionContext +16 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +16 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +24 < 8> uint64_t m_pendingActivityInstanceCount +32 < 4> WTF::RefCounted<WebCore::OffscreenCanvas> WTF::RefCounted<WebCore::OffscreenCanvas> +32 < 4> WTF::RefCountedBase WTF::RefCountedBase +32 < 4> unsigned int m_refCount +36 < 4> <PADDING: 4 bytes> +40 <120> WebCore::CanvasBase WebCore::CanvasBase +40 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +40 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +40 < 8> __vtbl_ptr_type * _vptr +48 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +48 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +48 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +48 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +56 < 8> WebCore::IntSize m_size +56 < 4> int m_width +60 < 4> int m_height +64 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +64 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +72 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +72 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +72 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +72 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +72 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +72 < 8> _Atomic(unsigned long) __a_value +80 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +80 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +80 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +80 < 8> WebCore::GraphicsContextStateSaver * __value_ +80 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +80 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +88 < 8> WTF::String m_lastFillText +88 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +88 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +96 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +96 < 16> WebCore::IntRect m_postProcessDirtyRect +96 < 8> WebCore::IntPoint m_location +96 < 4> int m_x +100 < 4> int m_y +104 < 8> WebCore::IntSize m_size +104 < 4> int m_width +108 < 4> int m_height +112 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +112 < 8> unsigned long long m_value +120 < 1> bool m_originClean +121 < 1> bool m_hasCreatedImageBuffer +122 < 6> <PADDING: 6 bytes> +128 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +128 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +128 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +128 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +136 < 4> unsigned int m_operationCountSinceLastCleanup +140 < 4> unsigned int m_maxOperationCountWithoutCleanup +144 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +144 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +144 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +144 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +152 < 4> unsigned int m_operationCountSinceLastCleanup +156 < 4> unsigned int m_maxOperationCountWithoutCleanup +160 < 24> WebCore::EventTarget WebCore::EventTarget +160 < 8> __vtbl_ptr_type * _vptr +168 < 8> WebCore::ScriptWrappable WebCore::ScriptWrappable +168 < 8> JSC::Weak<WebCore::JSDOMObject> m_wrapper +168 < 8> JSC::WeakImpl * m_impl +176 < 8> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> +176 < 8> WTF::WeakPtrFactoryWithBitField<WebCore::EventTarget, WebCore::WeakPtrImplWithEventTargetData> m_weakPtrFactory +176 < 8> WTF::CompactRefPtrTuple<WebCore::WeakPtrImplWithEventTargetData, unsigned short> m_impl +176 < 8> WTF::CompactPointerTuple<WebCore::WeakPtrImplWithEventTargetData *, unsigned short> m_data +176 < 8> uint64_t m_data +184 < 8> std::__1::unique_ptr<WebCore::CanvasRenderingContext, std::__1::default_delete<WebCore::CanvasRenderingContext> > m_context +184 < 8> std::__1::__compressed_pair<WebCore::CanvasRenderingContext *, std::__1::default_delete<WebCore::CanvasRenderingContext> > __ptr_ +184 < 8> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> +184 < 8> WebCore::CanvasRenderingContext * __value_ +184 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> +184 < 1> std::__1::default_delete<WebCore::CanvasRenderingContext> std::__1::default_delete<WebCore::CanvasRenderingContext> +192 < 8> WTF::RefPtr<WebCore::PlaceholderRenderingContextSource, WTF::RawPtrTraits<WebCore::PlaceholderRenderingContextSource>, WTF::DefaultRefDerefTraits<WebCore::PlaceholderRenderingContextSource> > m_placeholderSource +192 < 8> WTF::RawPtrTraits<WebCore::PlaceholderRenderingContextSource>::StorageType m_ptr +200 < 8> WTF::RefPtr<WebCore::Image, WTF::RawPtrTraits<WebCore::Image>, WTF::DefaultRefDerefTraits<WebCore::Image> > m_copiedImage +200 < 8> WTF::RawPtrTraits<WebCore::Image>::StorageType m_ptr +208 < 1> bool m_detached +209 < 1> bool m_hasScheduledCommit +210 < 6> <PADDING: 6 bytes> +216 < 8> std::__1::unique_ptr<WebCore::CSSParserContext, std::__1::default_delete<WebCore::CSSParserContext> > m_cssParserContext +216 < 8> std::__1::__compressed_pair<WebCore::CSSParserContext *, std::__1::default_delete<WebCore::CSSParserContext> > __ptr_ +216 < 8> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> +216 < 8> WebCore::CSSParserContext * __value_ +216 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> +216 < 1> std::__1::default_delete<WebCore::CSSParserContext> std::__1::default_delete<WebCore::CSSParserContext> Total byte size: 224 Total pad bytes: 16 Padding percentage: 7.14 % $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::CustomPaintCanvas +0 <168> WebCore::CustomPaintCanvas +0 <120> <PADDING: 120 bytes> +120 < 4> WTF::RefCounted<WebCore::CustomPaintCanvas> WTF::RefCounted<WebCore::CustomPaintCanvas> +120 < 4> WTF::RefCountedBase WTF::RefCountedBase +120 < 4> unsigned int m_refCount +0 <120> WebCore::CanvasBase WebCore::CanvasBase +0 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +0 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +0 < 8> __vtbl_ptr_type * _vptr +8 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +8 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +8 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +8 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +16 < 8> WebCore::IntSize m_size +16 < 4> int m_width +20 < 4> int m_height +24 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +24 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +32 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +32 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +32 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +32 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +32 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +32 < 8> _Atomic(unsigned long) __a_value +40 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +40 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +40 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +40 < 8> WebCore::GraphicsContextStateSaver * __value_ +40 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +40 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +48 < 8> WTF::String m_lastFillText +48 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +48 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +56 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +56 < 16> WebCore::IntRect m_postProcessDirtyRect +56 < 8> WebCore::IntPoint m_location +56 < 4> int m_x +60 < 4> int m_y +64 < 8> WebCore::IntSize m_size +64 < 4> int m_width +68 < 4> int m_height +72 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +72 < 8> unsigned long long m_value +80 < 1> bool m_originClean +81 < 1> bool m_hasCreatedImageBuffer +82 < 6> <PADDING: 6 bytes> +88 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +88 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +88 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +88 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +96 < 4> unsigned int m_operationCountSinceLastCleanup +100 < 4> unsigned int m_maxOperationCountWithoutCleanup +104 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +104 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +104 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +104 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +112 < 4> unsigned int m_operationCountSinceLastCleanup +116 < 4> unsigned int m_maxOperationCountWithoutCleanup +120 < 8> <PADDING: 8 bytes> +128 < 16> WebCore::ContextDestructionObserver WebCore::ContextDestructionObserver +128 < 8> __vtbl_ptr_type * _vptr +136 < 8> WTF::WeakPtr<WebCore::ScriptExecutionContext, WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl> > m_scriptExecutionContext +136 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +136 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +144 < 8> std::__1::unique_ptr<WebCore::PaintRenderingContext2D, std::__1::default_delete<WebCore::PaintRenderingContext2D> > m_context +144 < 8> std::__1::__compressed_pair<WebCore::PaintRenderingContext2D *, std::__1::default_delete<WebCore::PaintRenderingContext2D> > __ptr_ +144 < 8> std::__1::__compressed_pair_elem<WebCore::PaintRenderingContext2D *, 0, false> std::__1::__compressed_pair_elem<WebCore::PaintRenderingContext2D *, 0, false> +144 < 8> WebCore::PaintRenderingContext2D * __value_ +144 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::PaintRenderingContext2D>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::PaintRenderingContext2D>, 1, true> +144 < 1> std::__1::default_delete<WebCore::PaintRenderingContext2D> std::__1::default_delete<WebCore::PaintRenderingContext2D> +152 < 8> WTF::RefPtr<WebCore::Image, WTF::RawPtrTraits<WebCore::Image>, WTF::DefaultRefDerefTraits<WebCore::Image> > m_copiedImage +152 < 8> WTF::RawPtrTraits<WebCore::Image>::StorageType m_ptr +160 < 8> std::__1::unique_ptr<WebCore::CSSParserContext, std::__1::default_delete<WebCore::CSSParserContext> > m_cssParserContext +160 < 8> std::__1::__compressed_pair<WebCore::CSSParserContext *, std::__1::default_delete<WebCore::CSSParserContext> > __ptr_ +160 < 8> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> +160 < 8> WebCore::CSSParserContext * __value_ +160 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> +160 < 1> std::__1::default_delete<WebCore::CSSParserContext> std::__1::default_delete<WebCore::CSSParserContext> Total byte size: 168 Total pad bytes: 134 Padding percentage: 79.76 % $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::HTMLCanvasElement +0 <304> WebCore::HTMLCanvasElement +0 <120> WebCore::HTMLElement WebCore::HTMLElement +0 <120> WebCore::StyledElement WebCore::StyledElement +0 <120> WebCore::Element WebCore::Element +0 <104> WebCore::ContainerNode WebCore::ContainerNode +0 < 88> WebCore::Node WebCore::Node +0 < 24> WebCore::EventTarget WebCore::EventTarget +0 < 8> __vtbl_ptr_type * _vptr +8 < 8> WebCore::ScriptWrappable WebCore::ScriptWrappable +8 < 8> JSC::Weak<WebCore::JSDOMObject> m_wrapper +8 < 8> JSC::WeakImpl * m_impl +16 < 8> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> +16 < 8> WTF::WeakPtrFactoryWithBitField<WebCore::EventTarget, WebCore::WeakPtrImplWithEventTargetData> m_weakPtrFactory +16 < 8> WTF::CompactRefPtrTuple<WebCore::WeakPtrImplWithEventTargetData, unsigned short> m_impl +16 < 8> WTF::CompactPointerTuple<WebCore::WeakPtrImplWithEventTargetData *, unsigned short> m_data +16 < 8> uint64_t m_data +24 < 4> WTF::CanMakeCheckedPtr<WebCore::Node, WTF::DefaultedOperatorEqual::No> WTF::CanMakeCheckedPtr<WebCore::Node, WTF::DefaultedOperatorEqual::No> +24 < 4> WTF::CanMakeCheckedPtrBase<WTF::SingleThreadIntegralWrapper<unsigned int>, unsigned int, WTF::DefaultedOperatorEqual::No> WTF::CanMakeCheckedPtrBase<WTF::SingleThreadIntegralWrapper<unsigned int>, unsigned int, WTF::DefaultedOperatorEqual::No> +24 < 4> WTF::SingleThreadIntegralWrapper<unsigned int> m_checkedPtrCount +24 < 4> unsigned int m_value +28 < 4> uint32_t m_refCountAndParentBit +32 < 2> uint16_t m_typeBitFields +34 < 2> WTF::OptionSet<WebCore::Node::StateFlag> m_stateFlags +34 < 2> WTF::OptionSet<WebCore::Node::StateFlag>::StorageType m_storage +36 < 2> WTF::OptionSet<WebCore::Node::ElementStateFlag> m_elementStateFlags +36 < 2> WTF::OptionSet<WebCore::Node::ElementStateFlag>::StorageType m_storage +38 < 2> WebCore::Node::StyleBitfields m_styleBitfields +38 < :3> uint16_t m_styleValidity : 3 +38 < :13> uint16_t m_flags : 13 +40 < 8> WTF::CheckedPtr<WebCore::ContainerNode, WTF::RawPtrTraits<WebCore::ContainerNode> > m_parentNode +40 < 8> WTF::RawPtrTraits<WebCore::ContainerNode>::StorageType m_ptr +48 < 8> WebCore::TreeScope * m_treeScope +56 < 8> WebCore::Node * m_previousSibling +64 < 8> WTF::CheckedPtr<WebCore::Node, WTF::RawPtrTraits<WebCore::Node> > m_next +64 < 8> WTF::RawPtrTraits<WebCore::Node>::StorageType m_ptr +72 < 8> WebCore::RenderObject * m_renderer +80 < 8> WTF::CompactUniquePtrTuple<WebCore::NodeRareData, unsigned short, std::__1::default_delete<WebCore::NodeRareData> > m_rareDataWithBitfields +80 < 8> WTF::CompactPointerTuple<WebCore::NodeRareData *, unsigned short> m_data +80 < 8> uint64_t m_data +88 < 8> WTF::CheckedPtr<WebCore::Node, WTF::RawPtrTraits<WebCore::Node> > m_firstChild +88 < 8> WTF::RawPtrTraits<WebCore::Node>::StorageType m_ptr +96 < 8> WTF::CheckedPtr<WebCore::Node, WTF::RawPtrTraits<WebCore::Node> > m_lastChild +96 < 8> WTF::RawPtrTraits<WebCore::Node>::StorageType m_ptr +104 < 8> WebCore::QualifiedName m_tagName +104 < 8> WTF::RefPtr<WebCore::QualifiedName::QualifiedNameImpl, WTF::RawPtrTraits<WebCore::QualifiedName::QualifiedNameImpl>, WTF::DefaultRefDerefTraits<WebCore::QualifiedName::QualifiedNameImpl> > m_impl +104 < 8> WTF::RawPtrTraits<WebCore::QualifiedName::QualifiedNameImpl>::StorageType m_ptr +112 < 8> WTF::RefPtr<WebCore::ElementData, WTF::RawPtrTraits<WebCore::ElementData>, WTF::DefaultRefDerefTraits<WebCore::ElementData> > m_elementData +112 < 8> WTF::RawPtrTraits<WebCore::ElementData>::StorageType m_ptr +120 <120> WebCore::CanvasBase WebCore::CanvasBase +120 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +120 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +120 < 8> __vtbl_ptr_type * _vptr +128 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +128 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +128 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +128 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +136 < 8> WebCore::IntSize m_size +136 < 4> int m_width +140 < 4> int m_height +144 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +144 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +152 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +152 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +152 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +152 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +152 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +152 < 8> _Atomic(unsigned long) __a_value +160 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +160 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +160 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +160 < 8> WebCore::GraphicsContextStateSaver * __value_ +160 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +160 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +168 < 8> WTF::String m_lastFillText +168 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +168 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +176 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +176 < 16> WebCore::IntRect m_postProcessDirtyRect +176 < 8> WebCore::IntPoint m_location +176 < 4> int m_x +180 < 4> int m_y +184 < 8> WebCore::IntSize m_size +184 < 4> int m_width +188 < 4> int m_height +192 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +192 < 8> unsigned long long m_value +200 < 1> bool m_originClean +201 < 1> bool m_hasCreatedImageBuffer +202 < 6> <PADDING: 6 bytes> +208 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +208 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +208 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +208 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +216 < 4> unsigned int m_operationCountSinceLastCleanup +220 < 4> unsigned int m_maxOperationCountWithoutCleanup +224 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +224 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +224 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +224 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +232 < 4> unsigned int m_operationCountSinceLastCleanup +236 < 4> unsigned int m_maxOperationCountWithoutCleanup +240 < 32> WebCore::ActiveDOMObject WebCore::ActiveDOMObject +240 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +240 < 8> __vtbl_ptr_type * _vptr +248 < 16> WebCore::ContextDestructionObserver WebCore::ContextDestructionObserver +248 < 8> __vtbl_ptr_type * _vptr +256 < 8> WTF::WeakPtr<WebCore::ScriptExecutionContext, WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl> > m_scriptExecutionContext +256 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +256 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +264 < 8> uint64_t m_pendingActivityInstanceCount +272 < 8> std::__1::unique_ptr<WebCore::CanvasRenderingContext, std::__1::default_delete<WebCore::CanvasRenderingContext> > m_context +272 < 8> std::__1::__compressed_pair<WebCore::CanvasRenderingContext *, std::__1::default_delete<WebCore::CanvasRenderingContext> > __ptr_ +272 < 8> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> +272 < 8> WebCore::CanvasRenderingContext * __value_ +272 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> +272 < 1> std::__1::default_delete<WebCore::CanvasRenderingContext> std::__1::default_delete<WebCore::CanvasRenderingContext> +280 < 8> WTF::RefPtr<WebCore::Image, WTF::RawPtrTraits<WebCore::Image>, WTF::DefaultRefDerefTraits<WebCore::Image> > m_copiedImage +280 < 8> WTF::RawPtrTraits<WebCore::Image>::StorageType m_ptr +288 < 8> std::__1::unique_ptr<WebCore::CSSParserContext, std::__1::default_delete<WebCore::CSSParserContext> > m_cssParserContext +288 < 8> std::__1::__compressed_pair<WebCore::CSSParserContext *, std::__1::default_delete<WebCore::CSSParserContext> > __ptr_ +288 < 8> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> +288 < 8> WebCore::CSSParserContext * __value_ +288 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> +288 < 1> std::__1::default_delete<WebCore::CSSParserContext> std::__1::default_delete<WebCore::CSSParserContext> +296 < 1> bool m_ignoreReset +297 < 1> bool m_didClearImageBuffer +298 < 1> bool m_hasRelevantWebGLEventListener +299 < 1> bool m_isSnapshotting +300 < 4> <PADDING: 4 bytes> Total byte size: 304 Total pad bytes: 10 Padding percentage: 3.29 %
David Kilzer (:ddkilzer)
Comment 3
2025-02-16 13:52:22 PST
After: $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::CanvasBase +0 <120> WebCore::CanvasBase +0 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +0 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +0 < 8> __vtbl_ptr_type * _vptr +8 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +8 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +8 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +8 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +16 < 8> WebCore::IntSize m_size +16 < 4> int m_width +20 < 4> int m_height +24 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +24 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +32 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +32 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +32 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +32 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +32 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +32 < 8> _Atomic(unsigned long) __a_value +40 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +40 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +40 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +40 < 8> WebCore::GraphicsContextStateSaver * __value_ +40 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +40 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +48 < 8> WTF::String m_lastFillText +48 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +48 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +56 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +56 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +56 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +56 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +64 < 4> unsigned int m_operationCountSinceLastCleanup +68 < 4> unsigned int m_maxOperationCountWithoutCleanup +72 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +72 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +72 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +72 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +80 < 4> unsigned int m_operationCountSinceLastCleanup +84 < 4> unsigned int m_maxOperationCountWithoutCleanup +88 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +88 < 16> WebCore::IntRect m_postProcessDirtyRect +88 < 8> WebCore::IntPoint m_location +88 < 4> int m_x +92 < 4> int m_y +96 < 8> WebCore::IntSize m_size +96 < 4> int m_width +100 < 4> int m_height +104 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +104 < 8> unsigned long long m_value +112 < 1> bool m_originClean +113 < 1> bool m_hasCreatedImageBuffer +114 < 6> <PADDING: 6 bytes> Total byte size: 120 Total pad bytes: 6 Padding percentage: 5.00 % $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::OffscreenCanvas +0 <216> WebCore::OffscreenCanvas +0 < 32> WebCore::ActiveDOMObject WebCore::ActiveDOMObject +0 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +0 < 8> __vtbl_ptr_type * _vptr +8 < 16> WebCore::ContextDestructionObserver WebCore::ContextDestructionObserver +8 < 8> __vtbl_ptr_type * _vptr +16 < 8> WTF::WeakPtr<WebCore::ScriptExecutionContext, WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl> > m_scriptExecutionContext +16 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +16 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +24 < 8> uint64_t m_pendingActivityInstanceCount +32 <120> WebCore::CanvasBase WebCore::CanvasBase +32 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +32 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +32 < 8> __vtbl_ptr_type * _vptr +40 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +40 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +40 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +40 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +48 < 8> WebCore::IntSize m_size +48 < 4> int m_width +52 < 4> int m_height +56 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +56 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +64 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +64 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +64 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +64 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +64 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +64 < 8> _Atomic(unsigned long) __a_value +72 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +72 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +72 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +72 < 8> WebCore::GraphicsContextStateSaver * __value_ +72 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +72 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +80 < 8> WTF::String m_lastFillText +80 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +80 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +88 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +88 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +88 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +88 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +96 < 4> unsigned int m_operationCountSinceLastCleanup +100 < 4> unsigned int m_maxOperationCountWithoutCleanup +104 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +104 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +104 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +104 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +112 < 4> unsigned int m_operationCountSinceLastCleanup +116 < 4> unsigned int m_maxOperationCountWithoutCleanup +120 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +120 < 16> WebCore::IntRect m_postProcessDirtyRect +120 < 8> WebCore::IntPoint m_location +120 < 4> int m_x +124 < 4> int m_y +128 < 8> WebCore::IntSize m_size +128 < 4> int m_width +132 < 4> int m_height +136 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +136 < 8> unsigned long long m_value +144 < 1> bool m_originClean +145 < 1> bool m_hasCreatedImageBuffer +146 < 2> <PADDING: 2 bytes> +148 < 4> WTF::RefCounted<WebCore::OffscreenCanvas> WTF::RefCounted<WebCore::OffscreenCanvas> +148 < 4> WTF::RefCountedBase WTF::RefCountedBase +148 < 4> unsigned int m_refCount +152 < 24> WebCore::EventTarget WebCore::EventTarget +152 < 8> __vtbl_ptr_type * _vptr +160 < 8> WebCore::ScriptWrappable WebCore::ScriptWrappable +160 < 8> JSC::Weak<WebCore::JSDOMObject> m_wrapper +160 < 8> JSC::WeakImpl * m_impl +168 < 8> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> +168 < 8> WTF::WeakPtrFactoryWithBitField<WebCore::EventTarget, WebCore::WeakPtrImplWithEventTargetData> m_weakPtrFactory +168 < 8> WTF::CompactRefPtrTuple<WebCore::WeakPtrImplWithEventTargetData, unsigned short> m_impl +168 < 8> WTF::CompactPointerTuple<WebCore::WeakPtrImplWithEventTargetData *, unsigned short> m_data +168 < 8> uint64_t m_data +176 < 1> bool m_detached +177 < 1> bool m_hasScheduledCommit +178 < 6> <PADDING: 6 bytes> +184 < 8> std::__1::unique_ptr<WebCore::CanvasRenderingContext, std::__1::default_delete<WebCore::CanvasRenderingContext> > m_context +184 < 8> std::__1::__compressed_pair<WebCore::CanvasRenderingContext *, std::__1::default_delete<WebCore::CanvasRenderingContext> > __ptr_ +184 < 8> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> +184 < 8> WebCore::CanvasRenderingContext * __value_ +184 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> +184 < 1> std::__1::default_delete<WebCore::CanvasRenderingContext> std::__1::default_delete<WebCore::CanvasRenderingContext> +192 < 8> WTF::RefPtr<WebCore::PlaceholderRenderingContextSource, WTF::RawPtrTraits<WebCore::PlaceholderRenderingContextSource>, WTF::DefaultRefDerefTraits<WebCore::PlaceholderRenderingContextSource> > m_placeholderSource +192 < 8> WTF::RawPtrTraits<WebCore::PlaceholderRenderingContextSource>::StorageType m_ptr +200 < 8> WTF::RefPtr<WebCore::Image, WTF::RawPtrTraits<WebCore::Image>, WTF::DefaultRefDerefTraits<WebCore::Image> > m_copiedImage +200 < 8> WTF::RawPtrTraits<WebCore::Image>::StorageType m_ptr +208 < 8> std::__1::unique_ptr<WebCore::CSSParserContext, std::__1::default_delete<WebCore::CSSParserContext> > m_cssParserContext +208 < 8> std::__1::__compressed_pair<WebCore::CSSParserContext *, std::__1::default_delete<WebCore::CSSParserContext> > __ptr_ +208 < 8> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> +208 < 8> WebCore::CSSParserContext * __value_ +208 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> +208 < 1> std::__1::default_delete<WebCore::CSSParserContext> std::__1::default_delete<WebCore::CSSParserContext> Total byte size: 216 Total pad bytes: 8 Padding percentage: 3.70 % $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::CustomPaintCanvas +0 <160> WebCore::CustomPaintCanvas +0 <120> WebCore::CanvasBase WebCore::CanvasBase +0 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +0 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +0 < 8> __vtbl_ptr_type * _vptr +8 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +8 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +8 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +8 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +16 < 8> WebCore::IntSize m_size +16 < 4> int m_width +20 < 4> int m_height +24 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +24 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +32 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +32 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +32 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +32 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +32 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +32 < 8> _Atomic(unsigned long) __a_value +40 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +40 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +40 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +40 < 8> WebCore::GraphicsContextStateSaver * __value_ +40 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +40 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +48 < 8> WTF::String m_lastFillText +48 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +48 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +56 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +56 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +56 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +56 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +64 < 4> unsigned int m_operationCountSinceLastCleanup +68 < 4> unsigned int m_maxOperationCountWithoutCleanup +72 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +72 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +72 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +72 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +80 < 4> unsigned int m_operationCountSinceLastCleanup +84 < 4> unsigned int m_maxOperationCountWithoutCleanup +88 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +88 < 16> WebCore::IntRect m_postProcessDirtyRect +88 < 8> WebCore::IntPoint m_location +88 < 4> int m_x +92 < 4> int m_y +96 < 8> WebCore::IntSize m_size +96 < 4> int m_width +100 < 4> int m_height +104 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +104 < 8> unsigned long long m_value +112 < 1> bool m_originClean +113 < 1> bool m_hasCreatedImageBuffer +114 < 2> <PADDING: 2 bytes> +116 < 4> WTF::RefCounted<WebCore::CustomPaintCanvas> WTF::RefCounted<WebCore::CustomPaintCanvas> +116 < 4> WTF::RefCountedBase WTF::RefCountedBase +116 < 4> unsigned int m_refCount +120 < 16> WebCore::ContextDestructionObserver WebCore::ContextDestructionObserver +120 < 8> __vtbl_ptr_type * _vptr +128 < 8> WTF::WeakPtr<WebCore::ScriptExecutionContext, WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl> > m_scriptExecutionContext +128 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +128 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +136 < 8> std::__1::unique_ptr<WebCore::PaintRenderingContext2D, std::__1::default_delete<WebCore::PaintRenderingContext2D> > m_context +136 < 8> std::__1::__compressed_pair<WebCore::PaintRenderingContext2D *, std::__1::default_delete<WebCore::PaintRenderingContext2D> > __ptr_ +136 < 8> std::__1::__compressed_pair_elem<WebCore::PaintRenderingContext2D *, 0, false> std::__1::__compressed_pair_elem<WebCore::PaintRenderingContext2D *, 0, false> +136 < 8> WebCore::PaintRenderingContext2D * __value_ +136 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::PaintRenderingContext2D>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::PaintRenderingContext2D>, 1, true> +136 < 1> std::__1::default_delete<WebCore::PaintRenderingContext2D> std::__1::default_delete<WebCore::PaintRenderingContext2D> +144 < 8> WTF::RefPtr<WebCore::Image, WTF::RawPtrTraits<WebCore::Image>, WTF::DefaultRefDerefTraits<WebCore::Image> > m_copiedImage +144 < 8> WTF::RawPtrTraits<WebCore::Image>::StorageType m_ptr +152 < 8> std::__1::unique_ptr<WebCore::CSSParserContext, std::__1::default_delete<WebCore::CSSParserContext> > m_cssParserContext +152 < 8> std::__1::__compressed_pair<WebCore::CSSParserContext *, std::__1::default_delete<WebCore::CSSParserContext> > __ptr_ +152 < 8> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> +152 < 8> WebCore::CSSParserContext * __value_ +152 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> +152 < 1> std::__1::default_delete<WebCore::CSSParserContext> std::__1::default_delete<WebCore::CSSParserContext> Total byte size: 160 Total pad bytes: 2 Padding percentage: 1.25 % $ xcrun python3 ./Tools/Scripts/dump-class-layout -b WebKitBuild -c Release -a arm64e WebCore WebCore::HTMLCanvasElement +0 <296> WebCore::HTMLCanvasElement +0 <120> WebCore::HTMLElement WebCore::HTMLElement +0 <120> WebCore::StyledElement WebCore::StyledElement +0 <120> WebCore::Element WebCore::Element +0 <104> WebCore::ContainerNode WebCore::ContainerNode +0 < 88> WebCore::Node WebCore::Node +0 < 24> WebCore::EventTarget WebCore::EventTarget +0 < 8> __vtbl_ptr_type * _vptr +8 < 8> WebCore::ScriptWrappable WebCore::ScriptWrappable +8 < 8> JSC::Weak<WebCore::JSDOMObject> m_wrapper +8 < 8> JSC::WeakImpl * m_impl +16 < 8> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> WTF::CanMakeWeakPtrWithBitField<EventTarget, WeakPtrFactoryInitialization::Lazy, WeakPtrImplWithEventTargetData> +16 < 8> WTF::WeakPtrFactoryWithBitField<WebCore::EventTarget, WebCore::WeakPtrImplWithEventTargetData> m_weakPtrFactory +16 < 8> WTF::CompactRefPtrTuple<WebCore::WeakPtrImplWithEventTargetData, unsigned short> m_impl +16 < 8> WTF::CompactPointerTuple<WebCore::WeakPtrImplWithEventTargetData *, unsigned short> m_data +16 < 8> uint64_t m_data +24 < 4> WTF::CanMakeCheckedPtr<WebCore::Node, WTF::DefaultedOperatorEqual::No> WTF::CanMakeCheckedPtr<WebCore::Node, WTF::DefaultedOperatorEqual::No> +24 < 4> WTF::CanMakeCheckedPtrBase<WTF::SingleThreadIntegralWrapper<unsigned int>, unsigned int, WTF::DefaultedOperatorEqual::No> WTF::CanMakeCheckedPtrBase<WTF::SingleThreadIntegralWrapper<unsigned int>, unsigned int, WTF::DefaultedOperatorEqual::No> +24 < 4> WTF::SingleThreadIntegralWrapper<unsigned int> m_checkedPtrCount +24 < 4> unsigned int m_value +28 < 4> uint32_t m_refCountAndParentBit +32 < 2> uint16_t m_typeBitFields +34 < 2> WTF::OptionSet<WebCore::Node::StateFlag> m_stateFlags +34 < 2> WTF::OptionSet<WebCore::Node::StateFlag>::StorageType m_storage +36 < 2> WTF::OptionSet<WebCore::Node::ElementStateFlag> m_elementStateFlags +36 < 2> WTF::OptionSet<WebCore::Node::ElementStateFlag>::StorageType m_storage +38 < 2> WebCore::Node::StyleBitfields m_styleBitfields +38 < :3> uint16_t m_styleValidity : 3 +38 < :13> uint16_t m_flags : 13 +40 < 8> WTF::CheckedPtr<WebCore::ContainerNode, WTF::RawPtrTraits<WebCore::ContainerNode> > m_parentNode +40 < 8> WTF::RawPtrTraits<WebCore::ContainerNode>::StorageType m_ptr +48 < 8> WebCore::TreeScope * m_treeScope +56 < 8> WebCore::Node * m_previousSibling +64 < 8> WTF::CheckedPtr<WebCore::Node, WTF::RawPtrTraits<WebCore::Node> > m_next +64 < 8> WTF::RawPtrTraits<WebCore::Node>::StorageType m_ptr +72 < 8> WebCore::RenderObject * m_renderer +80 < 8> WTF::CompactUniquePtrTuple<WebCore::NodeRareData, unsigned short, std::__1::default_delete<WebCore::NodeRareData> > m_rareDataWithBitfields +80 < 8> WTF::CompactPointerTuple<WebCore::NodeRareData *, unsigned short> m_data +80 < 8> uint64_t m_data +88 < 8> WTF::CheckedPtr<WebCore::Node, WTF::RawPtrTraits<WebCore::Node> > m_firstChild +88 < 8> WTF::RawPtrTraits<WebCore::Node>::StorageType m_ptr +96 < 8> WTF::CheckedPtr<WebCore::Node, WTF::RawPtrTraits<WebCore::Node> > m_lastChild +96 < 8> WTF::RawPtrTraits<WebCore::Node>::StorageType m_ptr +104 < 8> WebCore::QualifiedName m_tagName +104 < 8> WTF::RefPtr<WebCore::QualifiedName::QualifiedNameImpl, WTF::RawPtrTraits<WebCore::QualifiedName::QualifiedNameImpl>, WTF::DefaultRefDerefTraits<WebCore::QualifiedName::QualifiedNameImpl> > m_impl +104 < 8> WTF::RawPtrTraits<WebCore::QualifiedName::QualifiedNameImpl>::StorageType m_ptr +112 < 8> WTF::RefPtr<WebCore::ElementData, WTF::RawPtrTraits<WebCore::ElementData>, WTF::DefaultRefDerefTraits<WebCore::ElementData> > m_elementData +112 < 8> WTF::RawPtrTraits<WebCore::ElementData>::StorageType m_ptr +120 < 32> WebCore::ActiveDOMObject WebCore::ActiveDOMObject +120 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +120 < 8> __vtbl_ptr_type * _vptr +128 < 16> WebCore::ContextDestructionObserver WebCore::ContextDestructionObserver +128 < 8> __vtbl_ptr_type * _vptr +136 < 8> WTF::WeakPtr<WebCore::ScriptExecutionContext, WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl> > m_scriptExecutionContext +136 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +136 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +144 < 8> uint64_t m_pendingActivityInstanceCount +152 <120> WebCore::CanvasBase WebCore::CanvasBase +152 < 16> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> WTF::AbstractRefCountedAndCanMakeWeakPtr<WebCore::CanvasBase> +152 < 8> WTF::AbstractRefCounted WTF::AbstractRefCounted +152 < 8> __vtbl_ptr_type * _vptr +160 < 8> WTF::CanMakeWeakPtr<WebCore::CanvasBase> WTF::CanMakeWeakPtr<WebCore::CanvasBase> +160 < 8> WTF::WeakPtrFactory<WebCore::CanvasBase, WTF::DefaultWeakPtrImpl> m_weakPtrFactory +160 < 8> WTF::RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > m_impl +160 < 8> WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>::StorageType m_ptr +168 < 8> WebCore::IntSize m_size +168 < 4> int m_width +172 < 4> int m_height +176 < 8> WTF::RefPtr<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> > m_imageBuffer +176 < 8> WTF::RawPtrTraits<WebCore::ImageBuffer>::StorageType m_ptr +184 < 8> std::__1::atomic<unsigned long> m_imageBufferMemoryCost +184 < 8> std::__1::__atomic_base<unsigned long, true> std::__1::__atomic_base<unsigned long, true> +184 < 8> std::__1::__atomic_base<unsigned long, false> std::__1::__atomic_base<unsigned long, false> +184 < 8> std::__1::__cxx_atomic_impl<unsigned long, std::__1::__cxx_atomic_base_impl<unsigned long> > __a_ +184 < 8> std::__1::__cxx_atomic_base_impl<unsigned long> std::__1::__cxx_atomic_base_impl<unsigned long> +184 < 8> _Atomic(unsigned long) __a_value +192 < 8> std::__1::unique_ptr<WebCore::GraphicsContextStateSaver, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > m_contextStateSaver +192 < 8> std::__1::__compressed_pair<WebCore::GraphicsContextStateSaver *, std::__1::default_delete<WebCore::GraphicsContextStateSaver> > __ptr_ +192 < 8> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> std::__1::__compressed_pair_elem<WebCore::GraphicsContextStateSaver *, 0, false> +192 < 8> WebCore::GraphicsContextStateSaver * __value_ +192 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::GraphicsContextStateSaver>, 1, true> +192 < 1> std::__1::default_delete<WebCore::GraphicsContextStateSaver> std::__1::default_delete<WebCore::GraphicsContextStateSaver> +200 < 8> WTF::String m_lastFillText +200 < 8> WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> > m_impl +200 < 8> WTF::RawPtrTraits<WTF::StringImpl>::StorageType m_ptr +208 < 16> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_observers +208 < 8> WTF::WeakHashSet<WebCore::CanvasObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +208 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +208 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +216 < 4> unsigned int m_operationCountSinceLastCleanup +220 < 4> unsigned int m_maxOperationCountWithoutCleanup +224 < 16> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes> m_displayBufferObservers +224 < 8> WTF::WeakHashSet<WebCore::CanvasDisplayBufferObserver, WTF::DefaultWeakPtrImpl, WTF::EnableWeakPtrThreadingAssertions::Yes>::WeakPtrImplSet m_set +224 < 8> WTF::HashSet<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTableTraits, 255>::HashTableType m_impl +224 < 8> WTF::HashTable<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> >, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, WTF::HashTraits<WTF::Ref<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl> > >, 255>::(anonymous union) None +232 < 4> unsigned int m_operationCountSinceLastCleanup +236 < 4> unsigned int m_maxOperationCountWithoutCleanup +240 < 16> WebCore::CanvasNoiseInjection m_canvasNoiseInjection +240 < 16> WebCore::IntRect m_postProcessDirtyRect +240 < 8> WebCore::IntPoint m_location +240 < 4> int m_x +244 < 4> int m_y +248 < 8> WebCore::IntSize m_size +248 < 4> int m_width +252 < 4> int m_height +256 < 8> WTF::Markable<unsigned long long, WTF::IntegralMarkableTraits<unsigned long long, 9223372036854775807> > m_canvasNoiseHashSalt +256 < 8> unsigned long long m_value +264 < 1> bool m_originClean +265 < 1> bool m_hasCreatedImageBuffer +266 < 1> bool m_ignoreReset +267 < 1> bool m_didClearImageBuffer +268 < 1> bool m_hasRelevantWebGLEventListener +269 < 1> bool m_isSnapshotting +270 < 2> <PADDING: 2 bytes> +272 < 8> std::__1::unique_ptr<WebCore::CanvasRenderingContext, std::__1::default_delete<WebCore::CanvasRenderingContext> > m_context +272 < 8> std::__1::__compressed_pair<WebCore::CanvasRenderingContext *, std::__1::default_delete<WebCore::CanvasRenderingContext> > __ptr_ +272 < 8> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CanvasRenderingContext *, 0, false> +272 < 8> WebCore::CanvasRenderingContext * __value_ +272 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CanvasRenderingContext>, 1, true> +272 < 1> std::__1::default_delete<WebCore::CanvasRenderingContext> std::__1::default_delete<WebCore::CanvasRenderingContext> +280 < 8> WTF::RefPtr<WebCore::Image, WTF::RawPtrTraits<WebCore::Image>, WTF::DefaultRefDerefTraits<WebCore::Image> > m_copiedImage +280 < 8> WTF::RawPtrTraits<WebCore::Image>::StorageType m_ptr +288 < 8> std::__1::unique_ptr<WebCore::CSSParserContext, std::__1::default_delete<WebCore::CSSParserContext> > m_cssParserContext +288 < 8> std::__1::__compressed_pair<WebCore::CSSParserContext *, std::__1::default_delete<WebCore::CSSParserContext> > __ptr_ +288 < 8> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> std::__1::__compressed_pair_elem<WebCore::CSSParserContext *, 0, false> +288 < 8> WebCore::CSSParserContext * __value_ +288 < 1> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> std::__1::__compressed_pair_elem<std::__1::default_delete<WebCore::CSSParserContext>, 1, true> +288 < 1> std::__1::default_delete<WebCore::CSSParserContext> std::__1::default_delete<WebCore::CSSParserContext> Total byte size: 296 Total pad bytes: 2 Padding percentage: 0.68 %
David Kilzer (:ddkilzer)
Comment 4
2025-02-16 14:18:21 PST
Pull request:
https://github.com/WebKit/WebKit/pull/40692
EWS
Comment 5
2025-02-17 10:28:08 PST
Committed
290488@main
(d1a126e1325e): <
https://commits.webkit.org/290488@main
> Reviewed commits have been landed. Closing PR #40692 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug