Closed
Bug 836604
Opened 11 years ago
Closed 11 years ago
Merge nsStyleSet::GetContext()'s boolean parameters into a single 'flags' parameter
Categories
(Core :: CSS Parsing and Computation, defect)
Core
CSS Parsing and Computation
Tracking
()
RESOLVED
FIXED
mozilla21
People
(Reporter: dholbert, Assigned: dholbert)
References
Details
Attachments
(1 file, 1 obsolete file)
17.50 KB,
patch
|
dholbert
:
review+
|
Details | Diff | Splinter Review |
No description provided.
Assignee | ||
Comment 1•11 years ago
|
||
(sorry, forgot the bug description) I'd like to add another boolean variable to nsStyleSet::GetContext, in bug 812822, but I don't want it to have four mysterious "..., true, false, ..., true, true)" boolean args in each invocation. Better to collapse the bools into a flags bitfield. Filing this bug on that.
Assignee | ||
Comment 2•11 years ago
|
||
Attachment #708484 -
Flags: review?(bzbarsky)
Comment 3•11 years ago
|
||
Comment on attachment 708484 [details] [diff] [review] fix v1 >- aIsVisitedLink); >+ aFlags & eIsLink); eIsVisitedLink? >+ aFlags & eIsLink ? >+ aFlags & eIsVisitedLink >+ : (aParentContext && aParentContext->RelevantLinkVisited()); This would benefit from some parens and the bit operations, I think. >+ aFlags & ^eDoAnimation); That should be a '~'. I assume the above doesn't compile, right? > // For pseudos, |data.IsLink()| being true means that > // our parent node is a link. That comment should probably move to above the |flags = eNoFlags;|, both times. >+ if ((aStyleContext->IsLinkContext() && >+ aStyleContext->RelevantLinkVisited()) || >+ aNewParentContext->RelevantLinkVisited()) { No, this is wrong. Say aStyleContext->IsLinkContext() is true, aStyleContext->RelevantLinkVisited() is false, and aNewParentContext->RelevantLinkVisited() is true. The new code returns true, while the old code correctly returned false. r=me with those issues fixed.
Attachment #708484 -
Flags: review?(bzbarsky) → review+
Assignee | ||
Comment 4•11 years ago
|
||
(In reply to Boris Zbarsky (:bz) from comment #3) > eIsVisitedLink? Oops, thanks! Fixed. > >+ aFlags & eIsLink ? > >+ aFlags & eIsVisitedLink > >+ : (aParentContext && aParentContext->RelevantLinkVisited()); > > This would benefit from some parens and the bit operations, I think. I added parens around bit operations, and I pulled the first chunk (before the '?') up to the previous line -- hopefully it's clearer now. > >+ aFlags & ^eDoAnimation); > > That should be a '~'. I assume the above doesn't compile, right? Yup (& it doesn't compile -- sorry about that. Previously, I just was incorrectly passing 'aFlags' straight through, and *that* compiled, but I noticed just before posting that I needed to invert the eDoAnimation bit, and of course I used the wrong operator-symbol. :)) Fixed. > > // For pseudos, |data.IsLink()| being true means that > > // our parent node is a link. > > That comment should probably move to above the |flags = eNoFlags;|, both > times. Fixed. > >+ if ((aStyleContext->IsLinkContext() && > >+ aStyleContext->RelevantLinkVisited()) || > >+ aNewParentContext->RelevantLinkVisited()) { > > No, this is wrong. Say aStyleContext->IsLinkContext() is true, > aStyleContext->RelevantLinkVisited() is false, and > aNewParentContext->RelevantLinkVisited() is true. The new code returns > true, while the old code correctly returned false. Ah, right -- technically I should be checking "!aStyleContext->IsLinkContext()" on that last line there, to preserve all of the original logic. Instead of that, though, I just reverted this change back to the original code, w/ 'bool relevantLinkVisited', and then I set the flag if relevantLinkVisited is true. > r=me with those issues fixed. Thanks!
Attachment #708484 -
Attachment is obsolete: true
Attachment #708744 -
Flags: review+
Assignee | ||
Comment 5•11 years ago
|
||
Try run (all tests on linux64 debug & opt): https://tbpl.mozilla.org/?tree=Try&rev=e55242bf2a17
Assignee | ||
Comment 6•11 years ago
|
||
Try run is looking good! I'll land this tomorrow.
Assignee | ||
Comment 7•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/7245eecea323
Assignee | ||
Updated•11 years ago
|
Flags: in-testsuite-
Comment 8•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/7245eecea323
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
You need to log in
before you can comment on or make changes to this bug.
Description
•