((int (*) (char *, PRInt32, void *))
((nsresult (*) (char *, PRInt32, void *))
MimeMultipartAlternative_display_cached_part(MimeObject *obj){  MimeMultipartAlternative *malt = (MimeMultipartAlternative *) obj;  int status;  char *ct = (malt->buffered_hdrs			  ? MimeHeaders_get (malt->buffered_hdrs, HEADER_CONTENT_TYPE,								 PR_TRUE, PR_FALSE)			  : 0);  const char *dct = (((MimeMultipartClass *) obj->clazz)->default_part_type);  MimeObject *body;  PRBool multipart_p;  /* Don't pass in NULL as the content-type (this means that the	 auto-uudecode-hack won't ever be done for subparts of a	 multipart, but only for untyped children of message/rfc822.   */  body = mime_create(((ct && *ct) ? ct : (dct ? dct: TEXT_PLAIN)),					 malt->buffered_hdrs, obj->options);  PR_FREEIF(ct);  if (!body) return MIME_OUT_OF_MEMORY;  multipart_p = mime_typep(body, (MimeObjectClass *) &mimeMultipartClass);  status = ((MimeContainerClass *) obj->clazz)->add_child(obj, body);  if (status < 0)	{	  mime_free(body);	  return status;	}#ifdef MIME_DRAFTS  if ( obj->options && 	   obj->options->decompose_file_p &&	   !multipart_p &&	   obj->options->decompose_file_init_fn )	{	  status = obj->options->decompose_file_init_fn (												obj->options->stream_closure,												malt->buffered_hdrs);	  if (status < 0) return status;	}#endif /* MIME_DRAFTS */  /* Now that we've added this new object to our list of children,	 start its parser going. */  status = body->clazz->parse_begin(body);  if (status < 0) return status;#ifdef MIME_DRAFTS  if ( obj->options &&	   obj->options->decompose_file_p &&	   !multipart_p &&	   obj->options->decompose_file_output_fn )	status = MimePartBufferRead (malt->part_buffer,								 obj->options->decompose_file_output_fn,								 obj->options->stream_closure);  else#endif /* MIME_DRAFTS */	status = MimePartBufferRead (malt->part_buffer,								 /* The (int (*) ...) cast is to turn the									`void' argument into `MimeObject'. */								 ((int (*) (char *, PRInt32, void *))								  body->clazz->parse_buffer),								 body);  if (status < 0) return status;  MimeMultipartAlternative_cleanup(obj);  /* Done parsing. */  status = body->clazz->parse_eof(body, PR_FALSE);  if (status < 0) return status;  status = body->clazz->parse_end(body, PR_FALSE);  if (status < 0) return status;#ifdef MIME_DRAFTS  if ( obj->options &&	   obj->options->decompose_file_p &&	   !multipart_p &&	   obj->options->decompose_file_close_fn ) {	status = obj->options->decompose_file_close_fn ( obj->options->stream_closure );	if (status < 0) return status;  }#endif /* MIME_DRAFTS */  return 0;}