diff --git a/mozilla/modules/libpr0n/decoders/icon/nsIconURI.cpp b/mozilla/modules/libpr0n/decoders/icon/nsIconURI.cpp index dc070e53af3..80cc8add65b 100644 --- a/mozilla/modules/libpr0n/decoders/icon/nsIconURI.cpp +++ b/mozilla/modules/libpr0n/decoders/icon/nsIconURI.cpp @@ -433,7 +433,28 @@ nsMozIconURI::SchemeIs(const char *i_Scheme, PRBool *o_Equals) NS_IMETHODIMP nsMozIconURI::Clone(nsIURI **result) { - return NS_ERROR_NOT_IMPLEMENTED; + nsCOMPtr newFileIcon; + if (mFileIcon) + { + nsresult rv = mFileIcon->Clone(getter_AddRefs(newFileIcon)); + if (NS_FAILED(rv)) + return rv; + } + + nsMozIconURI *uri = new nsMozIconURI(); + if (!uri) + return NS_ERROR_OUT_OF_MEMORY; + + newFileIcon.swap(uri->mFileIcon); + uri->mSize = mSize; + uri->mContentType = mContentType; + uri->mDummyFilePath = mDummyFilePath; + uri->mStockIcon = mStockIcon; + uri->mIconSize = mIconSize; + uri->mIconState = mIconState; + NS_ADDREF(*result = uri); + + return NS_OK; } NS_IMETHODIMP diff --git a/mozilla/modules/libpr0n/decoders/icon/nsIconURI.h b/mozilla/modules/libpr0n/decoders/icon/nsIconURI.h index 4f9e15c2ece..b36108af259 100644 --- a/mozilla/modules/libpr0n/decoders/icon/nsIconURI.h +++ b/mozilla/modules/libpr0n/decoders/icon/nsIconURI.h @@ -64,7 +64,7 @@ public: static void InitAtoms(); - // nsJARURI + // nsMozIconURI nsMozIconURI(); virtual ~nsMozIconURI();