diff options
-rw-r--r-- | fallback.cpp | 7 | ||||
-rw-r--r-- | wutil.cpp | 8 |
2 files changed, 7 insertions, 8 deletions
diff --git a/fallback.cpp b/fallback.cpp index 69348db1..b52a6330 100644 --- a/fallback.cpp +++ b/fallback.cpp @@ -276,6 +276,7 @@ static int vgwprintf(void (*writer)(wchar_t), { wchar_t *ss=0; + wcstring wide_ss; if (is_long) { ss = va_arg(va, wchar_t *); @@ -286,7 +287,8 @@ static int vgwprintf(void (*writer)(wchar_t), if (ns) { - ss = str2wcs(ns); + wide_ss = str2wcstring(ns); + ss = wide_ss.c_str(); } } @@ -319,9 +321,6 @@ static int vgwprintf(void (*writer)(wchar_t), count += maxi(width-wcslen(ss), 0); } - if (!is_long) - free(ss); - break; } @@ -330,16 +330,16 @@ wchar_t *wrealpath(const wcstring &pathname, wchar_t *resolved_path) if (!narrow_res) return 0; - + + const wcstring wide_res = str2wcstring(narrow_res); if (resolved_path) { - wcstring tmp2 = str2wcstring(narrow_res); - wcslcpy(resolved_path, tmp2.c_str(), PATH_MAX); + wcslcpy(resolved_path, wide_res.c_str(), PATH_MAX); res = resolved_path; } else { - res = wcsdup(str2wcstring(narrow_res).c_str()); + res = wcsdup(wide_res.c_str()); } return res; } |