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