Skip to content

Commit 663650c

Browse files
committed
Util (Windows): fix possible errors in Unicode.c
1 parent 45aecae commit 663650c

File tree

2 files changed

+8
-14
lines changed

2 files changed

+8
-14
lines changed

src/util/windows/unicode.c

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,12 @@ void ffStrbufSetNWS(FFstrbuf* result, uint32_t length, const wchar_t* source)
1111
}
1212

1313
int size_needed = WideCharToMultiByte(CP_UTF8, 0, source, (int)length, NULL, 0, NULL, NULL);
14-
ffStrbufEnsureFree(result, (uint32_t)size_needed);
15-
WideCharToMultiByte(CP_UTF8, 0, source, (int)length, result->chars, size_needed, NULL, NULL);
16-
result->length = (uint32_t)size_needed;
17-
result->chars[size_needed] = '\0';
18-
}
19-
20-
void ffStrbufInitNWS(FFstrbuf* result, uint32_t length, const wchar_t* source)
21-
{
22-
if(!length)
14+
if (size_needed < 0)
2315
{
24-
ffStrbufInit(result);
16+
ffStrbufSetF(result, "WCTMB failed: %u", (unsigned) GetLastError());
2517
return;
2618
}
27-
28-
int size_needed = WideCharToMultiByte(CP_UTF8, 0, source, (int)length, NULL, 0, NULL, NULL);
29-
ffStrbufInitA(result, (uint32_t)size_needed + 1);
19+
ffStrbufEnsureFixedLengthFree(result, (uint32_t)size_needed);
3020
WideCharToMultiByte(CP_UTF8, 0, source, (int)length, result->chars, size_needed, NULL, NULL);
3121
result->length = (uint32_t)size_needed;
3222
result->chars[size_needed] = '\0';

src/util/windows/unicode.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ static inline void ffStrbufSetWS(FFstrbuf* result, const wchar_t* source)
1111
return ffStrbufSetNWS(result, (uint32_t)wcslen(source), source);
1212
}
1313

14-
void ffStrbufInitNWS(FFstrbuf* result, uint32_t length, const wchar_t* source);
14+
static inline void ffStrbufInitNWS(FFstrbuf* result, uint32_t length, const wchar_t* source)
15+
{
16+
ffStrbufInit(result);
17+
return ffStrbufSetNWS(result, length, source);
18+
}
1519

1620
static inline void ffStrbufInitWS(FFstrbuf* result, const wchar_t* source)
1721
{

0 commit comments

Comments
 (0)