Skip to content

Commit

Permalink
Merge pull request #6730 from wmtan/FindIndirectDataMembers
Browse files Browse the repository at this point in the history
Find indirect data members
  • Loading branch information
davidlt committed Dec 2, 2014
2 parents 7d587d5 + cdea9de commit ad8d4b3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion FWCore/Utilities/src/MemberWithDict.cc
Expand Up @@ -7,7 +7,7 @@

namespace edm {

MemberWithDict::MemberWithDict() : dataMember_() {
MemberWithDict::MemberWithDict() : dataMember_(nullptr) {
}

MemberWithDict::MemberWithDict(TDataMember* dataMember) : dataMember_(dataMember) {
Expand Down
11 changes: 10 additions & 1 deletion FWCore/Utilities/src/TypeWithDict.cc
Expand Up @@ -16,6 +16,7 @@
#include "TEnumConstant.h"
#include "TInterpreter.h"
#include "TMethodArg.h"
#include "TRealData.h"
#include "TROOT.h"

#include "boost/thread/tss.hpp"
Expand Down Expand Up @@ -535,7 +536,15 @@ namespace edm {
MemberWithDict
TypeWithDict::dataMemberByName(std::string const& member) const {
if (class_ != nullptr) {
return MemberWithDict(class_->GetDataMember(member.c_str()));
TDataMember* dataMember = class_->GetDataMember(member.c_str());
if(dataMember == nullptr) {
// Look for indirect data members
TRealData* realDataMember = class_->GetRealData(member.c_str());
if(realDataMember != nullptr) {
dataMember = realDataMember->GetDataMember();
}
}
return MemberWithDict(dataMember);
}
if (enum_ != nullptr) {
TClass* cl = enum_->GetClass();
Expand Down

0 comments on commit ad8d4b3

Please sign in to comment.