Skip to content

Commit cfc9d8d

Browse files
committed
[ntuple] Simplify RNTuple::Streamer()
This makes the writing and reading paths symmetric.
1 parent cf35e79 commit cfc9d8d

File tree

1 file changed

+3
-14
lines changed

1 file changed

+3
-14
lines changed

tree/ntuple/v7/src/RNTuple.cxx

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,12 @@
2727
void ROOT::RNTuple::Streamer(TBuffer &buf)
2828
{
2929
if (buf.IsReading()) {
30-
UInt_t offClassBuf;
31-
UInt_t bcnt;
32-
auto classVersion = buf.ReadVersion(&offClassBuf, &bcnt);
33-
34-
// Strip class version from checksum calculation
35-
UInt_t lenStrip = sizeof(Version_t);
36-
37-
if (bcnt < lenStrip)
38-
throw Experimental::RException(R__FAIL("invalid anchor byte count: " + std::to_string(bcnt)));
39-
40-
auto lenCkData = bcnt - lenStrip;
4130
// Skip byte count and class version
42-
auto offCkData = offClassBuf + sizeof(UInt_t) + sizeof(Version_t);
43-
auto expectedChecksum = XXH3_64bits(buf.Buffer() + offCkData, lenCkData);
31+
auto offCkData = buf.Length() + sizeof(UInt_t) + sizeof(Version_t);
32+
buf.ReadClassBuffer(RNTuple::Class(), this);
33+
std::uint64_t expectedChecksum = XXH3_64bits(buf.Buffer() + offCkData, buf.Length() - offCkData);
4434

4535
std::uint64_t onDiskChecksum;
46-
buf.ReadClassBuffer(RNTuple::Class(), this, classVersion, offClassBuf, bcnt);
4736
if (static_cast<std::size_t>(buf.BufferSize()) < buf.Length() + sizeof(onDiskChecksum))
4837
throw Experimental::RException(R__FAIL("the buffer containing RNTuple is too small to contain the checksum!"));
4938
buf >> onDiskChecksum;

0 commit comments

Comments
 (0)