[glib] gquark: simplify g_intern_string/g_intern_static_string



commit d933cf99bfa7009ea8961905c1e1be8d9d754130
Author: Natanael Copa <ncopa alpinelinux org>
Date:   Wed Jul 6 17:05:16 2016 +0200

    gquark: simplify g_intern_string/g_intern_static_string
    
    Move the common code to a quark_intern_string_locked function. This has
    no effect on the generated code but makes codebase a bit cleaner.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=768507

 glib/gquark.c | 44 ++++++++++++++++++++------------------------
 1 file changed, 20 insertions(+), 24 deletions(-)
---
diff --git a/glib/gquark.c b/glib/gquark.c
index 295430401..c4d12b870 100644
--- a/glib/gquark.c
+++ b/glib/gquark.c
@@ -299,6 +299,24 @@ quark_new (gchar *string)
   return quark;
 }
 
+static inline const gchar *
+quark_intern_string_locked (const gchar   *string,
+                            gboolean       duplicate)
+{
+  const gchar *result;
+  GQuark quark;
+
+  if (!string)
+    return NULL;
+
+  G_LOCK (quark_global);
+  quark = quark_from_string (string, duplicate);
+  result = quarks[quark];
+  G_UNLOCK (quark_global);
+
+  return result;
+}
+
 /**
  * g_intern_string:
  * @string: (nullable): a string
@@ -314,18 +332,7 @@ quark_new (gchar *string)
 const gchar *
 g_intern_string (const gchar *string)
 {
-  const gchar *result;
-  GQuark quark;
-
-  if (!string)
-    return NULL;
-
-  G_LOCK (quark_global);
-  quark = quark_from_string (string, TRUE);
-  result = quarks[quark];
-  G_UNLOCK (quark_global);
-
-  return result;
+  return quark_intern_string_locked (string, TRUE);
 }
 
 /**
@@ -344,16 +351,5 @@ g_intern_string (const gchar *string)
 const gchar *
 g_intern_static_string (const gchar *string)
 {
-  GQuark quark;
-  const gchar *result;
-
-  if (!string)
-    return NULL;
-
-  G_LOCK (quark_global);
-  quark = quark_from_string (string, FALSE);
-  result = quarks[quark];
-  G_UNLOCK (quark_global);
-
-  return result;
+  return quark_intern_string_locked (string, FALSE);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]