mirror of
https://github.com/pybind/pybind11.git
synced 2025-02-25 23:25:22 +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 += '\n';
|
||||||
}
|
}
|
||||||
msg += "\nInvoked with: ";
|
msg += "\nInvoked with: ";
|
||||||
|
constexpr auto max_args_repr_size = 5000u;
|
||||||
|
const auto orig_msg_size = msg.size();
|
||||||
auto args_ = reinterpret_borrow<tuple>(args_in);
|
auto args_ = reinterpret_borrow<tuple>(args_in);
|
||||||
bool some_args = false;
|
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) {
|
if (!some_args) {
|
||||||
some_args = true;
|
some_args = true;
|
||||||
} else {
|
} else {
|
||||||
@ -1136,7 +1140,7 @@ protected:
|
|||||||
msg += "<repr raised Error>";
|
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);
|
auto kwargs = reinterpret_borrow<dict>(kwargs_in);
|
||||||
if (!kwargs.empty()) {
|
if (!kwargs.empty()) {
|
||||||
if (some_args) {
|
if (some_args) {
|
||||||
@ -1145,6 +1149,10 @@ protected:
|
|||||||
msg += "kwargs: ";
|
msg += "kwargs: ";
|
||||||
bool first = true;
|
bool first = true;
|
||||||
for (const auto &kwarg : kwargs) {
|
for (const auto &kwarg : kwargs) {
|
||||||
|
if (msg.size() - orig_msg_size > max_args_repr_size) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (first) {
|
if (first) {
|
||||||
first = false;
|
first = false;
|
||||||
} else {
|
} 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);
|
append_note_if_missing_header_is_suspected(msg);
|
||||||
// Attach additional error info to the exception if supported
|
// Attach additional error info to the exception if supported
|
||||||
if (PyErr_Occurred()) {
|
if (PyErr_Occurred()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user