# HG changeset patch
# Node ID c37e324b4710118f345c2baedd1a34a94edf2362
# Parent  4ebd6699fa287f3c5ad4c7b6dbbebba15bed5ac5
diff --git a/libpurple/prefs.c b/libpurple/prefs.c
--- a/libpurple/prefs.c
+++ b/libpurple/prefs.c
@@ -521,7 +521,7 @@ pref_full_name(struct purple_pref *pref)
 		name = g_string_prepend(name, parent->name);
 	}
 	name = g_string_prepend_c(name, '/');
-	return g_string_free(name, FALSE);
+	return g_string_free_and_steal(name);
 }
 
 static struct purple_pref *
diff --git a/libpurple/purplemarkup.c b/libpurple/purplemarkup.c
--- a/libpurple/purplemarkup.c
+++ b/libpurple/purplemarkup.c
@@ -625,9 +625,9 @@ purple_markup_html_to_xhtml(const char *
 	}
 	g_clear_list(&tags, g_free);
 	if(xhtml_out)
-		*xhtml_out = g_string_free(xhtml, FALSE);
+		*xhtml_out = g_string_free_and_steal(xhtml);
 	if(plain_out)
-		*plain_out = g_string_free(plain, FALSE);
+		*plain_out = g_string_free_and_steal(plain);
 	if(url)
 		g_string_free(url, TRUE);
 	if (cdata)
@@ -1024,7 +1024,7 @@ purple_markup_linkify(const char *text)
 				if (badchar(*t) || (g >= 127) || (*t == ')') || badentity(t)) {
 					char *d;
 
-					url_buf = g_string_free(gurl_buf, FALSE);
+					url_buf = g_string_free_and_steal(gurl_buf);
 					gurl_buf = NULL;
 
 					/* strip off trailing periods */
@@ -1069,7 +1069,7 @@ purple_markup_linkify(const char *text)
 		c++;
 
 	}
-	return g_string_free(ret, FALSE);
+	return g_string_free_and_steal(ret);
 }
 
 char *purple_unescape_text(const char *in)
@@ -1094,7 +1094,7 @@ char *purple_unescape_text(const char *i
         }
     }
 
-    return g_string_free(ret, FALSE);
+    return g_string_free_and_steal(ret);
 }
 
 char *purple_unescape_html(const char *html)
@@ -1122,7 +1122,7 @@ char *purple_unescape_html(const char *h
 		}
 	}
 
-	return g_string_free(ret, FALSE);
+	return g_string_free_and_steal(ret);
 }
 
 char *
@@ -1231,7 +1231,7 @@ purple_markup_slice(const char *str, gui
 	}
 
 	g_queue_free(q);
-	return g_string_free(ret, FALSE);
+	return g_string_free_and_steal(ret);
 }
 
 char *
diff --git a/libpurple/purpletags.c b/libpurple/purpletags.c
--- a/libpurple/purpletags.c
+++ b/libpurple/purpletags.c
@@ -372,7 +372,7 @@ purple_tags_to_string(PurpleTags *tags, 
 		}
 	}
 
-	return g_string_free(value, FALSE);
+	return g_string_free_and_steal(value);
 }
 
 void
diff --git a/libpurple/xmlnode.c b/libpurple/xmlnode.c
--- a/libpurple/xmlnode.c
+++ b/libpurple/xmlnode.c
@@ -468,7 +468,7 @@ purple_xmlnode_get_data(const PurpleXmlN
 		return NULL;
 	}
 
-	return g_string_free(str, FALSE);
+	return g_string_free_and_steal(str);
 }
 
 char *
@@ -600,7 +600,7 @@ purple_xmlnode_to_str_helper(const Purpl
 		*len = text->len;
 	}
 
-	return g_string_free(text, FALSE);
+	return g_string_free_and_steal(text);
 }
 
 char *
diff --git a/meson.build b/meson.build
--- a/meson.build
+++ b/meson.build
@@ -171,8 +171,6 @@ math = compiler.find_library('m', requir
 #######################################################################
 # Check for GLib (required)
 #######################################################################
-# Once we require >= 2.74.0, remove the hack in the if(TRUE) block in
-# libpurple/core.c.
 glib = dependency('glib-2.0', version : '>= 2.78.0')
 gio = dependency('gio-2.0')
 gnome = import('gnome')
diff --git a/pidgin/pidginabout.c b/pidgin/pidginabout.c
--- a/pidgin/pidginabout.c
+++ b/pidgin/pidginabout.c
@@ -423,7 +423,7 @@ pidgin_about_dialog_copy_gtk_settings(vo
 	g_free(sound_theme_name);
 	g_free(theme_name);
 
-	return g_string_free(info, FALSE);
+	return g_string_free_and_steal(info);
 }
 
 static void
@@ -459,7 +459,7 @@ pidgin_about_dialog_copy_plugin_search_p
 		paths = paths->next;
 	}
 
-	return g_string_free(info, FALSE);
+	return g_string_free_and_steal(info);
 }
 
 static void
@@ -535,7 +535,7 @@ pidgin_about_dialog_copy_build_args(cons
 		g_free(value);
 	}
 
-	return g_string_free(info, FALSE);
+	return g_string_free_and_steal(info);
 }
 
 static void
@@ -625,7 +625,7 @@ pidgin_about_dialog_copy_button_cb(GtkBu
 		g_free(info);
 #endif
 
-		info = g_string_free(everything, FALSE);
+		info = g_string_free_and_steal(everything);
 	}
 
 	clipboard = gtk_widget_get_clipboard(GTK_WIDGET(about));
diff --git a/pidgin/pidgincontactlist.c b/pidgin/pidgincontactlist.c
--- a/pidgin/pidgincontactlist.c
+++ b/pidgin/pidgincontactlist.c
@@ -278,7 +278,7 @@ pidgin_contact_list_get_primitive_as_str
 	const char *tmp = NULL;
 
 	if(!PURPLE_IS_PRESENCE(presence)) {
-		return g_string_free(str, FALSE);
+		return g_string_free_and_steal(str);
 	}
 
 	primitive = purple_presence_get_primitive(presence);
@@ -315,7 +315,7 @@ pidgin_contact_list_get_primitive_as_str
 		}
 	}
 
-	return g_string_free(str, FALSE);
+	return g_string_free_and_steal(str);
 }
 
 static void
