nsCOMPtr<nsIStyleContext> sc;
nsRefPtr<nsStyleContext> sc;
nsFirstLetterFrame::DrainOverflowFrames(nsIPresContext* aPresContext){  nsIFrame* overflowFrames;  // Check for an overflow list with our prev-in-flow  nsFirstLetterFrame* prevInFlow = (nsFirstLetterFrame*)mPrevInFlow;  if (nsnull != prevInFlow) {    overflowFrames = prevInFlow->GetOverflowFrames(aPresContext, PR_TRUE);    if (overflowFrames) {      NS_ASSERTION(mFrames.IsEmpty(), "bad overflow list");      // When pushing and pulling frames we need to check for whether any      // views need to be reparented.      nsIFrame* f = overflowFrames;      while (f) {        nsHTMLContainerFrame::ReparentFrameView(aPresContext, f, prevInFlow, this);        f->GetNextSibling(&f);      }      mFrames.InsertFrames(this, nsnull, overflowFrames);    }  }  // It's also possible that we have an overflow list for ourselves  overflowFrames = GetOverflowFrames(aPresContext, PR_TRUE);  if (overflowFrames) {    NS_ASSERTION(mFrames.NotEmpty(), "overflow list w/o frames");    mFrames.AppendFrames(nsnull, overflowFrames);  }  // Now repair our first frames style context (since we only reflow  // one frame there is no point in doing any other ones until they  // are reflowed)  nsIFrame* kid = mFrames.FirstChild();  if (kid) {    nsCOMPtr<nsIStyleContext> sc;    nsCOMPtr<nsIContent> kidContent;    kid->GetContent(getter_AddRefs(kidContent));    if (kidContent) {      NS_ASSERTION(kidContent->IsContentOfType(nsIContent::eTEXT),                   "should contain only text nodes");      aPresContext->ResolveStyleContextForNonElement(mStyleContext,                                                     getter_AddRefs(sc));      if (sc) {        kid->SetStyleContext(aPresContext, sc);      }    }  }}