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 /generic/tclStubInit.c | |
| 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 'generic/tclStubInit.c')
| -rw-r--r-- | generic/tclStubInit.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 50bb4a2..cbf4084 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -189,6 +189,9 @@ Tcl_WinUtfToTChar( Tcl_DString *dsPtr) { Tcl_DStringInit(dsPtr); + if (!string) { + return NULL; + } return (char *)Tcl_UtfToUniCharDString(string, len, dsPtr); } @@ -198,12 +201,15 @@ Tcl_WinTCharToUtf( int len, Tcl_DString *dsPtr) { - if (len > 0) { - len /= 2; - } else if (len == -1) { + Tcl_DStringInit(dsPtr); + if (!string) { + return NULL; + } + if (len < 0) { len = wcslen((wchar_t *)string); + } else { + len /= 2; } - Tcl_DStringInit(dsPtr); return Tcl_UniCharToUtfDString((Tcl_UniChar *)string, len, dsPtr); } |
