summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-09-26 16:30:25 +0200
committerThomas Haller <thaller@redhat.com>2022-10-06 13:43:33 +0200
commit0b6a9e2c887b89b578a530aaaafd8f440169a7a6 (patch)
tree2b6660d33d0497bcbf56d2ff9dca0a89242b363c
parenta1adfccf8a8914e2826b7418dc10ec53545b196b (diff)
glib-aux: add nm_ref_string_reset() helper
-rw-r--r--src/libnm-glib-aux/nm-ref-string.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libnm-glib-aux/nm-ref-string.h b/src/libnm-glib-aux/nm-ref-string.h
index eb3c38de21..0cfea5fae3 100644
--- a/src/libnm-glib-aux/nm-ref-string.h
+++ b/src/libnm-glib-aux/nm-ref-string.h
@@ -93,6 +93,23 @@ nm_ref_string_unref(NMRefString *rstr)
NM_AUTO_DEFINE_FCN_VOID(NMRefString *, _nm_auto_ref_string, nm_ref_string_unref);
#define nm_auto_ref_string nm_auto(_nm_auto_ref_string)
+static inline gboolean
+nm_ref_string_reset(NMRefString **ptr, NMRefString *str)
+{
+ NMRefString *rstr;
+
+ nm_assert(ptr);
+
+ rstr = *ptr;
+
+ if (rstr == str)
+ return FALSE;
+
+ *ptr = nm_ref_string_ref(str);
+ nm_ref_string_unref(rstr);
+ return TRUE;
+}
+
/*****************************************************************************/
static inline const char *