summaryrefslogtreecommitdiffstats
path: root/generic/tclStubInit.c
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 /generic/tclStubInit.c
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 'generic/tclStubInit.c')
-rw-r--r--generic/tclStubInit.c14
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);
}