Skip to content

Commit 08caeb2

Browse files
committed
[ntuple] make src argument of RColumnElement::Pack/Unpack const
1 parent 347b9e6 commit 08caeb2

File tree

2 files changed

+39
-30
lines changed

2 files changed

+39
-30
lines changed

tree/ntuple/v7/inc/ROOT/RColumnElement.hxx

+35-26
Original file line numberDiff line numberDiff line change
@@ -296,13 +296,13 @@ public:
296296
}
297297

298298
/// If the on-storage layout and the in-memory layout differ, packing creates an on-disk page from an in-memory page
299-
virtual void Pack(void *destination, void *source, std::size_t count) const
299+
virtual void Pack(void *destination, const void *source, std::size_t count) const
300300
{
301301
std::memcpy(destination, source, count);
302302
}
303303

304304
/// If the on-storage layout and the in-memory layout differ, unpacking creates a memory page from an on-storage page
305-
virtual void Unpack(void *destination, void *source, std::size_t count) const
305+
virtual void Unpack(void *destination, const void *source, std::size_t count) const
306306
{
307307
std::memcpy(destination, source, count);
308308
}
@@ -324,15 +324,15 @@ protected:
324324
public:
325325
static constexpr bool kIsMappable = (R__LITTLE_ENDIAN == 1);
326326

327-
void Pack(void *dst, void *src, std::size_t count) const final
327+
void Pack(void *dst, const void *src, std::size_t count) const final
328328
{
329329
#if R__LITTLE_ENDIAN == 1
330330
RColumnElementBase::Pack(dst, src, count);
331331
#else
332332
CopyBswap<sizeof(CppT)>(dst, src, count);
333333
#endif
334334
}
335-
void Unpack(void *dst, void *src, std::size_t count) const final
335+
void Unpack(void *dst, const void *src, std::size_t count) const final
336336
{
337337
#if R__LITTLE_ENDIAN == 1
338338
RColumnElementBase::Unpack(dst, src, count);
@@ -356,8 +356,11 @@ protected:
356356
public:
357357
static constexpr bool kIsMappable = false;
358358

359-
void Pack(void *dst, void *src, std::size_t count) const final { CastPack<NarrowT, CppT>(dst, src, count); }
360-
void Unpack(void *dst, void *src, std::size_t count) const final { CastUnpack<CppT, NarrowT>(dst, src, count); }
359+
void Pack(void *dst, const void *src, std::size_t count) const final { CastPack<NarrowT, CppT>(dst, src, count); }
360+
void Unpack(void *dst, const void *src, std::size_t count) const final
361+
{
362+
CastUnpack<CppT, NarrowT>(dst, src, count);
363+
}
361364
}; // class RColumnElementCastLE
362365

363366
/**
@@ -375,8 +378,14 @@ protected:
375378
public:
376379
static constexpr bool kIsMappable = false;
377380

378-
void Pack(void *dst, void *src, std::size_t count) const final { CastSplitPack<NarrowT, CppT>(dst, src, count); }
379-
void Unpack(void *dst, void *src, std::size_t count) const final { CastSplitUnpack<CppT, NarrowT>(dst, src, count); }
381+
void Pack(void *dst, const void *src, std::size_t count) const final
382+
{
383+
CastSplitPack<NarrowT, CppT>(dst, src, count);
384+
}
385+
void Unpack(void *dst, const void *src, std::size_t count) const final
386+
{
387+
CastSplitUnpack<CppT, NarrowT>(dst, src, count);
388+
}
380389
}; // class RColumnElementSplitLE
381390

382391
/**
@@ -395,11 +404,11 @@ protected:
395404
public:
396405
static constexpr bool kIsMappable = false;
397406

398-
void Pack(void *dst, void *src, std::size_t count) const final
407+
void Pack(void *dst, const void *src, std::size_t count) const final
399408
{
400409
CastDeltaSplitPack<NarrowT, CppT>(dst, src, count);
401410
}
402-
void Unpack(void *dst, void *src, std::size_t count) const final
411+
void Unpack(void *dst, const void *src, std::size_t count) const final
403412
{
404413
CastDeltaSplitUnpack<CppT, NarrowT>(dst, src, count);
405414
}
@@ -421,11 +430,11 @@ protected:
421430
public:
422431
static constexpr bool kIsMappable = false;
423432

424-
void Pack(void *dst, void *src, std::size_t count) const final
433+
void Pack(void *dst, const void *src, std::size_t count) const final
425434
{
426435
CastZigzagSplitPack<NarrowT, CppT>(dst, src, count);
427436
}
428-
void Unpack(void *dst, void *src, std::size_t count) const final
437+
void Unpack(void *dst, const void *src, std::size_t count) const final
429438
{
430439
CastZigzagSplitUnpack<CppT, NarrowT>(dst, src, count);
431440
}
@@ -574,9 +583,9 @@ public:
574583
RColumnElement() : RColumnElementBase(kSize, kBitsOnStorage) {}
575584
bool IsMappable() const final { return kIsMappable; }
576585

577-
void Pack(void *dst, void *src, std::size_t count) const final
586+
void Pack(void *dst, const void *src, std::size_t count) const final
578587
{
579-
auto srcArray = reinterpret_cast<ROOT::Experimental::RColumnSwitch *>(src);
588+
auto srcArray = reinterpret_cast<const ROOT::Experimental::RColumnSwitch *>(src);
580589
auto dstArray = reinterpret_cast<unsigned char *>(dst);
581590
for (std::size_t i = 0; i < count; ++i) {
582591
RSwitchElement element{srcArray[i].GetIndex(), srcArray[i].GetTag()};
@@ -588,9 +597,9 @@ public:
588597
}
589598
}
590599

591-
void Unpack(void *dst, void *src, std::size_t count) const final
600+
void Unpack(void *dst, const void *src, std::size_t count) const final
592601
{
593-
auto srcArray = reinterpret_cast<unsigned char *>(src);
602+
auto srcArray = reinterpret_cast<const unsigned char *>(src);
594603
auto dstArray = reinterpret_cast<ROOT::Experimental::RColumnSwitch *>(dst);
595604
for (std::size_t i = 0; i < count; ++i) {
596605
RSwitchElement element;
@@ -613,8 +622,8 @@ public:
613622
RColumnElement() : RColumnElementBase(kSize, kBitsOnStorage) {}
614623
bool IsMappable() const final { return kIsMappable; }
615624

616-
void Pack(void *dst, void *src, std::size_t count) const final;
617-
void Unpack(void *dst, void *src, std::size_t count) const final;
625+
void Pack(void *dst, const void *src, std::size_t count) const final;
626+
void Unpack(void *dst, const void *src, std::size_t count) const final;
618627
};
619628

620629
template <>
@@ -626,9 +635,9 @@ public:
626635
RColumnElement() : RColumnElementBase(kSize, kBitsOnStorage) {}
627636
bool IsMappable() const final { return kIsMappable; }
628637

629-
void Pack(void *dst, void *src, std::size_t count) const final
638+
void Pack(void *dst, const void *src, std::size_t count) const final
630639
{
631-
float *floatArray = reinterpret_cast<float *>(src);
640+
const float *floatArray = reinterpret_cast<const float *>(src);
632641
std::uint16_t *uint16Array = reinterpret_cast<std::uint16_t *>(dst);
633642

634643
for (std::size_t i = 0; i < count; ++i) {
@@ -637,10 +646,10 @@ public:
637646
}
638647
}
639648

640-
void Unpack(void *dst, void *src, std::size_t count) const final
649+
void Unpack(void *dst, const void *src, std::size_t count) const final
641650
{
642651
float *floatArray = reinterpret_cast<float *>(dst);
643-
std::uint16_t *uint16Array = reinterpret_cast<std::uint16_t *>(src);
652+
const std::uint16_t *uint16Array = reinterpret_cast<const std::uint16_t *>(src);
644653

645654
for (std::size_t i = 0; i < count; ++i) {
646655
std::uint16_t val = uint16Array[i];
@@ -659,9 +668,9 @@ public:
659668
RColumnElement() : RColumnElementBase(kSize, kBitsOnStorage) {}
660669
bool IsMappable() const final { return kIsMappable; }
661670

662-
void Pack(void *dst, void *src, std::size_t count) const final
671+
void Pack(void *dst, const void *src, std::size_t count) const final
663672
{
664-
double *doubleArray = reinterpret_cast<double *>(src);
673+
const double *doubleArray = reinterpret_cast<const double *>(src);
665674
std::uint16_t *uint16Array = reinterpret_cast<std::uint16_t *>(dst);
666675

667676
for (std::size_t i = 0; i < count; ++i) {
@@ -670,10 +679,10 @@ public:
670679
}
671680
}
672681

673-
void Unpack(void *dst, void *src, std::size_t count) const final
682+
void Unpack(void *dst, const void *src, std::size_t count) const final
674683
{
675684
double *doubleArray = reinterpret_cast<double *>(dst);
676-
std::uint16_t *uint16Array = reinterpret_cast<std::uint16_t *>(src);
685+
const std::uint16_t *uint16Array = reinterpret_cast<const std::uint16_t *>(src);
677686

678687
for (std::size_t i = 0; i < count; ++i) {
679688
std::uint16_t val = uint16Array[i];

tree/ntuple/v7/src/RColumnElement.cxx

+4-4
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ std::string ROOT::Experimental::Internal::RColumnElementBase::GetTypeName(EColum
135135
}
136136

137137
void ROOT::Experimental::Internal::RColumnElement<bool, ROOT::Experimental::EColumnType::kBit>::Pack(
138-
void *dst, void *src, std::size_t count) const
138+
void *dst, const void *src, std::size_t count) const
139139
{
140-
bool *boolArray = reinterpret_cast<bool *>(src);
140+
const bool *boolArray = reinterpret_cast<const bool *>(src);
141141
char *charArray = reinterpret_cast<char *>(dst);
142142
std::bitset<8> bitSet;
143143
std::size_t i = 0;
@@ -155,10 +155,10 @@ void ROOT::Experimental::Internal::RColumnElement<bool, ROOT::Experimental::ECol
155155
}
156156

157157
void ROOT::Experimental::Internal::RColumnElement<bool, ROOT::Experimental::EColumnType::kBit>::Unpack(
158-
void *dst, void *src, std::size_t count) const
158+
void *dst, const void *src, std::size_t count) const
159159
{
160160
bool *boolArray = reinterpret_cast<bool *>(dst);
161-
char *charArray = reinterpret_cast<char *>(src);
161+
const char *charArray = reinterpret_cast<const char *>(src);
162162
std::bitset<8> bitSet;
163163
for (std::size_t i = 0; i < count; i += 8) {
164164
bitSet = charArray[i / 8];

0 commit comments

Comments
 (0)