diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-07 20:26:33 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-07 20:26:33 (GMT) |
commit | cc4dae5c0f418d304a44bb10c87c624b478b6441 (patch) | |
tree | 86a6663bde592995eb54e203297a0f0863149660 /win | |
parent | 8985ee2114ddeb7e65148843f592f3270053e269 (diff) | |
download | tcl-cc4dae5c0f418d304a44bb10c87c624b478b6441.zip tcl-cc4dae5c0f418d304a44bb10c87c624b478b6441.tar.gz tcl-cc4dae5c0f418d304a44bb10c87c624b478b6441.tar.bz2 |
Streamline: Tcl_WinTCharToUtf/Tcl_WinUtfToTChar(): Always initialize DString, and let it return NULL when imput is NULL. That's what seem to assume the callers.
Diffstat (limited to 'win')
-rw-r--r-- | win/tclWin32Dll.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/win/tclWin32Dll.c b/win/tclWin32Dll.c index ca1c856..6fc2401 100644 --- a/win/tclWin32Dll.c +++ b/win/tclWin32Dll.c @@ -548,6 +548,9 @@ Tcl_WinUtfToTChar( * converted string is stored. */ { Tcl_DStringInit(dsPtr); + if (!string) { + return NULL; + } return Tcl_UtfToUniCharDString(string, len, dsPtr); } @@ -559,12 +562,15 @@ Tcl_WinTCharToUtf( Tcl_DString *dsPtr) /* Uninitialized or free DString in which the * converted string is stored. */ { - if (len > 0) { - len /= 2; - } else if (len < 0) { + Tcl_DStringInit(dsPtr); + if (!string) { + return NULL; + } + if (len < 0) { len = wcslen(string); + } else { + len /= 2; } - Tcl_DStringInit(dsPtr); return Tcl_UniCharToUtfDString(string, len, dsPtr); } |