Closed
Bug 911292
Opened 12 years ago
Closed 12 years ago
Minimize the #includes in layout/mathml
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
FIXED
mozilla26
People
(Reporter: ehsan.akhgari, Assigned: ehsan.akhgari)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
|
36.03 KB,
patch
|
MatsPalmgren_bugz
:
review+
|
Details | Diff | Splinter Review |
Attachment #797955 -
Flags: review?(matspal)
| Assignee | ||
Updated•12 years ago
|
Blocks: includehell
Comment 1•12 years ago
|
||
Comment on attachment 797955 [details] [diff] [review]
Patch (v1)
>layout/mathml/nsMathMLChar.cpp
>-#include "nsFrame.h"
I think you should change it to "nsIFrame.h" instead, there's lot's of
nsIFrame usage in this file and we should make that dependency explicit
(and this is not a frame subclass file).
>layout/mathml/nsMathMLChar.h
>-#include "nsMathMLFrame.h"
I suspect you should add "class nsIFrame;" here, but because
nsMathMLChar.cpp includes its header last I guess it compiles.
We should move that include first to make sure nsMathMLChar.h
is self-contained.
>layout/mathml/nsMathMLContainerFrame.cpp
> #include "nsFrame.h"
Is there a reason to keep this? We can count on nsMathMLContainerFrame.h
having included all our base-class headers.
> #include "nsMathMLContainerFrame.h"
This should be the first include.
>layout/mathml/nsMathMLFrame.cpp
> #include "nsMathMLFrame.h"
This should be the first include.
> #include "nsAutoPtr.h"
not used?
>layout/mathml/nsMathMLOperators.cpp
> #include "nsMathMLOperators.h"
This should be the first include.
>layout/mathml/nsMathMLOperators.h
This file should include "nsString.h" becaues it needs nsDependentSubstring.
>layout/mathml/nsMathMLTokenFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLTokenFrame.h"
move first in the include list
> #include "nsTextFrame.h"
is this needed?
>layout/mathml/nsMathMLmactionFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmactionFrame.h"
move first
>layout/mathml/nsMathMLmencloseFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmencloseFrame.h"
move first
>layout/mathml/nsMathMLmfencedFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmfencedFrame.h"
move first
>layout/mathml/nsMathMLmfracFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmfracFrame.h"
move first
>layout/mathml/nsMathMLmmultiscriptsFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmmultiscriptsFrame.h"
move first
>layout/mathml/nsMathMLmoFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmoFrame.h"
move first
>layout/mathml/nsMathMLmpaddedFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmpaddedFrame.h"
move first
>layout/mathml/nsMathMLmphantomFrame.cpp
>+#include "nsIFrame.h"
Unnecessary since this a frame class impl file.
>layout/mathml/nsMathMLmrootFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmrootFrame.h"
move first
>layout/mathml/nsMathMLmrowFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmrowFrame.h"
move first
>layout/mathml/nsMathMLmspaceFrame.cpp
> #include "nsFrame.h"
remove
>layout/mathml/nsMathMLmstyleFrame.cpp
> #include "nsFrame.h"
remove
>layout/mathml/nsMathMLmtableFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsBlockFrame.h"
move to nsMathMLmtableFrame.h
> #include "nsTableRowFrame.h"
move to nsMathMLmtableFrame.h
> #include "nsTableOuterFrame.h"
move to nsMathMLmtableFrame.h
> #include "nsTableFrame.h"
move to nsMathMLmtableFrame.h
> #include "nsTableCellFrame.h"
move to nsMathMLmtableFrame.h
> #include "nsMathMLmtableFrame.h"
move first
>layout/mathml/nsMathMLmunderoverFrame.cpp
> #include "nsFrame.h"
remove
> #include "nsMathMLmunderoverFrame.h"
move first
Attachment #797955 -
Flags: review?(matspal) → review+
| Assignee | ||
Comment 2•12 years ago
|
||
(In reply to Mats Palmgren (:mats) from comment #1)
> >layout/mathml/nsMathMLChar.h
> >-#include "nsMathMLFrame.h"
>
> I suspect you should add "class nsIFrame;" here, but because
> nsMathMLChar.cpp includes its header last I guess it compiles.
> We should move that include first to make sure nsMathMLChar.h
> is self-contained.
OK, I had to do some surgery to make that work...
> >layout/mathml/nsMathMLFrame.cpp
> > #include "nsMathMLFrame.h"
>
> This should be the first include.
>
> > #include "nsAutoPtr.h"
>
> not used?
nsRefPtr is used in this file.
> >layout/mathml/nsMathMLOperators.h
>
> This file should include "nsString.h" becaues it needs nsDependentSubstring.
nsStringFwd.h is enough here actually.
> > #include "nsTextFrame.h"
>
> is this needed?
Yes, for TEXT_FORCE_TRIM_WHITESPACE.
Addressed the rest of your comments!
| Assignee | ||
Comment 3•12 years ago
|
||
Comment 4•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
You need to log in
before you can comment on or make changes to this bug.
Description
•