if (status < 0) return status;
if (status < 0) goto EarlyOut;
MimeInlineTextPlainFlowed_parse_eof (MimeObject *obj, PRBool abort_p){  int status;  MimeInlineTextPlainFlowed *text = (MimeInlineTextPlainFlowed *) nsnull;  PRBool quoting = ( obj->options    && ( obj->options->format_out == nsMimeOutput::nsMimeMessageQuoting ||         obj->options->format_out == nsMimeOutput::nsMimeMessageBodyQuoting       )           );  // see above  if (obj->closed_p) return 0;    /* Run parent method first, to flush out any buffered data. */  status = ((MimeObjectClass*)&MIME_SUPERCLASS)->parse_eof(obj, abort_p);  if (status < 0) return status;  if (!obj->output_p) return 0;  struct MimeInlineTextPlainFlowedExData *exdata;  struct MimeInlineTextPlainFlowedExData *prevexdata;  exdata = MimeInlineTextPlainFlowedExDataList;  prevexdata = MimeInlineTextPlainFlowedExDataList;  while(exdata && (exdata->ownerobj != obj)) {    prevexdata = exdata;    exdata = exdata->next;  }  NS_ASSERTION(exdata, "The extra data has disappeared!");  if(exdata == MimeInlineTextPlainFlowedExDataList) {    // No previous.    MimeInlineTextPlainFlowedExDataList = exdata->next;  } else {    prevexdata->next = exdata->next;  }  for(; exdata->quotelevel > 0; exdata->quotelevel--) {    status = MimeObject_write(obj, "</blockquote>", 13, PR_FALSE);    if(status<0) goto EarlyOut;  }  if (exdata->isSig && !quoting) {    status = MimeObject_write(obj, "</div>", 6, PR_FALSE);      // txt-sig    if (status<0) goto EarlyOut;  }  if (!quoting) // HACK (see above)  {    status = MimeObject_write(obj, "</div>", 6, PR_FALSE);  // text-flowed    if (status<0) goto EarlyOut;  }  status = 0;  text = (MimeInlineTextPlainFlowed *) obj;EarlyOut:  if (exdata)     PR_Free(exdata);  PR_FREEIF(text->mCitationColor);  return status;}