Browse Source

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.
users/ARM/efi-aarch64-support-binutils
Tom Tromey 5 years ago
parent
commit
785e5700ce
  1. 14
      gdb/exceptions.c
  2. 3
      gdb/exceptions.h
  3. 2
      gdb/exec.c
  4. 17
      gdbsupport/common-exceptions.h

14
gdb/exceptions.c

@ -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);
}

3
gdb/exceptions.h

@ -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

2
gdb/exec.c

@ -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 ());
} }
} }

17
gdbsupport/common-exceptions.h

@ -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;

Loading…
Cancel
Save