[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