MCPcopy Create free account
hub / github.com/Apache553/SubtitleFontHelper / Put

Method Put

SubtitleFontAutoLoaderDaemon/Prefetch.cpp:75–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

73 }
74
75 bool Put(T&& value)
76 {
77 std::lock_guard lg(m_lock);
78 auto findResult = m_hashmap.find(value);
79 if (m_hashmap.end() == findResult)
80 {
81 // not found
82 if (m_nodes.size() == m_capacity)
83 {
84 // full
85 auto lastNode = m_end.m_prev;
86 m_hashmap.erase(lastNode->m_data);
87 m_hashmap.insert({value, lastNode});
88 lastNode->m_data = std::move(value);
89 AdjustToHead(*lastNode, true);
90 }
91 else
92 {
93 m_nodes.emplace_back();
94 auto node = &m_nodes.back();
95 m_hashmap.insert({value, node});
96 node->m_data = std::move(value);
97 AdjustToHead(*node, false);
98 }
99 return true;
100 }
101 else
102 {
103 AdjustToHead(*findResult->second, true);
104 return false;
105 }
106 }
107
108 bool Put(const T& value)
109 {

Callers 1

LoadMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected