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 <[email protected]>
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