obj->options->image_begin(url_with_filename, ct, obj->options->stream_closure);
obj->options->image_begin(url_with_filename.get(), ct, obj->options->stream_closure);
static int MimeInlineImage_parse_begin (MimeObject *);static int MimeInlineImage_parse_line (char *, PRInt32, MimeObject *);static int MimeInlineImage_parse_eof (MimeObject *, PRBool);static int MimeInlineImage_parse_decoded_buffer (char *, PRInt32, MimeObject *);static intMimeInlineImageClassInitialize(MimeInlineImageClass *clazz){  MimeObjectClass *oclass = (MimeObjectClass *) clazz;  MimeLeafClass   *lclass = (MimeLeafClass *) clazz;  PR_ASSERT(!oclass->class_initialized);  oclass->initialize   = MimeInlineImage_initialize;  oclass->finalize     = MimeInlineImage_finalize;  oclass->parse_begin  = MimeInlineImage_parse_begin;  oclass->parse_line   = MimeInlineImage_parse_line;  oclass->parse_eof    = MimeInlineImage_parse_eof;  lclass->parse_decoded_buffer = MimeInlineImage_parse_decoded_buffer;  return 0;}static intMimeInlineImage_initialize (MimeObject *object){  return ((MimeObjectClass*)&MIME_SUPERCLASS)->initialize(object);}static voidMimeInlineImage_finalize (MimeObject *object){  ((MimeObjectClass*)&MIME_SUPERCLASS)->finalize(object);}static intMimeInlineImage_parse_begin (MimeObject *obj){  MimeInlineImage *img = (MimeInlineImage *) obj;  MimeInlineImageClass *clazz;  int status;  status = ((MimeObjectClass*)&MIME_SUPERCLASS)->parse_begin(obj);  if (status < 0) return status;  if (!obj->output_p) return 0;  if (!obj->options || !obj->options->output_fn)	return 0;  clazz = (MimeInlineImageClass *) obj->clazz;  if (obj->options &&	  obj->options->image_begin &&	  obj->options->write_html_p &&	  obj->options->image_write_buffer)	{	  char *html, *part, *image_url;	  const char *ct;	  part = mime_part_address(obj);	  if (!part) return MIME_OUT_OF_MEMORY;	  image_url = mime_set_url_part(obj->options->url, part, PR_TRUE);	  if (!image_url)		{		  PR_Free(part);		  return MIME_OUT_OF_MEMORY;		}	  PR_Free(part);	  ct = obj->content_type;	  if (!ct) ct = IMAGE_GIF;  /* Can't happen?  Close enough. */	  // Fill in content type and attachment name here.	  nsCAutoString url_with_filename(image_url);	  url_with_filename += "&type=";	  url_with_filename += ct;	  char * filename = MimeHeaders_get_name ( obj->headers, obj->options );	  if (filename)	  {		  char *escapedName = nsEscape(filename, url_Path);		  if (!escapedName) return MIME_OUT_OF_MEMORY;			  url_with_filename += "&filename=";			  url_with_filename += escapedName;			  nsCRT::free(escapedName);	  }    // We need to separate images with HR's...    MimeObject_write_separator(obj);	  img->image_data =		obj->options->image_begin(url_with_filename, ct, obj->options->stream_closure);	  PR_Free(image_url);	  if (!img->image_data) return MIME_OUT_OF_MEMORY;	  html = obj->options->make_image_html(img->image_data);	  if (!html) return MIME_OUT_OF_MEMORY;	  status = MimeObject_write(obj, html, nsCRT::strlen(html), PR_TRUE);	  PR_Free(html);	  if (status < 0) return status;	}  //   // Now we are going to see if we should set the content type in the  // URI for the url being run...  //  if (obj->options && obj->options->stream_closure && obj->content_type)  {    mime_stream_data  *msd = (mime_stream_data *) (obj->options->stream_closure);    if ( (msd) && (msd->channel) )    {      msd->channel->SetContentType(obj->content_type);    }  }  return 0;}