Closed Bug 240274 Opened 20 years ago Closed 20 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: 20 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: