mData = aData;   mDirection = NS_STRETCH_DIRECTION_UNSUPPORTED; mBoundingMetrics.Clear(); mGlyphTable = nsnull;  if (gGlyphTableList && (1 == mData.Length())) { PRInt32 k = nsMathMLOperators::FindStretchyOperator(mData[0]); if (k != kNotFound) { mDirection = nsMathMLOperators::GetStretchyDirectionAt(k);  mGlyphTable = gGlyphTableList->GetGlyphTableFor(aPresContext, this);  if (!mGlyphTable) { mDirection = NS_STRETCH_DIRECTION_UNSUPPORTED;  nsMathMLOperators::DisableStretchyOperatorAt(k); } } } }
nsMathMLChar::SetData(nsIPresContext* aPresContext,                      nsString&       aData){  NS_ASSERTION(!mParent, "invalid call - not allowed for child chars");  if (!gInitialized) {    InitGlobals();  }  mData = aData;  // some assumptions until proven otherwise  // note that mGlyph is not initialized  mDirection = NS_STRETCH_DIRECTION_UNSUPPORTED;  mBoundingMetrics.Clear();  mGlyphTable = nsnull;  // check if stretching is applicable ...  if (gGlyphTableList && (1 == mData.Length())) {    PRInt32 k = nsMathMLOperators::FindStretchyOperator(mData[0]);    if (k != kNotFound) {      mDirection = nsMathMLOperators::GetStretchyDirectionAt(k);      // default tentative table (not the one that is necessarily going to be used)      mGlyphTable = gGlyphTableList->GetGlyphTableFor(aPresContext, this);      // don't bother with the stretching if there is no glyph table for us...      if (!mGlyphTable) {        mDirection = NS_STRETCH_DIRECTION_UNSUPPORTED;        // never try to stretch this operator again        nsMathMLOperators::DisableStretchyOperatorAt(k);      }    }  }}