This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push: new bd2c5c274e Change the constructor for LocalBufferWriter to be noexcept (#11059) bd2c5c274e is described below commit bd2c5c274e2d39b55494d3e693b5d8e5faeec352 Author: Bryan Call <bc...@apache.org> AuthorDate: Wed Feb 14 11:04:10 2024 -0800 Change the constructor for LocalBufferWriter to be noexcept (#11059) --- lib/swoc/include/swoc/BufferWriter.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/swoc/include/swoc/BufferWriter.h b/lib/swoc/include/swoc/BufferWriter.h index 154da3772b..32dfc99089 100644 --- a/lib/swoc/include/swoc/BufferWriter.h +++ b/lib/swoc/include/swoc/BufferWriter.h @@ -406,6 +406,9 @@ public: /// @endcond protected: + // Used for derived classes where we don't want to throw exceptions. + FixedBufferWriter(char *buffer, size_t capacity, bool noexcept_flag) noexcept; + char *const _buffer; ///< Output buffer. size_t _capacity; ///< Size of output buffer. size_t _attempted = 0; ///< Number of characters written, including those discarded due error condition. @@ -440,7 +443,7 @@ template <size_t N> class LocalBufferWriter : public FixedBufferWriter { public: /// Construct an empty writer. - LocalBufferWriter(); + LocalBufferWriter() noexcept; LocalBufferWriter(const LocalBufferWriter &that) = delete; @@ -498,6 +501,9 @@ inline FixedBufferWriter::FixedBufferWriter(char *buffer, size_t capacity) : _bu }; } +inline FixedBufferWriter::FixedBufferWriter(char *buffer, size_t capacity, bool /* noexcept_flag */) noexcept : _buffer(buffer), _capacity(capacity) { +} + inline FixedBufferWriter::FixedBufferWriter(MemSpan<void> const &span) : _buffer{static_cast<char *>(span.data())}, _capacity{span.size()} {} @@ -646,7 +652,7 @@ inline FixedBufferWriter::operator swoc::TextView() const { } // --- LocalBufferWriter --- -template <size_t N> LocalBufferWriter<N>::LocalBufferWriter() : super_type(_arr, N) {} +template <size_t N> LocalBufferWriter<N>::LocalBufferWriter() noexcept : super_type(_arr, N, true) {} }} // namespace swoc::SWOC_VERSION_NS