X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Futil.c;h=2e6f0aa1d64227ce4bc56fc425285bce032161be;hb=d97af3e024253910cd60350e0504ea64711fbb00;hp=1f21bbf1248da53022a44a26d3ff7d90c8316659;hpb=0325ee9e9afb02b08bdec3497e8cc54cb942989d;p=bluesky.git diff --git a/bluesky/util.c b/bluesky/util.c index 1f21bbf..2e6f0aa 100644 --- a/bluesky/util.c +++ b/bluesky/util.c @@ -51,6 +51,13 @@ BlueSkyRCStr *bluesky_string_new(gpointer data, gsize len) return string; } +/* Create a new BlueSkyRCStr from a GString. The GString is destroyed. */ +BlueSkyRCStr *bluesky_string_new_from_gstring(GString *s) +{ + gsize len = s->len; + return bluesky_string_new(g_string_free(s, FALSE), len); +} + void bluesky_string_ref(BlueSkyRCStr *string) { if (string == NULL) @@ -101,5 +108,8 @@ void bluesky_string_resize(BlueSkyRCStr *string, gsize len) if (string->len == len) return; + g_warn_if_fail(string->refcount == 1); + string->data = g_realloc(string->data, len); + string->len = len; }