diff options
| author | levlam <levlam@telegram.org> | 2020-09-20 22:51:03 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2020-09-20 22:51:03 +0300 |
| commit | 21969e4d0299e9c1e4831f0be8fe0984786a1ec9 (patch) | |
| tree | 40c2d1fcf61bde3156dc8f1a7512210eddfb003d /tdutils/td/utils/StringBuilder.cpp | |
| parent | 2afbf38c33a2dbe3570306a5c4f687f2ef3bb3e5 (diff) | |
Fix print_int.
GitOrigin-RevId: caff5ca11c300aef7658a029028d252253c4176c
Diffstat (limited to 'tdutils/td/utils/StringBuilder.cpp')
| -rw-r--r-- | tdutils/td/utils/StringBuilder.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/tdutils/td/utils/StringBuilder.cpp b/tdutils/td/utils/StringBuilder.cpp index c8a9a6d16..568d2d9ec 100644 --- a/tdutils/td/utils/StringBuilder.cpp +++ b/tdutils/td/utils/StringBuilder.cpp @@ -81,11 +81,10 @@ template <class T> static char *print_int(char *current_ptr, T x) { if (x < 0) { if (x == std::numeric_limits<T>::min()) { - std::stringstream ss; - ss << x; - auto len = narrow_cast<int>(static_cast<std::streamoff>(ss.tellp())); - ss.read(current_ptr, len); - return current_ptr + len; + current_ptr = print_int(current_ptr, x + 1); + CHECK(current_ptr[-1] != '9'); + current_ptr[-1]++; + return current_ptr; } *current_ptr++ = '-'; |
