Closed Bug 3198 Opened 26 years ago Closed 26 years ago

RX: Layout

Categories

(Core :: Layout, defect, P2)

x86
Windows 95
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: chofmann, Assigned: mozeditor)

Details

Guessing kipp and troy, cc: vidur: Much of our non-static/global data needs to be partitioned by window, not reachable by other windows except through statics/globals. Therefore we're starting the hunt with statics and globals. Please have a look at the file(s) below to see if we can improve reentrantcy across the code base by making modifications to: layout/base/public/nsIFrame.h: static NS_LAYOUT PRLogModuleInfo* gLogModule; layout/base/src/nsContentList.h: static nsIAtom* gWildCardAtom; layout/base/src/nsGenericElement.h: static nsIDOMScriptObjectFactory *gScriptObjectFactory; layout/base/src/nsRange.h: static nsVoidArray *mStartAncestors; // just keeping these around to avoid reallocing the arrays. layout/base/src/nsRange.h: static nsVoidArray *mEndAncestors; // the contents of these arrays are discarded across calls. layout/base/src/nsRange.h: static nsVoidArray *mStartAncestorOffsets; // layout/base/src/nsRange.h: static nsVoidArray *mEndAncestorOffsets; // layout/html/base/src/nsFrame.h: static PRBool mDoingSelection; layout/html/base/src/nsFrame.h: static PRBool mDidDrag; layout/html/base/src/nsFrame.h: static PRInt32 mStartPos; layout/html/base/src/nsGlobalVariables.h: static nsGlobalVariables *gInstance; layout/html/base/src/nsIHTMLReflow.h: static const nsHTMLReflowState* layout/html/base/src/nsIHTMLReflow.h: static nscoord layout/html/base/src/nsIHTMLReflow.h: static const nsHTMLReflowState* layout/html/document/src/nsFrameSetFrame.h: static PRBool gDragInProgress; layout/html/document/src/nsFrameSetFrame.h: static PRInt32 gMaxNumRowColSpecs;
Unless I missed something, there has been little talk about the threading issue that has included the NGLayout people since the "town hall" type meeting that Brendan lead several weeks ago. The bug database is the wrong place to continue this discussion. Let's have a meeting or discuss this on a mail list so we can do this correctly.
Assignee: kipp → mjudge
Everything in this list (after you cull out the crud) has to do with selection global variables....Hopefully those are either dead crud that mike can remove *or* he can do the work it takes to remove them...so I'm reassigning this one.
RX tasks aren't going to make M3. close the reentrantcy tracking tasks if this specific area has been looked at and doesn't seem to be a problem. Otherwise each of these areas still need some looking at.
Status: NEW → ASSIGNED
I am sure most of that is not used, one thing though layout/html/base/src/nsGlobalVariables.h: static nsGlobalVariables *gInstance; layout/html/base/src/nsIHTMLReflow.h: static const nsHTMLReflowState* layout/html/base/src/nsIHTMLReflow.h: static nscoord layout/html/base/src/nsIHTMLReflow.h: static const nsHTMLReflowState* are unknown to me. I will wait until after dogfood to delete the other stuff that is not used anymore.
Target Milestone: M4 → M5
should be done but not for now
Target Milestone: M5 → M6
I am going to see what the intelligence is in moving all the drag and click static methods to the selection code. this will force the pres shell to ALWAYS have a selection object(though it doesnt have to draw it) because of the dodrag methods that need to be called ect. still, this can be m6 work.
Assignee: mjudge → jfrancis
Status: ASSIGNED → NEW
These are all done i am reassigning this bug to Joe Francis to decide if the nsRange stuff is still valid and or fixable. layout/html/base/src/nsFrame.h: static PRBool mDoingSelection; layout/html/base/src/nsFrame.h: static PRBool mDidDrag; layout/html/base/src/nsFrame.h: static PRInt32 mStartPos;
Deja Vu all over again. Half this game is 90% mental. I addressed this in another bug - the skinny is that we need the nsRange statics in order to avoid making ranges way to heavy. I have comments in the code showing where we need locks - I'll add them in RSN.
Status: NEW → ASSIGNED
Target Milestone: M6 → M8
making m8 - no reason this needs to make m6
testing
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
added monitor to protect static vars
Adding verifyme keyword
Keywords: verifyme
Component: XP Miscellany → Layout
It looks like almost 6 years without any complaints is as close to verified as this gets. This one would really have to have the patches that were applied attached to verify completely. -> VERIFIED
Status: RESOLVED → VERIFIED
Keywords: verifyme
You need to log in before you can comment on or make changes to this bug.