Skip to content

Commit 63d72db

Browse files
committed
modules/zstd/frame_header_test: Fix absl::Span handling
Internal-tag: [#64294] Signed-off-by: Pawel Czarnecki <[email protected]>
1 parent 94ebb25 commit 63d72db

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

xls/modules/zstd/frame_header_test.cc

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,21 @@ enum FrameHeaderStatus : uint8_t {
5757
UNSUPPORTED_WINDOW_SIZE
5858
};
5959

60-
struct ZstdFrameHeader {
61-
absl::Span<const uint8_t> kBuffer;
60+
class ZstdFrameHeader {
61+
public:
6262
ZSTD_frameHeader kHeader;
6363
size_t kResult;
64+
65+
absl::Span<const uint8_t> buffer() const {
66+
return absl::MakeConstSpan(buffer_);
67+
}
68+
69+
ZstdFrameHeader(absl::Span<const uint8_t> buffer, ZSTD_frameHeader h,
70+
size_t r)
71+
: kHeader(std::move(h)), kResult(r) {
72+
std::vector<uint8_t> v(buffer.begin(), buffer.end());
73+
buffer_ = v;
74+
}
6475
// Parse a frame header from an arbitrary buffer with the ZSTD library.
6576
static absl::StatusOr<ZstdFrameHeader> Parse(
6677
absl::Span<const uint8_t> buffer) {
@@ -69,8 +80,11 @@ struct ZstdFrameHeader {
6980
ZSTD_frameHeader zstd_fh;
7081
size_t result = ZSTD_getFrameHeader_advanced(
7182
&zstd_fh, buffer.data(), buffer.size(), ZSTD_f_zstd1_magicless);
72-
return ZstdFrameHeader(buffer, zstd_fh, result);
83+
return ZstdFrameHeader(buffer, std::move(zstd_fh), result);
7384
}
85+
86+
private:
87+
std::vector<uint8_t> buffer_;
7488
};
7589

7690
class FrameHeaderTest : public xls::IrTestBase {
@@ -113,7 +127,7 @@ class FrameHeaderTest : public xls::IrTestBase {
113127
// expected values.
114128
void RunAndExpectFrameHeader(const ZstdFrameHeader& zstd_frame_header) {
115129
// Extend buffer contents to 128 bits if necessary.
116-
const absl::Span<const uint8_t>& buffer = zstd_frame_header.kBuffer;
130+
const absl::Span<const uint8_t> buffer = zstd_frame_header.buffer();
117131
std::vector<uint8_t> buffer_extended(kDslxBufferSizeBytes, 0);
118132
absl::Span<const uint8_t> input_buffer;
119133
if (buffer.size() < kDslxBufferSizeBytes) {

0 commit comments

Comments
 (0)