From 99d50d8ea21bda3f311d0ead6f634aecfda0504f Mon Sep 17 00:00:00 2001 From: "ccarlen%netscape.com" Date: Tue, 22 May 2001 21:38:21 +0000 Subject: [PATCH] Bug 73095 - Create() needs to set mTargetSpec on completion. r=scc@mozilla.org/sr=sfraser git-svn-id: svn://10.0.0.236/trunk@95701 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpcom/io/nsLocalFileMac.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/mozilla/xpcom/io/nsLocalFileMac.cpp b/mozilla/xpcom/io/nsLocalFileMac.cpp index 9a750011686..6de5cc38fe1 100644 --- a/mozilla/xpcom/io/nsLocalFileMac.cpp +++ b/mozilla/xpcom/io/nsLocalFileMac.cpp @@ -1181,6 +1181,7 @@ nsLocalFile::Create(PRUint32 type, PRUint32 attributes) // !!!!! Danger Will Robinson !!!!! // we really shouldn't get here NS_NOTREACHED("Unknown nsLocalFileMac init type"); + return NS_ERROR_UNEXPECTED; break; } @@ -1190,26 +1191,29 @@ nsLocalFile::Create(PRUint32 type, PRUint32 attributes) switch (type) { case NORMAL_FILE_TYPE: - SetOSTypeAndCreatorFromExtension(); + SetOSTypeAndCreatorFromExtension(); err = ::FSpCreate(&mResolvedSpec, mCreator, mType, smCurrentScript); - return (MacErrorMapper(err)); break; case DIRECTORY_TYPE: - err = ::FSpDirCreate(&mResolvedSpec, smCurrentScript, &mResolvedSpec.parID); - // For some reason, this usually returns fnfErr, even though it works. - if (err == fnfErr) - err = noErr; - return (MacErrorMapper(err)); + { + long newDirID; + err = ::FSpDirCreate(&mResolvedSpec, smCurrentScript, &newDirID); + // For some reason, this usually returns fnfErr, even though it works. + if (err == fnfErr) + err = noErr; + } break; default: - // For now just fall out of the switch into the default return NS_ERROR_FILE_UNKNOWN_TYPE + return NS_ERROR_FILE_UNKNOWN_TYPE; break; - } - return NS_ERROR_FILE_UNKNOWN_TYPE; + if (err == noErr) + mTargetSpec = mResolvedSpec; + + return (MacErrorMapper(err)); } NS_IMETHODIMP