mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Added a constructor to MemoryInputStream that will move from a MemoryBlock
This commit is contained in:
parent
5d83c1485d
commit
ac519e541a
2 changed files with 15 additions and 9 deletions
|
|
@ -28,7 +28,10 @@ MemoryInputStream::MemoryInputStream (const void* sourceData, size_t sourceDataS
|
|||
dataSize (sourceDataSize)
|
||||
{
|
||||
if (keepCopy)
|
||||
createInternalCopy();
|
||||
{
|
||||
internalCopy = MemoryBlock (sourceData, sourceDataSize);
|
||||
data = internalCopy.getData();
|
||||
}
|
||||
}
|
||||
|
||||
MemoryInputStream::MemoryInputStream (const MemoryBlock& sourceData, bool keepCopy)
|
||||
|
|
@ -36,14 +39,16 @@ MemoryInputStream::MemoryInputStream (const MemoryBlock& sourceData, bool keepCo
|
|||
dataSize (sourceData.getSize())
|
||||
{
|
||||
if (keepCopy)
|
||||
createInternalCopy();
|
||||
{
|
||||
internalCopy = sourceData;
|
||||
data = internalCopy.getData();
|
||||
}
|
||||
}
|
||||
|
||||
void MemoryInputStream::createInternalCopy()
|
||||
MemoryInputStream::MemoryInputStream (MemoryBlock&& source)
|
||||
: internalCopy (std::move (source))
|
||||
{
|
||||
internalCopy.malloc (dataSize);
|
||||
memcpy (internalCopy, data, dataSize);
|
||||
data = internalCopy;
|
||||
data = internalCopy.getData();
|
||||
}
|
||||
|
||||
MemoryInputStream::~MemoryInputStream()
|
||||
|
|
|
|||
|
|
@ -62,6 +62,9 @@ public:
|
|||
MemoryInputStream (const MemoryBlock& data,
|
||||
bool keepInternalCopyOfData);
|
||||
|
||||
/** Creates a stream by moving from a MemoryBlock. */
|
||||
MemoryInputStream (MemoryBlock&& blockToTake);
|
||||
|
||||
/** Destructor. */
|
||||
~MemoryInputStream() override;
|
||||
|
||||
|
|
@ -83,9 +86,7 @@ private:
|
|||
//==============================================================================
|
||||
const void* data;
|
||||
size_t dataSize, position = 0;
|
||||
HeapBlock<char> internalCopy;
|
||||
|
||||
void createInternalCopy();
|
||||
MemoryBlock internalCopy;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MemoryInputStream)
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue