#include "TOutputListSelectorDataMap.h"
#include "TClass.h"
#include "TDataMember.h"
#include "TExMap.h"
#include "THashTable.h"
#include "TList.h"
#include "TMemberInspector.h"
#include "TProofDebug.h"
#include "TSelector.h"
#include "TSelectorCint.h"
#include <cstddef>
namespace {
static TClass* IsSettableDataMember(TDataMember* dm) {
if (!dm || !dm->IsaPointer() || dm->IsBasic()) return 0;
TString dtTypeName = dm->GetFullTypeName();
if (!dtTypeName.EndsWith("*")) return 0;
dtTypeName.Remove(dtTypeName.Length()-1);
return TClass::GetClass(dtTypeName);
}
class TSetSelDataMembers: public TMemberInspector {
public:
TSetSelDataMembers(const TOutputListSelectorDataMap& owner, TCollection* dmInfo, TList* output);
using TMemberInspector::Inspect;
void Inspect(TClass *cl, const char *parent, const char *name, const void *addr, Bool_t isTransient);
Ssiz_t GetNumSet() const { return fNumSet; }
private:
TCollection* fDMInfo;
TList* fOutputList;
Ssiz_t fNumSet;
const TOutputListSelectorDataMap& fOwner;
};
}
TSetSelDataMembers::TSetSelDataMembers(const TOutputListSelectorDataMap& owner,
TCollection* dmInfo, TList* output):
fDMInfo(dmInfo), fOutputList(output), fNumSet(0), fOwner(owner)
{}
void TSetSelDataMembers::Inspect(TClass *cl, const char* parent, const char *name, const void *addr, Bool_t )
{
while (name[0] == '*') ++name;
TObject* mapping = fDMInfo->FindObject(name);
if (!mapping) return;
PDB(kOutput,1) fOwner.Info("SetDataMembers()",
"data member `%s%s::%s' maps to output list object `%s'",
cl->GetName(), parent, name, mapping->GetTitle());
TObject* outputObj = fOutputList->FindObject(mapping->GetTitle());
if (!outputObj) {
PDB(kOutput,1) fOwner.Warning("SetDataMembers()",
"object `%s' not found in output list!",
mapping->GetTitle());
return;
}
TDataMember *dm = cl->GetDataMember(name);
TClass* cldt = IsSettableDataMember(dm);
if (!cldt) {
PDB(kOutput,1) fOwner.Warning("SetDataMembers()",
"unusable data member `%s' should have been detected by TCollectDataMembers!",
name);
return;
}
char *pointer = (char*)addr;
char **ppointer = (char**)(pointer);
if (*ppointer) {
fOwner.Warning("SetDataMembers()", "potential memory leak: replacing data member `%s' != 0. "
"Please initialize %s to 0 in constructor %s::%s()",
name, name, cl->GetName(), cl->GetName());
}
*ppointer = (char*)outputObj;
++fNumSet;
}
namespace {
class TCollectDataMembers: public TMemberInspector {
public:
TCollectDataMembers(const TOutputListSelectorDataMap& owner): fOwner(owner) { }
~TCollectDataMembers();
using TMemberInspector::Inspect;
void Inspect(TClass *cl, const char *parent, const char *name, const void *addr, Bool_t isTransient);
TExMap& GetMemberPointers() { return fMap; }
private:
TExMap fMap;
const TOutputListSelectorDataMap& fOwner;
};
}
void TCollectDataMembers::Inspect(TClass *cl, const char* , const char *name, const void *addr, Bool_t )
{
TDataMember *dm = cl->GetDataMember(name);
if (!IsSettableDataMember(dm)) return;
char *pointer = (char*)addr;
char **ppointer = (char**)(pointer);
char **p3pointer = (char**)(*ppointer);
if (p3pointer) {
TObject* prev = (TObject*) (ptrdiff_t)fMap.GetValue((Long64_t)(ptrdiff_t)p3pointer);
if (prev) {
if (prev->InheritsFrom(TDataMember::Class())) {
fMap.Remove((Long64_t)(ptrdiff_t)p3pointer);
TList* dmList = new TList;
dmList->Add(prev);
dmList->Add(dm);
fMap.Add((Long64_t)(ptrdiff_t)p3pointer, (Long64_t)(ptrdiff_t)dmList);
} else {
TList* prevList = (TList*) prev;
prevList->Add(dm);
}
} else {
fMap.Add((Long64_t)(ptrdiff_t)p3pointer, (Long64_t)(ptrdiff_t)dm);
}
if (name[0] == '*') ++name;
PDB(kOutput,1) fOwner.Info("Init()", "considering data member `%s'", name);
}
}
TCollectDataMembers::~TCollectDataMembers() {
TExMapIter iMembers(&fMap);
Long64_t key;
Long64_t value;
while (iMembers.Next(key, value)) {
TObject* obj = (TObject*) (ptrdiff_t) value;
if (obj->InheritsFrom(TList::Class())) {
delete obj;
}
}
}
ClassImp(TOutputListSelectorDataMap);
TOutputListSelectorDataMap::TOutputListSelectorDataMap(TSelector* sel ):
fMap(0)
{
if (sel) Init(sel);
}
const char* TOutputListSelectorDataMap::GetName() const
{
return "PROOF_TOutputListSelectorDataMap_object";
}
Bool_t TOutputListSelectorDataMap::Init(TSelector* sel)
{
if (!sel) {
PDB(kOutput,1) Warning("Init","Leave (no selector!)");
return kFALSE;
}
TCollection* outList = sel->GetOutputList();
if (!outList) {
PDB(kOutput,1) Info("Init()","Leave (no output)");
return kFALSE;
}
if (outList->FindObject(GetName())) {
PDB(kOutput,1) Warning("Init","Mapping already exists!");
return kFALSE;
}
if (fMap) delete fMap;
fMap = new THashTable;
fMap->SetOwner();
TCollectDataMembers cdm(*this);
TClass* cl = sel->IsA();
if (cl && cl->InheritsFrom(TSelectorCint::Class())) {
TSelectorCint* selCINT = dynamic_cast<TSelectorCint*>(sel);
if (selCINT) {
cl = selCINT->GetInterpretedClass();
sel = selCINT->GetInterpretedSelector();
} else {
cl = 0;
Error("Init", "failed to get TSelectorCint interpreted class!");
}
}
if (!cl || (cl && !cl->CallShowMembers(sel, cdm))) {
PDB(kOutput,1) Warning("Init","Failed to determine mapping!");
return kFALSE;
}
PDB(kOutput,1) Info("Init()","Found %d data members.",
cdm.GetMemberPointers().GetSize());
TIter iOutput(outList);
TObject* output;
TList oneDM;
while ((output = iOutput())) {
TObject* obj = (TObject*) (ptrdiff_t)cdm.GetMemberPointers().GetValue((Long64_t)(ptrdiff_t)output);
if (!obj) continue;
TList* addAllDM = 0;
if (obj->InheritsFrom(TDataMember::Class())) {
oneDM.Add(obj);
addAllDM = &oneDM;
} else {
addAllDM = (TList*) obj;
}
TIter iDM(addAllDM);
TDataMember* dm = 0;
while ((dm = (TDataMember*) iDM())) {
fMap->Add(new TNamed(dm->GetName(), output->GetName()));
PDB(kOutput,1) Info("Init()","Data member `%s' corresponds to output `%s'",
dm->GetName(), output->GetName());
}
oneDM.Clear();
}
return kTRUE;
}
Bool_t TOutputListSelectorDataMap::SetDataMembers(TSelector* sel) const
{
TList* output = sel->GetOutputList();
if (!output || output->IsEmpty()) return kTRUE;
Bool_t res = kFALSE;
TSetSelDataMembers ssdm(*this, fMap, output);
TClass* cl = sel->IsA();
if (cl) {
if (cl->InheritsFrom(TSelectorCint::Class())) {
TSelectorCint* selCINT = dynamic_cast<TSelectorCint*>(sel);
if (selCINT) {
cl = selCINT->GetInterpretedClass();
sel = selCINT->GetInterpretedSelector();
} else {
cl = 0;
Error("Init", "failed to get TSelectorCint interpreted class!");
return kFALSE;
}
}
res = cl->CallShowMembers(sel, ssdm);
PDB(kOutput,1) Info("SetDataMembers()","%s, set %d data members.",
(res ? "success" : "failure"), ssdm.GetNumSet());
} else {
PDB(kOutput,1) Warning("SetDataMembers","Failed to determine selector TClass!");
}
return res;
}
Bool_t TOutputListSelectorDataMap::Merge(TObject* obj)
{
TOutputListSelectorDataMap* other = dynamic_cast<TOutputListSelectorDataMap*>(obj);
if (!other) return kFALSE;
TIter iMapping(other->GetMap());
TNamed* mapping = 0;
while ((mapping = (TNamed*)iMapping())) {
TObject* oldMap = fMap->FindObject(mapping->GetName());
if (!oldMap) {
fMap->Add(new TNamed(*mapping));
} else {
if (strcmp(oldMap->GetTitle(), mapping->GetTitle())) {
PDB(kOutput,1)
Warning("Merge()",
"contradicting mapping for data member `%s' (output list entry `%s' vs. `%s'). "
"Cancelling automatic TSelector data member setting!",
mapping->GetName(), oldMap->GetTitle(), mapping->GetTitle());
fMap->Clear();
return kFALSE;
}
}
}
return kTRUE;
}
TOutputListSelectorDataMap* TOutputListSelectorDataMap::FindInList(TCollection* coll)
{
TIter iOutput(coll);
TObject* out = 0;
TOutputListSelectorDataMap* olsdm = 0;
while ((out = iOutput())) {
if (out->InheritsFrom(TOutputListSelectorDataMap::Class())) {
olsdm = dynamic_cast<TOutputListSelectorDataMap*>(out);
if (olsdm) break;
}
}
return olsdm;
}
TOutputListSelectorDataMap.cxx:1 TOutputListSelectorDataMap.cxx:2 TOutputListSelectorDataMap.cxx:3 TOutputListSelectorDataMap.cxx:4 TOutputListSelectorDataMap.cxx:5 TOutputListSelectorDataMap.cxx:6 TOutputListSelectorDataMap.cxx:7 TOutputListSelectorDataMap.cxx:8 TOutputListSelectorDataMap.cxx:9 TOutputListSelectorDataMap.cxx:10 TOutputListSelectorDataMap.cxx:11 TOutputListSelectorDataMap.cxx:12 TOutputListSelectorDataMap.cxx:13 TOutputListSelectorDataMap.cxx:14 TOutputListSelectorDataMap.cxx:15 TOutputListSelectorDataMap.cxx:16 TOutputListSelectorDataMap.cxx:17 TOutputListSelectorDataMap.cxx:18 TOutputListSelectorDataMap.cxx:19 TOutputListSelectorDataMap.cxx:20 TOutputListSelectorDataMap.cxx:21 TOutputListSelectorDataMap.cxx:22 TOutputListSelectorDataMap.cxx:23 TOutputListSelectorDataMap.cxx:24 TOutputListSelectorDataMap.cxx:25 TOutputListSelectorDataMap.cxx:26 TOutputListSelectorDataMap.cxx:27 TOutputListSelectorDataMap.cxx:28 TOutputListSelectorDataMap.cxx:29 TOutputListSelectorDataMap.cxx:30 TOutputListSelectorDataMap.cxx:31 TOutputListSelectorDataMap.cxx:32 TOutputListSelectorDataMap.cxx:33 TOutputListSelectorDataMap.cxx:34 TOutputListSelectorDataMap.cxx:35 TOutputListSelectorDataMap.cxx:36 TOutputListSelectorDataMap.cxx:37 TOutputListSelectorDataMap.cxx:38 TOutputListSelectorDataMap.cxx:39 TOutputListSelectorDataMap.cxx:40 TOutputListSelectorDataMap.cxx:41 TOutputListSelectorDataMap.cxx:42 TOutputListSelectorDataMap.cxx:43 TOutputListSelectorDataMap.cxx:44 TOutputListSelectorDataMap.cxx:45 TOutputListSelectorDataMap.cxx:46 TOutputListSelectorDataMap.cxx:47 TOutputListSelectorDataMap.cxx:48 TOutputListSelectorDataMap.cxx:49 TOutputListSelectorDataMap.cxx:50 TOutputListSelectorDataMap.cxx:51 TOutputListSelectorDataMap.cxx:52 TOutputListSelectorDataMap.cxx:53 TOutputListSelectorDataMap.cxx:54 TOutputListSelectorDataMap.cxx:55 TOutputListSelectorDataMap.cxx:56 TOutputListSelectorDataMap.cxx:57 TOutputListSelectorDataMap.cxx:58 TOutputListSelectorDataMap.cxx:59 TOutputListSelectorDataMap.cxx:60 TOutputListSelectorDataMap.cxx:61 TOutputListSelectorDataMap.cxx:62 TOutputListSelectorDataMap.cxx:63 TOutputListSelectorDataMap.cxx:64 TOutputListSelectorDataMap.cxx:65 TOutputListSelectorDataMap.cxx:66 TOutputListSelectorDataMap.cxx:67 TOutputListSelectorDataMap.cxx:68 TOutputListSelectorDataMap.cxx:69 TOutputListSelectorDataMap.cxx:70 TOutputListSelectorDataMap.cxx:71 TOutputListSelectorDataMap.cxx:72 TOutputListSelectorDataMap.cxx:73 TOutputListSelectorDataMap.cxx:74 TOutputListSelectorDataMap.cxx:75 TOutputListSelectorDataMap.cxx:76 TOutputListSelectorDataMap.cxx:77 TOutputListSelectorDataMap.cxx:78 TOutputListSelectorDataMap.cxx:79 TOutputListSelectorDataMap.cxx:80 TOutputListSelectorDataMap.cxx:81 TOutputListSelectorDataMap.cxx:82 TOutputListSelectorDataMap.cxx:83 TOutputListSelectorDataMap.cxx:84 TOutputListSelectorDataMap.cxx:85 TOutputListSelectorDataMap.cxx:86 TOutputListSelectorDataMap.cxx:87 TOutputListSelectorDataMap.cxx:88 TOutputListSelectorDataMap.cxx:89 TOutputListSelectorDataMap.cxx:90 TOutputListSelectorDataMap.cxx:91 TOutputListSelectorDataMap.cxx:92 TOutputListSelectorDataMap.cxx:93 TOutputListSelectorDataMap.cxx:94 TOutputListSelectorDataMap.cxx:95 TOutputListSelectorDataMap.cxx:96 TOutputListSelectorDataMap.cxx:97 TOutputListSelectorDataMap.cxx:98 TOutputListSelectorDataMap.cxx:99 TOutputListSelectorDataMap.cxx:100 TOutputListSelectorDataMap.cxx:101 TOutputListSelectorDataMap.cxx:102 TOutputListSelectorDataMap.cxx:103 TOutputListSelectorDataMap.cxx:104 TOutputListSelectorDataMap.cxx:105 TOutputListSelectorDataMap.cxx:106 TOutputListSelectorDataMap.cxx:107 TOutputListSelectorDataMap.cxx:108 TOutputListSelectorDataMap.cxx:109 TOutputListSelectorDataMap.cxx:110 TOutputListSelectorDataMap.cxx:111 TOutputListSelectorDataMap.cxx:112 TOutputListSelectorDataMap.cxx:113 TOutputListSelectorDataMap.cxx:114 TOutputListSelectorDataMap.cxx:115 TOutputListSelectorDataMap.cxx:116 TOutputListSelectorDataMap.cxx:117 TOutputListSelectorDataMap.cxx:118 TOutputListSelectorDataMap.cxx:119 TOutputListSelectorDataMap.cxx:120 TOutputListSelectorDataMap.cxx:121 TOutputListSelectorDataMap.cxx:122 TOutputListSelectorDataMap.cxx:123 TOutputListSelectorDataMap.cxx:124 TOutputListSelectorDataMap.cxx:125 TOutputListSelectorDataMap.cxx:126 TOutputListSelectorDataMap.cxx:127 TOutputListSelectorDataMap.cxx:128 TOutputListSelectorDataMap.cxx:129 TOutputListSelectorDataMap.cxx:130 TOutputListSelectorDataMap.cxx:131 TOutputListSelectorDataMap.cxx:132 TOutputListSelectorDataMap.cxx:133 TOutputListSelectorDataMap.cxx:134 TOutputListSelectorDataMap.cxx:135 TOutputListSelectorDataMap.cxx:136 TOutputListSelectorDataMap.cxx:137 TOutputListSelectorDataMap.cxx:138 TOutputListSelectorDataMap.cxx:139 TOutputListSelectorDataMap.cxx:140 TOutputListSelectorDataMap.cxx:141 TOutputListSelectorDataMap.cxx:142 TOutputListSelectorDataMap.cxx:143 TOutputListSelectorDataMap.cxx:144 TOutputListSelectorDataMap.cxx:145 TOutputListSelectorDataMap.cxx:146 TOutputListSelectorDataMap.cxx:147 TOutputListSelectorDataMap.cxx:148 TOutputListSelectorDataMap.cxx:149 TOutputListSelectorDataMap.cxx:150 TOutputListSelectorDataMap.cxx:151 TOutputListSelectorDataMap.cxx:152 TOutputListSelectorDataMap.cxx:153 TOutputListSelectorDataMap.cxx:154 TOutputListSelectorDataMap.cxx:155 TOutputListSelectorDataMap.cxx:156 TOutputListSelectorDataMap.cxx:157 TOutputListSelectorDataMap.cxx:158 TOutputListSelectorDataMap.cxx:159 TOutputListSelectorDataMap.cxx:160 TOutputListSelectorDataMap.cxx:161 TOutputListSelectorDataMap.cxx:162 TOutputListSelectorDataMap.cxx:163 TOutputListSelectorDataMap.cxx:164 TOutputListSelectorDataMap.cxx:165 TOutputListSelectorDataMap.cxx:166 TOutputListSelectorDataMap.cxx:167 TOutputListSelectorDataMap.cxx:168 TOutputListSelectorDataMap.cxx:169 TOutputListSelectorDataMap.cxx:170 TOutputListSelectorDataMap.cxx:171 TOutputListSelectorDataMap.cxx:172 TOutputListSelectorDataMap.cxx:173 TOutputListSelectorDataMap.cxx:174 TOutputListSelectorDataMap.cxx:175 TOutputListSelectorDataMap.cxx:176 TOutputListSelectorDataMap.cxx:177 TOutputListSelectorDataMap.cxx:178 TOutputListSelectorDataMap.cxx:179 TOutputListSelectorDataMap.cxx:180 TOutputListSelectorDataMap.cxx:181 TOutputListSelectorDataMap.cxx:182 TOutputListSelectorDataMap.cxx:183 TOutputListSelectorDataMap.cxx:184 TOutputListSelectorDataMap.cxx:185 TOutputListSelectorDataMap.cxx:186 TOutputListSelectorDataMap.cxx:187 TOutputListSelectorDataMap.cxx:188 TOutputListSelectorDataMap.cxx:189 TOutputListSelectorDataMap.cxx:190 TOutputListSelectorDataMap.cxx:191 TOutputListSelectorDataMap.cxx:192 TOutputListSelectorDataMap.cxx:193 TOutputListSelectorDataMap.cxx:194 TOutputListSelectorDataMap.cxx:195 TOutputListSelectorDataMap.cxx:196 TOutputListSelectorDataMap.cxx:197 TOutputListSelectorDataMap.cxx:198 TOutputListSelectorDataMap.cxx:199 TOutputListSelectorDataMap.cxx:200 TOutputListSelectorDataMap.cxx:201 TOutputListSelectorDataMap.cxx:202 TOutputListSelectorDataMap.cxx:203 TOutputListSelectorDataMap.cxx:204 TOutputListSelectorDataMap.cxx:205 TOutputListSelectorDataMap.cxx:206 TOutputListSelectorDataMap.cxx:207 TOutputListSelectorDataMap.cxx:208 TOutputListSelectorDataMap.cxx:209 TOutputListSelectorDataMap.cxx:210 TOutputListSelectorDataMap.cxx:211 TOutputListSelectorDataMap.cxx:212 TOutputListSelectorDataMap.cxx:213 TOutputListSelectorDataMap.cxx:214 TOutputListSelectorDataMap.cxx:215 TOutputListSelectorDataMap.cxx:216 TOutputListSelectorDataMap.cxx:217 TOutputListSelectorDataMap.cxx:218 TOutputListSelectorDataMap.cxx:219 TOutputListSelectorDataMap.cxx:220 TOutputListSelectorDataMap.cxx:221 TOutputListSelectorDataMap.cxx:222 TOutputListSelectorDataMap.cxx:223 TOutputListSelectorDataMap.cxx:224 TOutputListSelectorDataMap.cxx:225 TOutputListSelectorDataMap.cxx:226 TOutputListSelectorDataMap.cxx:227 TOutputListSelectorDataMap.cxx:228 TOutputListSelectorDataMap.cxx:229 TOutputListSelectorDataMap.cxx:230 TOutputListSelectorDataMap.cxx:231 TOutputListSelectorDataMap.cxx:232 TOutputListSelectorDataMap.cxx:233 TOutputListSelectorDataMap.cxx:234 TOutputListSelectorDataMap.cxx:235 TOutputListSelectorDataMap.cxx:236 TOutputListSelectorDataMap.cxx:237 TOutputListSelectorDataMap.cxx:238 TOutputListSelectorDataMap.cxx:239 TOutputListSelectorDataMap.cxx:240 TOutputListSelectorDataMap.cxx:241 TOutputListSelectorDataMap.cxx:242 TOutputListSelectorDataMap.cxx:243 TOutputListSelectorDataMap.cxx:244 TOutputListSelectorDataMap.cxx:245 TOutputListSelectorDataMap.cxx:246 TOutputListSelectorDataMap.cxx:247 TOutputListSelectorDataMap.cxx:248 TOutputListSelectorDataMap.cxx:249 TOutputListSelectorDataMap.cxx:250 TOutputListSelectorDataMap.cxx:251 TOutputListSelectorDataMap.cxx:252 TOutputListSelectorDataMap.cxx:253 TOutputListSelectorDataMap.cxx:254 TOutputListSelectorDataMap.cxx:255 TOutputListSelectorDataMap.cxx:256 TOutputListSelectorDataMap.cxx:257 TOutputListSelectorDataMap.cxx:258 TOutputListSelectorDataMap.cxx:259 TOutputListSelectorDataMap.cxx:260 TOutputListSelectorDataMap.cxx:261 TOutputListSelectorDataMap.cxx:262 TOutputListSelectorDataMap.cxx:263 TOutputListSelectorDataMap.cxx:264 TOutputListSelectorDataMap.cxx:265 TOutputListSelectorDataMap.cxx:266 TOutputListSelectorDataMap.cxx:267 TOutputListSelectorDataMap.cxx:268 TOutputListSelectorDataMap.cxx:269 TOutputListSelectorDataMap.cxx:270 TOutputListSelectorDataMap.cxx:271 TOutputListSelectorDataMap.cxx:272 TOutputListSelectorDataMap.cxx:273 TOutputListSelectorDataMap.cxx:274 TOutputListSelectorDataMap.cxx:275 TOutputListSelectorDataMap.cxx:276 TOutputListSelectorDataMap.cxx:277 TOutputListSelectorDataMap.cxx:278 TOutputListSelectorDataMap.cxx:279 TOutputListSelectorDataMap.cxx:280 TOutputListSelectorDataMap.cxx:281 TOutputListSelectorDataMap.cxx:282 TOutputListSelectorDataMap.cxx:283 TOutputListSelectorDataMap.cxx:284 TOutputListSelectorDataMap.cxx:285 TOutputListSelectorDataMap.cxx:286 TOutputListSelectorDataMap.cxx:287 TOutputListSelectorDataMap.cxx:288 TOutputListSelectorDataMap.cxx:289 TOutputListSelectorDataMap.cxx:290 TOutputListSelectorDataMap.cxx:291 TOutputListSelectorDataMap.cxx:292 TOutputListSelectorDataMap.cxx:293 TOutputListSelectorDataMap.cxx:294 TOutputListSelectorDataMap.cxx:295 TOutputListSelectorDataMap.cxx:296 TOutputListSelectorDataMap.cxx:297 TOutputListSelectorDataMap.cxx:298 TOutputListSelectorDataMap.cxx:299 TOutputListSelectorDataMap.cxx:300 TOutputListSelectorDataMap.cxx:301 TOutputListSelectorDataMap.cxx:302 TOutputListSelectorDataMap.cxx:303 TOutputListSelectorDataMap.cxx:304 TOutputListSelectorDataMap.cxx:305 TOutputListSelectorDataMap.cxx:306 TOutputListSelectorDataMap.cxx:307 TOutputListSelectorDataMap.cxx:308 TOutputListSelectorDataMap.cxx:309 TOutputListSelectorDataMap.cxx:310 TOutputListSelectorDataMap.cxx:311 TOutputListSelectorDataMap.cxx:312 TOutputListSelectorDataMap.cxx:313 TOutputListSelectorDataMap.cxx:314 TOutputListSelectorDataMap.cxx:315 TOutputListSelectorDataMap.cxx:316 TOutputListSelectorDataMap.cxx:317 TOutputListSelectorDataMap.cxx:318 TOutputListSelectorDataMap.cxx:319 TOutputListSelectorDataMap.cxx:320 TOutputListSelectorDataMap.cxx:321 TOutputListSelectorDataMap.cxx:322 TOutputListSelectorDataMap.cxx:323 TOutputListSelectorDataMap.cxx:324 TOutputListSelectorDataMap.cxx:325 TOutputListSelectorDataMap.cxx:326 TOutputListSelectorDataMap.cxx:327 TOutputListSelectorDataMap.cxx:328 TOutputListSelectorDataMap.cxx:329 TOutputListSelectorDataMap.cxx:330 TOutputListSelectorDataMap.cxx:331 TOutputListSelectorDataMap.cxx:332 TOutputListSelectorDataMap.cxx:333 TOutputListSelectorDataMap.cxx:334 TOutputListSelectorDataMap.cxx:335 TOutputListSelectorDataMap.cxx:336 TOutputListSelectorDataMap.cxx:337 TOutputListSelectorDataMap.cxx:338 TOutputListSelectorDataMap.cxx:339 TOutputListSelectorDataMap.cxx:340 TOutputListSelectorDataMap.cxx:341 TOutputListSelectorDataMap.cxx:342 TOutputListSelectorDataMap.cxx:343 TOutputListSelectorDataMap.cxx:344 TOutputListSelectorDataMap.cxx:345 TOutputListSelectorDataMap.cxx:346 TOutputListSelectorDataMap.cxx:347 TOutputListSelectorDataMap.cxx:348 TOutputListSelectorDataMap.cxx:349 TOutputListSelectorDataMap.cxx:350 TOutputListSelectorDataMap.cxx:351 TOutputListSelectorDataMap.cxx:352 TOutputListSelectorDataMap.cxx:353 TOutputListSelectorDataMap.cxx:354 TOutputListSelectorDataMap.cxx:355 TOutputListSelectorDataMap.cxx:356 TOutputListSelectorDataMap.cxx:357