From e9077db477a67b91b6f3eafba1f416474f82d3ee Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Sun, 23 Apr 2006 19:02:19 +0000 Subject: [PATCH] Implement nsIconURI::Clone. Bug 312241, patch by chpe , r=biesi, sr=bryner git-svn-id: svn://10.0.0.236/trunk@195210 18797224-902f-48f8-a5cc-f745e15eee43 --- .../libpr0n/decoders/icon/nsIconURI.cpp | 23 ++++++++++++++++++- .../modules/libpr0n/decoders/icon/nsIconURI.h | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) 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();