@@ -111,8 +111,8 @@ bool ProjMgrWorker::AddContext(ProjMgrParser& parser, ContextDesc& descriptor, c
111111 return true ;
112112}
113113
114- map<string, ContextItem>& ProjMgrWorker::GetContexts ( void ) {
115- return m_contexts;
114+ void ProjMgrWorker::GetContexts ( map<string, ContextItem>& contexts ) {
115+ contexts = m_contexts;
116116}
117117
118118void ProjMgrWorker::SetOutputDir (const std::string& outputDir) {
@@ -1028,30 +1028,32 @@ set<string> ProjMgrWorker::SplitArgs(const string& args, const string& delimiter
10281028 return s;
10291029}
10301030
1031- bool ProjMgrWorker::ListPacks (const string& filter, set <string>&packs) {
1031+ bool ProjMgrWorker::ListPacks (const string& filter, vector <string>&packs) {
10321032 if (!LoadPacks ()) {
10331033 return false ;
10341034 }
10351035 if (m_installedPacks.empty ()) {
10361036 ProjMgrLogger::Error (" no installed pack was found" );
10371037 return false ;
10381038 }
1039+ set<string> packsSet;
10391040 for (const auto & pack : m_installedPacks) {
1040- packs .insert (GetPackageID (pack));
1041+ packsSet .insert (GetPackageID (pack));
10411042 }
10421043 if (!filter.empty ()) {
10431044 set<string> filteredPacks;
1044- ApplyFilter (packs , SplitArgs (filter), filteredPacks);
1045+ ApplyFilter (packsSet , SplitArgs (filter), filteredPacks);
10451046 if (filteredPacks.empty ()) {
10461047 ProjMgrLogger::Error (" no pack was found with filter '" + filter + " '" );
10471048 return false ;
10481049 }
1049- packs = filteredPacks;
1050+ packsSet = filteredPacks;
10501051 }
1052+ packs.assign (packsSet.begin (), packsSet.end ());
10511053 return true ;
10521054}
10531055
1054- bool ProjMgrWorker::ListDevices (const string & filter, set <string>& devices) {
1056+ bool ProjMgrWorker::ListDevices (const string & filter, vector <string>& devices) {
10551057 if (!m_contexts.empty ()) {
10561058 ContextItem context = m_contexts.begin ()->second ;
10571059 if (!context.cproject ->packages .empty ()) {
@@ -1063,6 +1065,7 @@ bool ProjMgrWorker::ListDevices(const string & filter, set<string>& devices) {
10631065 if (!LoadPacks ()) {
10641066 return false ;
10651067 }
1068+ set<string> devicesSet;
10661069 for (const auto & pack : m_installedPacks) {
10671070 list<RteDeviceItem*> deviceItems;
10681071 pack->GetEffectiveDeviceItems (deviceItems);
@@ -1071,30 +1074,31 @@ bool ProjMgrWorker::ListDevices(const string & filter, set<string>& devices) {
10711074 if (deviceItem->GetProcessorCount () > 1 ) {
10721075 const auto & processors = deviceItem->GetProcessors ();
10731076 for (const auto & processor : processors) {
1074- devices .insert (deviceName + " :" + processor.first );
1077+ devicesSet .insert (deviceName + " :" + processor.first );
10751078 }
10761079 } else {
1077- devices .insert (deviceName);
1080+ devicesSet .insert (deviceName);
10781081 }
10791082 }
10801083 }
1081- if (devices .empty ()) {
1084+ if (devicesSet .empty ()) {
10821085 ProjMgrLogger::Error (" no installed device was found" );
10831086 return false ;
10841087 }
10851088 if (!filter.empty ()) {
10861089 set<string> matchedDevices;
1087- ApplyFilter (devices , SplitArgs (filter), matchedDevices);
1090+ ApplyFilter (devicesSet , SplitArgs (filter), matchedDevices);
10881091 if (matchedDevices.empty ()) {
10891092 ProjMgrLogger::Error (" no device was found with filter '" + filter + " '" );
10901093 return false ;
10911094 }
1092- devices = matchedDevices;
1095+ devicesSet = matchedDevices;
10931096 }
1097+ devices.assign (devicesSet.begin (), devicesSet.end ());
10941098 return true ;
10951099}
10961100
1097- bool ProjMgrWorker::ListComponents (const string & filter, set <string>& components) {
1101+ bool ProjMgrWorker::ListComponents (const string& filter, vector <string>& components) {
10981102 ContextItem context;
10991103 if (!LoadPacks ()) {
11001104 return false ;
@@ -1144,52 +1148,56 @@ bool ProjMgrWorker::ListComponents(const string & filter, set<string>& component
11441148 componentIds = filteredIds;
11451149 }
11461150 for (const auto & componentId : componentIds) {
1147- components.insert (componentId + " (" + GetPackageID (componentMap[componentId]->GetPackage ()) + " )" );
1151+ components.push_back (componentId + " (" + GetPackageID (componentMap[componentId]->GetPackage ()) + " )" );
11481152 }
11491153 return true ;
11501154}
11511155
1152- bool ProjMgrWorker::ListDependencies (const string& filter, set <string>& dependencies) {
1156+ bool ProjMgrWorker::ListDependencies (const string& filter, vector <string>& dependencies) {
11531157 if (m_contexts.empty ()) {
11541158 return false ;
11551159 }
11561160 ContextItem context = m_contexts.begin ()->second ;
11571161 if (!ProcessContext (context)) {
11581162 return false ;
11591163 }
1164+ set<string>dependenciesSet;
11601165 for (const auto & [component, deps] : context.dependencies ) {
11611166 for (const auto & dep : deps) {
1162- dependencies .insert (component + " " + dep);
1167+ dependenciesSet .insert (component + " " + dep);
11631168 }
11641169 }
11651170 if (!filter.empty ()) {
11661171 set<string> filteredDependencies;
1167- ApplyFilter (dependencies , SplitArgs (filter), filteredDependencies);
1172+ ApplyFilter (dependenciesSet , SplitArgs (filter), filteredDependencies);
11681173 if (filteredDependencies.empty ()) {
11691174 ProjMgrLogger::Error (" no unresolved dependency was found with filter '" + filter + " '" );
11701175 return false ;
11711176 }
1172- dependencies = filteredDependencies;
1177+ dependenciesSet = filteredDependencies;
11731178 }
1179+ dependencies.assign (dependenciesSet.begin (), dependenciesSet.end ());
11741180 return true ;
11751181}
11761182
1177- bool ProjMgrWorker::ListContexts (const string& filter, set <string>& contexts) {
1183+ bool ProjMgrWorker::ListContexts (const string& filter, vector <string>& contexts) {
11781184 if (m_contexts.empty ()) {
11791185 return false ;
11801186 }
1187+ set<string>contextsSet;
11811188 for (auto & context : m_contexts) {
1182- contexts .insert (context.first );
1189+ contextsSet .insert (context.first );
11831190 }
11841191 if (!filter.empty ()) {
11851192 set<string> filteredContexts;
1186- ApplyFilter (contexts , SplitArgs (filter), filteredContexts);
1193+ ApplyFilter (contextsSet , SplitArgs (filter), filteredContexts);
11871194 if (filteredContexts.empty ()) {
11881195 ProjMgrLogger::Error (" no context was found with filter '" + filter + " '" );
11891196 return false ;
11901197 }
1191- contexts = filteredContexts;
1198+ contextsSet = filteredContexts;
11921199 }
1200+ contexts.assign (contextsSet.begin (), contextsSet.end ());
11931201 return true ;
11941202}
11951203
0 commit comments