[libcxx-commits] [libcxx] [libc++][format] Don't leave the output buffer full after a bulk write (PR #226791)
A. Jiang via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Sep 28 02:54:58 PDT 2026
================
@@ -250,6 +250,10 @@ class __output_buffer {
__first += __chunk;
__n -= __chunk;
} while (__n);
+
+ // push_back needs a free code unit, which the last chunk may have used.
----------------
frederick-vs-ja wrote:
Yeah. I just verified that in the problematic case, the loop in `__copy` consumed the whole buffer and left no space for following `push_back` call, as indicated in the PR description. So the fix looked correct to me.
Do you think that it's better to use `__available() - 1` (instead of current `__available()`) in the initializer of `__chunk`?
https://github.com/llvm/llvm-project/pull/226791
More information about the libcxx-commits
mailing list