diff options
author | Tom Tromey <tromey@redhat.com> | 2013-05-30 17:39:34 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2013-05-30 17:39:34 +0000 |
commit | db26349c64fd5303eb52612305271e4eddae087e (patch) | |
tree | 25997c107fe75e5e2200a6b88e7e4dbbc33e8288 | |
parent | 77f9e713027d32cc5ca1fb8d05e7b1b3f5397ec7 (diff) | |
download | gdb-db26349c64fd5303eb52612305271e4eddae087e.zip gdb-db26349c64fd5303eb52612305271e4eddae087e.tar.gz gdb-db26349c64fd5303eb52612305271e4eddae087e.tar.bz2 |
fix compile_rx_or_error
compile_rx_or_error looks like a constructor, but it can return NULL.
This patch changes it to remove the NULL return, making it work
like any other cleanup constructor.
This is a stylistic patch but I think it is also better for code to
follow the normal conventions.
* probe.c (collect_probes): Check arguments for NULL before
calling compile_rx_or_error.
* utils.c (compile_rx_or_error): Require 'rx' to be non-NULL.
Remove NULL return.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/probe.c | 9 | ||||
-rw-r--r-- | gdb/utils.c | 7 |
3 files changed, 16 insertions, 7 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7adba77..142efca 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2013-05-30 Tom Tromey <tromey@redhat.com> + * probe.c (collect_probes): Check arguments for NULL before + calling compile_rx_or_error. + * utils.c (compile_rx_or_error): Require 'rx' to be non-NULL. + Remove NULL return. + +2013-05-30 Tom Tromey <tromey@redhat.com> + * infrun.c (adjust_pc_after_break): Introduce an outer null cleanup. diff --git a/gdb/probe.c b/gdb/probe.c index 05bdd1b..3086f4d 100644 --- a/gdb/probe.c +++ b/gdb/probe.c @@ -245,9 +245,12 @@ collect_probes (char *objname, char *provider, char *probe_name, cleanup = make_cleanup (VEC_cleanup (probe_p), &result); cleanup_temps = make_cleanup (null_cleanup, NULL); - compile_rx_or_error (&prov_pat, provider, _("Invalid provider regexp")); - compile_rx_or_error (&probe_pat, probe_name, _("Invalid probe regexp")); - compile_rx_or_error (&obj_pat, objname, _("Invalid object file regexp")); + if (provider != NULL) + compile_rx_or_error (&prov_pat, provider, _("Invalid provider regexp")); + if (probe_name != NULL) + compile_rx_or_error (&probe_pat, probe_name, _("Invalid probe regexp")); + if (objname != NULL) + compile_rx_or_error (&obj_pat, objname, _("Invalid object file regexp")); ALL_OBJFILES (objfile) { diff --git a/gdb/utils.c b/gdb/utils.c index c25dadf..18ee9bb 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1127,16 +1127,15 @@ get_regcomp_error (int code, regex_t *rx) } /* Compile a regexp and throw an exception on error. This returns a - cleanup to free the resulting pattern on success. If RX is NULL, - this does nothing and returns NULL. */ + cleanup to free the resulting pattern on success. RX must not be + NULL. */ struct cleanup * compile_rx_or_error (regex_t *pattern, const char *rx, const char *message) { int code; - if (!rx) - return NULL; + gdb_assert (rx != NULL); code = regcomp (pattern, rx, REG_NOSUB); if (code != 0) |