MCPcopy Create free account
hub / github.com/bytedance/Fastbot_Android / RemoveDuplicates

Method RemoveDuplicates

native/thirdpart/flatbuffers/idl_parser.cpp:2159–2180  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2157}
2158
2159void EnumDef::RemoveDuplicates() {
2160 // This method depends form SymbolTable implementation!
2161 // 1) vals.vec - owner (raw pointer)
2162 // 2) vals.dict - access map
2163 auto first = vals.vec.begin();
2164 auto last = vals.vec.end();
2165 if (first == last) return;
2166 auto result = first;
2167 while (++first != last) {
2168 if ((*result)->value != (*first)->value) {
2169 *(++result) = *first;
2170 } else {
2171 auto ev = *first;
2172 for (auto it = vals.dict.begin(); it != vals.dict.end(); ++it) {
2173 if (it->second == ev) it->second = *result; // reassign
2174 }
2175 delete ev; // delete enum value
2176 *first = nullptr;
2177 }
2178 }
2179 vals.vec.erase(++result, last);
2180}
2181
2182template<typename T> void EnumDef::ChangeEnumValue(EnumVal *ev, T new_value) {
2183 ev->value = static_cast<int64_t>(new_value);

Callers 1

ParseProtoDeclMethod · 0.80

Calls 2

beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected