[libdazzle] pattern-spec: be nicer about invalid params
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libdazzle] pattern-spec: be nicer about invalid params
- Date: Mon, 3 Jul 2017 06:01:33 +0000 (UTC)
commit 1815d18fca7155318253c8ffc95589479b3f9adf
Author: Christian Hergert <chergert redhat com>
Date: Sun Jul 2 22:52:44 2017 -0700
pattern-spec: be nicer about invalid params
We can handle this stuff gracefully which makes it a bit easier
to use from callers that are in hot loops.
src/search/dzl-pattern-spec.c | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 deletions(-)
---
diff --git a/src/search/dzl-pattern-spec.c b/src/search/dzl-pattern-spec.c
index a29383f..9defe5c 100644
--- a/src/search/dzl-pattern-spec.c
+++ b/src/search/dzl-pattern-spec.c
@@ -53,9 +53,10 @@ dzl_pattern_spec_new (const gchar *needle)
DzlPatternSpec *self;
const gchar *tmp;
- g_return_val_if_fail (needle, NULL);
+ if (needle == NULL)
+ needle = "";
- self = g_new0 (DzlPatternSpec, 1);
+ self = g_slice_new0 (DzlPatternSpec);
self->ref_count = 1;
self->needle = g_strdup (needle);
self->parts = g_strsplit (needle, " ", 0);
@@ -84,9 +85,9 @@ dzl_pattern_spec_get_text (DzlPatternSpec *self)
static void
dzl_pattern_spec_free (DzlPatternSpec *self)
{
- g_strfreev (self->parts);
- g_free (self->needle);
- g_free (self);
+ g_clear_pointer (&self->parts, g_strfreev);
+ g_clear_pointer (&self->needle, g_free);
+ g_slice_free (DzlPatternSpec, self);
}
static inline gboolean
@@ -127,8 +128,8 @@ dzl_pattern_spec_match (DzlPatternSpec *self,
{
gsize i;
- g_return_val_if_fail (self, FALSE);
- g_return_val_if_fail (haystack, FALSE);
+ if (self == NULL || haystack == NULL)
+ return FALSE;
for (i = 0; (haystack != NULL) && self->parts [i]; i++)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]