Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
b40d5de
[ntuple] fix argument comment
jblomer May 26, 2026
5a005fc
[io] fix casting through void
jblomer May 26, 2026
e522b41
[RVec] avoid unnecessary capacity check in internal set_size
jblomer May 27, 2026
4aa95b2
[ntuple] avoid throwing impossible exception
jblomer May 27, 2026
92fecb8
[ntuple] don't throw in RNTupleModel::~RUpdater()
jblomer May 27, 2026
d9a8794
[ntuple] safer use of RException
jblomer May 27, 2026
692139d
[core] make RException nothrow copy constructible
jblomer May 27, 2026
2d6ba60
[ntuple] fix throwing exception in RNTupleDescriptor
jblomer May 27, 2026
eaf4826
[ntuple] remove wrong forward declaration of RFieldVisitor
jblomer May 27, 2026
ee7229f
[core] fix definition of kMaxULong
jblomer May 27, 2026
429acbb
[ntuple] merger: minor improvement in optional assignment
jblomer May 27, 2026
d6f22ec
[meta] remove unused TClassEdit::GetUniquePtrType()
jblomer May 27, 2026
9f00eb1
[ntuple] minor readability improvement
jblomer May 27, 2026
07c1fcf
[ntuple] minor improvement in RPageSourceFile::CreateFromAnchor()
jblomer May 27, 2026
04d1aa8
[ntuple] remove unused variable in RFieldBase::Create()
jblomer May 27, 2026
a173e5c
[ntuple] fix use-after-move in RNTupleDescriptorBuilder::AddColumn()
jblomer May 27, 2026
99fc90f
[NFC][ntuple] suppress clang-tidy false positive
jblomer May 27, 2026
df5366b
[ntuple] fix widening method visibility change
jblomer May 27, 2026
f72e461
[ntuple] remove unusued usings
jblomer May 27, 2026
37d7e7b
[ntuple] move RAuxiliaryProcessorField to anonymous namespace
jblomer May 27, 2026
410ab38
[ntuple] move RKeyBlob to anonymous namespace
jblomer May 27, 2026
dc3fa75
[ntuple] private linkage of stream operator in the merger
jblomer May 27, 2026
ca5668d
[ntuple] replace std::endl by \n
jblomer May 27, 2026
997ec63
[ntuple] minor performance improvement in RPageSourceFile::LoadCluste…
jblomer May 27, 2026
5f79c9b
[core] pass RError::RLocation by const ref
jblomer May 27, 2026
1b4445d
[ntuple] use member move in RValue move ctor
jblomer May 27, 2026
eef418d
[ntuple] minor perf improvement in type name normalization
jblomer May 27, 2026
309c814
[ntuple] make moving RPage(Ref) noexcept
jblomer May 27, 2026
f5d30c1
[ntuple] avoid some unnecessary value copies
jblomer May 28, 2026
adf6bab
[core] remove unnecessary declaration in RResult
jblomer May 28, 2026
d9e5a9d
[ntuple] mark some move constructors noexcept
jblomer May 28, 2026
be44b27
[core] make moving TTaskGroup noexcept
jblomer May 28, 2026
d3cec4d
[RVec] improve noexcept specification
jblomer May 28, 2026
3b1983e
[ntuple] fix virtual destructor visibility
jblomer May 28, 2026
03594e6
[ntuple] fix up RNTupleDescriptorBuilder::SetNTuple() signature
jblomer May 28, 2026
3f8c93d
[ntuple] remove duplicate include
jblomer May 28, 2026
8b910fd
[core] minor improvement in TIterator
jblomer May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/base/inc/TBuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ template <class Tmpl> TBuffer &operator>>(TBuffer &buf, Tmpl *&obj)
// since the pointer could be zero (so typeid(*obj) is not usable).

auto cl = TClass::GetClass<Tmpl>();
obj = (Tmpl *) ( (void*) buf.ReadObjectAny(cl) );
obj = reinterpret_cast<Tmpl *>(buf.ReadObjectAny(cl));
return buf;
}

Expand Down
3 changes: 1 addition & 2 deletions core/cont/inc/TCollection.h
Original file line number Diff line number Diff line change
Expand Up @@ -267,8 +267,7 @@ class TIter {
}
TIter &operator=(TIterator *iter)
{
if (fIterator)
delete fIterator;
delete fIterator;
fIterator = iter;
return *this;
}
Expand Down
37 changes: 27 additions & 10 deletions core/foundation/inc/ROOT/RError.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ private:

public:
/// Used by R__FAIL
RError(std::string_view message, RLocation &&sourceLocation);
RError(std::string_view message, const RLocation &sourceLocation);
/// Used by R__FORWARD_RESULT
void AddFrame(RLocation &&sourceLocation);
void AddFrame(const RLocation &sourceLocation);
/// Add more information to the diagnostics
void AppendToMessage(std::string_view info) { fMessage += info; }
/// Format a dignostics report, e.g. for an exception message
Expand All @@ -76,11 +76,30 @@ public:
*/
// clang-format on
class RException : public std::runtime_error {
RError fError;
std::optional<RError> fError;

public:
explicit RException(const RError &error) : std::runtime_error(error.GetReport()), fError(error) {}
const RError &GetError() const { return fError; }
RException(const RException &other) noexcept : std::runtime_error(other)
{
try {
fError = other.fError;
} catch (...) {
// OOM? Leave fError unset.
(void)fError;
}
}

const RError &GetError() const
{
if (!fError) {
static const RError gOomError = RError("invalid fError in exception, possibly out of memory'",
{R__LOG_PRETTY_FUNCTION, __FILE__, __LINE__});

return gOomError;
}
return *fError;
}
};

// clang-format off
Expand Down Expand Up @@ -128,9 +147,9 @@ public:
static RError ForwardError(RResultBase &&result, RError::RLocation &&sourceLocation)
{
if (!result.fError) {
return RError("internal error: attempt to forward error of successful operation", std::move(sourceLocation));
return RError("internal error: attempt to forward error of successful operation", sourceLocation);
}
result.fError->AddFrame(std::move(sourceLocation));
result.fError->AddFrame(sourceLocation);
return *result.fError;
}
}; // class RResultBase
Expand Down Expand Up @@ -224,13 +243,11 @@ public:
RResult &operator=(const RResult &other) = delete;
RResult &operator=(RResult &&other) = default;

~RResult() = default;

/// Used by R__FORWARD_RESULT in order to keep track of the stack trace in case of errors
RResult &Forward(RError::RLocation &&sourceLocation)
{
if (fError)
fError->AddFrame(std::move(sourceLocation));
fError->AddFrame(sourceLocation);
return *this;
}

Expand Down Expand Up @@ -280,7 +297,7 @@ public:
RResult &Forward(RError::RLocation &&sourceLocation)
{
if (fError)
fError->AddFrame(std::move(sourceLocation));
fError->AddFrame(sourceLocation);
return *this;
}

Expand Down
4 changes: 2 additions & 2 deletions core/foundation/inc/RtypesCore.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ typedef int Seek_t; ///< File pointer (int).
typedef long Long_t; ///< Signed long integer 8 bytes (long). Size depends on architecture \deprecated Consider replacing with `long`
typedef unsigned long ULong_t; ///< Unsigned long integer 8 bytes (unsigned long). Size depends on architecture \deprecated Consider replacing with `unsigned long`
#else
typedef int Seek_t; ///< File pointer (int).
typedef int Seek_t; ///< File pointer (int).
typedef long Long_t; ///< Signed long integer 4 bytes (long). Size depends on architecture \deprecated Consider replacing with `long`
typedef unsigned long ULong_t; ///< Unsigned long integer 4 bytes (unsigned long). Size depends on architecture \deprecated Consider replacing with `unsigned long`
#endif
Expand Down Expand Up @@ -119,7 +119,7 @@ constexpr UInt_t kMaxUInt = UInt_t(~0); ///< \deprecated Consider replaci
constexpr Int_t kMaxInt = Int_t(kMaxUInt >> 1);///< \deprecated Consider replacing with `std::numeric_limits<int>::max()` (or `std::int32_t`)
constexpr Int_t kMinInt = -kMaxInt - 1; ///< \deprecated Consider replacing with `std::numeric_limits<int>::lowest()` (or `std::int32_t`)

constexpr ULong_t kMaxULong = ULong_t(~0); ///< \deprecated Consider replacing with `std::numeric_limits<unsigned long>::max()`
constexpr ULong_t kMaxULong = ULong_t(-1); ///< \deprecated Consider replacing with `std::numeric_limits<unsigned long>::max()`
constexpr Long_t kMaxLong = Long_t(kMaxULong >> 1);///< \deprecated Consider replacing with `std::numeric_limits<long>::max()`
constexpr Long_t kMinLong = -kMaxLong - 1; ///< \deprecated Consider replacing with `std::numeric_limits<long>::lowest()`

Expand Down
8 changes: 0 additions & 8 deletions core/foundation/inc/TClassEdit.h
Original file line number Diff line number Diff line change
Expand Up @@ -236,14 +236,6 @@ namespace TClassEdit {
{
return 0 == name.compare(0, 17, "std::__pair_base<") || 0 == name.compare(0, 12, "__pair_base<");
}
inline std::string GetUniquePtrType(std::string_view name)
{
// Find the first template parameter
std::vector<std::string> v;
int i;
GetSplit(name.data(), v, i);
return v[1];
}
std::string GetNameForIO(const std::string& templateInstanceName,
TClassEdit::EModType mode = TClassEdit::kNone,
bool* hasChanged = nullptr);
Expand Down
4 changes: 2 additions & 2 deletions core/foundation/src/RError.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ std::string ROOT::RError::GetReport() const
return report;
}

ROOT::RError::RError(std::string_view message, RLocation &&sourceLocation) : fMessage(message)
ROOT::RError::RError(std::string_view message, const RLocation &sourceLocation) : fMessage(message)

{
// Avoid frequent reallocations as we move up the call stack
fStackTrace.reserve(32);
AddFrame(std::move(sourceLocation));
}

void ROOT::RError::AddFrame(RLocation &&sourceLocation)
void ROOT::RError::AddFrame(const RLocation &sourceLocation)
{
fStackTrace.emplace_back(sourceLocation);
}
Expand Down
4 changes: 2 additions & 2 deletions core/imt/inc/ROOT/TTaskGroup.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ private:

public:
TTaskGroup();
TTaskGroup(TTaskGroup &&other);
TTaskGroup(TTaskGroup &&other) noexcept;
TTaskGroup(const TTaskGroup &) = delete;
TTaskGroup &operator=(TTaskGroup &&other);
TTaskGroup &operator=(TTaskGroup &&other) noexcept;
~TTaskGroup();

void Cancel();
Expand Down
4 changes: 2 additions & 2 deletions core/imt/src/TTaskGroup.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ TTaskGroup::TTaskGroup()
#endif
}

TTaskGroup::TTaskGroup(TTaskGroup &&other)
TTaskGroup::TTaskGroup(TTaskGroup &&other) noexcept
{
*this = std::move(other);
}

TTaskGroup &TTaskGroup::operator=(TTaskGroup &&other)
TTaskGroup &TTaskGroup::operator=(TTaskGroup &&other) noexcept
{
fTaskArenaW = other.fTaskArenaW;
fTaskContainer = other.fTaskContainer;
Expand Down
Loading
Loading