mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 11:58:55 +00:00
Bug 1404198: Part 1 - Add non-virtual constructor for nsIObject(Input|Output)Stream and update existing callers. r=njn
MozReview-Commit-ID: 3eoh6AwDJyz --HG-- extra : rebase_source : 92b18b6ef07d276cac79ce735ca0b592cffbf87e
This commit is contained in:
parent
d52de87818
commit
3876d40960
24
dom/cache/FileUtils.cpp
vendored
24
dom/cache/FileUtils.cpp
vendored
@ -11,8 +11,8 @@
|
||||
#include "mozilla/dom/quota/QuotaManager.h"
|
||||
#include "mozilla/SnappyCompressOutputStream.h"
|
||||
#include "mozilla/Unused.h"
|
||||
#include "nsIBinaryInputStream.h"
|
||||
#include "nsIBinaryOutputStream.h"
|
||||
#include "nsIObjectInputStream.h"
|
||||
#include "nsIObjectOutputStream.h"
|
||||
#include "nsIFile.h"
|
||||
#include "nsIUUIDGenerator.h"
|
||||
#include "nsNetCID.h"
|
||||
@ -420,14 +420,10 @@ LockedDirectoryPaddingWrite(nsIFile* aBaseDir, DirPaddingFile aPaddingFileType,
|
||||
rv = NS_NewLocalFileOutputStream(getter_AddRefs(outputStream), file);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
nsCOMPtr<nsIBinaryOutputStream> binaryStream =
|
||||
do_CreateInstance("@mozilla.org/binaryoutputstream;1");
|
||||
if (NS_WARN_IF(!binaryStream)) { return NS_ERROR_FAILURE; }
|
||||
nsCOMPtr<nsIObjectOutputStream> objectStream =
|
||||
NS_NewObjectOutputStream(outputStream);
|
||||
|
||||
rv = binaryStream->SetOutputStream(outputStream);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
rv = binaryStream->Write64(aPaddingSize);
|
||||
rv = objectStream->Write64(aPaddingSize);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
return rv;
|
||||
@ -744,15 +740,11 @@ LockedDirectoryPaddingGet(nsIFile* aBaseDir, int64_t* aPaddingSizeOut)
|
||||
rv = NS_NewBufferedInputStream(getter_AddRefs(bufferedStream), stream, 512);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
nsCOMPtr<nsIBinaryInputStream> binaryStream =
|
||||
do_CreateInstance("@mozilla.org/binaryinputstream;1");
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
rv = binaryStream->SetInputStream(bufferedStream);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
nsCOMPtr<nsIObjectInputStream> objectStream =
|
||||
NS_NewObjectInputStream(bufferedStream);
|
||||
|
||||
uint64_t paddingSize = 0;
|
||||
rv = binaryStream->Read64(&paddingSize);
|
||||
rv = objectStream->Read64(&paddingSize);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
*aPaddingSizeOut = paddingSize;
|
||||
|
@ -19,8 +19,8 @@
|
||||
#include "nsIClipboard.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIBinaryInputStream.h"
|
||||
#include "nsIBinaryOutputStream.h"
|
||||
#include "nsIObjectInputStream.h"
|
||||
#include "nsIObjectOutputStream.h"
|
||||
#include "nsIStorageStream.h"
|
||||
#include "nsStringStream.h"
|
||||
#include "nsCRT.h"
|
||||
@ -996,7 +996,7 @@ DataTransfer::GetTransferable(uint32_t aIndex, nsILoadContext* aLoadContext)
|
||||
transferable->Init(aLoadContext);
|
||||
|
||||
nsCOMPtr<nsIStorageStream> storageStream;
|
||||
nsCOMPtr<nsIBinaryOutputStream> stream;
|
||||
nsCOMPtr<nsIObjectOutputStream> stream;
|
||||
|
||||
bool added = false;
|
||||
bool handlingCustomFormats = true;
|
||||
@ -1087,8 +1087,7 @@ DataTransfer::GetTransferable(uint32_t aIndex, nsILoadContext* aLoadContext)
|
||||
nsCOMPtr<nsIOutputStream> outputStream;
|
||||
storageStream->GetOutputStream(0, getter_AddRefs(outputStream));
|
||||
|
||||
stream = do_CreateInstance("@mozilla.org/binaryoutputstream;1");
|
||||
stream->SetOutputStream(outputStream);
|
||||
stream = NS_NewObjectOutputStream(outputStream);
|
||||
}
|
||||
|
||||
CheckedInt<uint32_t> formatLength =
|
||||
@ -1593,14 +1592,8 @@ DataTransfer::FillInExternalCustomTypes(nsIVariant* aData, uint32_t aIndex,
|
||||
nsCOMPtr<nsIInputStream> stringStream;
|
||||
NS_NewCStringInputStream(getter_AddRefs(stringStream), str);
|
||||
|
||||
nsCOMPtr<nsIBinaryInputStream> stream =
|
||||
do_CreateInstance("@mozilla.org/binaryinputstream;1");
|
||||
if (!stream) {
|
||||
return;
|
||||
}
|
||||
|
||||
rv = stream->SetInputStream(stringStream);
|
||||
NS_ENSURE_SUCCESS_VOID(rv);
|
||||
nsCOMPtr<nsIObjectInputStream> stream =
|
||||
NS_NewObjectInputStream(stringStream);
|
||||
|
||||
uint32_t type;
|
||||
do {
|
||||
|
@ -8,8 +8,8 @@
|
||||
|
||||
#include "mozIStorageConnection.h"
|
||||
#include "mozIStorageService.h"
|
||||
#include "nsIBinaryInputStream.h"
|
||||
#include "nsIBinaryOutputStream.h"
|
||||
#include "nsIObjectInputStream.h"
|
||||
#include "nsIObjectOutputStream.h"
|
||||
#include "nsIFile.h"
|
||||
#include "nsIFileStreams.h"
|
||||
#include "nsIObserverService.h"
|
||||
@ -2140,18 +2140,14 @@ GetBinaryOutputStream(nsIFile* aFile,
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIBinaryOutputStream> binaryStream =
|
||||
do_CreateInstance("@mozilla.org/binaryoutputstream;1");
|
||||
if (NS_WARN_IF(!binaryStream)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
if (NS_WARN_IF(!outputStream)) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
rv = binaryStream->SetOutputStream(outputStream);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return rv;
|
||||
}
|
||||
nsCOMPtr<nsIObjectOutputStream> objectOutputStream =
|
||||
NS_NewObjectOutputStream(outputStream);
|
||||
|
||||
binaryStream.forget(aStream);
|
||||
objectOutputStream.forget(aStream);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -399,11 +399,15 @@ nsXULPrototypeCache::GetOutputStream(nsIURI* uri, nsIObjectOutputStream** stream
|
||||
nsCOMPtr<nsIStorageStream> storageStream;
|
||||
bool found = mOutputStreamTable.Get(uri, getter_AddRefs(storageStream));
|
||||
if (found) {
|
||||
objectOutput = do_CreateInstance("mozilla.org/binaryoutputstream;1");
|
||||
if (!objectOutput) return NS_ERROR_OUT_OF_MEMORY;
|
||||
// Setting an output stream here causes crashes on Windows. The previous
|
||||
// version of this code always returned NS_ERROR_OUT_OF_MEMORY here,
|
||||
// because it used a mistyped contract ID to create its object stream.
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
#if 0
|
||||
nsCOMPtr<nsIOutputStream> outputStream
|
||||
= do_QueryInterface(storageStream);
|
||||
objectOutput->SetOutputStream(outputStream);
|
||||
objectOutput = NS_NewObjectOutputStream(outputStream);
|
||||
#endif
|
||||
} else {
|
||||
rv = NewObjectOutputWrappedStorageStream(getter_AddRefs(objectOutput),
|
||||
getter_AddRefs(storageStream),
|
||||
|
@ -25,11 +25,7 @@ NS_SerializeToString(nsISerializable* obj, nsACString& str)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsCOMPtr<nsIObjectOutputStream> objstream =
|
||||
do_CreateInstance("@mozilla.org/binaryoutputstream;1");
|
||||
if (!objstream)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
objstream->SetOutputStream(stream);
|
||||
NS_NewObjectOutputStream(stream);
|
||||
nsresult rv =
|
||||
objstream->WriteCompoundObject(obj, NS_GET_IID(nsISupports), true);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
@ -48,11 +44,7 @@ NS_DeserializeObject(const nsACString& str, nsISupports** obj)
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIObjectInputStream> objstream =
|
||||
do_CreateInstance("@mozilla.org/binaryinputstream;1");
|
||||
if (!objstream)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
objstream->SetInputStream(stream);
|
||||
NS_NewObjectInputStream(stream);
|
||||
return objstream->ReadObject(true, obj);
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "nsIResProtocolHandler.h"
|
||||
#include "nsIChromeRegistry.h"
|
||||
#include "nsAutoPtr.h"
|
||||
#include "nsStringStream.h"
|
||||
#include "StartupCacheUtils.h"
|
||||
#include "mozilla/scache/StartupCache.h"
|
||||
#include "mozilla/Omnijar.h"
|
||||
@ -22,16 +23,14 @@ nsresult
|
||||
NewObjectInputStreamFromBuffer(UniquePtr<char[]> buffer, uint32_t len,
|
||||
nsIObjectInputStream** stream)
|
||||
{
|
||||
nsCOMPtr<nsIStringInputStream> stringStream =
|
||||
do_CreateInstance("@mozilla.org/io/string-input-stream;1");
|
||||
NS_ENSURE_TRUE(stringStream, NS_ERROR_FAILURE);
|
||||
nsCOMPtr<nsIInputStream> stringStream;
|
||||
nsresult rv = NS_NewByteInputStream(getter_AddRefs(stringStream),
|
||||
buffer.release(), len,
|
||||
NS_ASSIGNMENT_ADOPT);
|
||||
MOZ_ALWAYS_SUCCEEDS(rv);
|
||||
|
||||
nsCOMPtr<nsIObjectInputStream> objectInput =
|
||||
do_CreateInstance("@mozilla.org/binaryinputstream;1");
|
||||
NS_ENSURE_TRUE(objectInput, NS_ERROR_FAILURE);
|
||||
|
||||
stringStream->AdoptData(buffer.release(), len);
|
||||
objectInput->SetInputStream(stringStream);
|
||||
NS_NewObjectInputStream(stringStream);
|
||||
|
||||
objectInput.forget(stream);
|
||||
return NS_OK;
|
||||
@ -47,12 +46,11 @@ NewObjectOutputWrappedStorageStream(nsIObjectOutputStream **wrapperStream,
|
||||
nsresult rv = NS_NewStorageStream(256, UINT32_MAX, getter_AddRefs(storageStream));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIObjectOutputStream> objectOutput
|
||||
= do_CreateInstance("@mozilla.org/binaryoutputstream;1");
|
||||
nsCOMPtr<nsIOutputStream> outputStream
|
||||
= do_QueryInterface(storageStream);
|
||||
|
||||
objectOutput->SetOutputStream(outputStream);
|
||||
nsCOMPtr<nsIObjectOutputStream> objectOutput
|
||||
= NS_NewObjectOutputStream(outputStream);
|
||||
|
||||
#ifdef DEBUG
|
||||
if (wantDebugStream) {
|
||||
|
@ -25,6 +25,7 @@
|
||||
|
||||
#include "mozilla/EndianUtils.h"
|
||||
#include "mozilla/PodOperations.h"
|
||||
#include "mozilla/RefPtr.h"
|
||||
#include "mozilla/UniquePtr.h"
|
||||
|
||||
#include "nsCRT.h"
|
||||
@ -41,6 +42,26 @@ using mozilla::MakeUnique;
|
||||
using mozilla::PodCopy;
|
||||
using mozilla::UniquePtr;
|
||||
|
||||
already_AddRefed<nsIObjectOutputStream>
|
||||
NS_NewObjectOutputStream(nsIOutputStream* aOutputStream)
|
||||
{
|
||||
MOZ_ASSERT(aOutputStream);
|
||||
auto stream = mozilla::MakeRefPtr<nsBinaryOutputStream>();
|
||||
|
||||
MOZ_ALWAYS_SUCCEEDS(stream->SetOutputStream(aOutputStream));
|
||||
return stream.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<nsIObjectInputStream>
|
||||
NS_NewObjectInputStream(nsIInputStream* aInputStream)
|
||||
{
|
||||
MOZ_ASSERT(aInputStream);
|
||||
auto stream = mozilla::MakeRefPtr<nsBinaryInputStream>();
|
||||
|
||||
MOZ_ALWAYS_SUCCEEDS(stream->SetInputStream(aInputStream));
|
||||
return stream.forget();
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS(nsBinaryOutputStream,
|
||||
nsIObjectOutputStream,
|
||||
nsIBinaryOutputStream,
|
||||
|
@ -33,6 +33,8 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
friend already_AddRefed<nsIObjectOutputStream> NS_NewObjectOutputStream(nsIOutputStream*);
|
||||
|
||||
// nsISupports methods
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
@ -76,6 +78,8 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
friend already_AddRefed<nsIObjectInputStream> NS_NewObjectInputStream(nsIInputStream*);
|
||||
|
||||
// nsISupports methods
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
|
@ -35,6 +35,9 @@ interface nsIObjectInputStream : nsIBinaryInputStream
|
||||
|
||||
%{C++
|
||||
|
||||
already_AddRefed<nsIObjectInputStream>
|
||||
NS_NewObjectInputStream(nsIInputStream* aOutputStream);
|
||||
|
||||
inline nsresult
|
||||
NS_ReadOptionalObject(nsIObjectInputStream* aStream, bool aIsStrongRef,
|
||||
nsISupports* *aResult)
|
||||
|
@ -58,6 +58,8 @@ interface nsIObjectOutputStream : nsIBinaryOutputStream
|
||||
};
|
||||
|
||||
%{C++
|
||||
already_AddRefed<nsIObjectOutputStream>
|
||||
NS_NewObjectOutputStream(nsIOutputStream* aOutputStream);
|
||||
|
||||
inline nsresult
|
||||
NS_WriteOptionalObject(nsIObjectOutputStream* aStream, nsISupports* aObject,
|
||||
|
Loading…
x
Reference in New Issue
Block a user