mirror of
https://github.com/pybind/pybind11.git
synced 2024-12-01 01:17:10 +00:00
First attempt a limiting the error msg size.
This commit is contained in:
parent
8b48ff878c
commit
8e54167aa7
@ -1122,9 +1122,13 @@ protected:
|
||||
msg += '\n';
|
||||
}
|
||||
msg += "\nInvoked with: ";
|
||||
constexpr auto max_args_repr_size = 5000u;
|
||||
const auto orig_msg_size = msg.size();
|
||||
auto args_ = reinterpret_borrow<tuple>(args_in);
|
||||
bool some_args = false;
|
||||
for (size_t ti = overloads->is_constructor ? 1 : 0; ti < args_.size(); ++ti) {
|
||||
for (size_t ti = overloads->is_constructor ? 1 : 0;
|
||||
ti < args_.size() && msg.size() - orig_msg_size <= max_args_repr_size;
|
||||
++ti) {
|
||||
if (!some_args) {
|
||||
some_args = true;
|
||||
} else {
|
||||
@ -1136,7 +1140,7 @@ protected:
|
||||
msg += "<repr raised Error>";
|
||||
}
|
||||
}
|
||||
if (kwargs_in) {
|
||||
if (kwargs_in && msg.size() - orig_msg_size <= max_args_repr_size) {
|
||||
auto kwargs = reinterpret_borrow<dict>(kwargs_in);
|
||||
if (!kwargs.empty()) {
|
||||
if (some_args) {
|
||||
@ -1145,6 +1149,10 @@ protected:
|
||||
msg += "kwargs: ";
|
||||
bool first = true;
|
||||
for (const auto &kwarg : kwargs) {
|
||||
if (msg.size() - orig_msg_size > max_args_repr_size) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (first) {
|
||||
first = false;
|
||||
} else {
|
||||
@ -1160,6 +1168,10 @@ protected:
|
||||
}
|
||||
}
|
||||
|
||||
if (msg.size() - orig_msg_size > max_args_repr_size) {
|
||||
msg += "...";
|
||||
}
|
||||
|
||||
append_note_if_missing_header_is_suspected(msg);
|
||||
// Attach additional error info to the exception if supported
|
||||
if (PyErr_Occurred()) {
|
||||
|
Loading…
Reference in New Issue
Block a user