MCPcopy Create free account
hub / github.com/Norbyte/bg3se / LoadMappingsNode

Method LoadMappingsNode

CoreLib/SymbolMapper.cpp:312–341  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310}
311
312bool SymbolMappingLoader::LoadMappingsNode(tinyxml2::XMLElement* mappingsNode)
313{
314 auto mapping = mappingsNode->FirstChildElement();
315 while (mapping != nullptr) {
316 if (strcmp(mapping->Name(), "Mapping") == 0) {
317 SymbolMappings::Mapping sym;
318 if (LoadMapping(mapping, sym)) {
319 if (mappings_.Mappings.find(sym.Name) != mappings_.Mappings.end()) {
320 ERR("Duplicate mapping name: %s", sym.Name.c_str());
321 }
322
323 auto it = mappings_.Mappings.insert(std::make_pair(sym.Name, sym));
324 mappings_.OrderedMappings.push_back(&it.first->second);
325 } else {
326 ERR("Failed to parse mapping '%s'; mapping discarded", sym.Name.c_str());
327 }
328 } else if (strcmp(mapping->Name(), "DllImport") == 0) {
329 SymbolMappings::DllImport imp;
330 if (LoadDllImport(mapping, imp)) {
331 mappings_.DllImports.insert(std::make_pair(imp.Symbol, imp));
332 }
333 } else {
334 ERR("Unknown element in <Mappings>: '%s'", mapping->Name());
335 }
336
337 mapping = mapping->NextSiblingElement();
338 }
339
340 return true;
341}
342
343bool SymbolMappingLoader::LoadMapping(tinyxml2::XMLElement* mapping, SymbolMappings::Mapping& sym)
344{

Callers

nothing calls this directly

Calls 7

FirstChildElementMethod · 0.45
NameMethod · 0.45
findMethod · 0.45
endMethod · 0.45
insertMethod · 0.45
push_backMethod · 0.45
NextSiblingElementMethod · 0.45

Tested by

no test coverage detected