diff --git a/xpcom/io/nsLocalFileOS2.cpp b/xpcom/io/nsLocalFileOS2.cpp index f6372b7e32e..053631c5e1e 100644 --- a/xpcom/io/nsLocalFileOS2.cpp +++ b/xpcom/io/nsLocalFileOS2.cpp @@ -1710,16 +1710,13 @@ nsLocalFile::GetTarget(nsAString &_retval) nsresult NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result) { - if (path.IsEmpty()) - return NS_NewNativeLocalFile(nsCString(), followLinks, result); - - nsCAutoString tmp; - nsresult rv = NS_CopyUnicodeToNative(path, tmp); - - if (NS_SUCCEEDED(rv)) - return NS_NewNativeLocalFile(tmp, followLinks, result); - - return NS_OK; + nsCAutoString buf; + nsresult rv = NS_CopyUnicodeToNative(path, buf); + if (NS_FAILED(rv)) { + *result = nsnull; + return rv; + } + return NS_NewNativeLocalFile(buf, followLinks, result); } //---------------------------------------------------------------------------- diff --git a/xpcom/io/nsLocalFileWin.cpp b/xpcom/io/nsLocalFileWin.cpp index a9cb7b2a106..2006a738175 100644 --- a/xpcom/io/nsLocalFileWin.cpp +++ b/xpcom/io/nsLocalFileWin.cpp @@ -2424,12 +2424,13 @@ nsLocalFile::GetTarget(nsAString &_retval) nsresult NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result) { - nsCAutoString tmp; - nsresult rv = NS_CopyUnicodeToNative(path, tmp); - if (NS_SUCCEEDED(rv)) - return NS_NewNativeLocalFile(tmp, followLinks, result); - - return NS_OK; + nsCAutoString buf; + nsresult rv = NS_CopyUnicodeToNative(path, buf); + if (NS_FAILED(rv)) { + *result = nsnull; + return rv; + } + return NS_NewNativeLocalFile(buf, followLinks, result); } //-----------------------------------------------------------------------------