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.
This commit is contained in:
Tom Tromey 2013-05-30 17:39:34 +00:00
parent 77f9e71302
commit db26349c64
3 changed files with 16 additions and 7 deletions

View File

@ -1,3 +1,10 @@
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> 2013-05-30 Tom Tromey <tromey@redhat.com>
* infrun.c (adjust_pc_after_break): Introduce an outer null * infrun.c (adjust_pc_after_break): Introduce an outer null

View File

@ -245,9 +245,12 @@ collect_probes (char *objname, char *provider, char *probe_name,
cleanup = make_cleanup (VEC_cleanup (probe_p), &result); cleanup = make_cleanup (VEC_cleanup (probe_p), &result);
cleanup_temps = make_cleanup (null_cleanup, NULL); cleanup_temps = make_cleanup (null_cleanup, NULL);
compile_rx_or_error (&prov_pat, provider, _("Invalid provider regexp")); if (provider != NULL)
compile_rx_or_error (&probe_pat, probe_name, _("Invalid probe regexp")); compile_rx_or_error (&prov_pat, provider, _("Invalid provider regexp"));
compile_rx_or_error (&obj_pat, objname, _("Invalid object file 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) ALL_OBJFILES (objfile)
{ {

View File

@ -1127,16 +1127,15 @@ get_regcomp_error (int code, regex_t *rx)
} }
/* Compile a regexp and throw an exception on error. This returns a /* Compile a regexp and throw an exception on error. This returns a
cleanup to free the resulting pattern on success. If RX is NULL, cleanup to free the resulting pattern on success. RX must not be
this does nothing and returns NULL. */ NULL. */
struct cleanup * struct cleanup *
compile_rx_or_error (regex_t *pattern, const char *rx, const char *message) compile_rx_or_error (regex_t *pattern, const char *rx, const char *message)
{ {
int code; int code;
if (!rx) gdb_assert (rx != NULL);
return NULL;
code = regcomp (pattern, rx, REG_NOSUB); code = regcomp (pattern, rx, REG_NOSUB);
if (code != 0) if (code != 0)