Closed Bug 240274 Opened 21 years ago Closed 21 years ago

nsRenderingContextGTK::PopState calls nsRegionGTK::IsEmpty too much

Categories

(Core Graveyard :: GFX: Gtk, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bzbarsky, Assigned: tor)

References

Details

(Keywords: perf)

Attachments

(4 files, 1 obsolete file)

PopState() takes a boolean arg that almost all callers ignore. Setting this arg requires a call to nsRegionGTK::IsEmpty, typically. This is about 10% of the time spent in PopState. I'd think that this arg should become an (optional) PRBool* arg; then callers can pass null if they don't care about the clip.
Blocks: 240275
SetClipRect() also has an oft-ignored boolean arg that causes IsEmpty() to be called.
I went through the tree and couldn't find any callers that used the arg returned from PopState() - I'll attach the patch tomorrow.
Attachment #146194 - Flags: review?(blizzard)
Attachment #146194 - Flags: review?(blizzard) → review+
Attachment #146194 - Flags: superreview?(bryner)
Attachment #146194 - Flags: superreview?(bryner) → superreview+
PopState() patch checked in.
Assignee: blizzard → tor
Attachment #146711 - Flags: superreview?(bryner)
Attachment #146711 - Flags: review?(blizzard)
Attachment #146711 - Attachment is obsolete: true
Attachment #146711 - Flags: superreview?(bryner)
Attachment #146711 - Flags: review?(blizzard)
Attachment #146712 - Flags: superreview?(bryner)
Attachment #146712 - Flags: review?(blizzard)
Attachment #146712 - Flags: superreview?(bryner) → superreview+
Attachment #146712 - Flags: review?(blizzard) → review+
Checked in.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Attached image png showing regression
After this checkin: When i mouse over items on personal toobar, the black line under them vanishes. When i scroll windows, black lines draw over images, and white lines over the fonts. Not so good. Testing with a current trunk cvs build, Linux. I backed out the 40 or so files this checkin touched, and the bug vanished. I rolled the changes back in again, and the bug re-surfaced. Building with gcc version 3.3.3 and --enable-default-toolkit=gtk2 --disable-accessibility --disable-postscript --disable-ldap --disable-debug --disable-tests --disable-logging --enable-crypto --disable-bidi --enable-optimize=-O2 --disable-jsd --disable-mathml
Oops, accidentally checked in a one-line perf test change that causes these regressions. I've backed that out of the tree.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: