Substitute malloc/free with new/delete

v0.27.3
Luis Diaz Mas 7 years ago committed by Luis Díaz Más
parent 08cbb0c206
commit eb306fdbae

@ -79,7 +79,7 @@ namespace Exiv2
@param str The url needs decoding. @param str The url needs decoding.
@return the url-decoded version of str. @return the url-decoded version of str.
@note Be sure to free() the returned string after use @note Be sure to 'free' the returned string after use with 'delete []'.
Source: http://www.geekhideout.com/urlcode.shtml Source: http://www.geekhideout.com/urlcode.shtml
@todo This function can probably be hidden into the implementation details @todo This function can probably be hidden into the implementation details
*/ */

@ -102,7 +102,7 @@ namespace Exiv2 {
char* urldecode(const char* str) { char* urldecode(const char* str) {
const char* pstr = str; const char* pstr = str;
char* buf = (char*)malloc(strlen(str) + 1); char* buf = new char [(strlen(str) + 1)];
char* pbuf = buf; char* pbuf = buf;
while (*pstr) { while (*pstr) {
if (*pstr == '%') { if (*pstr == '%') {
@ -124,7 +124,7 @@ namespace Exiv2 {
void urldecode(std::string& str) { void urldecode(std::string& str) {
char* decodeStr = Exiv2::urldecode(str.c_str()); char* decodeStr = Exiv2::urldecode(str.c_str());
str = std::string(decodeStr); str = std::string(decodeStr);
free(decodeStr); delete [] decodeStr;
} }
int base64encode(const void* data_buf, size_t dataLength, char* result, size_t resultSize) { int base64encode(const void* data_buf, size_t dataLength, char* result, size_t resultSize) {

@ -96,7 +96,7 @@ TEST(urldecode, decodesGivenUrl)
const std::string url ("http%3a%2f%2fwww.geekhideout.com%2furlcode.shtml"); const std::string url ("http%3a%2f%2fwww.geekhideout.com%2furlcode.shtml");
char * url3 = urldecode(url.c_str()); char * url3 = urldecode(url.c_str());
ASSERT_STREQ(expectedDecodedUrl.c_str(), url3); ASSERT_STREQ(expectedDecodedUrl.c_str(), url3);
free(url3); delete [] url3;
} }
TEST(urldecode, decodesGivenUrlInPlace) TEST(urldecode, decodesGivenUrlInPlace)

Loading…
Cancel
Save