QTest::toString(QBitArray): fix Mismatched free() / delete / delete []
==8015== Mismatched free() / delete / delete [] ==8015== at 0x483958B: operator delete[](void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==8015== by 0x48752D6: QTestResult::compare(bool, char const*, char*, char*, char const*, char const*, char const*, int) (qtestresult.cpp:356) ==8015== Address 0x602eb30 is 0 bytes inside a block of size 12 alloc'd ==8015== at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==8015== by 0x44AAE2: char* QTest::toString<QBitArray>(QBitArray const&) (qtest.h:98) ==8015== by 0x44D212: bool QTest::qCompare<QBitArray>(QBitArray const&, QBitArray const&, char const*, char const*, char const*, int) (qtestcase.h:352) Change-Id: Ia2aa807ffa8a4c798425fffd15dabfebfd63fdbd Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
6ffedc07a7
commit
6bef90f3cf
|
|
@ -95,7 +95,7 @@ template<> inline char *toString(const QByteArray &ba)
|
|||
template<> inline char *toString(const QBitArray &ba)
|
||||
{
|
||||
qsizetype size = ba.size();
|
||||
char *str = static_cast<char *>(malloc(size + 1));
|
||||
char *str = new char[size + 1];
|
||||
for (qsizetype i = 0; i < size; ++i)
|
||||
str[i] = "01"[ba.testBit(i)];
|
||||
str[size] = '\0';
|
||||
|
|
|
|||
Loading…
Reference in New Issue