From c2338251c19c79a54a343bd276bb30cf5a113ecc Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Mon, 7 Dec 2020 11:48:56 -0500 Subject: [PATCH] tauRecTools: Fix gcc11 compilation warnings. Check result of dynamic_cast before dereferencing. --- Reconstruction/tauRecTools/Root/BDTHelper.cxx | 14 ++++++++------ .../tauRecTools/Root/HelperFunctions.cxx | 8 +++++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Reconstruction/tauRecTools/Root/BDTHelper.cxx b/Reconstruction/tauRecTools/Root/BDTHelper.cxx index a5f3261489a..55ff2f163fa 100644 --- a/Reconstruction/tauRecTools/Root/BDTHelper.cxx +++ b/Reconstruction/tauRecTools/Root/BDTHelper.cxx @@ -63,13 +63,15 @@ std::vector<TString> BDTHelper::parseString(const TString& str, const TString& d // split the string with ",", and put them into a vector for(size_t i = 0; i < arraySize; ++i) { - TString var = dynamic_cast<TObjString*> (objList->At(i))->String(); - var.ReplaceAll(" ", ""); - if(var.Contains(":=")) { - var=var(var.Index(":=")+2, var.Length()-var.Index(":=")-2); + if (auto str = dynamic_cast<TObjString*> (objList->At(i))) { + TString var = str->String(); + var.ReplaceAll(" ", ""); + if(var.Contains(":=")) { + var=var(var.Index(":=")+2, var.Length()-var.Index(":=")-2); + } + if(0==var.Length()) continue; + parsedString.push_back(var); } - if(0==var.Length()) continue; - parsedString.push_back(var); } delete objList; diff --git a/Reconstruction/tauRecTools/Root/HelperFunctions.cxx b/Reconstruction/tauRecTools/Root/HelperFunctions.cxx index 1e9088f13b2..d487e29d8cf 100644 --- a/Reconstruction/tauRecTools/Root/HelperFunctions.cxx +++ b/Reconstruction/tauRecTools/Root/HelperFunctions.cxx @@ -92,9 +92,11 @@ std::vector<TString> tauRecTools::parseString(const TString& str, const TString& std::vector<TString> parsed_strings; TObjArray* varList_ar = str.Tokenize(delim); for(int i = 0; i != varList_ar->GetEntries(); ++i){ - TString var = dynamic_cast<TObjString*> (varList_ar->At(i))->String(); - if(var.Length()==0) continue; - parsed_strings.push_back(var); + if (auto tos = dynamic_cast<TObjString*> (varList_ar->At(i))) { + TString var = tos->String(); + if(var.Length()==0) continue; + parsed_strings.push_back(var); + } } delete varList_ar; return parsed_strings; -- GitLab