Skip to content

Commit 9d876cd

Browse files
committed
[ntuple] Add check for default entry existence
1 parent 6d5a6cf commit 9d876cd

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

tree/ntuple/v7/src/RNTupleModel.cxx

+2-1
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,8 @@ void ROOT::Experimental::RNTupleModel::RegisterSubfield(std::string_view qualifi
362362
parent = parent->GetParent();
363363
}
364364

365-
AddSubfield(qualifiedFieldName, *fDefaultEntry);
365+
if (fDefaultEntry)
366+
AddSubfield(qualifiedFieldName, *fDefaultEntry);
366367
fRegisteredSubfields.emplace(qualifiedFieldName);
367368
}
368369

tree/ntuple/v7/test/ntuple_model.cxx

+13
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,19 @@ TEST(RNTupleModel, RegisterSubfield)
293293
}
294294
}
295295

296+
TEST(RNTupleModel, RegisterSubfieldBare)
297+
{
298+
auto model = RNTupleModel::CreateBare();
299+
model->MakeField<CustomStruct>("struct");
300+
model->RegisterSubfield("struct.a");
301+
model->Freeze();
302+
303+
EXPECT_THROW(model->GetDefaultEntry(), RException);
304+
305+
const auto entry = model->CreateEntry();
306+
EXPECT_TRUE(entry->GetPtr<float>("struct.a"));
307+
}
308+
296309
TEST(RNTupleModel, CloneRegisteredSubfield)
297310
{
298311
auto model = RNTupleModel::Create();

0 commit comments

Comments
 (0)