[PATCH vkd3d 4/5] vkd3d-common: Fix vkd3d_strdup_{w16, w32}_utf8() functions.
Józef Kucia
joseph.kucia at gmail.com
Fri Feb 1 02:42:51 CST 2019
From: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
libs/vkd3d-common/utf8.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/libs/vkd3d-common/utf8.c b/libs/vkd3d-common/utf8.c
index e48316daa2a3..8bf4eb05e4f7 100644
--- a/libs/vkd3d-common/utf8.c
+++ b/libs/vkd3d-common/utf8.c
@@ -107,8 +107,8 @@ static char *vkd3d_strdup_w16_utf8(const uint16_t *wstr)
{
const uint16_t *src = wstr;
size_t dst_size = 0;
+ char *dst, *utf8;
uint32_t c;
- char *dst;
while (*src)
{
@@ -121,14 +121,15 @@ static char *vkd3d_strdup_w16_utf8(const uint16_t *wstr)
if (!(dst = vkd3d_malloc(dst_size)))
return NULL;
+ utf8 = dst;
src = wstr;
while (*src)
{
if (!(c = vkd3d_utf16_read(&src)))
continue;
- vkd3d_utf8_append(&dst, c);
+ vkd3d_utf8_append(&utf8, c);
}
- *dst = 0;
+ *utf8 = 0;
return dst;
}
@@ -137,7 +138,7 @@ static char *vkd3d_strdup_w32_utf8(const uint32_t *wstr)
{
const uint32_t *src = wstr;
size_t dst_size = 0;
- char *dst;
+ char *dst, *utf8;
while (*src)
dst_size += vkd3d_utf8_len(*src++);
@@ -146,10 +147,11 @@ static char *vkd3d_strdup_w32_utf8(const uint32_t *wstr)
if (!(dst = vkd3d_malloc(dst_size)))
return NULL;
+ utf8 = dst;
src = wstr;
while (*src)
- vkd3d_utf8_append(&dst, *src++);
- *dst = 0;
+ vkd3d_utf8_append(&utf8, *src++);
+ *utf8 = 0;
return dst;
}
--
2.19.2
More information about the wine-devel
mailing list