diff options
author | dim <dim@FreeBSD.org> | 2017-03-25 12:29:15 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2017-03-25 12:29:15 +0000 |
commit | f41cd7e2a015bf78169ed297bd77746f72d04302 (patch) | |
tree | 55506859ca6f1c94e2ec4a77ffd0b3ddb76f1173 | |
parent | 6d1eb9b2aaec4ea996b5eeb16b7572206648a5f5 (diff) | |
download | FreeBSD-src-f41cd7e2a015bf78169ed297bd77746f72d04302.zip FreeBSD-src-f41cd7e2a015bf78169ed297bd77746f72d04302.tar.gz |
MFC r315745:
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
-rw-r--r-- | contrib/libcxxrt/typeinfo.cc | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/contrib/libcxxrt/typeinfo.cc b/contrib/libcxxrt/typeinfo.cc index 71de9ae..5c44ef1 100644 --- a/contrib/libcxxrt/typeinfo.cc +++ b/contrib/libcxxrt/typeinfo.cc @@ -86,15 +86,7 @@ extern "C" char* __cxa_demangle(const char* mangled_name, if (NULL != demangled) { size_t len = strlen(demangled); - if (buf == NULL) - { - if (n) - { - *n = len; - } - return demangled; - } - if (*n < len+1) + if (!buf || (*n < len+1)) { buf = static_cast<char*>(realloc(buf, len+1)); } |