From a130fb223198c57f95150314fa046827b145a0df Mon Sep 17 00:00:00 2001 From: Jonas Sicking Date: Mon, 11 Jul 2011 19:41:44 -0700 Subject: [PATCH] Bug 669433 Part 2: Clean up File implementations. Move functions around such that they are grouped with their respective class. No other changes. r=khuey --- content/base/src/nsDOMFile.cpp | 164 ++++++++++++++++----------------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/content/base/src/nsDOMFile.cpp b/content/base/src/nsDOMFile.cpp index 9268f06eeddc..a8c46f2dd488 100644 --- a/content/base/src/nsDOMFile.cpp +++ b/content/base/src/nsDOMFile.cpp @@ -164,14 +164,6 @@ DOMFileResult(nsresult rv) return rv; } -/* static */ nsresult -nsDOMFileFile::NewFile(nsISupports* *aNewObject) -{ - nsCOMPtr file = do_QueryObject(new nsDOMFileFile()); - file.forget(aNewObject); - return NS_OK; -} - NS_IMETHODIMP nsDOMFileBase::GetName(nsAString &aFileName) { @@ -199,54 +191,6 @@ nsDOMFileBase::GetMozFullPathInternal(nsAString &aFileName) return NS_OK; } -NS_IMETHODIMP -nsDOMFileFile::GetSize(PRUint64 *aFileSize) -{ - if (IsSizeUnknown()) { - NS_ASSERTION(mWholeFile, - "Should only use lazy size when using the whole file"); - PRInt64 fileSize; - nsresult rv = mFile->GetFileSize(&fileSize); - NS_ENSURE_SUCCESS(rv, rv); - - if (fileSize < 0) { - return NS_ERROR_FAILURE; - } - - mLength = fileSize; - } - - *aFileSize = mLength; - - return NS_OK; -} - -NS_IMETHODIMP -nsDOMFileFile::GetType(nsAString &aType) -{ - if (mContentType.IsVoid()) { - NS_ASSERTION(mWholeFile, - "Should only use lazy ContentType when using the whole file"); - nsresult rv; - nsCOMPtr mimeService = - do_GetService(NS_MIMESERVICE_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, rv); - - nsCAutoString mimeType; - rv = mimeService->GetTypeFromFile(mFile, mimeType); - if (NS_FAILED(rv)) { - mimeType.Truncate(); - } - - AppendUTF8toUTF16(mimeType, mContentType); - mContentType.SetIsVoid(PR_FALSE); - } - - aType = mContentType; - - return NS_OK; -} - NS_IMETHODIMP nsDOMFileBase::GetSize(PRUint64 *aSize) { @@ -261,22 +205,6 @@ nsDOMFileBase::GetType(nsAString &aType) return NS_OK; } -NS_IMETHODIMP -nsDOMFileBase::GetInternalStream(nsIInputStream **aStream) -{ - // Must be overridden - NS_NOTREACHED("Must override GetInternalStream"); - - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -nsDOMFileFile::GetMozFullPathInternal(nsAString &aFilename) -{ - NS_ASSERTION(mIsFile, "Should only be called on files"); - return mFile->GetPath(aFilename); -} - // Makes sure that aStart and aEnd is less then or equal to aSize and greater // than 0 static void @@ -339,18 +267,13 @@ nsDOMFileBase::MozSlice(PRInt64 aStart, PRInt64 aEnd, return *aBlob ? NS_OK : NS_ERROR_UNEXPECTED; } -const PRUint32 sFileStreamFlags = - nsIFileInputStream::CLOSE_ON_EOF | - nsIFileInputStream::REOPEN_ON_REWIND | - nsIFileInputStream::DEFER_OPEN; - NS_IMETHODIMP -nsDOMFileFile::GetInternalStream(nsIInputStream **aStream) +nsDOMFileBase::GetInternalStream(nsIInputStream **aStream) { - return mWholeFile ? - NS_NewLocalFileInputStream(aStream, mFile, -1, -1, sFileStreamFlags) : - NS_NewPartialLocalFileInputStream(aStream, mFile, mStart, mLength, - -1, -1, sFileStreamFlags); + // Must be overridden + NS_NOTREACHED("Must override GetInternalStream"); + + return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP @@ -418,6 +341,83 @@ nsDOMFileFile::CreateSlice(PRUint64 aStart, PRUint64 aLength, return t.forget(); } +/* static */ nsresult +nsDOMFileFile::NewFile(nsISupports* *aNewObject) +{ + nsCOMPtr file = do_QueryObject(new nsDOMFileFile()); + file.forget(aNewObject); + return NS_OK; +} + +NS_IMETHODIMP +nsDOMFileFile::GetMozFullPathInternal(nsAString &aFilename) +{ + NS_ASSERTION(mIsFile, "Should only be called on files"); + return mFile->GetPath(aFilename); +} + +NS_IMETHODIMP +nsDOMFileFile::GetSize(PRUint64 *aFileSize) +{ + if (IsSizeUnknown()) { + NS_ASSERTION(mWholeFile, + "Should only use lazy size when using the whole file"); + PRInt64 fileSize; + nsresult rv = mFile->GetFileSize(&fileSize); + NS_ENSURE_SUCCESS(rv, rv); + + if (fileSize < 0) { + return NS_ERROR_FAILURE; + } + + mLength = fileSize; + } + + *aFileSize = mLength; + + return NS_OK; +} + +NS_IMETHODIMP +nsDOMFileFile::GetType(nsAString &aType) +{ + if (mContentType.IsVoid()) { + NS_ASSERTION(mWholeFile, + "Should only use lazy ContentType when using the whole file"); + nsresult rv; + nsCOMPtr mimeService = + do_GetService(NS_MIMESERVICE_CONTRACTID, &rv); + NS_ENSURE_SUCCESS(rv, rv); + + nsCAutoString mimeType; + rv = mimeService->GetTypeFromFile(mFile, mimeType); + if (NS_FAILED(rv)) { + mimeType.Truncate(); + } + + AppendUTF8toUTF16(mimeType, mContentType); + mContentType.SetIsVoid(PR_FALSE); + } + + aType = mContentType; + + return NS_OK; +} + +const PRUint32 sFileStreamFlags = + nsIFileInputStream::CLOSE_ON_EOF | + nsIFileInputStream::REOPEN_ON_REWIND | + nsIFileInputStream::DEFER_OPEN; + +NS_IMETHODIMP +nsDOMFileFile::GetInternalStream(nsIInputStream **aStream) +{ + return mWholeFile ? + NS_NewLocalFileInputStream(aStream, mFile, -1, -1, sFileStreamFlags) : + NS_NewPartialLocalFileInputStream(aStream, mFile, mStart, mLength, + -1, -1, sFileStreamFlags); +} + NS_IMETHODIMP nsDOMFileFile::Initialize(nsISupports* aOwner, JSContext* aCx,