summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2015-09-12 12:05:31 -0400
committerMatthias Clasen <mclasen@redhat.com>2015-09-12 12:05:31 -0400
commitb9a27679ec1555262c0c721ec1793d7acd7766d9 (patch)
tree50449b1cf6bb2b5d5e1929f04182378884b18f68
parent9acd0ddbf3c0f14e6ae7cb3f7faf4c24767f13b8 (diff)
downloadglib-b9a27679ec1555262c0c721ec1793d7acd7766d9.tar.gz
Revert "Cleanups after we dropped mem vtables"
This reverts commit 627854fee1fde93e01f27655b00a9082348ee15f. It has been argued that not aborting on malloc() failure is an incompatible change.
-rw-r--r--glib/gstrfuncs.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
index a251631f3..dde612668 100644
--- a/glib/gstrfuncs.c
+++ b/glib/gstrfuncs.c
@@ -354,10 +354,19 @@ get_C_locale (void)
gchar*
g_strdup (const gchar *str)
{
+ gchar *new_str;
+ gsize length;
+
if (str)
- return strdup (str);
+ {
+ length = strlen (str) + 1;
+ new_str = g_new (char, length);
+ memcpy (new_str, str, length);
+ }
else
- return NULL;
+ new_str = NULL;
+
+ return new_str;
}
/**
@@ -409,10 +418,18 @@ gchar*
g_strndup (const gchar *str,
gsize n)
{
+ gchar *new_str;
+
if (str)
- return strndup (str, n);
+ {
+ new_str = g_new (gchar, n + 1);
+ strncpy (new_str, str, n);
+ new_str[n] = '\0';
+ }
else
- return NULL;
+ new_str = NULL;
+
+ return new_str;
}
/**