From f2c6d5191c410851262a6c19fac81b90cc2475a9 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Sun, 10 Mar 2013 08:54:42 +0100 Subject: [PATCH] Bug 825285 - Part a: Don't pass around ArchiveReaderOptions; r=khuey --- dom/file/ArchiveReader.cpp | 6 ++++-- dom/file/ArchiveReader.h | 2 +- dom/file/ArchiveZipEvent.cpp | 14 +++++++------- dom/file/ArchiveZipEvent.h | 8 ++++---- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/dom/file/ArchiveReader.cpp b/dom/file/ArchiveReader.cpp index 6de9f56c6187..122aa66fdd83 100644 --- a/dom/file/ArchiveReader.cpp +++ b/dom/file/ArchiveReader.cpp @@ -69,8 +69,10 @@ ArchiveReader::Initialize(nsISupports* aOwner, // Extra param is an object if (aArgc > 1) { - nsresult rv = mOptions.Init(aCx, &aArgv[1]); + mozilla::idl::ArchiveReaderOptions options; + nsresult rv = options.Init(aCx, &aArgv[1]); NS_ENSURE_SUCCESS(rv, rv); + mEncoding = options.encoding; } mWindow = do_QueryInterface(aOwner); @@ -140,7 +142,7 @@ ArchiveReader::OpenArchive() nsRefPtr event; /* FIXME: If we want to support more than 1 format we should check the content type here: */ - event = new ArchiveReaderZipEvent(this, mOptions); + event = new ArchiveReaderZipEvent(this, mEncoding); rv = target->Dispatch(event, NS_DISPATCH_NORMAL); NS_ENSURE_SUCCESS(rv, rv); diff --git a/dom/file/ArchiveReader.h b/dom/file/ArchiveReader.h index 23286db423f7..cac457686f47 100644 --- a/dom/file/ArchiveReader.h +++ b/dom/file/ArchiveReader.h @@ -97,7 +97,7 @@ protected: nsresult status; } mData; - mozilla::idl::ArchiveReaderOptions mOptions; + nsString mEncoding; }; END_FILE_NAMESPACE diff --git a/dom/file/ArchiveZipEvent.cpp b/dom/file/ArchiveZipEvent.cpp index ccfa90648a71..50d119bd2e89 100644 --- a/dom/file/ArchiveZipEvent.cpp +++ b/dom/file/ArchiveZipEvent.cpp @@ -22,10 +22,10 @@ USING_FILE_NAMESPACE ArchiveZipItem::ArchiveZipItem(const char* aFilename, const ZipCentral& aCentralStruct, - const mozilla::idl::ArchiveReaderOptions& aOptions) + const nsAString& aEncoding) : mFilename(aFilename), mCentralStruct(aCentralStruct), - mOptions(aOptions) + mEncoding(aEncoding) { MOZ_COUNT_CTOR(ArchiveZipItem); } @@ -38,13 +38,13 @@ ArchiveZipItem::~ArchiveZipItem() nsresult ArchiveZipItem::ConvertFilename() { - if (mOptions.encoding.IsEmpty()) { + if (mEncoding.IsEmpty()) { return NS_ERROR_FAILURE; } nsString filenameU; nsresult rv = nsContentUtils::ConvertStringFromCharset( - NS_ConvertUTF16toUTF8(mOptions.encoding), + NS_ConvertUTF16toUTF8(mEncoding), mFilename, filenameU); NS_ENSURE_SUCCESS(rv, rv); @@ -111,9 +111,9 @@ ArchiveZipItem::StrToInt16(const uint8_t* aStr) // ArchiveReaderZipEvent ArchiveReaderZipEvent::ArchiveReaderZipEvent(ArchiveReader* aArchiveReader, - const mozilla::idl::ArchiveReaderOptions& aOptions) + const nsAString& aEncoding) : ArchiveReaderEvent(aArchiveReader), - mOptions(aOptions) + mEncoding(aEncoding) { } @@ -201,7 +201,7 @@ ArchiveReaderZipEvent::Exec() // We ignore the directories: if (filename[filenameLen - 1] != '/') { - mFileList.AppendElement(new ArchiveZipItem(filename, centralStruct, mOptions)); + mFileList.AppendElement(new ArchiveZipItem(filename, centralStruct, mEncoding)); } // Ignore the rest diff --git a/dom/file/ArchiveZipEvent.h b/dom/file/ArchiveZipEvent.h index 6f8cd45c08a0..9525ae6f5187 100644 --- a/dom/file/ArchiveZipEvent.h +++ b/dom/file/ArchiveZipEvent.h @@ -24,7 +24,7 @@ class ArchiveZipItem : public ArchiveItem public: ArchiveZipItem(const char* aFilename, const ZipCentral& aCentralStruct, - const mozilla::idl::ArchiveReaderOptions& aOptions); + const nsAString& aEncoding); virtual ~ArchiveZipItem(); nsresult GetFilename(nsString& aFilename); @@ -45,7 +45,7 @@ private: // data nsString mFilenameU; ZipCentral mCentralStruct; - mozilla::idl::ArchiveReaderOptions mOptions; + nsString mEncoding; }; /** @@ -55,12 +55,12 @@ class ArchiveReaderZipEvent : public ArchiveReaderEvent { public: ArchiveReaderZipEvent(ArchiveReader* aArchiveReader, - const mozilla::idl::ArchiveReaderOptions& aOptions); + const nsAString& aEncoding); nsresult Exec(); private: - mozilla::idl::ArchiveReaderOptions mOptions; + nsString mEncoding; }; END_FILE_NAMESPACE