summaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2018-10-07 20:26:33 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2018-10-07 20:26:33 (GMT)
commitcc4dae5c0f418d304a44bb10c87c624b478b6441 (patch)
tree86a6663bde592995eb54e203297a0f0863149660 /win
parent8985ee2114ddeb7e65148843f592f3270053e269 (diff)
downloadtcl-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.c14
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);
}