33 data.allocate (initialSize, initialiseToZero);
55 jassert (((ssize_t) sizeInBytes) >= 0);
59 jassert (dataToInitialiseFrom !=
nullptr);
63 if (dataToInitialiseFrom !=
nullptr)
84 :
data (std::move (other.data)),
91 data = std::move (other.data);
99 return matches (other.data, other.size);
104 return ! operator== (other);
109 return size == dataSize
110 && memcmp (
data, dataToCompare,
size) == 0;
127 data.realloc (newSize);
129 if (initialiseToZero && (newSize >
size))
134 data.allocate (newSize, initialiseToZero);
150 if (
size < minimumSize)
151 setSize (minimumSize, initialiseToZero);
156 std::swap (
size, other.size);
157 data.swapWith (other.data);
195 insertPosition =
jmin (
size, insertPosition);
196 auto trailingDataSize =
size - insertPosition;
199 if (trailingDataSize > 0)
200 memmove (
data + insertPosition + numBytes,
201 data + insertPosition,
204 memcpy (
data + insertPosition, srcData, numBytes);
210 if (startByte + numBytesToRemove >=
size)
214 else if (numBytesToRemove > 0)
216 memmove (
data + startByte,
217 data + startByte + numBytesToRemove,
218 size - (startByte + numBytesToRemove));
226 auto*
d =
static_cast<const char*
> (src);
231 num += (size_t) -offset;
235 if ((
size_t) offset + num >
size)
236 num =
size - (size_t) offset;
244 auto*
d =
static_cast<char*
> (dst);
250 num -= (size_t) -offset;
254 if ((
size_t) offset + num >
size)
256 auto newNum = (size_t)
size - (
size_t) offset;
275 auto byte = bitRangeStart >> 3;
276 auto offsetInByte = bitRangeStart & 7;
277 size_t bitsSoFar = 0;
279 while (numBits > 0 && (
size_t)
byte <
size)
281 auto bitsThisTime =
jmin (numBits, 8 - offsetInByte);
282 const int mask = (0xff >> (8 - bitsThisTime)) << offsetInByte;
284 res |= (((
data[
byte] &
mask) >> offsetInByte) << bitsSoFar);
286 bitsSoFar += bitsThisTime;
287 numBits -= bitsThisTime;
297 auto byte = bitRangeStart >> 3;
298 auto offsetInByte = bitRangeStart & 7;
299 uint32 mask = ~((((
uint32) 0xffffffff) << (32 - numBits)) >> (32 - numBits));
301 while (numBits > 0 && (
size_t)
byte <
size)
303 auto bitsThisTime =
jmin (numBits, 8 - offsetInByte);
305 const uint32 tempMask = (
mask << offsetInByte) | ~((((
uint32) 0xffffffff) >> offsetInByte) << offsetInByte);
306 const uint32 tempBits = (
uint32) bitsToSet << offsetInByte;
311 numBits -= bitsThisTime;
312 bitsToSet >>= bitsThisTime;
313 mask >>= bitsThisTime;
335 auto c =
t.getAndAdvance();
337 if (
c >=
'0' &&
c <=
'9') {
byte |=
c -
'0';
break; }
338 if (
c >=
'a' &&
c <=
'z') {
byte |=
c - (
'a' - 10);
break; }
339 if (
c >=
'A' &&
c <=
'Z') {
byte |=
c - (
'A' - 10);
break; }
349 *dest++ = (char)
byte;
354static const char base64EncodingTable[] =
".ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+";
358 auto numChars = ((
size << 3) + 5) / 6;
361 auto initialLen = destString.
length();
362 destString.
preallocateBytes ((
size_t) initialLen *
sizeof (String::CharPointerType::CharType) + 2 + numChars);
368 for (
size_t i = 0;
i < numChars; ++
i)
377 63, 0, 0, 0, 0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
378 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
379 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
391 setSize ((
size_t) numBytesNeeded,
true);
393 auto srcChars = dot + 1;
398 auto c = (
int) srcChars.getAndAdvance();
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
#define noexcept
Definition DistrhoDefines.h:72
goto loop
Definition Spc_Cpu.h:155
static const unsigned long mask[]
Definition bitwise.c:31
#define byte
Definition blargg_source.h:87
bool matches(const void *data, size_t dataSize) const noexcept
Definition MemoryBlock.cpp:101
void insert(const void *dataToInsert, size_t numBytesToInsert, size_t insertPosition)
Definition MemoryBlock.cpp:188
void removeSection(size_t startByte, size_t numBytesToRemove)
Definition MemoryBlock.cpp:206
void setBitRange(size_t bitRangeStart, size_t numBits, int binaryNumberToApply) noexcept
Definition MemoryBlock.cpp:293
void reset()
Definition MemoryBlock.cpp:136
void ensureSize(const size_t minimumSize, bool initialiseNewSpaceToZero=false)
Definition MemoryBlock.cpp:142
void copyFrom(const void *srcData, int destinationOffset, size_t numBytes) noexcept
Definition MemoryBlock.cpp:222
void append(const void *data, size_t numBytes)
Definition MemoryBlock.cpp:167
bool operator==(const MemoryBlock &other) const noexcept
Definition MemoryBlock.cpp:91
void setSize(const size_t newSize, bool initialiseNewSpaceToZero=false)
Definition MemoryBlock.cpp:109
void fillWith(uint8 valueToUse) noexcept
Definition MemoryBlock.cpp:162
MemoryBlock() noexcept
Definition MemoryBlock.cpp:30
void loadFromHexString(StringRef sourceHexString)
Definition MemoryBlock.cpp:317
void swapWith(MemoryBlock &other) noexcept
Definition MemoryBlock.cpp:148
void copyTo(void *destData, int sourceOffset, size_t numBytes) const noexcept
Definition MemoryBlock.cpp:240
String toString() const
Definition MemoryBlock.cpp:263
~MemoryBlock() noexcept
Definition MemoryBlock.cpp:75
bool operator!=(const MemoryBlock &other) const noexcept
Definition MemoryBlock.cpp:96
int getBitRange(size_t bitRangeStart, size_t numBitsToRead) const noexcept
Definition MemoryBlock.cpp:269
MemoryBlock & operator=(const MemoryBlock &)
Definition MemoryBlock.cpp:79
static String fromUTF8(const char *utf8buffer, int bufferSizeBytes=-1)
Definition String.cpp:1961
static CharPointerType1 find(CharPointerType1 textToSearch, const CharPointerType2 substringToLookFor) noexcept
Definition juce_CharacterFunctions.h:708
size_t size
Definition juce_MemoryBlock.h:285
void ensureSize(const size_t minimumSize, bool initialiseNewSpaceToZero=false)
Definition juce_MemoryBlock.cpp:148
bool fromBase64Encoding(StringRef encodedString)
Definition juce_MemoryBlock.cpp:382
String toBase64Encoding() const
Definition juce_MemoryBlock.cpp:356
bool matches(const void *data, size_t dataSize) const noexcept
Definition juce_MemoryBlock.cpp:107
MemoryBlock() noexcept
Definition juce_MemoryBlock.cpp:26
void replaceAll(const void *data, size_t numBytes)
Definition juce_MemoryBlock.cpp:177
void setSize(const size_t newSize, bool initialiseNewSpaceToZero=false)
Definition juce_MemoryBlock.cpp:115
int getBitRange(size_t bitRangeStart, size_t numBitsToRead) const noexcept
Definition juce_MemoryBlock.cpp:271
HeapBlockType data
Definition juce_MemoryBlock.h:284
void setBitRange(size_t bitRangeStart, size_t numBits, int binaryNumberToApply) noexcept
Definition juce_MemoryBlock.cpp:295
void reset()
Definition juce_MemoryBlock.cpp:142
Definition juce_String.h:53
CharPointerType getCharPointer() const noexcept
Definition juce_String.h:1153
int length() const noexcept
Definition juce_String.cpp:511
void preallocateBytes(size_t numBytesNeeded)
Definition juce_String.cpp:284
int getIntValue() const noexcept
Definition juce_String.cpp:1871
Definition juce_StringRef.h:62
int length() const noexcept
Definition juce_StringRef.h:105
String::CharPointerType text
Definition juce_StringRef.h:130
struct huft * t
Definition inflate.c:943
unsigned d
Definition inflate.c:940
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
static PuglViewHint int value
Definition pugl.h:1708
JSAMPIMAGE data
Definition jpeglib.h:945
Definition carla_juce.cpp:31
unsigned int uint32
Definition juce_MathsFunctions.h:45
wchar_t juce_wchar
Definition juce_CharacterFunctions.h:42
static const char base64EncodingTable[]
Definition juce_MemoryBlock.cpp:354
static const char base64DecodingTable[]
Definition juce_MemoryBlock.cpp:375
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
unsigned char uint8
Definition juce_MathsFunctions.h:37
constexpr int numElementsInArray(Type(&)[N]) noexcept
Definition juce_MathsFunctions.h:344
void zeromem(void *memory, size_t numBytes) noexcept
Definition juce_Memory.h:28
return c
Definition crypt.c:175
memcpy(hh, h, RAND_HEAD_LEN)
typedef int(UZ_EXP MsgFn)()