Page MenuHomeWildfire Games
Paste P179

RelaxNG leak

Authored by elexis on Sep 27 2019, 3:35 PM.
==160587== 790,528 (2,048 direct, 788,480 indirect) bytes in 64 blocks are definitely lost in loss record 3,201 of 3,206
==160587== at 0x483877F: malloc (vg_replace_malloc.c:299)
==160587== by 0x54D7169: ??? (in /usr/lib/
==160587== by 0x54426ED: ??? (in /usr/lib/
==160587== by 0x54437F6: xmlHashScan (in /usr/lib/
==160587== by 0x54DD2BE: xmlRelaxNGParse (in /usr/lib/
==160587== by 0x376610: RelaxNGSchema::RelaxNGSchema(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (RelaxNG.cpp:68)
==160587== by 0x3758DF: RelaxNGValidator::LoadGrammar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (RelaxNG.cpp:100)
==160587== by 0x24D4E8: CCmpTemplateManager::Init(CParamNode const&) (CCmpTemplateManager.cpp:51)
==160587== by 0x1CDFE1: AddComponent (ComponentManager.cpp:698)
==160587== by 0x1CDFE1: CComponentManager::AddSystemComponents(bool, bool) (ComponentManager.cpp:705)
==160587== by 0x1ADCE0: ResetComponentState (Simulation2.cpp:103)
==160587== by 0x1ADCE0: ResetState (Simulation2.cpp:96)
==160587== by 0x1ADCE0: CSimulation2::ResetState(bool, bool) (Simulation2.cpp:886)
==160587== by 0x3BBC36: CMapReader::LoadMap(Path const&, JSRuntime*, JS::Handle<JS::Value>, CTerrain*, WaterManager*, SkyManager*, CLightEnv*, CGameView*, CCinemaManager*, CTriggerManager*, CPostprocManager*, CSimulation2*, CSimContext const*, int, bool) (MapReader.cpp:109)
==160587== by 0x37519C: CWorld::RegisterInit(CStrW const&, JSRuntime*, JS::Handle<JS::Value>, int) (World.cpp:78)

Event Timeline

elexis created this paste.Sep 27 2019, 3:35 PM
elexis created this object with visibility "Public (No Login Required)".

There is a xmlRelaxNGFree(m_Schema); call, so it seems to be a leak in libxml2, or it wants some weird flag somewhere. Couldn't find anything obvious from a remote superficial stare at too few lines of that library.