NS_ASSERTION(aFrame->GetStateBits() & NS_FRAME_IS_SPECIAL,
GetIBSpecialSibling(nsIPresContext* aPresContext,                    nsIFrame* aFrame,                    nsIFrame** aSpecialSibling){  NS_PRECONDITION(aFrame, "Must have a non-null frame!");#ifdef DEBUG  nsFrameState frameState;  aFrame->GetFrameState(&frameState);  NS_ASSERTION(frameState & NS_FRAME_IS_SPECIAL,               "GetIBSpecialSibling should not be called on a non-special frame");#endif // DEBUG    // Find the first-in-flow of the frame.  (Ugh.  This ends up  // being O(N^2) when it is called O(N) times.)  aFrame = aFrame->GetFirstInFlow();  /*   * Now look up the nsLayoutAtoms::IBSplitSpecialPrevSibling   * property, which is only set on the anonymous block frames we're   * interested in.   */  nsCOMPtr<nsIPresShell> presShell;  aPresContext->GetShell(getter_AddRefs(presShell));  nsCOMPtr<nsIFrameManager> frameManager;  presShell->GetFrameManager(getter_AddRefs(frameManager));  nsIFrame *specialSibling;  nsresult rv =    frameManager->GetFrameProperty(aFrame,                                   nsLayoutAtoms::IBSplitSpecialPrevSibling,                                   0, (void**)&specialSibling);  if (NS_OK == rv) {    NS_ASSERTION(specialSibling, "null special sibling");    *aSpecialSibling = specialSibling;  }  return NS_OK;}