Bug 306936
| Summary: | REGRESSION (283678@main): WebKit::RemoteImageBufferSet contains duplicate m_previouslyPaintedRect member variable from base class | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | David Kilzer (:ddkilzer) <ddkilzer> |
| Component: | WebKit Process Model | Assignee: | David Kilzer (:ddkilzer) <ddkilzer> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | mattwoodrow, nham, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar, Regression |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Bug Depends on: | 266201 | ||
| Bug Blocks: | |||
David Kilzer (:ddkilzer)
The `m_previouslyPaintedRect` member variable is declared in both `WebKit::ImageBufferSet` (base class) and `WebKit::RemoteImageBufferSet` (subclass), causing the subclass member to shadow the base class member.
Files affected:
- `Source/WebKit/Shared/graphics/ImageBufferSet.h`
- `Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.h`
Both declare: `std::optional<WebCore::IntRect> m_previouslyPaintedRect;`
This can lead to subtle bugs where code in the base class writes to its member while the subclass reads its own shadowed member (or vice versa).
Regressed in:
Share code for buffer swapping and copy-forward between RemoteLayerWithInProcessRendering and RemoteImageBufferSet.
<https://bugs.webkit.org/show_bug.cgi?id=266201>
<rdar://119474592>
<https://github.com/WebKit/WebKit/commit/27846c09e4fee72c441c3d78c0c93ed53bae2b2e>
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/169600253>
Radar WebKit Bug Importer
<rdar://problem/169600258>
David Kilzer (:ddkilzer)
Pull request: https://github.com/WebKit/WebKit/pull/57848
EWS
Committed 306794@main (d96a37b422a9): <https://commits.webkit.org/306794@main>
Reviewed commits have been landed. Closing PR #57848 and removing active labels.