Bug 190735. nsIFrame deCOMtamination, r+rs=dbaron
git-svn-id: svn://10.0.0.236/trunk@145645 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -69,6 +69,7 @@ inline nscoord CalcSideFor(const nsIFrame* aFrame, const nsStyleCoord& aCoord,
|
||||
const nscoord* aEnumTable, PRInt32 aNumEnums)
|
||||
{
|
||||
nscoord result = 0;
|
||||
nsIFrame* parentFrame = aFrame->GetParent();
|
||||
|
||||
switch (aCoord.GetUnit()) {
|
||||
case eStyleUnit_Auto:
|
||||
@@ -76,9 +77,8 @@ inline nscoord CalcSideFor(const nsIFrame* aFrame, const nsStyleCoord& aCoord,
|
||||
break;
|
||||
|
||||
case eStyleUnit_Inherit:
|
||||
nsIFrame* parentFrame;
|
||||
aFrame->GetParent(&parentFrame); // XXX may not be direct parent...
|
||||
if (nsnull != parentFrame) {
|
||||
// XXX may not be direct parent...
|
||||
if (parentFrame) {
|
||||
nsStyleContext* parentContext = parentFrame->GetStyleContext();
|
||||
if (nsnull != parentContext) {
|
||||
nsMargin parentSpacing;
|
||||
@@ -119,14 +119,11 @@ inline nscoord CalcSideFor(const nsIFrame* aFrame, const nsStyleCoord& aCoord,
|
||||
{
|
||||
nscoord baseWidth = 0;
|
||||
PRBool isBase = PR_FALSE;
|
||||
nsIFrame* frame;
|
||||
aFrame->GetParent(&frame);
|
||||
while (nsnull != frame) {
|
||||
nsIFrame* frame = aFrame->GetParent();
|
||||
while (frame) {
|
||||
frame->IsPercentageBase(isBase);
|
||||
if (isBase) {
|
||||
nsSize size;
|
||||
frame->GetSize(size);
|
||||
baseWidth = size.width;
|
||||
baseWidth = frame->GetSize().width;
|
||||
// subtract border of containing block
|
||||
nsMargin border;
|
||||
frame->GetStyleBorder()->CalcBorderFor(frame, border);
|
||||
@@ -142,7 +139,7 @@ inline nscoord CalcSideFor(const nsIFrame* aFrame, const nsStyleCoord& aCoord,
|
||||
}
|
||||
break;
|
||||
}
|
||||
frame->GetParent(&frame);
|
||||
frame = frame->GetParent();
|
||||
}
|
||||
result = (nscoord)((float)baseWidth * aCoord.GetPercentValue());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user