[xbuild] Throw ArgumentNullException if target name is null
[mono.git] / eglib / src / gstring.c
index f5d899d2755e0258cee9957a7a5bdd37dac2b462..cc2975d4d86ed104e14e850349eb1819ec862fc4 100644 (file)
@@ -26,7 +26,6 @@
  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
-#define _GNU_SOURCE
 #include <stdio.h>
 #include <glib.h>
 
@@ -42,10 +41,14 @@ g_string_new_len (const gchar *init, gssize len)
 {
        GString *ret = g_new (GString, 1);
 
-       ret->len = len < 0 ? strlen(init) : len;
+       if (init == NULL)
+               ret->len = 0;
+       else
+               ret->len = len < 0 ? strlen(init) : len;
        ret->allocated_len = MAX(ret->len + 1, 16);
        ret->str = g_malloc(ret->allocated_len);
-       memcpy(ret->str, init, ret->len);
+       if (init)
+               memcpy(ret->str, init, ret->len);
        ret->str[ret->len] = 0;
 
        return ret;
@@ -160,7 +163,7 @@ g_string_append_printf (GString *string, const gchar *format, ...)
        va_end (args);
        g_string_append (string, ret);
 
-       free (ret);
+       g_free (ret);
 }
 
 void