diff --git a/mozilla/content/html/style/src/nsCSSLayout.cpp b/mozilla/content/html/style/src/nsCSSLayout.cpp
index cfed2ce1fde..d5e6e5bbb40 100644
--- a/mozilla/content/html/style/src/nsCSSLayout.cpp
+++ b/mozilla/content/html/style/src/nsCSSLayout.cpp
@@ -23,9 +23,13 @@
#include "nsIFontMetrics.h"
#include "nsIPresContext.h"
#include "nsRect.h"
+#include "nsIPtr.h"
static NS_DEFINE_IID(kStyleMoleculeSID, NS_STYLEMOLECULE_SID);
+NS_DEF_PTR(nsIStyleContext);
+NS_DEF_PTR(nsIContent);
+
// XXX what about ebina's center vs. ncsa-center?
/*
* Notes: It's a known fact that this doesn't do what ebina's layout
@@ -54,17 +58,15 @@ nscoord nsCSSLayout::VerticallyAlignChildren(nsIPresContext* aCX,
PRIntn kidCount = aChildCount;
while (--kidCount >= 0) {
nscoord kidAscent = *aAscents++;
- nsIStyleContext* kidSC;
- nsIContent* kidContent;
+ nsIStyleContextPtr kidSC;
+ nsIContentPtr kidContent;
- kid->GetStyleContext(aCX, kidSC);
- kid->GetContent(kidContent);
+ kid->GetStyleContext(aCX, kidSC.AssignRef());
+ kid->GetContent(kidContent.AssignRef());
nsStyleMolecule* kidMol =
(nsStyleMolecule*)kidSC->GetData(kStyleMoleculeSID);
PRIntn verticalAlign = kidMol->verticalAlign;
float verticalAlignPct = kidMol->verticalAlignPct;
- NS_RELEASE(kidSC);
- NS_RELEASE(kidContent);
kid->GetRect(kidRect);
@@ -138,16 +140,14 @@ nscoord nsCSSLayout::VerticallyAlignChildren(nsIPresContext* aCX,
kid = aFirstChild;
while (--kidCount >= 0) {
// Get kid's vertical align style data
- nsIStyleContext* kidSC;
- nsIContent* kidContent;
+ nsIStyleContextPtr kidSC;
+ nsIContentPtr kidContent;
- kid->GetStyleContext(aCX, kidSC);
- kid->GetContent(kidContent);
+ kid->GetStyleContext(aCX, kidSC.AssignRef());
+ kid->GetContent(kidContent.AssignRef());
nsStyleMolecule* kidMol =
(nsStyleMolecule*)kidSC->GetData(kStyleMoleculeSID);
PRIntn verticalAlign = kidMol->verticalAlign;
- NS_RELEASE(kidSC);
- NS_RELEASE(kidContent);
// Vertically align the child
if (verticalAlign == NS_STYLE_VERTICAL_ALIGN_BOTTOM) {
@@ -219,11 +219,11 @@ void nsCSSLayout::RelativePositionChildren(nsIPresContext* aCX,
nsPoint origin;
nsIFrame* kid = aFirstChild;
while (--aChildCount >= 0) {
- nsIContent* kidContent;
- nsIStyleContext* kidSC;
+ nsIContentPtr kidContent;
+ nsIStyleContextPtr kidSC;
- kid->GetContent(kidContent);
- kid->GetStyleContext(aCX, kidSC);
+ kid->GetContent(kidContent.AssignRef());
+ kid->GetStyleContext(aCX, kidSC.AssignRef());
nsStyleMolecule* kidMol = (nsStyleMolecule*)kidSC->GetData(kStyleMoleculeSID);
if (NS_STYLE_POSITION_RELATIVE == kidMol->positionFlags) {
kid->GetOrigin(origin);
@@ -231,8 +231,6 @@ void nsCSSLayout::RelativePositionChildren(nsIPresContext* aCX,
nscoord dy = kidMol->top;
kid->MoveTo(origin.x + dx, origin.y + dy);
}
- NS_RELEASE(kidContent);
- NS_RELEASE(kidSC);
kid->GetNextSibling(kid);
}
}
diff --git a/mozilla/layout/html/style/src/nsCSSLayout.cpp b/mozilla/layout/html/style/src/nsCSSLayout.cpp
index cfed2ce1fde..d5e6e5bbb40 100644
--- a/mozilla/layout/html/style/src/nsCSSLayout.cpp
+++ b/mozilla/layout/html/style/src/nsCSSLayout.cpp
@@ -23,9 +23,13 @@
#include "nsIFontMetrics.h"
#include "nsIPresContext.h"
#include "nsRect.h"
+#include "nsIPtr.h"
static NS_DEFINE_IID(kStyleMoleculeSID, NS_STYLEMOLECULE_SID);
+NS_DEF_PTR(nsIStyleContext);
+NS_DEF_PTR(nsIContent);
+
// XXX what about ebina's center vs. ncsa-center?
/*
* Notes: It's a known fact that this doesn't do what ebina's layout
@@ -54,17 +58,15 @@ nscoord nsCSSLayout::VerticallyAlignChildren(nsIPresContext* aCX,
PRIntn kidCount = aChildCount;
while (--kidCount >= 0) {
nscoord kidAscent = *aAscents++;
- nsIStyleContext* kidSC;
- nsIContent* kidContent;
+ nsIStyleContextPtr kidSC;
+ nsIContentPtr kidContent;
- kid->GetStyleContext(aCX, kidSC);
- kid->GetContent(kidContent);
+ kid->GetStyleContext(aCX, kidSC.AssignRef());
+ kid->GetContent(kidContent.AssignRef());
nsStyleMolecule* kidMol =
(nsStyleMolecule*)kidSC->GetData(kStyleMoleculeSID);
PRIntn verticalAlign = kidMol->verticalAlign;
float verticalAlignPct = kidMol->verticalAlignPct;
- NS_RELEASE(kidSC);
- NS_RELEASE(kidContent);
kid->GetRect(kidRect);
@@ -138,16 +140,14 @@ nscoord nsCSSLayout::VerticallyAlignChildren(nsIPresContext* aCX,
kid = aFirstChild;
while (--kidCount >= 0) {
// Get kid's vertical align style data
- nsIStyleContext* kidSC;
- nsIContent* kidContent;
+ nsIStyleContextPtr kidSC;
+ nsIContentPtr kidContent;
- kid->GetStyleContext(aCX, kidSC);
- kid->GetContent(kidContent);
+ kid->GetStyleContext(aCX, kidSC.AssignRef());
+ kid->GetContent(kidContent.AssignRef());
nsStyleMolecule* kidMol =
(nsStyleMolecule*)kidSC->GetData(kStyleMoleculeSID);
PRIntn verticalAlign = kidMol->verticalAlign;
- NS_RELEASE(kidSC);
- NS_RELEASE(kidContent);
// Vertically align the child
if (verticalAlign == NS_STYLE_VERTICAL_ALIGN_BOTTOM) {
@@ -219,11 +219,11 @@ void nsCSSLayout::RelativePositionChildren(nsIPresContext* aCX,
nsPoint origin;
nsIFrame* kid = aFirstChild;
while (--aChildCount >= 0) {
- nsIContent* kidContent;
- nsIStyleContext* kidSC;
+ nsIContentPtr kidContent;
+ nsIStyleContextPtr kidSC;
- kid->GetContent(kidContent);
- kid->GetStyleContext(aCX, kidSC);
+ kid->GetContent(kidContent.AssignRef());
+ kid->GetStyleContext(aCX, kidSC.AssignRef());
nsStyleMolecule* kidMol = (nsStyleMolecule*)kidSC->GetData(kStyleMoleculeSID);
if (NS_STYLE_POSITION_RELATIVE == kidMol->positionFlags) {
kid->GetOrigin(origin);
@@ -231,8 +231,6 @@ void nsCSSLayout::RelativePositionChildren(nsIPresContext* aCX,
nscoord dy = kidMol->top;
kid->MoveTo(origin.x + dx, origin.y + dy);
}
- NS_RELEASE(kidContent);
- NS_RELEASE(kidSC);
kid->GetNextSibling(kid);
}
}