From 32372413ecde48e8056179dcccaef9c5087e2e0e Mon Sep 17 00:00:00 2001 From: Danilo Piparo <danilo.piparo@cern.ch> Date: Wed, 26 Sep 2018 17:03:12 +0200 Subject: [PATCH] [Core] ROOT-9698 do not check for missing dictionary of unique_ptr<T> but rather for the missing dictionary of T given the way in which we treat unique_ptrs. --- core/meta/src/TClass.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx index e5c3d5cc22c..29715e99bcc 100644 --- a/core/meta/src/TClass.cxx +++ b/core/meta/src/TClass.cxx @@ -3854,6 +3854,15 @@ void TClass::GetMissingDictionariesWithRecursionCheck(TCollection& result, TColl return; } + if (TClassEdit::IsUniquePtr(fName)) { + const auto uniquePtrClName = TClassEdit::GetUniquePtrType(fName); + auto uniquePtrCl = TClass::GetClass(uniquePtrClName.c_str()); + if (uniquePtrCl && !uniquePtrCl->HasDictionary()) { + uniquePtrCl->GetMissingDictionariesWithRecursionCheck(result, visited, recurse); + } + return; + } + if (!HasDictionary()) { result.Add(this); } -- GitLab