Skip to content
Permalink
Browse files

Make streams' read and write return void

The stream implementations had two cascading layers (the upper one
with operator<< and operator>>, and a lower one with read and write).
The lower layer's functions are never cascaded (nor should they, as
they should only be used from the higher layer), so make them return
void instead.
  • Loading branch information...
sipa committed Oct 29, 2016
1 parent 50e8a9c commit c2c5d42f36f4440aaddc4a64974a52fdb07af08b
Showing with 12 additions and 22 deletions.
  1. +1 −2 src/hash.h
  2. +1 −2 src/script/bitcoinconsensus.cpp
  3. +1 −2 src/serialize.h
  4. +9 −16 src/streams.h
@@ -138,9 +138,8 @@ class CHashWriter

CHashWriter(int nTypeIn, int nVersionIn) : nType(nTypeIn), nVersion(nVersionIn) {}

CHashWriter& write(const char *pch, size_t size) {
void write(const char *pch, size_t size) {
ctx.Write((const unsigned char*)pch, size);
return (*this);
}

// invalidates the object
@@ -23,7 +23,7 @@ class TxInputStream
m_remaining(txToLen)
{}

TxInputStream& read(char* pch, size_t nSize)
void read(char* pch, size_t nSize)
{
if (nSize > m_remaining)
throw std::ios_base::failure(std::string(__func__) + ": end of data");
@@ -37,7 +37,6 @@ class TxInputStream
memcpy(pch, m_data, nSize);
m_remaining -= nSize;
m_data += nSize;
return *this;
}

template<typename T>
@@ -943,10 +943,9 @@ class CSizeComputer

CSizeComputer(int nTypeIn, int nVersionIn) : nSize(0), nType(nTypeIn), nVersion(nVersionIn) {}

CSizeComputer& write(const char *psz, size_t nSize)
void write(const char *psz, size_t nSize)
{
this->nSize += nSize;
return *this;
}

template<typename T>
@@ -255,7 +255,7 @@ class CDataStream
void SetVersion(int n) { nVersion = n; }
int GetVersion() { return nVersion; }

CDataStream& read(char* pch, size_t nSize)
void read(char* pch, size_t nSize)
{
// Read from the beginning of the buffer
unsigned int nReadPosNext = nReadPos + nSize;
@@ -268,14 +268,13 @@ class CDataStream
memcpy(pch, &vch[nReadPos], nSize);
nReadPos = 0;
vch.clear();
return (*this);
return;
}
memcpy(pch, &vch[nReadPos], nSize);
nReadPos = nReadPosNext;
return (*this);
}

CDataStream& ignore(int nSize)
void ignore(int nSize)
{
// Ignore from the beginning of the buffer
if (nSize < 0) {
@@ -288,17 +287,15 @@ class CDataStream
throw std::ios_base::failure("CDataStream::ignore(): end of data");
nReadPos = 0;
vch.clear();
return (*this);
return;
}
nReadPos = nReadPosNext;
return (*this);
}

CDataStream& write(const char* pch, size_t nSize)
void write(const char* pch, size_t nSize)
{
// Write to the end of the buffer
vch.insert(vch.end(), pch, pch + nSize);
return (*this);
}

template<typename Stream>
@@ -433,16 +430,15 @@ class CAutoFile
void SetVersion(int n) { nVersion = n; }
int GetVersion() { return nVersion; }

CAutoFile& read(char* pch, size_t nSize)
void read(char* pch, size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::read: file handle is NULL");
if (fread(pch, 1, nSize, file) != nSize)
throw std::ios_base::failure(feof(file) ? "CAutoFile::read: end of file" : "CAutoFile::read: fread failed");
return (*this);
}

CAutoFile& ignore(size_t nSize)
void ignore(size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::ignore: file handle is NULL");
@@ -453,16 +449,14 @@ class CAutoFile
throw std::ios_base::failure(feof(file) ? "CAutoFile::ignore: end of file" : "CAutoFile::read: fread failed");
nSize -= nNow;
}
return (*this);
}

CAutoFile& write(const char* pch, size_t nSize)
void write(const char* pch, size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::write: file handle is NULL");
if (fwrite(pch, 1, nSize, file) != nSize)
throw std::ios_base::failure("CAutoFile::write: write failed");
return (*this);
}

template<typename T>
@@ -563,7 +557,7 @@ class CBufferedFile
}

// read a number of bytes
CBufferedFile& read(char *pch, size_t nSize) {
void read(char *pch, size_t nSize) {
if (nSize + nReadPos > nReadLimit)
throw std::ios_base::failure("Read attempted past buffer limit");
if (nSize + nRewind > vchBuf.size())
@@ -582,7 +576,6 @@ class CBufferedFile
pch += nNow;
nSize -= nNow;
}
return (*this);
}

// return the current reading position

0 comments on commit c2c5d42

Please sign in to comment.
You can’t perform that action at this time.