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
 

Reply via email to