X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgiowin32-private.c;h=47e840805278c75ad56d2532e7115fcaabd4f168;hb=refs%2Ftags%2Fupstream%2F2.66.6;hp=7120ae0ead10fbd6d789b75eac417cef62bb3744;hpb=b47d6166aeba31fa97d89743cfcc730a09c39090;p=platform%2Fupstream%2Fglib.git diff --git a/gio/giowin32-private.c b/gio/giowin32-private.c index 7120ae0..47e8408 100644 --- a/gio/giowin32-private.c +++ b/gio/giowin32-private.c @@ -16,11 +16,12 @@ * along with this library; if not, see . */ +#include "gstrfuncsprivate.h" -static gssize +static gsize g_utf16_len (const gunichar2 *str) { - gssize result; + gsize result; for (result = 0; str[0] != 0; str++, result++) ; @@ -31,17 +32,20 @@ g_utf16_len (const gunichar2 *str) static gunichar2 * g_wcsdup (const gunichar2 *str, gssize str_len) { - gssize str_size; + gsize str_len_unsigned; + gsize str_size; g_return_val_if_fail (str != NULL, NULL); - if (str_len == -1) - str_len = g_utf16_len (str); + if (str_len < 0) + str_len_unsigned = g_utf16_len (str); + else + str_len_unsigned = (gsize) str_len; - g_assert (str_len <= G_MAXSIZE / sizeof (gunichar2) - 1); - str_size = (str_len + 1) * sizeof (gunichar2); + g_assert (str_len_unsigned <= G_MAXSIZE / sizeof (gunichar2) - 1); + str_size = (str_len_unsigned + 1) * sizeof (gunichar2); - return g_memdup (str, str_size); + return g_memdup2 (str, str_size); } static const gunichar2 *