NS_ConvertUTF8toUCS2 str(spec);
nsAutoString str; str.AssignWithConversion(spec); nsCRT::free(spec);
PluginViewerImpl::CreatePlugin(nsIRequest* request, nsIPluginHost* aHost, const nsRect& aBounds,                               nsIStreamListener*& aResult){  nsresult rv = NS_OK;  if (nsnull != mOwner) {    nsPluginWindow  *win;    mOwner->GetWindow(win);    win->x = aBounds.x;    win->y = aBounds.y;    win->width = aBounds.width;    win->height = aBounds.height;    win->clipRect.top = aBounds.y;    win->clipRect.left = aBounds.x;    win->clipRect.bottom = aBounds.YMost();    win->clipRect.right = aBounds.XMost();  #ifdef XP_UNIX    win->ws_info = nsnull;   //XXX need to figure out what this is. MMP  #endif    nsIURI* uri;    rv = mChannel->GetURI(&uri);    if (NS_FAILED(rv)) return rv;    nsCAutoString spec;    rv = uri->GetSpec(spec);    NS_RELEASE(uri);    if (NS_FAILED(rv)) return rv;    NS_ConvertUTF8toUCS2 str(spec);    nsCAutoString ct;      nsCOMPtr<nsIChannel> channel = do_QueryInterface(request);    channel->GetContentType(ct);    if (NS_FAILED(rv)) return rv;    rv = aHost->InstantiateFullPagePlugin(ct.get(), str, aResult, mOwner);  }  return rv;}