Skip to content

Commit

Permalink
COMMON: Add template ctor to MemoryReadStream for arrays
Browse files Browse the repository at this point in the history
Creating a MemoryReadStream around an array buffer.
  • Loading branch information
DrMcCoy committed Dec 24, 2016
1 parent 97fb698 commit 0f5c7b4
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 14 deletions.
2 changes: 1 addition & 1 deletion src/aurora/erffile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ void ERFFile::verifyPasswordDigest() {
for (size_t i = 0; i < sizeof(buffer); i++)
buffer[i] = i;

Common::MemoryReadStream bufferStream(buffer, sizeof(buffer));
Common::MemoryReadStream bufferStream(buffer);
Common::ScopedPtr<Common::SeekableReadStream>
bufferEncrypted(Common::encryptBlowfishEBC(bufferStream, _password));

Expand Down
8 changes: 0 additions & 8 deletions src/common/memreadstream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,6 @@

namespace Common {

MemoryReadStream::MemoryReadStream(const byte *dataPtr, size_t dataSize, bool disposeMemory) :
_ptrOrig(dataPtr, disposeMemory), _ptr(dataPtr), _size(dataSize), _pos(0), _eos(false) {

}

MemoryReadStream::~MemoryReadStream() {
}

size_t MemoryReadStream::read(void *dataPtr, size_t dataSize) {
assert(dataPtr);

Expand Down
19 changes: 15 additions & 4 deletions src/common/memreadstream.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,21 @@ class MemoryReadStream : boost::noncopyable, public SeekableReadStream {
public:
/** This constructor takes a pointer to a memory buffer and a length, and
* wraps it. If disposeMemory is true, the MemoryReadStream takes ownership
* of the buffer and hence delete[]'s it when destructed.
*/
MemoryReadStream(const byte *dataPtr, size_t dataSize, bool disposeMemory = false);
~MemoryReadStream();
* of the buffer and hence delete[]'s it when destructed. */
MemoryReadStream(const byte *dataPtr, size_t dataSize, bool disposeMemory = false) :
_ptrOrig(dataPtr, disposeMemory), _ptr(dataPtr), _size(dataSize), _pos(0), _eos(false) {

}

/** Template constructor to create a MemoryReadStream around a static array buffer.
* Never disposes its memory. */
template<size_t N>
MemoryReadStream(const byte (&array)[N]) :
_ptrOrig(array, false), _ptr(array), _size(N), _pos(0), _eos(false) {

}

~MemoryReadStream() { }

size_t read(void *dataPtr, size_t dataSize);

Expand Down
2 changes: 1 addition & 1 deletion src/common/systemfonts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20761,7 +20761,7 @@ static const byte kDejaVuSansMonoBold[] = {


SeekableReadStream *getSystemFontMono() {
return new MemoryReadStream(kDejaVuSansMonoBold, sizeof(kDejaVuSansMonoBold));
return new MemoryReadStream(kDejaVuSansMonoBold);
}

} // End of namespace Common

0 comments on commit 0f5c7b4

Please sign in to comment.