Cherry-pick libcxxrt commit 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92:
Author: David Chisnall <theraven@FreeBSD.org> Date: Wed Mar 22 12:27:08 2017 +0000 Simplify some code. realloc() with a null pointer is equivalent to malloc, so we don't need to handle the two cases independently. Fixes #46 This should help with lang/beignet and other programs, which expect __cxa_demangle(name, NULL, NULL, &status) to return zero in status. PR: 213732 MFC after: 3 days
This commit is contained in:
parent
7ce037341c
commit
2d23488dac
@ -86,15 +86,7 @@ extern "C" char* __cxa_demangle(const char* mangled_name,
|
|||||||
if (NULL != demangled)
|
if (NULL != demangled)
|
||||||
{
|
{
|
||||||
size_t len = strlen(demangled);
|
size_t len = strlen(demangled);
|
||||||
if (buf == NULL)
|
if (!buf || (*n < len+1))
|
||||||
{
|
|
||||||
if (n)
|
|
||||||
{
|
|
||||||
*n = len;
|
|
||||||
}
|
|
||||||
return demangled;
|
|
||||||
}
|
|
||||||
if (*n < len+1)
|
|
||||||
{
|
{
|
||||||
buf = static_cast<char*>(realloc(buf, len+1));
|
buf = static_cast<char*>(realloc(buf, len+1));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user