浏览代码

objlib: fix unchecked insertions in `cmGeneratorTarget::GetLanguages`

Pavel Solodovnikov 7 年之前
父节点
当前提交
66c0b36d75
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      Source/cmGeneratorTarget.cxx

+ 6 - 1
Source/cmGeneratorTarget.cxx

@@ -5133,7 +5133,12 @@ void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
       std::string objLib = extObj->GetObjectLibrary();
       if (cmGeneratorTarget* tgt =
             this->LocalGenerator->FindGeneratorTargetToUse(objLib)) {
-        objectLibraries.push_back(tgt);
+        auto const objLibIt =
+          std::find_if(objectLibraries.cbegin(), objectLibraries.cend(),
+                       [tgt](cmGeneratorTarget* t) { return t == tgt; });
+        if (objectLibraries.cend() == objLibIt) {
+          objectLibraries.push_back(tgt);
+        }
       }
     }
   }