Changeset 106900 in vbox for trunk/src/VBox/Main
- Timestamp:
- Nov 8, 2024 10:45:15 PM (4 months ago)
- svn:sync-xref-src-repo-rev:
- 165821
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/ObjectsTracker.h
r106891 r106900 33 33 34 34 #include <set> 35 #include < unordered_map>35 #include <map> 36 36 #include <vector> 37 37 #include <string> … … 150 150 }; 151 151 152 /** The string representation for object IDs in the internal map. 153 * @todo r=bird: Why are you using std::string here? We use 154 * should use com::Utf8Str where possible. In this case, though, it's a 155 * com::Guid which would have much more efficient storage compared 156 * to both the string variants... */ 157 #if 1 158 typedef std::string ObjIdString_T; 159 #else 160 typedef com::Utf8Str ObjIdString_T; 161 #endif 162 152 163 ///////////////////////////////////////////////////////////////////////////// 153 164 // TrackedObjectsCollector 154 ///////////////////////////////////////////////////////////////////////////// 165 ///////////////////////////////////////////////////////////////////////////// 155 166 class TrackedObjectsCollector 156 167 { … … 160 171 std::set<com::Utf8Str> m_trackedObjectIds;//Full list of valid + invalid objects 161 172 std::set<com::Utf8Str> m_trackedInvalidObjectIds;//List of invalid objects only 162 std:: unordered_map<std::string, TrackedObjectData> m_trackedObjectsData;//Mapping Object Id -> Object Data173 std::map<ObjIdString_T, TrackedObjectData> m_trackedObjectsData;//Mapping Object Id -> Object Data 163 174 164 175 uint64_t m_Added;//Counter of the added objects -
trunk/src/VBox/Main/src-all/ObjectsTracker.cpp
r106891 r106900 34 34 #include <iprt/stream.h> 35 35 #include <iprt/time.h> 36 # 37 38 typedef std:: unordered_map<std::string, TrackedObjectData>::const_iterator cIterTrObjDataType;39 typedef std:: unordered_map<std::string, TrackedObjectData>::iterator iterTrObjDataType;36 #include <iprt/asm.h> 37 38 typedef std::map<ObjIdString_T, TrackedObjectData>::const_iterator cIterTrObjDataType; 39 typedef std::map<ObjIdString_T, TrackedObjectData>::iterator iterTrObjDataType; 40 40 41 41 ///////////////////////////////////////////////////////////////////////////// … … 329 329 RTCritSectEnter(&m_CritSectData); 330 330 331 std::stringsTemp(aObjId.c_str());331 ObjIdString_T sTemp(aObjId.c_str()); 332 332 HRESULT hrc = E_FAIL; 333 333 … … 383 383 RTCritSectEnter(&m_CritSectData); 384 384 385 std::stringsTemp(aObjId.c_str());385 ObjIdString_T sTemp(aObjId.c_str()); 386 386 387 387 iterTrObjDataType pIter = m_trackedObjectsData.find(sTemp); … … 412 412 return VBOX_E_INVALID_OBJECT_STATE; 413 413 414 std::stringsTemp(aObjId.c_str());414 ObjIdString_T sTemp(aObjId.c_str()); 415 415 416 416 vrc = VERR_NOT_FOUND; … … 498 498 std::vector<com::Utf8Str>& aObjIdMap) const 499 499 { 500 for (const std::pair<const std::string, TrackedObjectData>&item : m_trackedObjectsData)500 for (const std::pair<const ObjIdString_T, TrackedObjectData> &item : m_trackedObjectsData) 501 501 { 502 502 /* IID found and the object is valid */ … … 655 655 RTCritSectEnter(&m_CritSectData); 656 656 657 std::stringsTemp(aObjId.c_str());657 ObjIdString_T sTemp(aObjId.c_str()); 658 658 vrc = VERR_NOT_FOUND; 659 659 … … 697 697 LogFlowFuncEnter(); 698 698 ASMAtomicWriteBool(&fFinish, true); 699 return fFinish;699 return true; 700 700 } 701 701 … … 703 703 { 704 704 LogFlowFuncEnter(); 705 ASMAtomicReadBool(&fFinish); 706 return fFinish; 705 return ASMAtomicReadBool(&fFinish); 707 706 } 708 707
Note:
See TracChangeset
for help on using the changeset viewer.