Replace exception_print_same with operator!=

I noticed that exception_print_same is only used in a single spot, and
it seemed to be better as an operator!= method attached to
gdb_exception.

Regression tested on x86-64 Fedora 34.
This commit is contained in:
Tom Tromey
2021-06-27 11:06:04 -06:00
parent fb6262e853
commit 785e5700ce
4 changed files with 18 additions and 18 deletions

View File

@ -133,17 +133,3 @@ exception_fprintf (struct ui_file *file, const struct gdb_exception &e,
print_exception (file, e); print_exception (file, e);
} }
} }
/* See exceptions.h. */
int
exception_print_same (const struct gdb_exception &e1,
const struct gdb_exception &e2)
{
const char *msg1 = e1.message == nullptr ? "" : e1.what ();
const char *msg2 = e2.message == nullptr ? "" : e2.what ();
return (e1.reason == e2.reason
&& e1.error == e2.error
&& strcmp (msg1, msg2) == 0);
}

View File

@ -31,7 +31,4 @@ extern void exception_fprintf (struct ui_file *file,
const char *prefix, const char *prefix,
...) ATTRIBUTE_PRINTF (3, 4); ...) ATTRIBUTE_PRINTF (3, 4);
/* Compare two exception objects for print equality. */
extern int exception_print_same (const struct gdb_exception &e1,
const struct gdb_exception &e2);
#endif #endif

View File

@ -201,7 +201,7 @@ try_open_exec_file (const char *exec_file_host, struct inferior *inf,
} }
catch (const gdb_exception_error &err) catch (const gdb_exception_error &err)
{ {
if (!exception_print_same (prev_err, err)) if (prev_err != err)
warning ("%s", err.what ()); warning ("%s", err.what ());
} }
} }

View File

@ -165,6 +165,23 @@ struct gdb_exception
return message->c_str (); return message->c_str ();
} }
/* Compare two exceptions. */
bool operator== (const gdb_exception &other) const
{
const char *msg1 = message == nullptr ? "" : what ();
const char *msg2 = other.message == nullptr ? "" : other.what ();
return (reason == other.reason
&& error == other.error
&& strcmp (msg1, msg2) == 0);
}
/* Compare two exceptions. */
bool operator!= (const gdb_exception &other) const
{
return !(*this == other);
}
enum return_reason reason; enum return_reason reason;
enum errors error; enum errors error;
std::shared_ptr<std::string> message; std::shared_ptr<std::string> message;