Mark error conversion function noexcept

This prevents a std::bad_alloc exception from operator new[] from
potentially propagating into Rust, which would be UB.
This commit is contained in:
David Tolnay 2021-01-02 16:13:27 -08:00
parent 0194dc5947
commit dc2d4c3747
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82

View File

@ -351,7 +351,7 @@ static_assert(!std::is_same<Vec<std::uint8_t>::const_iterator,
"Vec<T>::const_iterator != Vec<T>::iterator");
extern "C" {
const char *cxxbridge1$error(const char *ptr, std::size_t len) {
const char *cxxbridge1$error(const char *ptr, std::size_t len) noexcept {
char *copy = new char[len];
std::strncpy(copy, ptr, len);
return copy;