textFrame->GetBidiProperty(aPresContext, nsLayoutAtoms::nextBidi, (void**) &nextBidi);
textFrame->GetBidiProperty(aPresContext, nsLayoutAtoms::nextBidi, (void**) &nextBidi,sizeof(nextBidi));
nsTextFrame::ContentChanged(nsIPresContext* aPresContext,                            nsIContent*     aChild,                            nsISupports*    aSubContent){  nsIFrame* targetTextFrame = this;  PRBool markAllDirty = PR_TRUE;  if (aSubContent) {    nsCOMPtr<nsITextContentChangeData> tccd = do_QueryInterface(aSubContent);    if (tccd) {      nsITextContentChangeData::ChangeType type;      tccd->GetChangeType(&type);      if (nsITextContentChangeData::Append == type) {        markAllDirty = PR_FALSE;        nsTextFrame* frame = (nsTextFrame*)::GetLastInFlow(this);        frame->mState |= NS_FRAME_IS_DIRTY;        targetTextFrame = frame;      }    }  }  if (markAllDirty) {    // Mark this frame and all the next-in-flow frames as dirty    nsTextFrame*  textFrame = this;    while (textFrame) {      textFrame->mState |= NS_FRAME_IS_DIRTY;#ifdef IBMBIDI      nsIFrame* nextBidi;      textFrame->GetBidiProperty(aPresContext, nsLayoutAtoms::nextBidi, (void**) &nextBidi);      if (nextBidi)        textFrame = (nsTextFrame*)nextBidi;      else#endif      textFrame = (nsTextFrame*)textFrame->mNextInFlow;    }  }  // Ask the parent frame to reflow me.    nsresult rv;                                                      nsCOMPtr<nsIPresShell> shell;  rv = aPresContext->GetShell(getter_AddRefs(shell));  if (NS_SUCCEEDED(rv) && shell && mParent) {    mParent->ReflowDirtyChild(shell, targetTextFrame);  }    return rv;}