From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30352 invoked by alias); 9 May 2013 18:53:06 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 30330 invoked by uid 89); 9 May 2013 18:53:06 -0000 X-Spam-SWARE-Status: No, score=-7.6 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS,TW_EG autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 09 May 2013 18:53:05 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r49Ir4Lk009051 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 9 May 2013 14:53:04 -0400 Received: from barimba (ovpn-113-133.phx2.redhat.com [10.3.113.133]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r49Ir22D029488 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Thu, 9 May 2013 14:53:03 -0400 From: Tom Tromey From: Tom Tromey To: gdb-patches@sourceware.org Subject: [PATCH 39/40] fix compile_rx_or_error In-Reply-To: References: Message-Id: Date: Thu, 09 May 2013 18:53:00 -0000 MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-05/txt/msg00353.txt.bz2 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. --- gdb/probe.c | 9 ++++++--- gdb/utils.c | 7 ++----- 2 files changed, 8 insertions(+), 8 deletions(-) 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..fa54e10 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1127,17 +1127,14 @@ 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; - code = regcomp (pattern, rx, REG_NOSUB); if (code != 0) { -- 1.8.1.4