Open
Bug 102072
Opened 23 years ago
Updated 2 years ago
how can we remove the NS_strcmp from nsCSSValue::operator==
Categories
(Core :: CSS Parsing and Computation, defect, P5)
Tracking
()
NEW
mozilla1.2alpha
People
(Reporter: sspitzer, Unassigned)
References
Details
as you will soon see, I have no clue about the style system. but I've been noticing that values that we are strduping in nsCSSValue::operator= are chrome gif urls. is it possible to atomize the chrome gif urls to avoid the strdup (and eventual strcmp?) nsCRT::strdup(const unsigned short * 0x035ee760) line 510 nsCSSValue::operator=(const nsCSSValue & {...}) line 121 + 13 bytes MapListForDeclaration(nsICSSDeclaration * 0x035ee8a0, nsCSSList & {...}) line 1802 CSSStyleRuleImpl::MapRuleInfoInto(CSSStyleRuleImpl * const 0x035ee820, nsRuleData * 0x0012e088) line 1641 + 19 bytes nsRuleNode::WalkRuleTree(nsStyleStructID eStyleStruct_List, nsIStyleContext * 0x036b9b5c, nsRuleData * 0x0012e088, nsCSSStruct * 0x0012e0cc) line 1332 nsRuleNode::GetListData(nsIStyleContext * 0x036b9b5c) line 1216 + 22 bytes nsRuleNode::GetStyleData(nsStyleStructID eStyleStruct_List, nsIStyleContext * 0x036b9b5c) line 4154 + 16 bytes nsStyleContext::GetStyleData(nsStyleStructID eStyleStruct_List) line 385 nsStyleContext::CalcStyleDifference(nsStyleContext * const 0x036b9b5c, nsIStyleContext * 0x036f2cc0, int & 0, int 0) line 690 + 13 bytes CaptureChange(nsIStyleContext * 0x036f2cc0, nsIStyleContext * 0x036b9b5c, nsIFrame * 0x036f4944, nsIContent * 0x03603550, nsStyleChangeList & {...}, int 0) line 1552 FrameManager::ReResolveStyleContext(nsIPresContext * 0x0339bcf0, nsIFrame * 0x036f4944, nsIStyleContext * 0x03808d20, nsIContent * 0x04325660, int -1, nsIAtom * 0x00000000, nsStyleChangeList & {...}, int 0, int & 0) line 1641 + 29 bytes FrameManager::ReResolveStyleContext(nsIPresContext * 0x0339bcf0, nsIFrame * 0x036f46ac, nsIStyleContext * 0x03739478, nsIContent * 0x035b12e0, int -1, nsIAtom * 0x00000000, nsStyleChangeList & {...}, int 0, int & 0) line 1791 FrameManager::ReResolveStyleContext(nsIPresContext * 0x0339bcf0, nsIFrame * 0x036f450c, nsIStyleContext * 0x036c0868, nsIContent * 0x00000000, int -1, nsIAtom * 0x00000000, nsStyleChangeList & {...}, int 0, int & 0) line 1791 FrameManager::ComputeStyleChangeFor(FrameManager * const 0x0339c1a0, nsIPresContext * 0x0339bcf0, nsIFrame * 0x036f450c, int -1, nsIAtom * 0x00000000, nsStyleChangeList & {...}, int 0, int & 0) line 2036 nsCSSFrameConstructor::ContentStatesChanged(nsCSSFrameConstructor * const 0x0339b0d0, nsIPresContext * 0x0339bcf0, nsIContent * 0x035b12e0, nsIContent * 0x00000000) line 9687 StyleSetImpl::ContentStatesChanged(StyleSetImpl * const 0x0339b1a0, nsIPresContext * 0x0339bcf0, nsIContent * 0x035b12e0, nsIContent * 0x00000000) line 1239 PresShell::ContentStatesChanged(PresShell * const 0x0339ccc8, nsIDocument * 0x03392550, nsIContent * 0x035b12e0, nsIContent * 0x00000000) line 4989 + 49 bytes nsXULDocument::ContentStatesChanged(nsXULDocument * const 0x03392550, nsIContent * 0x035b12e0, nsIContent * 0x00000000) line 1732 nsEventStateManager::SetContentState(nsEventStateManager * const 0x03535b48, nsIContent * 0x035b12e0, int 2) line 3577 nsXULElement::SetFocus(nsXULElement * const 0x035b12e0, nsIPresContext * 0x0339bcf0) line 4994 nsEventStateManager::PreHandleEvent(nsEventStateManager * const 0x03535b48, nsIPresContext * 0x0339bcf0, nsEvent * 0x0012ef88, nsIFrame * 0x02c2e7a4, nsEventStatus * 0x0012eef0, nsIView * 0x0339b410) line 623 PresShell::HandleEventInternal(nsEvent * 0x0012ef88, nsIView * 0x0339b410, unsigned int 1, nsEventStatus * 0x0012eef0) line 5702 + 43 bytes PresShell::HandleEvent(PresShell * const 0x0339ccc4, nsIView * 0x0339b410, nsGUIEvent * 0x0012ef88, nsEventStatus * 0x0012eef0, int 1, int & 1) line 5633 + 25 bytes nsView::HandleEvent(nsView * const 0x0339b410, nsGUIEvent * 0x0012ef88, unsigned int 28, nsEventStatus * 0x0012eef0, int 1, int & 1) line 377 nsViewManager::DispatchEvent(nsViewManager * const 0x0339b5b0, nsGUIEvent * 0x0012ef88, nsEventStatus * 0x0012eef0) line 2062 HandleEvent(nsGUIEvent * 0x0012ef88) line 68 nsWindow::DispatchEvent(nsWindow * const 0x0339b2d4, nsGUIEvent * 0x0012ef88, nsEventStatus & nsEventStatus_eIgnore) line 733 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012ef88) line 754 nsWindow::DispatchFocus(unsigned int 107, int 1) line 4452 + 15 bytes nsWindow::ProcessMessage(unsigned int 7, unsigned int 67360, long 0, long * 0x0012f364) line 3371 + 23 bytes nsWindow::WindowProc(HWND__ * 0x00010728, unsigned int 7, unsigned int 67360, long 0) line 1001 + 27 bytes USER32! 77e13eb0() USER32! 77e1591b() USER32! 77e1595d() NTDLL! 77f9fb83() GlobalWindowImpl::Focus(GlobalWindowImpl * const 0x0274f9c4) line 1787 + 25 bytes nsWebShellWindow::HandleEvent(nsGUIEvent * 0x0012f5d0) line 528 nsWindow::DispatchEvent(nsWindow * const 0x0274e5f4, nsGUIEvent * 0x0012f5d0, nsEventStatus & nsEventStatus_eIgnore) line 733 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f5d0) line 754 nsWindow::DispatchFocus(unsigned int 105, int 1) line 4452 + 15 bytes nsWindow::ProcessMessage(unsigned int 7, unsigned int 0, long 0, long * 0x0012f9ac) line 3368 + 23 bytes nsWindow::WindowProc(HWND__ * 0x00010720, unsigned int 7, unsigned int 0, long 0) line 1001 + 27 bytes USER32! 77e13eb0() USER32! 77e1591b() USER32! 77e1595d() NTDLL! 77f9fb83() USER32! 77e169a7() USER32! 77e13eb0() USER32! 77e16469() USER32! 77e1a6f8() nsWindow::WindowProc(HWND__ * 0x00010720, unsigned int 6, unsigned int 1, long 0) line 1008 + 31 bytes USER32! 77e13eb0() USER32! 77e1591b() USER32! 77e1595d() NTDLL! 77f9fb83() USER32! 77e191df() nsAppShell::Run(nsAppShell * const 0x016779b0) line 98 + 24 bytes nsAppShellService::Run(nsAppShellService * const 0x01672d90) line 442 main1(int 4, char * * 0x00485cd0, nsISupports * 0x00000000) line 1278 + 32 bytes main(int 4, char * * 0x00485cd0) line 1606 + 37 bytes mainCRTStartup() line 338 + 17 bytes KERNEL32! 77e879
Updated•23 years ago
|
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.0
Comment 1•23 years ago
|
||
any idea on how much time it might save if we did this and what operations it would speed up?
Updated•23 years ago
|
Target Milestone: mozilla0.9.8 → mozilla0.9.9
Updated•23 years ago
|
Target Milestone: mozilla0.9.9 → mozilla1.2
Comment 3•21 years ago
|
||
We're no longer strdupping (per patch in bug 113173) but we still use strcmp in operator==.
QA Contact: ian → style-system
Updated•15 years ago
|
Summary: how can we remove the strdup from nsCSSValue::operator= → how can we remove the NS_strcmp from nsCSSValue::operator==
Updated•15 years ago
|
Assignee: hyatt → nobody
Comment 4•14 years ago
|
||
This is a mass change. Every comment has "assigned-to-new" in it. I didn't look through the bugs, so I'm sorry if I change a bug which shouldn't be changed. But I guess these bugs are just bugs that were once assigned and people forgot to change the Status back when unassigning.
Status: ASSIGNED → NEW
Priority: -- → P5
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•