|
|
@@ -269,7 +269,7 @@ public: |
|
|
/* |
|
|
/* |
|
|
* Get length of the string. |
|
|
* Get length of the string. |
|
|
*/ |
|
|
*/ |
|
|
std::size_t length() const noexcept |
|
|
|
|
|
|
|
|
size_t length() const noexcept |
|
|
{ |
|
|
{ |
|
|
return fBufferLen; |
|
|
return fBufferLen; |
|
|
} |
|
|
} |
|
|
@@ -295,7 +295,7 @@ public: |
|
|
*/ |
|
|
*/ |
|
|
bool contains(const char c) const noexcept |
|
|
bool contains(const char c) const noexcept |
|
|
{ |
|
|
{ |
|
|
for (std::size_t i=0; i<fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i<fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i] == c) |
|
|
if (fBuffer[i] == c) |
|
|
return true; |
|
|
return true; |
|
|
@@ -334,7 +334,7 @@ public: |
|
|
/* |
|
|
/* |
|
|
* Check if character at 'pos' is a digit. |
|
|
* Check if character at 'pos' is a digit. |
|
|
*/ |
|
|
*/ |
|
|
bool isDigit(const std::size_t pos) const noexcept |
|
|
|
|
|
|
|
|
bool isDigit(const size_t pos) const noexcept |
|
|
{ |
|
|
{ |
|
|
DISTRHO_SAFE_ASSERT_RETURN(pos < fBufferLen, false); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(pos < fBufferLen, false); |
|
|
|
|
|
|
|
|
@@ -358,7 +358,7 @@ public: |
|
|
{ |
|
|
{ |
|
|
DISTRHO_SAFE_ASSERT_RETURN(prefix != nullptr, false); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(prefix != nullptr, false); |
|
|
|
|
|
|
|
|
const std::size_t prefixLen(std::strlen(prefix)); |
|
|
|
|
|
|
|
|
const size_t prefixLen(std::strlen(prefix)); |
|
|
|
|
|
|
|
|
if (fBufferLen < prefixLen) |
|
|
if (fBufferLen < prefixLen) |
|
|
return false; |
|
|
return false; |
|
|
@@ -383,7 +383,7 @@ public: |
|
|
{ |
|
|
{ |
|
|
DISTRHO_SAFE_ASSERT_RETURN(suffix != nullptr, false); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(suffix != nullptr, false); |
|
|
|
|
|
|
|
|
const std::size_t suffixLen(std::strlen(suffix)); |
|
|
|
|
|
|
|
|
const size_t suffixLen(std::strlen(suffix)); |
|
|
|
|
|
|
|
|
if (fBufferLen < suffixLen) |
|
|
if (fBufferLen < suffixLen) |
|
|
return false; |
|
|
return false; |
|
|
@@ -395,7 +395,7 @@ public: |
|
|
* Find the first occurrence of character 'c' in the string. |
|
|
* Find the first occurrence of character 'c' in the string. |
|
|
* Returns "length()" if the character is not found. |
|
|
* Returns "length()" if the character is not found. |
|
|
*/ |
|
|
*/ |
|
|
std::size_t find(const char c, bool* const found = nullptr) const noexcept |
|
|
|
|
|
|
|
|
size_t find(const char c, bool* const found = nullptr) const noexcept |
|
|
{ |
|
|
{ |
|
|
if (fBufferLen == 0 || c == '\0') |
|
|
if (fBufferLen == 0 || c == '\0') |
|
|
{ |
|
|
{ |
|
|
@@ -404,7 +404,7 @@ public: |
|
|
return fBufferLen; |
|
|
return fBufferLen; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i] == c) |
|
|
if (fBuffer[i] == c) |
|
|
{ |
|
|
{ |
|
|
@@ -423,7 +423,7 @@ public: |
|
|
* Find the first occurrence of string 'strBuf' in the string. |
|
|
* Find the first occurrence of string 'strBuf' in the string. |
|
|
* Returns "length()" if the string is not found. |
|
|
* Returns "length()" if the string is not found. |
|
|
*/ |
|
|
*/ |
|
|
std::size_t find(const char* const strBuf, bool* const found = nullptr) const noexcept |
|
|
|
|
|
|
|
|
size_t find(const char* const strBuf, bool* const found = nullptr) const noexcept |
|
|
{ |
|
|
{ |
|
|
if (fBufferLen == 0 || strBuf == nullptr || strBuf[0] == '\0') |
|
|
if (fBufferLen == 0 || strBuf == nullptr || strBuf[0] == '\0') |
|
|
{ |
|
|
{ |
|
|
@@ -448,7 +448,7 @@ public: |
|
|
|
|
|
|
|
|
if (found != nullptr) |
|
|
if (found != nullptr) |
|
|
*found = true; |
|
|
*found = true; |
|
|
return static_cast<std::size_t>(ret); |
|
|
|
|
|
|
|
|
return static_cast<size_t>(ret); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (found != nullptr) |
|
|
if (found != nullptr) |
|
|
@@ -460,7 +460,7 @@ public: |
|
|
* Find the last occurrence of character 'c' in the string. |
|
|
* Find the last occurrence of character 'c' in the string. |
|
|
* Returns "length()" if the character is not found. |
|
|
* Returns "length()" if the character is not found. |
|
|
*/ |
|
|
*/ |
|
|
std::size_t rfind(const char c, bool* const found = nullptr) const noexcept |
|
|
|
|
|
|
|
|
size_t rfind(const char c, bool* const found = nullptr) const noexcept |
|
|
{ |
|
|
{ |
|
|
if (fBufferLen == 0 || c == '\0') |
|
|
if (fBufferLen == 0 || c == '\0') |
|
|
{ |
|
|
{ |
|
|
@@ -469,7 +469,7 @@ public: |
|
|
return fBufferLen; |
|
|
return fBufferLen; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (std::size_t i=fBufferLen; i > 0; --i) |
|
|
|
|
|
|
|
|
for (size_t i=fBufferLen; i > 0; --i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i-1] == c) |
|
|
if (fBuffer[i-1] == c) |
|
|
{ |
|
|
{ |
|
|
@@ -488,7 +488,7 @@ public: |
|
|
* Find the last occurrence of string 'strBuf' in the string. |
|
|
* Find the last occurrence of string 'strBuf' in the string. |
|
|
* Returns "length()" if the string is not found. |
|
|
* Returns "length()" if the string is not found. |
|
|
*/ |
|
|
*/ |
|
|
std::size_t rfind(const char* const strBuf, bool* const found = nullptr) const noexcept |
|
|
|
|
|
|
|
|
size_t rfind(const char* const strBuf, bool* const found = nullptr) const noexcept |
|
|
{ |
|
|
{ |
|
|
if (found != nullptr) |
|
|
if (found != nullptr) |
|
|
*found = false; |
|
|
*found = false; |
|
|
@@ -496,12 +496,12 @@ public: |
|
|
if (fBufferLen == 0 || strBuf == nullptr || strBuf[0] == '\0') |
|
|
if (fBufferLen == 0 || strBuf == nullptr || strBuf[0] == '\0') |
|
|
return fBufferLen; |
|
|
return fBufferLen; |
|
|
|
|
|
|
|
|
const std::size_t strBufLen(std::strlen(strBuf)); |
|
|
|
|
|
|
|
|
const size_t strBufLen(std::strlen(strBuf)); |
|
|
|
|
|
|
|
|
std::size_t ret = fBufferLen; |
|
|
|
|
|
|
|
|
size_t ret = fBufferLen; |
|
|
const char* tmpBuf = fBuffer; |
|
|
const char* tmpBuf = fBuffer; |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (std::strstr(tmpBuf+1, strBuf) == nullptr && std::strncmp(tmpBuf, strBuf, strBufLen) == 0) |
|
|
if (std::strstr(tmpBuf+1, strBuf) == nullptr && std::strncmp(tmpBuf, strBuf, strBufLen) == 0) |
|
|
{ |
|
|
{ |
|
|
@@ -532,7 +532,7 @@ public: |
|
|
{ |
|
|
{ |
|
|
DISTRHO_SAFE_ASSERT_RETURN(before != '\0' /* && after != '\0' */, *this); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(before != '\0' /* && after != '\0' */, *this); |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i] == before) |
|
|
if (fBuffer[i] == before) |
|
|
fBuffer[i] = after; |
|
|
fBuffer[i] = after; |
|
|
@@ -551,7 +551,7 @@ public: |
|
|
if (fBufferLen == 0) |
|
|
if (fBufferLen == 0) |
|
|
return *this; |
|
|
return *this; |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i] == c) |
|
|
if (fBuffer[i] == c) |
|
|
{ |
|
|
{ |
|
|
@@ -567,7 +567,7 @@ public: |
|
|
/* |
|
|
/* |
|
|
* Truncate the string to size 'n'. |
|
|
* Truncate the string to size 'n'. |
|
|
*/ |
|
|
*/ |
|
|
String& truncate(const std::size_t n) noexcept |
|
|
|
|
|
|
|
|
String& truncate(const size_t n) noexcept |
|
|
{ |
|
|
{ |
|
|
if (n >= fBufferLen) |
|
|
if (n >= fBufferLen) |
|
|
return *this; |
|
|
return *this; |
|
|
@@ -583,7 +583,7 @@ public: |
|
|
*/ |
|
|
*/ |
|
|
String& toBasic() noexcept |
|
|
String& toBasic() noexcept |
|
|
{ |
|
|
{ |
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i] >= '0' && fBuffer[i] <= '9') |
|
|
if (fBuffer[i] >= '0' && fBuffer[i] <= '9') |
|
|
continue; |
|
|
continue; |
|
|
@@ -607,7 +607,7 @@ public: |
|
|
{ |
|
|
{ |
|
|
static constexpr const char kCharDiff = 'a' - 'A'; |
|
|
static constexpr const char kCharDiff = 'a' - 'A'; |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i] >= 'A' && fBuffer[i] <= 'Z') |
|
|
if (fBuffer[i] >= 'A' && fBuffer[i] <= 'Z') |
|
|
fBuffer[i] = static_cast<char>(fBuffer[i] + kCharDiff); |
|
|
fBuffer[i] = static_cast<char>(fBuffer[i] + kCharDiff); |
|
|
@@ -623,7 +623,7 @@ public: |
|
|
{ |
|
|
{ |
|
|
static constexpr const char kCharDiff = 'a' - 'A'; |
|
|
static constexpr const char kCharDiff = 'a' - 'A'; |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
if (fBuffer[i] >= 'a' && fBuffer[i] <= 'z') |
|
|
if (fBuffer[i] >= 'a' && fBuffer[i] <= 'z') |
|
|
fBuffer[i] = static_cast<char>(fBuffer[i] - kCharDiff); |
|
|
fBuffer[i] = static_cast<char>(fBuffer[i] - kCharDiff); |
|
|
@@ -688,31 +688,28 @@ public: |
|
|
// base64 stuff, based on http://www.adp-gmbh.ch/cpp/common/base64.html |
|
|
// base64 stuff, based on http://www.adp-gmbh.ch/cpp/common/base64.html |
|
|
// Copyright (C) 2004-2008 René Nyffenegger |
|
|
// Copyright (C) 2004-2008 René Nyffenegger |
|
|
|
|
|
|
|
|
static String asBase64(const void* const data, const std::size_t dataSize) |
|
|
|
|
|
|
|
|
static String asBase64(const void* const data, const size_t dataSize) |
|
|
{ |
|
|
{ |
|
|
static constexpr const char* const kBase64Chars = |
|
|
static constexpr const char* const kBase64Chars = |
|
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
|
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
|
|
"abcdefghijklmnopqrstuvwxyz" |
|
|
"abcdefghijklmnopqrstuvwxyz" |
|
|
"0123456789+/"; |
|
|
"0123456789+/"; |
|
|
|
|
|
|
|
|
#ifndef _MSC_VER |
|
|
|
|
|
const std::size_t kTmpBufSize = std::min(d_nextPowerOf2(static_cast<uint32_t>(dataSize/3)), 65536U); |
|
|
|
|
|
#else |
|
|
|
|
|
constexpr std::size_t kTmpBufSize = 65536U; |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
const size_t strBufSize = std::min(d_nextPowerOf2(static_cast<uint32_t>(dataSize/3)), 65536U); |
|
|
|
|
|
char* strBuf = static_cast<char*>(std::malloc(strBufSize)); |
|
|
|
|
|
DISTRHO_SAFE_ASSERT_RETURN(strBuf != nullptr, String()); |
|
|
|
|
|
|
|
|
const uchar* bytesToEncode((const uchar*)data); |
|
|
|
|
|
|
|
|
strBuf[strBufSize] = '\0'; |
|
|
|
|
|
size_t strBufIndex = 0; |
|
|
|
|
|
|
|
|
|
|
|
const uchar* bytesToEncode = static_cast<const uchar*>(data); |
|
|
|
|
|
|
|
|
uint i=0, j=0; |
|
|
uint i=0, j=0; |
|
|
uint charArray3[3], charArray4[4]; |
|
|
uint charArray3[3], charArray4[4]; |
|
|
|
|
|
|
|
|
char strBuf[kTmpBufSize + 1]; |
|
|
|
|
|
strBuf[kTmpBufSize] = '\0'; |
|
|
|
|
|
std::size_t strBufIndex = 0; |
|
|
|
|
|
|
|
|
|
|
|
String ret; |
|
|
String ret; |
|
|
|
|
|
|
|
|
for (std::size_t s=0; s<dataSize; ++s) |
|
|
|
|
|
|
|
|
for (size_t s = 0; s < dataSize; ++s) |
|
|
{ |
|
|
{ |
|
|
charArray3[i++] = *(bytesToEncode++); |
|
|
charArray3[i++] = *(bytesToEncode++); |
|
|
|
|
|
|
|
|
@@ -723,10 +720,10 @@ public: |
|
|
charArray4[2] = ((charArray3[1] & 0x0f) << 2) + ((charArray3[2] & 0xc0) >> 6); |
|
|
charArray4[2] = ((charArray3[1] & 0x0f) << 2) + ((charArray3[2] & 0xc0) >> 6); |
|
|
charArray4[3] = charArray3[2] & 0x3f; |
|
|
charArray4[3] = charArray3[2] & 0x3f; |
|
|
|
|
|
|
|
|
for (i=0; i<4; ++i) |
|
|
|
|
|
|
|
|
for (i = 0; i < 4; ++i) |
|
|
strBuf[strBufIndex++] = kBase64Chars[charArray4[i]]; |
|
|
strBuf[strBufIndex++] = kBase64Chars[charArray4[i]]; |
|
|
|
|
|
|
|
|
if (strBufIndex >= kTmpBufSize-7) |
|
|
|
|
|
|
|
|
if (strBufIndex >= strBufSize - 7) |
|
|
{ |
|
|
{ |
|
|
strBuf[strBufIndex] = '\0'; |
|
|
strBuf[strBufIndex] = '\0'; |
|
|
strBufIndex = 0; |
|
|
strBufIndex = 0; |
|
|
@@ -739,7 +736,7 @@ public: |
|
|
|
|
|
|
|
|
if (i != 0) |
|
|
if (i != 0) |
|
|
{ |
|
|
{ |
|
|
for (j=i; j<3; ++j) |
|
|
|
|
|
|
|
|
for (j = i; j < 3; ++j) |
|
|
charArray3[j] = '\0'; |
|
|
charArray3[j] = '\0'; |
|
|
|
|
|
|
|
|
charArray4[0] = (charArray3[0] & 0xfc) >> 2; |
|
|
charArray4[0] = (charArray3[0] & 0xfc) >> 2; |
|
|
@@ -747,7 +744,7 @@ public: |
|
|
charArray4[2] = ((charArray3[1] & 0x0f) << 2) + ((charArray3[2] & 0xc0) >> 6); |
|
|
charArray4[2] = ((charArray3[1] & 0x0f) << 2) + ((charArray3[2] & 0xc0) >> 6); |
|
|
charArray4[3] = charArray3[2] & 0x3f; |
|
|
charArray4[3] = charArray3[2] & 0x3f; |
|
|
|
|
|
|
|
|
for (j=0; j<4 && i<3 && j<i+1; ++j) |
|
|
|
|
|
|
|
|
for (j = 0; j < 4 && i < 3 && j < i + 1; ++j) |
|
|
strBuf[strBufIndex++] = kBase64Chars[charArray4[j]]; |
|
|
strBuf[strBufIndex++] = kBase64Chars[charArray4[j]]; |
|
|
|
|
|
|
|
|
for (; i++ < 3;) |
|
|
for (; i++ < 3;) |
|
|
@@ -760,6 +757,7 @@ public: |
|
|
ret += strBuf; |
|
|
ret += strBuf; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
std::free(strBuf); |
|
|
return ret; |
|
|
return ret; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@@ -778,7 +776,7 @@ public: |
|
|
|
|
|
|
|
|
char* newbufptr = newbuf; |
|
|
char* newbufptr = newbuf; |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
const char c = fBuffer[i]; |
|
|
const char c = fBuffer[i]; |
|
|
|
|
|
|
|
|
@@ -901,7 +899,7 @@ public: |
|
|
|
|
|
|
|
|
char* newbufptr = newbuf; |
|
|
char* newbufptr = newbuf; |
|
|
|
|
|
|
|
|
for (std::size_t i=0; i < fBufferLen; ++i) |
|
|
|
|
|
|
|
|
for (size_t i=0; i < fBufferLen; ++i) |
|
|
{ |
|
|
{ |
|
|
const char c = fBuffer[i]; |
|
|
const char c = fBuffer[i]; |
|
|
|
|
|
|
|
|
@@ -957,19 +955,16 @@ public: |
|
|
return fBuffer; |
|
|
return fBuffer; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
char operator[](const std::size_t pos) const noexcept |
|
|
|
|
|
|
|
|
char operator[](const size_t pos) const noexcept |
|
|
{ |
|
|
{ |
|
|
if (pos < fBufferLen) |
|
|
if (pos < fBufferLen) |
|
|
return fBuffer[pos]; |
|
|
return fBuffer[pos]; |
|
|
|
|
|
|
|
|
d_safe_assert("pos < fBufferLen", __FILE__, __LINE__); |
|
|
d_safe_assert("pos < fBufferLen", __FILE__, __LINE__); |
|
|
|
|
|
|
|
|
static char fallback; |
|
|
|
|
|
fallback = '\0'; |
|
|
|
|
|
return fallback; |
|
|
|
|
|
|
|
|
return '\0'; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
char& operator[](const std::size_t pos) noexcept |
|
|
|
|
|
|
|
|
char& operator[](const size_t pos) noexcept |
|
|
{ |
|
|
{ |
|
|
if (pos < fBufferLen) |
|
|
if (pos < fBufferLen) |
|
|
return fBuffer[pos]; |
|
|
return fBuffer[pos]; |
|
|
@@ -1020,7 +1015,7 @@ public: |
|
|
if (strBuf == nullptr || strBuf[0] == '\0') |
|
|
if (strBuf == nullptr || strBuf[0] == '\0') |
|
|
return *this; |
|
|
return *this; |
|
|
|
|
|
|
|
|
const std::size_t strBufLen = std::strlen(strBuf); |
|
|
|
|
|
|
|
|
const size_t strBufLen = std::strlen(strBuf); |
|
|
|
|
|
|
|
|
// for empty strings, we can just take the appended string as our entire data |
|
|
// for empty strings, we can just take the appended string as our entire data |
|
|
if (isEmpty()) |
|
|
if (isEmpty()) |
|
|
@@ -1054,8 +1049,8 @@ public: |
|
|
if (isEmpty()) |
|
|
if (isEmpty()) |
|
|
return String(strBuf); |
|
|
return String(strBuf); |
|
|
|
|
|
|
|
|
const std::size_t strBufLen = std::strlen(strBuf); |
|
|
|
|
|
const std::size_t newBufSize = fBufferLen + strBufLen; |
|
|
|
|
|
|
|
|
const size_t strBufLen = std::strlen(strBuf); |
|
|
|
|
|
const size_t newBufSize = fBufferLen + strBufLen; |
|
|
char* const newBuf = static_cast<char*>(std::malloc(newBufSize + 1)); |
|
|
char* const newBuf = static_cast<char*>(std::malloc(newBufSize + 1)); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(newBuf != nullptr, String()); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(newBuf != nullptr, String()); |
|
|
|
|
|
|
|
|
@@ -1080,7 +1075,7 @@ public: |
|
|
|
|
|
|
|
|
private: |
|
|
private: |
|
|
char* fBuffer; // the actual string buffer |
|
|
char* fBuffer; // the actual string buffer |
|
|
std::size_t fBufferLen; // string length |
|
|
|
|
|
|
|
|
size_t fBufferLen; // string length |
|
|
bool fBufferAlloc; // wherever the buffer is allocated, not using _null() |
|
|
bool fBufferAlloc; // wherever the buffer is allocated, not using _null() |
|
|
|
|
|
|
|
|
/* |
|
|
/* |
|
|
@@ -1101,7 +1096,7 @@ private: |
|
|
* - Allocates string only if 'strBuf' is not null and new string contents are different |
|
|
* - Allocates string only if 'strBuf' is not null and new string contents are different |
|
|
* - If 'strBuf' is null, 'size' must be 0 |
|
|
* - If 'strBuf' is null, 'size' must be 0 |
|
|
*/ |
|
|
*/ |
|
|
void _dup(const char* const strBuf, const std::size_t size = 0) noexcept |
|
|
|
|
|
|
|
|
void _dup(const char* const strBuf, const size_t size = 0) noexcept |
|
|
{ |
|
|
{ |
|
|
if (strBuf != nullptr) |
|
|
if (strBuf != nullptr) |
|
|
{ |
|
|
{ |
|
|
@@ -1158,9 +1153,9 @@ String operator+(const String& strBefore, const char* const strBufAfter) noexcep |
|
|
if (strBefore.isEmpty()) |
|
|
if (strBefore.isEmpty()) |
|
|
return String(strBufAfter); |
|
|
return String(strBufAfter); |
|
|
|
|
|
|
|
|
const std::size_t strBeforeLen = strBefore.length(); |
|
|
|
|
|
const std::size_t strBufAfterLen = std::strlen(strBufAfter); |
|
|
|
|
|
const std::size_t newBufSize = strBeforeLen + strBufAfterLen; |
|
|
|
|
|
|
|
|
const size_t strBeforeLen = strBefore.length(); |
|
|
|
|
|
const size_t strBufAfterLen = std::strlen(strBufAfter); |
|
|
|
|
|
const size_t newBufSize = strBeforeLen + strBufAfterLen; |
|
|
char* const newBuf = static_cast<char*>(malloc(newBufSize + 1)); |
|
|
char* const newBuf = static_cast<char*>(malloc(newBufSize + 1)); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(newBuf != nullptr, String()); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(newBuf != nullptr, String()); |
|
|
|
|
|
|
|
|
@@ -1178,9 +1173,9 @@ String operator+(const char* const strBufBefore, const String& strAfter) noexcep |
|
|
if (strBufBefore == nullptr || strBufBefore[0] == '\0') |
|
|
if (strBufBefore == nullptr || strBufBefore[0] == '\0') |
|
|
return strAfter; |
|
|
return strAfter; |
|
|
|
|
|
|
|
|
const std::size_t strBufBeforeLen = std::strlen(strBufBefore); |
|
|
|
|
|
const std::size_t strAfterLen = strAfter.length(); |
|
|
|
|
|
const std::size_t newBufSize = strBufBeforeLen + strAfterLen; |
|
|
|
|
|
|
|
|
const size_t strBufBeforeLen = std::strlen(strBufBefore); |
|
|
|
|
|
const size_t strAfterLen = strAfter.length(); |
|
|
|
|
|
const size_t newBufSize = strBufBeforeLen + strAfterLen; |
|
|
char* const newBuf = static_cast<char*>(malloc(newBufSize + 1)); |
|
|
char* const newBuf = static_cast<char*>(malloc(newBufSize + 1)); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(newBuf != nullptr, String()); |
|
|
DISTRHO_SAFE_ASSERT_RETURN(newBuf != nullptr, String()); |
|
|
|
|
|
|
|
|
|