diff options
author | Moonchild <moonchild@palemoon.org> | 2020-10-24 10:42:23 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-10-24 10:42:23 +0000 |
commit | e1db27e19989db11fef70f439cf95821316535b3 (patch) | |
tree | abac2c9f5115323a8816d3ef600d8cb2bca5a33e /netwerk | |
parent | a98d06380fe706e3b1b602411c597b9882516b3e (diff) | |
parent | a5203631d8cded437c05243cde17cddeba13e3ec (diff) | |
download | UXP-e1db27e19989db11fef70f439cf95821316535b3.tar UXP-e1db27e19989db11fef70f439cf95821316535b3.tar.gz UXP-e1db27e19989db11fef70f439cf95821316535b3.tar.lz UXP-e1db27e19989db11fef70f439cf95821316535b3.tar.xz UXP-e1db27e19989db11fef70f439cf95821316535b3.zip |
Merge branch 'redwood' into releaseRELBASE_20201024RC_20201024
Diffstat (limited to 'netwerk')
-rw-r--r-- | netwerk/base/nsIncrementalStreamLoader.cpp | 10 | ||||
-rw-r--r-- | netwerk/base/nsIncrementalStreamLoader.h | 5 | ||||
-rw-r--r-- | netwerk/base/nsStreamLoader.cpp | 7 | ||||
-rw-r--r-- | netwerk/base/nsStreamLoader.h | 2 |
4 files changed, 14 insertions, 10 deletions
diff --git a/netwerk/base/nsIncrementalStreamLoader.cpp b/netwerk/base/nsIncrementalStreamLoader.cpp index a7298be3f..8890333f8 100644 --- a/netwerk/base/nsIncrementalStreamLoader.cpp +++ b/netwerk/base/nsIncrementalStreamLoader.cpp @@ -11,10 +11,7 @@ #include <limits> -nsIncrementalStreamLoader::nsIncrementalStreamLoader() - : mData(), mBytesConsumed(0) -{ -} +nsIncrementalStreamLoader::nsIncrementalStreamLoader() = default; nsIncrementalStreamLoader::~nsIncrementalStreamLoader() { @@ -49,7 +46,7 @@ NS_IMPL_ISUPPORTS(nsIncrementalStreamLoader, nsIIncrementalStreamLoader, NS_IMETHODIMP nsIncrementalStreamLoader::GetNumBytesRead(uint32_t* aNumBytes) { - *aNumBytes = mBytesConsumed + mData.length(); + *aNumBytes = mBytesRead; return NS_OK; } @@ -180,7 +177,6 @@ nsIncrementalStreamLoader::WriteSegmentFun(nsIInputStream *inStr, } } - self->mBytesConsumed += consumedCount; *writeCount = count; return NS_OK; @@ -198,6 +194,8 @@ nsIncrementalStreamLoader::OnDataAvailable(nsIRequest* request, nsISupports *ctx uint32_t countRead; nsresult rv = inStr->ReadSegments(WriteSegmentFun, this, count, &countRead); mRequest = nullptr; + NS_ENSURE_SUCCESS(rv, rv); + mBytesRead += countRead; return rv; } diff --git a/netwerk/base/nsIncrementalStreamLoader.h b/netwerk/base/nsIncrementalStreamLoader.h index f04d4a958..0e2b532e6 100644 --- a/netwerk/base/nsIncrementalStreamLoader.h +++ b/netwerk/base/nsIncrementalStreamLoader.h @@ -47,8 +47,9 @@ protected: // available. mozilla::Vector<uint8_t, 0> mData; - // Number of consumed bytes from the mData. - size_t mBytesConsumed; + // Number of bytes read, which may differ from the number of bytes in mData, + // since we incrementally remove from there. + mozilla::Atomic<uint32_t, mozilla::Relaxed> mBytesRead; }; #endif // nsIncrementalStreamLoader_h__ diff --git a/netwerk/base/nsStreamLoader.cpp b/netwerk/base/nsStreamLoader.cpp index a73b038a7..9990d1882 100644 --- a/netwerk/base/nsStreamLoader.cpp +++ b/netwerk/base/nsStreamLoader.cpp @@ -54,7 +54,7 @@ NS_IMPL_ISUPPORTS(nsStreamLoader, nsIStreamLoader, NS_IMETHODIMP nsStreamLoader::GetNumBytesRead(uint32_t* aNumBytes) { - *aNumBytes = mData.length(); + *aNumBytes = mBytesRead; return NS_OK; } @@ -150,7 +150,10 @@ nsStreamLoader::OnDataAvailable(nsIRequest* request, nsISupports *ctxt, uint64_t sourceOffset, uint32_t count) { uint32_t countRead; - return inStr->ReadSegments(WriteSegmentFun, this, count, &countRead); + nsresult rv = inStr->ReadSegments(WriteSegmentFun, this, count, &countRead); + NS_ENSURE_SUCCESS(rv, rv); + mBytesRead += countRead; + return NS_OK; } void diff --git a/netwerk/base/nsStreamLoader.h b/netwerk/base/nsStreamLoader.h index 671fc441f..b611a1aed 100644 --- a/netwerk/base/nsStreamLoader.h +++ b/netwerk/base/nsStreamLoader.h @@ -47,6 +47,8 @@ protected: nsCOMPtr<nsIRequest> mRequest; nsCOMPtr<nsIRequestObserver> mRequestObserver; + mozilla::Atomic<uint32_t, mozilla::Relaxed> mBytesRead; + // Buffer to accumulate incoming data. We preallocate if contentSize is // available. mozilla::Vector<uint8_t, 0> mData; |