mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 06:48:38 +09:00
Bug 1361699 - Add buffer when writing hashstore to file. r=gcp, r=mcmanus, a=RyanVM
We write a lot of 4-bytes prefixes to file which call many system calls. We should use a buffer and only write to file if the buffer is full or finish writing. nsIBufferedOutputStream is a good candidate to do that MozReview-Commit-ID: CzGOd7iXVTv --HG-- extra : source : 8f2b4efc5f0d3191a7e80d9324933621e111b44a
This commit is contained in:
parent
629a9a0f91
commit
787c782fd8
4 changed files with 26 additions and 26 deletions
|
|
@ -13,14 +13,11 @@
|
|||
// nsCheckSummedOutputStream
|
||||
|
||||
NS_IMPL_ISUPPORTS_INHERITED(nsCheckSummedOutputStream,
|
||||
nsSafeFileOutputStream,
|
||||
nsISafeOutputStream,
|
||||
nsIOutputStream,
|
||||
nsIFileOutputStream)
|
||||
nsBufferedOutputStream,
|
||||
nsISafeOutputStream)
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsCheckSummedOutputStream::Init(nsIFile* file, int32_t ioFlags, int32_t perm,
|
||||
int32_t behaviorFlags)
|
||||
nsCheckSummedOutputStream::Init(nsIOutputStream* stream, uint32_t bufferSize)
|
||||
{
|
||||
nsresult rv;
|
||||
mHash = do_CreateInstance(NS_CRYPTO_HASH_CONTRACTID, &rv);
|
||||
|
|
@ -29,7 +26,7 @@ nsCheckSummedOutputStream::Init(nsIFile* file, int32_t ioFlags, int32_t perm,
|
|||
rv = mHash->Init(nsICryptoHash::MD5);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return nsSafeFileOutputStream::Init(file, ioFlags, perm, behaviorFlags);
|
||||
return nsBufferedOutputStream::Init(stream, bufferSize);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
|
@ -39,12 +36,12 @@ nsCheckSummedOutputStream::Finish()
|
|||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
uint32_t written;
|
||||
rv = nsSafeFileOutputStream::Write(reinterpret_cast<const char*>(mCheckSum.BeginReading()),
|
||||
rv = nsBufferedOutputStream::Write(reinterpret_cast<const char*>(mCheckSum.BeginReading()),
|
||||
mCheckSum.Length(), &written);
|
||||
NS_ASSERTION(written == mCheckSum.Length(), "Error writing stream checksum");
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return nsSafeFileOutputStream::Finish();
|
||||
return nsBufferedOutputStream::Finish();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
|
@ -53,7 +50,7 @@ nsCheckSummedOutputStream::Write(const char *buf, uint32_t count, uint32_t *resu
|
|||
nsresult rv = mHash->Update(reinterpret_cast<const uint8_t*>(buf), count);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return nsSafeFileOutputStream::Write(buf, count, result);
|
||||
return nsBufferedOutputStream::Write(buf, count, result);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue